Merge branch 'zeldaret:master' into master

This commit is contained in:
jdflyer 2023-01-23 20:46:24 -07:00 committed by GitHub
commit ad3f32bc7c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
76 changed files with 1703 additions and 4482 deletions

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.734158% | 817644 | 3596544
.text | 23.128426% | 831824 | 3596544
.ctors | 100.000000% | 448 | 448
.dtors | 100.000000% | 32 | 32
.rodata | 100.000000% | 193856 | 193856
.data | 100.000000% | 197632 | 197632
.sdata | 100.000000% | 1408 | 1408
.sdata2 | 100.000000% | 20832 | 20832
Total | 30.879913% | 1241580 | 4020672
Total | 31.232590% | 1255760 | 4020672
## Total
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 30.879913% | 1241580 | 4020672
main.dol | 31.232590% | 1255760 | 4020672
RELs | 33.041295% | 3799856 | 11500324
Total | 32.481395% | 5041436 | 15520996
Total | 32.572755% | 5055616 | 15520996
## RELs

View File

@ -30,10 +30,10 @@ mkdir -p tools/mwcc_compiler/
3. Download [GC_WII_COMPILERS.zip](https://cdn.discordapp.com/attachments/727918646525165659/917185027656286218/GC_WII_COMPILERS.zip).
4. Extract `GC_COMPILERS.zip` into the previously created `mwcc_compiler` directory
4. Extract `GC_WII_COMPILERS.zip` into the previously created `mwcc_compiler` directory
```bash
unzip GC_COMPILERS.zip -d tools/mwcc_compiler/
unzip GC_WII_COMPILERS.zip "GC/*" -d tools/mwcc_compiler/ && mv tools/mwcc_compiler/GC/* tools/mwcc_compiler/ && rmdir tools/mwcc_compiler/GC
```
5. Place a copy of NTSC-U GCN Twilight Princess in the root directory and call it `gz2e01.iso` (find this on your own)

View File

@ -1,14 +0,0 @@
lbl_8034BCFC:
/* 8034BCFC 7C 08 02 A6 */ mflr r0
/* 8034BD00 90 01 00 04 */ stw r0, 4(r1)
/* 8034BD04 94 21 FF F8 */ stwu r1, -8(r1)
/* 8034BD08 81 8D 92 48 */ lwz r12, FatalFunc(r13)
/* 8034BD0C 28 0C 00 00 */ cmplwi r12, 0
/* 8034BD10 41 82 00 0C */ beq lbl_8034BD1C
/* 8034BD14 7D 88 03 A6 */ mtlr r12
/* 8034BD18 4E 80 00 21 */ blrl
lbl_8034BD1C:
/* 8034BD1C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8034BD20 38 21 00 08 */ addi r1, r1, 8
/* 8034BD24 7C 08 03 A6 */ mtlr r0
/* 8034BD28 4E 80 00 20 */ blr

View File

@ -1,83 +0,0 @@
lbl_8034BA6C:
/* 8034BA6C 38 00 00 02 */ li r0, 2
/* 8034BA70 3C 80 80 3D */ lis r4, ErrorTable@ha /* 0x803D16A8@ha */
/* 8034BA74 7C 09 03 A6 */ mtctr r0
/* 8034BA78 38 84 16 A8 */ addi r4, r4, ErrorTable@l /* 0x803D16A8@l */
/* 8034BA7C 38 A0 00 00 */ li r5, 0
lbl_8034BA80:
/* 8034BA80 80 04 00 00 */ lwz r0, 0(r4)
/* 8034BA84 7C 03 00 40 */ cmplw r3, r0
/* 8034BA88 40 82 00 0C */ bne lbl_8034BA94
/* 8034BA8C 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 8034BA90 4E 80 00 20 */ blr
lbl_8034BA94:
/* 8034BA94 84 04 00 04 */ lwzu r0, 4(r4)
/* 8034BA98 38 A5 00 01 */ addi r5, r5, 1
/* 8034BA9C 7C 03 00 40 */ cmplw r3, r0
/* 8034BAA0 40 82 00 0C */ bne lbl_8034BAAC
/* 8034BAA4 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 8034BAA8 4E 80 00 20 */ blr
lbl_8034BAAC:
/* 8034BAAC 84 04 00 04 */ lwzu r0, 4(r4)
/* 8034BAB0 38 A5 00 01 */ addi r5, r5, 1
/* 8034BAB4 7C 03 00 40 */ cmplw r3, r0
/* 8034BAB8 40 82 00 0C */ bne lbl_8034BAC4
/* 8034BABC 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 8034BAC0 4E 80 00 20 */ blr
lbl_8034BAC4:
/* 8034BAC4 84 04 00 04 */ lwzu r0, 4(r4)
/* 8034BAC8 38 A5 00 01 */ addi r5, r5, 1
/* 8034BACC 7C 03 00 40 */ cmplw r3, r0
/* 8034BAD0 40 82 00 0C */ bne lbl_8034BADC
/* 8034BAD4 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 8034BAD8 4E 80 00 20 */ blr
lbl_8034BADC:
/* 8034BADC 84 04 00 04 */ lwzu r0, 4(r4)
/* 8034BAE0 38 A5 00 01 */ addi r5, r5, 1
/* 8034BAE4 7C 03 00 40 */ cmplw r3, r0
/* 8034BAE8 40 82 00 0C */ bne lbl_8034BAF4
/* 8034BAEC 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 8034BAF0 4E 80 00 20 */ blr
lbl_8034BAF4:
/* 8034BAF4 84 04 00 04 */ lwzu r0, 4(r4)
/* 8034BAF8 38 A5 00 01 */ addi r5, r5, 1
/* 8034BAFC 7C 03 00 40 */ cmplw r3, r0
/* 8034BB00 40 82 00 0C */ bne lbl_8034BB0C
/* 8034BB04 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 8034BB08 4E 80 00 20 */ blr
lbl_8034BB0C:
/* 8034BB0C 84 04 00 04 */ lwzu r0, 4(r4)
/* 8034BB10 38 A5 00 01 */ addi r5, r5, 1
/* 8034BB14 7C 03 00 40 */ cmplw r3, r0
/* 8034BB18 40 82 00 0C */ bne lbl_8034BB24
/* 8034BB1C 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 8034BB20 4E 80 00 20 */ blr
lbl_8034BB24:
/* 8034BB24 84 04 00 04 */ lwzu r0, 4(r4)
/* 8034BB28 38 A5 00 01 */ addi r5, r5, 1
/* 8034BB2C 7C 03 00 40 */ cmplw r3, r0
/* 8034BB30 40 82 00 0C */ bne lbl_8034BB3C
/* 8034BB34 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 8034BB38 4E 80 00 20 */ blr
lbl_8034BB3C:
/* 8034BB3C 84 04 00 04 */ lwzu r0, 4(r4)
/* 8034BB40 38 A5 00 01 */ addi r5, r5, 1
/* 8034BB44 7C 03 00 40 */ cmplw r3, r0
/* 8034BB48 40 82 00 0C */ bne lbl_8034BB54
/* 8034BB4C 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 8034BB50 4E 80 00 20 */ blr
lbl_8034BB54:
/* 8034BB54 38 84 00 04 */ addi r4, r4, 4
/* 8034BB58 38 A5 00 01 */ addi r5, r5, 1
/* 8034BB5C 42 00 FF 24 */ bdnz lbl_8034BA80
/* 8034BB60 3C 80 00 10 */ lis r4, 0x10
/* 8034BB64 7C 03 20 40 */ cmplw r3, r4
/* 8034BB68 41 80 00 18 */ blt lbl_8034BB80
/* 8034BB6C 38 04 00 08 */ addi r0, r4, 8
/* 8034BB70 7C 03 00 40 */ cmplw r3, r0
/* 8034BB74 41 81 00 0C */ bgt lbl_8034BB80
/* 8034BB78 38 60 00 11 */ li r3, 0x11
/* 8034BB7C 4E 80 00 20 */ blr
lbl_8034BB80:
/* 8034BB80 38 60 00 1D */ li r3, 0x1d
/* 8034BB84 4E 80 00 20 */ blr

View File

@ -1,36 +0,0 @@
lbl_8034BB88:
/* 8034BB88 7C 08 02 A6 */ mflr r0
/* 8034BB8C 90 01 00 04 */ stw r0, 4(r1)
/* 8034BB90 3C 03 FE DD */ addis r0, r3, 0xfedd
/* 8034BB94 28 00 45 67 */ cmplwi r0, 0x4567
/* 8034BB98 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8034BB9C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8034BBA0 40 82 00 0C */ bne lbl_8034BBAC
/* 8034BBA4 3B E0 00 FF */ li r31, 0xff
/* 8034BBA8 48 00 00 38 */ b lbl_8034BBE0
lbl_8034BBAC:
/* 8034BBAC 28 00 45 68 */ cmplwi r0, 0x4568
/* 8034BBB0 40 82 00 0C */ bne lbl_8034BBBC
/* 8034BBB4 3B E0 00 FE */ li r31, 0xfe
/* 8034BBB8 48 00 00 28 */ b lbl_8034BBE0
lbl_8034BBBC:
/* 8034BBBC 54 7F 46 3E */ srwi r31, r3, 0x18
/* 8034BBC0 54 63 02 3E */ clrlwi r3, r3, 8
/* 8034BBC4 4B FF FE A9 */ bl ErrorCode2Num
/* 8034BBC8 28 1F 00 06 */ cmplwi r31, 6
/* 8034BBCC 41 80 00 08 */ blt lbl_8034BBD4
/* 8034BBD0 3B E0 00 06 */ li r31, 6
lbl_8034BBD4:
/* 8034BBD4 1C 1F 00 1E */ mulli r0, r31, 0x1e
/* 8034BBD8 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 8034BBDC 7F E3 02 14 */ add r31, r3, r0
lbl_8034BBE0:
/* 8034BBE0 4B FF 45 C1 */ bl __OSLockSramEx
/* 8034BBE4 9B E3 00 24 */ stb r31, 0x24(r3)
/* 8034BBE8 38 60 00 01 */ li r3, 1
/* 8034BBEC 4B FF 49 71 */ bl __OSUnlockSramEx
/* 8034BBF0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8034BBF4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8034BBF8 38 21 00 18 */ addi r1, r1, 0x18
/* 8034BBFC 7C 08 03 A6 */ mtlr r0
/* 8034BC00 4E 80 00 20 */ blr

View File

@ -1,30 +0,0 @@
lbl_80348CF4:
/* 80348CF4 7C 08 02 A6 */ mflr r0
/* 80348CF8 90 01 00 04 */ stw r0, 4(r1)
/* 80348CFC 94 21 FF F8 */ stwu r1, -8(r1)
/* 80348D00 4B FF F8 29 */ bl DVDConvertPathToEntrynum
/* 80348D04 2C 03 00 00 */ cmpwi r3, 0
/* 80348D08 41 80 00 2C */ blt lbl_80348D34
/* 80348D0C 1C 03 00 0C */ mulli r0, r3, 0xc
/* 80348D10 80 8D 91 DC */ lwz r4, FstStart(r13)
/* 80348D14 7C 04 00 2E */ lwzx r0, r4, r0
/* 80348D18 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 80348D1C 40 82 00 0C */ bne lbl_80348D28
/* 80348D20 38 00 00 00 */ li r0, 0
/* 80348D24 48 00 00 08 */ b lbl_80348D2C
lbl_80348D28:
/* 80348D28 38 00 00 01 */ li r0, 1
lbl_80348D2C:
/* 80348D2C 2C 00 00 00 */ cmpwi r0, 0
/* 80348D30 40 82 00 0C */ bne lbl_80348D3C
lbl_80348D34:
/* 80348D34 38 60 00 00 */ li r3, 0
/* 80348D38 48 00 00 0C */ b lbl_80348D44
lbl_80348D3C:
/* 80348D3C 90 6D 91 E8 */ stw r3, currentDirectory(r13)
/* 80348D40 38 60 00 01 */ li r3, 1
lbl_80348D44:
/* 80348D44 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80348D48 38 21 00 08 */ addi r1, r1, 8
/* 80348D4C 7C 08 03 A6 */ mtlr r0
/* 80348D50 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_80348958:
/* 80348958 7C 08 02 A6 */ mflr r0
/* 8034895C 90 01 00 04 */ stw r0, 4(r1)
/* 80348960 94 21 FF F8 */ stwu r1, -8(r1)
/* 80348964 48 00 2B ED */ bl DVDCancel
/* 80348968 38 60 00 01 */ li r3, 1
/* 8034896C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80348970 38 21 00 08 */ addi r1, r1, 8
/* 80348974 7C 08 03 A6 */ mtlr r0
/* 80348978 4E 80 00 20 */ blr

View File

@ -1,98 +0,0 @@
lbl_80348ADC:
/* 80348ADC 7C 08 02 A6 */ mflr r0
/* 80348AE0 90 01 00 04 */ stw r0, 4(r1)
/* 80348AE4 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80348AE8 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80348AEC 3B E5 00 00 */ addi r31, r5, 0
/* 80348AF0 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80348AF4 3B C4 00 00 */ addi r30, r4, 0
/* 80348AF8 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80348AFC 7C 7D 1B 79 */ or. r29, r3, r3
/* 80348B00 93 81 00 18 */ stw r28, 0x18(r1)
/* 80348B04 40 82 00 0C */ bne lbl_80348B10
/* 80348B08 38 60 00 00 */ li r3, 0
/* 80348B0C 48 00 00 8C */ b lbl_80348B98
lbl_80348B10:
/* 80348B10 1C 7D 00 0C */ mulli r3, r29, 0xc
/* 80348B14 80 8D 91 DC */ lwz r4, FstStart(r13)
/* 80348B18 80 CD 91 E0 */ lwz r6, FstStringStart(r13)
/* 80348B1C 7C 04 18 2E */ lwzx r0, r4, r3
/* 80348B20 7C 64 1A 14 */ add r3, r4, r3
/* 80348B24 80 63 00 04 */ lwz r3, 4(r3)
/* 80348B28 38 9E 00 00 */ addi r4, r30, 0
/* 80348B2C 54 00 02 3E */ clrlwi r0, r0, 8
/* 80348B30 38 BF 00 00 */ addi r5, r31, 0
/* 80348B34 7F 86 02 14 */ add r28, r6, r0
/* 80348B38 4B FF FE 45 */ bl entryToPath
/* 80348B3C 7C 03 F8 40 */ cmplw r3, r31
/* 80348B40 40 82 00 08 */ bne lbl_80348B48
/* 80348B44 48 00 00 54 */ b lbl_80348B98
lbl_80348B48:
/* 80348B48 38 03 00 00 */ addi r0, r3, 0
/* 80348B4C 38 63 00 01 */ addi r3, r3, 1
/* 80348B50 38 80 00 2F */ li r4, 0x2f
/* 80348B54 7C C3 F8 50 */ subf r6, r3, r31
/* 80348B58 7C 9E 01 AE */ stbx r4, r30, r0
/* 80348B5C 38 86 00 00 */ addi r4, r6, 0
/* 80348B60 7C BE 1A 14 */ add r5, r30, r3
/* 80348B64 48 00 00 18 */ b lbl_80348B7C
lbl_80348B68:
/* 80348B68 88 1C 00 00 */ lbz r0, 0(r28)
/* 80348B6C 3B 9C 00 01 */ addi r28, r28, 1
/* 80348B70 38 84 FF FF */ addi r4, r4, -1
/* 80348B74 98 05 00 00 */ stb r0, 0(r5)
/* 80348B78 38 A5 00 01 */ addi r5, r5, 1
lbl_80348B7C:
/* 80348B7C 28 04 00 00 */ cmplwi r4, 0
/* 80348B80 41 82 00 10 */ beq lbl_80348B90
/* 80348B84 88 1C 00 00 */ lbz r0, 0(r28)
/* 80348B88 7C 00 07 75 */ extsb. r0, r0
/* 80348B8C 40 82 FF DC */ bne lbl_80348B68
lbl_80348B90:
/* 80348B90 7C 04 30 50 */ subf r0, r4, r6
/* 80348B94 7C 63 02 14 */ add r3, r3, r0
lbl_80348B98:
/* 80348B98 7C 03 F8 40 */ cmplw r3, r31
/* 80348B9C 40 82 00 18 */ bne lbl_80348BB4
/* 80348BA0 7C 7E FA 14 */ add r3, r30, r31
/* 80348BA4 38 00 00 00 */ li r0, 0
/* 80348BA8 98 03 FF FF */ stb r0, -1(r3)
/* 80348BAC 38 60 00 00 */ li r3, 0
/* 80348BB0 48 00 00 60 */ b lbl_80348C10
lbl_80348BB4:
/* 80348BB4 1C 1D 00 0C */ mulli r0, r29, 0xc
/* 80348BB8 80 8D 91 DC */ lwz r4, FstStart(r13)
/* 80348BBC 7C 04 00 2E */ lwzx r0, r4, r0
/* 80348BC0 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 80348BC4 40 82 00 0C */ bne lbl_80348BD0
/* 80348BC8 38 00 00 00 */ li r0, 0
/* 80348BCC 48 00 00 08 */ b lbl_80348BD4
lbl_80348BD0:
/* 80348BD0 38 00 00 01 */ li r0, 1
lbl_80348BD4:
/* 80348BD4 2C 00 00 00 */ cmpwi r0, 0
/* 80348BD8 41 82 00 2C */ beq lbl_80348C04
/* 80348BDC 38 1F FF FF */ addi r0, r31, -1
/* 80348BE0 7C 03 00 40 */ cmplw r3, r0
/* 80348BE4 40 82 00 14 */ bne lbl_80348BF8
/* 80348BE8 38 00 00 00 */ li r0, 0
/* 80348BEC 7C 1E 19 AE */ stbx r0, r30, r3
/* 80348BF0 38 60 00 00 */ li r3, 0
/* 80348BF4 48 00 00 1C */ b lbl_80348C10
lbl_80348BF8:
/* 80348BF8 38 00 00 2F */ li r0, 0x2f
/* 80348BFC 7C 1E 19 AE */ stbx r0, r30, r3
/* 80348C00 38 63 00 01 */ addi r3, r3, 1
lbl_80348C04:
/* 80348C04 38 00 00 00 */ li r0, 0
/* 80348C08 7C 1E 19 AE */ stbx r0, r30, r3
/* 80348C0C 38 60 00 01 */ li r3, 1
lbl_80348C10:
/* 80348C10 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80348C14 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80348C18 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80348C1C 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80348C20 83 81 00 18 */ lwz r28, 0x18(r1)
/* 80348C24 38 21 00 28 */ addi r1, r1, 0x28
/* 80348C28 7C 08 03 A6 */ mtlr r0
/* 80348C2C 4E 80 00 20 */ blr

View File

@ -1,229 +0,0 @@
lbl_80348528:
/* 80348528 7C 08 02 A6 */ mflr r0
/* 8034852C 90 01 00 04 */ stw r0, 4(r1)
/* 80348530 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 80348534 BE 81 00 18 */ stmw r20, 0x18(r1)
/* 80348538 7C 77 1B 78 */ mr r23, r3
/* 8034853C 3C 60 80 3D */ lis r3, lit_119@ha /* 0x803D1380@ha */
/* 80348540 3B 37 00 00 */ addi r25, r23, 0
/* 80348544 3B E3 13 80 */ addi r31, r3, lit_119@l /* 0x803D1380@l */
/* 80348548 83 4D 91 E8 */ lwz r26, currentDirectory(r13)
lbl_8034854C:
/* 8034854C 88 77 00 00 */ lbz r3, 0(r23)
/* 80348550 7C 60 07 75 */ extsb. r0, r3
/* 80348554 40 82 00 0C */ bne lbl_80348560
/* 80348558 7F 43 D3 78 */ mr r3, r26
/* 8034855C 48 00 02 AC */ b lbl_80348808
lbl_80348560:
/* 80348560 7C 60 07 74 */ extsb r0, r3
/* 80348564 2C 00 00 2F */ cmpwi r0, 0x2f
/* 80348568 40 82 00 10 */ bne lbl_80348578
/* 8034856C 3B 40 00 00 */ li r26, 0
/* 80348570 3A F7 00 01 */ addi r23, r23, 1
/* 80348574 4B FF FF D8 */ b lbl_8034854C
lbl_80348578:
/* 80348578 2C 00 00 2E */ cmpwi r0, 0x2e
/* 8034857C 40 82 00 74 */ bne lbl_803485F0
/* 80348580 88 77 00 01 */ lbz r3, 1(r23)
/* 80348584 7C 60 07 74 */ extsb r0, r3
/* 80348588 2C 00 00 2E */ cmpwi r0, 0x2e
/* 8034858C 40 82 00 44 */ bne lbl_803485D0
/* 80348590 88 77 00 02 */ lbz r3, 2(r23)
/* 80348594 2C 03 00 2F */ cmpwi r3, 0x2f
/* 80348598 40 82 00 1C */ bne lbl_803485B4
/* 8034859C 1C 7A 00 0C */ mulli r3, r26, 0xc
/* 803485A0 80 8D 91 DC */ lwz r4, FstStart(r13)
/* 803485A4 38 03 00 04 */ addi r0, r3, 4
/* 803485A8 7F 44 00 2E */ lwzx r26, r4, r0
/* 803485AC 3A F7 00 03 */ addi r23, r23, 3
/* 803485B0 4B FF FF 9C */ b lbl_8034854C
lbl_803485B4:
/* 803485B4 7C 60 07 75 */ extsb. r0, r3
/* 803485B8 40 82 00 38 */ bne lbl_803485F0
/* 803485BC 1C 1A 00 0C */ mulli r0, r26, 0xc
/* 803485C0 80 6D 91 DC */ lwz r3, FstStart(r13)
/* 803485C4 7C 63 02 14 */ add r3, r3, r0
/* 803485C8 80 63 00 04 */ lwz r3, 4(r3)
/* 803485CC 48 00 02 3C */ b lbl_80348808
lbl_803485D0:
/* 803485D0 2C 00 00 2F */ cmpwi r0, 0x2f
/* 803485D4 40 82 00 0C */ bne lbl_803485E0
/* 803485D8 3A F7 00 02 */ addi r23, r23, 2
/* 803485DC 4B FF FF 70 */ b lbl_8034854C
lbl_803485E0:
/* 803485E0 7C 60 07 75 */ extsb. r0, r3
/* 803485E4 40 82 00 0C */ bne lbl_803485F0
/* 803485E8 7F 43 D3 78 */ mr r3, r26
/* 803485EC 48 00 02 1C */ b lbl_80348808
lbl_803485F0:
/* 803485F0 80 0D 91 EC */ lwz r0, __DVDLongFileNameFlag(r13)
/* 803485F4 28 00 00 00 */ cmplwi r0, 0
/* 803485F8 40 82 00 AC */ bne lbl_803486A4
/* 803485FC 3B 97 00 00 */ addi r28, r23, 0
/* 80348600 38 A0 00 00 */ li r5, 0
/* 80348604 38 80 00 00 */ li r4, 0
/* 80348608 48 00 00 48 */ b lbl_80348650
lbl_8034860C:
/* 8034860C 7C 60 07 74 */ extsb r0, r3
/* 80348610 2C 00 00 2E */ cmpwi r0, 0x2e
/* 80348614 40 82 00 2C */ bne lbl_80348640
/* 80348618 7C 17 E0 50 */ subf r0, r23, r28
/* 8034861C 2C 00 00 08 */ cmpwi r0, 8
/* 80348620 41 81 00 0C */ bgt lbl_8034862C
/* 80348624 2C 05 00 01 */ cmpwi r5, 1
/* 80348628 40 82 00 0C */ bne lbl_80348634
lbl_8034862C:
/* 8034862C 38 80 00 01 */ li r4, 1
/* 80348630 48 00 00 38 */ b lbl_80348668
lbl_80348634:
/* 80348634 3B 1C 00 01 */ addi r24, r28, 1
/* 80348638 38 A0 00 01 */ li r5, 1
/* 8034863C 48 00 00 10 */ b lbl_8034864C
lbl_80348640:
/* 80348640 2C 00 00 20 */ cmpwi r0, 0x20
/* 80348644 40 82 00 08 */ bne lbl_8034864C
/* 80348648 38 80 00 01 */ li r4, 1
lbl_8034864C:
/* 8034864C 3B 9C 00 01 */ addi r28, r28, 1
lbl_80348650:
/* 80348650 88 7C 00 00 */ lbz r3, 0(r28)
/* 80348654 7C 60 07 75 */ extsb. r0, r3
/* 80348658 41 82 00 10 */ beq lbl_80348668
/* 8034865C 7C 60 07 74 */ extsb r0, r3
/* 80348660 2C 00 00 2F */ cmpwi r0, 0x2f
/* 80348664 40 82 FF A8 */ bne lbl_8034860C
lbl_80348668:
/* 80348668 2C 05 00 01 */ cmpwi r5, 1
/* 8034866C 40 82 00 14 */ bne lbl_80348680
/* 80348670 7C 18 E0 50 */ subf r0, r24, r28
/* 80348674 2C 00 00 03 */ cmpwi r0, 3
/* 80348678 40 81 00 08 */ ble lbl_80348680
/* 8034867C 38 80 00 01 */ li r4, 1
lbl_80348680:
/* 80348680 2C 04 00 00 */ cmpwi r4, 0
/* 80348684 41 82 00 44 */ beq lbl_803486C8
/* 80348688 38 BF 00 00 */ addi r5, r31, 0
/* 8034868C 4C C6 31 82 */ crclr 6
/* 80348690 38 D9 00 00 */ addi r6, r25, 0
/* 80348694 38 6D 84 60 */ la r3, lit_118(r13) /* 804509E0-_SDA_BASE_ */
/* 80348698 38 80 01 83 */ li r4, 0x183
/* 8034869C 4B CB E7 E1 */ bl OSPanic
/* 803486A0 48 00 00 28 */ b lbl_803486C8
lbl_803486A4:
/* 803486A4 7E FC BB 78 */ mr r28, r23
/* 803486A8 48 00 00 08 */ b lbl_803486B0
lbl_803486AC:
/* 803486AC 3B 9C 00 01 */ addi r28, r28, 1
lbl_803486B0:
/* 803486B0 88 7C 00 00 */ lbz r3, 0(r28)
/* 803486B4 7C 60 07 75 */ extsb. r0, r3
/* 803486B8 41 82 00 10 */ beq lbl_803486C8
/* 803486BC 7C 60 07 74 */ extsb r0, r3
/* 803486C0 2C 00 00 2F */ cmpwi r0, 0x2f
/* 803486C4 40 82 FF E8 */ bne lbl_803486AC
lbl_803486C8:
/* 803486C8 88 1C 00 00 */ lbz r0, 0(r28)
/* 803486CC 7C 00 07 75 */ extsb. r0, r0
/* 803486D0 40 82 00 0C */ bne lbl_803486DC
/* 803486D4 3B C0 00 00 */ li r30, 0
/* 803486D8 48 00 00 08 */ b lbl_803486E0
lbl_803486DC:
/* 803486DC 3B C0 00 01 */ li r30, 1
lbl_803486E0:
/* 803486E0 1F BA 00 0C */ mulli r29, r26, 0xc
/* 803486E4 7F 77 E0 50 */ subf r27, r23, r28
/* 803486E8 3B 5A 00 01 */ addi r26, r26, 1
/* 803486EC 48 00 00 E4 */ b lbl_803487D0
lbl_803486F0:
/* 803486F0 1F 9A 00 0C */ mulli r28, r26, 0xc
/* 803486F4 7C 83 E0 2E */ lwzx r4, r3, r28
/* 803486F8 54 80 00 0F */ rlwinm. r0, r4, 0, 0, 7
/* 803486FC 40 82 00 0C */ bne lbl_80348708
/* 80348700 38 00 00 00 */ li r0, 0
/* 80348704 48 00 00 08 */ b lbl_8034870C
lbl_80348708:
/* 80348708 38 00 00 01 */ li r0, 1
lbl_8034870C:
/* 8034870C 2C 00 00 00 */ cmpwi r0, 0
/* 80348710 40 82 00 0C */ bne lbl_8034871C
/* 80348714 2C 1E 00 01 */ cmpwi r30, 1
/* 80348718 41 82 00 80 */ beq lbl_80348798
lbl_8034871C:
/* 8034871C 80 6D 91 E0 */ lwz r3, FstStringStart(r13)
/* 80348720 54 80 02 3E */ clrlwi r0, r4, 8
/* 80348724 3A B7 00 00 */ addi r21, r23, 0
/* 80348728 7E 83 02 14 */ add r20, r3, r0
/* 8034872C 48 00 00 38 */ b lbl_80348764
lbl_80348730:
/* 80348730 88 14 00 00 */ lbz r0, 0(r20)
/* 80348734 3A 94 00 01 */ addi r20, r20, 1
/* 80348738 7C 03 07 74 */ extsb r3, r0
/* 8034873C 48 01 CD 35 */ bl tolower
/* 80348740 88 15 00 00 */ lbz r0, 0(r21)
/* 80348744 3A C3 00 00 */ addi r22, r3, 0
/* 80348748 3A B5 00 01 */ addi r21, r21, 1
/* 8034874C 7C 03 07 74 */ extsb r3, r0
/* 80348750 48 01 CD 21 */ bl tolower
/* 80348754 7C 03 B0 00 */ cmpw r3, r22
/* 80348758 41 82 00 0C */ beq lbl_80348764
/* 8034875C 38 00 00 00 */ li r0, 0
/* 80348760 48 00 00 30 */ b lbl_80348790
lbl_80348764:
/* 80348764 88 14 00 00 */ lbz r0, 0(r20)
/* 80348768 7C 00 07 75 */ extsb. r0, r0
/* 8034876C 40 82 FF C4 */ bne lbl_80348730
/* 80348770 88 75 00 00 */ lbz r3, 0(r21)
/* 80348774 2C 03 00 2F */ cmpwi r3, 0x2f
/* 80348778 41 82 00 0C */ beq lbl_80348784
/* 8034877C 7C 60 07 75 */ extsb. r0, r3
/* 80348780 40 82 00 0C */ bne lbl_8034878C
lbl_80348784:
/* 80348784 38 00 00 01 */ li r0, 1
/* 80348788 48 00 00 08 */ b lbl_80348790
lbl_8034878C:
/* 8034878C 38 00 00 00 */ li r0, 0
lbl_80348790:
/* 80348790 2C 00 00 01 */ cmpwi r0, 1
/* 80348794 41 82 00 58 */ beq lbl_803487EC
lbl_80348798:
/* 80348798 80 0D 91 DC */ lwz r0, FstStart(r13)
/* 8034879C 7C 60 E2 14 */ add r3, r0, r28
/* 803487A0 80 03 00 00 */ lwz r0, 0(r3)
/* 803487A4 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 803487A8 40 82 00 0C */ bne lbl_803487B4
/* 803487AC 38 00 00 00 */ li r0, 0
/* 803487B0 48 00 00 08 */ b lbl_803487B8
lbl_803487B4:
/* 803487B4 38 00 00 01 */ li r0, 1
lbl_803487B8:
/* 803487B8 2C 00 00 00 */ cmpwi r0, 0
/* 803487BC 41 82 00 0C */ beq lbl_803487C8
/* 803487C0 80 03 00 08 */ lwz r0, 8(r3)
/* 803487C4 48 00 00 08 */ b lbl_803487CC
lbl_803487C8:
/* 803487C8 38 1A 00 01 */ addi r0, r26, 1
lbl_803487CC:
/* 803487CC 7C 1A 03 78 */ mr r26, r0
lbl_803487D0:
/* 803487D0 80 6D 91 DC */ lwz r3, FstStart(r13)
/* 803487D4 38 03 00 08 */ addi r0, r3, 8
/* 803487D8 7C 1D 00 2E */ lwzx r0, r29, r0
/* 803487DC 7C 1A 00 40 */ cmplw r26, r0
/* 803487E0 41 80 FF 10 */ blt lbl_803486F0
/* 803487E4 38 60 FF FF */ li r3, -1
/* 803487E8 48 00 00 20 */ b lbl_80348808
lbl_803487EC:
/* 803487EC 2C 1E 00 00 */ cmpwi r30, 0
/* 803487F0 40 82 00 0C */ bne lbl_803487FC
/* 803487F4 7F 43 D3 78 */ mr r3, r26
/* 803487F8 48 00 00 10 */ b lbl_80348808
lbl_803487FC:
/* 803487FC 7E FB BA 14 */ add r23, r27, r23
/* 80348800 3A F7 00 01 */ addi r23, r23, 1
/* 80348804 4B FF FD 48 */ b lbl_8034854C
lbl_80348808:
/* 80348808 BA 81 00 18 */ lmw r20, 0x18(r1)
/* 8034880C 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 80348810 38 21 00 48 */ addi r1, r1, 0x48
/* 80348814 7C 08 03 A6 */ mtlr r0
/* 80348818 4E 80 00 20 */ blr

View File

@ -1,34 +0,0 @@
lbl_8034881C:
/* 8034881C 2C 03 00 00 */ cmpwi r3, 0
/* 80348820 41 80 00 38 */ blt lbl_80348858
/* 80348824 80 0D 91 E4 */ lwz r0, MaxEntryNum(r13)
/* 80348828 7C 03 00 40 */ cmplw r3, r0
/* 8034882C 40 80 00 2C */ bge lbl_80348858
/* 80348830 1C C3 00 0C */ mulli r6, r3, 0xc
/* 80348834 80 6D 91 DC */ lwz r3, FstStart(r13)
/* 80348838 7C 03 30 2E */ lwzx r0, r3, r6
/* 8034883C 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 80348840 40 82 00 0C */ bne lbl_8034884C
/* 80348844 38 00 00 00 */ li r0, 0
/* 80348848 48 00 00 08 */ b lbl_80348850
lbl_8034884C:
/* 8034884C 38 00 00 01 */ li r0, 1
lbl_80348850:
/* 80348850 2C 00 00 00 */ cmpwi r0, 0
/* 80348854 41 82 00 0C */ beq lbl_80348860
lbl_80348858:
/* 80348858 38 60 00 00 */ li r3, 0
/* 8034885C 4E 80 00 20 */ blr
lbl_80348860:
/* 80348860 7C 63 32 14 */ add r3, r3, r6
/* 80348864 80 A3 00 04 */ lwz r5, 4(r3)
/* 80348868 38 00 00 00 */ li r0, 0
/* 8034886C 38 60 00 01 */ li r3, 1
/* 80348870 90 A4 00 30 */ stw r5, 0x30(r4)
/* 80348874 80 AD 91 DC */ lwz r5, FstStart(r13)
/* 80348878 7C A5 32 14 */ add r5, r5, r6
/* 8034887C 80 A5 00 08 */ lwz r5, 8(r5)
/* 80348880 90 A4 00 34 */ stw r5, 0x34(r4)
/* 80348884 90 04 00 38 */ stw r0, 0x38(r4)
/* 80348888 90 04 00 0C */ stw r0, 0xc(r4)
/* 8034888C 4E 80 00 20 */ blr

View File

@ -1,56 +0,0 @@
lbl_80348C30:
/* 80348C30 7C 08 02 A6 */ mflr r0
/* 80348C34 90 01 00 04 */ stw r0, 4(r1)
/* 80348C38 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80348C3C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80348C40 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80348C44 3B C4 00 00 */ addi r30, r4, 0
/* 80348C48 38 BE 00 00 */ addi r5, r30, 0
/* 80348C4C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80348C50 3B A3 00 00 */ addi r29, r3, 0
/* 80348C54 38 9D 00 00 */ addi r4, r29, 0
/* 80348C58 83 ED 91 E8 */ lwz r31, currentDirectory(r13)
/* 80348C5C 38 7F 00 00 */ addi r3, r31, 0
/* 80348C60 4B FF FD 1D */ bl entryToPath
/* 80348C64 7C 03 F0 40 */ cmplw r3, r30
/* 80348C68 40 82 00 14 */ bne lbl_80348C7C
/* 80348C6C 38 00 00 00 */ li r0, 0
/* 80348C70 7C 7D F2 14 */ add r3, r29, r30
/* 80348C74 98 03 FF FF */ stb r0, -1(r3)
/* 80348C78 48 00 00 5C */ b lbl_80348CD4
lbl_80348C7C:
/* 80348C7C 1C 1F 00 0C */ mulli r0, r31, 0xc
/* 80348C80 80 8D 91 DC */ lwz r4, FstStart(r13)
/* 80348C84 7C 04 00 2E */ lwzx r0, r4, r0
/* 80348C88 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 80348C8C 40 82 00 0C */ bne lbl_80348C98
/* 80348C90 38 00 00 00 */ li r0, 0
/* 80348C94 48 00 00 08 */ b lbl_80348C9C
lbl_80348C98:
/* 80348C98 38 00 00 01 */ li r0, 1
lbl_80348C9C:
/* 80348C9C 2C 00 00 00 */ cmpwi r0, 0
/* 80348CA0 41 82 00 28 */ beq lbl_80348CC8
/* 80348CA4 38 1E FF FF */ addi r0, r30, -1
/* 80348CA8 7C 03 00 40 */ cmplw r3, r0
/* 80348CAC 40 82 00 10 */ bne lbl_80348CBC
/* 80348CB0 38 00 00 00 */ li r0, 0
/* 80348CB4 7C 1D 19 AE */ stbx r0, r29, r3
/* 80348CB8 48 00 00 1C */ b lbl_80348CD4
lbl_80348CBC:
/* 80348CBC 38 00 00 2F */ li r0, 0x2f
/* 80348CC0 7C 1D 19 AE */ stbx r0, r29, r3
/* 80348CC4 38 63 00 01 */ addi r3, r3, 1
lbl_80348CC8:
/* 80348CC8 38 00 00 00 */ li r0, 0
/* 80348CCC 7C 1D 19 AE */ stbx r0, r29, r3
/* 80348CD0 38 00 00 01 */ li r0, 1
lbl_80348CD4:
/* 80348CD4 7C 03 03 78 */ mr r3, r0
/* 80348CD8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80348CDC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80348CE0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80348CE4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80348CE8 38 21 00 20 */ addi r1, r1, 0x20
/* 80348CEC 7C 08 03 A6 */ mtlr r0
/* 80348CF0 4E 80 00 20 */ blr

View File

@ -1,56 +0,0 @@
lbl_80348890:
/* 80348890 7C 08 02 A6 */ mflr r0
/* 80348894 90 01 00 04 */ stw r0, 4(r1)
/* 80348898 94 21 FF 68 */ stwu r1, -0x98(r1)
/* 8034889C 93 E1 00 94 */ stw r31, 0x94(r1)
/* 803488A0 3B E4 00 00 */ addi r31, r4, 0
/* 803488A4 93 C1 00 90 */ stw r30, 0x90(r1)
/* 803488A8 3B C3 00 00 */ addi r30, r3, 0
/* 803488AC 4B FF FC 7D */ bl DVDConvertPathToEntrynum
/* 803488B0 2C 03 00 00 */ cmpwi r3, 0
/* 803488B4 40 80 00 30 */ bge lbl_803488E4
/* 803488B8 38 61 00 10 */ addi r3, r1, 0x10
/* 803488BC 38 80 00 80 */ li r4, 0x80
/* 803488C0 48 00 03 71 */ bl DVDGetCurrentDir
/* 803488C4 3C 60 80 3D */ lis r3, lit_140@ha /* 0x803D1448@ha */
/* 803488C8 4C C6 31 82 */ crclr 6
/* 803488CC 38 63 14 48 */ addi r3, r3, lit_140@l /* 0x803D1448@l */
/* 803488D0 38 9E 00 00 */ addi r4, r30, 0
/* 803488D4 38 A1 00 10 */ addi r5, r1, 0x10
/* 803488D8 4B CB E1 E5 */ bl OSReport
/* 803488DC 38 60 00 00 */ li r3, 0
/* 803488E0 48 00 00 60 */ b lbl_80348940
lbl_803488E4:
/* 803488E4 1C A3 00 0C */ mulli r5, r3, 0xc
/* 803488E8 80 6D 91 DC */ lwz r3, FstStart(r13)
/* 803488EC 7C 03 28 2E */ lwzx r0, r3, r5
/* 803488F0 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 803488F4 40 82 00 0C */ bne lbl_80348900
/* 803488F8 38 00 00 00 */ li r0, 0
/* 803488FC 48 00 00 08 */ b lbl_80348904
lbl_80348900:
/* 80348900 38 00 00 01 */ li r0, 1
lbl_80348904:
/* 80348904 2C 00 00 00 */ cmpwi r0, 0
/* 80348908 41 82 00 0C */ beq lbl_80348914
/* 8034890C 38 60 00 00 */ li r3, 0
/* 80348910 48 00 00 30 */ b lbl_80348940
lbl_80348914:
/* 80348914 7C 63 2A 14 */ add r3, r3, r5
/* 80348918 80 83 00 04 */ lwz r4, 4(r3)
/* 8034891C 38 00 00 00 */ li r0, 0
/* 80348920 38 60 00 01 */ li r3, 1
/* 80348924 90 9F 00 30 */ stw r4, 0x30(r31)
/* 80348928 80 8D 91 DC */ lwz r4, FstStart(r13)
/* 8034892C 7C 84 2A 14 */ add r4, r4, r5
/* 80348930 80 84 00 08 */ lwz r4, 8(r4)
/* 80348934 90 9F 00 34 */ stw r4, 0x34(r31)
/* 80348938 90 1F 00 38 */ stw r0, 0x38(r31)
/* 8034893C 90 1F 00 0C */ stw r0, 0xc(r31)
lbl_80348940:
/* 80348940 80 01 00 9C */ lwz r0, 0x9c(r1)
/* 80348944 83 E1 00 94 */ lwz r31, 0x94(r1)
/* 80348948 83 C1 00 90 */ lwz r30, 0x90(r1)
/* 8034894C 38 21 00 98 */ addi r1, r1, 0x98
/* 80348950 7C 08 03 A6 */ mtlr r0
/* 80348954 4E 80 00 20 */ blr

View File

@ -1,54 +0,0 @@
lbl_80348F80:
/* 80348F80 7C 08 02 A6 */ mflr r0
/* 80348F84 90 01 00 04 */ stw r0, 4(r1)
/* 80348F88 94 21 FF 68 */ stwu r1, -0x98(r1)
/* 80348F8C 93 E1 00 94 */ stw r31, 0x94(r1)
/* 80348F90 3B E4 00 00 */ addi r31, r4, 0
/* 80348F94 93 C1 00 90 */ stw r30, 0x90(r1)
/* 80348F98 3B C3 00 00 */ addi r30, r3, 0
/* 80348F9C 4B FF F5 8D */ bl DVDConvertPathToEntrynum
/* 80348FA0 2C 03 00 00 */ cmpwi r3, 0
/* 80348FA4 40 80 00 34 */ bge lbl_80348FD8
/* 80348FA8 80 6D 91 E8 */ lwz r3, currentDirectory(r13)
/* 80348FAC 38 81 00 10 */ addi r4, r1, 0x10
/* 80348FB0 38 A0 00 80 */ li r5, 0x80
/* 80348FB4 4B FF FB 29 */ bl DVDConvertEntrynumToPath
/* 80348FB8 3C 60 80 3D */ lis r3, lit_311@ha /* 0x803D14E4@ha */
/* 80348FBC 4C C6 31 82 */ crclr 6
/* 80348FC0 38 63 14 E4 */ addi r3, r3, lit_311@l /* 0x803D14E4@l */
/* 80348FC4 38 9E 00 00 */ addi r4, r30, 0
/* 80348FC8 38 A1 00 10 */ addi r5, r1, 0x10
/* 80348FCC 4B CB DA F1 */ bl OSReport
/* 80348FD0 38 60 00 00 */ li r3, 0
/* 80348FD4 48 00 00 54 */ b lbl_80349028
lbl_80348FD8:
/* 80348FD8 1C A3 00 0C */ mulli r5, r3, 0xc
/* 80348FDC 80 8D 91 DC */ lwz r4, FstStart(r13)
/* 80348FE0 7C 04 28 2E */ lwzx r0, r4, r5
/* 80348FE4 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 80348FE8 40 82 00 0C */ bne lbl_80348FF4
/* 80348FEC 38 00 00 00 */ li r0, 0
/* 80348FF0 48 00 00 08 */ b lbl_80348FF8
lbl_80348FF4:
/* 80348FF4 38 00 00 01 */ li r0, 1
lbl_80348FF8:
/* 80348FF8 2C 00 00 00 */ cmpwi r0, 0
/* 80348FFC 40 82 00 0C */ bne lbl_80349008
/* 80349000 38 60 00 00 */ li r3, 0
/* 80349004 48 00 00 24 */ b lbl_80349028
lbl_80349008:
/* 80349008 90 7F 00 00 */ stw r3, 0(r31)
/* 8034900C 38 03 00 01 */ addi r0, r3, 1
/* 80349010 38 60 00 01 */ li r3, 1
/* 80349014 90 1F 00 04 */ stw r0, 4(r31)
/* 80349018 80 0D 91 DC */ lwz r0, FstStart(r13)
/* 8034901C 7C 80 2A 14 */ add r4, r0, r5
/* 80349020 80 04 00 08 */ lwz r0, 8(r4)
/* 80349024 90 1F 00 08 */ stw r0, 8(r31)
lbl_80349028:
/* 80349028 80 01 00 9C */ lwz r0, 0x9c(r1)
/* 8034902C 83 E1 00 94 */ lwz r31, 0x94(r1)
/* 80349030 83 C1 00 90 */ lwz r30, 0x90(r1)
/* 80349034 38 21 00 98 */ addi r1, r1, 0x98
/* 80349038 7C 08 03 A6 */ mtlr r0
/* 8034903C 4E 80 00 20 */ blr

View File

@ -1,50 +0,0 @@
lbl_80349040:
/* 80349040 80 E3 00 04 */ lwz r7, 4(r3)
/* 80349044 80 03 00 00 */ lwz r0, 0(r3)
/* 80349048 7C 07 00 40 */ cmplw r7, r0
/* 8034904C 40 81 00 10 */ ble lbl_8034905C
/* 80349050 80 03 00 08 */ lwz r0, 8(r3)
/* 80349054 7C 00 38 40 */ cmplw r0, r7
/* 80349058 41 81 00 0C */ bgt lbl_80349064
lbl_8034905C:
/* 8034905C 38 60 00 00 */ li r3, 0
/* 80349060 4E 80 00 20 */ blr
lbl_80349064:
/* 80349064 90 E4 00 00 */ stw r7, 0(r4)
/* 80349068 1D 07 00 0C */ mulli r8, r7, 0xc
/* 8034906C 80 AD 91 DC */ lwz r5, FstStart(r13)
/* 80349070 7C 05 40 2E */ lwzx r0, r5, r8
/* 80349074 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 80349078 40 82 00 0C */ bne lbl_80349084
/* 8034907C 38 00 00 00 */ li r0, 0
/* 80349080 48 00 00 08 */ b lbl_80349088
lbl_80349084:
/* 80349084 38 00 00 01 */ li r0, 1
lbl_80349088:
/* 80349088 90 04 00 04 */ stw r0, 4(r4)
/* 8034908C 80 AD 91 DC */ lwz r5, FstStart(r13)
/* 80349090 80 CD 91 E0 */ lwz r6, FstStringStart(r13)
/* 80349094 7C 05 40 2E */ lwzx r0, r5, r8
/* 80349098 54 00 02 3E */ clrlwi r0, r0, 8
/* 8034909C 7C 06 02 14 */ add r0, r6, r0
/* 803490A0 90 04 00 08 */ stw r0, 8(r4)
/* 803490A4 80 8D 91 DC */ lwz r4, FstStart(r13)
/* 803490A8 7C 04 40 2E */ lwzx r0, r4, r8
/* 803490AC 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7
/* 803490B0 40 82 00 0C */ bne lbl_803490BC
/* 803490B4 38 00 00 00 */ li r0, 0
/* 803490B8 48 00 00 08 */ b lbl_803490C0
lbl_803490BC:
/* 803490BC 38 00 00 01 */ li r0, 1
lbl_803490C0:
/* 803490C0 2C 00 00 00 */ cmpwi r0, 0
/* 803490C4 41 82 00 10 */ beq lbl_803490D4
/* 803490C8 7C 84 42 14 */ add r4, r4, r8
/* 803490CC 80 04 00 08 */ lwz r0, 8(r4)
/* 803490D0 48 00 00 08 */ b lbl_803490D8
lbl_803490D4:
/* 803490D4 38 07 00 01 */ addi r0, r7, 1
lbl_803490D8:
/* 803490D8 90 03 00 04 */ stw r0, 4(r3)
/* 803490DC 38 60 00 01 */ li r3, 1
/* 803490E0 4E 80 00 20 */ blr

View File

@ -1,82 +0,0 @@
lbl_80348E44:
/* 80348E44 7C 08 02 A6 */ mflr r0
/* 80348E48 90 01 00 04 */ stw r0, 4(r1)
/* 80348E4C 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 80348E50 BF 61 00 24 */ stmw r27, 0x24(r1)
/* 80348E54 7C DD 33 79 */ or. r29, r6, r6
/* 80348E58 3B E3 00 00 */ addi r31, r3, 0
/* 80348E5C 3B 64 00 00 */ addi r27, r4, 0
/* 80348E60 3B 85 00 00 */ addi r28, r5, 0
/* 80348E64 3B C7 00 00 */ addi r30, r7, 0
/* 80348E68 41 80 00 10 */ blt lbl_80348E78
/* 80348E6C 80 1F 00 34 */ lwz r0, 0x34(r31)
/* 80348E70 7C 1D 00 40 */ cmplw r29, r0
/* 80348E74 40 81 00 1C */ ble lbl_80348E90
lbl_80348E78:
/* 80348E78 3C 60 80 3D */ lis r3, lit_265@ha /* 0x803D14B4@ha */
/* 80348E7C 4C C6 31 82 */ crclr 6
/* 80348E80 38 A3 14 B4 */ addi r5, r3, lit_265@l /* 0x803D14B4@l */
/* 80348E84 38 6D 84 60 */ la r3, lit_118(r13) /* 804509E0-_SDA_BASE_ */
/* 80348E88 38 80 03 34 */ li r4, 0x334
/* 80348E8C 4B CB DF F1 */ bl OSPanic
lbl_80348E90:
/* 80348E90 7C 9D E2 15 */ add. r4, r29, r28
/* 80348E94 41 80 00 14 */ blt lbl_80348EA8
/* 80348E98 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 80348E9C 38 03 00 20 */ addi r0, r3, 0x20
/* 80348EA0 7C 04 00 40 */ cmplw r4, r0
/* 80348EA4 41 80 00 1C */ blt lbl_80348EC0
lbl_80348EA8:
/* 80348EA8 3C 60 80 3D */ lis r3, lit_265@ha /* 0x803D14B4@ha */
/* 80348EAC 4C C6 31 82 */ crclr 6
/* 80348EB0 38 A3 14 B4 */ addi r5, r3, lit_265@l /* 0x803D14B4@l */
/* 80348EB4 38 6D 84 60 */ la r3, lit_118(r13) /* 804509E0-_SDA_BASE_ */
/* 80348EB8 38 80 03 3A */ li r4, 0x33a
/* 80348EBC 4B CB DF C1 */ bl OSPanic
lbl_80348EC0:
/* 80348EC0 80 1F 00 30 */ lwz r0, 0x30(r31)
/* 80348EC4 3C 80 80 35 */ lis r4, cbForReadSync@ha /* 0x80348F5C@ha */
/* 80348EC8 38 E4 8F 5C */ addi r7, r4, cbForReadSync@l /* 0x80348F5C@l */
/* 80348ECC 38 7F 00 00 */ addi r3, r31, 0
/* 80348ED0 38 9B 00 00 */ addi r4, r27, 0
/* 80348ED4 38 BC 00 00 */ addi r5, r28, 0
/* 80348ED8 39 1E 00 00 */ addi r8, r30, 0
/* 80348EDC 7C C0 EA 14 */ add r6, r0, r29
/* 80348EE0 48 00 1E 4D */ bl DVDReadAbsAsyncPrio
/* 80348EE4 2C 03 00 00 */ cmpwi r3, 0
/* 80348EE8 40 82 00 0C */ bne lbl_80348EF4
/* 80348EEC 38 60 FF FF */ li r3, -1
/* 80348EF0 48 00 00 58 */ b lbl_80348F48
lbl_80348EF4:
/* 80348EF4 4B FF 48 01 */ bl OSDisableInterrupts
/* 80348EF8 7C 7E 1B 78 */ mr r30, r3
lbl_80348EFC:
/* 80348EFC 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80348F00 2C 00 00 00 */ cmpwi r0, 0
/* 80348F04 40 82 00 0C */ bne lbl_80348F10
/* 80348F08 83 FF 00 20 */ lwz r31, 0x20(r31)
/* 80348F0C 48 00 00 30 */ b lbl_80348F3C
lbl_80348F10:
/* 80348F10 2C 00 FF FF */ cmpwi r0, -1
/* 80348F14 40 82 00 0C */ bne lbl_80348F20
/* 80348F18 3B E0 FF FF */ li r31, -1
/* 80348F1C 48 00 00 20 */ b lbl_80348F3C
lbl_80348F20:
/* 80348F20 2C 00 00 0A */ cmpwi r0, 0xa
/* 80348F24 40 82 00 0C */ bne lbl_80348F30
/* 80348F28 3B E0 FF FD */ li r31, -3
/* 80348F2C 48 00 00 10 */ b lbl_80348F3C
lbl_80348F30:
/* 80348F30 38 6D 91 F0 */ la r3, __DVDThreadQueue(r13) /* 80451770-_SDA_BASE_ */
/* 80348F34 4B FF 8C 79 */ bl OSSleepThread
/* 80348F38 4B FF FF C4 */ b lbl_80348EFC
lbl_80348F3C:
/* 80348F3C 7F C3 F3 78 */ mr r3, r30
/* 80348F40 4B FF 47 DD */ bl OSRestoreInterrupts
/* 80348F44 7F E3 FB 78 */ mr r3, r31
lbl_80348F48:
/* 80348F48 BB 61 00 24 */ lmw r27, 0x24(r1)
/* 80348F4C 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80348F50 38 21 00 38 */ addi r1, r1, 0x38
/* 80348F54 7C 08 03 A6 */ mtlr r0
/* 80348F58 4E 80 00 20 */ blr

View File

@ -1,15 +0,0 @@
lbl_803484F0:
/* 803484F0 3C 60 80 00 */ lis r3, 0x8000 /* 0x80000038@ha */
/* 803484F4 90 6D 91 D8 */ stw r3, BootInfo(r13)
/* 803484F8 80 03 00 38 */ lwz r0, 0x0038(r3) /* 0x80000038@l */
/* 803484FC 90 0D 91 DC */ stw r0, FstStart(r13)
/* 80348500 80 6D 91 DC */ lwz r3, FstStart(r13)
/* 80348504 28 03 00 00 */ cmplwi r3, 0
/* 80348508 4D 82 00 20 */ beqlr
/* 8034850C 80 03 00 08 */ lwz r0, 8(r3)
/* 80348510 90 0D 91 E4 */ stw r0, MaxEntryNum(r13)
/* 80348514 80 0D 91 E4 */ lwz r0, MaxEntryNum(r13)
/* 80348518 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8034851C 7C 03 02 14 */ add r0, r3, r0
/* 80348520 90 0D 91 E0 */ stw r0, FstStringStart(r13)
/* 80348524 4E 80 00 20 */ blr

View File

@ -1,14 +0,0 @@
lbl_80348E14:
/* 80348E14 7C 08 02 A6 */ mflr r0
/* 80348E18 90 01 00 04 */ stw r0, 4(r1)
/* 80348E1C 94 21 FF F8 */ stwu r1, -8(r1)
/* 80348E20 81 84 00 38 */ lwz r12, 0x38(r4)
/* 80348E24 28 0C 00 00 */ cmplwi r12, 0
/* 80348E28 41 82 00 0C */ beq lbl_80348E34
/* 80348E2C 7D 88 03 A6 */ mtlr r12
/* 80348E30 4E 80 00 21 */ blrl
lbl_80348E34:
/* 80348E34 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80348E38 38 21 00 08 */ addi r1, r1, 8
/* 80348E3C 7C 08 03 A6 */ mtlr r0
/* 80348E40 4E 80 00 20 */ blr

View File

@ -1,10 +0,0 @@
lbl_80348F5C:
/* 80348F5C 7C 08 02 A6 */ mflr r0
/* 80348F60 38 6D 91 F0 */ la r3, __DVDThreadQueue(r13) /* 80451770-_SDA_BASE_ */
/* 80348F64 90 01 00 04 */ stw r0, 4(r1)
/* 80348F68 94 21 FF F8 */ stwu r1, -8(r1)
/* 80348F6C 4B FF 8D 2D */ bl OSWakeupThread
/* 80348F70 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80348F74 38 21 00 08 */ addi r1, r1, 8
/* 80348F78 7C 08 03 A6 */ mtlr r0
/* 80348F7C 4E 80 00 20 */ blr

View File

@ -1,101 +0,0 @@
lbl_8034897C:
/* 8034897C 7C 08 02 A6 */ mflr r0
/* 80348980 28 03 00 00 */ cmplwi r3, 0
/* 80348984 90 01 00 04 */ stw r0, 4(r1)
/* 80348988 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8034898C 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80348990 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80348994 3B C5 00 00 */ addi r30, r5, 0
/* 80348998 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8034899C 3B A4 00 00 */ addi r29, r4, 0
/* 803489A0 93 81 00 20 */ stw r28, 0x20(r1)
/* 803489A4 40 82 00 0C */ bne lbl_803489B0
/* 803489A8 38 60 00 00 */ li r3, 0
/* 803489AC 48 00 01 10 */ b lbl_80348ABC
lbl_803489B0:
/* 803489B0 80 8D 91 DC */ lwz r4, FstStart(r13)
/* 803489B4 1C 63 00 0C */ mulli r3, r3, 0xc
/* 803489B8 80 CD 91 E0 */ lwz r6, FstStringStart(r13)
/* 803489BC 38 A4 00 04 */ addi r5, r4, 4
/* 803489C0 7C 04 18 2E */ lwzx r0, r4, r3
/* 803489C4 7C 65 18 2E */ lwzx r3, r5, r3
/* 803489C8 54 00 02 3E */ clrlwi r0, r0, 8
/* 803489CC 28 03 00 00 */ cmplwi r3, 0
/* 803489D0 7F E6 02 14 */ add r31, r6, r0
/* 803489D4 40 82 00 0C */ bne lbl_803489E0
/* 803489D8 38 60 00 00 */ li r3, 0
/* 803489DC 48 00 00 80 */ b lbl_80348A5C
lbl_803489E0:
/* 803489E0 1C 63 00 0C */ mulli r3, r3, 0xc
/* 803489E4 7C 04 18 2E */ lwzx r0, r4, r3
/* 803489E8 7F A4 EB 78 */ mr r4, r29
/* 803489EC 7C 65 18 2E */ lwzx r3, r5, r3
/* 803489F0 38 BE 00 00 */ addi r5, r30, 0
/* 803489F4 54 00 02 3E */ clrlwi r0, r0, 8
/* 803489F8 7F 86 02 14 */ add r28, r6, r0
/* 803489FC 4B FF FF 81 */ bl entryToPath
/* 80348A00 7C 03 F0 40 */ cmplw r3, r30
/* 80348A04 40 82 00 08 */ bne lbl_80348A0C
/* 80348A08 48 00 00 54 */ b lbl_80348A5C
lbl_80348A0C:
/* 80348A0C 38 03 00 00 */ addi r0, r3, 0
/* 80348A10 38 63 00 01 */ addi r3, r3, 1
/* 80348A14 38 80 00 2F */ li r4, 0x2f
/* 80348A18 7C C3 F0 50 */ subf r6, r3, r30
/* 80348A1C 7C 9D 01 AE */ stbx r4, r29, r0
/* 80348A20 38 86 00 00 */ addi r4, r6, 0
/* 80348A24 7C BD 1A 14 */ add r5, r29, r3
/* 80348A28 48 00 00 18 */ b lbl_80348A40
lbl_80348A2C:
/* 80348A2C 88 1C 00 00 */ lbz r0, 0(r28)
/* 80348A30 3B 9C 00 01 */ addi r28, r28, 1
/* 80348A34 38 84 FF FF */ addi r4, r4, -1
/* 80348A38 98 05 00 00 */ stb r0, 0(r5)
/* 80348A3C 38 A5 00 01 */ addi r5, r5, 1
lbl_80348A40:
/* 80348A40 28 04 00 00 */ cmplwi r4, 0
/* 80348A44 41 82 00 10 */ beq lbl_80348A54
/* 80348A48 88 1C 00 00 */ lbz r0, 0(r28)
/* 80348A4C 7C 00 07 75 */ extsb. r0, r0
/* 80348A50 40 82 FF DC */ bne lbl_80348A2C
lbl_80348A54:
/* 80348A54 7C 04 30 50 */ subf r0, r4, r6
/* 80348A58 7C 63 02 14 */ add r3, r3, r0
lbl_80348A5C:
/* 80348A5C 7C 03 F0 40 */ cmplw r3, r30
/* 80348A60 40 82 00 08 */ bne lbl_80348A68
/* 80348A64 48 00 00 58 */ b lbl_80348ABC
lbl_80348A68:
/* 80348A68 38 03 00 00 */ addi r0, r3, 0
/* 80348A6C 38 63 00 01 */ addi r3, r3, 1
/* 80348A70 38 80 00 2F */ li r4, 0x2f
/* 80348A74 7C E3 F0 50 */ subf r7, r3, r30
/* 80348A78 7C 9D 01 AE */ stbx r4, r29, r0
/* 80348A7C 38 DF 00 00 */ addi r6, r31, 0
/* 80348A80 38 87 00 00 */ addi r4, r7, 0
/* 80348A84 7C BD 1A 14 */ add r5, r29, r3
/* 80348A88 48 00 00 18 */ b lbl_80348AA0
lbl_80348A8C:
/* 80348A8C 88 06 00 00 */ lbz r0, 0(r6)
/* 80348A90 38 C6 00 01 */ addi r6, r6, 1
/* 80348A94 38 84 FF FF */ addi r4, r4, -1
/* 80348A98 98 05 00 00 */ stb r0, 0(r5)
/* 80348A9C 38 A5 00 01 */ addi r5, r5, 1
lbl_80348AA0:
/* 80348AA0 28 04 00 00 */ cmplwi r4, 0
/* 80348AA4 41 82 00 10 */ beq lbl_80348AB4
/* 80348AA8 88 06 00 00 */ lbz r0, 0(r6)
/* 80348AAC 7C 00 07 75 */ extsb. r0, r0
/* 80348AB0 40 82 FF DC */ bne lbl_80348A8C
lbl_80348AB4:
/* 80348AB4 7C 04 38 50 */ subf r0, r4, r7
/* 80348AB8 7C 63 02 14 */ add r3, r3, r0
lbl_80348ABC:
/* 80348ABC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80348AC0 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80348AC4 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80348AC8 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80348ACC 83 81 00 20 */ lwz r28, 0x20(r1)
/* 80348AD0 38 21 00 30 */ addi r1, r1, 0x30
/* 80348AD4 7C 08 03 A6 */ mtlr r0
/* 80348AD8 4E 80 00 20 */ blr

View File

@ -1,26 +0,0 @@
lbl_8034B9B4:
/* 8034B9B4 7C 08 02 A6 */ mflr r0
/* 8034B9B8 90 01 00 04 */ stw r0, 4(r1)
/* 8034B9BC 94 21 FF F8 */ stwu r1, -8(r1)
/* 8034B9C0 4B FF 1D 35 */ bl OSDisableInterrupts
/* 8034B9C4 38 00 00 04 */ li r0, 4
/* 8034B9C8 3C 80 80 45 */ lis r4, WaitingQueue@ha /* 0x8044C998@ha */
/* 8034B9CC 7C 09 03 A6 */ mtctr r0
/* 8034B9D0 38 84 C9 98 */ addi r4, r4, WaitingQueue@l /* 0x8044C998@l */
lbl_8034B9D4:
/* 8034B9D4 80 04 00 00 */ lwz r0, 0(r4)
/* 8034B9D8 7C 00 20 40 */ cmplw r0, r4
/* 8034B9DC 41 82 00 10 */ beq lbl_8034B9EC
/* 8034B9E0 4B FF 1D 3D */ bl OSRestoreInterrupts
/* 8034B9E4 38 60 00 01 */ li r3, 1
/* 8034B9E8 48 00 00 14 */ b lbl_8034B9FC
lbl_8034B9EC:
/* 8034B9EC 38 84 00 08 */ addi r4, r4, 8
/* 8034B9F0 42 00 FF E4 */ bdnz lbl_8034B9D4
/* 8034B9F4 4B FF 1D 29 */ bl OSRestoreInterrupts
/* 8034B9F8 38 60 00 00 */ li r3, 0
lbl_8034B9FC:
/* 8034B9FC 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8034BA00 38 21 00 08 */ addi r1, r1, 8
/* 8034BA04 7C 08 03 A6 */ mtlr r0
/* 8034BA08 4E 80 00 20 */ blr

View File

@ -1,15 +0,0 @@
lbl_8034B874:
/* 8034B874 3C 60 80 45 */ lis r3, WaitingQueue@ha /* 0x8044C998@ha */
/* 8034B878 38 63 C9 98 */ addi r3, r3, WaitingQueue@l /* 0x8044C998@l */
/* 8034B87C 90 63 00 00 */ stw r3, 0(r3)
/* 8034B880 38 A3 00 08 */ addi r5, r3, 8
/* 8034B884 38 83 00 10 */ addi r4, r3, 0x10
/* 8034B888 90 63 00 04 */ stw r3, 4(r3)
/* 8034B88C 38 63 00 18 */ addi r3, r3, 0x18
/* 8034B890 90 A5 00 00 */ stw r5, 0(r5)
/* 8034B894 90 A5 00 04 */ stw r5, 4(r5)
/* 8034B898 90 84 00 00 */ stw r4, 0(r4)
/* 8034B89C 90 84 00 04 */ stw r4, 4(r4)
/* 8034B8A0 90 63 00 00 */ stw r3, 0(r3)
/* 8034B8A4 90 63 00 04 */ stw r3, 4(r3)
/* 8034B8A8 4E 80 00 20 */ blr

View File

@ -1,28 +0,0 @@
lbl_8034BA0C:
/* 8034BA0C 7C 08 02 A6 */ mflr r0
/* 8034BA10 90 01 00 04 */ stw r0, 4(r1)
/* 8034BA14 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8034BA18 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8034BA1C 7C 7F 1B 78 */ mr r31, r3
/* 8034BA20 4B FF 1C D5 */ bl OSDisableInterrupts
/* 8034BA24 80 9F 00 04 */ lwz r4, 4(r31)
/* 8034BA28 80 BF 00 00 */ lwz r5, 0(r31)
/* 8034BA2C 28 04 00 00 */ cmplwi r4, 0
/* 8034BA30 41 82 00 0C */ beq lbl_8034BA3C
/* 8034BA34 28 05 00 00 */ cmplwi r5, 0
/* 8034BA38 40 82 00 10 */ bne lbl_8034BA48
lbl_8034BA3C:
/* 8034BA3C 4B FF 1C E1 */ bl OSRestoreInterrupts
/* 8034BA40 38 60 00 00 */ li r3, 0
/* 8034BA44 48 00 00 14 */ b lbl_8034BA58
lbl_8034BA48:
/* 8034BA48 90 A4 00 00 */ stw r5, 0(r4)
/* 8034BA4C 90 85 00 04 */ stw r4, 4(r5)
/* 8034BA50 4B FF 1C CD */ bl OSRestoreInterrupts
/* 8034BA54 38 60 00 01 */ li r3, 1
lbl_8034BA58:
/* 8034BA58 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8034BA5C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8034BA60 38 21 00 18 */ addi r1, r1, 0x18
/* 8034BA64 7C 08 03 A6 */ mtlr r0
/* 8034BA68 4E 80 00 20 */ blr

View File

@ -1,44 +0,0 @@
lbl_8034B914:
/* 8034B914 7C 08 02 A6 */ mflr r0
/* 8034B918 90 01 00 04 */ stw r0, 4(r1)
/* 8034B91C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8034B920 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8034B924 4B FF 1D D1 */ bl OSDisableInterrupts
/* 8034B928 38 00 00 04 */ li r0, 4
/* 8034B92C 3C 80 80 45 */ lis r4, WaitingQueue@ha /* 0x8044C998@ha */
/* 8034B930 7C 09 03 A6 */ mtctr r0
/* 8034B934 38 84 C9 98 */ addi r4, r4, WaitingQueue@l /* 0x8044C998@l */
/* 8034B938 3B E0 00 00 */ li r31, 0
lbl_8034B93C:
/* 8034B93C 80 04 00 00 */ lwz r0, 0(r4)
/* 8034B940 7C 00 20 40 */ cmplw r0, r4
/* 8034B944 41 82 00 48 */ beq lbl_8034B98C
/* 8034B948 4B FF 1D D5 */ bl OSRestoreInterrupts
/* 8034B94C 4B FF 1D A9 */ bl OSDisableInterrupts
/* 8034B950 3C 80 80 45 */ lis r4, WaitingQueue@ha /* 0x8044C998@ha */
/* 8034B954 57 E5 18 38 */ slwi r5, r31, 3
/* 8034B958 38 04 C9 98 */ addi r0, r4, WaitingQueue@l /* 0x8044C998@l */
/* 8034B95C 7C A0 2A 14 */ add r5, r0, r5
/* 8034B960 83 E5 00 00 */ lwz r31, 0(r5)
/* 8034B964 80 1F 00 00 */ lwz r0, 0(r31)
/* 8034B968 90 05 00 00 */ stw r0, 0(r5)
/* 8034B96C 80 9F 00 00 */ lwz r4, 0(r31)
/* 8034B970 90 A4 00 04 */ stw r5, 4(r4)
/* 8034B974 4B FF 1D A9 */ bl OSRestoreInterrupts
/* 8034B978 38 00 00 00 */ li r0, 0
/* 8034B97C 90 1F 00 00 */ stw r0, 0(r31)
/* 8034B980 7F E3 FB 78 */ mr r3, r31
/* 8034B984 90 1F 00 04 */ stw r0, 4(r31)
/* 8034B988 48 00 00 18 */ b lbl_8034B9A0
lbl_8034B98C:
/* 8034B98C 38 84 00 08 */ addi r4, r4, 8
/* 8034B990 3B FF 00 01 */ addi r31, r31, 1
/* 8034B994 42 00 FF A8 */ bdnz lbl_8034B93C
/* 8034B998 4B FF 1D 85 */ bl OSRestoreInterrupts
/* 8034B99C 38 60 00 00 */ li r3, 0
lbl_8034B9A0:
/* 8034B9A0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8034B9A4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8034B9A8 38 21 00 10 */ addi r1, r1, 0x10
/* 8034B9AC 7C 08 03 A6 */ mtlr r0
/* 8034B9B0 4E 80 00 20 */ blr

View File

@ -1,27 +0,0 @@
lbl_8034B8AC:
/* 8034B8AC 7C 08 02 A6 */ mflr r0
/* 8034B8B0 90 01 00 04 */ stw r0, 4(r1)
/* 8034B8B4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8034B8B8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8034B8BC 3B E4 00 00 */ addi r31, r4, 0
/* 8034B8C0 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8034B8C4 3B C3 00 00 */ addi r30, r3, 0
/* 8034B8C8 4B FF 1E 2D */ bl OSDisableInterrupts
/* 8034B8CC 3C 80 80 45 */ lis r4, WaitingQueue@ha /* 0x8044C998@ha */
/* 8034B8D0 57 C5 18 38 */ slwi r5, r30, 3
/* 8034B8D4 38 04 C9 98 */ addi r0, r4, WaitingQueue@l /* 0x8044C998@l */
/* 8034B8D8 7C A0 2A 14 */ add r5, r0, r5
/* 8034B8DC 80 85 00 04 */ lwz r4, 4(r5)
/* 8034B8E0 93 E4 00 00 */ stw r31, 0(r4)
/* 8034B8E4 80 05 00 04 */ lwz r0, 4(r5)
/* 8034B8E8 90 1F 00 04 */ stw r0, 4(r31)
/* 8034B8EC 90 BF 00 00 */ stw r5, 0(r31)
/* 8034B8F0 93 E5 00 04 */ stw r31, 4(r5)
/* 8034B8F4 4B FF 1E 29 */ bl OSRestoreInterrupts
/* 8034B8F8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8034B8FC 38 60 00 01 */ li r3, 1
/* 8034B900 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8034B904 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8034B908 38 21 00 18 */ addi r1, r1, 0x18
/* 8034B90C 7C 08 03 A6 */ mtlr r0
/* 8034B910 4E 80 00 20 */ blr

View File

@ -1,96 +0,0 @@
lbl_8033B990:
/* 8033B990 7C 08 02 A6 */ mflr r0
/* 8033B994 90 01 00 04 */ stw r0, 4(r1)
/* 8033B998 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8033B99C 93 E1 00 7C */ stw r31, 0x7c(r1)
/* 8033B9A0 93 C1 00 78 */ stw r30, 0x78(r1)
/* 8033B9A4 93 A1 00 74 */ stw r29, 0x74(r1)
/* 8033B9A8 40 86 00 24 */ bne cr1, lbl_8033B9CC
/* 8033B9AC D8 21 00 28 */ stfd f1, 0x28(r1)
/* 8033B9B0 D8 41 00 30 */ stfd f2, 0x30(r1)
/* 8033B9B4 D8 61 00 38 */ stfd f3, 0x38(r1)
/* 8033B9B8 D8 81 00 40 */ stfd f4, 0x40(r1)
/* 8033B9BC D8 A1 00 48 */ stfd f5, 0x48(r1)
/* 8033B9C0 D8 C1 00 50 */ stfd f6, 0x50(r1)
/* 8033B9C4 D8 E1 00 58 */ stfd f7, 0x58(r1)
/* 8033B9C8 D9 01 00 60 */ stfd f8, 0x60(r1)
lbl_8033B9CC:
/* 8033B9CC 90 61 00 08 */ stw r3, 8(r1)
/* 8033B9D0 90 81 00 0C */ stw r4, 0xc(r1)
/* 8033B9D4 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8033B9D8 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8033B9DC 90 E1 00 18 */ stw r7, 0x18(r1)
/* 8033B9E0 91 01 00 1C */ stw r8, 0x1c(r1)
/* 8033B9E4 91 21 00 20 */ stw r9, 0x20(r1)
/* 8033B9E8 91 41 00 24 */ stw r10, 0x24(r1)
/* 8033B9EC 7C 9D 23 78 */ mr r29, r4
/* 8033B9F0 3C 60 80 3D */ lis r3, lit_63@ha /* 0x803CF510@ha */
/* 8033B9F4 3B E3 F5 10 */ addi r31, r3, lit_63@l /* 0x803CF510@l */
/* 8033B9F8 4B FF E3 95 */ bl PPCMfhid2
/* 8033B9FC 7C 7E 1B 78 */ mr r30, r3
/* 8033BA00 4C C6 31 82 */ crclr 6
/* 8033BA04 38 7F 00 2C */ addi r3, r31, 0x2c
/* 8033BA08 4B CC B0 B5 */ bl OSReport
/* 8033BA0C 80 BD 01 9C */ lwz r5, 0x19c(r29)
/* 8033BA10 7F C4 F3 78 */ mr r4, r30
/* 8033BA14 38 7F 00 44 */ addi r3, r31, 0x44
/* 8033BA18 4C C6 31 82 */ crclr 6
/* 8033BA1C 4B CC B0 A1 */ bl OSReport
/* 8033BA20 57 C0 02 16 */ rlwinm r0, r30, 0, 8, 0xb
/* 8033BA24 28 00 00 00 */ cmplwi r0, 0
/* 8033BA28 41 82 00 14 */ beq lbl_8033BA3C
/* 8033BA2C 80 1D 01 9C */ lwz r0, 0x19c(r29)
/* 8033BA30 54 00 02 94 */ rlwinm r0, r0, 0, 0xa, 0xa
/* 8033BA34 28 00 00 00 */ cmplwi r0, 0
/* 8033BA38 40 82 00 1C */ bne lbl_8033BA54
lbl_8033BA3C:
/* 8033BA3C 38 7F 00 60 */ addi r3, r31, 0x60
/* 8033BA40 4C C6 31 82 */ crclr 6
/* 8033BA44 4B CC B0 79 */ bl OSReport
/* 8033BA48 7F A3 EB 78 */ mr r3, r29
/* 8033BA4C 48 00 06 95 */ bl OSDumpContext
/* 8033BA50 4B FF E2 B1 */ bl PPCHalt
lbl_8033BA54:
/* 8033BA54 38 7F 00 90 */ addi r3, r31, 0x90
/* 8033BA58 4C C6 31 82 */ crclr 6
/* 8033BA5C 4B CC B0 61 */ bl OSReport
/* 8033BA60 38 7F 00 CC */ addi r3, r31, 0xcc
/* 8033BA64 4C C6 31 82 */ crclr 6
/* 8033BA68 4B CC B0 55 */ bl OSReport
/* 8033BA6C 57 C0 02 10 */ rlwinm r0, r30, 0, 8, 8
/* 8033BA70 28 00 00 00 */ cmplwi r0, 0
/* 8033BA74 41 82 00 10 */ beq lbl_8033BA84
/* 8033BA78 38 7F 01 04 */ addi r3, r31, 0x104
/* 8033BA7C 4C C6 31 82 */ crclr 6
/* 8033BA80 4B CC B0 3D */ bl OSReport
lbl_8033BA84:
/* 8033BA84 57 C0 02 52 */ rlwinm r0, r30, 0, 9, 9
/* 8033BA88 28 00 00 00 */ cmplwi r0, 0
/* 8033BA8C 41 82 00 10 */ beq lbl_8033BA9C
/* 8033BA90 38 7F 01 44 */ addi r3, r31, 0x144
/* 8033BA94 4C C6 31 82 */ crclr 6
/* 8033BA98 4B CC B0 25 */ bl OSReport
lbl_8033BA9C:
/* 8033BA9C 57 C0 02 94 */ rlwinm r0, r30, 0, 0xa, 0xa
/* 8033BAA0 28 00 00 00 */ cmplwi r0, 0
/* 8033BAA4 41 82 00 10 */ beq lbl_8033BAB4
/* 8033BAA8 38 7F 01 70 */ addi r3, r31, 0x170
/* 8033BAAC 4C C6 31 82 */ crclr 6
/* 8033BAB0 4B CC B0 0D */ bl OSReport
lbl_8033BAB4:
/* 8033BAB4 57 C0 02 D6 */ rlwinm r0, r30, 0, 0xb, 0xb
/* 8033BAB8 28 00 00 00 */ cmplwi r0, 0
/* 8033BABC 41 82 00 10 */ beq lbl_8033BACC
/* 8033BAC0 38 7F 01 90 */ addi r3, r31, 0x190
/* 8033BAC4 4C C6 31 82 */ crclr 6
/* 8033BAC8 4B CC AF F5 */ bl OSReport
lbl_8033BACC:
/* 8033BACC 7F C3 F3 78 */ mr r3, r30
/* 8033BAD0 4B FF E2 C5 */ bl PPCMthid2
/* 8033BAD4 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8033BAD8 83 E1 00 7C */ lwz r31, 0x7c(r1)
/* 8033BADC 83 C1 00 78 */ lwz r30, 0x78(r1)
/* 8033BAE0 83 A1 00 74 */ lwz r29, 0x74(r1)
/* 8033BAE4 38 21 00 80 */ addi r1, r1, 0x80
/* 8033BAE8 7C 08 03 A6 */ mtlr r0
/* 8033BAEC 4E 80 00 20 */ blr

View File

@ -1,45 +0,0 @@
lbl_8033B8F8:
/* 8033B8F8 7C 08 02 A6 */ mflr r0
/* 8033B8FC 90 01 00 04 */ stw r0, 4(r1)
/* 8033B900 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8033B904 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8033B908 7C 00 04 AC */ sync
/* 8033B90C 4B FF E3 D5 */ bl PPCMfl2cr
/* 8033B910 54 63 00 7E */ clrlwi r3, r3, 1
/* 8033B914 4B FF E3 D5 */ bl PPCMtl2cr
/* 8033B918 7C 00 04 AC */ sync
/* 8033B91C 4B FF E3 C5 */ bl PPCMfl2cr
/* 8033B920 64 63 00 20 */ oris r3, r3, 0x20
/* 8033B924 4B FF E3 C5 */ bl PPCMtl2cr
/* 8033B928 48 00 00 04 */ b lbl_8033B92C
lbl_8033B92C:
/* 8033B92C 48 00 00 04 */ b lbl_8033B930
lbl_8033B930:
/* 8033B930 4B FF E3 B1 */ bl PPCMfl2cr
/* 8033B934 54 60 07 FE */ clrlwi r0, r3, 0x1f
/* 8033B938 28 00 00 00 */ cmplwi r0, 0
/* 8033B93C 40 82 FF F4 */ bne lbl_8033B930
/* 8033B940 4B FF E3 A1 */ bl PPCMfl2cr
/* 8033B944 54 63 02 D2 */ rlwinm r3, r3, 0, 0xb, 9
/* 8033B948 4B FF E3 A1 */ bl PPCMtl2cr
/* 8033B94C 48 00 00 04 */ b lbl_8033B950
lbl_8033B950:
/* 8033B950 3C 60 80 3D */ lis r3, lit_63@ha /* 0x803CF510@ha */
/* 8033B954 3B E3 F5 10 */ addi r31, r3, lit_63@l /* 0x803CF510@l */
/* 8033B958 48 00 00 04 */ b lbl_8033B95C
lbl_8033B95C:
/* 8033B95C 48 00 00 10 */ b lbl_8033B96C
lbl_8033B960:
/* 8033B960 7F E3 FB 78 */ mr r3, r31
/* 8033B964 4C C6 31 82 */ crclr 6
/* 8033B968 48 00 AA CD */ bl DBPrintf
lbl_8033B96C:
/* 8033B96C 4B FF E3 75 */ bl PPCMfl2cr
/* 8033B970 54 60 07 FE */ clrlwi r0, r3, 0x1f
/* 8033B974 28 00 00 00 */ cmplwi r0, 0
/* 8033B978 40 82 FF E8 */ bne lbl_8033B960
/* 8033B97C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8033B980 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8033B984 38 21 00 10 */ addi r1, r1, 0x10
/* 8033B988 7C 08 03 A6 */ mtlr r0
/* 8033B98C 4E 80 00 20 */ blr

View File

@ -1,65 +0,0 @@
lbl_8033BAF0:
/* 8033BAF0 7C 08 02 A6 */ mflr r0
/* 8033BAF4 90 01 00 04 */ stw r0, 4(r1)
/* 8033BAF8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8033BAFC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8033BB00 93 C1 00 08 */ stw r30, 8(r1)
/* 8033BB04 3C 60 80 3D */ lis r3, lit_63@ha /* 0x803CF510@ha */
/* 8033BB08 3B E3 F5 10 */ addi r31, r3, lit_63@l /* 0x803CF510@l */
/* 8033BB0C 4B FF E1 C5 */ bl PPCMfhid0
/* 8033BB10 54 60 04 20 */ rlwinm r0, r3, 0, 0x10, 0x10
/* 8033BB14 28 00 00 00 */ cmplwi r0, 0
/* 8033BB18 40 82 00 14 */ bne lbl_8033BB2C
/* 8033BB1C 4B FF FB B9 */ bl ICEnable
/* 8033BB20 38 7F 01 AC */ addi r3, r31, 0x1ac
/* 8033BB24 4C C6 31 82 */ crclr 6
/* 8033BB28 48 00 A9 0D */ bl DBPrintf
lbl_8033BB2C:
/* 8033BB2C 4B FF E1 A5 */ bl PPCMfhid0
/* 8033BB30 54 60 04 62 */ rlwinm r0, r3, 0, 0x11, 0x11
/* 8033BB34 28 00 00 00 */ cmplwi r0, 0
/* 8033BB38 40 82 00 14 */ bne lbl_8033BB4C
/* 8033BB3C 4B FF FA 31 */ bl DCEnable
/* 8033BB40 38 7F 01 C8 */ addi r3, r31, 0x1c8
/* 8033BB44 4C C6 31 82 */ crclr 6
/* 8033BB48 48 00 A8 ED */ bl DBPrintf
lbl_8033BB4C:
/* 8033BB4C 4B FF E1 95 */ bl PPCMfl2cr
/* 8033BB50 54 60 00 00 */ rlwinm r0, r3, 0, 0, 0
/* 8033BB54 28 00 00 00 */ cmplwi r0, 0
/* 8033BB58 40 82 00 58 */ bne lbl_8033BBB0
/* 8033BB5C 4B FF E1 65 */ bl PPCMfmsr
/* 8033BB60 7C 7E 1B 78 */ mr r30, r3
/* 8033BB64 7C 00 04 AC */ sync
/* 8033BB68 38 60 00 30 */ li r3, 0x30
/* 8033BB6C 4B FF E1 5D */ bl PPCMtmsr
/* 8033BB70 7C 00 04 AC */ sync
/* 8033BB74 7C 00 04 AC */ sync
/* 8033BB78 4B FF E1 69 */ bl PPCMfl2cr
/* 8033BB7C 54 63 00 7E */ clrlwi r3, r3, 1
/* 8033BB80 4B FF E1 69 */ bl PPCMtl2cr
/* 8033BB84 7C 00 04 AC */ sync
/* 8033BB88 4B FF FD 71 */ bl L2GlobalInvalidate
/* 8033BB8C 7F C3 F3 78 */ mr r3, r30
/* 8033BB90 4B FF E1 39 */ bl PPCMtmsr
/* 8033BB94 4B FF E1 4D */ bl PPCMfl2cr
/* 8033BB98 64 60 80 00 */ oris r0, r3, 0x8000
/* 8033BB9C 54 03 02 D2 */ rlwinm r3, r0, 0, 0xb, 9
/* 8033BBA0 4B FF E1 49 */ bl PPCMtl2cr
/* 8033BBA4 38 7F 01 E4 */ addi r3, r31, 0x1e4
/* 8033BBA8 4C C6 31 82 */ crclr 6
/* 8033BBAC 48 00 A8 89 */ bl DBPrintf
lbl_8033BBB0:
/* 8033BBB0 3C 60 80 34 */ lis r3, DMAErrorHandler@ha /* 0x8033B990@ha */
/* 8033BBB4 38 83 B9 90 */ addi r4, r3, DMAErrorHandler@l /* 0x8033B990@l */
/* 8033BBB8 38 60 00 01 */ li r3, 1
/* 8033BBBC 48 00 09 C5 */ bl OSSetErrorHandler
/* 8033BBC0 38 7F 01 FC */ addi r3, r31, 0x1fc
/* 8033BBC4 4C C6 31 82 */ crclr 6
/* 8033BBC8 48 00 A8 6D */ bl DBPrintf
/* 8033BBCC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8033BBD0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8033BBD4 83 C1 00 08 */ lwz r30, 8(r1)
/* 8033BBD8 38 21 00 10 */ addi r1, r1, 0x10
/* 8033BBDC 7C 08 03 A6 */ mtlr r0
/* 8033BBE0 4E 80 00 20 */ blr

View File

@ -1,42 +0,0 @@
lbl_80345860:
/* 80345860 7C 08 02 A6 */ mflr r0
/* 80345864 90 01 00 04 */ stw r0, 4(r1)
/* 80345868 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8034586C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80345870 7C 7F 1B 79 */ or. r31, r3, r3
/* 80345874 40 82 00 14 */ bne lbl_80345888
/* 80345878 3C 60 80 3D */ lis r3, Si@ha /* 0x803D11FC@ha */
/* 8034587C 38 63 11 FC */ addi r3, r3, Si@l /* 0x803D11FC@l */
/* 80345880 80 63 00 04 */ lwz r3, 4(r3)
/* 80345884 48 00 00 64 */ b lbl_803458E8
lbl_80345888:
/* 80345888 4B FF 7E 6D */ bl OSDisableInterrupts
/* 8034588C 3C 80 80 3D */ lis r4, Si@ha /* 0x803D11FC@ha */
/* 80345890 38 84 11 FC */ addi r4, r4, Si@l /* 0x803D11FC@l */
/* 80345894 57 FF 46 3E */ srwi r31, r31, 0x18
/* 80345898 80 04 00 04 */ lwz r0, 4(r4)
/* 8034589C 38 A4 00 04 */ addi r5, r4, 4
/* 803458A0 57 E4 E7 3E */ rlwinm r4, r31, 0x1c, 0x1c, 0x1f
/* 803458A4 7C 00 20 78 */ andc r0, r0, r4
/* 803458A8 90 05 00 00 */ stw r0, 0(r5)
/* 803458AC 64 80 03 FF */ oris r0, r4, 0x3ff
/* 803458B0 60 00 FF F0 */ ori r0, r0, 0xfff0
/* 803458B4 7F FF 00 38 */ and r31, r31, r0
/* 803458B8 80 05 00 00 */ lwz r0, 0(r5)
/* 803458BC 57 FF 06 0A */ rlwinm r31, r31, 0, 0x18, 5
/* 803458C0 7C 00 FB 78 */ or r0, r0, r31
/* 803458C4 90 05 00 00 */ stw r0, 0(r5)
/* 803458C8 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006400@ha */
/* 803458CC 38 84 64 00 */ addi r4, r4, 0x6400 /* 0xCC006400@l */
/* 803458D0 83 E5 00 00 */ lwz r31, 0(r5)
/* 803458D4 3C 00 80 00 */ lis r0, 0x8000
/* 803458D8 90 04 00 38 */ stw r0, 0x38(r4)
/* 803458DC 93 E4 00 30 */ stw r31, 0x30(r4)
/* 803458E0 4B FF 7E 3D */ bl OSRestoreInterrupts
/* 803458E4 7F E3 FB 78 */ mr r3, r31
lbl_803458E8:
/* 803458E8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803458EC 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803458F0 38 21 00 18 */ addi r1, r1, 0x18
/* 803458F4 7C 08 03 A6 */ mtlr r0
/* 803458F8 4E 80 00 20 */ blr

View File

@ -1,43 +0,0 @@
lbl_8034523C:
/* 8034523C 7C 08 02 A6 */ mflr r0
/* 80345240 3C 80 80 45 */ lis r4, Packet@ha /* 0x8044C630@ha */
/* 80345244 90 01 00 04 */ stw r0, 4(r1)
/* 80345248 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8034524C 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80345250 3B E4 C6 30 */ addi r31, r4, Packet@l /* 0x8044C630@l */
/* 80345254 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80345258 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8034525C 3B A3 00 00 */ addi r29, r3, 0
/* 80345260 4B FF 84 95 */ bl OSDisableInterrupts
/* 80345264 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006434@ha */
/* 80345268 84 A4 64 34 */ lwzu r5, 0x6434(r4) /* 0xCC006434@l */
/* 8034526C 54 A0 01 09 */ rlwinm. r0, r5, 0, 4, 4
/* 80345270 41 82 00 0C */ beq lbl_8034527C
/* 80345274 3B C0 00 01 */ li r30, 1
/* 80345278 48 00 00 08 */ b lbl_80345280
lbl_8034527C:
/* 8034527C 3B C0 00 00 */ li r30, 0
lbl_80345280:
/* 80345280 2C 1D 00 00 */ cmpwi r29, 0
/* 80345284 41 82 00 20 */ beq lbl_803452A4
/* 80345288 38 00 00 00 */ li r0, 0
/* 8034528C 90 1F 01 E0 */ stw r0, 0x1e0(r31)
/* 80345290 64 A5 08 00 */ oris r5, r5, 0x800
/* 80345294 90 1F 01 E4 */ stw r0, 0x1e4(r31)
/* 80345298 90 1F 01 E8 */ stw r0, 0x1e8(r31)
/* 8034529C 90 1F 01 EC */ stw r0, 0x1ec(r31)
/* 803452A0 48 00 00 08 */ b lbl_803452A8
lbl_803452A4:
/* 803452A4 54 A5 01 46 */ rlwinm r5, r5, 0, 5, 3
lbl_803452A8:
/* 803452A8 54 A5 00 7C */ rlwinm r5, r5, 0, 1, 0x1e
/* 803452AC 90 A4 00 00 */ stw r5, 0(r4)
/* 803452B0 4B FF 84 6D */ bl OSRestoreInterrupts
/* 803452B4 7F C3 F3 78 */ mr r3, r30
/* 803452B8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803452BC 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 803452C0 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 803452C4 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 803452C8 38 21 00 30 */ addi r1, r1, 0x30
/* 803452CC 7C 08 03 A6 */ mtlr r0
/* 803452D0 4E 80 00 20 */ blr

View File

@ -1,52 +0,0 @@
lbl_80345A3C:
/* 80345A3C 7C 08 02 A6 */ mflr r0
/* 80345A40 3C A0 80 45 */ lis r5, Packet@ha /* 0x8044C630@ha */
/* 80345A44 90 01 00 04 */ stw r0, 4(r1)
/* 80345A48 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80345A4C BF 61 00 14 */ stmw r27, 0x14(r1)
/* 80345A50 3B A3 00 00 */ addi r29, r3, 0
/* 80345A54 3B C4 00 00 */ addi r30, r4, 0
/* 80345A58 3B 85 C6 30 */ addi r28, r5, Packet@l /* 0x8044C630@l */
/* 80345A5C 4B FF 7C 99 */ bl OSDisableInterrupts
/* 80345A60 3B E3 00 00 */ addi r31, r3, 0
/* 80345A64 38 7D 00 00 */ addi r3, r29, 0
/* 80345A68 4B FF FC ED */ bl SIGetStatus
/* 80345A6C 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a
/* 80345A70 41 82 00 3C */ beq lbl_80345AAC
/* 80345A74 1C 9D 00 0C */ mulli r4, r29, 0xc
/* 80345A78 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006400@ha */
/* 80345A7C 38 03 64 00 */ addi r0, r3, 0x6400 /* 0xCC006400@l */
/* 80345A80 7C 80 22 14 */ add r4, r0, r4
/* 80345A84 57 A3 18 38 */ slwi r3, r29, 3
/* 80345A88 80 04 00 04 */ lwz r0, 4(r4)
/* 80345A8C 7C BC 1A 14 */ add r5, r28, r3
/* 80345A90 90 05 01 C0 */ stw r0, 0x1c0(r5)
/* 80345A94 57 A0 10 3A */ slwi r0, r29, 2
/* 80345A98 7C 7C 02 14 */ add r3, r28, r0
/* 80345A9C 80 84 00 08 */ lwz r4, 8(r4)
/* 80345AA0 38 00 00 01 */ li r0, 1
/* 80345AA4 90 85 01 C4 */ stw r4, 0x1c4(r5)
/* 80345AA8 90 03 01 B0 */ stw r0, 0x1b0(r3)
lbl_80345AAC:
/* 80345AAC 57 A0 10 3A */ slwi r0, r29, 2
/* 80345AB0 7C 7C 02 14 */ add r3, r28, r0
/* 80345AB4 83 63 01 B0 */ lwz r27, 0x1b0(r3)
/* 80345AB8 38 00 00 00 */ li r0, 0
/* 80345ABC 2C 1B 00 00 */ cmpwi r27, 0
/* 80345AC0 90 03 01 B0 */ stw r0, 0x1b0(r3)
/* 80345AC4 41 82 00 1C */ beq lbl_80345AE0
/* 80345AC8 57 A0 18 38 */ slwi r0, r29, 3
/* 80345ACC 7C 7C 02 14 */ add r3, r28, r0
/* 80345AD0 80 03 01 C0 */ lwz r0, 0x1c0(r3)
/* 80345AD4 90 1E 00 00 */ stw r0, 0(r30)
/* 80345AD8 80 03 01 C4 */ lwz r0, 0x1c4(r3)
/* 80345ADC 90 1E 00 04 */ stw r0, 4(r30)
lbl_80345AE0:
/* 80345AE0 7F E3 FB 78 */ mr r3, r31
/* 80345AE4 4B FF 7C 39 */ bl OSRestoreInterrupts
/* 80345AE8 7F 63 DB 78 */ mr r3, r27
/* 80345AEC BB 61 00 14 */ lmw r27, 0x14(r1)
/* 80345AF0 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80345AF4 38 21 00 28 */ addi r1, r1, 0x28
/* 80345AF8 7C 08 03 A6 */ mtlr r0
/* 80345AFC 4E 80 00 20 */ blr

View File

@ -1,57 +0,0 @@
lbl_80345968:
/* 80345968 7C 08 02 A6 */ mflr r0
/* 8034596C 3C 80 80 45 */ lis r4, Packet@ha /* 0x8044C630@ha */
/* 80345970 90 01 00 04 */ stw r0, 4(r1)
/* 80345974 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80345978 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8034597C 3B E4 C6 30 */ addi r31, r4, Packet@l /* 0x8044C630@l */
/* 80345980 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80345984 3B C3 00 00 */ addi r30, r3, 0
/* 80345988 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 8034598C 4B FF 7D 69 */ bl OSDisableInterrupts
/* 80345990 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006438@ha */
/* 80345994 20 1E 00 03 */ subfic r0, r30, 3
/* 80345998 83 A4 64 38 */ lwz r29, 0x6438(r4) /* 0xCC006438@l */
/* 8034599C 54 00 18 38 */ slwi r0, r0, 3
/* 803459A0 7F BD 04 30 */ srw r29, r29, r0
/* 803459A4 57 A0 07 39 */ rlwinm. r0, r29, 0, 0x1c, 0x1c
/* 803459A8 41 82 00 28 */ beq lbl_803459D0
/* 803459AC 3C 80 80 3D */ lis r4, Type@ha /* 0x803D1210@ha */
/* 803459B0 57 C5 10 3A */ slwi r5, r30, 2
/* 803459B4 38 04 12 10 */ addi r0, r4, Type@l /* 0x803D1210@l */
/* 803459B8 7C 80 2A 14 */ add r4, r0, r5
/* 803459BC 80 04 00 00 */ lwz r0, 0(r4)
/* 803459C0 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 803459C4 40 82 00 0C */ bne lbl_803459D0
/* 803459C8 38 00 00 08 */ li r0, 8
/* 803459CC 90 04 00 00 */ stw r0, 0(r4)
lbl_803459D0:
/* 803459D0 4B FF 7D 4D */ bl OSRestoreInterrupts
/* 803459D4 57 A0 06 B5 */ rlwinm. r0, r29, 0, 0x1a, 0x1a
/* 803459D8 41 82 00 44 */ beq lbl_80345A1C
/* 803459DC 1C 9E 00 0C */ mulli r4, r30, 0xc
/* 803459E0 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006400@ha */
/* 803459E4 38 03 64 00 */ addi r0, r3, 0x6400 /* 0xCC006400@l */
/* 803459E8 7C 60 22 14 */ add r3, r0, r4
/* 803459EC 57 C4 18 38 */ slwi r4, r30, 3
/* 803459F0 80 03 00 04 */ lwz r0, 4(r3)
/* 803459F4 7C DF 22 14 */ add r6, r31, r4
/* 803459F8 90 06 01 C0 */ stw r0, 0x1c0(r6)
/* 803459FC 57 C0 10 3A */ slwi r0, r30, 2
/* 80345A00 7C 9F 02 14 */ add r4, r31, r0
/* 80345A04 80 A3 00 08 */ lwz r5, 8(r3)
/* 80345A08 38 00 00 01 */ li r0, 1
/* 80345A0C 38 60 00 01 */ li r3, 1
/* 80345A10 90 A6 01 C4 */ stw r5, 0x1c4(r6)
/* 80345A14 90 04 01 B0 */ stw r0, 0x1b0(r4)
/* 80345A18 48 00 00 08 */ b lbl_80345A20
lbl_80345A1C:
/* 80345A1C 38 60 00 00 */ li r3, 0
lbl_80345A20:
/* 80345A20 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80345A24 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80345A28 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80345A2C 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80345A30 38 21 00 28 */ addi r1, r1, 0x28
/* 80345A34 7C 08 03 A6 */ mtlr r0
/* 80345A38 4E 80 00 20 */ blr

View File

@ -1,33 +0,0 @@
lbl_80345754:
/* 80345754 7C 08 02 A6 */ mflr r0
/* 80345758 90 01 00 04 */ stw r0, 4(r1)
/* 8034575C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80345760 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80345764 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80345768 7C 7E 1B 78 */ mr r30, r3
/* 8034576C 4B FF 7F 89 */ bl OSDisableInterrupts
/* 80345770 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006438@ha */
/* 80345774 20 1E 00 03 */ subfic r0, r30, 3
/* 80345778 83 E4 64 38 */ lwz r31, 0x6438(r4) /* 0xCC006438@l */
/* 8034577C 54 00 18 38 */ slwi r0, r0, 3
/* 80345780 7F FF 04 30 */ srw r31, r31, r0
/* 80345784 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c
/* 80345788 41 82 00 28 */ beq lbl_803457B0
/* 8034578C 3C 80 80 3D */ lis r4, Type@ha /* 0x803D1210@ha */
/* 80345790 57 C5 10 3A */ slwi r5, r30, 2
/* 80345794 38 04 12 10 */ addi r0, r4, Type@l /* 0x803D1210@l */
/* 80345798 7C 80 2A 14 */ add r4, r0, r5
/* 8034579C 80 04 00 00 */ lwz r0, 0(r4)
/* 803457A0 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 803457A4 40 82 00 0C */ bne lbl_803457B0
/* 803457A8 38 00 00 08 */ li r0, 8
/* 803457AC 90 04 00 00 */ stw r0, 0(r4)
lbl_803457B0:
/* 803457B0 4B FF 7F 6D */ bl OSRestoreInterrupts
/* 803457B4 7F E3 FB 78 */ mr r3, r31
/* 803457B8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803457BC 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803457C0 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803457C4 38 21 00 18 */ addi r1, r1, 0x18
/* 803457C8 7C 08 03 A6 */ mtlr r0
/* 803457CC 4E 80 00 20 */ blr

View File

@ -1,85 +0,0 @@
lbl_80346154:
/* 80346154 7C 08 02 A6 */ mflr r0
/* 80346158 90 01 00 04 */ stw r0, 4(r1)
/* 8034615C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80346160 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80346164 3B E4 00 00 */ addi r31, r4, 0
/* 80346168 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8034616C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80346170 93 81 00 10 */ stw r28, 0x10(r1)
/* 80346174 3B 83 00 00 */ addi r28, r3, 0
/* 80346178 4B FF 75 7D */ bl OSDisableInterrupts
/* 8034617C 3B C3 00 00 */ addi r30, r3, 0
/* 80346180 38 7C 00 00 */ addi r3, r28, 0
/* 80346184 4B FF FE 0D */ bl SIGetType
/* 80346188 3C 80 80 3D */ lis r4, Type@ha /* 0x803D1210@ha */
/* 8034618C 57 85 10 3A */ slwi r5, r28, 2
/* 80346190 38 04 12 10 */ addi r0, r4, Type@l /* 0x803D1210@l */
/* 80346194 7C 80 2A 14 */ add r4, r0, r5
/* 80346198 80 04 00 00 */ lwz r0, 0(r4)
/* 8034619C 3B A3 00 00 */ addi r29, r3, 0
/* 803461A0 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 803461A4 41 82 00 AC */ beq lbl_80346250
/* 803461A8 3C 60 80 45 */ lis r3, TypeCallback@ha /* 0x8044C790@ha */
/* 803461AC 57 84 20 36 */ slwi r4, r28, 4
/* 803461B0 38 03 C7 90 */ addi r0, r3, TypeCallback@l /* 0x8044C790@l */
/* 803461B4 7C 80 22 14 */ add r4, r0, r4
/* 803461B8 80 04 00 00 */ lwz r0, 0(r4)
/* 803461BC 38 A0 00 00 */ li r5, 0
/* 803461C0 7C 00 F8 40 */ cmplw r0, r31
/* 803461C4 41 82 00 A0 */ beq lbl_80346264
/* 803461C8 28 00 00 00 */ cmplwi r0, 0
/* 803461CC 40 82 00 10 */ bne lbl_803461DC
/* 803461D0 54 A0 10 3A */ slwi r0, r5, 2
/* 803461D4 7F E4 01 2E */ stwx r31, r4, r0
/* 803461D8 48 00 00 8C */ b lbl_80346264
lbl_803461DC:
/* 803461DC 38 64 00 04 */ addi r3, r4, 4
/* 803461E0 80 04 00 04 */ lwz r0, 4(r4)
/* 803461E4 38 A0 00 01 */ li r5, 1
/* 803461E8 7C 00 F8 40 */ cmplw r0, r31
/* 803461EC 41 82 00 78 */ beq lbl_80346264
/* 803461F0 28 00 00 00 */ cmplwi r0, 0
/* 803461F4 40 82 00 10 */ bne lbl_80346204
/* 803461F8 54 A0 10 3A */ slwi r0, r5, 2
/* 803461FC 7F E4 01 2E */ stwx r31, r4, r0
/* 80346200 48 00 00 64 */ b lbl_80346264
lbl_80346204:
/* 80346204 84 03 00 04 */ lwzu r0, 4(r3)
/* 80346208 38 A0 00 02 */ li r5, 2
/* 8034620C 7C 00 F8 40 */ cmplw r0, r31
/* 80346210 41 82 00 54 */ beq lbl_80346264
/* 80346214 28 00 00 00 */ cmplwi r0, 0
/* 80346218 40 82 00 10 */ bne lbl_80346228
/* 8034621C 54 A0 10 3A */ slwi r0, r5, 2
/* 80346220 7F E4 01 2E */ stwx r31, r4, r0
/* 80346224 48 00 00 40 */ b lbl_80346264
lbl_80346228:
/* 80346228 80 03 00 04 */ lwz r0, 4(r3)
/* 8034622C 38 A0 00 03 */ li r5, 3
/* 80346230 7C 00 F8 40 */ cmplw r0, r31
/* 80346234 41 82 00 30 */ beq lbl_80346264
/* 80346238 28 00 00 00 */ cmplwi r0, 0
/* 8034623C 40 82 00 28 */ bne lbl_80346264
/* 80346240 54 A0 10 3A */ slwi r0, r5, 2
/* 80346244 7F E4 01 2E */ stwx r31, r4, r0
/* 80346248 48 00 00 1C */ b lbl_80346264
/* 8034624C 48 00 00 18 */ b lbl_80346264
lbl_80346250:
/* 80346250 39 9F 00 00 */ addi r12, r31, 0
/* 80346254 7D 88 03 A6 */ mtlr r12
/* 80346258 38 7C 00 00 */ addi r3, r28, 0
/* 8034625C 38 9D 00 00 */ addi r4, r29, 0
/* 80346260 4E 80 00 21 */ blrl
lbl_80346264:
/* 80346264 7F C3 F3 78 */ mr r3, r30
/* 80346268 4B FF 74 B5 */ bl OSRestoreInterrupts
/* 8034626C 7F A3 EB 78 */ mr r3, r29
/* 80346270 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80346274 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80346278 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8034627C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80346280 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80346284 38 21 00 20 */ addi r1, r1, 0x20
/* 80346288 7C 08 03 A6 */ mtlr r0
/* 8034628C 4E 80 00 20 */ blr

View File

@ -1,28 +0,0 @@
lbl_803457F4:
/* 803457F4 7C 08 02 A6 */ mflr r0
/* 803457F8 90 01 00 04 */ stw r0, 4(r1)
/* 803457FC 54 80 40 2E */ slwi r0, r4, 8
/* 80345800 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80345804 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80345808 54 7F 80 1E */ slwi r31, r3, 0x10
/* 8034580C 7F FF 03 78 */ or r31, r31, r0
/* 80345810 4B FF 7E E5 */ bl OSDisableInterrupts
/* 80345814 3C 80 80 3D */ lis r4, Si@ha /* 0x803D11FC@ha */
/* 80345818 38 84 11 FC */ addi r4, r4, Si@l /* 0x803D11FC@l */
/* 8034581C 80 04 00 04 */ lwz r0, 4(r4)
/* 80345820 38 A4 00 04 */ addi r5, r4, 4
/* 80345824 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006430@ha */
/* 80345828 54 00 06 0A */ rlwinm r0, r0, 0, 0x18, 5
/* 8034582C 90 05 00 00 */ stw r0, 0(r5)
/* 80345830 80 05 00 00 */ lwz r0, 0(r5)
/* 80345834 7C 00 FB 78 */ or r0, r0, r31
/* 80345838 90 05 00 00 */ stw r0, 0(r5)
/* 8034583C 83 E5 00 00 */ lwz r31, 0(r5)
/* 80345840 93 E4 64 30 */ stw r31, 0x6430(r4) /* 0xCC006430@l */
/* 80345844 4B FF 7E D9 */ bl OSRestoreInterrupts
/* 80345848 7F E3 FB 78 */ mr r3, r31
/* 8034584C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80345850 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80345854 38 21 00 18 */ addi r1, r1, 0x18
/* 80345858 7C 08 03 A6 */ mtlr r0
/* 8034585C 4E 80 00 20 */ blr

View File

@ -1,74 +0,0 @@
lbl_803436A0:
/* 803436A0 7C 08 02 A6 */ mflr r0
/* 803436A4 90 01 00 04 */ stw r0, 4(r1)
/* 803436A8 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 803436AC BF 61 00 2C */ stmw r27, 0x2c(r1)
/* 803436B0 3B 63 00 00 */ addi r27, r3, 0
/* 803436B4 3B 84 00 00 */ addi r28, r4, 0
/* 803436B8 54 64 30 32 */ slwi r4, r3, 6
/* 803436BC 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 803436C0 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 803436C4 7F C0 22 14 */ add r30, r0, r4
/* 803436C8 38 7B 00 00 */ addi r3, r27, 0
/* 803436CC 4B FF FD 2D */ bl __EXIProbe
/* 803436D0 2C 03 00 00 */ cmpwi r3, 0
/* 803436D4 41 82 00 20 */ beq lbl_803436F4
/* 803436D8 80 1E 00 20 */ lwz r0, 0x20(r30)
/* 803436DC 2C 00 00 00 */ cmpwi r0, 0
/* 803436E0 40 82 00 14 */ bne lbl_803436F4
/* 803436E4 38 7B 00 00 */ addi r3, r27, 0
/* 803436E8 38 80 00 00 */ li r4, 0
/* 803436EC 38 A1 00 1C */ addi r5, r1, 0x1c
/* 803436F0 48 00 0B 49 */ bl EXIGetID
lbl_803436F4:
/* 803436F4 4B FF A0 01 */ bl OSDisableInterrupts
/* 803436F8 7C 7D 1B 78 */ mr r29, r3
/* 803436FC 80 1E 00 20 */ lwz r0, 0x20(r30)
/* 80343700 2C 00 00 00 */ cmpwi r0, 0
/* 80343704 40 82 00 14 */ bne lbl_80343718
/* 80343708 7F A3 EB 78 */ mr r3, r29
/* 8034370C 4B FF A0 11 */ bl OSRestoreInterrupts
/* 80343710 38 60 00 00 */ li r3, 0
/* 80343714 48 00 00 84 */ b lbl_80343798
lbl_80343718:
/* 80343718 4B FF 9F DD */ bl OSDisableInterrupts
/* 8034371C 7C 7F 1B 78 */ mr r31, r3
/* 80343720 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 80343724 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 80343728 40 82 00 14 */ bne lbl_8034373C
/* 8034372C 7F 63 DB 78 */ mr r3, r27
/* 80343730 4B FF FC C9 */ bl __EXIProbe
/* 80343734 2C 03 00 00 */ cmpwi r3, 0
/* 80343738 40 82 00 14 */ bne lbl_8034374C
lbl_8034373C:
/* 8034373C 7F E3 FB 78 */ mr r3, r31
/* 80343740 4B FF 9F DD */ bl OSRestoreInterrupts
/* 80343744 3B E0 00 00 */ li r31, 0
/* 80343748 48 00 00 44 */ b lbl_8034378C
lbl_8034374C:
/* 8034374C 38 7B 00 00 */ addi r3, r27, 0
/* 80343750 38 80 00 01 */ li r4, 1
/* 80343754 38 A0 00 00 */ li r5, 0
/* 80343758 38 C0 00 00 */ li r6, 0
/* 8034375C 4B FF FB D9 */ bl EXIClearInterrupts
/* 80343760 93 9E 00 08 */ stw r28, 8(r30)
/* 80343764 3C 60 00 10 */ lis r3, 0x10
/* 80343768 1C 1B 00 03 */ mulli r0, r27, 3
/* 8034376C 7C 63 04 30 */ srw r3, r3, r0
/* 80343770 4B FF A3 D5 */ bl __OSUnmaskInterrupts
/* 80343774 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 80343778 60 00 00 08 */ ori r0, r0, 8
/* 8034377C 90 1E 00 0C */ stw r0, 0xc(r30)
/* 80343780 7F E3 FB 78 */ mr r3, r31
/* 80343784 4B FF 9F 99 */ bl OSRestoreInterrupts
/* 80343788 3B E0 00 01 */ li r31, 1
lbl_8034378C:
/* 8034378C 7F A3 EB 78 */ mr r3, r29
/* 80343790 4B FF 9F 8D */ bl OSRestoreInterrupts
/* 80343794 7F E3 FB 78 */ mr r3, r31
lbl_80343798:
/* 80343798 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8034379C BB 61 00 2C */ lmw r27, 0x2c(r1)
/* 803437A0 38 21 00 40 */ addi r1, r1, 0x40
/* 803437A4 7C 08 03 A6 */ mtlr r0
/* 803437A8 4E 80 00 20 */ blr

View File

@ -1,22 +0,0 @@
lbl_80343334:
/* 80343334 1C 03 00 14 */ mulli r0, r3, 0x14
/* 80343338 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */
/* 8034333C 38 E3 68 00 */ addi r7, r3, 0x6800 /* 0xCC006800@l */
/* 80343340 7C E7 02 14 */ add r7, r7, r0
/* 80343344 80 07 00 00 */ lwz r0, 0(r7)
/* 80343348 7C 03 03 78 */ mr r3, r0
/* 8034334C 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 80343350 2C 04 00 00 */ cmpwi r4, 0
/* 80343354 41 82 00 08 */ beq lbl_8034335C
/* 80343358 60 00 00 02 */ ori r0, r0, 2
lbl_8034335C:
/* 8034335C 2C 05 00 00 */ cmpwi r5, 0
/* 80343360 41 82 00 08 */ beq lbl_80343368
/* 80343364 60 00 00 08 */ ori r0, r0, 8
lbl_80343368:
/* 80343368 2C 06 00 00 */ cmpwi r6, 0
/* 8034336C 41 82 00 08 */ beq lbl_80343374
/* 80343370 60 00 08 00 */ ori r0, r0, 0x800
lbl_80343374:
/* 80343374 90 07 00 00 */ stw r0, 0(r7)
/* 80343378 4E 80 00 20 */ blr

View File

@ -1,76 +0,0 @@
lbl_80343994:
/* 80343994 7C 08 02 A6 */ mflr r0
/* 80343998 90 01 00 04 */ stw r0, 4(r1)
/* 8034399C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803439A0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803439A4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803439A8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803439AC 93 81 00 10 */ stw r28, 0x10(r1)
/* 803439B0 3B E3 00 00 */ addi r31, r3, 0
/* 803439B4 54 64 30 32 */ slwi r4, r3, 6
/* 803439B8 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 803439BC 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 803439C0 7F C0 22 14 */ add r30, r0, r4
/* 803439C4 4B FF 9D 31 */ bl OSDisableInterrupts
/* 803439C8 7C 7C 1B 78 */ mr r28, r3
/* 803439CC 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803439D0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 803439D4 40 82 00 14 */ bne lbl_803439E8
/* 803439D8 7F 83 E3 78 */ mr r3, r28
/* 803439DC 4B FF 9D 41 */ bl OSRestoreInterrupts
/* 803439E0 38 60 00 00 */ li r3, 0
/* 803439E4 48 00 00 A0 */ b lbl_80343A84
lbl_803439E8:
/* 803439E8 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803439EC 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 803439F0 90 1E 00 0C */ stw r0, 0xc(r30)
/* 803439F4 1C 1F 00 14 */ mulli r0, r31, 0x14
/* 803439F8 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */
/* 803439FC 38 63 68 00 */ addi r3, r3, 0x6800 /* 0xCC006800@l */
/* 80343A00 7C 63 02 14 */ add r3, r3, r0
/* 80343A04 83 A3 00 00 */ lwz r29, 0(r3)
/* 80343A08 73 A0 04 05 */ andi. r0, r29, 0x405
/* 80343A0C 90 03 00 00 */ stw r0, 0(r3)
/* 80343A10 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 80343A14 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 80343A18 41 82 00 30 */ beq lbl_80343A48
/* 80343A1C 2C 1F 00 01 */ cmpwi r31, 1
/* 80343A20 41 82 00 20 */ beq lbl_80343A40
/* 80343A24 40 80 00 24 */ bge lbl_80343A48
/* 80343A28 2C 1F 00 00 */ cmpwi r31, 0
/* 80343A2C 40 80 00 08 */ bge lbl_80343A34
/* 80343A30 48 00 00 18 */ b lbl_80343A48
lbl_80343A34:
/* 80343A34 3C 60 00 10 */ lis r3, 0x10
/* 80343A38 4B FF A1 0D */ bl __OSUnmaskInterrupts
/* 80343A3C 48 00 00 0C */ b lbl_80343A48
lbl_80343A40:
/* 80343A40 3C 60 00 02 */ lis r3, 2
/* 80343A44 4B FF A1 01 */ bl __OSUnmaskInterrupts
lbl_80343A48:
/* 80343A48 7F 83 E3 78 */ mr r3, r28
/* 80343A4C 4B FF 9C D1 */ bl OSRestoreInterrupts
/* 80343A50 2C 1F 00 02 */ cmpwi r31, 2
/* 80343A54 41 82 00 2C */ beq lbl_80343A80
/* 80343A58 57 A0 06 31 */ rlwinm. r0, r29, 0, 0x18, 0x18
/* 80343A5C 41 82 00 24 */ beq lbl_80343A80
/* 80343A60 7F E3 FB 78 */ mr r3, r31
/* 80343A64 4B FF F9 95 */ bl __EXIProbe
/* 80343A68 2C 03 00 00 */ cmpwi r3, 0
/* 80343A6C 41 82 00 0C */ beq lbl_80343A78
/* 80343A70 38 60 00 01 */ li r3, 1
/* 80343A74 48 00 00 10 */ b lbl_80343A84
lbl_80343A78:
/* 80343A78 38 60 00 00 */ li r3, 0
/* 80343A7C 48 00 00 08 */ b lbl_80343A84
lbl_80343A80:
/* 80343A80 38 60 00 01 */ li r3, 1
lbl_80343A84:
/* 80343A84 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80343A88 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80343A8C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80343A90 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80343A94 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80343A98 38 21 00 20 */ addi r1, r1, 0x20
/* 80343A9C 7C 08 03 A6 */ mtlr r0
/* 80343AA0 4E 80 00 20 */ blr

View File

@ -1,51 +0,0 @@
lbl_803437AC:
/* 803437AC 7C 08 02 A6 */ mflr r0
/* 803437B0 90 01 00 04 */ stw r0, 4(r1)
/* 803437B4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803437B8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803437BC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803437C0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803437C4 3B A3 00 00 */ addi r29, r3, 0
/* 803437C8 54 64 30 32 */ slwi r4, r3, 6
/* 803437CC 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 803437D0 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 803437D4 7F E0 22 14 */ add r31, r0, r4
/* 803437D8 4B FF 9F 1D */ bl OSDisableInterrupts
/* 803437DC 7C 7E 1B 78 */ mr r30, r3
/* 803437E0 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803437E4 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 803437E8 40 82 00 14 */ bne lbl_803437FC
/* 803437EC 7F C3 F3 78 */ mr r3, r30
/* 803437F0 4B FF 9F 2D */ bl OSRestoreInterrupts
/* 803437F4 38 60 00 01 */ li r3, 1
/* 803437F8 48 00 00 54 */ b lbl_8034384C
lbl_803437FC:
/* 803437FC 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343800 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80343804 41 82 00 20 */ beq lbl_80343824
/* 80343808 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 8034380C 28 00 00 00 */ cmplwi r0, 0
/* 80343810 40 82 00 14 */ bne lbl_80343824
/* 80343814 7F C3 F3 78 */ mr r3, r30
/* 80343818 4B FF 9F 05 */ bl OSRestoreInterrupts
/* 8034381C 38 60 00 00 */ li r3, 0
/* 80343820 48 00 00 2C */ b lbl_8034384C
lbl_80343824:
/* 80343824 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343828 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 8034382C 90 1F 00 0C */ stw r0, 0xc(r31)
/* 80343830 3C 60 00 50 */ lis r3, 0x50
/* 80343834 1C 1D 00 03 */ mulli r0, r29, 3
/* 80343838 7C 63 04 30 */ srw r3, r3, r0
/* 8034383C 4B FF A2 81 */ bl __OSMaskInterrupts
/* 80343840 7F C3 F3 78 */ mr r3, r30
/* 80343844 4B FF 9E D9 */ bl OSRestoreInterrupts
/* 80343848 38 60 00 01 */ li r3, 1
lbl_8034384C:
/* 8034384C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80343850 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80343854 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80343858 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8034385C 38 21 00 20 */ addi r1, r1, 0x20
/* 80343860 7C 08 03 A6 */ mtlr r0
/* 80343864 4E 80 00 20 */ blr

View File

@ -1,64 +0,0 @@
lbl_80342FFC:
/* 80342FFC 7C 08 02 A6 */ mflr r0
/* 80343000 90 01 00 04 */ stw r0, 4(r1)
/* 80343004 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80343008 BF 21 00 24 */ stmw r25, 0x24(r1)
/* 8034300C 3B 63 00 00 */ addi r27, r3, 0
/* 80343010 3B 84 00 00 */ addi r28, r4, 0
/* 80343014 3B A5 00 00 */ addi r29, r5, 0
/* 80343018 3B C6 00 00 */ addi r30, r6, 0
/* 8034301C 3B 27 00 00 */ addi r25, r7, 0
/* 80343020 54 64 30 32 */ slwi r4, r3, 6
/* 80343024 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 80343028 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 8034302C 7F 40 22 14 */ add r26, r0, r4
/* 80343030 4B FF A6 C5 */ bl OSDisableInterrupts
/* 80343034 7C 7F 1B 78 */ mr r31, r3
/* 80343038 80 1A 00 0C */ lwz r0, 0xc(r26)
/* 8034303C 54 00 07 BF */ clrlwi. r0, r0, 0x1e
/* 80343040 40 82 00 10 */ bne lbl_80343050
/* 80343044 80 1A 00 0C */ lwz r0, 0xc(r26)
/* 80343048 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 8034304C 40 82 00 14 */ bne lbl_80343060
lbl_80343050:
/* 80343050 7F E3 FB 78 */ mr r3, r31
/* 80343054 4B FF A6 C9 */ bl OSRestoreInterrupts
/* 80343058 38 60 00 00 */ li r3, 0
/* 8034305C 48 00 00 78 */ b lbl_803430D4
lbl_80343060:
/* 80343060 93 3A 00 04 */ stw r25, 4(r26)
/* 80343064 80 1A 00 04 */ lwz r0, 4(r26)
/* 80343068 28 00 00 00 */ cmplwi r0, 0
/* 8034306C 41 82 00 28 */ beq lbl_80343094
/* 80343070 38 7B 00 00 */ addi r3, r27, 0
/* 80343074 38 80 00 00 */ li r4, 0
/* 80343078 38 A0 00 01 */ li r5, 1
/* 8034307C 38 C0 00 00 */ li r6, 0
/* 80343080 48 00 02 B5 */ bl EXIClearInterrupts
/* 80343084 3C 60 00 20 */ lis r3, 0x20
/* 80343088 1C 1B 00 03 */ mulli r0, r27, 3
/* 8034308C 7C 63 04 30 */ srw r3, r3, r0
/* 80343090 4B FF AA B5 */ bl __OSUnmaskInterrupts
lbl_80343094:
/* 80343094 80 1A 00 0C */ lwz r0, 0xc(r26)
/* 80343098 60 00 00 01 */ ori r0, r0, 1
/* 8034309C 90 1A 00 0C */ stw r0, 0xc(r26)
/* 803430A0 57 84 01 B4 */ rlwinm r4, r28, 0, 6, 0x1a
/* 803430A4 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */
/* 803430A8 38 03 68 00 */ addi r0, r3, 0x6800 /* 0xCC006800@l */
/* 803430AC 1C 7B 00 14 */ mulli r3, r27, 0x14
/* 803430B0 7C 60 1A 14 */ add r3, r0, r3
/* 803430B4 90 83 00 04 */ stw r4, 4(r3)
/* 803430B8 93 A3 00 08 */ stw r29, 8(r3)
/* 803430BC 57 C0 10 3A */ slwi r0, r30, 2
/* 803430C0 60 00 00 03 */ ori r0, r0, 3
/* 803430C4 90 03 00 0C */ stw r0, 0xc(r3)
/* 803430C8 7F E3 FB 78 */ mr r3, r31
/* 803430CC 4B FF A6 51 */ bl OSRestoreInterrupts
/* 803430D0 38 60 00 01 */ li r3, 1
lbl_803430D4:
/* 803430D4 80 01 00 44 */ lwz r0, 0x44(r1)
/* 803430D8 BB 21 00 24 */ lmw r25, 0x24(r1)
/* 803430DC 38 21 00 40 */ addi r1, r1, 0x40
/* 803430E0 7C 08 03 A6 */ mtlr r0
/* 803430E4 4E 80 00 20 */ blr

View File

@ -1,7 +0,0 @@
lbl_803441F8:
/* 803441F8 54 64 30 32 */ slwi r4, r3, 6
/* 803441FC 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 80344200 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 80344204 7C 60 22 14 */ add r3, r0, r4
/* 80344208 80 63 00 0C */ lwz r3, 0xc(r3)
/* 8034420C 4E 80 00 20 */ blr

View File

@ -1,164 +0,0 @@
lbl_80342D00:
/* 80342D00 7C 08 02 A6 */ mflr r0
/* 80342D04 90 01 00 04 */ stw r0, 4(r1)
/* 80342D08 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80342D0C BF 21 00 24 */ stmw r25, 0x24(r1)
/* 80342D10 3B 43 00 00 */ addi r26, r3, 0
/* 80342D14 3B 64 00 00 */ addi r27, r4, 0
/* 80342D18 3B 85 00 00 */ addi r28, r5, 0
/* 80342D1C 3B A6 00 00 */ addi r29, r6, 0
/* 80342D20 3B 27 00 00 */ addi r25, r7, 0
/* 80342D24 54 64 30 32 */ slwi r4, r3, 6
/* 80342D28 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 80342D2C 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 80342D30 7F E0 22 14 */ add r31, r0, r4
/* 80342D34 4B FF A9 C1 */ bl OSDisableInterrupts
/* 80342D38 7C 7E 1B 78 */ mr r30, r3
/* 80342D3C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80342D40 54 00 07 BF */ clrlwi. r0, r0, 0x1e
/* 80342D44 40 82 00 10 */ bne lbl_80342D54
/* 80342D48 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80342D4C 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80342D50 40 82 00 14 */ bne lbl_80342D64
lbl_80342D54:
/* 80342D54 7F C3 F3 78 */ mr r3, r30
/* 80342D58 4B FF A9 C5 */ bl OSRestoreInterrupts
/* 80342D5C 38 60 00 00 */ li r3, 0
/* 80342D60 48 00 01 E8 */ b lbl_80342F48
lbl_80342D64:
/* 80342D64 93 3F 00 04 */ stw r25, 4(r31)
/* 80342D68 80 1F 00 04 */ lwz r0, 4(r31)
/* 80342D6C 28 00 00 00 */ cmplwi r0, 0
/* 80342D70 41 82 00 28 */ beq lbl_80342D98
/* 80342D74 38 7A 00 00 */ addi r3, r26, 0
/* 80342D78 38 80 00 00 */ li r4, 0
/* 80342D7C 38 A0 00 01 */ li r5, 1
/* 80342D80 38 C0 00 00 */ li r6, 0
/* 80342D84 48 00 05 B1 */ bl EXIClearInterrupts
/* 80342D88 3C 60 00 20 */ lis r3, 0x20
/* 80342D8C 1C 1A 00 03 */ mulli r0, r26, 3
/* 80342D90 7C 63 04 30 */ srw r3, r3, r0
/* 80342D94 4B FF AD B1 */ bl __OSUnmaskInterrupts
lbl_80342D98:
/* 80342D98 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80342D9C 60 00 00 02 */ ori r0, r0, 2
/* 80342DA0 90 1F 00 0C */ stw r0, 0xc(r31)
/* 80342DA4 28 1D 00 00 */ cmplwi r29, 0
/* 80342DA8 41 82 01 44 */ beq lbl_80342EEC
/* 80342DAC 38 00 00 00 */ li r0, 0
/* 80342DB0 38 80 00 00 */ li r4, 0
/* 80342DB4 7C 04 E0 00 */ cmpw r4, r28
/* 80342DB8 40 80 01 20 */ bge lbl_80342ED8
/* 80342DBC 38 DC FF F8 */ addi r6, r28, -8
/* 80342DC0 2C 1C 00 08 */ cmpwi r28, 8
/* 80342DC4 40 81 01 7C */ ble lbl_80342F40
/* 80342DC8 38 7B 00 00 */ addi r3, r27, 0
/* 80342DCC 38 A6 00 07 */ addi r5, r6, 7
/* 80342DD0 54 A5 E8 FE */ srwi r5, r5, 3
/* 80342DD4 7C A9 03 A6 */ mtctr r5
/* 80342DD8 2C 06 00 00 */ cmpwi r6, 0
/* 80342DDC 40 81 01 64 */ ble lbl_80342F40
lbl_80342DE0:
/* 80342DE0 88 C3 00 00 */ lbz r6, 0(r3)
/* 80342DE4 20 A4 00 03 */ subfic r5, r4, 3
/* 80342DE8 54 A5 18 38 */ slwi r5, r5, 3
/* 80342DEC 7C C5 28 30 */ slw r5, r6, r5
/* 80342DF0 7C 00 2B 78 */ or r0, r0, r5
/* 80342DF4 88 C3 00 01 */ lbz r6, 1(r3)
/* 80342DF8 38 A4 00 01 */ addi r5, r4, 1
/* 80342DFC 20 A5 00 03 */ subfic r5, r5, 3
/* 80342E00 54 A5 18 38 */ slwi r5, r5, 3
/* 80342E04 7C C5 28 30 */ slw r5, r6, r5
/* 80342E08 7C 00 2B 78 */ or r0, r0, r5
/* 80342E0C 88 C3 00 02 */ lbz r6, 2(r3)
/* 80342E10 38 A4 00 02 */ addi r5, r4, 2
/* 80342E14 20 A5 00 03 */ subfic r5, r5, 3
/* 80342E18 54 A5 18 38 */ slwi r5, r5, 3
/* 80342E1C 7C C5 28 30 */ slw r5, r6, r5
/* 80342E20 7C 00 2B 78 */ or r0, r0, r5
/* 80342E24 88 C3 00 03 */ lbz r6, 3(r3)
/* 80342E28 7C A4 00 D0 */ neg r5, r4
/* 80342E2C 54 A5 18 38 */ slwi r5, r5, 3
/* 80342E30 7C C5 28 30 */ slw r5, r6, r5
/* 80342E34 7C 00 2B 78 */ or r0, r0, r5
/* 80342E38 88 C3 00 04 */ lbz r6, 4(r3)
/* 80342E3C 38 A4 00 04 */ addi r5, r4, 4
/* 80342E40 20 A5 00 03 */ subfic r5, r5, 3
/* 80342E44 54 A5 18 38 */ slwi r5, r5, 3
/* 80342E48 7C C5 28 30 */ slw r5, r6, r5
/* 80342E4C 7C 00 2B 78 */ or r0, r0, r5
/* 80342E50 88 C3 00 05 */ lbz r6, 5(r3)
/* 80342E54 38 A4 00 05 */ addi r5, r4, 5
/* 80342E58 20 A5 00 03 */ subfic r5, r5, 3
/* 80342E5C 54 A5 18 38 */ slwi r5, r5, 3
/* 80342E60 7C C5 28 30 */ slw r5, r6, r5
/* 80342E64 7C 00 2B 78 */ or r0, r0, r5
/* 80342E68 88 C3 00 06 */ lbz r6, 6(r3)
/* 80342E6C 38 A4 00 06 */ addi r5, r4, 6
/* 80342E70 20 A5 00 03 */ subfic r5, r5, 3
/* 80342E74 54 A5 18 38 */ slwi r5, r5, 3
/* 80342E78 7C C5 28 30 */ slw r5, r6, r5
/* 80342E7C 7C 00 2B 78 */ or r0, r0, r5
/* 80342E80 88 C3 00 07 */ lbz r6, 7(r3)
/* 80342E84 38 A4 00 07 */ addi r5, r4, 7
/* 80342E88 20 A5 00 03 */ subfic r5, r5, 3
/* 80342E8C 54 A5 18 38 */ slwi r5, r5, 3
/* 80342E90 7C C5 28 30 */ slw r5, r6, r5
/* 80342E94 7C 00 2B 78 */ or r0, r0, r5
/* 80342E98 38 63 00 08 */ addi r3, r3, 8
/* 80342E9C 38 84 00 08 */ addi r4, r4, 8
/* 80342EA0 42 00 FF 40 */ bdnz lbl_80342DE0
/* 80342EA4 48 00 00 9C */ b lbl_80342F40
lbl_80342EA8:
/* 80342EA8 7C 64 E0 50 */ subf r3, r4, r28
/* 80342EAC 7C 69 03 A6 */ mtctr r3
/* 80342EB0 7C 04 E0 00 */ cmpw r4, r28
/* 80342EB4 40 80 00 24 */ bge lbl_80342ED8
lbl_80342EB8:
/* 80342EB8 88 A6 00 00 */ lbz r5, 0(r6)
/* 80342EBC 20 64 00 03 */ subfic r3, r4, 3
/* 80342EC0 54 63 18 38 */ slwi r3, r3, 3
/* 80342EC4 7C A3 18 30 */ slw r3, r5, r3
/* 80342EC8 7C 00 1B 78 */ or r0, r0, r3
/* 80342ECC 38 C6 00 01 */ addi r6, r6, 1
/* 80342ED0 38 84 00 01 */ addi r4, r4, 1
/* 80342ED4 42 00 FF E4 */ bdnz lbl_80342EB8
lbl_80342ED8:
/* 80342ED8 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */
/* 80342EDC 38 83 68 00 */ addi r4, r3, 0x6800 /* 0xCC006800@l */
/* 80342EE0 1C 7A 00 14 */ mulli r3, r26, 0x14
/* 80342EE4 7C 64 1A 14 */ add r3, r4, r3
/* 80342EE8 90 03 00 10 */ stw r0, 0x10(r3)
lbl_80342EEC:
/* 80342EEC 93 7F 00 14 */ stw r27, 0x14(r31)
/* 80342EF0 28 1D 00 01 */ cmplwi r29, 1
/* 80342EF4 41 82 00 0C */ beq lbl_80342F00
/* 80342EF8 7F 80 E3 78 */ mr r0, r28
/* 80342EFC 48 00 00 08 */ b lbl_80342F04
lbl_80342F00:
/* 80342F00 38 00 00 00 */ li r0, 0
lbl_80342F04:
/* 80342F04 90 1F 00 10 */ stw r0, 0x10(r31)
/* 80342F08 57 A0 10 3A */ slwi r0, r29, 2
/* 80342F0C 60 03 00 01 */ ori r3, r0, 1
/* 80342F10 38 1C FF FF */ addi r0, r28, -1
/* 80342F14 54 00 20 36 */ slwi r0, r0, 4
/* 80342F18 7C 64 03 78 */ or r4, r3, r0
/* 80342F1C 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */
/* 80342F20 38 63 68 00 */ addi r3, r3, 0x6800 /* 0xCC006800@l */
/* 80342F24 1C 1A 00 14 */ mulli r0, r26, 0x14
/* 80342F28 7C 63 02 14 */ add r3, r3, r0
/* 80342F2C 90 83 00 0C */ stw r4, 0xc(r3)
/* 80342F30 7F C3 F3 78 */ mr r3, r30
/* 80342F34 4B FF A7 E9 */ bl OSRestoreInterrupts
/* 80342F38 38 60 00 01 */ li r3, 1
/* 80342F3C 48 00 00 0C */ b lbl_80342F48
lbl_80342F40:
/* 80342F40 7C DB 22 14 */ add r6, r27, r4
/* 80342F44 4B FF FF 64 */ b lbl_80342EA8
lbl_80342F48:
/* 80342F48 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80342F4C BB 21 00 24 */ lmw r25, 0x24(r1)
/* 80342F50 38 21 00 40 */ addi r1, r1, 0x40
/* 80342F54 7C 08 03 A6 */ mtlr r0
/* 80342F58 4E 80 00 20 */ blr

View File

@ -1,48 +0,0 @@
lbl_80342F5C:
/* 80342F5C 7C 08 02 A6 */ mflr r0
/* 80342F60 90 01 00 04 */ stw r0, 4(r1)
/* 80342F64 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80342F68 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 80342F6C 3B 63 00 00 */ addi r27, r3, 0
/* 80342F70 3B 84 00 00 */ addi r28, r4, 0
/* 80342F74 3B A5 00 00 */ addi r29, r5, 0
/* 80342F78 3B C6 00 00 */ addi r30, r6, 0
/* 80342F7C 48 00 00 60 */ b lbl_80342FDC
lbl_80342F80:
/* 80342F80 2C 1D 00 04 */ cmpwi r29, 4
/* 80342F84 40 80 00 0C */ bge lbl_80342F90
/* 80342F88 7F BF EB 78 */ mr r31, r29
/* 80342F8C 48 00 00 08 */ b lbl_80342F94
lbl_80342F90:
/* 80342F90 3B E0 00 04 */ li r31, 4
lbl_80342F94:
/* 80342F94 38 BF 00 00 */ addi r5, r31, 0
/* 80342F98 38 7B 00 00 */ addi r3, r27, 0
/* 80342F9C 38 9C 00 00 */ addi r4, r28, 0
/* 80342FA0 38 DE 00 00 */ addi r6, r30, 0
/* 80342FA4 38 E0 00 00 */ li r7, 0
/* 80342FA8 4B FF FD 59 */ bl EXIImm
/* 80342FAC 2C 03 00 00 */ cmpwi r3, 0
/* 80342FB0 40 82 00 0C */ bne lbl_80342FBC
/* 80342FB4 38 60 00 00 */ li r3, 0
/* 80342FB8 48 00 00 30 */ b lbl_80342FE8
lbl_80342FBC:
/* 80342FBC 7F 63 DB 78 */ mr r3, r27
/* 80342FC0 48 00 01 29 */ bl EXISync
/* 80342FC4 2C 03 00 00 */ cmpwi r3, 0
/* 80342FC8 40 82 00 0C */ bne lbl_80342FD4
/* 80342FCC 38 60 00 00 */ li r3, 0
/* 80342FD0 48 00 00 18 */ b lbl_80342FE8
lbl_80342FD4:
/* 80342FD4 7F 9C FA 14 */ add r28, r28, r31
/* 80342FD8 7F BF E8 50 */ subf r29, r31, r29
lbl_80342FDC:
/* 80342FDC 2C 1D 00 00 */ cmpwi r29, 0
/* 80342FE0 40 82 FF A0 */ bne lbl_80342F80
/* 80342FE4 38 60 00 01 */ li r3, 1
lbl_80342FE8:
/* 80342FE8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80342FEC BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 80342FF0 38 21 00 30 */ addi r1, r1, 0x30
/* 80342FF4 7C 08 03 A6 */ mtlr r0
/* 80342FF8 4E 80 00 20 */ blr

View File

@ -1,122 +0,0 @@
lbl_80343E54:
/* 80343E54 7C 08 02 A6 */ mflr r0
/* 80343E58 90 01 00 04 */ stw r0, 4(r1)
/* 80343E5C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80343E60 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80343E64 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80343E68 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80343E6C 93 81 00 10 */ stw r28, 0x10(r1)
/* 80343E70 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */
/* 80343E74 38 63 68 00 */ addi r3, r3, 0x6800 /* 0xCC006800@l */
lbl_80343E78:
/* 80343E78 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80343E7C 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 80343E80 28 00 00 01 */ cmplwi r0, 1
/* 80343E84 41 82 FF F4 */ beq lbl_80343E78
/* 80343E88 80 03 00 20 */ lwz r0, 0x20(r3)
/* 80343E8C 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 80343E90 28 00 00 01 */ cmplwi r0, 1
/* 80343E94 41 82 FF E4 */ beq lbl_80343E78
/* 80343E98 80 03 00 34 */ lwz r0, 0x34(r3)
/* 80343E9C 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 80343EA0 28 00 00 01 */ cmplwi r0, 1
/* 80343EA4 41 82 FF D4 */ beq lbl_80343E78
/* 80343EA8 3C 60 00 80 */ lis r3, 0x0080 /* 0x007F8000@ha */
/* 80343EAC 38 63 80 00 */ addi r3, r3, 0x8000 /* 0x007F8000@l */
/* 80343EB0 4B FF 9C 0D */ bl __OSMaskInterrupts
/* 80343EB4 3B E0 00 00 */ li r31, 0
/* 80343EB8 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006800@ha */
/* 80343EBC 93 E4 68 00 */ stw r31, 0x6800(r4) /* 0xCC006800@l */
/* 80343EC0 93 E4 68 14 */ stw r31, 0x6814(r4)
/* 80343EC4 93 E4 68 28 */ stw r31, 0x6828(r4)
/* 80343EC8 38 00 20 00 */ li r0, 0x2000
/* 80343ECC 90 04 68 00 */ stw r0, 0x6800(r4)
/* 80343ED0 38 60 00 09 */ li r3, 9
/* 80343ED4 3C 80 80 34 */ lis r4, EXIIntrruptHandler@ha /* 0x80343AA4@ha */
/* 80343ED8 3B 84 3A A4 */ addi r28, r4, EXIIntrruptHandler@l /* 0x80343AA4@l */
/* 80343EDC 38 9C 00 00 */ addi r4, r28, 0
/* 80343EE0 4B FF 98 61 */ bl __OSSetInterruptHandler
/* 80343EE4 38 60 00 0A */ li r3, 0xa
/* 80343EE8 3C 80 80 34 */ lis r4, TCIntrruptHandler@ha /* 0x80343B6C@ha */
/* 80343EEC 3B A4 3B 6C */ addi r29, r4, TCIntrruptHandler@l /* 0x80343B6C@l */
/* 80343EF0 38 9D 00 00 */ addi r4, r29, 0
/* 80343EF4 4B FF 98 4D */ bl __OSSetInterruptHandler
/* 80343EF8 38 60 00 0B */ li r3, 0xb
/* 80343EFC 3C 80 80 34 */ lis r4, EXTIntrruptHandler@ha /* 0x80343D84@ha */
/* 80343F00 3B C4 3D 84 */ addi r30, r4, EXTIntrruptHandler@l /* 0x80343D84@l */
/* 80343F04 38 9E 00 00 */ addi r4, r30, 0
/* 80343F08 4B FF 98 39 */ bl __OSSetInterruptHandler
/* 80343F0C 38 60 00 0C */ li r3, 0xc
/* 80343F10 38 9C 00 00 */ addi r4, r28, 0
/* 80343F14 4B FF 98 2D */ bl __OSSetInterruptHandler
/* 80343F18 38 60 00 0D */ li r3, 0xd
/* 80343F1C 38 9D 00 00 */ addi r4, r29, 0
/* 80343F20 4B FF 98 21 */ bl __OSSetInterruptHandler
/* 80343F24 38 60 00 0E */ li r3, 0xe
/* 80343F28 38 9E 00 00 */ addi r4, r30, 0
/* 80343F2C 4B FF 98 15 */ bl __OSSetInterruptHandler
/* 80343F30 38 60 00 0F */ li r3, 0xf
/* 80343F34 38 9C 00 00 */ addi r4, r28, 0
/* 80343F38 4B FF 98 09 */ bl __OSSetInterruptHandler
/* 80343F3C 38 60 00 10 */ li r3, 0x10
/* 80343F40 38 9D 00 00 */ addi r4, r29, 0
/* 80343F44 4B FF 97 FD */ bl __OSSetInterruptHandler
/* 80343F48 38 60 00 00 */ li r3, 0
/* 80343F4C 38 80 00 02 */ li r4, 2
/* 80343F50 38 AD 91 58 */ la r5, IDSerialPort1(r13) /* 804516D8-_SDA_BASE_ */
/* 80343F54 48 00 02 E5 */ bl EXIGetID
/* 80343F58 80 0D 90 A8 */ lwz r0, __OSInIPL(r13)
/* 80343F5C 2C 00 00 00 */ cmpwi r0, 0
/* 80343F60 41 82 00 34 */ beq lbl_80343F94
/* 80343F64 3C 80 80 00 */ lis r4, 0x8000 /* 0x800030C4@ha */
/* 80343F68 93 E4 30 C4 */ stw r31, 0x30C4(r4) /* 0x800030C4@l */
/* 80343F6C 93 E4 30 C0 */ stw r31, 0x30c0(r4)
/* 80343F70 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 80343F74 38 63 C5 70 */ addi r3, r3, Ecb@l /* 0x8044C570@l */
/* 80343F78 93 E3 00 60 */ stw r31, 0x60(r3)
/* 80343F7C 93 E3 00 20 */ stw r31, 0x20(r3)
/* 80343F80 38 60 00 00 */ li r3, 0
/* 80343F84 4B FF F4 75 */ bl __EXIProbe
/* 80343F88 38 60 00 01 */ li r3, 1
/* 80343F8C 4B FF F4 6D */ bl __EXIProbe
/* 80343F90 48 00 00 70 */ b lbl_80344000
lbl_80343F94:
/* 80343F94 38 60 00 00 */ li r3, 0
/* 80343F98 38 80 00 00 */ li r4, 0
/* 80343F9C 38 A1 00 08 */ addi r5, r1, 8
/* 80343FA0 48 00 02 99 */ bl EXIGetID
/* 80343FA4 2C 03 00 00 */ cmpwi r3, 0
/* 80343FA8 41 82 00 24 */ beq lbl_80343FCC
/* 80343FAC 80 61 00 08 */ lwz r3, 8(r1)
/* 80343FB0 3C 03 F8 FF */ addis r0, r3, 0xf8ff
/* 80343FB4 28 00 00 00 */ cmplwi r0, 0
/* 80343FB8 40 82 00 14 */ bne lbl_80343FCC
/* 80343FBC 38 60 00 01 */ li r3, 1
/* 80343FC0 38 80 00 00 */ li r4, 0
/* 80343FC4 48 00 07 B1 */ bl __OSEnableBarnacle
/* 80343FC8 48 00 00 38 */ b lbl_80344000
lbl_80343FCC:
/* 80343FCC 38 60 00 01 */ li r3, 1
/* 80343FD0 38 80 00 00 */ li r4, 0
/* 80343FD4 38 A1 00 08 */ addi r5, r1, 8
/* 80343FD8 48 00 02 61 */ bl EXIGetID
/* 80343FDC 2C 03 00 00 */ cmpwi r3, 0
/* 80343FE0 41 82 00 20 */ beq lbl_80344000
/* 80343FE4 80 61 00 08 */ lwz r3, 8(r1)
/* 80343FE8 3C 03 F8 FF */ addis r0, r3, 0xf8ff
/* 80343FEC 28 00 00 00 */ cmplwi r0, 0
/* 80343FF0 40 82 00 10 */ bne lbl_80344000
/* 80343FF4 38 60 00 00 */ li r3, 0
/* 80343FF8 38 80 00 02 */ li r4, 2
/* 80343FFC 48 00 07 79 */ bl __OSEnableBarnacle
lbl_80344000:
/* 80344000 80 6D 84 40 */ lwz r3, __EXIVersion(r13)
/* 80344004 4B FF 68 71 */ bl OSRegisterVersion
/* 80344008 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8034400C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80344010 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80344014 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80344018 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8034401C 38 21 00 20 */ addi r1, r1, 0x20
/* 80344020 7C 08 03 A6 */ mtlr r0
/* 80344024 4E 80 00 20 */ blr

View File

@ -1,52 +0,0 @@
lbl_80343AA4:
/* 80343AA4 7C 08 02 A6 */ mflr r0
/* 80343AA8 90 01 00 04 */ stw r0, 4(r1)
/* 80343AAC 94 21 FD 08 */ stwu r1, -0x2f8(r1)
/* 80343AB0 93 E1 02 F4 */ stw r31, 0x2f4(r1)
/* 80343AB4 93 C1 02 F0 */ stw r30, 0x2f0(r1)
/* 80343AB8 93 A1 02 EC */ stw r29, 0x2ec(r1)
/* 80343ABC 3B E4 00 00 */ addi r31, r4, 0
/* 80343AC0 7C 63 07 34 */ extsh r3, r3
/* 80343AC4 38 03 FF F7 */ addi r0, r3, -9
/* 80343AC8 3C 60 55 55 */ lis r3, 0x5555 /* 0x55555556@ha */
/* 80343ACC 38 63 55 56 */ addi r3, r3, 0x5556 /* 0x55555556@l */
/* 80343AD0 7C 63 00 96 */ mulhw r3, r3, r0
/* 80343AD4 54 60 0F FE */ srwi r0, r3, 0x1f
/* 80343AD8 7F C3 02 14 */ add r30, r3, r0
/* 80343ADC 1C 1E 00 14 */ mulli r0, r30, 0x14
/* 80343AE0 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */
/* 80343AE4 38 63 68 00 */ addi r3, r3, 0x6800 /* 0xCC006800@l */
/* 80343AE8 7C 63 02 14 */ add r3, r3, r0
/* 80343AEC 80 03 00 00 */ lwz r0, 0(r3)
/* 80343AF0 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 80343AF4 60 00 00 02 */ ori r0, r0, 2
/* 80343AF8 90 03 00 00 */ stw r0, 0(r3)
/* 80343AFC 57 C4 30 32 */ slwi r4, r30, 6
/* 80343B00 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 80343B04 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 80343B08 7C 60 22 14 */ add r3, r0, r4
/* 80343B0C 80 03 00 00 */ lwz r0, 0(r3)
/* 80343B10 7C 1D 03 78 */ mr r29, r0
/* 80343B14 28 00 00 00 */ cmplwi r0, 0
/* 80343B18 41 82 00 38 */ beq lbl_80343B50
/* 80343B1C 38 61 00 18 */ addi r3, r1, 0x18
/* 80343B20 4B FF 84 E1 */ bl OSClearContext
/* 80343B24 38 61 00 18 */ addi r3, r1, 0x18
/* 80343B28 4B FF 83 11 */ bl OSSetCurrentContext
/* 80343B2C 38 7E 00 00 */ addi r3, r30, 0
/* 80343B30 38 9F 00 00 */ addi r4, r31, 0
/* 80343B34 39 9D 00 00 */ addi r12, r29, 0
/* 80343B38 7D 88 03 A6 */ mtlr r12
/* 80343B3C 4E 80 00 21 */ blrl
/* 80343B40 38 61 00 18 */ addi r3, r1, 0x18
/* 80343B44 4B FF 84 BD */ bl OSClearContext
/* 80343B48 7F E3 FB 78 */ mr r3, r31
/* 80343B4C 4B FF 82 ED */ bl OSSetCurrentContext
lbl_80343B50:
/* 80343B50 80 01 02 FC */ lwz r0, 0x2fc(r1)
/* 80343B54 83 E1 02 F4 */ lwz r31, 0x2f4(r1)
/* 80343B58 83 C1 02 F0 */ lwz r30, 0x2f0(r1)
/* 80343B5C 83 A1 02 EC */ lwz r29, 0x2ec(r1)
/* 80343B60 38 21 02 F8 */ addi r1, r1, 0x2f8
/* 80343B64 7C 08 03 A6 */ mtlr r0
/* 80343B68 4E 80 00 20 */ blr

View File

@ -1,68 +0,0 @@
lbl_80344028:
/* 80344028 7C 08 02 A6 */ mflr r0
/* 8034402C 90 01 00 04 */ stw r0, 4(r1)
/* 80344030 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80344034 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 80344038 3B 63 00 00 */ addi r27, r3, 0
/* 8034403C 3B E4 00 00 */ addi r31, r4, 0
/* 80344040 3B 85 00 00 */ addi r28, r5, 0
/* 80344044 54 64 30 32 */ slwi r4, r3, 6
/* 80344048 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 8034404C 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 80344050 7F C0 22 14 */ add r30, r0, r4
/* 80344054 4B FF 96 A1 */ bl OSDisableInterrupts
/* 80344058 7C 7D 1B 78 */ mr r29, r3
/* 8034405C 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 80344060 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80344064 41 82 00 7C */ beq lbl_803440E0
/* 80344068 28 1C 00 00 */ cmplwi r28, 0
/* 8034406C 41 82 00 64 */ beq lbl_803440D0
/* 80344070 7F C3 F3 78 */ mr r3, r30
/* 80344074 80 9E 00 24 */ lwz r4, 0x24(r30)
/* 80344078 7C 89 03 A6 */ mtctr r4
/* 8034407C 2C 04 00 00 */ cmpwi r4, 0
/* 80344080 40 81 00 28 */ ble lbl_803440A8
lbl_80344084:
/* 80344084 80 03 00 28 */ lwz r0, 0x28(r3)
/* 80344088 7C 00 F8 40 */ cmplw r0, r31
/* 8034408C 40 82 00 14 */ bne lbl_803440A0
/* 80344090 7F A3 EB 78 */ mr r3, r29
/* 80344094 4B FF 96 89 */ bl OSRestoreInterrupts
/* 80344098 38 60 00 00 */ li r3, 0
/* 8034409C 48 00 00 6C */ b lbl_80344108
lbl_803440A0:
/* 803440A0 38 63 00 08 */ addi r3, r3, 8
/* 803440A4 42 00 FF E0 */ bdnz lbl_80344084
lbl_803440A8:
/* 803440A8 54 80 18 38 */ slwi r0, r4, 3
/* 803440AC 7C 7E 02 14 */ add r3, r30, r0
/* 803440B0 93 83 00 2C */ stw r28, 0x2c(r3)
/* 803440B4 80 1E 00 24 */ lwz r0, 0x24(r30)
/* 803440B8 54 00 18 38 */ slwi r0, r0, 3
/* 803440BC 7C 7E 02 14 */ add r3, r30, r0
/* 803440C0 93 E3 00 28 */ stw r31, 0x28(r3)
/* 803440C4 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 803440C8 38 03 00 01 */ addi r0, r3, 1
/* 803440CC 90 1E 00 24 */ stw r0, 0x24(r30)
lbl_803440D0:
/* 803440D0 7F A3 EB 78 */ mr r3, r29
/* 803440D4 4B FF 96 49 */ bl OSRestoreInterrupts
/* 803440D8 38 60 00 00 */ li r3, 0
/* 803440DC 48 00 00 2C */ b lbl_80344108
lbl_803440E0:
/* 803440E0 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803440E4 60 00 00 10 */ ori r0, r0, 0x10
/* 803440E8 90 1E 00 0C */ stw r0, 0xc(r30)
/* 803440EC 93 FE 00 18 */ stw r31, 0x18(r30)
/* 803440F0 38 7B 00 00 */ addi r3, r27, 0
/* 803440F4 38 9E 00 00 */ addi r4, r30, 0
/* 803440F8 4B FF EB 15 */ bl SetExiInterruptMask
/* 803440FC 7F A3 EB 78 */ mr r3, r29
/* 80344100 4B FF 96 1D */ bl OSRestoreInterrupts
/* 80344104 38 60 00 01 */ li r3, 1
lbl_80344108:
/* 80344108 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8034410C BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 80344110 38 21 00 30 */ addi r1, r1, 0x30
/* 80344114 7C 08 03 A6 */ mtlr r0
/* 80344118 4E 80 00 20 */ blr

View File

@ -1,35 +0,0 @@
lbl_8034356C:
/* 8034356C 7C 08 02 A6 */ mflr r0
/* 80343570 90 01 00 04 */ stw r0, 4(r1)
/* 80343574 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80343578 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8034357C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80343580 3B C3 00 00 */ addi r30, r3, 0
/* 80343584 54 64 30 32 */ slwi r4, r3, 6
/* 80343588 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 8034358C 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 80343590 7F E0 22 14 */ add r31, r0, r4
/* 80343594 38 7E 00 00 */ addi r3, r30, 0
/* 80343598 4B FF FE 61 */ bl __EXIProbe
/* 8034359C 2C 03 00 00 */ cmpwi r3, 0
/* 803435A0 41 82 00 34 */ beq lbl_803435D4
/* 803435A4 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 803435A8 2C 00 00 00 */ cmpwi r0, 0
/* 803435AC 40 82 00 28 */ bne lbl_803435D4
/* 803435B0 38 7E 00 00 */ addi r3, r30, 0
/* 803435B4 38 80 00 00 */ li r4, 0
/* 803435B8 38 A1 00 0C */ addi r5, r1, 0xc
/* 803435BC 48 00 0C 7D */ bl EXIGetID
/* 803435C0 2C 03 00 00 */ cmpwi r3, 0
/* 803435C4 41 82 00 0C */ beq lbl_803435D0
/* 803435C8 38 60 00 01 */ li r3, 1
/* 803435CC 48 00 00 08 */ b lbl_803435D4
lbl_803435D0:
/* 803435D0 38 60 00 00 */ li r3, 0
lbl_803435D4:
/* 803435D4 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 803435D8 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 803435DC 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 803435E0 38 21 00 18 */ addi r1, r1, 0x18
/* 803435E4 7C 08 03 A6 */ mtlr r0
/* 803435E8 4E 80 00 20 */ blr

View File

@ -1,51 +0,0 @@
lbl_803435EC:
/* 803435EC 7C 08 02 A6 */ mflr r0
/* 803435F0 90 01 00 04 */ stw r0, 4(r1)
/* 803435F4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 803435F8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 803435FC 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80343600 3B C3 00 00 */ addi r30, r3, 0
/* 80343604 54 64 30 32 */ slwi r4, r3, 6
/* 80343608 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 8034360C 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 80343610 7F E0 22 14 */ add r31, r0, r4
/* 80343614 38 7E 00 00 */ addi r3, r30, 0
/* 80343618 4B FF FD E1 */ bl __EXIProbe
/* 8034361C 2C 03 00 00 */ cmpwi r3, 0
/* 80343620 41 82 00 34 */ beq lbl_80343654
/* 80343624 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 80343628 2C 00 00 00 */ cmpwi r0, 0
/* 8034362C 40 82 00 28 */ bne lbl_80343654
/* 80343630 38 7E 00 00 */ addi r3, r30, 0
/* 80343634 38 80 00 00 */ li r4, 0
/* 80343638 38 A1 00 0C */ addi r5, r1, 0xc
/* 8034363C 48 00 0B FD */ bl EXIGetID
/* 80343640 2C 03 00 00 */ cmpwi r3, 0
/* 80343644 41 82 00 0C */ beq lbl_80343650
/* 80343648 38 60 00 01 */ li r3, 1
/* 8034364C 48 00 00 08 */ b lbl_80343654
lbl_80343650:
/* 80343650 38 60 00 00 */ li r3, 0
lbl_80343654:
/* 80343654 2C 03 00 00 */ cmpwi r3, 0
/* 80343658 41 82 00 0C */ beq lbl_80343664
/* 8034365C 38 60 00 01 */ li r3, 1
/* 80343660 48 00 00 28 */ b lbl_80343688
lbl_80343664:
/* 80343664 57 C0 10 3A */ slwi r0, r30, 2
/* 80343668 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030C0@ha */
/* 8034366C 38 63 30 C0 */ addi r3, r3, 0x30C0 /* 0x800030C0@l */
/* 80343670 7C 03 00 2E */ lwzx r0, r3, r0
/* 80343674 2C 00 00 00 */ cmpwi r0, 0
/* 80343678 41 82 00 0C */ beq lbl_80343684
/* 8034367C 38 60 00 00 */ li r3, 0
/* 80343680 48 00 00 08 */ b lbl_80343688
lbl_80343684:
/* 80343684 38 60 FF FF */ li r3, -1
lbl_80343688:
/* 80343688 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8034368C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80343690 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80343694 38 21 00 18 */ addi r1, r1, 0x18
/* 80343698 7C 08 03 A6 */ mtlr r0
/* 8034369C 4E 80 00 20 */ blr

View File

@ -1,83 +0,0 @@
lbl_80343868:
/* 80343868 7C 08 02 A6 */ mflr r0
/* 8034386C 90 01 00 04 */ stw r0, 4(r1)
/* 80343870 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80343874 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 80343878 3B 63 00 00 */ addi r27, r3, 0
/* 8034387C 3B 84 00 00 */ addi r28, r4, 0
/* 80343880 3B A5 00 00 */ addi r29, r5, 0
/* 80343884 54 64 30 32 */ slwi r4, r3, 6
/* 80343888 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 8034388C 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 80343890 7F E0 22 14 */ add r31, r0, r4
/* 80343894 4B FF 9E 61 */ bl OSDisableInterrupts
/* 80343898 7C 7E 1B 78 */ mr r30, r3
/* 8034389C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803438A0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 803438A4 40 82 00 48 */ bne lbl_803438EC
/* 803438A8 2C 1B 00 02 */ cmpwi r27, 2
/* 803438AC 41 82 00 50 */ beq lbl_803438FC
/* 803438B0 28 1C 00 00 */ cmplwi r28, 0
/* 803438B4 40 82 00 20 */ bne lbl_803438D4
/* 803438B8 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803438BC 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 803438C0 40 82 00 14 */ bne lbl_803438D4
/* 803438C4 7F 63 DB 78 */ mr r3, r27
/* 803438C8 4B FF FB 31 */ bl __EXIProbe
/* 803438CC 2C 03 00 00 */ cmpwi r3, 0
/* 803438D0 41 82 00 1C */ beq lbl_803438EC
lbl_803438D4:
/* 803438D4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803438D8 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 803438DC 41 82 00 10 */ beq lbl_803438EC
/* 803438E0 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 803438E4 7C 00 E0 40 */ cmplw r0, r28
/* 803438E8 41 82 00 14 */ beq lbl_803438FC
lbl_803438EC:
/* 803438EC 7F C3 F3 78 */ mr r3, r30
/* 803438F0 4B FF 9E 2D */ bl OSRestoreInterrupts
/* 803438F4 38 60 00 00 */ li r3, 0
/* 803438F8 48 00 00 88 */ b lbl_80343980
lbl_803438FC:
/* 803438FC 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343900 60 00 00 04 */ ori r0, r0, 4
/* 80343904 90 1F 00 0C */ stw r0, 0xc(r31)
/* 80343908 1C 1B 00 14 */ mulli r0, r27, 0x14
/* 8034390C 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */
/* 80343910 38 83 68 00 */ addi r4, r3, 0x6800 /* 0xCC006800@l */
/* 80343914 7C 84 02 14 */ add r4, r4, r0
/* 80343918 80 A4 00 00 */ lwz r5, 0(r4)
/* 8034391C 70 A5 04 05 */ andi. r5, r5, 0x405
/* 80343920 38 00 00 01 */ li r0, 1
/* 80343924 7C 00 E0 30 */ slw r0, r0, r28
/* 80343928 54 03 38 30 */ slwi r3, r0, 7
/* 8034392C 57 A0 20 36 */ slwi r0, r29, 4
/* 80343930 7C 60 03 78 */ or r0, r3, r0
/* 80343934 7C A5 03 78 */ or r5, r5, r0
/* 80343938 90 A4 00 00 */ stw r5, 0(r4)
/* 8034393C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343940 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 80343944 41 82 00 30 */ beq lbl_80343974
/* 80343948 2C 1B 00 01 */ cmpwi r27, 1
/* 8034394C 41 82 00 20 */ beq lbl_8034396C
/* 80343950 40 80 00 24 */ bge lbl_80343974
/* 80343954 2C 1B 00 00 */ cmpwi r27, 0
/* 80343958 40 80 00 08 */ bge lbl_80343960
/* 8034395C 48 00 00 18 */ b lbl_80343974
lbl_80343960:
/* 80343960 3C 60 00 10 */ lis r3, 0x10
/* 80343964 4B FF A1 59 */ bl __OSMaskInterrupts
/* 80343968 48 00 00 0C */ b lbl_80343974
lbl_8034396C:
/* 8034396C 3C 60 00 02 */ lis r3, 2
/* 80343970 4B FF A1 4D */ bl __OSMaskInterrupts
lbl_80343974:
/* 80343974 7F C3 F3 78 */ mr r3, r30
/* 80343978 4B FF 9D A5 */ bl OSRestoreInterrupts
/* 8034397C 38 60 00 01 */ li r3, 1
lbl_80343980:
/* 80343980 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80343984 BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 80343988 38 21 00 30 */ addi r1, r1, 0x30
/* 8034398C 7C 08 03 A6 */ mtlr r0
/* 80343990 4E 80 00 20 */ blr

View File

@ -1,34 +0,0 @@
lbl_8034337C:
/* 8034337C 7C 08 02 A6 */ mflr r0
/* 80343380 90 01 00 04 */ stw r0, 4(r1)
/* 80343384 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80343388 BF 41 00 10 */ stmw r26, 0x10(r1)
/* 8034338C 3B 43 00 00 */ addi r26, r3, 0
/* 80343390 3B 64 00 00 */ addi r27, r4, 0
/* 80343394 54 60 30 32 */ slwi r0, r3, 6
/* 80343398 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 8034339C 3B E3 C5 70 */ addi r31, r3, Ecb@l /* 0x8044C570@l */
/* 803433A0 7F DF 02 14 */ add r30, r31, r0
/* 803433A4 4B FF A3 51 */ bl OSDisableInterrupts
/* 803433A8 7C 7C 1B 78 */ mr r28, r3
/* 803433AC 83 BE 00 00 */ lwz r29, 0(r30)
/* 803433B0 93 7E 00 00 */ stw r27, 0(r30)
/* 803433B4 2C 1A 00 02 */ cmpwi r26, 2
/* 803433B8 41 82 00 14 */ beq lbl_803433CC
/* 803433BC 38 7A 00 00 */ addi r3, r26, 0
/* 803433C0 38 9E 00 00 */ addi r4, r30, 0
/* 803433C4 4B FF F8 49 */ bl SetExiInterruptMask
/* 803433C8 48 00 00 10 */ b lbl_803433D8
lbl_803433CC:
/* 803433CC 38 60 00 00 */ li r3, 0
/* 803433D0 38 9F 00 00 */ addi r4, r31, 0
/* 803433D4 4B FF F8 39 */ bl SetExiInterruptMask
lbl_803433D8:
/* 803433D8 7F 83 E3 78 */ mr r3, r28
/* 803433DC 4B FF A3 41 */ bl OSRestoreInterrupts
/* 803433E0 7F A3 EB 78 */ mr r3, r29
/* 803433E4 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 803433E8 BB 41 00 10 */ lmw r26, 0x10(r1)
/* 803433EC 38 21 00 28 */ addi r1, r1, 0x28
/* 803433F0 7C 08 03 A6 */ mtlr r0
/* 803433F4 4E 80 00 20 */ blr

View File

@ -1,159 +0,0 @@
lbl_803430E8:
/* 803430E8 7C 08 02 A6 */ mflr r0
/* 803430EC 90 01 00 04 */ stw r0, 4(r1)
/* 803430F0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803430F4 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 803430F8 54 65 30 32 */ slwi r5, r3, 6
/* 803430FC 3C 80 80 45 */ lis r4, Ecb@ha /* 0x8044C570@ha */
/* 80343100 38 04 C5 70 */ addi r0, r4, Ecb@l /* 0x8044C570@l */
/* 80343104 7F E0 2A 14 */ add r31, r0, r5
/* 80343108 3B 80 00 00 */ li r28, 0
/* 8034310C 1F C3 00 14 */ mulli r30, r3, 0x14
/* 80343110 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */
/* 80343114 3B A3 68 00 */ addi r29, r3, 0x6800 /* 0xCC006800@l */
/* 80343118 7F BD F2 14 */ add r29, r29, r30
/* 8034311C 48 00 01 F4 */ b lbl_80343310
lbl_80343120:
/* 80343120 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 80343124 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80343128 40 82 01 E8 */ bne lbl_80343310
/* 8034312C 4B FF A5 C9 */ bl OSDisableInterrupts
/* 80343130 7C 7B 1B 78 */ mr r27, r3
/* 80343134 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343138 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 8034313C 41 82 01 C8 */ beq lbl_80343304
/* 80343140 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343144 54 00 07 BF */ clrlwi. r0, r0, 0x1e
/* 80343148 41 82 01 34 */ beq lbl_8034327C
/* 8034314C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343150 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80343154 41 82 01 1C */ beq lbl_80343270
/* 80343158 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 8034315C 2C 03 00 00 */ cmpwi r3, 0
/* 80343160 41 82 01 10 */ beq lbl_80343270
/* 80343164 80 BF 00 14 */ lwz r5, 0x14(r31)
/* 80343168 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006800@ha */
/* 8034316C 38 04 68 00 */ addi r0, r4, 0x6800 /* 0xCC006800@l */
/* 80343170 7C 80 F2 14 */ add r4, r0, r30
/* 80343174 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80343178 38 80 00 00 */ li r4, 0
/* 8034317C 40 81 00 F4 */ ble lbl_80343270
/* 80343180 38 E3 FF F8 */ addi r7, r3, -8
/* 80343184 2C 03 00 08 */ cmpwi r3, 8
/* 80343188 40 81 00 BC */ ble lbl_80343244
/* 8034318C 38 C7 00 07 */ addi r6, r7, 7
/* 80343190 54 C6 E8 FE */ srwi r6, r6, 3
/* 80343194 7C C9 03 A6 */ mtctr r6
/* 80343198 2C 07 00 00 */ cmpwi r7, 0
/* 8034319C 40 81 00 A8 */ ble lbl_80343244
lbl_803431A0:
/* 803431A0 20 C4 00 03 */ subfic r6, r4, 3
/* 803431A4 54 C6 18 38 */ slwi r6, r6, 3
/* 803431A8 7C 06 34 30 */ srw r6, r0, r6
/* 803431AC 98 C5 00 00 */ stb r6, 0(r5)
/* 803431B0 38 C4 00 01 */ addi r6, r4, 1
/* 803431B4 20 C6 00 03 */ subfic r6, r6, 3
/* 803431B8 54 C6 18 38 */ slwi r6, r6, 3
/* 803431BC 7C 06 34 30 */ srw r6, r0, r6
/* 803431C0 98 C5 00 01 */ stb r6, 1(r5)
/* 803431C4 38 C4 00 02 */ addi r6, r4, 2
/* 803431C8 20 C6 00 03 */ subfic r6, r6, 3
/* 803431CC 54 C6 18 38 */ slwi r6, r6, 3
/* 803431D0 7C 06 34 30 */ srw r6, r0, r6
/* 803431D4 98 C5 00 02 */ stb r6, 2(r5)
/* 803431D8 7C C4 00 D0 */ neg r6, r4
/* 803431DC 54 C6 18 38 */ slwi r6, r6, 3
/* 803431E0 7C 06 34 30 */ srw r6, r0, r6
/* 803431E4 98 C5 00 03 */ stb r6, 3(r5)
/* 803431E8 38 C4 00 04 */ addi r6, r4, 4
/* 803431EC 20 C6 00 03 */ subfic r6, r6, 3
/* 803431F0 54 C6 18 38 */ slwi r6, r6, 3
/* 803431F4 7C 06 34 30 */ srw r6, r0, r6
/* 803431F8 98 C5 00 04 */ stb r6, 4(r5)
/* 803431FC 38 C4 00 05 */ addi r6, r4, 5
/* 80343200 20 C6 00 03 */ subfic r6, r6, 3
/* 80343204 54 C6 18 38 */ slwi r6, r6, 3
/* 80343208 7C 06 34 30 */ srw r6, r0, r6
/* 8034320C 98 C5 00 05 */ stb r6, 5(r5)
/* 80343210 38 C4 00 06 */ addi r6, r4, 6
/* 80343214 20 C6 00 03 */ subfic r6, r6, 3
/* 80343218 54 C6 18 38 */ slwi r6, r6, 3
/* 8034321C 7C 06 34 30 */ srw r6, r0, r6
/* 80343220 98 C5 00 06 */ stb r6, 6(r5)
/* 80343224 38 C4 00 07 */ addi r6, r4, 7
/* 80343228 20 C6 00 03 */ subfic r6, r6, 3
/* 8034322C 54 C6 18 38 */ slwi r6, r6, 3
/* 80343230 7C 06 34 30 */ srw r6, r0, r6
/* 80343234 98 C5 00 07 */ stb r6, 7(r5)
/* 80343238 38 A5 00 08 */ addi r5, r5, 8
/* 8034323C 38 84 00 08 */ addi r4, r4, 8
/* 80343240 42 00 FF 60 */ bdnz lbl_803431A0
lbl_80343244:
/* 80343244 7C C4 18 50 */ subf r6, r4, r3
/* 80343248 7C C9 03 A6 */ mtctr r6
/* 8034324C 7C 04 18 00 */ cmpw r4, r3
/* 80343250 40 80 00 20 */ bge lbl_80343270
lbl_80343254:
/* 80343254 20 64 00 03 */ subfic r3, r4, 3
/* 80343258 54 63 18 38 */ slwi r3, r3, 3
/* 8034325C 7C 03 1C 30 */ srw r3, r0, r3
/* 80343260 98 65 00 00 */ stb r3, 0(r5)
/* 80343264 38 A5 00 01 */ addi r5, r5, 1
/* 80343268 38 84 00 01 */ addi r4, r4, 1
/* 8034326C 42 00 FF E8 */ bdnz lbl_80343254
lbl_80343270:
/* 80343270 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343274 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
/* 80343278 90 1F 00 0C */ stw r0, 0xc(r31)
lbl_8034327C:
/* 8034327C 4B FF 75 E5 */ bl __OSGetDIConfig
/* 80343280 28 03 00 FF */ cmplwi r3, 0xff
/* 80343284 40 82 00 7C */ bne lbl_80343300
/* 80343288 4B FF 6C 75 */ bl OSGetConsoleType
/* 8034328C 54 63 00 06 */ rlwinm r3, r3, 0, 0, 3
/* 80343290 3C 03 E0 00 */ addis r0, r3, 0xe000
/* 80343294 28 00 00 00 */ cmplwi r0, 0
/* 80343298 41 82 00 68 */ beq lbl_80343300
/* 8034329C 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 803432A0 2C 00 00 04 */ cmpwi r0, 4
/* 803432A4 40 82 00 5C */ bne lbl_80343300
/* 803432A8 80 1D 00 00 */ lwz r0, 0(r29)
/* 803432AC 54 00 06 77 */ rlwinm. r0, r0, 0, 0x19, 0x1b
/* 803432B0 40 82 00 50 */ bne lbl_80343300
/* 803432B4 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */
/* 803432B8 38 03 68 00 */ addi r0, r3, 0x6800 /* 0xCC006800@l */
/* 803432BC 7C 80 F2 14 */ add r4, r0, r30
/* 803432C0 84 64 00 10 */ lwzu r3, 0x10(r4)
/* 803432C4 3C 03 FE FF */ addis r0, r3, 0xfeff
/* 803432C8 28 00 00 00 */ cmplwi r0, 0
/* 803432CC 41 82 00 24 */ beq lbl_803432F0
/* 803432D0 80 64 00 00 */ lwz r3, 0(r4)
/* 803432D4 3C 03 FA F9 */ addis r0, r3, 0xfaf9
/* 803432D8 28 00 00 00 */ cmplwi r0, 0
/* 803432DC 41 82 00 14 */ beq lbl_803432F0
/* 803432E0 80 64 00 00 */ lwz r3, 0(r4)
/* 803432E4 3C 03 FB DE */ addis r0, r3, 0xfbde
/* 803432E8 28 00 00 01 */ cmplwi r0, 1
/* 803432EC 40 82 00 14 */ bne lbl_80343300
lbl_803432F0:
/* 803432F0 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030E6@ha */
/* 803432F4 A0 03 30 E6 */ lhz r0, 0x30E6(r3) /* 0x800030E6@l */
/* 803432F8 28 00 82 00 */ cmplwi r0, 0x8200
/* 803432FC 40 82 00 08 */ bne lbl_80343304
lbl_80343300:
/* 80343300 3B 80 00 01 */ li r28, 1
lbl_80343304:
/* 80343304 7F 63 DB 78 */ mr r3, r27
/* 80343308 4B FF A4 15 */ bl OSRestoreInterrupts
/* 8034330C 48 00 00 10 */ b lbl_8034331C
lbl_80343310:
/* 80343310 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343314 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80343318 40 82 FE 08 */ bne lbl_80343120
lbl_8034331C:
/* 8034331C 7F 83 E3 78 */ mr r3, r28
/* 80343320 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80343324 BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 80343328 38 21 00 30 */ addi r1, r1, 0x30
/* 8034332C 7C 08 03 A6 */ mtlr r0
/* 80343330 4E 80 00 20 */ blr

View File

@ -1,60 +0,0 @@
lbl_8034411C:
/* 8034411C 7C 08 02 A6 */ mflr r0
/* 80344120 90 01 00 04 */ stw r0, 4(r1)
/* 80344124 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80344128 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8034412C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80344130 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80344134 93 81 00 10 */ stw r28, 0x10(r1)
/* 80344138 3B 83 00 00 */ addi r28, r3, 0
/* 8034413C 54 64 30 32 */ slwi r4, r3, 6
/* 80344140 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 80344144 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 80344148 7F E0 22 14 */ add r31, r0, r4
/* 8034414C 4B FF 95 A9 */ bl OSDisableInterrupts
/* 80344150 7C 7E 1B 78 */ mr r30, r3
/* 80344154 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80344158 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 8034415C 40 82 00 14 */ bne lbl_80344170
/* 80344160 7F C3 F3 78 */ mr r3, r30
/* 80344164 4B FF 95 B9 */ bl OSRestoreInterrupts
/* 80344168 38 60 00 00 */ li r3, 0
/* 8034416C 48 00 00 6C */ b lbl_803441D8
lbl_80344170:
/* 80344170 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80344174 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
/* 80344178 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8034417C 38 7C 00 00 */ addi r3, r28, 0
/* 80344180 38 9F 00 00 */ addi r4, r31, 0
/* 80344184 4B FF EA 89 */ bl SetExiInterruptMask
/* 80344188 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 8034418C 2C 03 00 00 */ cmpwi r3, 0
/* 80344190 40 81 00 3C */ ble lbl_803441CC
/* 80344194 83 BF 00 2C */ lwz r29, 0x2c(r31)
/* 80344198 34 03 FF FF */ addic. r0, r3, -1
/* 8034419C 90 1F 00 24 */ stw r0, 0x24(r31)
/* 803441A0 40 81 00 18 */ ble lbl_803441B8
/* 803441A4 38 7F 00 28 */ addi r3, r31, 0x28
/* 803441A8 38 9F 00 30 */ addi r4, r31, 0x30
/* 803441AC 80 1F 00 24 */ lwz r0, 0x24(r31)
/* 803441B0 54 05 18 38 */ slwi r5, r0, 3
/* 803441B4 48 02 1F 7D */ bl memmove
lbl_803441B8:
/* 803441B8 38 7C 00 00 */ addi r3, r28, 0
/* 803441BC 38 80 00 00 */ li r4, 0
/* 803441C0 39 9D 00 00 */ addi r12, r29, 0
/* 803441C4 7D 88 03 A6 */ mtlr r12
/* 803441C8 4E 80 00 21 */ blrl
lbl_803441CC:
/* 803441CC 7F C3 F3 78 */ mr r3, r30
/* 803441D0 4B FF 95 4D */ bl OSRestoreInterrupts
/* 803441D4 38 60 00 01 */ li r3, 1
lbl_803441D8:
/* 803441D8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803441DC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803441E0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803441E4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803441E8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 803441EC 38 21 00 20 */ addi r1, r1, 0x20
/* 803441F0 7C 08 03 A6 */ mtlr r0
/* 803441F4 4E 80 00 20 */ blr

View File

@ -1,54 +0,0 @@
lbl_80343D84:
/* 80343D84 7C 08 02 A6 */ mflr r0
/* 80343D88 90 01 00 04 */ stw r0, 4(r1)
/* 80343D8C 94 21 FD 18 */ stwu r1, -0x2e8(r1)
/* 80343D90 93 E1 02 E4 */ stw r31, 0x2e4(r1)
/* 80343D94 93 C1 02 E0 */ stw r30, 0x2e0(r1)
/* 80343D98 93 A1 02 DC */ stw r29, 0x2dc(r1)
/* 80343D9C 93 81 02 D8 */ stw r28, 0x2d8(r1)
/* 80343DA0 3B E4 00 00 */ addi r31, r4, 0
/* 80343DA4 7C 63 07 34 */ extsh r3, r3
/* 80343DA8 38 03 FF F5 */ addi r0, r3, -11
/* 80343DAC 3C 60 55 55 */ lis r3, 0x5555 /* 0x55555556@ha */
/* 80343DB0 38 63 55 56 */ addi r3, r3, 0x5556 /* 0x55555556@l */
/* 80343DB4 7C 63 00 96 */ mulhw r3, r3, r0
/* 80343DB8 54 60 0F FE */ srwi r0, r3, 0x1f
/* 80343DBC 7F C3 02 14 */ add r30, r3, r0
/* 80343DC0 3C 60 00 50 */ lis r3, 0x50
/* 80343DC4 1C 1E 00 03 */ mulli r0, r30, 3
/* 80343DC8 7C 63 04 30 */ srw r3, r3, r0
/* 80343DCC 4B FF 9C F1 */ bl __OSMaskInterrupts
/* 80343DD0 57 C4 30 32 */ slwi r4, r30, 6
/* 80343DD4 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 80343DD8 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 80343DDC 7F A0 22 14 */ add r29, r0, r4
/* 80343DE0 83 9D 00 08 */ lwz r28, 8(r29)
/* 80343DE4 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 80343DE8 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 80343DEC 90 1D 00 0C */ stw r0, 0xc(r29)
/* 80343DF0 28 1C 00 00 */ cmplwi r28, 0
/* 80343DF4 41 82 00 40 */ beq lbl_80343E34
/* 80343DF8 38 61 00 10 */ addi r3, r1, 0x10
/* 80343DFC 4B FF 82 05 */ bl OSClearContext
/* 80343E00 38 61 00 10 */ addi r3, r1, 0x10
/* 80343E04 4B FF 80 35 */ bl OSSetCurrentContext
/* 80343E08 38 00 00 00 */ li r0, 0
/* 80343E0C 90 1D 00 08 */ stw r0, 8(r29)
/* 80343E10 38 7E 00 00 */ addi r3, r30, 0
/* 80343E14 38 9F 00 00 */ addi r4, r31, 0
/* 80343E18 39 9C 00 00 */ addi r12, r28, 0
/* 80343E1C 7D 88 03 A6 */ mtlr r12
/* 80343E20 4E 80 00 21 */ blrl
/* 80343E24 38 61 00 10 */ addi r3, r1, 0x10
/* 80343E28 4B FF 81 D9 */ bl OSClearContext
/* 80343E2C 7F E3 FB 78 */ mr r3, r31
/* 80343E30 4B FF 80 09 */ bl OSSetCurrentContext
lbl_80343E34:
/* 80343E34 80 01 02 EC */ lwz r0, 0x2ec(r1)
/* 80343E38 83 E1 02 E4 */ lwz r31, 0x2e4(r1)
/* 80343E3C 83 C1 02 E0 */ lwz r30, 0x2e0(r1)
/* 80343E40 83 A1 02 DC */ lwz r29, 0x2dc(r1)
/* 80343E44 83 81 02 D8 */ lwz r28, 0x2d8(r1)
/* 80343E48 38 21 02 E8 */ addi r1, r1, 0x2e8
/* 80343E4C 7C 08 03 A6 */ mtlr r0
/* 80343E50 4E 80 00 20 */ blr

View File

@ -1,74 +0,0 @@
lbl_80342C0C:
/* 80342C0C 7C 08 02 A6 */ mflr r0
/* 80342C10 90 01 00 04 */ stw r0, 4(r1)
/* 80342C14 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80342C18 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80342C1C 3B E4 00 00 */ addi r31, r4, 0
/* 80342C20 3C 80 80 45 */ lis r4, Ecb@ha /* 0x8044C570@ha */
/* 80342C24 38 84 C5 70 */ addi r4, r4, Ecb@l /* 0x8044C570@l */
/* 80342C28 38 84 00 80 */ addi r4, r4, 0x80
/* 80342C2C 2C 03 00 01 */ cmpwi r3, 1
/* 80342C30 41 82 00 5C */ beq lbl_80342C8C
/* 80342C34 40 80 00 10 */ bge lbl_80342C44
/* 80342C38 2C 03 00 00 */ cmpwi r3, 0
/* 80342C3C 40 80 00 14 */ bge lbl_80342C50
/* 80342C40 48 00 00 AC */ b lbl_80342CEC
lbl_80342C44:
/* 80342C44 2C 03 00 03 */ cmpwi r3, 3
/* 80342C48 40 80 00 A4 */ bge lbl_80342CEC
/* 80342C4C 48 00 00 70 */ b lbl_80342CBC
lbl_80342C50:
/* 80342C50 80 1F 00 00 */ lwz r0, 0(r31)
/* 80342C54 28 00 00 00 */ cmplwi r0, 0
/* 80342C58 40 82 00 10 */ bne lbl_80342C68
/* 80342C5C 80 04 00 00 */ lwz r0, 0(r4)
/* 80342C60 28 00 00 00 */ cmplwi r0, 0
/* 80342C64 41 82 00 10 */ beq lbl_80342C74
lbl_80342C68:
/* 80342C68 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80342C6C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80342C70 41 82 00 10 */ beq lbl_80342C80
lbl_80342C74:
/* 80342C74 3C 60 00 41 */ lis r3, 0x41
/* 80342C78 4B FF AE 45 */ bl __OSMaskInterrupts
/* 80342C7C 48 00 00 70 */ b lbl_80342CEC
lbl_80342C80:
/* 80342C80 3C 60 00 41 */ lis r3, 0x41
/* 80342C84 4B FF AE C1 */ bl __OSUnmaskInterrupts
/* 80342C88 48 00 00 64 */ b lbl_80342CEC
lbl_80342C8C:
/* 80342C8C 80 1F 00 00 */ lwz r0, 0(r31)
/* 80342C90 28 00 00 00 */ cmplwi r0, 0
/* 80342C94 41 82 00 10 */ beq lbl_80342CA4
/* 80342C98 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80342C9C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80342CA0 41 82 00 10 */ beq lbl_80342CB0
lbl_80342CA4:
/* 80342CA4 3C 60 00 08 */ lis r3, 8
/* 80342CA8 4B FF AE 15 */ bl __OSMaskInterrupts
/* 80342CAC 48 00 00 40 */ b lbl_80342CEC
lbl_80342CB0:
/* 80342CB0 3C 60 00 08 */ lis r3, 8
/* 80342CB4 4B FF AE 91 */ bl __OSUnmaskInterrupts
/* 80342CB8 48 00 00 34 */ b lbl_80342CEC
lbl_80342CBC:
/* 80342CBC 38 60 00 19 */ li r3, 0x19
/* 80342CC0 4B FF AA 9D */ bl __OSGetInterruptHandler
/* 80342CC4 28 03 00 00 */ cmplwi r3, 0
/* 80342CC8 41 82 00 10 */ beq lbl_80342CD8
/* 80342CCC 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80342CD0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80342CD4 41 82 00 10 */ beq lbl_80342CE4
lbl_80342CD8:
/* 80342CD8 38 60 00 40 */ li r3, 0x40
/* 80342CDC 4B FF AD E1 */ bl __OSMaskInterrupts
/* 80342CE0 48 00 00 0C */ b lbl_80342CEC
lbl_80342CE4:
/* 80342CE4 38 60 00 40 */ li r3, 0x40
/* 80342CE8 4B FF AE 5D */ bl __OSUnmaskInterrupts
lbl_80342CEC:
/* 80342CEC 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80342CF0 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80342CF4 38 21 00 18 */ addi r1, r1, 0x18
/* 80342CF8 7C 08 03 A6 */ mtlr r0
/* 80342CFC 4E 80 00 20 */ blr

View File

@ -1,141 +0,0 @@
lbl_80343B6C:
/* 80343B6C 7C 08 02 A6 */ mflr r0
/* 80343B70 90 01 00 04 */ stw r0, 4(r1)
/* 80343B74 94 21 FD 08 */ stwu r1, -0x2f8(r1)
/* 80343B78 93 E1 02 F4 */ stw r31, 0x2f4(r1)
/* 80343B7C 93 C1 02 F0 */ stw r30, 0x2f0(r1)
/* 80343B80 93 A1 02 EC */ stw r29, 0x2ec(r1)
/* 80343B84 93 81 02 E8 */ stw r28, 0x2e8(r1)
/* 80343B88 3B 84 00 00 */ addi r28, r4, 0
/* 80343B8C 7C 65 07 34 */ extsh r5, r3
/* 80343B90 38 05 FF F6 */ addi r0, r5, -10
/* 80343B94 3C 60 55 55 */ lis r3, 0x5555 /* 0x55555556@ha */
/* 80343B98 38 63 55 56 */ addi r3, r3, 0x5556 /* 0x55555556@l */
/* 80343B9C 7C 63 00 96 */ mulhw r3, r3, r0
/* 80343BA0 54 60 0F FE */ srwi r0, r3, 0x1f
/* 80343BA4 7F C3 02 14 */ add r30, r3, r0
/* 80343BA8 57 C4 30 32 */ slwi r4, r30, 6
/* 80343BAC 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 80343BB0 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 80343BB4 7F E0 22 14 */ add r31, r0, r4
/* 80343BB8 3C 00 80 00 */ lis r0, 0x8000
/* 80343BBC 7C 03 2C 30 */ srw r3, r0, r5
/* 80343BC0 4B FF 9E FD */ bl __OSMaskInterrupts
/* 80343BC4 1C FE 00 14 */ mulli r7, r30, 0x14
/* 80343BC8 3C C0 CC 00 */ lis r6, 0xCC00 /* 0xCC006800@ha */
/* 80343BCC 38 66 68 00 */ addi r3, r6, 0x6800 /* 0xCC006800@l */
/* 80343BD0 7C 63 3A 14 */ add r3, r3, r7
/* 80343BD4 80 03 00 00 */ lwz r0, 0(r3)
/* 80343BD8 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 80343BDC 60 00 00 08 */ ori r0, r0, 8
/* 80343BE0 90 03 00 00 */ stw r0, 0(r3)
/* 80343BE4 80 1F 00 04 */ lwz r0, 4(r31)
/* 80343BE8 7C 1D 03 78 */ mr r29, r0
/* 80343BEC 28 00 00 00 */ cmplwi r0, 0
/* 80343BF0 41 82 01 74 */ beq lbl_80343D64
/* 80343BF4 38 80 00 00 */ li r4, 0
/* 80343BF8 90 9F 00 04 */ stw r4, 4(r31)
/* 80343BFC 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343C00 54 00 07 BF */ clrlwi. r0, r0, 0x1e
/* 80343C04 41 82 01 2C */ beq lbl_80343D30
/* 80343C08 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343C0C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80343C10 41 82 01 14 */ beq lbl_80343D24
/* 80343C14 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 80343C18 2C 03 00 00 */ cmpwi r3, 0
/* 80343C1C 41 82 01 08 */ beq lbl_80343D24
/* 80343C20 80 BF 00 14 */ lwz r5, 0x14(r31)
/* 80343C24 38 06 68 00 */ addi r0, r6, 0x6800
/* 80343C28 7C C0 3A 14 */ add r6, r0, r7
/* 80343C2C 80 06 00 10 */ lwz r0, 0x10(r6)
/* 80343C30 40 81 00 F4 */ ble lbl_80343D24
/* 80343C34 38 E3 FF F8 */ addi r7, r3, -8
/* 80343C38 2C 03 00 08 */ cmpwi r3, 8
/* 80343C3C 40 81 00 BC */ ble lbl_80343CF8
/* 80343C40 38 C7 00 07 */ addi r6, r7, 7
/* 80343C44 54 C6 E8 FE */ srwi r6, r6, 3
/* 80343C48 7C C9 03 A6 */ mtctr r6
/* 80343C4C 2C 07 00 00 */ cmpwi r7, 0
/* 80343C50 40 81 00 A8 */ ble lbl_80343CF8
lbl_80343C54:
/* 80343C54 20 C4 00 03 */ subfic r6, r4, 3
/* 80343C58 54 C6 18 38 */ slwi r6, r6, 3
/* 80343C5C 7C 06 34 30 */ srw r6, r0, r6
/* 80343C60 98 C5 00 00 */ stb r6, 0(r5)
/* 80343C64 38 C4 00 01 */ addi r6, r4, 1
/* 80343C68 20 C6 00 03 */ subfic r6, r6, 3
/* 80343C6C 54 C6 18 38 */ slwi r6, r6, 3
/* 80343C70 7C 06 34 30 */ srw r6, r0, r6
/* 80343C74 98 C5 00 01 */ stb r6, 1(r5)
/* 80343C78 38 C4 00 02 */ addi r6, r4, 2
/* 80343C7C 20 C6 00 03 */ subfic r6, r6, 3
/* 80343C80 54 C6 18 38 */ slwi r6, r6, 3
/* 80343C84 7C 06 34 30 */ srw r6, r0, r6
/* 80343C88 98 C5 00 02 */ stb r6, 2(r5)
/* 80343C8C 7C C4 00 D0 */ neg r6, r4
/* 80343C90 54 C6 18 38 */ slwi r6, r6, 3
/* 80343C94 7C 06 34 30 */ srw r6, r0, r6
/* 80343C98 98 C5 00 03 */ stb r6, 3(r5)
/* 80343C9C 38 C4 00 04 */ addi r6, r4, 4
/* 80343CA0 20 C6 00 03 */ subfic r6, r6, 3
/* 80343CA4 54 C6 18 38 */ slwi r6, r6, 3
/* 80343CA8 7C 06 34 30 */ srw r6, r0, r6
/* 80343CAC 98 C5 00 04 */ stb r6, 4(r5)
/* 80343CB0 38 C4 00 05 */ addi r6, r4, 5
/* 80343CB4 20 C6 00 03 */ subfic r6, r6, 3
/* 80343CB8 54 C6 18 38 */ slwi r6, r6, 3
/* 80343CBC 7C 06 34 30 */ srw r6, r0, r6
/* 80343CC0 98 C5 00 05 */ stb r6, 5(r5)
/* 80343CC4 38 C4 00 06 */ addi r6, r4, 6
/* 80343CC8 20 C6 00 03 */ subfic r6, r6, 3
/* 80343CCC 54 C6 18 38 */ slwi r6, r6, 3
/* 80343CD0 7C 06 34 30 */ srw r6, r0, r6
/* 80343CD4 98 C5 00 06 */ stb r6, 6(r5)
/* 80343CD8 38 C4 00 07 */ addi r6, r4, 7
/* 80343CDC 20 C6 00 03 */ subfic r6, r6, 3
/* 80343CE0 54 C6 18 38 */ slwi r6, r6, 3
/* 80343CE4 7C 06 34 30 */ srw r6, r0, r6
/* 80343CE8 98 C5 00 07 */ stb r6, 7(r5)
/* 80343CEC 38 A5 00 08 */ addi r5, r5, 8
/* 80343CF0 38 84 00 08 */ addi r4, r4, 8
/* 80343CF4 42 00 FF 60 */ bdnz lbl_80343C54
lbl_80343CF8:
/* 80343CF8 7C C4 18 50 */ subf r6, r4, r3
/* 80343CFC 7C C9 03 A6 */ mtctr r6
/* 80343D00 7C 04 18 00 */ cmpw r4, r3
/* 80343D04 40 80 00 20 */ bge lbl_80343D24
lbl_80343D08:
/* 80343D08 20 64 00 03 */ subfic r3, r4, 3
/* 80343D0C 54 63 18 38 */ slwi r3, r3, 3
/* 80343D10 7C 03 1C 30 */ srw r3, r0, r3
/* 80343D14 98 65 00 00 */ stb r3, 0(r5)
/* 80343D18 38 A5 00 01 */ addi r5, r5, 1
/* 80343D1C 38 84 00 01 */ addi r4, r4, 1
/* 80343D20 42 00 FF E8 */ bdnz lbl_80343D08
lbl_80343D24:
/* 80343D24 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343D28 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
/* 80343D2C 90 1F 00 0C */ stw r0, 0xc(r31)
lbl_80343D30:
/* 80343D30 38 61 00 20 */ addi r3, r1, 0x20
/* 80343D34 4B FF 82 CD */ bl OSClearContext
/* 80343D38 38 61 00 20 */ addi r3, r1, 0x20
/* 80343D3C 4B FF 80 FD */ bl OSSetCurrentContext
/* 80343D40 38 7E 00 00 */ addi r3, r30, 0
/* 80343D44 38 9C 00 00 */ addi r4, r28, 0
/* 80343D48 39 9D 00 00 */ addi r12, r29, 0
/* 80343D4C 7D 88 03 A6 */ mtlr r12
/* 80343D50 4E 80 00 21 */ blrl
/* 80343D54 38 61 00 20 */ addi r3, r1, 0x20
/* 80343D58 4B FF 82 A9 */ bl OSClearContext
/* 80343D5C 7F 83 E3 78 */ mr r3, r28
/* 80343D60 4B FF 80 D9 */ bl OSSetCurrentContext
lbl_80343D64:
/* 80343D64 80 01 02 FC */ lwz r0, 0x2fc(r1)
/* 80343D68 83 E1 02 F4 */ lwz r31, 0x2f4(r1)
/* 80343D6C 83 C1 02 F0 */ lwz r30, 0x2f0(r1)
/* 80343D70 83 A1 02 EC */ lwz r29, 0x2ec(r1)
/* 80343D74 83 81 02 E8 */ lwz r28, 0x2e8(r1)
/* 80343D78 38 21 02 F8 */ addi r1, r1, 0x2f8
/* 80343D7C 7C 08 03 A6 */ mtlr r0
/* 80343D80 4E 80 00 20 */ blr

View File

@ -1,11 +0,0 @@
lbl_80344210:
/* 80344210 7C 08 02 A6 */ mflr r0
/* 80344214 90 01 00 04 */ stw r0, 4(r1)
/* 80344218 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8034421C 38 80 00 00 */ li r4, 0
/* 80344220 38 A1 00 10 */ addi r5, r1, 0x10
/* 80344224 48 00 00 15 */ bl EXIGetID
/* 80344228 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8034422C 38 21 00 18 */ addi r1, r1, 0x18
/* 80344230 7C 08 03 A6 */ mtlr r0
/* 80344234 4E 80 00 20 */ blr

View File

@ -1,102 +0,0 @@
lbl_803433F8:
/* 803433F8 7C 08 02 A6 */ mflr r0
/* 803433FC 90 01 00 04 */ stw r0, 4(r1)
/* 80343400 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80343404 BF 61 00 14 */ stmw r27, 0x14(r1)
/* 80343408 3B 83 00 00 */ addi r28, r3, 0
/* 8034340C 54 64 30 32 */ slwi r4, r3, 6
/* 80343410 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
/* 80343414 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
/* 80343418 7F E0 22 14 */ add r31, r0, r4
/* 8034341C 2C 1C 00 02 */ cmpwi r28, 2
/* 80343420 40 82 00 0C */ bne lbl_8034342C
/* 80343424 38 60 00 01 */ li r3, 1
/* 80343428 48 00 01 30 */ b lbl_80343558
lbl_8034342C:
/* 8034342C 3B A0 00 01 */ li r29, 1
/* 80343430 4B FF A2 C5 */ bl OSDisableInterrupts
/* 80343434 3B C3 00 00 */ addi r30, r3, 0
/* 80343438 1C 1C 00 14 */ mulli r0, r28, 0x14
/* 8034343C 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006800@ha */
/* 80343440 38 63 68 00 */ addi r3, r3, 0x6800 /* 0xCC006800@l */
/* 80343444 7C 63 02 14 */ add r3, r3, r0
/* 80343448 80 A3 00 00 */ lwz r5, 0(r3)
/* 8034344C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80343450 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 80343454 40 82 00 CC */ bne lbl_80343520
/* 80343458 54 A0 05 29 */ rlwinm. r0, r5, 0, 0x14, 0x14
/* 8034345C 41 82 00 2C */ beq lbl_80343488
/* 80343460 80 03 00 00 */ lwz r0, 0(r3)
/* 80343464 70 00 07 F5 */ andi. r0, r0, 0x7f5
/* 80343468 60 00 08 00 */ ori r0, r0, 0x800
/* 8034346C 90 03 00 00 */ stw r0, 0(r3)
/* 80343470 38 80 00 00 */ li r4, 0
/* 80343474 90 9F 00 20 */ stw r4, 0x20(r31)
/* 80343478 57 80 10 3A */ slwi r0, r28, 2
/* 8034347C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030C0@ha */
/* 80343480 38 63 30 C0 */ addi r3, r3, 0x30C0 /* 0x800030C0@l */
/* 80343484 7C 83 01 2E */ stwx r4, r3, r0
lbl_80343488:
/* 80343488 54 A0 04 E7 */ rlwinm. r0, r5, 0, 0x13, 0x13
/* 8034348C 41 82 00 74 */ beq lbl_80343500
/* 80343490 3F E0 80 00 */ lis r31, 0x8000 /* 0x800000F8@ha */
/* 80343494 80 1F 00 F8 */ lwz r0, 0x00F8(r31) /* 0x800000F8@l */
/* 80343498 54 00 F0 BE */ srwi r0, r0, 2
/* 8034349C 3C 60 10 62 */ lis r3, 0x1062 /* 0x10624DD3@ha */
/* 803434A0 38 63 4D D3 */ addi r3, r3, 0x4DD3 /* 0x10624DD3@l */
/* 803434A4 7C 03 00 16 */ mulhwu r0, r3, r0
/* 803434A8 54 1B D1 BE */ srwi r27, r0, 6
/* 803434AC 4B FF F2 51 */ bl OSGetTime
/* 803434B0 38 A0 00 00 */ li r5, 0
/* 803434B4 38 DB 00 00 */ addi r6, r27, 0
/* 803434B8 48 01 EE 6D */ bl __div2i
/* 803434BC 38 A0 00 00 */ li r5, 0
/* 803434C0 38 C0 00 64 */ li r6, 0x64
/* 803434C4 48 01 EE 61 */ bl __div2i
/* 803434C8 38 84 00 01 */ addi r4, r4, 1
/* 803434CC 57 80 10 3A */ slwi r0, r28, 2
/* 803434D0 38 7F 30 C0 */ addi r3, r31, 0x30c0
/* 803434D4 7C 63 02 14 */ add r3, r3, r0
/* 803434D8 80 03 00 00 */ lwz r0, 0(r3)
/* 803434DC 2C 00 00 00 */ cmpwi r0, 0
/* 803434E0 40 82 00 08 */ bne lbl_803434E8
/* 803434E4 90 83 00 00 */ stw r4, 0(r3)
lbl_803434E8:
/* 803434E8 80 03 00 00 */ lwz r0, 0(r3)
/* 803434EC 7C 00 20 50 */ subf r0, r0, r4
/* 803434F0 2C 00 00 03 */ cmpwi r0, 3
/* 803434F4 40 80 00 58 */ bge lbl_8034354C
/* 803434F8 3B A0 00 00 */ li r29, 0
/* 803434FC 48 00 00 50 */ b lbl_8034354C
lbl_80343500:
/* 80343500 38 80 00 00 */ li r4, 0
/* 80343504 90 9F 00 20 */ stw r4, 0x20(r31)
/* 80343508 57 80 10 3A */ slwi r0, r28, 2
/* 8034350C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030C0@ha */
/* 80343510 38 63 30 C0 */ addi r3, r3, 0x30C0 /* 0x800030C0@l */
/* 80343514 7C 83 01 2E */ stwx r4, r3, r0
/* 80343518 3B A0 00 00 */ li r29, 0
/* 8034351C 48 00 00 30 */ b lbl_8034354C
lbl_80343520:
/* 80343520 54 A0 04 E7 */ rlwinm. r0, r5, 0, 0x13, 0x13
/* 80343524 41 82 00 0C */ beq lbl_80343530
/* 80343528 54 A0 05 29 */ rlwinm. r0, r5, 0, 0x14, 0x14
/* 8034352C 41 82 00 20 */ beq lbl_8034354C
lbl_80343530:
/* 80343530 38 80 00 00 */ li r4, 0
/* 80343534 90 9F 00 20 */ stw r4, 0x20(r31)
/* 80343538 57 80 10 3A */ slwi r0, r28, 2
/* 8034353C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030C0@ha */
/* 80343540 38 63 30 C0 */ addi r3, r3, 0x30C0 /* 0x800030C0@l */
/* 80343544 7C 83 01 2E */ stwx r4, r3, r0
/* 80343548 3B A0 00 00 */ li r29, 0
lbl_8034354C:
/* 8034354C 7F C3 F3 78 */ mr r3, r30
/* 80343550 4B FF A1 CD */ bl OSRestoreInterrupts
/* 80343554 7F A3 EB 78 */ mr r3, r29
lbl_80343558:
/* 80343558 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8034355C BB 61 00 14 */ lmw r27, 0x14(r1)
/* 80343560 38 21 00 28 */ addi r1, r1, 0x28
/* 80343564 7C 08 03 A6 */ mtlr r0
/* 80343568 4E 80 00 20 */ blr

View File

@ -1,32 +0,0 @@
lbl_80344930:
/* 80344930 7C 08 02 A6 */ mflr r0
/* 80344934 90 01 00 04 */ stw r0, 4(r1)
/* 80344938 94 21 FF F8 */ stwu r1, -8(r1)
/* 8034493C 80 6D 91 6C */ lwz r3, BarnacleEnabled(r13)
/* 80344940 3C 03 5A 01 */ addis r0, r3, 0x5a01
/* 80344944 28 00 00 5A */ cmplwi r0, 0x5a
/* 80344948 40 82 00 0C */ bne lbl_80344954
/* 8034494C 38 60 00 00 */ li r3, 0
/* 80344950 48 00 00 40 */ b lbl_80344990
lbl_80344954:
/* 80344954 4B FF 55 A9 */ bl OSGetConsoleType
/* 80344958 54 60 00 C7 */ rlwinm. r0, r3, 0, 3, 3
/* 8034495C 40 82 00 14 */ bne lbl_80344970
/* 80344960 38 00 00 00 */ li r0, 0
/* 80344964 90 0D 91 68 */ stw r0, Enabled(r13)
/* 80344968 38 60 00 02 */ li r3, 2
/* 8034496C 48 00 00 24 */ b lbl_80344990
lbl_80344970:
/* 80344970 3C 60 A5 FF */ lis r3, 0xA5FF /* 0xA5FF005A@ha */
/* 80344974 38 03 00 5A */ addi r0, r3, 0x005A /* 0xA5FF005A@l */
/* 80344978 38 60 00 00 */ li r3, 0
/* 8034497C 90 0D 91 68 */ stw r0, Enabled(r13)
/* 80344980 38 00 00 01 */ li r0, 1
/* 80344984 90 6D 91 60 */ stw r3, Chan(r13)
/* 80344988 38 60 00 00 */ li r3, 0
/* 8034498C 90 0D 91 64 */ stw r0, Dev(r13)
lbl_80344990:
/* 80344990 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80344994 38 21 00 08 */ addi r1, r1, 8
/* 80344998 7C 08 03 A6 */ mtlr r0
/* 8034499C 4E 80 00 20 */ blr

View File

@ -1,107 +0,0 @@
lbl_803445E8:
/* 803445E8 7C 08 02 A6 */ mflr r0
/* 803445EC 90 01 00 04 */ stw r0, 4(r1)
/* 803445F0 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 803445F4 93 E1 00 24 */ stw r31, 0x24(r1)
/* 803445F8 3B E5 00 00 */ addi r31, r5, 0
/* 803445FC 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80344600 3B C4 00 00 */ addi r30, r4, 0
/* 80344604 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80344608 3B A3 00 00 */ addi r29, r3, 0
/* 8034460C 2C 1D 00 02 */ cmpwi r29, 2
/* 80344610 93 81 00 18 */ stw r28, 0x18(r1)
/* 80344614 41 82 00 28 */ beq lbl_8034463C
/* 80344618 28 1E 00 00 */ cmplwi r30, 0
/* 8034461C 40 82 00 20 */ bne lbl_8034463C
/* 80344620 38 7D 00 00 */ addi r3, r29, 0
/* 80344624 38 80 00 00 */ li r4, 0
/* 80344628 4B FF F0 79 */ bl EXIAttach
/* 8034462C 2C 03 00 00 */ cmpwi r3, 0
/* 80344630 40 82 00 0C */ bne lbl_8034463C
/* 80344634 38 60 00 00 */ li r3, 0
/* 80344638 48 00 01 1C */ b lbl_80344754
lbl_8034463C:
/* 8034463C 38 7D 00 00 */ addi r3, r29, 0
/* 80344640 38 9E 00 00 */ addi r4, r30, 0
/* 80344644 38 A0 00 00 */ li r5, 0
/* 80344648 4B FF F9 E1 */ bl EXILock
/* 8034464C 7C 60 00 34 */ cntlzw r0, r3
/* 80344650 54 00 D9 7E */ srwi r0, r0, 5
/* 80344654 7C 1C 03 79 */ or. r28, r0, r0
/* 80344658 40 82 00 B8 */ bne lbl_80344710
/* 8034465C 38 7D 00 00 */ addi r3, r29, 0
/* 80344660 38 9E 00 00 */ addi r4, r30, 0
/* 80344664 38 A0 00 00 */ li r5, 0
/* 80344668 4B FF F2 01 */ bl EXISelect
/* 8034466C 7C 60 00 34 */ cntlzw r0, r3
/* 80344670 54 00 D9 7E */ srwi r0, r0, 5
/* 80344674 7C 1C 03 79 */ or. r28, r0, r0
/* 80344678 40 82 00 90 */ bne lbl_80344708
/* 8034467C 3C 60 20 01 */ lis r3, 0x2001 /* 0x20011300@ha */
/* 80344680 38 03 13 00 */ addi r0, r3, 0x1300 /* 0x20011300@l */
/* 80344684 90 01 00 14 */ stw r0, 0x14(r1)
/* 80344688 38 7D 00 00 */ addi r3, r29, 0
/* 8034468C 38 81 00 14 */ addi r4, r1, 0x14
/* 80344690 38 A0 00 04 */ li r5, 4
/* 80344694 38 C0 00 01 */ li r6, 1
/* 80344698 38 E0 00 00 */ li r7, 0
/* 8034469C 4B FF E6 65 */ bl EXIImm
/* 803446A0 7C 60 00 34 */ cntlzw r0, r3
/* 803446A4 38 7D 00 00 */ addi r3, r29, 0
/* 803446A8 54 1C D9 7E */ srwi r28, r0, 5
/* 803446AC 4B FF EA 3D */ bl EXISync
/* 803446B0 7C 60 00 34 */ cntlzw r0, r3
/* 803446B4 54 00 D9 7E */ srwi r0, r0, 5
/* 803446B8 38 7D 00 00 */ addi r3, r29, 0
/* 803446BC 38 9F 00 00 */ addi r4, r31, 0
/* 803446C0 7F 9C 03 78 */ or r28, r28, r0
/* 803446C4 38 A0 00 04 */ li r5, 4
/* 803446C8 38 C0 00 00 */ li r6, 0
/* 803446CC 38 E0 00 00 */ li r7, 0
/* 803446D0 4B FF E6 31 */ bl EXIImm
/* 803446D4 7C 60 00 34 */ cntlzw r0, r3
/* 803446D8 54 00 D9 7E */ srwi r0, r0, 5
/* 803446DC 38 7D 00 00 */ addi r3, r29, 0
/* 803446E0 7F 9C 03 78 */ or r28, r28, r0
/* 803446E4 4B FF EA 05 */ bl EXISync
/* 803446E8 7C 60 00 34 */ cntlzw r0, r3
/* 803446EC 54 00 D9 7E */ srwi r0, r0, 5
/* 803446F0 38 7D 00 00 */ addi r3, r29, 0
/* 803446F4 7F 9C 03 78 */ or r28, r28, r0
/* 803446F8 4B FF F2 9D */ bl EXIDeselect
/* 803446FC 7C 60 00 34 */ cntlzw r0, r3
/* 80344700 54 00 D9 7E */ srwi r0, r0, 5
/* 80344704 7F 9C 03 78 */ or r28, r28, r0
lbl_80344708:
/* 80344708 7F A3 EB 78 */ mr r3, r29
/* 8034470C 4B FF FA 11 */ bl EXIUnlock
lbl_80344710:
/* 80344710 2C 1D 00 02 */ cmpwi r29, 2
/* 80344714 41 82 00 14 */ beq lbl_80344728
/* 80344718 28 1E 00 00 */ cmplwi r30, 0
/* 8034471C 40 82 00 0C */ bne lbl_80344728
/* 80344720 7F A3 EB 78 */ mr r3, r29
/* 80344724 4B FF F0 89 */ bl EXIDetach
lbl_80344728:
/* 80344728 2C 1C 00 00 */ cmpwi r28, 0
/* 8034472C 41 82 00 0C */ beq lbl_80344738
/* 80344730 38 60 00 00 */ li r3, 0
/* 80344734 48 00 00 20 */ b lbl_80344754
lbl_80344738:
/* 80344738 80 7F 00 00 */ lwz r3, 0(r31)
/* 8034473C 3C 03 00 01 */ addis r0, r3, 1
/* 80344740 28 00 FF FF */ cmplwi r0, 0xffff
/* 80344744 41 82 00 0C */ beq lbl_80344750
/* 80344748 38 60 00 01 */ li r3, 1
/* 8034474C 48 00 00 08 */ b lbl_80344754
lbl_80344750:
/* 80344750 38 60 00 00 */ li r3, 0
lbl_80344754:
/* 80344754 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80344758 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8034475C 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80344760 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80344764 83 81 00 18 */ lwz r28, 0x18(r1)
/* 80344768 38 21 00 28 */ addi r1, r1, 0x28
/* 8034476C 7C 08 03 A6 */ mtlr r0
/* 80344770 4E 80 00 20 */ blr

View File

@ -1,149 +0,0 @@
lbl_803449A0:
/* 803449A0 7C 08 02 A6 */ mflr r0
/* 803449A4 90 01 00 04 */ stw r0, 4(r1)
/* 803449A8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803449AC BF 41 00 18 */ stmw r26, 0x18(r1)
/* 803449B0 3B C3 00 00 */ addi r30, r3, 0
/* 803449B4 3B E4 00 00 */ addi r31, r4, 0
/* 803449B8 80 AD 91 68 */ lwz r5, Enabled(r13)
/* 803449BC 3C 05 5A 01 */ addis r0, r5, 0x5a01
/* 803449C0 28 00 00 5A */ cmplwi r0, 0x5a
/* 803449C4 41 82 00 0C */ beq lbl_803449D0
/* 803449C8 38 60 00 02 */ li r3, 2
/* 803449CC 48 00 01 C0 */ b lbl_80344B8C
lbl_803449D0:
/* 803449D0 80 6D 91 60 */ lwz r3, Chan(r13)
/* 803449D4 38 A0 00 00 */ li r5, 0
/* 803449D8 80 8D 91 64 */ lwz r4, Dev(r13)
/* 803449DC 4B FF F6 4D */ bl EXILock
/* 803449E0 2C 03 00 00 */ cmpwi r3, 0
/* 803449E4 40 82 00 0C */ bne lbl_803449F0
/* 803449E8 38 60 00 00 */ li r3, 0
/* 803449EC 48 00 01 A0 */ b lbl_80344B8C
lbl_803449F0:
/* 803449F0 38 9E 00 00 */ addi r4, r30, 0
/* 803449F4 38 60 00 0D */ li r3, 0xd
/* 803449F8 48 00 00 18 */ b lbl_80344A10
lbl_803449FC:
/* 803449FC 88 04 00 00 */ lbz r0, 0(r4)
/* 80344A00 2C 00 00 0A */ cmpwi r0, 0xa
/* 80344A04 40 82 00 08 */ bne lbl_80344A0C
/* 80344A08 98 64 00 00 */ stb r3, 0(r4)
lbl_80344A0C:
/* 80344A0C 38 84 00 01 */ addi r4, r4, 1
lbl_80344A10:
/* 80344A10 7C 1E 20 50 */ subf r0, r30, r4
/* 80344A14 7C 00 F8 40 */ cmplw r0, r31
/* 80344A18 41 80 FF E4 */ blt lbl_803449FC
/* 80344A1C 3C 00 A0 01 */ lis r0, 0xa001
/* 80344A20 90 01 00 14 */ stw r0, 0x14(r1)
/* 80344A24 3B 40 00 00 */ li r26, 0
/* 80344A28 3F A0 20 01 */ lis r29, 0x2001
/* 80344A2C 48 00 01 4C */ b lbl_80344B78
lbl_80344A30:
/* 80344A30 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344A34 38 A0 00 03 */ li r5, 3
/* 80344A38 80 8D 91 64 */ lwz r4, Dev(r13)
/* 80344A3C 4B FF EE 2D */ bl EXISelect
/* 80344A40 2C 03 00 00 */ cmpwi r3, 0
/* 80344A44 40 82 00 0C */ bne lbl_80344A50
/* 80344A48 38 00 FF FF */ li r0, -1
/* 80344A4C 48 00 00 5C */ b lbl_80344AA8
lbl_80344A50:
/* 80344A50 93 A1 00 10 */ stw r29, 0x10(r1)
/* 80344A54 38 81 00 10 */ addi r4, r1, 0x10
/* 80344A58 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344A5C 38 A0 00 04 */ li r5, 4
/* 80344A60 38 C0 00 01 */ li r6, 1
/* 80344A64 38 E0 00 00 */ li r7, 0
/* 80344A68 4B FF E2 99 */ bl EXIImm
/* 80344A6C 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344A70 4B FF E6 79 */ bl EXISync
/* 80344A74 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344A78 38 81 00 10 */ addi r4, r1, 0x10
/* 80344A7C 38 A0 00 01 */ li r5, 1
/* 80344A80 38 C0 00 00 */ li r6, 0
/* 80344A84 38 E0 00 00 */ li r7, 0
/* 80344A88 4B FF E2 79 */ bl EXIImm
/* 80344A8C 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344A90 4B FF E6 59 */ bl EXISync
/* 80344A94 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344A98 4B FF EE FD */ bl EXIDeselect
/* 80344A9C 80 01 00 10 */ lwz r0, 0x10(r1)
/* 80344AA0 54 00 46 3E */ srwi r0, r0, 0x18
/* 80344AA4 20 00 00 10 */ subfic r0, r0, 0x10
lbl_80344AA8:
/* 80344AA8 2C 00 00 00 */ cmpwi r0, 0
/* 80344AAC 7C 1B 03 78 */ mr r27, r0
/* 80344AB0 40 80 00 0C */ bge lbl_80344ABC
/* 80344AB4 3B 40 00 03 */ li r26, 3
/* 80344AB8 48 00 00 C8 */ b lbl_80344B80
lbl_80344ABC:
/* 80344ABC 2C 00 00 0C */ cmpwi r0, 0xc
/* 80344AC0 40 80 00 0C */ bge lbl_80344ACC
/* 80344AC4 7C 00 F8 40 */ cmplw r0, r31
/* 80344AC8 41 80 00 B0 */ blt lbl_80344B78
lbl_80344ACC:
/* 80344ACC 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344AD0 38 A0 00 03 */ li r5, 3
/* 80344AD4 80 8D 91 64 */ lwz r4, Dev(r13)
/* 80344AD8 4B FF ED 91 */ bl EXISelect
/* 80344ADC 2C 03 00 00 */ cmpwi r3, 0
/* 80344AE0 40 82 00 0C */ bne lbl_80344AEC
/* 80344AE4 3B 40 00 03 */ li r26, 3
/* 80344AE8 48 00 00 98 */ b lbl_80344B80
lbl_80344AEC:
/* 80344AEC 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344AF0 38 81 00 14 */ addi r4, r1, 0x14
/* 80344AF4 38 A0 00 04 */ li r5, 4
/* 80344AF8 38 C0 00 01 */ li r6, 1
/* 80344AFC 38 E0 00 00 */ li r7, 0
/* 80344B00 4B FF E2 01 */ bl EXIImm
/* 80344B04 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344B08 4B FF E5 E1 */ bl EXISync
/* 80344B0C 48 00 00 54 */ b lbl_80344B60
lbl_80344B10:
/* 80344B10 2C 1B 00 04 */ cmpwi r27, 4
/* 80344B14 40 80 00 0C */ bge lbl_80344B20
/* 80344B18 7C 1B F8 40 */ cmplw r27, r31
/* 80344B1C 41 80 00 54 */ blt lbl_80344B70
lbl_80344B20:
/* 80344B20 28 1F 00 04 */ cmplwi r31, 4
/* 80344B24 40 80 00 0C */ bge lbl_80344B30
/* 80344B28 7F FC FB 78 */ mr r28, r31
/* 80344B2C 48 00 00 08 */ b lbl_80344B34
lbl_80344B30:
/* 80344B30 3B 80 00 04 */ li r28, 4
lbl_80344B34:
/* 80344B34 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344B38 7F 85 E3 78 */ mr r5, r28
/* 80344B3C 38 9E 00 00 */ addi r4, r30, 0
/* 80344B40 38 C0 00 01 */ li r6, 1
/* 80344B44 38 E0 00 00 */ li r7, 0
/* 80344B48 4B FF E1 B9 */ bl EXIImm
/* 80344B4C 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344B50 7F DE E2 14 */ add r30, r30, r28
/* 80344B54 7F FC F8 50 */ subf r31, r28, r31
/* 80344B58 7F 7C D8 50 */ subf r27, r28, r27
/* 80344B5C 4B FF E5 8D */ bl EXISync
lbl_80344B60:
/* 80344B60 2C 1B 00 00 */ cmpwi r27, 0
/* 80344B64 41 82 00 0C */ beq lbl_80344B70
/* 80344B68 28 1F 00 00 */ cmplwi r31, 0
/* 80344B6C 40 82 FF A4 */ bne lbl_80344B10
lbl_80344B70:
/* 80344B70 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344B74 4B FF EE 21 */ bl EXIDeselect
lbl_80344B78:
/* 80344B78 28 1F 00 00 */ cmplwi r31, 0
/* 80344B7C 40 82 FE B4 */ bne lbl_80344A30
lbl_80344B80:
/* 80344B80 80 6D 91 60 */ lwz r3, Chan(r13)
/* 80344B84 4B FF F5 99 */ bl EXIUnlock
/* 80344B88 7F 43 D3 78 */ mr r3, r26
lbl_80344B8C:
/* 80344B8C BB 41 00 18 */ lmw r26, 0x18(r1)
/* 80344B90 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80344B94 38 21 00 30 */ addi r1, r1, 0x30
/* 80344B98 7C 08 03 A6 */ mtlr r0
/* 80344B9C 4E 80 00 20 */ blr

View File

@ -1,121 +0,0 @@
lbl_80344774:
/* 80344774 7C 08 02 A6 */ mflr r0
/* 80344778 90 01 00 04 */ stw r0, 4(r1)
/* 8034477C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80344780 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80344784 3B E4 00 00 */ addi r31, r4, 0
/* 80344788 38 A1 00 10 */ addi r5, r1, 0x10
/* 8034478C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80344790 3B C3 00 00 */ addi r30, r3, 0
/* 80344794 4B FF FA A5 */ bl EXIGetID
/* 80344798 2C 03 00 00 */ cmpwi r3, 0
/* 8034479C 41 82 01 7C */ beq lbl_80344918
/* 803447A0 80 81 00 10 */ lwz r4, 0x10(r1)
/* 803447A4 3C 00 01 02 */ lis r0, 0x102
/* 803447A8 7C 04 00 00 */ cmpw r4, r0
/* 803447AC 41 82 01 6C */ beq lbl_80344918
/* 803447B0 40 80 00 94 */ bge lbl_80344844
/* 803447B4 2C 04 00 04 */ cmpwi r4, 4
/* 803447B8 41 82 01 60 */ beq lbl_80344918
/* 803447BC 40 80 00 54 */ bge lbl_80344810
/* 803447C0 3C 60 80 00 */ lis r3, 0x8000 /* 0x80000010@ha */
/* 803447C4 38 03 00 10 */ addi r0, r3, 0x0010 /* 0x80000010@l */
/* 803447C8 7C 04 00 00 */ cmpw r4, r0
/* 803447CC 41 82 01 4C */ beq lbl_80344918
/* 803447D0 40 80 00 24 */ bge lbl_803447F4
/* 803447D4 38 03 00 08 */ addi r0, r3, 8
/* 803447D8 7C 04 00 00 */ cmpw r4, r0
/* 803447DC 41 82 01 3C */ beq lbl_80344918
/* 803447E0 40 80 01 08 */ bge lbl_803448E8
/* 803447E4 38 03 00 04 */ addi r0, r3, 4
/* 803447E8 7C 04 00 00 */ cmpw r4, r0
/* 803447EC 41 82 01 2C */ beq lbl_80344918
/* 803447F0 48 00 00 F8 */ b lbl_803448E8
lbl_803447F4:
/* 803447F4 2C 04 FF FF */ cmpwi r4, -1
/* 803447F8 41 82 01 20 */ beq lbl_80344918
/* 803447FC 40 80 00 EC */ bge lbl_803448E8
/* 80344800 38 03 00 20 */ addi r0, r3, 0x20
/* 80344804 7C 04 00 00 */ cmpw r4, r0
/* 80344808 41 82 01 10 */ beq lbl_80344918
/* 8034480C 48 00 00 DC */ b lbl_803448E8
lbl_80344810:
/* 80344810 2C 04 00 20 */ cmpwi r4, 0x20
/* 80344814 41 82 01 04 */ beq lbl_80344918
/* 80344818 40 80 00 1C */ bge lbl_80344834
/* 8034481C 2C 04 00 10 */ cmpwi r4, 0x10
/* 80344820 41 82 00 F8 */ beq lbl_80344918
/* 80344824 40 80 00 C4 */ bge lbl_803448E8
/* 80344828 2C 04 00 08 */ cmpwi r4, 8
/* 8034482C 41 82 00 EC */ beq lbl_80344918
/* 80344830 48 00 00 B8 */ b lbl_803448E8
lbl_80344834:
/* 80344834 3C 00 01 01 */ lis r0, 0x101
/* 80344838 7C 04 00 00 */ cmpw r4, r0
/* 8034483C 41 82 00 DC */ beq lbl_80344918
/* 80344840 48 00 00 A8 */ b lbl_803448E8
lbl_80344844:
/* 80344844 3C 60 04 04 */ lis r3, 0x0404 /* 0x04040404@ha */
/* 80344848 38 03 04 04 */ addi r0, r3, 0x0404 /* 0x04040404@l */
/* 8034484C 7C 04 00 00 */ cmpw r4, r0
/* 80344850 41 82 00 C8 */ beq lbl_80344918
/* 80344854 40 80 00 58 */ bge lbl_803448AC
/* 80344858 3C 60 04 02 */ lis r3, 0x0402 /* 0x04020100@ha */
/* 8034485C 38 03 01 00 */ addi r0, r3, 0x0100 /* 0x04020100@l */
/* 80344860 7C 04 00 00 */ cmpw r4, r0
/* 80344864 41 82 00 B4 */ beq lbl_80344918
/* 80344868 40 80 00 24 */ bge lbl_8034488C
/* 8034486C 3C 00 03 01 */ lis r0, 0x301
/* 80344870 7C 04 00 00 */ cmpw r4, r0
/* 80344874 41 82 00 A4 */ beq lbl_80344918
/* 80344878 40 80 00 70 */ bge lbl_803448E8
/* 8034487C 3C 00 02 02 */ lis r0, 0x202
/* 80344880 7C 04 00 00 */ cmpw r4, r0
/* 80344884 41 82 00 94 */ beq lbl_80344918
/* 80344888 48 00 00 60 */ b lbl_803448E8
lbl_8034488C:
/* 8034488C 38 03 03 00 */ addi r0, r3, 0x300
/* 80344890 7C 04 00 00 */ cmpw r4, r0
/* 80344894 41 82 00 84 */ beq lbl_80344918
/* 80344898 40 80 00 50 */ bge lbl_803448E8
/* 8034489C 38 03 02 00 */ addi r0, r3, 0x200
/* 803448A0 7C 04 00 00 */ cmpw r4, r0
/* 803448A4 41 82 00 74 */ beq lbl_80344918
/* 803448A8 48 00 00 40 */ b lbl_803448E8
lbl_803448AC:
/* 803448AC 3C 00 04 13 */ lis r0, 0x413
/* 803448B0 7C 04 00 00 */ cmpw r4, r0
/* 803448B4 41 82 00 64 */ beq lbl_80344918
/* 803448B8 40 80 00 24 */ bge lbl_803448DC
/* 803448BC 3C 00 04 12 */ lis r0, 0x412
/* 803448C0 7C 04 00 00 */ cmpw r4, r0
/* 803448C4 41 82 00 54 */ beq lbl_80344918
/* 803448C8 40 80 00 20 */ bge lbl_803448E8
/* 803448CC 3C 00 04 06 */ lis r0, 0x406
/* 803448D0 7C 04 00 00 */ cmpw r4, r0
/* 803448D4 41 82 00 44 */ beq lbl_80344918
/* 803448D8 48 00 00 10 */ b lbl_803448E8
lbl_803448DC:
/* 803448DC 3C 00 04 22 */ lis r0, 0x422
/* 803448E0 7C 04 00 00 */ cmpw r4, r0
/* 803448E4 41 82 00 34 */ beq lbl_80344918
lbl_803448E8:
/* 803448E8 38 7E 00 00 */ addi r3, r30, 0
/* 803448EC 38 9F 00 00 */ addi r4, r31, 0
/* 803448F0 38 A1 00 10 */ addi r5, r1, 0x10
/* 803448F4 4B FF FC F5 */ bl ProbeBarnacle
/* 803448F8 2C 03 00 00 */ cmpwi r3, 0
/* 803448FC 41 82 00 1C */ beq lbl_80344918
/* 80344900 3C 60 A5 FF */ lis r3, 0xA5FF /* 0xA5FF005A@ha */
/* 80344904 93 CD 91 60 */ stw r30, Chan(r13)
/* 80344908 38 03 00 5A */ addi r0, r3, 0x005A /* 0xA5FF005A@l */
/* 8034490C 93 ED 91 64 */ stw r31, Dev(r13)
/* 80344910 90 0D 91 6C */ stw r0, BarnacleEnabled(r13)
/* 80344914 90 0D 91 68 */ stw r0, Enabled(r13)
lbl_80344918:
/* 80344918 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8034491C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80344920 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80344924 38 21 00 20 */ addi r1, r1, 0x20
/* 80344928 7C 08 03 A6 */ mtlr r0
/* 8034492C 4E 80 00 20 */ blr

View File

@ -22,6 +22,14 @@ typedef enum DVDState {
DVD_STATE_FATAL_ERROR = -1,
} DVDState;
typedef enum DVDResult {
DVD_RESULT_GOOD = 0,
DVD_RESULT_FATAL_ERROR = -1,
DVD_RESULT_IGNORED = -2,
DVD_RESULT_CANCELED = -3,
} DVDResult;
typedef struct DVDDirectory {
/* 0x0 */ u32 entry_number;
/* 0x4 */ u32 location;

View File

@ -9,6 +9,49 @@ extern "C" {
vu32 __EXIRegs[16] : 0xCC006800;
#define EXI_MEMORY_CARD_59 0x00000004
#define EXI_MEMORY_CARD_123 0x00000008
#define EXI_MEMORY_CARD_251 0x00000010
#define EXI_MEMORY_CARD_507 0x00000020
#define EXI_MEMORY_CARD_1019 0x00000040
#define EXI_MEMORY_CARD_2043 0x00000080
#define EXI_MEMORY_CARD_1019A 0x00000140
#define EXI_MEMORY_CARD_1019B 0x00000240
#define EXI_MEMORY_CARD_1019C 0x00000340
#define EXI_MEMORY_CARD_1019D 0x00000440
#define EXI_MEMORY_CARD_1019E 0x00000540
#define EXI_MEMORY_CARD_1019F 0x00000640
#define EXI_MEMORY_CARD_1019G 0x00000740
#define EXI_MEMORY_CARD_2043A 0x00000180
#define EXI_MEMORY_CARD_2043B 0x00000280
#define EXI_MEMORY_CARD_2043C 0x00000380
#define EXI_MEMORY_CARD_2043D 0x00000480
#define EXI_MEMORY_CARD_2043E 0x00000580
#define EXI_MEMORY_CARD_2043F 0x00000680
#define EXI_MEMORY_CARD_2043G 0x00000780
#define EXI_USB_ADAPTER 0x01010000
#define EXI_NPDP_GDEV 0x01020000
#define EXI_MODEM 0x02020000
#define EXI_ETHER 0x04020200
#define EXI_ETHER_VIEWER 0x04220001
#define EXI_STREAM_HANGER 0x04130000
#define EXI_MARLIN 0x03010000
#define EXI_IS_VIEWER 0x05070000
#define EXI_FREQ_1M 0
#define EXI_FREQ_2M 1
#define EXI_FREQ_4M 2
#define EXI_FREQ_8M 3
#define EXI_FREQ_16M 4
#define EXI_FREQ_32M 5
#define EXI_READ 0
#define EXI_WRITE 1

View File

@ -24,7 +24,7 @@ static void LCStoreBlocks(void* destAddr, void* srcAddr, u32 blockNum);
u32 LCStoreData(void* destAddr, void* srcAddr, u32 nBytes);
void LCQueueWait(u32 len);
static void L2GlobalInvalidate(void);
static void DMAErrorHandler(s32 error, struct OSContext* context);
static void DMAErrorHandler(u16 error, struct OSContext* context, ...);
void __OSCacheInit(void);
#ifdef __cplusplus

View File

@ -4,10 +4,10 @@
//
#include "dolphin/dvd/dvd.h"
#include "dolphin/dvd/dvdlow.h"
#include "MSL_C/MSL_Common/Src/mem.h"
#include "MSL_C/MSL_Common/Src/string.h"
#include "dol2asm.h"
#include "dolphin/dvd/dvdlow.h"
#include "dolphin/os/OS.h"
//
@ -195,7 +195,7 @@ void stateReadingFST() {
LastState = (stateFunc)stateReadingFST;
if (bootInfo->fst_max_length < BB2.FSTLength) {
OSPanic("dvd.c", 661, "DVDChangeDisk(): FST in the new disc is too big. ");
OSPanic(__FILE__, 661, "DVDChangeDisk(): FST in the new disc is too big. ");
}
DVDLowRead(bootInfo->fst_location, OSRoundUp32B(BB2.FSTLength), BB2.FSTPosition,
@ -236,8 +236,8 @@ static void cbForStateReadingFST(u32 intType) {
}
inline static void stateError(u32 error) {
__DVDStoreErrorCode(error);
DVDLowStopMotor(cbForStateError);
__DVDStoreErrorCode(error);
DVDLowStopMotor(cbForStateError);
}
/* 803492DC-80349388 343C1C 00AC+00 12/12 0/0 0/0 .text cbForStateError */
@ -574,11 +574,11 @@ static void cbForStateCheckID2(u32 intType) {
LastState = (stateFunc)stateReadingFST;
if (bootInfo->fst_max_length < BB2.FSTLength) {
OSPanic("dvd.c", 661, "DVDChangeDisk(): FST in the new disc is too big. ");
OSPanic(__FILE__, 661, "DVDChangeDisk(): FST in the new disc is too big. ");
}
DVDLowRead(bootInfo->fst_location, OSRoundUp32B(BB2.FSTLength), BB2.FSTPosition,
cbForStateReadingFST);
cbForStateReadingFST);
} else {
stateGettingError();
@ -844,199 +844,199 @@ static u32 ImmCommand[] = {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF};
SECTION_SDATA static u32 DmaCommand[] = {0xFFFFFFFF};
inline static BOOL IsImmCommandWithResult(u32 command) {
u32 i;
u32 i;
if (command == 9 || command == 10 || command == 11 || command == 12) {
return TRUE;
}
if (command == 9 || command == 10 || command == 11 || command == 12) {
return TRUE;
}
for (i = 0; i < sizeof(ImmCommand) / sizeof(ImmCommand[0]); i++) {
if (command == ImmCommand[i])
return TRUE;
}
for (i = 0; i < sizeof(ImmCommand) / sizeof(ImmCommand[0]); i++) {
if (command == ImmCommand[i])
return TRUE;
}
return FALSE;
return FALSE;
}
inline static BOOL IsDmaCommand(u32 command) {
u32 i;
u32 i;
if (command == 1 || command == 4 || command == 5 || command == 14)
return TRUE;
if (command == 1 || command == 4 || command == 5 || command == 14)
return TRUE;
for (i = 0; i < sizeof(DmaCommand) / sizeof(DmaCommand[0]); i++) {
if (command == DmaCommand[i])
return TRUE;
}
for (i = 0; i < sizeof(DmaCommand) / sizeof(DmaCommand[0]); i++) {
if (command == DmaCommand[i])
return TRUE;
}
return FALSE;
return FALSE;
}
/* 8034A6D4-8034AD2C 345014 0658+00 1/1 0/0 0/0 .text cbForStateBusy */
static void cbForStateBusy(u32 intType) {
DVDCommandBlock* finished;
DVDCommandBlock* finished;
if (intType == 16) {
stateTimeout();
return;
}
if ((CurrCommand == 3) || (CurrCommand == 15)) {
if (intType & 2) {
stateError(0x1234567);
return;
}
NumInternalRetry = 0;
if (CurrCommand == 15) {
ResetRequired = TRUE;
}
if (CheckCancel(7)) {
return;
}
executing->state = 7;
stateMotorStopped();
return;
}
if (IsDmaCommand(CurrCommand)) {
executing->transferred_size += executing->current_transfer_size - __DIRegs[6];
}
if (intType & 8) {
Canceling = FALSE;
finished = executing;
executing = &DummyCommandBlock;
finished->state = 10;
if (finished->callback)
(*finished->callback)(-3, finished);
if (CancelCallback)
(CancelCallback)(0, finished);
stateReady();
return;
}
if (intType & 1) {
NumInternalRetry = 0;
if (CurrCommand == 16) {
MotorState = 1;
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(*finished->callback)(0, finished);
}
stateReady();
if (intType == 16) {
stateTimeout();
return;
}
if (CheckCancel(0))
return;
if ((CurrCommand == 3) || (CurrCommand == 15)) {
if (intType & 2) {
stateError(0x1234567);
return;
}
NumInternalRetry = 0;
if (CurrCommand == 15) {
ResetRequired = TRUE;
}
if (CheckCancel(7)) {
return;
}
executing->state = 7;
stateMotorStopped();
return;
}
if (IsDmaCommand(CurrCommand)) {
if (executing->transferred_size != executing->length) {
stateBusy(executing);
return;
}
executing->transferred_size += executing->current_transfer_size - __DIRegs[6];
}
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)((s32)finished->transferred_size, finished);
}
stateReady();
} else if (IsImmCommandWithResult(CurrCommand)) {
s32 result;
if ((CurrCommand == 11) || (CurrCommand == 10)) {
result = (s32)(__DIRegs[8] << 2);
} else {
result = (s32)__DIRegs[8];
}
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)(result, finished);
}
stateReady();
} else if (CurrCommand == 6) {
if (executing->current_transfer_size == 0) {
if (__DIRegs[8] & 1) {
finished = executing;
executing = &DummyCommandBlock;
finished->state = 9;
if (finished->callback) {
(finished->callback)(-2, finished);
}
stateReady();
} else {
AutoFinishing = FALSE;
executing->current_transfer_size = 1;
DVDLowAudioStream(0, executing->length, executing->offset, cbForStateBusy);
}
} else {
if (intType & 8) {
Canceling = FALSE;
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)(0, finished);
}
finished->state = 10;
if (finished->callback)
(*finished->callback)(-3, finished);
if (CancelCallback)
(CancelCallback)(0, finished);
stateReady();
}
} else {
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)(0, finished);
}
stateReady();
}
} else {
if (CurrCommand == 14) {
stateError(0x01234567);
return;
}
if ((CurrCommand == 1 || CurrCommand == 4 || CurrCommand == 5 || CurrCommand == 14) &&
(executing->transferred_size == executing->length)) {
if (CheckCancel(0)) {
return;
}
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)((s32)finished->transferred_size, finished);
}
stateReady();
return;
}
stateGettingError();
}
if (intType & 1) {
NumInternalRetry = 0;
if (CurrCommand == 16) {
MotorState = 1;
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(*finished->callback)(0, finished);
}
stateReady();
return;
}
if (CheckCancel(0))
return;
if (IsDmaCommand(CurrCommand)) {
if (executing->transferred_size != executing->length) {
stateBusy(executing);
return;
}
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)((s32)finished->transferred_size, finished);
}
stateReady();
} else if (IsImmCommandWithResult(CurrCommand)) {
s32 result;
if ((CurrCommand == 11) || (CurrCommand == 10)) {
result = (s32)(__DIRegs[8] << 2);
} else {
result = (s32)__DIRegs[8];
}
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)(result, finished);
}
stateReady();
} else if (CurrCommand == 6) {
if (executing->current_transfer_size == 0) {
if (__DIRegs[8] & 1) {
finished = executing;
executing = &DummyCommandBlock;
finished->state = 9;
if (finished->callback) {
(finished->callback)(-2, finished);
}
stateReady();
} else {
AutoFinishing = FALSE;
executing->current_transfer_size = 1;
DVDLowAudioStream(0, executing->length, executing->offset, cbForStateBusy);
}
} else {
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)(0, finished);
}
stateReady();
}
} else {
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)(0, finished);
}
stateReady();
}
} else {
if (CurrCommand == 14) {
stateError(0x01234567);
return;
}
if ((CurrCommand == 1 || CurrCommand == 4 || CurrCommand == 5 || CurrCommand == 14) &&
(executing->transferred_size == executing->length)) {
if (CheckCancel(0)) {
return;
}
finished = executing;
executing = &DummyCommandBlock;
finished->state = 0;
if (finished->callback) {
(finished->callback)((s32)finished->transferred_size, finished);
}
stateReady();
return;
}
stateGettingError();
}
}
static inline BOOL issueCommand(s32 prio, DVDCommandBlock* block) {
BOOL level;
BOOL result;
if (autoInvalidation && (block->command == 1 || block->command == 4 || block->command == 5 ||
block->command == 14)) {
if (autoInvalidation &&
(block->command == 1 || block->command == 4 || block->command == 5 || block->command == 14)) {
DCInvalidateRange(block->buffer, block->length);
}
@ -1199,7 +1199,8 @@ void DVDResume(void) {
/* ############################################################################################## */
/* 803D15F8-803D163C 02E718 0041+03 0/0 0/0 0/0 .data @789 */
static char string_DVDChangeDiskAsyncMsg[] = "DVDChangeDiskAsync(): You can't specify NULL to company name. \n";
static char string_DVDChangeDiskAsyncMsg[] =
"DVDChangeDiskAsync(): You can't specify NULL to company name. \n";
/* 8034B2D4-8034B550 345C14 027C+00 3/2 0/0 0/0 .text DVDCancelAsync */
BOOL DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback) {
@ -1408,38 +1409,38 @@ BOOL DVDCheckDisk(void) {
}
inline void DVDPause(void) {
BOOL level;
level = OSDisableInterrupts();
PauseFlag = TRUE;
if (executing == (DVDCommandBlock*)NULL) {
PausingFlag = TRUE;
}
OSRestoreInterrupts(level);
BOOL level;
level = OSDisableInterrupts();
PauseFlag = TRUE;
if (executing == (DVDCommandBlock*)NULL) {
PausingFlag = TRUE;
}
OSRestoreInterrupts(level);
}
inline BOOL DVDCancelAllAsync(DVDCBCallback callback) {
BOOL enabled;
DVDCommandBlock* p;
BOOL retVal;
BOOL enabled;
DVDCommandBlock* p;
BOOL retVal;
enabled = OSDisableInterrupts();
DVDPause();
enabled = OSDisableInterrupts();
DVDPause();
while ((p = __DVDPopWaitingQueue()) != 0) {
DVDCancelAsync(p, NULL);
}
while ((p = __DVDPopWaitingQueue()) != 0) {
DVDCancelAsync(p, NULL);
}
if (executing)
retVal = DVDCancelAsync(executing, callback);
else {
retVal = TRUE;
if (callback)
(*callback)(0, NULL);
}
if (executing)
retVal = DVDCancelAsync(executing, callback);
else {
retVal = TRUE;
if (callback)
(*callback)(0, NULL);
}
DVDResume();
OSRestoreInterrupts(enabled);
return retVal;
DVDResume();
OSRestoreInterrupts(enabled);
return retVal;
}
/* 8034B720-8034B83C 346060 011C+00 0/0 1/1 0/0 .text __DVDPrepareResetAsync */

View File

@ -23,14 +23,12 @@ void __DVDPrintFatalMessage();
/* ############################################################################################## */
/* 804517C8-804517D0 000CC8 0004+04 1/1 0/0 0/0 .sbss FatalFunc */
static u8 FatalFunc[4 + 4 /* padding */];
static void (*FatalFunc)(void) = NULL;
/* 8034BCFC-8034BD2C 34663C 0030+00 0/0 1/1 0/0 .text __DVDPrintFatalMessage */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __DVDPrintFatalMessage() {
nofralloc
#include "asm/dolphin/dvd/dvdFatal/__DVDPrintFatalMessage.s"
void __DVDPrintFatalMessage(void) {
if (!FatalFunc) {
return;
}
FatalFunc();
}
#pragma pop

View File

@ -5,52 +5,78 @@
#include "dolphin/dvd/dvderror.h"
#include "dol2asm.h"
#include "dolphin/os/OSRtc.h"
#include "dolphin/types.h"
//
// Forward References:
//
static void ErrorCode2Num();
static u8 ErrorCode2Num(u32 errorCode);
void __DVDStoreErrorCode();
//
// External References:
//
void __OSLockSramEx();
void __OSUnlockSramEx();
//
// Declarations:
//
/* ############################################################################################## */
/* 803D16A8-803D16F0 02E7C8 0048+00 1/1 0/0 0/0 .data ErrorTable */
SECTION_DATA static u8 ErrorTable[72] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x3A, 0x00, 0x00, 0x06, 0x28, 0x00, 0x00, 0x03, 0x02,
0x00, 0x00, 0x03, 0x11, 0x00, 0x00, 0x05, 0x20, 0x00, 0x00, 0x05, 0x20, 0x01, 0x00, 0x05,
0x21, 0x00, 0x00, 0x05, 0x24, 0x00, 0x00, 0x05, 0x24, 0x01, 0x00, 0x05, 0x24, 0x02, 0x00,
0x0B, 0x5A, 0x01, 0x00, 0x05, 0x63, 0x00, 0x00, 0x02, 0x04, 0x01, 0x00, 0x02, 0x04, 0x00,
0x00, 0x04, 0x08, 0x00, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00,
static u32 ErrorTable[] = {
0, 0x00023A00, 0x00062800, 0x00030200, 0x00031100, 0x00052000,
0x00052001, 0x00052100, 0x00052400, 0x00052401, 0x00052402, 0x000B5A01,
0x00056300, 0x00020401, 0x00020400, 0x00040800, 0x00100007, 0,
};
/* 8034BA6C-8034BB88 3463AC 011C+00 1/1 0/0 0/0 .text ErrorCode2Num */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void ErrorCode2Num() {
nofralloc
#include "asm/dolphin/dvd/dvderror/ErrorCode2Num.s"
static u8 ErrorCode2Num(u32 errorCode) {
u32 i;
for (i = 0; i < sizeof(ErrorTable) / sizeof(ErrorTable[0]); i++) {
if (ErrorTable[i] == errorCode) {
return (u8)i;
}
}
if ((errorCode >= 0x00100000) && (errorCode <= 0x00100008)) {
return 17;
}
return 29;
}
#pragma pop
/* 8034BB88-8034BC04 3464C8 007C+00 0/0 12/12 0/0 .text __DVDStoreErrorCode */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __DVDStoreErrorCode() {
nofralloc
#include "asm/dolphin/dvd/dvderror/__DVDStoreErrorCode.s"
static u8 Convert(u32 error) {
u32 statusCode;
u32 errorCode;
u8 errorNum;
if (error == 0x01234567)
return 255;
if (error == 0x01234568)
return 254;
statusCode = (error & 0xff000000) >> 24;
errorCode = error & 0x00ffffff;
errorNum = ErrorCode2Num(errorCode);
if (statusCode >= 6)
statusCode = 6;
return (u8)(statusCode * 30 + errorNum);
}
void __DVDStoreErrorCode(u32 error) {
OSSramEx* sram;
u8 num;
num = Convert(error);
sram = __OSLockSramEx();
sram->dvdErrorCode = num;
__OSUnlockSramEx(TRUE);
}
#pragma pop

View File

@ -4,70 +4,74 @@
//
#include "dolphin/dvd/dvdfs.h"
#include "dolphin/dvd/dvd.h"
#include "dolphin/os/OS.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "MSL_C/MSL_Common/Src/ctype.h"
//
// Forward References:
//
void __DVDFSInit();
void DVDConvertPathToEntrynum();
void DVDFastOpen();
void DVDOpen();
void DVDClose();
static void entryToPath();
static void DVDConvertEntrynumToPath();
static void DVDGetCurrentDir();
void DVDChangeDir();
void DVDReadAsyncPrio();
int DVDConvertPathToEntrynum(const char* path);
int DVDFastOpen(long entryNum, DVDFileInfo* info);
BOOL DVDOpen(const char* filename, DVDFileInfo* fileinfo);
BOOL DVDClose(DVDFileInfo* fileinfo);
static u32 entryToPath(u32 entry, char* path, u32 maxlen);
static BOOL DVDConvertEntrynumToPath(s32 entrynum, char* path, u32 maxlen);
static BOOL DVDGetCurrentDir(char* path, u32 maxlen);
BOOL DVDChangeDir(const char* dirname);
BOOL DVDReadAsyncPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset,
DVDCallback callback, s32 prio);
static void cbForReadAsync();
void DVDReadPrio();
int DVDReadPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, s32 prio);
static void cbForReadSync();
void DVDOpenDir();
void DVDReadDir();
u8 DVDCloseDir();
BOOL DVDOpenDir(const char*, DVDDirectory* dir);
BOOL DVDReadDir(DVDDirectory* dir, DVDDirectoryEntry* entry);
BOOL DVDCloseDir();
//
// External References:
//
void OSReport();
void OSPanic();
void OSDisableInterrupts();
void OSRestoreInterrupts();
void OSSleepThread();
void OSWakeupThread();
void DVDReadAbsAsyncPrio();
void DVDCancel();
void tolower();
//
// Declarations:
//
typedef struct FSTEntry FSTEntry;
struct FSTEntry {
unsigned int isDirAndStringOff;
unsigned int parentOrPosition;
unsigned int nextEntryOrLength;
};
/* ############################################################################################## */
/* 80451758-8045175C 000C58 0004+00 1/1 0/0 0/0 .sbss BootInfo */
static u8 BootInfo[4];
static OSBootInfo* BootInfo;
/* 8045175C-80451760 000C5C 0004+00 10/10 0/0 0/0 .sbss FstStart */
static u8 FstStart[4];
static FSTEntry* FstStart;
/* 80451760-80451764 000C60 0004+00 5/5 0/0 0/0 .sbss FstStringStart */
static u8 FstStringStart[4];
static char* FstStringStart;
/* 80451764-80451768 000C64 0004+00 2/2 0/0 0/0 .sbss MaxEntryNum */
static u8 MaxEntryNum[4];
static unsigned int MaxEntryNum;
/* 803484F0-80348528 342E30 0038+00 0/0 2/2 0/0 .text __DVDFSInit */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __DVDFSInit() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/__DVDFSInit.s"
void __DVDFSInit() {
BootInfo = (OSBootInfo*)OSPhysicalToCached(0);
FstStart = (FSTEntry*)BootInfo->fst_location;
if (FstStart) {
MaxEntryNum = FstStart[0].nextEntryOrLength;
FstStringStart = (char*)&(FstStart[MaxEntryNum]);
}
}
#pragma pop
/* ############################################################################################## */
/* 803D1380-803D1448 02E4A0 00C8+00 1/1 0/0 0/0 .data @119 */
@ -80,173 +84,408 @@ SECTION_DATA static char lit_119[] =
SECTION_SDATA static char lit_118[] = "dvdfs.c";
/* 80451768-8045176C 000C68 0004+00 4/4 0/0 0/0 .sbss currentDirectory */
static u8 currentDirectory[4];
static u32 currentDirectory;
/* 80451770-80451778 000C70 0008+00 2/2 3/3 0/0 .sbss __DVDThreadQueue */
extern u8 __DVDThreadQueue[8];
u8 __DVDThreadQueue[8];
OSThreadQueue __DVDThreadQueue;
/* 8045176C-80451770 000C6C 0004+00 1/1 1/1 0/0 .sbss __DVDLongFileNameFlag */
extern u8 __DVDLongFileNameFlag[4];
u8 __DVDLongFileNameFlag[4];
u32 __DVDLongFileNameFlag;
/* For convenience */
#define entryIsDir(i) (((FstStart[i].isDirAndStringOff & 0xff000000) == 0) ? FALSE : TRUE)
#define stringOff(i) (FstStart[i].isDirAndStringOff & ~0xff000000)
#define parentDir(i) (FstStart[i].parentOrPosition)
#define nextDir(i) (FstStart[i].nextEntryOrLength)
#define filePosition(i) (FstStart[i].parentOrPosition)
#define fileLength(i) (FstStart[i].nextEntryOrLength)
static inline BOOL isSame(const char* path, const char* string) {
while (*string != '\0') {
if (tolower(*path++) != tolower(*string++)) {
return FALSE;
}
}
if ((*path == '/') || (*path == '\0')) {
return TRUE;
}
return FALSE;
}
/* 80348528-8034881C 342E68 02F4+00 3/3 6/6 0/0 .text DVDConvertPathToEntrynum */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void DVDConvertPathToEntrynum() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/DVDConvertPathToEntrynum.s"
int DVDConvertPathToEntrynum(const char* pathPtr) {
const char* ptr;
char* stringPtr;
BOOL isDir;
u32 length;
u32 dirLookAt;
u32 i;
const char* origPathPtr = pathPtr;
const char* extentionStart;
BOOL illegal;
BOOL extention;
dirLookAt = currentDirectory;
while (1) {
if (*pathPtr == '\0') {
return (s32)dirLookAt;
} else if (*pathPtr == '/') {
dirLookAt = 0;
pathPtr++;
continue;
} else if (*pathPtr == '.') {
if (*(pathPtr + 1) == '.') {
if (*(pathPtr + 2) == '/') {
dirLookAt = parentDir(dirLookAt);
pathPtr += 3;
continue;
} else if (*(pathPtr + 2) == '\0') {
return (s32)parentDir(dirLookAt);
}
} else if (*(pathPtr + 1) == '/') {
pathPtr += 2;
continue;
} else if (*(pathPtr + 1) == '\0') {
return (s32)dirLookAt;
}
}
if (__DVDLongFileNameFlag == 0) {
extention = FALSE;
illegal = FALSE;
for (ptr = pathPtr; (*ptr != '\0') && (*ptr != '/'); ptr++) {
if (*ptr == '.') {
if ((ptr - pathPtr > 8) || (extention == TRUE)) {
illegal = TRUE;
break;
}
extention = TRUE;
extentionStart = ptr + 1;
} else if (*ptr == ' ')
illegal = TRUE;
}
if ((extention == TRUE) && (ptr - extentionStart > 3))
illegal = TRUE;
if (illegal)
OSPanic(lit_118, 387, lit_119, origPathPtr);
} else {
for (ptr = pathPtr; (*ptr != '\0') && (*ptr != '/'); ptr++)
;
}
isDir = (*ptr == '\0') ? FALSE : TRUE;
length = (u32)(ptr - pathPtr);
ptr = pathPtr;
for (i = dirLookAt + 1; i < nextDir(dirLookAt); i = entryIsDir(i) ? nextDir(i) : (i + 1)) {
if ((entryIsDir(i) == FALSE) && (isDir == TRUE)) {
continue;
}
stringPtr = FstStringStart + stringOff(i);
if (isSame(ptr, stringPtr) == TRUE) {
goto next_hier;
}
}
return -1;
next_hier:
if (!isDir) {
return (s32)i;
}
dirLookAt = i;
pathPtr += length + 1;
}
}
#pragma pop
/* 8034881C-80348890 34315C 0074+00 0/0 3/3 0/0 .text DVDFastOpen */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void DVDFastOpen() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/DVDFastOpen.s"
int DVDFastOpen(s32 entrynum, DVDFileInfo* fileInfo) {
if ((entrynum < 0) || (entrynum >= MaxEntryNum) || entryIsDir(entrynum)) {
return FALSE;
}
fileInfo->start_address = filePosition(entrynum);
fileInfo->length = fileLength(entrynum);
fileInfo->callback = (DVDCallback)NULL;
fileInfo->block.state = DVD_STATE_END;
return TRUE;
}
#pragma pop
/* ############################################################################################## */
/* 803D1448-803D1480 02E568 0037+01 1/1 0/0 0/0 .data @140 */
SECTION_DATA static char lit_140[] = "Warning: DVDOpen(): file '%s' was not found under %s.\n";
/* 80348890-80348958 3431D0 00C8+00 0/0 3/3 1/1 .text DVDOpen */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void DVDOpen() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/DVDOpen.s"
BOOL DVDOpen(const char* fileName, DVDFileInfo* fileInfo) {
s32 entry;
char currentDir[128];
entry = DVDConvertPathToEntrynum(fileName);
if (0 > entry) {
DVDGetCurrentDir(currentDir, 128);
OSReport("Warning: DVDOpen(): file '%s' was not found under %s.\n", fileName, currentDir);
return FALSE;
}
if (entryIsDir(entry)) {
return FALSE;
}
fileInfo->start_address = filePosition(entry);
fileInfo->length = fileLength(entry);
fileInfo->callback = (DVDCallback)NULL;
fileInfo->block.state = DVD_STATE_END;
return TRUE;
}
#pragma pop
/* 80348958-8034897C 343298 0024+00 0/0 4/4 2/2 .text DVDClose */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void DVDClose() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/DVDClose.s"
BOOL DVDClose(DVDFileInfo* fileInfo) {
DVDCancel(&(fileInfo->block));
return TRUE;
}
static inline u32 myStrncpy(char* dest, char* src, u32 maxlen) {
u32 i = maxlen;
while ((i > 0) && (*src != 0)) {
*dest++ = *src++;
i--;
}
return (maxlen - i);
}
#pragma pop
/* 8034897C-80348ADC 3432BC 0160+00 2/2 0/0 0/0 .text entryToPath */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void entryToPath() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/entryToPath.s"
static u32 entryToPath(u32 entry, char* path, u32 maxlen) {
char* name;
u32 loc;
if (entry == 0) {
return 0;
}
name = FstStringStart + stringOff(entry);
loc = entryToPath(parentDir(entry), path, maxlen);
if (loc == maxlen) {
return loc;
}
*(path + loc++) = '/';
loc += myStrncpy(path + loc, name, maxlen - loc);
return loc;
}
#pragma pop
/* 80348ADC-80348C30 34341C 0154+00 1/1 0/0 0/0 .text DVDConvertEntrynumToPath */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void DVDConvertEntrynumToPath() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/DVDConvertEntrynumToPath.s"
static BOOL DVDConvertEntrynumToPath(s32 entrynum, char* path, u32 maxlen) {
u32 loc;
loc = entryToPath((u32)entrynum, path, maxlen);
if (loc == maxlen) {
path[maxlen - 1] = '\0';
return FALSE;
}
if (entryIsDir(entrynum)) {
if (loc == maxlen - 1) {
path[loc] = '\0';
return FALSE;
}
path[loc++] = '/';
}
path[loc] = '\0';
return TRUE;
}
#pragma pop
/* 80348C30-80348CF4 343570 00C4+00 1/1 0/0 0/0 .text DVDGetCurrentDir */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void DVDGetCurrentDir() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/DVDGetCurrentDir.s"
BOOL DVDGetCurrentDir(char* path, u32 maxlen) {
return DVDConvertEntrynumToPath((s32)currentDirectory, path, maxlen);
}
#pragma pop
/* 80348CF4-80348D54 343634 0060+00 0/0 2/2 0/0 .text DVDChangeDir */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void DVDChangeDir() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/DVDChangeDir.s"
BOOL DVDChangeDir(const char* dirName) {
s32 entry;
entry = DVDConvertPathToEntrynum(dirName);
if ((entry < 0) || (entryIsDir(entry) == FALSE)) {
return FALSE;
}
currentDirectory = (u32)entry;
return TRUE;
}
#pragma pop
/* ############################################################################################## */
/* 803D1480-803D14B4 02E5A0 0034+00 1/1 0/0 0/0 .data @239 */
SECTION_DATA static char lit_239[] = "DVDReadAsync(): specified area is out of the file ";
#define DVD_MIN_TRANSFER_SIZE 32
/* 80348D54-80348E14 343694 00C0+00 0/0 2/2 0/0 .text DVDReadAsyncPrio */
#ifdef NONMATCHING
BOOL DVDReadAsyncPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset,
DVDCallback callback, s32 prio) {
if (!((0 <= offset) && (offset <= fileInfo->length))) {
OSPanic(lit_118, 750, lit_239);
}
if (!((0 <= offset + length) && (offset + length < fileInfo->length + DVD_MIN_TRANSFER_SIZE))) {
OSPanic(lit_118, 756, lit_239);
}
fileInfo->callback = callback;
DVDReadAbsAsyncPrio(&(fileInfo->block), addr, length, (s32)(fileInfo->start_address + offset),
cbForReadAsync, prio);
return TRUE;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void DVDReadAsyncPrio() {
asm BOOL DVDReadAsyncPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset,
DVDCallback callback, s32 prio) {
nofralloc
#include "asm/dolphin/dvd/dvdfs/DVDReadAsyncPrio.s"
}
#pragma pop
#endif
#ifndef offsetof
#define offsetof(type, memb) ((u32) & ((type*)0)->memb)
#endif
/* 80348E14-80348E44 343754 0030+00 1/1 0/0 0/0 .text cbForReadAsync */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void cbForReadAsync() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/cbForReadAsync.s"
static void cbForReadAsync(s32 result, DVDCommandBlock* block) {
DVDFileInfo* fileInfo;
fileInfo = (DVDFileInfo*)((char*)block - offsetof(DVDFileInfo, block));
if (fileInfo->callback) {
(fileInfo->callback)(result, fileInfo);
}
}
#pragma pop
/* ############################################################################################## */
/* 803D14B4-803D14E4 02E5D4 002F+01 1/1 0/0 0/0 .data @265 */
SECTION_DATA static char lit_265[] = "DVDRead(): specified area is out of the file ";
/* 80348E44-80348F5C 343784 0118+00 0/0 9/9 3/3 .text DVDReadPrio */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void DVDReadPrio() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/DVDReadPrio.s"
int DVDReadPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, s32 prio) {
BOOL result;
DVDCommandBlock* block;
s32 state;
BOOL enabled;
int retVal;
if (!((0 <= offset) && (offset <= fileInfo->length))) {
OSPanic(lit_118, 820, "DVDRead(): specified area is out of the file ");
}
if (!((0 <= offset + length) && (offset + length < fileInfo->length + DVD_MIN_TRANSFER_SIZE))) {
OSPanic(lit_118, 826, "DVDRead(): specified area is out of the file ");
}
block = &(fileInfo->block);
result = DVDReadAbsAsyncPrio(block, addr, length, (s32)(fileInfo->start_address + offset),
cbForReadSync, prio);
if (result == FALSE) {
return -1;
}
enabled = OSDisableInterrupts();
while (1) {
state = ((volatile DVDCommandBlock*)block)->state;
if (state == DVD_STATE_END) {
retVal = (s32)block->transferred_size;
break;
}
if (state == DVD_STATE_FATAL_ERROR) {
retVal = DVD_RESULT_FATAL_ERROR;
break;
}
if (state == DVD_STATE_CANCELED) {
retVal = DVD_RESULT_CANCELED;
break;
}
OSSleepThread(&__DVDThreadQueue);
}
OSRestoreInterrupts(enabled);
return retVal;
}
#pragma pop
/* 80348F5C-80348F80 34389C 0024+00 1/1 0/0 0/0 .text cbForReadSync */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void cbForReadSync() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/cbForReadSync.s"
}
#pragma pop
/* This is based on the revolution SDK, these may not match in all cases */
static void cbForReadSync(s32 result, DVDCommandBlock* block) { OSWakeupThread(&__DVDThreadQueue); }
/* ############################################################################################## */
/* 803D14E4-803D1520 02E604 003A+02 1/1 0/0 0/0 .data @311 */
SECTION_DATA static char lit_311[] = "Warning: DVDOpenDir(): file '%s' was not found under %s.\n";
/* 80348F80-80349040 3438C0 00C0+00 0/0 3/3 0/0 .text DVDOpenDir */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void DVDOpenDir() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/DVDOpenDir.s"
BOOL DVDOpenDir(const char* dirName, DVDDirectory* dir) {
s32 entry;
char currentDir[128];
entry = DVDConvertPathToEntrynum(dirName);
if (entry < 0) {
DVDGetCurrentDir(currentDir, 128);
OSReport(lit_311, dirName, currentDir);
return FALSE;
}
if (!entryIsDir(entry)) {
return FALSE;
}
dir->entry_number = (u32)entry;
dir->location = (u32)entry + 1;
dir->next = nextDir(entry);
return TRUE;
}
#pragma pop
/* 80349040-803490E4 343980 00A4+00 0/0 3/3 0/0 .text DVDReadDir */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void DVDReadDir() {
nofralloc
#include "asm/dolphin/dvd/dvdfs/DVDReadDir.s"
BOOL DVDReadDir(DVDDirectory* dir, DVDDirectoryEntry* dirent) {
u32 loc = dir->location;
if ((loc <= dir->entry_number) || (dir->next <= loc)) {
return FALSE;
}
dirent->entry_number = loc;
dirent->is_directory = entryIsDir(loc);
dirent->name = FstStringStart + stringOff(loc);
dir->location = entryIsDir(loc) ? nextDir(loc) : (loc + 1);
return TRUE;
}
#pragma pop
/* 803490E4-803490EC 343A24 0008+00 0/0 3/3 0/0 .text DVDCloseDir */
u8 DVDCloseDir() {
BOOL DVDCloseDir() {
return 1;
}

View File

@ -6,78 +6,153 @@
#include "dolphin/dvd/dvdqueue.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "dolphin/dvd/dvd.h"
#include "dolphin/os/OSInterrupt.h"
//
// Forward References:
//
void __DVDClearWaitingQueue();
void __DVDPushWaitingQueue();
void __DVDPopWaitingQueue();
void __DVDCheckWaitingQueue();
void __DVDDequeueWaitingQueue();
BOOL __DVDPushWaitingQueue(s32 prio, DVDCommandBlock* block);
DVDCommandBlock* __DVDPopWaitingQueue(void);
BOOL __DVDCheckWaitingQueue(void);
BOOL __DVDDequeueWaitingQueue(DVDCommandBlock* block);
//
// External References:
//
void OSDisableInterrupts();
void OSRestoreInterrupts();
//
// Declarations:
//
#define MAX_QUEUES 4
typedef struct {
DVDCommandBlock* next;
DVDCommandBlock* prev;
} DVDQueue;
/* ############################################################################################## */
/* 8044C998-8044C9B8 0796B8 0020+00 4/4 0/0 0/0 .bss WaitingQueue */
static u8 WaitingQueue[32];
static DVDQueue WaitingQueue[MAX_QUEUES];
/* 8034B874-8034B8AC 3461B4 0038+00 0/0 5/5 0/0 .text __DVDClearWaitingQueue */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __DVDClearWaitingQueue() {
nofralloc
#include "asm/dolphin/dvd/dvdqueue/__DVDClearWaitingQueue.s"
void __DVDClearWaitingQueue(void) {
u32 i;
for (i = 0; i < MAX_QUEUES; i++) {
DVDCommandBlock* q;
q = (DVDCommandBlock*)&(WaitingQueue[i]);
q->next = q;
q->prev = q;
}
}
#pragma pop
/* 8034B8AC-8034B914 3461EC 0068+00 0/0 5/5 0/0 .text __DVDPushWaitingQueue */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __DVDPushWaitingQueue() {
nofralloc
#include "asm/dolphin/dvd/dvdqueue/__DVDPushWaitingQueue.s"
BOOL __DVDPushWaitingQueue(s32 prio, DVDCommandBlock* block) {
BOOL enabled;
DVDCommandBlock* q;
enabled = OSDisableInterrupts();
q = (DVDCommandBlock*)&(WaitingQueue[prio]);
q->prev->next = block;
block->prev = q->prev;
block->next = q;
q->prev = block;
OSRestoreInterrupts(enabled);
return TRUE;
}
static inline DVDCommandBlock* PopWaitingQueuePrio(s32 prio) {
DVDCommandBlock* tmp;
BOOL enabled;
DVDCommandBlock* q;
enabled = OSDisableInterrupts();
q = (DVDCommandBlock*)&(WaitingQueue[prio]);
tmp = q->next;
q->next = tmp->next;
tmp->next->prev = q;
OSRestoreInterrupts(enabled);
tmp->next = (DVDCommandBlock*)NULL;
tmp->prev = (DVDCommandBlock*)NULL;
return tmp;
}
#pragma pop
/* 8034B914-8034B9B4 346254 00A0+00 0/0 2/2 0/0 .text __DVDPopWaitingQueue */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __DVDPopWaitingQueue() {
nofralloc
#include "asm/dolphin/dvd/dvdqueue/__DVDPopWaitingQueue.s"
DVDCommandBlock* __DVDPopWaitingQueue(void) {
u32 i;
BOOL enabled;
DVDCommandBlock* q;
enabled = OSDisableInterrupts();
for (i = 0; i < MAX_QUEUES; i++) {
q = (DVDCommandBlock*)&(WaitingQueue[i]);
if (q->next != q) {
OSRestoreInterrupts(enabled);
return PopWaitingQueuePrio((s32)i);
}
}
OSRestoreInterrupts(enabled);
return (DVDCommandBlock*)NULL;
}
#pragma pop
/* 8034B9B4-8034BA0C 3462F4 0058+00 0/0 1/1 0/0 .text __DVDCheckWaitingQueue */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __DVDCheckWaitingQueue() {
nofralloc
#include "asm/dolphin/dvd/dvdqueue/__DVDCheckWaitingQueue.s"
BOOL __DVDCheckWaitingQueue(void) {
u32 i;
BOOL enabled;
DVDCommandBlock* q;
enabled = OSDisableInterrupts();
for (i = 0; i < MAX_QUEUES; i++) {
q = (DVDCommandBlock*)&(WaitingQueue[i]);
if (q->next != q) {
OSRestoreInterrupts(enabled);
return TRUE;
}
}
OSRestoreInterrupts(enabled);
return FALSE;
}
#pragma pop
/* 8034BA0C-8034BA6C 34634C 0060+00 0/0 1/1 0/0 .text __DVDDequeueWaitingQueue */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __DVDDequeueWaitingQueue() {
nofralloc
#include "asm/dolphin/dvd/dvdqueue/__DVDDequeueWaitingQueue.s"
BOOL __DVDDequeueWaitingQueue(DVDCommandBlock* block) {
BOOL enabled;
DVDCommandBlock* prev;
DVDCommandBlock* next;
enabled = OSDisableInterrupts();
prev = block->prev;
next = block->next;
if ((prev == (DVDCommandBlock*)NULL) || (next == (DVDCommandBlock*)NULL)) {
OSRestoreInterrupts(enabled);
return FALSE;
}
prev->next = next;
next->prev = prev;
OSRestoreInterrupts(enabled);
return TRUE;
}
#pragma pop

View File

@ -10,6 +10,9 @@
#define REG_MAX 5
#define REG(chan, idx) (__EXIRegs[((chan)*REG_MAX) + (idx)])
#define CPR_CS(x) ((1u << (x)) << 7)
#define CPR_CLK(x) ((x) << 4)
#define EXI_0CR(tstart, dma, rw, tlen) \
((((u32)(tstart)) << 0) | (((u32)(dma)) << 1) | (((u32)(rw)) << 2) | (((u32)(tlen)) << 4))
@ -28,10 +31,10 @@ static void EXTIntrruptHandler(s16 interrupt, OSContext* context);
// External References:
//
void __OSEnableBarnacle();
void __OSEnableBarnacle(u32, u32);
void __div2i();
void memmove();
extern u8 __OSInIPL[4 + 4 /* padding */];
extern s32 __OSInIPL;
//
// Declarations:
@ -42,28 +45,27 @@ extern u8 __OSInIPL[4 + 4 /* padding */];
static EXIControl Ecb[3];
/* 80342C0C-80342D00 33D54C 00F4+00 4/4 0/0 0/0 .text SetExiInterruptMask */
#ifdef NONMATCHING
static void SetExiInterruptMask(s32 chan, EXIControl* exi) {
EXIControl* exi2;
exi2 = &Ecb[2];
switch (chan) {
case 0:
if ((exi->exiCallback == 0 && exi2->exiCallback == 0) || (exi->state & STATE_LOCKED)) {
if ((exi->exiCallback == 0 && exi2->exiCallback == 0) || (exi->state & EXI_STATE_LOCKED)) {
__OSMaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXI | OS_INTERRUPTMASK_EXI_2_EXI);
} else {
__OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXI | OS_INTERRUPTMASK_EXI_2_EXI);
}
break;
case 1:
if (exi->exiCallback == 0 || (exi->state & STATE_LOCKED)) {
if (exi->exiCallback == 0 || (exi->state & EXI_STATE_LOCKED)) {
__OSMaskInterrupts(OS_INTERRUPTMASK_EXI_1_EXI);
} else {
__OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_1_EXI);
}
break;
case 2:
if (__OSGetInterruptHandler(OS_INTR_PI_DEBUG) == 0 || (exi->state & STATE_LOCKED)) {
if (__OSGetInterruptHandler(OS_INTR_PI_DEBUG) == 0 || (exi->state & EXI_STATE_LOCKED)) {
__OSMaskInterrupts(OS_INTERRUPTMASK_PI_DEBUG);
} else {
__OSUnmaskInterrupts(OS_INTERRUPTMASK_PI_DEBUG);
@ -71,19 +73,8 @@ static void SetExiInterruptMask(s32 chan, EXIControl* exi) {
break;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void SetExiInterruptMask(s32 chan, EXIControl* exi) {
nofralloc
#include "asm/exi/EXIBios/SetExiInterruptMask.s"
}
#pragma pop
#endif
/* 80342D00-80342F5C 33D640 025C+00 2/2 9/9 0/0 .text EXIImm */
#ifdef NONMATCHING
s32 EXIImm(s32 chan, void* buf, s32 len, u32 type, EXICallback callback) {
EXIControl* exi = &Ecb[chan];
BOOL enabled;
@ -122,20 +113,8 @@ s32 EXIImm(s32 chan, void* buf, s32 len, u32 type, EXICallback callback) {
return TRUE;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 EXIImm(s32 chan, void* buf, s32 len, u32 type, EXICallback callback) {
nofralloc
#include "asm/exi/EXIBios/EXIImm.s"
}
#pragma pop
#endif
/* 80342F5C-80342FFC 33D89C 00A0+00 0/0 7/7 0/0 .text EXIImmEx */
// needs compiler lmw/lwz order patch
#ifdef NONMATCHING
s32 EXIImmEx(s32 chan, void* buf, s32 len, u32 mode) {
s32 xLen;
@ -154,19 +133,8 @@ s32 EXIImmEx(s32 chan, void* buf, s32 len, u32 mode) {
}
return TRUE;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 EXIImmEx(s32 chan, void* buf, s32 len, u32 mode) {
nofralloc
#include "asm/exi/EXIBios/EXIImmEx.s"
}
#pragma pop
#endif
/* 80342FFC-803430E8 33D93C 00EC+00 0/0 4/4 0/0 .text EXIDma */
#ifdef NONMATCHING
BOOL EXIDma(s32 chan, void* buf, s32 len, u32 type, EXICallback callback) {
EXIControl* exi = &Ecb[chan];
BOOL enabled;
@ -193,146 +161,361 @@ BOOL EXIDma(s32 chan, void* buf, s32 len, u32 type, EXICallback callback) {
return TRUE;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL EXIDma(s32 chan, void* buf, s32 len, u32 type, EXICallback callback) {
nofralloc
#include "asm/exi/EXIBios/EXIDma.s"
static void CompleteTransfer(s32 chan) {
EXIControl* exi = &Ecb[chan];
u8* buf;
u32 data;
int i;
int len;
if (exi->state & EXI_STATE_BUSY) {
if ((exi->state & EXI_STATE_IMM) && (len = exi->immLen)) {
buf = exi->immBuf;
data = REG(chan, 4);
for (i = 0; i < len; i++) {
*buf++ = (u8)((data >> ((3 - i) * 8)) & 0xff);
}
}
exi->state &= ~EXI_STATE_BUSY;
}
}
#pragma pop
#endif
/* 803430E8-80343334 33DA28 024C+00 2/2 9/9 0/0 .text EXISync */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL EXISync(s32 chan) {
nofralloc
#include "asm/exi/EXIBios/EXISync.s"
BOOL EXISync(s32 chan) {
EXIControl* exi = &Ecb[chan];
BOOL rc = FALSE;
BOOL enabled;
while (exi->state & EXI_STATE_SELECTED) {
if (((REG(chan, 3) & 1) >> 0) == 0) {
enabled = OSDisableInterrupts();
if (exi->state & EXI_STATE_SELECTED) {
CompleteTransfer(chan);
if (__OSGetDIConfig() != 0xff || (OSGetConsoleType() & 0xf0000000) == 0x20000000 ||
exi->immLen != 4 || (REG(chan, 0) & 0x00000070) != (EXI_FREQ_1M << 4) ||
(REG(chan, 4) != EXI_USB_ADAPTER && REG(chan, 4) != EXI_IS_VIEWER &&
REG(chan, 4) != 0x04220001) ||
__OSDeviceCode == 0x8200) {
rc = TRUE;
}
}
OSRestoreInterrupts(enabled);
break;
}
}
return rc;
}
#pragma pop
/* 80343334-8034337C 33DC74 0048+00 4/4 0/0 0/0 .text EXIClearInterrupts */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm u32 EXIClearInterrupts(s32 chan, BOOL exi, BOOL tc, BOOL ext) {
nofralloc
#include "asm/exi/EXIBios/EXIClearInterrupts.s"
u32 EXIClearInterrupts(s32 chan, BOOL exi, BOOL tc, BOOL ext) {
u32 cpr;
u32 prev;
prev = cpr = REG(chan, 0);
cpr &= 0x7f5;
if (exi)
cpr |= 2;
if (tc)
cpr |= 8;
if (ext)
cpr |= 0x800;
REG(chan, 0) = cpr;
return prev;
}
#pragma pop
/* 8034337C-803433F8 33DCBC 007C+00 0/0 6/6 0/0 .text EXISetExiCallback */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm EXICallback EXISetExiCallback(s32 chan, EXICallback exiCallback) {
nofralloc
#include "asm/exi/EXIBios/EXISetExiCallback.s"
EXICallback EXISetExiCallback(s32 chan, EXICallback exiCallback) {
EXIControl* exi = &Ecb[chan];
EXICallback prev;
BOOL enabled;
enabled = OSDisableInterrupts();
prev = exi->exiCallback;
exi->exiCallback = exiCallback;
if (chan != 2) {
SetExiInterruptMask(chan, exi);
} else {
SetExiInterruptMask(0, &Ecb[0]);
}
OSRestoreInterrupts(enabled);
return prev;
}
#pragma pop
s32 __EXIProbeStartTime[2] : (OS_BASE_CACHED | 0x30C0);
/* 803433F8-8034356C 33DD38 0174+00 7/7 0/0 0/0 .text __EXIProbe */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL __EXIProbe(s32 chan) {
nofralloc
#include "asm/exi/EXIBios/__EXIProbe.s"
static BOOL __EXIProbe(s32 chan) {
EXIControl* exi = &Ecb[chan];
BOOL enabled;
BOOL rc;
u32 cpr;
s32 t;
if (chan == 2) {
return TRUE;
}
rc = TRUE;
enabled = OSDisableInterrupts();
cpr = REG(chan, 0);
if (!(exi->state & EXI_STATE_ATTACHED)) {
if (cpr & 0x00000800) {
EXIClearInterrupts(chan, FALSE, FALSE, TRUE);
__EXIProbeStartTime[chan] = exi->idTime = 0;
}
if (cpr & 0x00001000) {
t = (s32)(OSTicksToMilliseconds(OSGetTime()) / 100) + 1;
if (__EXIProbeStartTime[chan] == 0) {
__EXIProbeStartTime[chan] = t;
}
if (t - __EXIProbeStartTime[chan] < 300 / 100) {
rc = FALSE;
}
} else {
__EXIProbeStartTime[chan] = exi->idTime = 0;
rc = FALSE;
}
} else if (!(cpr & 0x00001000) || (cpr & 0x00000800)) {
__EXIProbeStartTime[chan] = exi->idTime = 0;
rc = FALSE;
}
OSRestoreInterrupts(enabled);
return rc;
}
#pragma pop
/* 8034356C-803435EC 33DEAC 0080+00 0/0 5/5 0/0 .text EXIProbe */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL EXIProbe(s32 chan) {
nofralloc
#include "asm/exi/EXIBios/EXIProbe.s"
BOOL EXIProbe(s32 chan) {
EXIControl* exi = &Ecb[chan];
BOOL rc;
u32 id;
rc = __EXIProbe(chan);
if (rc && exi->idTime == 0) {
rc = EXIGetID(chan, 0, &id) ? TRUE : FALSE;
}
return rc;
}
#pragma pop
/* 803435EC-803436A0 33DF2C 00B4+00 0/0 1/1 0/0 .text EXIProbeEx */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 EXIProbeEx(s32 chan) {
nofralloc
#include "asm/exi/EXIBios/EXIProbeEx.s"
s32 EXIProbeEx(s32 chan) {
if (EXIProbe(chan)) {
return 1;
} else if (__EXIProbeStartTime[chan] != 0) {
return 0;
} else {
return -1;
}
}
#pragma pop
/* 803436A0-803437AC 33DFE0 010C+00 0/0 2/2 0/0 .text EXIAttach */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL EXIAttach(s32 chan, EXICallback extCallback) {
nofralloc
#include "asm/exi/EXIBios/EXIAttach.s"
static BOOL __EXIAttach(s32 chan, EXICallback extCallback) {
EXIControl* exi = &Ecb[chan];
BOOL enabled;
enabled = OSDisableInterrupts();
if ((exi->state & EXI_STATE_ATTACHED) || __EXIProbe(chan) == FALSE) {
OSRestoreInterrupts(enabled);
return FALSE;
}
EXIClearInterrupts(chan, TRUE, FALSE, FALSE);
exi->extCallback = extCallback;
__OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXT >> (3 * chan));
exi->state |= EXI_STATE_ATTACHED;
OSRestoreInterrupts(enabled);
return TRUE;
}
BOOL EXIAttach(s32 chan, EXICallback extCallback) {
EXIControl* exi = &Ecb[chan];
BOOL enabled;
BOOL rc;
EXIProbe(chan);
enabled = OSDisableInterrupts();
if (exi->idTime == 0) {
OSRestoreInterrupts(enabled);
return FALSE;
}
rc = __EXIAttach(chan, extCallback);
OSRestoreInterrupts(enabled);
return rc;
}
#pragma pop
/* 803437AC-80343868 33E0EC 00BC+00 0/0 3/3 0/0 .text EXIDetach */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL EXIDetach(s32 chan) {
nofralloc
#include "asm/exi/EXIBios/EXIDetach.s"
BOOL EXIDetach(s32 chan) {
EXIControl* exi = &Ecb[chan];
BOOL enabled;
enabled = OSDisableInterrupts();
if (!(exi->state & EXI_STATE_ATTACHED)) {
OSRestoreInterrupts(enabled);
return TRUE;
}
if ((exi->state & EXI_STATE_LOCKED) && exi->dev == 0) {
OSRestoreInterrupts(enabled);
return FALSE;
}
exi->state &= ~EXI_STATE_ATTACHED;
__OSMaskInterrupts((OS_INTERRUPTMASK_EXI_0_EXT | OS_INTERRUPTMASK_EXI_0_EXI) >> (3 * chan));
OSRestoreInterrupts(enabled);
return TRUE;
}
#pragma pop
/* 80343868-80343994 33E1A8 012C+00 1/1 12/12 0/0 .text EXISelect */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL EXISelect(s32 chan, u32 dev, u32 freq) {
nofralloc
#include "asm/exi/EXIBios/EXISelect.s"
BOOL EXISelect(s32 chan, u32 dev, u32 freq) {
EXIControl* exi = &Ecb[chan];
u32 cpr;
BOOL enabled;
enabled = OSDisableInterrupts();
if ((exi->state & EXI_STATE_SELECTED) ||
chan != 2 && (dev == 0 && !(exi->state & EXI_STATE_ATTACHED) && !__EXIProbe(chan) ||
!(exi->state & EXI_STATE_LOCKED) || (exi->dev != dev)))
{
OSRestoreInterrupts(enabled);
return FALSE;
}
exi->state |= EXI_STATE_SELECTED;
cpr = REG(chan, 0);
cpr &= 0x405;
cpr |= CPR_CS(dev) | CPR_CLK(freq);
REG(chan, 0) = cpr;
if (exi->state & EXI_STATE_ATTACHED) {
switch (chan) {
case 0:
__OSMaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXT);
break;
case 1:
__OSMaskInterrupts(OS_INTERRUPTMASK_EXI_1_EXT);
break;
}
}
OSRestoreInterrupts(enabled);
return TRUE;
}
#pragma pop
/* 80343994-80343AA4 33E2D4 0110+00 1/1 15/15 0/0 .text EXIDeselect */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL EXIDeselect(s32 chan) {
nofralloc
#include "asm/exi/EXIBios/EXIDeselect.s"
BOOL EXIDeselect(s32 chan) {
EXIControl* exi = &Ecb[chan];
u32 cpr;
BOOL enabled;
enabled = OSDisableInterrupts();
if (!(exi->state & EXI_STATE_SELECTED)) {
OSRestoreInterrupts(enabled);
return FALSE;
}
exi->state &= ~EXI_STATE_SELECTED;
cpr = REG(chan, 0);
REG(chan, 0) = cpr & 0x405;
if (exi->state & EXI_STATE_ATTACHED) {
switch (chan) {
case 0:
__OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXT);
break;
case 1:
__OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_1_EXT);
break;
}
}
OSRestoreInterrupts(enabled);
if (chan != 2 && (cpr & CPR_CS(0))) {
return __EXIProbe(chan) ? TRUE : FALSE;
}
return TRUE;
}
#pragma pop
/* 80343AA4-80343B6C 33E3E4 00C8+00 1/1 0/0 0/0 .text EXIIntrruptHandler */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void EXIIntrruptHandler(s16 interrupt, OSContext* context) {
nofralloc
#include "asm/exi/EXIBios/EXIIntrruptHandler.s"
static void EXIIntrruptHandler(s16 interrupt, OSContext* context) {
s32 chan;
EXIControl* exi;
EXICallback callback;
chan = (interrupt - OS_INTR_EXI_0_EXI) / 3;
exi = &Ecb[chan];
EXIClearInterrupts(chan, TRUE, FALSE, FALSE);
callback = exi->exiCallback;
if (callback) {
OSContext exceptionContext;
OSClearContext(&exceptionContext);
OSSetCurrentContext(&exceptionContext);
callback(chan, context);
OSClearContext(&exceptionContext);
OSSetCurrentContext(context);
}
}
#pragma pop
/* 80343B6C-80343D84 33E4AC 0218+00 1/1 0/0 0/0 .text TCIntrruptHandler */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void TCIntrruptHandler(s16 interrupt, OSContext* context) {
nofralloc
#include "asm/exi/EXIBios/TCIntrruptHandler.s"
static void TCIntrruptHandler(s16 interrupt, OSContext* context) {
OSContext exceptionContext;
s32 chan;
EXIControl* exi;
EXICallback callback;
chan = (interrupt - OS_INTR_EXI_0_TC) / 3;
exi = &Ecb[chan];
__OSMaskInterrupts(OS_INTERRUPTMASK(interrupt));
EXIClearInterrupts(chan, FALSE, TRUE, FALSE);
callback = exi->tcCallback;
if (callback) {
exi->tcCallback = 0;
CompleteTransfer(chan);
OSClearContext(&exceptionContext);
OSSetCurrentContext(&exceptionContext);
callback(chan, context);
OSClearContext(&exceptionContext);
OSSetCurrentContext(context);
}
}
#pragma pop
/* 80343D84-80343E54 33E6C4 00D0+00 1/1 0/0 0/0 .text EXTIntrruptHandler */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void EXTIntrruptHandler(s16 interrupt, OSContext* context) {
nofralloc
#include "asm/exi/EXIBios/EXTIntrruptHandler.s"
static void EXTIntrruptHandler(s16 interrupt, OSContext* context) {
s32 chan;
EXIControl* exi;
EXICallback callback;
chan = (interrupt - OS_INTR_EXI_0_EXT) / 3;
__OSMaskInterrupts((OS_INTERRUPTMASK_EXI_0_EXT | OS_INTERRUPTMASK_EXI_0_EXI) >> (3 * chan));
exi = &Ecb[chan];
callback = exi->extCallback;
exi->state &= ~EXI_STATE_ATTACHED;
if (callback) {
OSContext exceptionContext;
OSClearContext(&exceptionContext);
OSSetCurrentContext(&exceptionContext);
exi->extCallback = 0;
callback(chan, context);
OSClearContext(&exceptionContext);
OSSetCurrentContext(context);
}
}
#pragma pop
/* ############################################################################################## */
/* 803D10A8-803D10F0 02E1C8 0045+03 1/0 0/0 0/0 .data @1 */
@ -343,59 +526,187 @@ SECTION_DATA static char lit_1[] =
SECTION_SDATA static const char* __EXIVersion = lit_1;
/* 804516D8-804516E0 000BD8 0004+04 2/2 0/0 0/0 .sbss IDSerialPort1 */
static u8 IDSerialPort1[4 + 4 /* padding */];
static u32 IDSerialPort1[2 /* padding */];
/* 80343E54-80344028 33E794 01D4+00 0/0 1/1 0/0 .text EXIInit */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void EXIInit(void) {
nofralloc
#include "asm/exi/EXIBios/EXIInit.s"
void EXIInit(void) {
u32 idSerial;
while (((REG(0, 3) & 1) == 1) || ((REG(1, 3) & 1) == 1) || ((REG(2, 3) & 1) == 1)) {
}
__OSMaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXI | OS_INTERRUPTMASK_EXI_0_TC |
OS_INTERRUPTMASK_EXI_0_EXT | OS_INTERRUPTMASK_EXI_1_EXI |
OS_INTERRUPTMASK_EXI_1_TC | OS_INTERRUPTMASK_EXI_1_EXT |
OS_INTERRUPTMASK_EXI_2_EXI | OS_INTERRUPTMASK_EXI_2_TC);
REG(0, 0) = 0;
REG(1, 0) = 0;
REG(2, 0) = 0;
REG(0, 0) = 0x00002000;
__OSSetInterruptHandler(OS_INTR_EXI_0_EXI, EXIIntrruptHandler);
__OSSetInterruptHandler(OS_INTR_EXI_0_TC, TCIntrruptHandler);
__OSSetInterruptHandler(OS_INTR_EXI_0_EXT, EXTIntrruptHandler);
__OSSetInterruptHandler(OS_INTR_EXI_1_EXI, EXIIntrruptHandler);
__OSSetInterruptHandler(OS_INTR_EXI_1_TC, TCIntrruptHandler);
__OSSetInterruptHandler(OS_INTR_EXI_1_EXT, EXTIntrruptHandler);
__OSSetInterruptHandler(OS_INTR_EXI_2_EXI, EXIIntrruptHandler);
__OSSetInterruptHandler(OS_INTR_EXI_2_TC, TCIntrruptHandler);
EXIGetID(0, 2, IDSerialPort1);
if (__OSInIPL) {
__EXIProbeStartTime[0] = __EXIProbeStartTime[1] = 0;
Ecb[0].idTime = Ecb[1].idTime = 0;
__EXIProbe(0);
__EXIProbe(1);
} else if (EXIGetID(0, 0, &idSerial) && idSerial == 0x7010000) {
__OSEnableBarnacle(1, 0);
} else if (EXIGetID(1, 0, &idSerial) && idSerial == 0x7010000) {
__OSEnableBarnacle(0, 2);
}
OSRegisterVersion(__EXIVersion);
}
#pragma pop
/* 80344028-8034411C 33E968 00F4+00 1/1 10/10 0/0 .text EXILock */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL EXILock(s32 chan, u32 dev, EXICallback unlockedCallback) {
nofralloc
#include "asm/exi/EXIBios/EXILock.s"
BOOL EXILock(s32 chan, u32 dev, EXICallback unlockedCallback) {
EXIControl* exi = &Ecb[chan];
BOOL enabled;
int i;
enabled = OSDisableInterrupts();
if (exi->state & EXI_STATE_LOCKED) {
if (unlockedCallback) {
for (i = 0; i < exi->items; i++) {
if (exi->queue[i].dev == dev) {
OSRestoreInterrupts(enabled);
return FALSE;
}
}
exi->queue[exi->items].callback = unlockedCallback;
exi->queue[exi->items].dev = dev;
exi->items++;
}
OSRestoreInterrupts(enabled);
return FALSE;
}
exi->state |= EXI_STATE_LOCKED;
exi->dev = dev;
SetExiInterruptMask(chan, exi);
OSRestoreInterrupts(enabled);
return TRUE;
}
#pragma pop
/* 8034411C-803441F8 33EA5C 00DC+00 0/0 14/14 0/0 .text EXIUnlock */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL EXIUnlock(s32 chan) {
nofralloc
#include "asm/exi/EXIBios/EXIUnlock.s"
BOOL EXIUnlock(s32 chan) {
EXIControl* exi = &Ecb[chan];
BOOL enabled;
EXICallback unlockedCallback;
enabled = OSDisableInterrupts();
if (!(exi->state & EXI_STATE_LOCKED)) {
OSRestoreInterrupts(enabled);
return FALSE;
}
exi->state &= ~EXI_STATE_LOCKED;
SetExiInterruptMask(chan, exi);
if (0 < exi->items) {
unlockedCallback = exi->queue[0].callback;
if (0 < --exi->items) {
memmove(&exi->queue[0], &exi->queue[1], sizeof(exi->queue[0]) * exi->items);
}
unlockedCallback(chan, 0);
}
OSRestoreInterrupts(enabled);
return TRUE;
}
#pragma pop
/* 803441F8-80344210 33EB38 0018+00 0/0 2/2 0/0 .text EXIGetState */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 EXIGetState(s32 chan) {
nofralloc
#include "asm/exi/EXIBios/EXIGetState.s"
u32 EXIGetState(s32 chan) {
EXIControl* exi = &Ecb[chan];
return (u32)exi->state;
}
#pragma pop
/* 80344210-80344238 33EB50 0028+00 1/1 0/0 0/0 .text UnlockedHandler */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void UnlockedHandler(s32 chan, OSContext* context) {
nofralloc
#include "asm/exi/EXIBios/UnlockedHandler.s"
static void UnlockedHandler(s32 chan, OSContext* context) {
u32 id;
EXIGetID(chan, 0, &id);
}
#pragma pop
/* 80344238-803445E8 33EB78 03B0+00 5/5 3/3 0/0 .text EXIGetID */
// Use of add. instead of add
#ifdef NONMATCHING
s32 EXIGetID(s32 chan, u32 dev, u32* id) {
EXIControl* exi = &Ecb[chan];
BOOL err;
u32 cmd;
s32 startTime;
BOOL enabled;
if (exi == (EXIControl*)NULL && dev == 2 && IDSerialPort1[0] != 0) {
*id = IDSerialPort1[0];
return 1;
}
if (chan < 2 && dev == 0) {
if (!__EXIProbe(chan)) {
return 0;
}
if (exi->idTime == __EXIProbeStartTime[chan]) {
*id = exi->id;
return exi->idTime;
}
if (!__EXIAttach(chan, NULL)) {
return 0;
}
startTime = __EXIProbeStartTime[chan];
}
enabled = OSDisableInterrupts();
err = !EXILock(chan, dev, (chan < 2 && dev == 0) ? UnlockedHandler : NULL);
if (!err) {
err = !EXISelect(chan, dev, EXI_FREQ_1M);
if (!err) {
cmd = 0;
err |= !EXIImm(chan, &cmd, 2, EXI_WRITE, NULL);
err |= !EXISync(chan);
err |= !EXIImm(chan, id, 4, EXI_READ, NULL);
err |= !EXISync(chan);
err |= !EXIDeselect(chan);
}
EXIUnlock(chan);
}
OSRestoreInterrupts(enabled);
if (chan < 2 && dev == 0) {
EXIDetach(chan);
enabled = OSDisableInterrupts();
err |= (startTime != __EXIProbeStartTime[chan]);
if (!err) {
exi->id = *id;
exi->idTime = startTime;
}
OSRestoreInterrupts(enabled);
return err ? 0 : exi->idTime;
}
return err ? 0 : !0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -404,6 +715,7 @@ asm s32 EXIGetID(s32 chan, u32 dev, u32* id) {
#include "asm/exi/EXIBios/EXIGetID.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 803D10F0-803D1100 02E210 000F+01 0/0 0/0 0/0 .data @473 */

View File

@ -5,85 +5,204 @@
#include "dolphin/exi/EXIUart.h"
#include "dol2asm.h"
#include "dolphin/exi/EXIBios.h"
#include "dolphin/types.h"
//
// Forward References:
//
static void ProbeBarnacle();
void __OSEnableBarnacle();
void InitializeUART();
void WriteUARTN();
//
// External References:
//
void OSGetConsoleType();
void EXIImm();
void EXISync();
void EXIAttach();
void EXIDetach();
void EXISelect();
void EXIDeselect();
void EXILock();
void EXIUnlock();
void EXIGetID();
//
// Declarations:
//
#define EXI_TX 0x800400u
#define EXI_MAGIC 0xa5ff005a
/* 803445E8-80344774 33EF28 018C+00 1/1 0/0 0/0 .text ProbeBarnacle */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void ProbeBarnacle() {
nofralloc
#include "asm/exi/EXIUart/ProbeBarnacle.s"
static BOOL ProbeBarnacle(s32 chan, u32 dev, u32* revision) {
BOOL err;
u32 cmd;
if (chan != 2 && dev == 0 && !EXIAttach(chan, NULL)) {
return FALSE;
}
err = !EXILock(chan, dev, NULL);
if (!err) {
err = !EXISelect(chan, dev, EXI_FREQ_1M);
if (!err) {
cmd = 0x20011300;
err = FALSE;
err |= !EXIImm(chan, &cmd, 4, EXI_WRITE, NULL);
err |= !EXISync(chan);
err |= !EXIImm(chan, revision, 4, EXI_READ, NULL);
err |= !EXISync(chan);
err |= !EXIDeselect(chan);
}
EXIUnlock(chan);
}
if (chan != 2 && dev == 0) {
EXIDetach(chan);
}
if (err) {
return FALSE;
}
return (*revision != 0xFFFFFFFF) ? TRUE : FALSE;
}
#pragma pop
/* ############################################################################################## */
/* 804516E0-804516E4 000BE0 0004+00 3/3 0/0 0/0 .sbss Chan */
static u8 Chan[4];
static s32 Chan;
/* 804516E4-804516E8 000BE4 0004+00 3/3 0/0 0/0 .sbss Dev */
static u8 Dev[4];
static u32 Dev;
/* 804516E8-804516EC 000BE8 0004+00 3/3 0/0 0/0 .sbss Enabled */
static u8 Enabled[4];
static u32 Enabled;
/* 804516EC-804516F0 000BEC 0004+00 2/2 0/0 0/0 .sbss BarnacleEnabled */
static u8 BarnacleEnabled[4];
static u32 BarnacleEnabled;
/* 80344774-80344930 33F0B4 01BC+00 0/0 1/1 0/0 .text __OSEnableBarnacle */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __OSEnableBarnacle() {
nofralloc
#include "asm/exi/EXIUart/__OSEnableBarnacle.s"
void __OSEnableBarnacle(s32 chan, u32 dev) {
u32 id;
if (EXIGetID(chan, dev, &id)) {
switch (id) {
case 0xffffffff:
case EXI_MEMORY_CARD_59:
case EXI_MEMORY_CARD_123:
case EXI_MEMORY_CARD_251:
case EXI_MEMORY_CARD_507:
case EXI_USB_ADAPTER:
case EXI_NPDP_GDEV:
case EXI_MODEM:
case EXI_MARLIN:
case 0x04220000:
case 0x04020100:
case 0x04020200:
case 0x04020300:
case 0x04040404:
case 0x04060000:
case 0x04120000:
case 0x04130000:
case 0x80000000 | EXI_MEMORY_CARD_59:
case 0x80000000 | EXI_MEMORY_CARD_123:
case 0x80000000 | EXI_MEMORY_CARD_251:
case 0x80000000 | EXI_MEMORY_CARD_507:
break;
default:
if (ProbeBarnacle(chan, dev, &id)) {
Chan = chan;
Dev = dev;
Enabled = BarnacleEnabled = EXI_MAGIC;
}
break;
}
}
}
#pragma pop
/* 80344930-803449A0 33F270 0070+00 0/0 1/1 0/0 .text InitializeUART */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void InitializeUART() {
nofralloc
#include "asm/exi/EXIUart/InitializeUART.s"
u32 InitializeUART(u32 baudRate) {
if (BarnacleEnabled == EXI_MAGIC) {
return 0;
}
if (!(OSGetConsoleType() & OS_CONSOLE_DEVELOPMENT)) {
Enabled = 0;
return 2;
} else {
Chan = 0;
Dev = 1;
Enabled = EXI_MAGIC;
return 0;
}
}
u32 ReadUARTN(void* bytes, unsigned long length) {
return 4;
}
static int QueueLength(void) {
u32 cmd;
if (!EXISelect(Chan, Dev, EXI_FREQ_8M))
return -1;
cmd = EXI_TX << 6;
EXIImm(Chan, &cmd, 4, EXI_WRITE, NULL);
EXISync(Chan);
EXIImm(Chan, &cmd, 1, EXI_READ, NULL);
EXISync(Chan);
EXIDeselect(Chan);
return 16 - (int)((cmd >> 24) & 0xff);
}
#pragma pop
/* 803449A0-80344BA0 33F2E0 0200+00 0/0 1/1 0/0 .text WriteUARTN */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void WriteUARTN() {
nofralloc
#include "asm/exi/EXIUart/WriteUARTN.s"
}
#pragma pop
u32 WriteUARTN(const void* buf, unsigned long len) {
u32 cmd;
int qLen;
long xLen;
char* ptr;
BOOL locked;
u32 error;
if (Enabled != EXI_MAGIC)
return 2;
locked = EXILock(Chan, Dev, 0);
if (!locked) {
return 0;
}
for (ptr = (char*)buf; ptr - buf < len; ptr++) {
if (*ptr == '\n')
*ptr = '\r';
}
error = 0;
cmd = (EXI_TX | 0x2000000) << 6;
while (len) {
qLen = QueueLength();
if (qLen < 0) {
error = 3;
break;
}
if (qLen < 12 && qLen < len)
continue;
if (!EXISelect(Chan, Dev, EXI_FREQ_8M)) {
error = 3;
break;
}
EXIImm(Chan, &cmd, 4, EXI_WRITE, NULL);
EXISync(Chan);
while (qLen && len) {
if (qLen < 4 && qLen < len)
break;
xLen = (len < 4) ? (long)len : 4;
EXIImm(Chan, (void*)buf, xLen, EXI_WRITE, NULL);
(u8*)buf += xLen;
len -= xLen;
qLen -= xLen;
EXISync(Chan);
}
EXIDeselect(Chan);
}
EXIUnlock(Chan);
return error;
}

View File

@ -10,16 +10,18 @@ LIBEXI_A_O_FILES := \
$(BUILD_DIR)/libs/dolphin/exi/EXIBios.o \
$(BUILD_DIR)/libs/dolphin/exi/EXIUart.o \
LIBEXI_A_CFLAGS := \
LIBEXI_A_CFLAGS = \
-Cpp_exceptions off \
-proc gekko \
-fp hard \
-fp_contract on \
-nodefaults \
-str reuse \
-inline auto \
-RTTI off \
-maxerrors 5 \
-enum int $(INCLUDES) \
-O4,p \
$(if $(filter %EXIBios.c, $<),-O3,-O4),p \
-lang=c \
LIBEXI_A_LDFLAGS := \
@ -37,10 +39,11 @@ $(BUILD_DIR)/libs/dolphin/exi/%.o: libs/dolphin/exi/%.c $(BUILD_DIR)/libs/dolphi
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(FRANK_CC) $(LIBEXI_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(LIBEXI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
@$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@
ifndef DISABLE_DEPS
LIBEXI_A_D_FILES := $(LIBEXI_A_O_FILES:.o=.d)

View File

@ -58,6 +58,7 @@ LIBOS_A_CFLAGS := \
-fp hard \
-nodefaults \
-str reuse \
-inline auto \
-RTTI off \
-maxerrors 5 \
-enum int $(INCLUDES) \
@ -79,10 +80,11 @@ $(BUILD_DIR)/libs/dolphin/os/%.o: libs/dolphin/os/%.c $(BUILD_DIR)/libs/dolphin/
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(FRANK_CC) $(LIBOS_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(LIBOS_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
@$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@
ifndef DISABLE_DEPS
LIBOS_A_D_FILES := $(LIBOS_A_O_FILES:.o=.d)

View File

@ -5,6 +5,9 @@
#include "dolphin/os/OSCache.h"
#include "dol2asm.h"
#include "dolphin/base/PPCArch.h"
#include "dolphin/db/db.h"
#include "dolphin/os/OS.h"
#include "dolphin/os/OSError.h"
#include "dolphin/os/OSInterrupt.h"
@ -12,18 +15,6 @@
// External References:
//
void OSReport();
void PPCMfmsr();
void PPCMtmsr();
void PPCMfhid0();
void PPCMfl2cr();
void PPCMtl2cr();
void PPCHalt();
void PPCMfhid2();
void PPCMthid2();
void OSDumpContext();
void DBPrintf();
//
// Declarations:
//
@ -334,7 +325,7 @@ do_invalidate:
/* 8033B814-8033B838 336154 0024+00 1/1 0/0 0/0 .text LCStoreBlocks */
static asm void LCStoreBlocks(register void* destAddr, register void* srcAddr,
register u32 blockNum) {
register u32 blockNum){
// clang-format off
nofralloc
@ -349,8 +340,7 @@ static asm void LCStoreBlocks(register void* destAddr, register void* srcAddr,
blr
// clang-format on
}
/* 8033B838-8033B8E4 336178 00AC+00 0/0 0/0 3/3 .text LCStoreData */
} /* 8033B838-8033B8E4 336178 00AC+00 0/0 0/0 3/3 .text LCStoreData */
u32 LCStoreData(void* destAddr, void* srcAddr, u32 nBytes) {
u32 blocks = (nBytes + 31) / 32;
u32 ret = (blocks + 127) / 128;
@ -372,7 +362,7 @@ u32 LCStoreData(void* destAddr, void* srcAddr, u32 nBytes) {
}
/* 8033B8E4-8033B8F8 336224 0014+00 0/0 0/0 3/3 .text LCQueueWait */
asm void LCQueueWait(register u32 len){
asm void LCQueueWait(register u32 len) {
// clang-format off
nofralloc
@ -386,116 +376,98 @@ asm void LCQueueWait(register u32 len){
}
/* ############################################################################################## */
/* 803CF510-803CF53C 02C630 0029+03 3/3 0/0 0/0 .data @63 */
SECTION_DATA static char lit_63[] = ">>> L2 INVALIDATE : SHOULD NEVER HAPPEN\n";
static void L2Disable(void) {
__sync();
PPCMtl2cr(PPCMfl2cr() & ~0x80000000);
__sync();
}
/* 8033B8F8-8033B990 336238 0098+00 1/1 0/0 0/0 .text L2GlobalInvalidate */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void L2GlobalInvalidate(void) {
nofralloc
#include "asm/dolphin/os/OSCache/L2GlobalInvalidate.s"
void L2GlobalInvalidate(void) {
L2Disable();
PPCMtl2cr(PPCMfl2cr() | 0x00200000);
while (PPCMfl2cr() & 0x00000001u)
;
PPCMtl2cr(PPCMfl2cr() & ~0x00200000);
while (PPCMfl2cr() & 0x00000001u) {
DBPrintf(">>> L2 INVALIDATE : SHOULD NEVER HAPPEN\n");
}
}
#pragma pop
/* ############################################################################################## */
/* 803CF53C-803CF554 02C65C 0018+00 0/1 0/0 0/0 .data @84 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_84[] = "Machine check received\n";
#pragma pop
/* 803CF554-803CF570 02C674 001B+01 0/1 0/0 0/0 .data @85 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_85[] = "HID2 = 0x%x SRR1 = 0x%x\n";
#pragma pop
/* 803CF570-803CF5A0 02C690 0030+00 0/1 0/0 0/0 .data @86 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_86[] = "Machine check was not DMA/locked cache related\n";
#pragma pop
/* 803CF5A0-803CF5DC 02C6C0 003C+00 0/1 0/0 0/0 .data @87 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_87[] = "DMAErrorHandler(): An error occurred while processing DMA.\n";
#pragma pop
/* 803CF5DC-803CF614 02C6FC 0037+01 0/1 0/0 0/0 .data @88 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_88[] = "The following errors have been detected and cleared :\n";
#pragma pop
/* 803CF614-803CF654 02C734 003F+01 0/1 0/0 0/0 .data @89 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_89[] =
"\t- Requested a locked cache tag that was already in the cache\n";
#pragma pop
/* 803CF654-803CF680 02C774 0029+03 0/1 0/0 0/0 .data @90 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_90[] = "\t- DMA attempted to access normal cache\n";
#pragma pop
/* 803CF680-803CF6A0 02C7A0 001D+03 0/1 0/0 0/0 .data @91 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_91[] = "\t- DMA missed in data cache\n";
#pragma pop
/* 803CF6A0-803CF6BC 02C7C0 0019+03 0/1 0/0 0/0 .data @92 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_92[] = "\t- DMA queue overflowed\n";
#pragma pop
/* 8033B990-8033BAF0 3362D0 0160+00 1/1 0/0 0/0 .text DMAErrorHandler */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void DMAErrorHandler(s32 error, OSContext* context) {
nofralloc
#include "asm/dolphin/os/OSCache/DMAErrorHandler.s"
void DMAErrorHandler(u16 error, OSContext* context, ...) {
u32 hid2 = PPCMfhid2();
OSReport("Machine check received\n");
OSReport("HID2 = 0x%x SRR1 = 0x%x\n", hid2, context->srr1);
if (!(hid2 & (HID2_DCHERR | HID2_DNCERR | HID2_DCMERR | HID2_DQOERR)) ||
!(context->srr1 & SRR1_DMA_BIT)) {
OSReport("Machine check was not DMA/locked cache related\n");
OSDumpContext(context);
PPCHalt();
}
OSReport("DMAErrorHandler(): An error occurred while processing DMA.\n");
OSReport("The following errors have been detected and cleared :\n");
if (hid2 & HID2_DCHERR) {
OSReport("\t- Requested a locked cache tag that was already in the cache\n");
}
if (hid2 & HID2_DNCERR) {
OSReport("\t- DMA attempted to access normal cache\n");
}
if (hid2 & HID2_DCMERR) {
OSReport("\t- DMA missed in data cache\n");
}
if (hid2 & HID2_DQOERR) {
OSReport("\t- DMA queue overflowed\n");
}
// write hid2 back to clear the error bits
PPCMthid2(hid2);
}
#pragma pop
/* ############################################################################################## */
/* 803CF6BC-803CF6D8 02C7DC 0019+03 0/1 0/0 0/0 .data @104 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_104[] = "L1 i-caches initialized\n";
#pragma pop
/* 803CF6D8-803CF6F4 02C7F8 0019+03 0/1 0/0 0/0 .data @105 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_105[] = "L1 d-caches initialized\n";
#pragma pop
static void L2Init(void) {
u32 oldMSR;
oldMSR = PPCMfmsr();
__sync();
PPCMtmsr(MSR_IR | MSR_DR);
__sync();
L2Disable();
L2GlobalInvalidate();
PPCMtmsr(oldMSR);
}
/* 803CF6F4-803CF70C 02C814 0016+02 0/1 0/0 0/0 .data @106 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_106[] = "L2 cache initialized\n";
#pragma pop
/* 803CF70C-803CF740 02C82C 002E+06 0/1 0/0 0/0 .data @107 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_107[] = "Locked cache machine check handler installed\n";
#pragma pop
void L2Enable(void) {
PPCMtl2cr((PPCMfl2cr() | L2CR_L2E) & ~L2CR_L2I);
}
/* 8033BAF0-8033BBE4 336430 00F4+00 0/0 2/2 0/0 .text __OSCacheInit */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __OSCacheInit(void) {
nofralloc
#include "asm/dolphin/os/OSCache/__OSCacheInit.s"
void __OSCacheInit() {
if (!(PPCMfhid0() & HID0_ICE)) {
ICEnable();
DBPrintf("L1 i-caches initialized\n");
}
if (!(PPCMfhid0() & HID0_DCE)) {
DCEnable();
DBPrintf("L1 d-caches initialized\n");
}
if (!(PPCMfl2cr() & L2CR_L2E)) {
L2Init();
L2Enable();
DBPrintf("L2 cache initialized\n");
}
OSSetErrorHandler(OS_ERROR_MACHINE_CHECK, DMAErrorHandler);
DBPrintf("Locked cache machine check handler installed\n");
}
#pragma pop

View File

@ -6,8 +6,9 @@
#include "dolphin/os/OSError.h"
#include "dol2asm.h"
#include "dolphin/base/PPCArch.h"
#include "dolphin/os/OS.h"
#include "dolphin/dsp/dsp.h"
#include "dolphin/dvd/dvdlow.h"
#include "dolphin/os/OS.h"
OSThread* __OSCurrentThread : (OS_BASE_CACHED | 0x00E4);
OSThreadQueue __OSActiveThreadQueue : (OS_BASE_CACHED | 0x00DC);
@ -17,10 +18,9 @@ volatile OSContext* __OSFPUContext : (OS_BASE_CACHED | 0x00D8);
// External References:
//
extern u8 __OSLastInterruptSrr0[4];
extern u8 __OSLastInterrupt[2 + 6 /* padding */];
extern u8 __OSLastInterruptTime[4];
extern u8 data_80451684[4];
extern u32 __OSLastInterruptSrr0;
extern s16 __OSLastInterrupt[4];
extern OSTime __OSLastInterruptTime;
//
// Declarations:
@ -36,26 +36,82 @@ OSErrorHandler __OSErrorTable[17];
SECTION_SDATA extern u32 __OSFpscrEnableBits = FPSCR_ENABLE;
/* 8033C580-8033C798 336EC0 0218+00 0/0 4/4 0/0 .text OSSetErrorHandler */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler) {
nofralloc
#include "asm/dolphin/os/OSError/OSSetErrorHandler.s"
OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler) {
OSErrorHandler oldHandler;
BOOL enabled;
enabled = OSDisableInterrupts();
oldHandler = __OSErrorTable[error];
__OSErrorTable[error] = handler;
if (error == EXCEPTION_FLOATING_POINT_EXCEPTION) {
u32 msr;
u32 fpscr;
OSThread* thread;
msr = PPCMfmsr();
PPCMtmsr(msr | MSR_FP);
fpscr = PPCMffpscr();
if (handler) {
for (thread = __OSActiveThreadQueue.head; thread;
thread = thread->active_threads_link.next)
{
thread->context.srr1 |= MSR_FE0 | MSR_FE1;
if ((thread->context.state & OS_CONTEXT_STATE_FPSAVED) == 0) {
int i;
thread->context.state |= OS_CONTEXT_STATE_FPSAVED;
for (i = 0; i < 32; ++i) {
*(u64*)&thread->context.fpr[i] = (u64)0xffffffffffffffffLL;
*(u64*)&thread->context.ps[i] = (u64)0xffffffffffffffffLL;
}
thread->context.fpscr = FPSCR_NI;
}
thread->context.fpscr |= __OSFpscrEnableBits & FPSCR_ENABLE;
thread->context.fpscr &=
~(FPSCR_VXVC | FPSCR_VXIMZ | FPSCR_VXZDZ | FPSCR_VXIDI | FPSCR_VXISI |
FPSCR_VXSNAN | FPSCR_VXSOFT | FPSCR_VXSQRT | FPSCR_VXCVI | FPSCR_XX |
FPSCR_ZX | FPSCR_UX | FPSCR_OX | FPSCR_FX | FPSCR_FI);
}
fpscr |= __OSFpscrEnableBits & FPSCR_ENABLE;
msr |= MSR_FE0 | MSR_FE1;
} else {
for (thread = __OSActiveThreadQueue.head; thread;
thread = thread->active_threads_link.next)
{
thread->context.srr1 &= ~(MSR_FE0 | MSR_FE1);
thread->context.fpscr &= ~FPSCR_ENABLE;
thread->context.fpscr &=
~(FPSCR_VXVC | FPSCR_VXIMZ | FPSCR_VXZDZ | FPSCR_VXIDI | FPSCR_VXISI |
FPSCR_VXSNAN | FPSCR_VXSOFT | FPSCR_VXSQRT | FPSCR_VXCVI | FPSCR_XX |
FPSCR_ZX | FPSCR_UX | FPSCR_OX | FPSCR_FX | FPSCR_FI);
}
fpscr &= ~FPSCR_ENABLE;
msr &= ~(MSR_FE0 | MSR_FE1);
}
fpscr &= ~(FPSCR_VXVC | FPSCR_VXIMZ | FPSCR_VXZDZ | FPSCR_VXIDI | FPSCR_VXISI |
FPSCR_VXSNAN | FPSCR_VXSOFT | FPSCR_VXSQRT | FPSCR_VXCVI | FPSCR_XX | FPSCR_ZX |
FPSCR_UX | FPSCR_OX | FPSCR_FX | FPSCR_FI);
PPCMtfpscr(fpscr);
PPCMtmsr(msr);
}
OSRestoreInterrupts(enabled);
return oldHandler;
}
#pragma pop
/* ############################################################################################## */
/* 803CF918-803CF930 02CA38 0016+02 1/1 0/0 0/0 .data @13 */
SECTION_DATA static char lit_13[] = " in \"%s\" on line %d.\n";
SECTION_DATA static char lit_13[] = " in \"%s\" on line %d.\n";
/* 803CF930-803CF958 02CA50 0026+02 0/0 0/0 0/0 .data @14 */
// /* 803CF930-803CF958 02CA50 0026+02 0/0 0/0 0/0 .data @14 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_14[] = "\nAddress: Back Chain LR Save\n";
#pragma pop
/* 803CF958-803CF974 02CA78 001C+00 0/0 0/0 0/0 .data @15 */
// /* 803CF958-803CF974 02CA78 001C+00 0/0 0/0 0/0 .data @15 */
#pragma push
#pragma force_active on
SECTION_DATA static char lit_15[] = "0x%08x: 0x%08x 0x%08x\n";
@ -265,7 +321,7 @@ void __OSUnhandledException(__OSException exception, OSContext* context, u32 dsi
break;
}
OSReport("\nLast interrupt (%d): SRR0 = 0x%08x TB = 0x%016llx\n", __OSLastInterrupt,
OSReport("\nLast interrupt (%d): SRR0 = 0x%08x TB = 0x%016llx\n", __OSLastInterrupt[0],
__OSLastInterruptSrr0, __OSLastInterruptTime);
PPCHalt();

View File

@ -16,6 +16,7 @@ LIBSI_A_CFLAGS := \
-fp hard \
-nodefaults \
-str reuse \
-inline auto \
-RTTI off \
-maxerrors 5 \
-enum int $(INCLUDES) \
@ -37,10 +38,11 @@ $(BUILD_DIR)/libs/dolphin/si/%.o: libs/dolphin/si/%.c $(BUILD_DIR)/libs/dolphin/
@mkdir -p $(@D)
@echo building... $<
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
@$(FRANK_CC) $(LIBSI_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c
@$(DOLPHIN_LIB_CC) $(LIBSI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
@echo Frank is fixing $@
@$(PYTHON) $(FRANK) $@ $@ $@
@$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@
ifndef DISABLE_DEPS
LIBSI_A_D_FILES := $(LIBSI_A_O_FILES:.o=.d)

View File

@ -259,8 +259,6 @@ static asm void SIInterruptHandler(OSInterrupt interrupt, OSContext* context) {
#endif
/* 8034523C-803452D4 33FB7C 0098+00 2/2 0/0 0/0 .text SIEnablePollingInterrupt */
// lwz and mr swapped
#ifdef NONMATCHING
static BOOL SIEnablePollingInterrupt(BOOL enable) {
BOOL enabled;
BOOL rc;
@ -283,16 +281,6 @@ static BOOL SIEnablePollingInterrupt(BOOL enable) {
OSRestoreInterrupts(enabled);
return rc;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm BOOL SIEnablePollingInterrupt(BOOL enable) {
nofralloc
#include "asm/dolphin/si/SIBios/SIEnablePollingInterrupt.s"
}
#pragma pop
#endif
/* 803452D4-803453A0 33FC14 00CC+00 0/0 1/1 0/0 .text SIRegisterPollingHandler */
BOOL SIRegisterPollingHandler(OSInterruptHandler handler) {
@ -413,8 +401,6 @@ static BOOL __SITransfer(s32 chan, void* output, u32 outputBytes, void* input, u
}
/* 80345754-803457D0 340094 007C+00 1/1 1/1 0/0 .text SIGetStatus */
// lwz and mr swap
#ifdef NONMATCHING
u32 SIGetStatus(s32 chan) {
BOOL enabled;
u32 sr;
@ -432,16 +418,6 @@ u32 SIGetStatus(s32 chan) {
OSRestoreInterrupts(enabled);
return sr;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 SIGetStatus(s32 chan) {
nofralloc
#include "asm/dolphin/si/SIBios/SIGetStatus.s"
}
#pragma pop
#endif
/* 803457D0-803457E4 340110 0014+00 0/0 4/4 0/0 .text SISetCommand */
void SISetCommand(s32 chan, u32 command) {
@ -455,7 +431,6 @@ void SITransferCommands(void) {
/* 803457F4-80345860 340134 006C+00 0/0 1/1 0/0 .text SISetXY */
// needs compiler epilogue patch
#ifdef NONMATCHING
u32 SISetXY(u32 x, u32 y) {
u32 poll;
BOOL enabled;
@ -471,19 +446,8 @@ u32 SISetXY(u32 x, u32 y) {
OSRestoreInterrupts(enabled);
return poll;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 SISetXY(u32 x, u32 y) {
nofralloc
#include "asm/dolphin/si/SIBios/SISetXY.s"
}
#pragma pop
#endif
/* 80345860-803458FC 3401A0 009C+00 0/0 3/3 0/0 .text SIEnablePolling */
#ifdef NONMATCHING
u32 SIEnablePolling(u32 poll) {
BOOL enabled;
u32 en;
@ -515,16 +479,6 @@ u32 SIEnablePolling(u32 poll) {
return poll;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 SIEnablePolling(u32 poll) {
nofralloc
#include "asm/dolphin/si/SIBios/SIEnablePolling.s"
}
#pragma pop
#endif
/* 803458FC-80345968 34023C 006C+00 0/0 6/6 0/0 .text SIDisablePolling */
u32 SIDisablePolling(u32 poll) {
@ -549,7 +503,6 @@ u32 SIDisablePolling(u32 poll) {
}
/* 80345968-80345A3C 3402A8 00D4+00 1/1 0/0 0/0 .text SIGetResponseRaw */
#ifdef NONMATCHING
static BOOL SIGetResponseRaw(s32 chan) {
u32 sr;
@ -562,19 +515,8 @@ static BOOL SIGetResponseRaw(s32 chan) {
}
return FALSE;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm BOOL SIGetResponseRaw(s32 chan) {
nofralloc
#include "asm/dolphin/si/SIBios/SIGetResponseRaw.s"
}
#pragma pop
#endif
/* 80345A3C-80345B00 34037C 00C4+00 0/0 4/4 0/0 .text SIGetResponse */
#ifdef NONMATCHING
BOOL SIGetResponse(s32 chan, void* data) {
BOOL rc;
BOOL enabled;
@ -590,16 +532,6 @@ BOOL SIGetResponse(s32 chan, void* data) {
OSRestoreInterrupts(enabled);
return rc;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL SIGetResponse(s32 chan, void* data) {
nofralloc
#include "asm/dolphin/si/SIBios/SIGetResponse.s"
}
#pragma pop
#endif
/* 80345B00-80345B8C 340440 008C+00 1/1 0/0 0/0 .text AlarmHandler */
static void AlarmHandler(OSAlarm* alarm, OSContext* context) {
@ -664,15 +596,85 @@ static u8 cmdTypeAndStatus_372[4];
extern u32 __PADFixBits;
u32 __PADFixBits;
/* 80345CF8-80345F90 340638 0298+00 2/2 0/0 0/0 .text GetTypeCallback */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void GetTypeCallback(s32 chan, u32 error, OSContext* context) {
nofralloc
#include "asm/dolphin/si/SIBios/GetTypeCallback.s"
static inline void CallTypeAndStatusCallback(s32 chan, u32 type) {
SITypeAndStatusCallback callback;
int i;
for (i = 0; i < 4; ++i) {
callback = TypeCallback[chan][i];
if (callback) {
TypeCallback[chan][i] = 0;
callback(chan, type);
}
}
}
/* 80345CF8-80345F90 340638 0298+00 2/2 0/0 0/0 .text GetTypeCallback */
static void GetTypeCallback(s32 chan, u32 error, OSContext* context) {
static u32 cmdFixDevice[SI_MAX_CHAN];
u32 type;
u32 chanBit;
BOOL fix;
u32 id;
Type[chan] &= ~SI_ERROR_BUSY;
Type[chan] |= error;
TypeTime[chan] = __OSGetSystemTime();
type = Type[chan];
chanBit = SI_CHAN0_BIT >> chan;
fix = (BOOL)(__PADFixBits & chanBit);
__PADFixBits &= ~chanBit;
if ((error &
(SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION)) ||
(type & SI_TYPE_MASK) != SI_TYPE_DOLPHIN || !(type & SI_GC_WIRELESS) ||
(type & SI_WIRELESS_IR))
{
OSSetWirelessID(chan, 0);
CallTypeAndStatusCallback(chan, Type[chan]);
return;
}
id = (u32)(OSGetWirelessID(chan) << 8);
if (fix && (id & SI_WIRELESS_FIX_ID)) {
cmdFixDevice[chan] = 0x4Eu << 24 | (id & SI_WIRELESS_TYPE_ID) | SI_WIRELESS_FIX_ID;
Type[chan] = SI_ERROR_BUSY;
SITransfer(chan, &cmdFixDevice[chan], 3, &Type[chan], 3, GetTypeCallback, 0);
return;
}
if (type & SI_WIRELESS_FIX_ID) {
if ((id & SI_WIRELESS_TYPE_ID) != (type & SI_WIRELESS_TYPE_ID)) {
if (!(id & SI_WIRELESS_FIX_ID)) {
id = type & SI_WIRELESS_TYPE_ID;
id |= SI_WIRELESS_FIX_ID;
OSSetWirelessID(chan, (u16)((id >> 8) & 0xffff));
}
cmdFixDevice[chan] = 0x4E << 24 | id;
Type[chan] = SI_ERROR_BUSY;
SITransfer(chan, &cmdFixDevice[chan], 3, &Type[chan], 3, GetTypeCallback, 0);
return;
}
} else if (type & SI_WIRELESS_RECEIVED) {
id = type & SI_WIRELESS_TYPE_ID;
id |= SI_WIRELESS_FIX_ID;
OSSetWirelessID(chan, (u16)((id >> 8) & 0xffff));
cmdFixDevice[chan] = 0x4E << 24 | id;
Type[chan] = SI_ERROR_BUSY;
SITransfer(chan, &cmdFixDevice[chan], 3, &Type[chan], 3, GetTypeCallback, 0);
return;
} else {
OSSetWirelessID(chan, 0);
}
CallTypeAndStatusCallback(chan, Type[chan]);
}
#pragma pop
/* 80345F90-80346154 3408D0 01C4+00 2/2 3/3 0/0 .text SIGetType */
#ifdef NONMATCHING
@ -722,8 +724,6 @@ asm u32 SIGetType(s32 chan) {
#endif
/* 80346154-80346290 340A94 013C+00 0/0 6/6 0/0 .text SIGetTypeAsync */
// needs compiler epilogue patch
#ifdef NONMATCHING
u32 SIGetTypeAsync(s32 chan, SITypeAndStatusCallback callback) {
BOOL enabled;
u32 type;
@ -748,16 +748,6 @@ u32 SIGetTypeAsync(s32 chan, SITypeAndStatusCallback callback) {
OSRestoreInterrupts(enabled);
return type;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 SIGetTypeAsync(s32 chan, SITypeAndStatusCallback callback) {
nofralloc
#include "asm/dolphin/si/SIBios/SIGetTypeAsync.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 803D1220-803D122C 02E340 000C+00 0/0 0/0 0/0 .data @457 */
@ -827,9 +817,3 @@ SECTION_DATA static char lit_467[] = "Keyboard";
#pragma force_active on
SECTION_DATA static char lit_468[] = "Steering";
#pragma pop
/* 8044C820-8044C830 079540 0010+00 0/0 0/0 0/0 .bss cmdFixDevice$327 */
#pragma push
#pragma force_active on
static u8 cmdFixDevice[16];
#pragma pop