mirror of https://github.com/zeldaret/tp.git
lib/TRK_MINNOW_DOLPHIN work (#341)
This commit is contained in:
parent
eccb693762
commit
df30e3d195
|
|
@ -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 | 26.866903% | 966280 | 3596544
|
||||
.text | 26.904050% | 967616 | 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 | 34.576708% | 1390216 | 4020672
|
||||
Total | 34.609936% | 1391552 | 4020672
|
||||
|
||||
## Total
|
||||
|
||||
Section | Percentage | Decompiled (bytes) | Total (bytes)
|
||||
---|---|---|---
|
||||
main.dol | 34.576708% | 1390216 | 4020672
|
||||
main.dol | 34.609936% | 1391552 | 4020672
|
||||
RELs | 33.600166% | 3864128 | 11500324
|
||||
Total | 33.853137% | 5254344 | 15520996
|
||||
Total | 33.861744% | 5255680 | 15520996
|
||||
|
||||
## RELs
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
lbl_8037235C:
|
||||
/* 8037235C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80372360 7C 08 02 A6 */ mflr r0
|
||||
/* 80372364 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80372368 48 00 09 99 */ bl EXI2_EnableInterrupts
|
||||
/* 8037236C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80372370 38 60 00 00 */ li r3, 0
|
||||
/* 80372374 7C 08 03 A6 */ mtlr r0
|
||||
/* 80372378 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8037237C 4E 80 00 20 */ blr
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
lbl_803725EC:
|
||||
/* 803725EC 80 0D 94 40 */ lwz r0, gIsInitialized(r13)
|
||||
/* 803725F0 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 803725F4 41 82 00 0C */ beq lbl_80372600
|
||||
/* 803725F8 38 60 D8 EB */ li r3, -10005
|
||||
/* 803725FC 4E 80 00 20 */ blr
|
||||
lbl_80372600:
|
||||
/* 80372600 38 00 00 01 */ li r0, 1
|
||||
/* 80372604 38 60 00 00 */ li r3, 0
|
||||
/* 80372608 90 0D 94 40 */ stw r0, gIsInitialized(r13)
|
||||
/* 8037260C 4E 80 00 20 */ blr
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
lbl_803723F0:
|
||||
/* 803723F0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 803723F4 7C 08 02 A6 */ mflr r0
|
||||
/* 803723F8 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 803723FC 48 00 09 21 */ bl EXI2_Reserve
|
||||
/* 80372400 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80372404 38 60 00 00 */ li r3, 0
|
||||
/* 80372408 7C 08 03 A6 */ mtlr r0
|
||||
/* 8037240C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80372410 4E 80 00 20 */ blr
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
lbl_80372414:
|
||||
/* 80372414 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80372418 7C 08 02 A6 */ mflr r0
|
||||
/* 8037241C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80372420 48 00 09 01 */ bl EXI2_Unreserve
|
||||
/* 80372424 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80372428 38 60 00 00 */ li r3, 0
|
||||
/* 8037242C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80372430 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80372434 4E 80 00 20 */ blr
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
lbl_80372908:
|
||||
/* 80372908 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8037290C 7C 08 02 A6 */ mflr r0
|
||||
/* 80372910 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80372914 48 00 07 A9 */ bl DBInitInterrupts
|
||||
/* 80372918 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8037291C 38 60 00 00 */ li r3, 0
|
||||
/* 80372920 7C 08 03 A6 */ mtlr r0
|
||||
/* 80372924 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80372928 4E 80 00 20 */ blr
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
lbl_80372BA0:
|
||||
/* 80372BA0 80 0D 94 48 */ lwz r0, gIsInitialized(r13)
|
||||
/* 80372BA4 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80372BA8 41 82 00 0C */ beq lbl_80372BB4
|
||||
/* 80372BAC 38 60 D8 EB */ li r3, -10005
|
||||
/* 80372BB0 4E 80 00 20 */ blr
|
||||
lbl_80372BB4:
|
||||
/* 80372BB4 38 00 00 01 */ li r0, 1
|
||||
/* 80372BB8 38 60 00 00 */ li r3, 0
|
||||
/* 80372BBC 90 0D 94 48 */ stw r0, gIsInitialized(r13)
|
||||
/* 80372BC0 4E 80 00 20 */ blr
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
lbl_8037299C:
|
||||
/* 8037299C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 803729A0 7C 08 02 A6 */ mflr r0
|
||||
/* 803729A4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 803729A8 48 00 03 89 */ bl DBOpen
|
||||
/* 803729AC 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 803729B0 38 60 00 00 */ li r3, 0
|
||||
/* 803729B4 7C 08 03 A6 */ mtlr r0
|
||||
/* 803729B8 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 803729BC 4E 80 00 20 */ blr
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
lbl_803729C0:
|
||||
/* 803729C0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 803729C4 7C 08 02 A6 */ mflr r0
|
||||
/* 803729C8 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 803729CC 48 00 03 61 */ bl DBClose
|
||||
/* 803729D0 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 803729D4 38 60 00 00 */ li r3, 0
|
||||
/* 803729D8 7C 08 03 A6 */ mtlr r0
|
||||
/* 803729DC 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 803729E0 4E 80 00 20 */ blr
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
lbl_8036ECCC:
|
||||
/* 8036ECCC 3C 60 80 45 */ lis r3, IsTRKConnected@ha /* 0x8044F288@ha */
|
||||
/* 8036ECD0 38 63 F2 88 */ addi r3, r3, IsTRKConnected@l /* 0x8044F288@l */
|
||||
/* 8036ECD4 80 63 00 00 */ lwz r3, 0(r3)
|
||||
/* 8036ECD8 4E 80 00 20 */ blr
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
lbl_8036ECC0:
|
||||
/* 8036ECC0 3C 80 80 45 */ lis r4, IsTRKConnected@ha /* 0x8044F288@ha */
|
||||
/* 8036ECC4 90 64 F2 88 */ stw r3, IsTRKConnected@l(r4) /* 0x8044F288@l */
|
||||
/* 8036ECC8 4E 80 00 20 */ blr
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
lbl_8036CC18:
|
||||
/* 8036CC18 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8036CC1C 7C 08 02 A6 */ mflr r0
|
||||
/* 8036CC20 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 8036CC24 80 63 00 08 */ lwz r3, 8(r3)
|
||||
/* 8036CC28 48 00 0A 65 */ bl TRKReleaseBuffer
|
||||
/* 8036CC2C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8036CC30 7C 08 03 A6 */ mtlr r0
|
||||
/* 8036CC34 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8036CC38 4E 80 00 20 */ blr
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
lbl_8036CDE8:
|
||||
/* 8036CDE8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8036CDEC 7C 08 02 A6 */ mflr r0
|
||||
/* 8036CDF0 3C 60 80 45 */ lis r3, gTRKEventQueue@ha /* 0x8044D890@ha */
|
||||
/* 8036CDF4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 8036CDF8 38 63 D8 90 */ addi r3, r3, gTRKEventQueue@l /* 0x8044D890@l */
|
||||
/* 8036CDFC 48 00 26 AD */ bl TRKInitializeMutex
|
||||
/* 8036CE00 3C 60 80 45 */ lis r3, gTRKEventQueue@ha /* 0x8044D890@ha */
|
||||
/* 8036CE04 38 63 D8 90 */ addi r3, r3, gTRKEventQueue@l /* 0x8044D890@l */
|
||||
/* 8036CE08 48 00 26 99 */ bl TRKAcquireMutex
|
||||
/* 8036CE0C 3C 60 80 45 */ lis r3, gTRKEventQueue@ha /* 0x8044D890@ha */
|
||||
/* 8036CE10 38 80 00 00 */ li r4, 0
|
||||
/* 8036CE14 38 63 D8 90 */ addi r3, r3, gTRKEventQueue@l /* 0x8044D890@l */
|
||||
/* 8036CE18 38 00 01 00 */ li r0, 0x100
|
||||
/* 8036CE1C 90 83 00 04 */ stw r4, 4(r3)
|
||||
/* 8036CE20 90 83 00 08 */ stw r4, 8(r3)
|
||||
/* 8036CE24 90 03 00 24 */ stw r0, 0x24(r3)
|
||||
/* 8036CE28 48 00 26 71 */ bl TRKReleaseMutex
|
||||
/* 8036CE2C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8036CE30 38 60 00 00 */ li r3, 0
|
||||
/* 8036CE34 7C 08 03 A6 */ mtlr r0
|
||||
/* 8036CE38 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8036CE3C 4E 80 00 20 */ blr
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
lbl_8036CE68:
|
||||
/* 8036CE68 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8036CE6C 7C 08 02 A6 */ mflr r0
|
||||
/* 8036CE70 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 8036CE74 48 00 09 E5 */ bl TRKTerminateSerialHandler
|
||||
/* 8036CE78 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8036CE7C 38 60 00 00 */ li r3, 0
|
||||
/* 8036CE80 7C 08 03 A6 */ mtlr r0
|
||||
/* 8036CE84 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8036CE88 4E 80 00 20 */ blr
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
lbl_80371B7C:
|
||||
/* 80371B7C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80371B80 7C 08 02 A6 */ mflr r0
|
||||
/* 80371B84 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80371B88 48 00 02 89 */ bl EnableEXI2Interrupts
|
||||
/* 80371B8C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80371B90 7C 08 03 A6 */ mtlr r0
|
||||
/* 80371B94 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80371B98 4E 80 00 20 */ blr
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
lbl_803719AC:
|
||||
/* 803719AC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 803719B0 7C 08 02 A6 */ mflr r0
|
||||
/* 803719B4 3C 60 80 45 */ lis r3, gTRKState@ha /* 0x8044F294@ha */
|
||||
/* 803719B8 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 803719BC 38 00 00 01 */ li r0, 1
|
||||
/* 803719C0 38 63 F2 94 */ addi r3, r3, gTRKState@l /* 0x8044F294@l */
|
||||
/* 803719C4 90 03 00 98 */ stw r0, 0x98(r3)
|
||||
/* 803719C8 4B FF DC 71 */ bl __TRK_get_MSR
|
||||
/* 803719CC 3C A0 80 45 */ lis r5, gTRKState@ha /* 0x8044F294@ha */
|
||||
/* 803719D0 3C 80 80 45 */ lis r4, lc_base@ha /* 0x8044F810@ha */
|
||||
/* 803719D4 38 A5 F2 94 */ addi r5, r5, gTRKState@l /* 0x8044F294@l */
|
||||
/* 803719D8 3C 00 E0 00 */ lis r0, 0xe000
|
||||
/* 803719DC 90 65 00 8C */ stw r3, 0x8c(r5)
|
||||
/* 803719E0 38 60 00 00 */ li r3, 0
|
||||
/* 803719E4 90 04 F8 10 */ stw r0, lc_base@l(r4) /* 0x8044F810@l */
|
||||
/* 803719E8 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 803719EC 7C 08 03 A6 */ mtlr r0
|
||||
/* 803719F0 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 803719F4 4E 80 00 20 */ blr
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
lbl_80371B24:
|
||||
/* 80371B24 3C 80 80 45 */ lis r4, lc_base@ha /* 0x8044F810@ha */
|
||||
/* 80371B28 38 84 F8 10 */ addi r4, r4, lc_base@l /* 0x8044F810@l */
|
||||
/* 80371B2C 80 84 00 00 */ lwz r4, 0(r4)
|
||||
/* 80371B30 7C 03 20 40 */ cmplw r3, r4
|
||||
/* 80371B34 41 80 00 24 */ blt lbl_80371B58
|
||||
/* 80371B38 38 04 40 00 */ addi r0, r4, 0x4000
|
||||
/* 80371B3C 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80371B40 40 80 00 18 */ bge lbl_80371B58
|
||||
/* 80371B44 3C 80 80 45 */ lis r4, gTRKCPUState@ha /* 0x8044F338@ha */
|
||||
/* 80371B48 38 84 F3 38 */ addi r4, r4, gTRKCPUState@l /* 0x8044F338@l */
|
||||
/* 80371B4C 80 04 02 38 */ lwz r0, 0x238(r4)
|
||||
/* 80371B50 54 00 07 BF */ clrlwi. r0, r0, 0x1e
|
||||
/* 80371B54 4C 82 00 20 */ bnelr
|
||||
lbl_80371B58:
|
||||
/* 80371B58 3C 00 7E 00 */ lis r0, 0x7e00
|
||||
/* 80371B5C 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80371B60 41 80 00 10 */ blt lbl_80371B70
|
||||
/* 80371B64 3C 00 80 00 */ lis r0, 0x8000
|
||||
/* 80371B68 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80371B6C 4C 81 00 20 */ blelr
|
||||
lbl_80371B70:
|
||||
/* 80371B70 54 60 00 BE */ clrlwi r0, r3, 2
|
||||
/* 80371B74 64 03 80 00 */ oris r3, r0, 0x8000
|
||||
/* 80371B78 4E 80 00 20 */ blr
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
lbl_80372900:
|
||||
/* 80372900 80 63 00 10 */ lwz r3, 0x10(r3)
|
||||
/* 80372904 4E 80 00 20 */ blr
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
lbl_803728B0:
|
||||
/* 803728B0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 803728B4 7C 08 02 A6 */ mflr r0
|
||||
/* 803728B8 7C 66 1B 78 */ mr r6, r3
|
||||
/* 803728BC 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 803728C0 38 00 00 00 */ li r0, 0
|
||||
/* 803728C4 90 83 00 08 */ stw r4, 8(r3)
|
||||
/* 803728C8 38 66 00 18 */ addi r3, r6, 0x18
|
||||
/* 803728CC 90 A6 00 0C */ stw r5, 0xc(r6)
|
||||
/* 803728D0 80 86 00 08 */ lwz r4, 8(r6)
|
||||
/* 803728D4 90 86 00 00 */ stw r4, 0(r6)
|
||||
/* 803728D8 80 86 00 08 */ lwz r4, 8(r6)
|
||||
/* 803728DC 90 86 00 04 */ stw r4, 4(r6)
|
||||
/* 803728E0 90 06 00 10 */ stw r0, 0x10(r6)
|
||||
/* 803728E4 80 06 00 0C */ lwz r0, 0xc(r6)
|
||||
/* 803728E8 90 06 00 14 */ stw r0, 0x14(r6)
|
||||
/* 803728EC 48 00 04 0D */ bl MWInitializeCriticalSection
|
||||
/* 803728F0 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 803728F4 7C 08 03 A6 */ mtlr r0
|
||||
/* 803728F8 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 803728FC 4E 80 00 20 */ blr
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
lbl_803726A0:
|
||||
/* 803726A0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 803726A4 7C 08 02 A6 */ mflr r0
|
||||
/* 803726A8 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 803726AC 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 803726B0 7C BF 2B 78 */ mr r31, r5
|
||||
/* 803726B4 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 803726B8 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 803726BC 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 803726C0 93 81 00 10 */ stw r28, 0x10(r1)
|
||||
/* 803726C4 7C 9C 23 78 */ mr r28, r4
|
||||
/* 803726C8 80 03 00 10 */ lwz r0, 0x10(r3)
|
||||
/* 803726CC 7C 1F 00 40 */ cmplw r31, r0
|
||||
/* 803726D0 40 81 00 0C */ ble lbl_803726DC
|
||||
/* 803726D4 38 60 FF FF */ li r3, -1
|
||||
/* 803726D8 48 00 00 B0 */ b lbl_80372788
|
||||
lbl_803726DC:
|
||||
/* 803726DC 38 7E 00 18 */ addi r3, r30, 0x18
|
||||
/* 803726E0 48 00 05 E9 */ bl MWEnterCriticalSection
|
||||
/* 803726E4 80 7E 00 08 */ lwz r3, 8(r30)
|
||||
/* 803726E8 80 9E 00 00 */ lwz r4, 0(r30)
|
||||
/* 803726EC 80 1E 00 0C */ lwz r0, 0xc(r30)
|
||||
/* 803726F0 7C 63 20 50 */ subf r3, r3, r4
|
||||
/* 803726F4 7F A3 00 50 */ subf r29, r3, r0
|
||||
/* 803726F8 7C 1F E8 40 */ cmplw r31, r29
|
||||
/* 803726FC 40 80 00 20 */ bge lbl_8037271C
|
||||
/* 80372700 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80372704 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80372708 4B C9 0E 39 */ bl memcpy
|
||||
/* 8037270C 80 1E 00 00 */ lwz r0, 0(r30)
|
||||
/* 80372710 7C 00 FA 14 */ add r0, r0, r31
|
||||
/* 80372714 90 1E 00 00 */ stw r0, 0(r30)
|
||||
/* 80372718 48 00 00 30 */ b lbl_80372748
|
||||
lbl_8037271C:
|
||||
/* 8037271C 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80372720 7F A5 EB 78 */ mr r5, r29
|
||||
/* 80372724 4B C9 0E 1D */ bl memcpy
|
||||
/* 80372728 80 9E 00 08 */ lwz r4, 8(r30)
|
||||
/* 8037272C 7C 7C EA 14 */ add r3, r28, r29
|
||||
/* 80372730 7C BD F8 50 */ subf r5, r29, r31
|
||||
/* 80372734 4B C9 0E 0D */ bl memcpy
|
||||
/* 80372738 80 1E 00 08 */ lwz r0, 8(r30)
|
||||
/* 8037273C 7C 00 FA 14 */ add r0, r0, r31
|
||||
/* 80372740 7C 1D 00 50 */ subf r0, r29, r0
|
||||
/* 80372744 90 1E 00 00 */ stw r0, 0(r30)
|
||||
lbl_80372748:
|
||||
/* 80372748 80 9E 00 08 */ lwz r4, 8(r30)
|
||||
/* 8037274C 80 1E 00 00 */ lwz r0, 0(r30)
|
||||
/* 80372750 80 7E 00 0C */ lwz r3, 0xc(r30)
|
||||
/* 80372754 7C 04 00 50 */ subf r0, r4, r0
|
||||
/* 80372758 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 8037275C 40 82 00 08 */ bne lbl_80372764
|
||||
/* 80372760 90 9E 00 00 */ stw r4, 0(r30)
|
||||
lbl_80372764:
|
||||
/* 80372764 80 1E 00 14 */ lwz r0, 0x14(r30)
|
||||
/* 80372768 38 7E 00 18 */ addi r3, r30, 0x18
|
||||
/* 8037276C 7C 00 FA 14 */ add r0, r0, r31
|
||||
/* 80372770 90 1E 00 14 */ stw r0, 0x14(r30)
|
||||
/* 80372774 80 1E 00 10 */ lwz r0, 0x10(r30)
|
||||
/* 80372778 7C 1F 00 50 */ subf r0, r31, r0
|
||||
/* 8037277C 90 1E 00 10 */ stw r0, 0x10(r30)
|
||||
/* 80372780 48 00 05 25 */ bl MWExitCriticalSection
|
||||
/* 80372784 38 60 00 00 */ li r3, 0
|
||||
lbl_80372788:
|
||||
/* 80372788 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8037278C 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 80372790 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 80372794 83 A1 00 14 */ lwz r29, 0x14(r1)
|
||||
/* 80372798 83 81 00 10 */ lwz r28, 0x10(r1)
|
||||
/* 8037279C 7C 08 03 A6 */ mtlr r0
|
||||
/* 803727A0 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 803727A4 4E 80 00 20 */ blr
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
lbl_803727A8:
|
||||
/* 803727A8 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 803727AC 7C 08 02 A6 */ mflr r0
|
||||
/* 803727B0 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 803727B4 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 803727B8 7C BF 2B 78 */ mr r31, r5
|
||||
/* 803727BC 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 803727C0 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 803727C4 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 803727C8 93 81 00 10 */ stw r28, 0x10(r1)
|
||||
/* 803727CC 7C 9C 23 78 */ mr r28, r4
|
||||
/* 803727D0 80 03 00 14 */ lwz r0, 0x14(r3)
|
||||
/* 803727D4 7C 1F 00 40 */ cmplw r31, r0
|
||||
/* 803727D8 40 81 00 0C */ ble lbl_803727E4
|
||||
/* 803727DC 38 60 FF FF */ li r3, -1
|
||||
/* 803727E0 48 00 00 B0 */ b lbl_80372890
|
||||
lbl_803727E4:
|
||||
/* 803727E4 38 7E 00 18 */ addi r3, r30, 0x18
|
||||
/* 803727E8 48 00 04 E1 */ bl MWEnterCriticalSection
|
||||
/* 803727EC 80 9E 00 08 */ lwz r4, 8(r30)
|
||||
/* 803727F0 80 7E 00 04 */ lwz r3, 4(r30)
|
||||
/* 803727F4 80 1E 00 0C */ lwz r0, 0xc(r30)
|
||||
/* 803727F8 7C 84 18 50 */ subf r4, r4, r3
|
||||
/* 803727FC 7F A4 00 50 */ subf r29, r4, r0
|
||||
/* 80372800 7C 1D F8 40 */ cmplw r29, r31
|
||||
/* 80372804 41 80 00 20 */ blt lbl_80372824
|
||||
/* 80372808 7F 84 E3 78 */ mr r4, r28
|
||||
/* 8037280C 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80372810 4B C9 0D 31 */ bl memcpy
|
||||
/* 80372814 80 1E 00 04 */ lwz r0, 4(r30)
|
||||
/* 80372818 7C 00 FA 14 */ add r0, r0, r31
|
||||
/* 8037281C 90 1E 00 04 */ stw r0, 4(r30)
|
||||
/* 80372820 48 00 00 30 */ b lbl_80372850
|
||||
lbl_80372824:
|
||||
/* 80372824 7F 84 E3 78 */ mr r4, r28
|
||||
/* 80372828 7F A5 EB 78 */ mr r5, r29
|
||||
/* 8037282C 4B C9 0D 15 */ bl memcpy
|
||||
/* 80372830 80 7E 00 08 */ lwz r3, 8(r30)
|
||||
/* 80372834 7C 9C EA 14 */ add r4, r28, r29
|
||||
/* 80372838 7C BD F8 50 */ subf r5, r29, r31
|
||||
/* 8037283C 4B C9 0D 05 */ bl memcpy
|
||||
/* 80372840 80 1E 00 08 */ lwz r0, 8(r30)
|
||||
/* 80372844 7C 00 FA 14 */ add r0, r0, r31
|
||||
/* 80372848 7C 1D 00 50 */ subf r0, r29, r0
|
||||
/* 8037284C 90 1E 00 04 */ stw r0, 4(r30)
|
||||
lbl_80372850:
|
||||
/* 80372850 80 9E 00 08 */ lwz r4, 8(r30)
|
||||
/* 80372854 80 1E 00 04 */ lwz r0, 4(r30)
|
||||
/* 80372858 80 7E 00 0C */ lwz r3, 0xc(r30)
|
||||
/* 8037285C 7C 04 00 50 */ subf r0, r4, r0
|
||||
/* 80372860 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80372864 40 82 00 08 */ bne lbl_8037286C
|
||||
/* 80372868 90 9E 00 04 */ stw r4, 4(r30)
|
||||
lbl_8037286C:
|
||||
/* 8037286C 80 1E 00 14 */ lwz r0, 0x14(r30)
|
||||
/* 80372870 38 7E 00 18 */ addi r3, r30, 0x18
|
||||
/* 80372874 7C 1F 00 50 */ subf r0, r31, r0
|
||||
/* 80372878 90 1E 00 14 */ stw r0, 0x14(r30)
|
||||
/* 8037287C 80 1E 00 10 */ lwz r0, 0x10(r30)
|
||||
/* 80372880 7C 00 FA 14 */ add r0, r0, r31
|
||||
/* 80372884 90 1E 00 10 */ stw r0, 0x10(r30)
|
||||
/* 80372888 48 00 04 1D */ bl MWExitCriticalSection
|
||||
/* 8037288C 38 60 00 00 */ li r3, 0
|
||||
lbl_80372890:
|
||||
/* 80372890 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80372894 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 80372898 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 8037289C 83 A1 00 14 */ lwz r29, 0x14(r1)
|
||||
/* 803728A0 83 81 00 10 */ lwz r28, 0x10(r1)
|
||||
/* 803728A4 7C 08 03 A6 */ mtlr r0
|
||||
/* 803728A8 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 803728AC 4E 80 00 20 */ blr
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
lbl_80372CC8:
|
||||
/* 80372CC8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80372CCC 7C 08 02 A6 */ mflr r0
|
||||
/* 80372CD0 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80372CD4 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80372CD8 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80372CDC 4B FC AA 19 */ bl OSDisableInterrupts
|
||||
/* 80372CE0 90 7F 00 00 */ stw r3, 0(r31)
|
||||
/* 80372CE4 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80372CE8 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80372CEC 7C 08 03 A6 */ mtlr r0
|
||||
/* 80372CF0 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80372CF4 4E 80 00 20 */ blr
|
||||
|
|
@ -3,4 +3,8 @@
|
|||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
u8 TRKReleaseMutex();
|
||||
u8 TRKAcquireMutex();
|
||||
u8 TRKInitializeMutex();
|
||||
|
||||
#endif /* METROTRK_PORTABLE_MUTEX_TRK_H */
|
||||
|
|
|
|||
|
|
@ -3,4 +3,7 @@
|
|||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
u8 GetUseSerialIO();
|
||||
void SetUseSerialIO(u8);
|
||||
|
||||
#endif /* OS_DOLPHIN_TARGET_OPTIONS_H */
|
||||
|
|
|
|||
|
|
@ -3,4 +3,19 @@
|
|||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
typedef struct CircleBuffer {
|
||||
int field_0x0;
|
||||
int field_0x4;
|
||||
int field_0x8;
|
||||
u32 field_0xc;
|
||||
s32 readBuf;
|
||||
u32 field_0x14;
|
||||
u32 criticalSection;
|
||||
} CircleBuffer;
|
||||
|
||||
s32 CircleBufferReadBytes(CircleBuffer*, u32, u32);
|
||||
s32 CircleBufferWriteBytes(CircleBuffer* buf, s32 param_2, u32 param_3);
|
||||
void CircleBufferInitialize(CircleBuffer* buf, s32 param_2, s32 param_3);
|
||||
s32 CBGetBytesAvailableForRead(CircleBuffer* buf);
|
||||
|
||||
#endif /* UTILS_COMMON_CIRCLEBUFFER_H */
|
||||
|
|
|
|||
|
|
@ -3,4 +3,8 @@
|
|||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
void MWExitCriticalSection(u32* section);
|
||||
void MWEnterCriticalSection(u32* section);
|
||||
void MWInitializeCriticalSection();
|
||||
|
||||
#endif /* UTILS_GC_MWCRITICALSECTION_GC_H */
|
||||
|
|
|
|||
|
|
@ -3,4 +3,13 @@
|
|||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
void EXI2_Init(void);
|
||||
void EXI2_EnableInterrupts(void);
|
||||
u8 EXI2_Poll(void);
|
||||
u8 EXI2_ReadN(void*, u32);
|
||||
u8 EXI2_WriteN(void*, u32);
|
||||
void EXI2_Reserve(void);
|
||||
void EXI2_Unreserve(void);
|
||||
u8 AMC_IsStub(void);
|
||||
|
||||
#endif /* AMCEXI2STUBS_H */
|
||||
|
|
|
|||
|
|
@ -4,6 +4,9 @@
|
|||
//
|
||||
|
||||
#include "TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main.h"
|
||||
#include "TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer.h"
|
||||
#include "TRK_MINNOW_DOLPHIN/utils/common/MWTrace.h"
|
||||
#include "amcstubs/AmcExi2Stubs.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
|
@ -11,34 +14,17 @@
|
|||
// Forward References:
|
||||
//
|
||||
|
||||
void ddh_cc_initinterrupts();
|
||||
int ddh_cc_initinterrupts();
|
||||
void ddh_cc_peek();
|
||||
void ddh_cc_post_stop();
|
||||
void ddh_cc_pre_continue();
|
||||
int ddh_cc_post_stop();
|
||||
int ddh_cc_pre_continue();
|
||||
void ddh_cc_write();
|
||||
void ddh_cc_read();
|
||||
u8 ddh_cc_close();
|
||||
void ddh_cc_open();
|
||||
s32 ddh_cc_open();
|
||||
u8 ddh_cc_shutdown();
|
||||
void ddh_cc_initialize();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
void CircleBufferReadBytes();
|
||||
void CircleBufferWriteBytes();
|
||||
void CircleBufferInitialize();
|
||||
void CBGetBytesAvailableForRead();
|
||||
void MWTRACE();
|
||||
void EXI2_Init();
|
||||
void EXI2_EnableInterrupts();
|
||||
u8 EXI2_Poll();
|
||||
u8 EXI2_ReadN();
|
||||
u8 EXI2_WriteN();
|
||||
void EXI2_Reserve();
|
||||
void EXI2_Unreserve();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
|
@ -48,23 +34,19 @@ void EXI2_Unreserve();
|
|||
static u8 gRecvBuf[2048];
|
||||
|
||||
/* 80450030-80450050 07CD50 001C+04 3/3 0/0 0/0 .bss gRecvCB */
|
||||
static u8 gRecvCB[28 + 4 /* padding */];
|
||||
static CircleBuffer gRecvCB;
|
||||
|
||||
// copied from pikmin2. should try to find a real fix
|
||||
static makeMainBSSOrderingWork() {
|
||||
u8 buff[0x500];
|
||||
memcpy(buff, gRecvBuf, 0x500);
|
||||
u8 buff[0x500];
|
||||
memcpy(buff, gRecvBuf, 0x500);
|
||||
}
|
||||
|
||||
/* 8037235C-80372380 36CC9C 0024+00 0/0 1/1 0/0 .text ddh_cc_initinterrupts */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void ddh_cc_initinterrupts() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main/ddh_cc_initinterrupts.s"
|
||||
int ddh_cc_initinterrupts() {
|
||||
EXI2_EnableInterrupts();
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80372380-803723F0 36CCC0 0070+00 0/0 1/1 0/0 .text ddh_cc_peek */
|
||||
#pragma push
|
||||
|
|
@ -77,24 +59,16 @@ asm void ddh_cc_peek() {
|
|||
#pragma pop
|
||||
|
||||
/* 803723F0-80372414 36CD30 0024+00 0/0 1/1 0/0 .text ddh_cc_post_stop */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void ddh_cc_post_stop() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main/ddh_cc_post_stop.s"
|
||||
int ddh_cc_post_stop() {
|
||||
EXI2_Reserve();
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80372414-80372438 36CD54 0024+00 0/0 1/1 0/0 .text ddh_cc_pre_continue */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void ddh_cc_pre_continue() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main/ddh_cc_pre_continue.s"
|
||||
int ddh_cc_pre_continue() {
|
||||
EXI2_Unreserve();
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A2D10-803A2D24 02F370 0014+00 1/1 0/0 0/0 .rodata @318 */
|
||||
|
|
@ -116,7 +90,7 @@ COMPILER_STRIP_GATE(0x803A2D50, &lit_320);
|
|||
#pragma pop
|
||||
|
||||
/* 804519C0-804519C8 000EC0 0004+04 3/3 0/0 0/0 .sbss gIsInitialized */
|
||||
static u8 gIsInitialized[4 + 4 /* padding */];
|
||||
static BOOL gIsInitialized;
|
||||
|
||||
/* 80372438-803724F8 36CD78 00C0+00 0/0 1/1 0/0 .text ddh_cc_write */
|
||||
#pragma push
|
||||
|
|
@ -153,14 +127,13 @@ u8 ddh_cc_close() {
|
|||
}
|
||||
|
||||
/* 803725EC-80372610 36CF2C 0024+00 0/0 1/1 0/0 .text ddh_cc_open */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void ddh_cc_open() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/GCN/EXI2_DDH_GCN/main/ddh_cc_open.s"
|
||||
s32 ddh_cc_open() {
|
||||
if (gIsInitialized != FALSE) {
|
||||
return -10005;
|
||||
}
|
||||
gIsInitialized = TRUE;
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80372610-80372618 36CF50 0008+00 0/0 1/1 0/0 .text ddh_cc_shutdown */
|
||||
u8 ddh_cc_shutdown() {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
//
|
||||
|
||||
#include "TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main.h"
|
||||
#include "TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
|
@ -11,14 +12,14 @@
|
|||
// Forward References:
|
||||
//
|
||||
|
||||
void gdev_cc_initinterrupts();
|
||||
u8 gdev_cc_initinterrupts();
|
||||
void gdev_cc_peek();
|
||||
void gdev_cc_post_stop();
|
||||
void gdev_cc_pre_continue();
|
||||
u8 gdev_cc_post_stop();
|
||||
u8 gdev_cc_pre_continue();
|
||||
void gdev_cc_write();
|
||||
void gdev_cc_read();
|
||||
u8 gdev_cc_close();
|
||||
void gdev_cc_open();
|
||||
s32 gdev_cc_open();
|
||||
u8 gdev_cc_shutdown();
|
||||
void gdev_cc_initialize();
|
||||
|
||||
|
|
@ -26,16 +27,12 @@ void gdev_cc_initialize();
|
|||
// External References:
|
||||
//
|
||||
|
||||
void CircleBufferReadBytes();
|
||||
void CircleBufferWriteBytes();
|
||||
void CircleBufferInitialize();
|
||||
void CBGetBytesAvailableForRead();
|
||||
void MWTRACE();
|
||||
void DBClose();
|
||||
void DBOpen();
|
||||
void DBWrite();
|
||||
void DBRead();
|
||||
void DBQueryData();
|
||||
int DBRead();
|
||||
int DBQueryData();
|
||||
void DBInitInterrupts();
|
||||
void DBInitComm();
|
||||
|
||||
|
|
@ -48,23 +45,19 @@ void DBInitComm();
|
|||
static u8 gRecvBuf[1280];
|
||||
|
||||
/* 80450550-8045056C 07D270 001C+00 3/3 0/0 0/0 .bss gRecvCB */
|
||||
static u8 gRecvCB[28];
|
||||
static CircleBuffer gRecvCB;
|
||||
|
||||
// copied from pikmin2. should try to find a real fix
|
||||
static makeMainBSSOrderingWork() {
|
||||
u8 buff[0x500];
|
||||
memcpy(buff, gRecvBuf, 0x500);
|
||||
u8 buff[0x500];
|
||||
memcpy(buff, gRecvBuf, 0x500);
|
||||
}
|
||||
|
||||
/* 80372908-8037292C 36D248 0024+00 0/0 1/1 0/0 .text gdev_cc_initinterrupts */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void gdev_cc_initinterrupts() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main/gdev_cc_initinterrupts.s"
|
||||
u8 gdev_cc_initinterrupts() {
|
||||
DBInitInterrupts();
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8037292C-8037299C 36D26C 0070+00 0/0 1/1 0/0 .text gdev_cc_peek */
|
||||
#pragma push
|
||||
|
|
@ -77,24 +70,16 @@ asm void gdev_cc_peek() {
|
|||
#pragma pop
|
||||
|
||||
/* 8037299C-803729C0 36D2DC 0024+00 0/0 1/1 0/0 .text gdev_cc_post_stop */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void gdev_cc_post_stop() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main/gdev_cc_post_stop.s"
|
||||
u8 gdev_cc_post_stop() {
|
||||
DBOpen();
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803729C0-803729E4 36D300 0024+00 0/0 1/1 0/0 .text gdev_cc_pre_continue */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void gdev_cc_pre_continue() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main/gdev_cc_pre_continue.s"
|
||||
u8 gdev_cc_pre_continue() {
|
||||
DBClose();
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A2DF0-803A2E04 02F450 0014+00 1/1 0/0 0/0 .rodata @318 */
|
||||
|
|
@ -116,7 +101,7 @@ COMPILER_STRIP_GATE(0x803A2E30, &lit_320);
|
|||
#pragma pop
|
||||
|
||||
/* 804519C8-804519D0 000EC8 0004+04 3/3 0/0 0/0 .sbss gIsInitialized */
|
||||
static u8 gIsInitialized[4 + 4 /* padding */];
|
||||
static BOOL gIsInitialized;
|
||||
|
||||
/* 803729E4-80372AA4 36D324 00C0+00 0/0 1/1 0/0 .text gdev_cc_write */
|
||||
#pragma push
|
||||
|
|
@ -153,14 +138,13 @@ u8 gdev_cc_close() {
|
|||
}
|
||||
|
||||
/* 80372BA0-80372BC4 36D4E0 0024+00 0/0 1/1 0/0 .text gdev_cc_open */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void gdev_cc_open() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/GCN/EXI2_GDEV_GCN/main/gdev_cc_open.s"
|
||||
s32 gdev_cc_open() {
|
||||
if (gIsInitialized != FALSE) {
|
||||
return -10005;
|
||||
}
|
||||
gIsInitialized = TRUE;
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80372BC4-80372BCC 36D504 0008+00 0/0 1/1 0/0 .text gdev_cc_shutdown */
|
||||
u8 gdev_cc_shutdown() {
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ asm s32 TRKDoReset(TRKBuffer*) {
|
|||
|
||||
/* ############################################################################################## */
|
||||
/* 8044F288-8044F290 07BFA8 0004+04 4/4 0/0 0/0 .bss IsTRKConnected */
|
||||
SECTION_BSS static u8 IsTRKConnected[4 + 4 /* padding */];
|
||||
SECTION_BSS static BOOL IsTRKConnected;
|
||||
|
||||
/* 8036EBE4-8036EC5C 369524 0078+00 0/0 1/1 0/0 .text TRKDoDisconnect */
|
||||
#pragma push
|
||||
|
|
@ -291,24 +291,14 @@ asm s32 TRKDoConnect(TRKBuffer*) {
|
|||
#pragma pop
|
||||
|
||||
/* 8036ECC0-8036ECCC 369600 000C+00 0/0 1/1 0/0 .text SetTRKConnected */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void SetTRKConnected(BOOL) {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/SetTRKConnected.s"
|
||||
void SetTRKConnected(BOOL isTRKConnected) {
|
||||
IsTRKConnected = isTRKConnected;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8036ECCC-8036ECDC 36960C 0010+00 0/0 3/3 0/0 .text GetTRKConnected */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm BOOL GetTRKConnected(void) {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr/GetTRKConnected.s"
|
||||
BOOL GetTRKConnected(void) {
|
||||
return IsTRKConnected;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A2AAC-803A2AB4 02F10C 0006+02 1/1 0/0 0/0 .rodata @573 */
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@
|
|||
//
|
||||
|
||||
#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h"
|
||||
#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h"
|
||||
#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
|
@ -15,7 +17,7 @@ void TRKDestructEvent();
|
|||
void TRKConstructEvent();
|
||||
void TRKPostEvent();
|
||||
void TRKGetNextEvent();
|
||||
void TRKInitializeEventQueue();
|
||||
u8 TRKInitializeEventQueue();
|
||||
|
||||
//
|
||||
// External References:
|
||||
|
|
@ -23,23 +25,15 @@ void TRKInitializeEventQueue();
|
|||
|
||||
SECTION_INIT void TRK_memcpy();
|
||||
void TRKReleaseBuffer();
|
||||
u8 TRKReleaseMutex();
|
||||
u8 TRKAcquireMutex();
|
||||
u8 TRKInitializeMutex();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8036CC18-8036CC3C 367558 0024+00 0/0 1/1 0/0 .text TRKDestructEvent */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void TRKDestructEvent() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent/TRKDestructEvent.s"
|
||||
void TRKDestructEvent(TRKBuffer* buf) {
|
||||
TRKReleaseBuffer(buf->_08);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8036CC3C-8036CC54 36757C 0018+00 0/0 5/5 0/0 .text TRKConstructEvent */
|
||||
#pragma push
|
||||
|
|
@ -53,7 +47,7 @@ asm void TRKConstructEvent() {
|
|||
|
||||
/* ############################################################################################## */
|
||||
/* 8044D890-8044D8B8 07A5B0 0028+00 3/3 0/0 0/0 .bss gTRKEventQueue */
|
||||
static u8 gTRKEventQueue[40];
|
||||
static s32 gTRKEventQueue[10];
|
||||
|
||||
/* 8036CC54-8036CD34 367594 00E0+00 0/0 5/5 0/0 .text TRKPostEvent */
|
||||
#pragma push
|
||||
|
|
@ -76,11 +70,12 @@ asm void TRKGetNextEvent() {
|
|||
#pragma pop
|
||||
|
||||
/* 8036CDE8-8036CE40 367728 0058+00 0/0 1/1 0/0 .text TRKInitializeEventQueue */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void TRKInitializeEventQueue() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent/TRKInitializeEventQueue.s"
|
||||
u8 TRKInitializeEventQueue() {
|
||||
TRKInitializeMutex(&gTRKEventQueue);
|
||||
TRKAcquireMutex(&gTRKEventQueue);
|
||||
gTRKEventQueue[1] = 0;
|
||||
gTRKEventQueue[2] = 0;
|
||||
gTRKEventQueue[9] = 0x100;
|
||||
TRKReleaseMutex();
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ u8 TRKInitializeDispatcher();
|
|||
void TRKTargetSetInputPendingPtr();
|
||||
void TRKInitializeTarget();
|
||||
void InitializeProgramEndTrap();
|
||||
void TRK_board_display();
|
||||
void TRK_board_display(const char*);
|
||||
void TRKInitializeIntDrivenUART();
|
||||
void MWTRACE();
|
||||
extern u8 gTRKInputPendingPtr[4 + 4 /* padding */];
|
||||
|
|
@ -45,14 +45,10 @@ asm void TRKNubWelcome(void) {
|
|||
#pragma pop
|
||||
|
||||
/* 8036CE68-8036CE8C 3677A8 0024+00 0/0 1/1 0/0 .text TRKTerminateNub */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 TRKTerminateNub(void) {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit/TRKTerminateNub.s"
|
||||
s32 TRKTerminateNub(void) {
|
||||
TRKTerminateSerialHandler();
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A26A4-803A26B8 02ED04 0010+04 1/1 0/0 0/0 .rodata @154 */
|
||||
|
|
@ -60,8 +56,8 @@ SECTION_RODATA static char const lit_154[] = "Initialize NUB\n";
|
|||
COMPILER_STRIP_GATE(0x803A26A4, &lit_154);
|
||||
|
||||
/* 8044D8B8-8044D8C0 07A5D8 0004+04 1/1 4/4 0/0 .bss gTRKBigEndian */
|
||||
SECTION_BSS extern u8 gTRKBigEndian[4 + 4 /* padding */];
|
||||
SECTION_BSS u8 gTRKBigEndian[4 + 4 /* padding */];
|
||||
SECTION_BSS extern BOOL gTRKBigEndian;
|
||||
SECTION_BSS BOOL gTRKBigEndian;
|
||||
|
||||
/* 8036CE8C-8036CFD8 3677CC 014C+00 0/0 1/1 0/0 .text TRKInitializeNub */
|
||||
#pragma push
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
//
|
||||
|
||||
#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h"
|
||||
#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
|
@ -15,9 +16,9 @@ void InitMetroTRK();
|
|||
void InitMetroTRK_BBA();
|
||||
void TRK__write_aram();
|
||||
void TRK__read_aram();
|
||||
void TRKInitializeTarget();
|
||||
int TRKInitializeTarget();
|
||||
void __TRK_copy_vectors();
|
||||
void TRKTargetTranslate();
|
||||
u32 TRKTargetTranslate();
|
||||
void EnableMetroTRKInterrupts();
|
||||
|
||||
//
|
||||
|
|
@ -31,20 +32,19 @@ void ARStartDMA();
|
|||
void __ARClearInterrupt();
|
||||
void __ARGetInterruptStatus();
|
||||
void TRK_flush_cache();
|
||||
void __TRK_get_MSR();
|
||||
void TRKSaveExtended1Block();
|
||||
void TRK_main();
|
||||
void EnableEXI2Interrupts();
|
||||
void InitMetroTRKCommTable();
|
||||
extern u8 gTRKState[164];
|
||||
extern u8 gTRKCPUState[1072];
|
||||
extern u32 gTRKState[41];
|
||||
extern u32 gTRKCPUState[268];
|
||||
void regist__9daBgObj_cFP4dBgW();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80371560-803715F8 36BEA0 0098+00 0/0 1/1 0/0 .text InitMetroTRK */
|
||||
/* 80371560-803715F8 36BEA0 0098+00 0/0 1/1 0/0 .text InitMetroTRK */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -86,17 +86,15 @@ asm void TRK__read_aram() {
|
|||
|
||||
/* ############################################################################################## */
|
||||
/* 8044F810-8044F818 07C530 0004+04 3/3 0/0 0/0 .bss lc_base */
|
||||
SECTION_BSS static u8 lc_base[4 + 4 /* padding */];
|
||||
SECTION_BSS static u32 lc_base[1 + 1 /*padding*/];
|
||||
|
||||
/* 803719AC-803719F8 36C2EC 004C+00 0/0 1/1 0/0 .text TRKInitializeTarget */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void TRKInitializeTarget() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk/TRKInitializeTarget.s"
|
||||
/* 803719AC-803719F8 36C2EC 004C+00 0/0 1/1 0/0 .text TRKInitializeTarget */
|
||||
int TRKInitializeTarget() {
|
||||
gTRKState[38] = 1;
|
||||
gTRKState[35] = __TRK_get_MSR();
|
||||
*lc_base = 0xE0000000;
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D3268-803D32A8 030388 003C+04 1/1 0/0 0/0 .data TRK_ISR_OFFSETS */
|
||||
|
|
@ -179,21 +177,19 @@ asm void __TRK_copy_vectors() {
|
|||
#pragma pop
|
||||
|
||||
/* 80371B24-80371B7C 36C464 0058+00 0/0 1/1 0/0 .text TRKTargetTranslate */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void TRKTargetTranslate() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk/TRKTargetTranslate.s"
|
||||
u32 TRKTargetTranslate(u32 param_0) {
|
||||
if (param_0 >= *lc_base) {
|
||||
if ((param_0 < *lc_base + 0x4000) && ((gTRKCPUState[142] & 3) != 0)) {
|
||||
return param_0;
|
||||
}
|
||||
}
|
||||
if ((0x7E000000 <= param_0) && (param_0 <= 0x80000000)) {
|
||||
return param_0;
|
||||
}
|
||||
return param_0 & 0x3FFFFFFF | 0x80000000;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80371B7C-80371B9C 36C4BC 0020+00 0/0 1/1 0/0 .text EnableMetroTRKInterrupts */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void EnableMetroTRKInterrupts() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk/EnableMetroTRKInterrupts.s"
|
||||
/* 80371B7C-80371B9C 36C4BC 0020+00 0/0 1/1 0/0 .text EnableMetroTRKInterrupts */
|
||||
void EnableMetroTRKInterrupts() {
|
||||
EnableEXI2Interrupts();
|
||||
}
|
||||
#pragma pop
|
||||
|
|
|
|||
|
|
@ -1,70 +1,78 @@
|
|||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: utils/common/CircleBuffer
|
||||
//
|
||||
|
||||
#include "TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer.h"
|
||||
#include "dol2asm.h"
|
||||
#include "TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
void CircleBufferReadBytes();
|
||||
void CircleBufferWriteBytes();
|
||||
void CircleBufferInitialize();
|
||||
void CBGetBytesAvailableForRead();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
SECTION_INIT void memcpy();
|
||||
void MWExitCriticalSection();
|
||||
void MWEnterCriticalSection();
|
||||
void MWInitializeCriticalSection();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 803726A0-803727A8 36CFE0 0108+00 0/0 2/2 0/0 .text CircleBufferReadBytes */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void CircleBufferReadBytes() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer/CircleBufferReadBytes.s"
|
||||
s32 CircleBufferReadBytes(CircleBuffer* buf, u32 param_2, u32 param_3) {
|
||||
int temp;
|
||||
if (param_3 > buf->readBuf) {
|
||||
return -1;
|
||||
} else {
|
||||
MWEnterCriticalSection(&buf->criticalSection);
|
||||
temp = buf->field_0xc - (buf->field_0x0 - buf->field_0x8);
|
||||
if (param_3 < temp) {
|
||||
memcpy(param_2, buf->field_0x0, param_3);
|
||||
buf->field_0x0 += param_3;
|
||||
} else {
|
||||
memcpy(param_2, buf->field_0x0, temp);
|
||||
memcpy(param_2 + temp, buf->field_0x8, param_3 - temp);
|
||||
buf->field_0x0 = buf->field_0x8 + param_3 - temp;
|
||||
}
|
||||
|
||||
if (buf->field_0xc == (buf->field_0x0 - buf->field_0x8)) {
|
||||
buf->field_0x0 = buf->field_0x8;
|
||||
}
|
||||
|
||||
buf->field_0x14 += param_3;
|
||||
buf->readBuf -= param_3;
|
||||
MWExitCriticalSection(&buf->criticalSection);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803727A8-803728B0 36D0E8 0108+00 0/0 4/4 0/0 .text CircleBufferWriteBytes */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void CircleBufferWriteBytes() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer/CircleBufferWriteBytes.s"
|
||||
s32 CircleBufferWriteBytes(CircleBuffer* buf, s32 param_2, u32 param_3) {
|
||||
s32 temp;
|
||||
|
||||
if (param_3 > buf->field_0x14) {
|
||||
return -1;
|
||||
} else {
|
||||
MWEnterCriticalSection(&buf->criticalSection);
|
||||
temp = buf->field_0xc - (buf->field_0x4 - buf->field_0x8);
|
||||
if (temp >= param_3) {
|
||||
memcpy(buf->field_0x4, param_2, param_3);
|
||||
buf->field_0x4 += param_3;
|
||||
} else {
|
||||
memcpy(buf->field_0x4, param_2, temp);
|
||||
memcpy(buf->field_0x8, param_2 + temp, param_3 - temp);
|
||||
buf->field_0x4 = buf->field_0x8 + param_3 - temp;
|
||||
}
|
||||
|
||||
if (buf->field_0xc == (buf->field_0x4 - buf->field_0x8)) {
|
||||
buf->field_0x4 = buf->field_0x8;
|
||||
}
|
||||
|
||||
buf->field_0x14 -= param_3;
|
||||
buf->readBuf += param_3;
|
||||
MWExitCriticalSection(&buf->criticalSection);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803728B0-80372900 36D1F0 0050+00 0/0 2/2 0/0 .text CircleBufferInitialize */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void CircleBufferInitialize() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer/CircleBufferInitialize.s"
|
||||
void CircleBufferInitialize(CircleBuffer* buf, s32 param_2, s32 param_3) {
|
||||
buf->field_0x8 = param_2;
|
||||
buf->field_0xc = param_3;
|
||||
buf->field_0x0 = buf->field_0x8;
|
||||
buf->field_0x4 = buf->field_0x8;
|
||||
buf->readBuf = 0;
|
||||
buf->field_0x14 = buf->field_0xc;
|
||||
MWInitializeCriticalSection(&buf->criticalSection);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80372900-80372908 36D240 0008+00 0/0 2/2 0/0 .text CBGetBytesAvailableForRead */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void CBGetBytesAvailableForRead() {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/utils/common/CircleBuffer/CBGetBytesAvailableForRead.s"
|
||||
s32 CBGetBytesAvailableForRead(CircleBuffer* buf) {
|
||||
return buf->readBuf;
|
||||
}
|
||||
#pragma pop
|
||||
|
|
|
|||
|
|
@ -12,20 +12,9 @@ void MWExitCriticalSection(u32* section) {
|
|||
}
|
||||
|
||||
/* 80372CC8-80372CF8 36D608 0030+00 0/0 2/2 0/0 .text MWEnterCriticalSection */
|
||||
#ifdef NONMATCHING
|
||||
void MWEnterCriticalSection(u32* section) {
|
||||
*section = OSDisableInterrupts();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void MWEnterCriticalSection(u32* section) {
|
||||
nofralloc
|
||||
#include "asm/TRK_MINNOW_DOLPHIN/utils/gc/MWCriticalSection_gc/MWEnterCriticalSection.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80372CF8-80372CFC 36D638 0004+00 0/0 1/1 0/0 .text MWInitializeCriticalSection */
|
||||
void MWInitializeCriticalSection() {}
|
||||
|
|
|
|||
Loading…
Reference in New Issue