mirror of https://github.com/zeldaret/tp.git
More Jsystem stuff (#395)
* JASProbe OK * JASRegisterParam OK * Import JASReport * JASDvdThread OK
This commit is contained in:
parent
2275eb710b
commit
24161e34d2
|
@ -1,47 +0,0 @@
|
|||
lbl_8028FF04:
|
||||
/* 8028FF04 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 8028FF08 7C 08 02 A6 */ mflr r0
|
||||
/* 8028FF0C 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 8028FF10 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 8028FF14 48 0D 22 C9 */ bl _savegpr_29
|
||||
/* 8028FF18 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 8028FF1C 7C 9E 23 78 */ mr r30, r4
|
||||
/* 8028FF20 7C BF 2B 78 */ mr r31, r5
|
||||
/* 8028FF24 80 0D 8C 88 */ lwz r0, sThread__6JASDvd(r13)
|
||||
/* 8028FF28 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8028FF2C 41 82 00 0C */ beq lbl_8028FF38
|
||||
/* 8028FF30 38 60 00 00 */ li r3, 0
|
||||
/* 8028FF34 48 00 00 5C */ b lbl_8028FF90
|
||||
lbl_8028FF38:
|
||||
/* 8028FF38 38 60 00 88 */ li r3, 0x88
|
||||
/* 8028FF3C 80 8D 8C 90 */ lwz r4, JASDram(r13)
|
||||
/* 8028FF40 38 A0 00 00 */ li r5, 0
|
||||
/* 8028FF44 48 03 ED 55 */ bl __nw__FUlP7JKRHeapi
|
||||
/* 8028FF48 7C 64 1B 79 */ or. r4, r3, r3
|
||||
/* 8028FF4C 41 82 00 18 */ beq lbl_8028FF64
|
||||
/* 8028FF50 7F A4 EB 78 */ mr r4, r29
|
||||
/* 8028FF54 7F C5 F3 78 */ mr r5, r30
|
||||
/* 8028FF58 7F E6 FB 78 */ mr r6, r31
|
||||
/* 8028FF5C 4B FF F7 69 */ bl __ct__13JASTaskThreadFiiUl
|
||||
/* 8028FF60 7C 64 1B 78 */ mr r4, r3
|
||||
lbl_8028FF64:
|
||||
/* 8028FF64 90 8D 8C 88 */ stw r4, sThread__6JASDvd(r13)
|
||||
/* 8028FF68 80 0D 8D F0 */ lwz r0, sSystemHeap__7JKRHeap(r13)
|
||||
/* 8028FF6C 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8028FF70 41 82 00 08 */ beq lbl_8028FF78
|
||||
/* 8028FF74 48 00 00 08 */ b lbl_8028FF7C
|
||||
lbl_8028FF78:
|
||||
/* 8028FF78 80 0D 8D F4 */ lwz r0, sCurrentHeap__7JKRHeap(r13)
|
||||
lbl_8028FF7C:
|
||||
/* 8028FF7C 90 04 00 74 */ stw r0, 0x74(r4)
|
||||
/* 8028FF80 80 6D 8C 88 */ lwz r3, sThread__6JASDvd(r13)
|
||||
/* 8028FF84 80 63 00 2C */ lwz r3, 0x2c(r3)
|
||||
/* 8028FF88 48 0B 18 2D */ bl OSResumeThread
|
||||
/* 8028FF8C 38 60 00 01 */ li r3, 1
|
||||
lbl_8028FF90:
|
||||
/* 8028FF90 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 8028FF94 48 0D 22 95 */ bl _restgpr_29
|
||||
/* 8028FF98 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8028FF9C 7C 08 03 A6 */ mtlr r0
|
||||
/* 8028FFA0 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8028FFA4 4E 80 00 20 */ blr
|
|
@ -1,21 +0,0 @@
|
|||
lbl_80290D74:
|
||||
/* 80290D74 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80290D78 7C 08 02 A6 */ mflr r0
|
||||
/* 80290D7C 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80290D80 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 80290D84 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 80290D88 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 80290D8C 7C 9F 23 78 */ mr r31, r4
|
||||
/* 80290D90 48 0A C9 65 */ bl OSDisableInterrupts
|
||||
/* 80290D94 90 61 00 08 */ stw r3, 8(r1)
|
||||
/* 80290D98 93 FE 00 00 */ stw r31, 0(r30)
|
||||
/* 80290D9C 48 0B 19 61 */ bl OSGetTime
|
||||
/* 80290DA0 90 9E 00 04 */ stw r4, 4(r30)
|
||||
/* 80290DA4 80 61 00 08 */ lwz r3, 8(r1)
|
||||
/* 80290DA8 48 0A C9 75 */ bl OSRestoreInterrupts
|
||||
/* 80290DAC 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 80290DB0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 80290DB4 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80290DB8 7C 08 03 A6 */ mtlr r0
|
||||
/* 80290DBC 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80290DC0 4E 80 00 20 */ blr
|
|
@ -1,18 +0,0 @@
|
|||
lbl_80290EE4:
|
||||
/* 80290EE4 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80290EE8 7C 08 02 A6 */ mflr r0
|
||||
/* 80290EEC 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80290EF0 2C 03 00 10 */ cmpwi r3, 0x10
|
||||
/* 80290EF4 40 80 00 20 */ bge lbl_80290F14
|
||||
/* 80290EF8 54 60 10 3A */ slwi r0, r3, 2
|
||||
/* 80290EFC 3C 60 80 43 */ lis r3, sProbeTable__8JASProbe@ha /* 0x80431620@ha */
|
||||
/* 80290F00 38 63 16 20 */ addi r3, r3, sProbeTable__8JASProbe@l /* 0x80431620@l */
|
||||
/* 80290F04 7C 63 00 2E */ lwzx r3, r3, r0
|
||||
/* 80290F08 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 80290F0C 41 82 00 08 */ beq lbl_80290F14
|
||||
/* 80290F10 4B FF FE 65 */ bl start__8JASProbeFPCc
|
||||
lbl_80290F14:
|
||||
/* 80290F14 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80290F18 7C 08 03 A6 */ mtlr r0
|
||||
/* 80290F1C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80290F20 4E 80 00 20 */ blr
|
|
@ -1,18 +0,0 @@
|
|||
lbl_80290F24:
|
||||
/* 80290F24 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80290F28 7C 08 02 A6 */ mflr r0
|
||||
/* 80290F2C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80290F30 2C 03 00 10 */ cmpwi r3, 0x10
|
||||
/* 80290F34 40 80 00 20 */ bge lbl_80290F54
|
||||
/* 80290F38 54 60 10 3A */ slwi r0, r3, 2
|
||||
/* 80290F3C 3C 60 80 43 */ lis r3, sProbeTable__8JASProbe@ha /* 0x80431620@ha */
|
||||
/* 80290F40 38 63 16 20 */ addi r3, r3, sProbeTable__8JASProbe@l /* 0x80431620@l */
|
||||
/* 80290F44 7C 63 00 2E */ lwzx r3, r3, r0
|
||||
/* 80290F48 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 80290F4C 41 82 00 08 */ beq lbl_80290F54
|
||||
/* 80290F50 4B FF FE 75 */ bl stop__8JASProbeFv
|
||||
lbl_80290F54:
|
||||
/* 80290F54 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80290F58 7C 08 03 A6 */ mtlr r0
|
||||
/* 80290F5C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80290F60 4E 80 00 20 */ blr
|
|
@ -1,74 +0,0 @@
|
|||
lbl_80290DC4:
|
||||
/* 80290DC4 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80290DC8 7C 08 02 A6 */ mflr r0
|
||||
/* 80290DCC 90 01 00 34 */ stw r0, 0x34(r1)
|
||||
/* 80290DD0 93 E1 00 2C */ stw r31, 0x2c(r1)
|
||||
/* 80290DD4 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80290DD8 48 0A C9 1D */ bl OSDisableInterrupts
|
||||
/* 80290DDC 90 61 00 08 */ stw r3, 8(r1)
|
||||
/* 80290DE0 48 0B 19 1D */ bl OSGetTime
|
||||
/* 80290DE4 80 1F 00 04 */ lwz r0, 4(r31)
|
||||
/* 80290DE8 7C 00 20 50 */ subf r0, r0, r4
|
||||
/* 80290DEC C8 22 BB 98 */ lfd f1, lit_129(r2)
|
||||
/* 80290DF0 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80290DF4 3C 80 43 30 */ lis r4, 0x4330
|
||||
/* 80290DF8 90 81 00 10 */ stw r4, 0x10(r1)
|
||||
/* 80290DFC C8 01 00 10 */ lfd f0, 0x10(r1)
|
||||
/* 80290E00 EC 00 08 28 */ fsubs f0, f0, f1
|
||||
/* 80290E04 D0 1F 00 08 */ stfs f0, 8(r31)
|
||||
/* 80290E08 C0 5F 00 08 */ lfs f2, 8(r31)
|
||||
/* 80290E0C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
|
||||
/* 80290E10 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
|
||||
/* 80290E14 54 00 F0 BE */ srwi r0, r0, 2
|
||||
/* 80290E18 90 01 00 1C */ stw r0, 0x1c(r1)
|
||||
/* 80290E1C 90 81 00 18 */ stw r4, 0x18(r1)
|
||||
/* 80290E20 C8 01 00 18 */ lfd f0, 0x18(r1)
|
||||
/* 80290E24 EC 20 08 28 */ fsubs f1, f0, f1
|
||||
/* 80290E28 C0 02 BB 88 */ lfs f0, lit_125(r2)
|
||||
/* 80290E2C EC 01 00 24 */ fdivs f0, f1, f0
|
||||
/* 80290E30 EC 02 00 24 */ fdivs f0, f2, f0
|
||||
/* 80290E34 D0 1F 00 08 */ stfs f0, 8(r31)
|
||||
/* 80290E38 C0 1F 00 10 */ lfs f0, 0x10(r31)
|
||||
/* 80290E3C C0 3F 00 08 */ lfs f1, 8(r31)
|
||||
/* 80290E40 FC 00 08 40 */ fcmpo cr0, f0, f1
|
||||
/* 80290E44 40 80 00 14 */ bge lbl_80290E58
|
||||
/* 80290E48 80 1F 01 A8 */ lwz r0, 0x1a8(r31)
|
||||
/* 80290E4C 28 00 00 64 */ cmplwi r0, 0x64
|
||||
/* 80290E50 40 81 00 08 */ ble lbl_80290E58
|
||||
/* 80290E54 D0 3F 00 10 */ stfs f1, 0x10(r31)
|
||||
lbl_80290E58:
|
||||
/* 80290E58 C0 22 BB 8C */ lfs f1, lit_126(r2)
|
||||
/* 80290E5C C0 1F 00 0C */ lfs f0, 0xc(r31)
|
||||
/* 80290E60 EC 41 00 32 */ fmuls f2, f1, f0
|
||||
/* 80290E64 C0 22 BB 90 */ lfs f1, lit_127(r2)
|
||||
/* 80290E68 C0 1F 00 08 */ lfs f0, 8(r31)
|
||||
/* 80290E6C EC 01 00 32 */ fmuls f0, f1, f0
|
||||
/* 80290E70 EC 02 00 2A */ fadds f0, f2, f0
|
||||
/* 80290E74 D0 1F 00 0C */ stfs f0, 0xc(r31)
|
||||
/* 80290E78 80 9F 01 A8 */ lwz r4, 0x1a8(r31)
|
||||
/* 80290E7C 38 60 00 64 */ li r3, 0x64
|
||||
/* 80290E80 7C 04 1B 96 */ divwu r0, r4, r3
|
||||
/* 80290E84 7C 00 19 D6 */ mullw r0, r0, r3
|
||||
/* 80290E88 7C 00 20 50 */ subf r0, r0, r4
|
||||
/* 80290E8C C0 3F 00 14 */ lfs f1, 0x14(r31)
|
||||
/* 80290E90 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 80290E94 7C 7F 02 14 */ add r3, r31, r0
|
||||
/* 80290E98 C0 03 00 18 */ lfs f0, 0x18(r3)
|
||||
/* 80290E9C EC 01 00 28 */ fsubs f0, f1, f0
|
||||
/* 80290EA0 D0 1F 00 14 */ stfs f0, 0x14(r31)
|
||||
/* 80290EA4 C0 1F 00 08 */ lfs f0, 8(r31)
|
||||
/* 80290EA8 D0 03 00 18 */ stfs f0, 0x18(r3)
|
||||
/* 80290EAC C0 3F 00 14 */ lfs f1, 0x14(r31)
|
||||
/* 80290EB0 C0 1F 00 08 */ lfs f0, 8(r31)
|
||||
/* 80290EB4 EC 01 00 2A */ fadds f0, f1, f0
|
||||
/* 80290EB8 D0 1F 00 14 */ stfs f0, 0x14(r31)
|
||||
/* 80290EBC 80 7F 01 A8 */ lwz r3, 0x1a8(r31)
|
||||
/* 80290EC0 38 03 00 01 */ addi r0, r3, 1
|
||||
/* 80290EC4 90 1F 01 A8 */ stw r0, 0x1a8(r31)
|
||||
/* 80290EC8 80 61 00 08 */ lwz r3, 8(r1)
|
||||
/* 80290ECC 48 0A C8 51 */ bl OSRestoreInterrupts
|
||||
/* 80290ED0 83 E1 00 2C */ lwz r31, 0x2c(r1)
|
||||
/* 80290ED4 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 80290ED8 7C 08 03 A6 */ mtlr r0
|
||||
/* 80290EDC 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80290EE0 4E 80 00 20 */ blr
|
|
@ -1,10 +0,0 @@
|
|||
lbl_80293644:
|
||||
/* 80293644 38 80 00 00 */ li r4, 0
|
||||
/* 80293648 7C 85 23 78 */ mr r5, r4
|
||||
/* 8029364C 38 00 00 0E */ li r0, 0xe
|
||||
/* 80293650 7C 09 03 A6 */ mtctr r0
|
||||
lbl_80293654:
|
||||
/* 80293654 7C A3 23 2E */ sthx r5, r3, r4
|
||||
/* 80293658 38 84 00 02 */ addi r4, r4, 2
|
||||
/* 8029365C 42 00 FF F8 */ bdnz lbl_80293654
|
||||
/* 80293660 4E 80 00 20 */ blr
|
|
@ -1,10 +0,0 @@
|
|||
lbl_80293664:
|
||||
/* 80293664 38 80 00 00 */ li r4, 0
|
||||
/* 80293668 7C 85 23 78 */ mr r5, r4
|
||||
/* 8029366C 38 00 00 0E */ li r0, 0xe
|
||||
/* 80293670 7C 09 03 A6 */ mtctr r0
|
||||
lbl_80293674:
|
||||
/* 80293674 7C A3 23 2E */ sthx r5, r3, r4
|
||||
/* 80293678 38 84 00 02 */ addi r4, r4, 2
|
||||
/* 8029367C 42 00 FF F8 */ bdnz lbl_80293674
|
||||
/* 80293680 4E 80 00 20 */ blr
|
|
@ -1,68 +0,0 @@
|
|||
lbl_802937B8:
|
||||
/* 802937B8 2C 04 00 0E */ cmpwi r4, 0xe
|
||||
/* 802937BC 40 80 00 10 */ bge lbl_802937CC
|
||||
/* 802937C0 54 80 08 3C */ slwi r0, r4, 1
|
||||
/* 802937C4 7C 63 02 2E */ lhzx r3, r3, r0
|
||||
/* 802937C8 4E 80 00 20 */ blr
|
||||
lbl_802937CC:
|
||||
/* 802937CC 38 A0 00 00 */ li r5, 0
|
||||
/* 802937D0 38 04 FF E0 */ addi r0, r4, -32
|
||||
/* 802937D4 28 00 00 09 */ cmplwi r0, 9
|
||||
/* 802937D8 41 81 00 DC */ bgt lbl_802938B4
|
||||
/* 802937DC 3C 80 80 3C */ lis r4, lit_87@ha /* 0x803C5BB8@ha */
|
||||
/* 802937E0 38 84 5B B8 */ addi r4, r4, lit_87@l /* 0x803C5BB8@l */
|
||||
/* 802937E4 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 802937E8 7C 04 00 2E */ lwzx r0, r4, r0
|
||||
/* 802937EC 7C 09 03 A6 */ mtctr r0
|
||||
/* 802937F0 4E 80 04 20 */ bctr
|
||||
/* 802937F4 A0 83 00 00 */ lhz r4, 0(r3)
|
||||
/* 802937F8 A0 03 00 02 */ lhz r0, 2(r3)
|
||||
/* 802937FC 54 00 06 3E */ clrlwi r0, r0, 0x18
|
||||
/* 80293800 7C 05 03 78 */ mr r5, r0
|
||||
/* 80293804 50 85 44 2E */ rlwimi r5, r4, 8, 0x10, 0x17
|
||||
/* 80293808 48 00 00 AC */ b lbl_802938B4
|
||||
/* 8029380C A0 A3 00 08 */ lhz r5, 8(r3)
|
||||
/* 80293810 54 A5 80 1E */ slwi r5, r5, 0x10
|
||||
/* 80293814 A0 03 00 0A */ lhz r0, 0xa(r3)
|
||||
/* 80293818 7C A5 03 78 */ or r5, r5, r0
|
||||
/* 8029381C 48 00 00 98 */ b lbl_802938B4
|
||||
/* 80293820 A0 03 00 08 */ lhz r0, 8(r3)
|
||||
/* 80293824 7C 00 46 70 */ srawi r0, r0, 8
|
||||
/* 80293828 54 00 06 3E */ clrlwi r0, r0, 0x18
|
||||
/* 8029382C 7C 05 03 78 */ mr r5, r0
|
||||
/* 80293830 48 00 00 84 */ b lbl_802938B4
|
||||
/* 80293834 A0 03 00 08 */ lhz r0, 8(r3)
|
||||
/* 80293838 54 00 06 3E */ clrlwi r0, r0, 0x18
|
||||
/* 8029383C 7C 05 03 78 */ mr r5, r0
|
||||
/* 80293840 48 00 00 74 */ b lbl_802938B4
|
||||
/* 80293844 A0 03 00 0A */ lhz r0, 0xa(r3)
|
||||
/* 80293848 7C 00 46 70 */ srawi r0, r0, 8
|
||||
/* 8029384C 54 00 06 3E */ clrlwi r0, r0, 0x18
|
||||
/* 80293850 7C 05 03 78 */ mr r5, r0
|
||||
/* 80293854 48 00 00 60 */ b lbl_802938B4
|
||||
/* 80293858 A0 03 00 0A */ lhz r0, 0xa(r3)
|
||||
/* 8029385C 54 00 06 3E */ clrlwi r0, r0, 0x18
|
||||
/* 80293860 7C 05 03 78 */ mr r5, r0
|
||||
/* 80293864 48 00 00 50 */ b lbl_802938B4
|
||||
/* 80293868 A0 A3 00 0C */ lhz r5, 0xc(r3)
|
||||
/* 8029386C 54 A5 80 1E */ slwi r5, r5, 0x10
|
||||
/* 80293870 A0 03 00 0E */ lhz r0, 0xe(r3)
|
||||
/* 80293874 7C A5 03 78 */ or r5, r5, r0
|
||||
/* 80293878 48 00 00 3C */ b lbl_802938B4
|
||||
/* 8029387C A0 A3 00 10 */ lhz r5, 0x10(r3)
|
||||
/* 80293880 54 A5 80 1E */ slwi r5, r5, 0x10
|
||||
/* 80293884 A0 03 00 12 */ lhz r0, 0x12(r3)
|
||||
/* 80293888 7C A5 03 78 */ or r5, r5, r0
|
||||
/* 8029388C 48 00 00 28 */ b lbl_802938B4
|
||||
/* 80293890 A0 A3 00 14 */ lhz r5, 0x14(r3)
|
||||
/* 80293894 54 A5 80 1E */ slwi r5, r5, 0x10
|
||||
/* 80293898 A0 03 00 16 */ lhz r0, 0x16(r3)
|
||||
/* 8029389C 7C A5 03 78 */ or r5, r5, r0
|
||||
/* 802938A0 48 00 00 14 */ b lbl_802938B4
|
||||
/* 802938A4 A0 A3 00 14 */ lhz r5, 0x14(r3)
|
||||
/* 802938A8 54 A5 80 1E */ slwi r5, r5, 0x10
|
||||
/* 802938AC A0 03 00 16 */ lhz r0, 0x16(r3)
|
||||
/* 802938B0 7C A5 03 78 */ or r5, r5, r0
|
||||
lbl_802938B4:
|
||||
/* 802938B4 7C A3 2B 78 */ mr r3, r5
|
||||
/* 802938B8 4E 80 00 20 */ blr
|
|
@ -1,80 +0,0 @@
|
|||
lbl_80293684:
|
||||
/* 80293684 2C 04 00 0E */ cmpwi r4, 0xe
|
||||
/* 80293688 40 80 00 28 */ bge lbl_802936B0
|
||||
/* 8029368C 2C 04 00 02 */ cmpwi r4, 2
|
||||
/* 80293690 41 81 00 14 */ bgt lbl_802936A4
|
||||
/* 80293694 54 A5 06 3E */ clrlwi r5, r5, 0x18
|
||||
/* 80293698 54 80 08 3C */ slwi r0, r4, 1
|
||||
/* 8029369C 7C A3 03 2E */ sthx r5, r3, r0
|
||||
/* 802936A0 4E 80 00 20 */ blr
|
||||
lbl_802936A4:
|
||||
/* 802936A4 54 80 08 3C */ slwi r0, r4, 1
|
||||
/* 802936A8 7C A3 03 2E */ sthx r5, r3, r0
|
||||
/* 802936AC 4E 80 00 20 */ blr
|
||||
lbl_802936B0:
|
||||
/* 802936B0 38 04 FF E0 */ addi r0, r4, -32
|
||||
/* 802936B4 28 00 00 09 */ cmplwi r0, 9
|
||||
/* 802936B8 4D 81 00 20 */ bgtlr
|
||||
/* 802936BC 3C 80 80 3C */ lis r4, lit_56@ha /* 0x803C5B90@ha */
|
||||
/* 802936C0 38 84 5B 90 */ addi r4, r4, lit_56@l /* 0x803C5B90@l */
|
||||
/* 802936C4 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 802936C8 7C 04 00 2E */ lwzx r0, r4, r0
|
||||
/* 802936CC 7C 09 03 A6 */ mtctr r0
|
||||
/* 802936D0 4E 80 04 20 */ bctr
|
||||
/* 802936D4 54 A0 C6 3E */ rlwinm r0, r5, 0x18, 0x18, 0x1f
|
||||
/* 802936D8 B0 03 00 00 */ sth r0, 0(r3)
|
||||
/* 802936DC 54 A0 06 3E */ clrlwi r0, r5, 0x18
|
||||
/* 802936E0 B0 03 00 02 */ sth r0, 2(r3)
|
||||
/* 802936E4 4E 80 00 20 */ blr
|
||||
/* 802936E8 54 A0 84 3E */ srwi r0, r5, 0x10
|
||||
/* 802936EC B0 03 00 08 */ sth r0, 8(r3)
|
||||
/* 802936F0 B0 A3 00 0A */ sth r5, 0xa(r3)
|
||||
/* 802936F4 4E 80 00 20 */ blr
|
||||
/* 802936F8 A0 03 00 08 */ lhz r0, 8(r3)
|
||||
/* 802936FC 54 00 06 3E */ clrlwi r0, r0, 0x18
|
||||
/* 80293700 B0 03 00 08 */ sth r0, 8(r3)
|
||||
/* 80293704 A0 83 00 08 */ lhz r4, 8(r3)
|
||||
/* 80293708 54 A0 44 2E */ rlwinm r0, r5, 8, 0x10, 0x17
|
||||
/* 8029370C 7C 80 03 78 */ or r0, r4, r0
|
||||
/* 80293710 B0 03 00 08 */ sth r0, 8(r3)
|
||||
/* 80293714 4E 80 00 20 */ blr
|
||||
/* 80293718 A0 03 00 08 */ lhz r0, 8(r3)
|
||||
/* 8029371C 54 00 04 2E */ rlwinm r0, r0, 0, 0x10, 0x17
|
||||
/* 80293720 B0 03 00 08 */ sth r0, 8(r3)
|
||||
/* 80293724 A0 83 00 08 */ lhz r4, 8(r3)
|
||||
/* 80293728 54 A0 06 3E */ clrlwi r0, r5, 0x18
|
||||
/* 8029372C 7C 80 03 78 */ or r0, r4, r0
|
||||
/* 80293730 B0 03 00 08 */ sth r0, 8(r3)
|
||||
/* 80293734 4E 80 00 20 */ blr
|
||||
/* 80293738 A0 03 00 0A */ lhz r0, 0xa(r3)
|
||||
/* 8029373C 54 00 06 3E */ clrlwi r0, r0, 0x18
|
||||
/* 80293740 B0 03 00 0A */ sth r0, 0xa(r3)
|
||||
/* 80293744 A0 83 00 0A */ lhz r4, 0xa(r3)
|
||||
/* 80293748 54 A0 44 2E */ rlwinm r0, r5, 8, 0x10, 0x17
|
||||
/* 8029374C 7C 80 03 78 */ or r0, r4, r0
|
||||
/* 80293750 B0 03 00 0A */ sth r0, 0xa(r3)
|
||||
/* 80293754 4E 80 00 20 */ blr
|
||||
/* 80293758 A0 03 00 0A */ lhz r0, 0xa(r3)
|
||||
/* 8029375C 54 00 04 2E */ rlwinm r0, r0, 0, 0x10, 0x17
|
||||
/* 80293760 B0 03 00 0A */ sth r0, 0xa(r3)
|
||||
/* 80293764 A0 83 00 0A */ lhz r4, 0xa(r3)
|
||||
/* 80293768 54 A0 06 3E */ clrlwi r0, r5, 0x18
|
||||
/* 8029376C 7C 80 03 78 */ or r0, r4, r0
|
||||
/* 80293770 B0 03 00 0A */ sth r0, 0xa(r3)
|
||||
/* 80293774 4E 80 00 20 */ blr
|
||||
/* 80293778 54 A0 84 3E */ srwi r0, r5, 0x10
|
||||
/* 8029377C B0 03 00 0C */ sth r0, 0xc(r3)
|
||||
/* 80293780 B0 A3 00 0E */ sth r5, 0xe(r3)
|
||||
/* 80293784 4E 80 00 20 */ blr
|
||||
/* 80293788 54 A0 84 3E */ srwi r0, r5, 0x10
|
||||
/* 8029378C B0 03 00 10 */ sth r0, 0x10(r3)
|
||||
/* 80293790 B0 A3 00 12 */ sth r5, 0x12(r3)
|
||||
/* 80293794 4E 80 00 20 */ blr
|
||||
/* 80293798 54 A0 84 3E */ srwi r0, r5, 0x10
|
||||
/* 8029379C B0 03 00 14 */ sth r0, 0x14(r3)
|
||||
/* 802937A0 B0 A3 00 16 */ sth r5, 0x16(r3)
|
||||
/* 802937A4 4E 80 00 20 */ blr
|
||||
/* 802937A8 54 A0 84 3E */ srwi r0, r5, 0x10
|
||||
/* 802937AC B0 03 00 18 */ sth r0, 0x18(r3)
|
||||
/* 802937B0 B0 A3 00 1A */ sth r5, 0x1a(r3)
|
||||
/* 802937B4 4E 80 00 20 */ blr
|
|
@ -1,68 +0,0 @@
|
|||
lbl_80290F64:
|
||||
/* 80290F64 94 21 FF 80 */ stwu r1, -0x80(r1)
|
||||
/* 80290F68 7C 08 02 A6 */ mflr r0
|
||||
/* 80290F6C 90 01 00 84 */ stw r0, 0x84(r1)
|
||||
/* 80290F70 93 E1 00 7C */ stw r31, 0x7c(r1)
|
||||
/* 80290F74 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80290F78 40 86 00 24 */ bne cr1, lbl_80290F9C
|
||||
/* 80290F7C D8 21 00 28 */ stfd f1, 0x28(r1)
|
||||
/* 80290F80 D8 41 00 30 */ stfd f2, 0x30(r1)
|
||||
/* 80290F84 D8 61 00 38 */ stfd f3, 0x38(r1)
|
||||
/* 80290F88 D8 81 00 40 */ stfd f4, 0x40(r1)
|
||||
/* 80290F8C D8 A1 00 48 */ stfd f5, 0x48(r1)
|
||||
/* 80290F90 D8 C1 00 50 */ stfd f6, 0x50(r1)
|
||||
/* 80290F94 D8 E1 00 58 */ stfd f7, 0x58(r1)
|
||||
/* 80290F98 D9 01 00 60 */ stfd f8, 0x60(r1)
|
||||
lbl_80290F9C:
|
||||
/* 80290F9C 90 61 00 08 */ stw r3, 8(r1)
|
||||
/* 80290FA0 90 81 00 0C */ stw r4, 0xc(r1)
|
||||
/* 80290FA4 90 A1 00 10 */ stw r5, 0x10(r1)
|
||||
/* 80290FA8 90 C1 00 14 */ stw r6, 0x14(r1)
|
||||
/* 80290FAC 90 E1 00 18 */ stw r7, 0x18(r1)
|
||||
/* 80290FB0 91 01 00 1C */ stw r8, 0x1c(r1)
|
||||
/* 80290FB4 91 21 00 20 */ stw r9, 0x20(r1)
|
||||
/* 80290FB8 91 41 00 24 */ stw r10, 0x24(r1)
|
||||
/* 80290FBC 80 0D 8C A0 */ lwz r0, sBuffer(r13)
|
||||
/* 80290FC0 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80290FC4 41 82 00 88 */ beq lbl_8029104C
|
||||
/* 80290FC8 3C 00 01 00 */ lis r0, 0x100
|
||||
/* 80290FCC 90 01 00 6C */ stw r0, 0x6c(r1)
|
||||
/* 80290FD0 38 01 00 88 */ addi r0, r1, 0x88
|
||||
/* 80290FD4 90 01 00 70 */ stw r0, 0x70(r1)
|
||||
/* 80290FD8 38 01 00 08 */ addi r0, r1, 8
|
||||
/* 80290FDC 90 01 00 74 */ stw r0, 0x74(r1)
|
||||
/* 80290FE0 3C 60 80 43 */ lis r3, sMutex@ha /* 0x80431660@ha */
|
||||
/* 80290FE4 38 63 16 60 */ addi r3, r3, sMutex@l /* 0x80431660@l */
|
||||
/* 80290FE8 90 61 00 68 */ stw r3, 0x68(r1)
|
||||
/* 80290FEC 48 0A E0 55 */ bl OSLockMutex
|
||||
/* 80290FF0 80 6D 8C A0 */ lwz r3, sBuffer(r13)
|
||||
/* 80290FF4 80 0D 8C AC */ lwz r0, sTop(r13)
|
||||
/* 80290FF8 54 00 30 32 */ slwi r0, r0, 6
|
||||
/* 80290FFC 7C 63 02 14 */ add r3, r3, r0
|
||||
/* 80291000 38 80 00 40 */ li r4, 0x40
|
||||
/* 80291004 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80291008 38 C1 00 6C */ addi r6, r1, 0x6c
|
||||
/* 8029100C 48 0D 56 85 */ bl vsnprintf
|
||||
/* 80291010 80 6D 8C AC */ lwz r3, sTop(r13)
|
||||
/* 80291014 38 03 00 01 */ addi r0, r3, 1
|
||||
/* 80291018 90 0D 8C AC */ stw r0, sTop(r13)
|
||||
/* 8029101C 80 8D 8C A4 */ lwz r4, sLineMax(r13)
|
||||
/* 80291020 7C 00 20 00 */ cmpw r0, r4
|
||||
/* 80291024 41 80 00 0C */ blt lbl_80291030
|
||||
/* 80291028 38 00 00 00 */ li r0, 0
|
||||
/* 8029102C 90 0D 8C AC */ stw r0, sTop(r13)
|
||||
lbl_80291030:
|
||||
/* 80291030 80 6D 8C A8 */ lwz r3, sLineCount(r13)
|
||||
/* 80291034 7C 03 20 00 */ cmpw r3, r4
|
||||
/* 80291038 40 80 00 0C */ bge lbl_80291044
|
||||
/* 8029103C 38 03 00 01 */ addi r0, r3, 1
|
||||
/* 80291040 90 0D 8C A8 */ stw r0, sLineCount(r13)
|
||||
lbl_80291044:
|
||||
/* 80291044 80 61 00 68 */ lwz r3, 0x68(r1)
|
||||
/* 80291048 48 0A E0 D5 */ bl OSUnlockMutex
|
||||
lbl_8029104C:
|
||||
/* 8029104C 83 E1 00 7C */ lwz r31, 0x7c(r1)
|
||||
/* 80291050 80 01 00 84 */ lwz r0, 0x84(r1)
|
||||
/* 80291054 7C 08 03 A6 */ mtlr r0
|
||||
/* 80291058 38 21 00 80 */ addi r1, r1, 0x80
|
||||
/* 8029105C 4E 80 00 20 */ blr
|
|
@ -8,7 +8,7 @@ class JASTaskThread;
|
|||
class JASDvd {
|
||||
public:
|
||||
/* 8028FEFC */ static JASTaskThread* getThreadPointer();
|
||||
/* 8028FF04 */ void createThread(s32, int, u32);
|
||||
/* 8028FF04 */ static bool createThread(s32, int, u32);
|
||||
|
||||
static JASTaskThread* sThread;
|
||||
};
|
||||
|
|
|
@ -122,4 +122,7 @@ private:
|
|||
}
|
||||
};
|
||||
|
||||
struct JKRSolidHeap;
|
||||
extern JKRSolidHeap* JASDram;
|
||||
|
||||
#endif /* JASHEAPCTRL_H */
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
#ifndef JASMUTEX_H
|
||||
#define JASMUTEX_H
|
||||
|
||||
#include "dolphin/os/OSMutex.h"
|
||||
|
||||
struct JASMutexLock {
|
||||
JASMutexLock(OSMutex* mutex) {
|
||||
mMutex = mutex;
|
||||
OSLockMutex(mMutex);
|
||||
}
|
||||
~JASMutexLock() { OSUnlockMutex(mMutex); }
|
||||
|
||||
/* 0x0 */ OSMutex* mMutex;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -3,4 +3,22 @@
|
|||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
struct JASProbe {
|
||||
/* 80290EE4 */ static void start(s32, char const*);
|
||||
/* 80290D74 */ void start(char const*);
|
||||
/* 80290DC4 */ void stop();
|
||||
/* 80290F24 */ static void stop(s32);
|
||||
|
||||
static JASProbe* sProbeTable[16];
|
||||
|
||||
/* 0x000 */ char const* mName;
|
||||
/* 0x004 */ long mStartTime;
|
||||
/* 0x008 */ f32 _08;
|
||||
/* 0x00C */ f32 _0C;
|
||||
/* 0x010 */ f32 _10;
|
||||
/* 0x014 */ f32 _14;
|
||||
/* 0x018 */ f32 _18[100];
|
||||
/* 0x1A8 */ u32 _1A8;
|
||||
};
|
||||
|
||||
#endif /* JASPROBE_H */
|
||||
|
|
|
@ -3,4 +3,17 @@
|
|||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
struct JASRegisterParam {
|
||||
enum RegID {
|
||||
|
||||
};
|
||||
|
||||
/* 80293644 */ JASRegisterParam();
|
||||
/* 80293664 */ void init();
|
||||
/* 80293684 */ void write(JASRegisterParam::RegID, u32);
|
||||
/* 802937B8 */ u32 read(JASRegisterParam::RegID);
|
||||
|
||||
u16 field_0x0[14];
|
||||
};
|
||||
|
||||
#endif /* JASREGISTERPARAM_H */
|
||||
|
|
|
@ -18,6 +18,7 @@ public:
|
|||
|
||||
/* 0x7C */ OSThreadQueue* mpThreadQueue;
|
||||
/* 0x84 */ bool field_0x84;
|
||||
/* 0x88 */ u32 field_0x88;
|
||||
};
|
||||
|
||||
#endif /* JASTASKTHREAD_H */
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include "JSystem/JSupport/JSUList.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/os/OSMutex.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dolphin/os/OSMutex.h"
|
||||
|
||||
class JKRHeap;
|
||||
class JKRSolidHeap;
|
||||
|
@ -93,14 +93,4 @@ struct JASWaveArc : JASDisposer {
|
|||
/* 0x5C */ OSMutex mMutex;
|
||||
};
|
||||
|
||||
struct JASMutexLock {
|
||||
JASMutexLock(OSMutex* mutex) {
|
||||
mMutex = mutex;
|
||||
OSLockMutex(mMutex);
|
||||
}
|
||||
~JASMutexLock() { OSUnlockMutex(mMutex); }
|
||||
|
||||
/* 0x0 */ OSMutex* mMutex;
|
||||
};
|
||||
|
||||
#endif /* JASWAVEARCLOADER_H */
|
||||
|
|
|
@ -4,7 +4,9 @@
|
|||
//
|
||||
|
||||
#include "JSystem/JAudio2/JASDvdThread.h"
|
||||
#include "dol2asm.h"
|
||||
#include "JSystem/JAudio2/JASTaskThread.h"
|
||||
#include "JSystem/JAudio2/JASHeapCtrl.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "dolphin/os/OSThread.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
@ -12,22 +14,10 @@
|
|||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" u32 getThreadPointer__6JASDvdFv();
|
||||
extern "C" void createThread__6JASDvdFliUl();
|
||||
extern "C" u8 sThread__6JASDvd[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__13JASTaskThreadFiiUl();
|
||||
extern "C" void* __nw__FUlP7JKRHeapi();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 JASDram[4];
|
||||
extern "C" u8 sSystemHeap__7JKRHeap[4];
|
||||
extern "C" u8 sCurrentHeap__7JKRHeap[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
@ -42,11 +32,10 @@ JASTaskThread* JASDvd::getThreadPointer() {
|
|||
}
|
||||
|
||||
/* 8028FF04-8028FFA8 28A844 00A4+00 0/0 1/1 0/0 .text createThread__6JASDvdFliUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASDvd::createThread(s32 param_0, int param_1, u32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASDvdThread/createThread__6JASDvdFliUl.s"
|
||||
bool JASDvd::createThread(s32 priority, int param_1, u32 param_2) {
|
||||
if (sThread != NULL) return false;
|
||||
sThread = new (JASDram, 0) JASTaskThread(priority, param_1, param_2);
|
||||
sThread->setCurrentHeap(JKRGetSystemHeap());
|
||||
OSResumeThread(sThread->getThreadRecord());
|
||||
return true;
|
||||
}
|
||||
#pragma pop
|
||||
|
|
|
@ -213,8 +213,7 @@ asm JASGenericMemPool::~JASGenericMemPool() {
|
|||
|
||||
/* ############################################################################################## */
|
||||
/* 80451210-80451214 000710 0004+00 2/2 15/15 0/0 .sbss JASDram */
|
||||
extern u8 JASDram[4];
|
||||
u8 JASDram[4];
|
||||
JKRSolidHeap* JASDram;
|
||||
|
||||
/* 802908C8-80290948 28B208 0080+00 0/0 4/4 0/0 .text newMemPool__17JASGenericMemPoolFUli
|
||||
*/
|
||||
|
|
|
@ -4,101 +4,69 @@
|
|||
//
|
||||
|
||||
#include "JSystem/JAudio2/JASProbe.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JASProbe {
|
||||
/* 80290EE4 */ void start(s32, char const*);
|
||||
/* 80290D74 */ void start(char const*);
|
||||
/* 80290DC4 */ void stop();
|
||||
/* 80290F24 */ void stop(s32);
|
||||
|
||||
static u8 sProbeTable[64];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void start__8JASProbeFPCc();
|
||||
extern "C" void stop__8JASProbeFv();
|
||||
extern "C" void start__8JASProbeFlPCc();
|
||||
extern "C" void stop__8JASProbeFl();
|
||||
extern "C" u8 sProbeTable__8JASProbe[64];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void OSDisableInterrupts();
|
||||
extern "C" void OSRestoreInterrupts();
|
||||
extern "C" void OSGetTime();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80290D74-80290DC4 28B6B4 0050+00 1/1 0/0 0/0 .text start__8JASProbeFPCc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASProbe::start(char const* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASProbe/start__8JASProbeFPCc.s"
|
||||
void JASProbe::start(char const* name) {
|
||||
volatile BOOL interrupts = OSDisableInterrupts();
|
||||
mName = name;
|
||||
mStartTime = OSGetTime();
|
||||
OSRestoreInterrupts(interrupts);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455588-8045558C 003B88 0004+00 1/1 0/0 0/0 .sdata2 @125 */
|
||||
SECTION_SDATA2 static f32 lit_125 = 59.939998626708984f;
|
||||
|
||||
/* 8045558C-80455590 003B8C 0004+00 1/1 0/0 0/0 .sdata2 @126 */
|
||||
SECTION_SDATA2 static f32 lit_126 = 24.0f / 25.0f;
|
||||
|
||||
/* 80455590-80455598 003B90 0004+04 1/1 0/0 0/0 .sdata2 @127 */
|
||||
SECTION_SDATA2 static f32 lit_127[1 + 1 /* padding */] = {
|
||||
1.0f / 25.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80455598-804555A0 003B98 0008+00 1/1 0/0 0/0 .sdata2 @129 */
|
||||
SECTION_SDATA2 static f64 lit_129 = 4503599627370496.0 /* cast u32 to float */;
|
||||
|
||||
/* 80290DC4-80290EE4 28B704 0120+00 1/1 0/0 0/0 .text stop__8JASProbeFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASProbe::stop() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASProbe/stop__8JASProbeFv.s"
|
||||
void JASProbe::stop() {
|
||||
volatile int interrupts = OSDisableInterrupts();
|
||||
_08 = (u32)OSGetTime() - mStartTime;
|
||||
_08 /= OS_TIMER_CLOCK / 59.94f;
|
||||
if (_10 < _08 && 100 < _1A8) {
|
||||
_10 = _08;
|
||||
}
|
||||
_0C = _0C * 0.96f + _08 * 0.04f;
|
||||
u32 resultIndex = _1A8 % 100;
|
||||
_14 -= _18[resultIndex];
|
||||
_18[resultIndex] = _08;
|
||||
_14 += _08;
|
||||
_1A8++;
|
||||
OSRestoreInterrupts(interrupts);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80431620-80431660 05E340 0040+00 2/2 0/0 0/0 .bss sProbeTable__8JASProbe */
|
||||
u8 JASProbe::sProbeTable[64];
|
||||
JASProbe* JASProbe::sProbeTable[16];
|
||||
|
||||
/* 80290EE4-80290F24 28B824 0040+00 0/0 7/7 0/0 .text start__8JASProbeFlPCc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASProbe::start(s32 param_0, char const* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASProbe/start__8JASProbeFlPCc.s"
|
||||
void JASProbe::start(s32 index, char const* name) {
|
||||
if (index < 16) {
|
||||
if (sProbeTable[index] != NULL) {
|
||||
sProbeTable[index]->start(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80290F24-80290F64 28B864 0040+00 0/0 6/6 0/0 .text stop__8JASProbeFl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASProbe::stop(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASProbe/stop__8JASProbeFl.s"
|
||||
void JASProbe::stop(s32 index) {
|
||||
if (index < 16) {
|
||||
if (sProbeTable[index] != NULL) {
|
||||
sProbeTable[index]->stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
|
|
@ -4,31 +4,16 @@
|
|||
//
|
||||
|
||||
#include "JSystem/JAudio2/JASRegisterParam.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JASRegisterParam {
|
||||
struct RegID {};
|
||||
|
||||
/* 80293644 */ JASRegisterParam();
|
||||
/* 80293664 */ void init();
|
||||
/* 80293684 */ void write(JASRegisterParam::RegID, u32);
|
||||
/* 802937B8 */ void read(JASRegisterParam::RegID);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__16JASRegisterParamFv();
|
||||
extern "C" void init__16JASRegisterParamFv();
|
||||
extern "C" void write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl();
|
||||
extern "C" void read__16JASRegisterParamFQ216JASRegisterParam5RegID();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
@ -38,73 +23,129 @@ extern "C" void read__16JASRegisterParamFQ216JASRegisterParam5RegID();
|
|||
//
|
||||
|
||||
/* 80293644-80293664 28DF84 0020+00 0/0 1/1 0/0 .text __ct__16JASRegisterParamFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JASRegisterParam::JASRegisterParam() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASRegisterParam/__ct__16JASRegisterParamFv.s"
|
||||
JASRegisterParam::JASRegisterParam() {
|
||||
for (int i = 0; i < 14; i++) {
|
||||
field_0x0[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80293664-80293684 28DFA4 0020+00 0/0 1/1 0/0 .text init__16JASRegisterParamFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASRegisterParam::init() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASRegisterParam/init__16JASRegisterParamFv.s"
|
||||
void JASRegisterParam::init() {
|
||||
for (int i = 0; i < 14; i++) {
|
||||
field_0x0[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C5B90-803C5BB8 -00001 0028+00 1/1 0/0 0/0 .data @56 */
|
||||
SECTION_DATA static void* lit_56[10] = {
|
||||
(void*)(((char*)write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl) + 0x50),
|
||||
(void*)(((char*)write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl) + 0x64),
|
||||
(void*)(((char*)write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl) + 0x74),
|
||||
(void*)(((char*)write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl) + 0x94),
|
||||
(void*)(((char*)write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl) + 0xB4),
|
||||
(void*)(((char*)write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl) + 0xD4),
|
||||
(void*)(((char*)write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl) + 0xF4),
|
||||
(void*)(((char*)write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl) + 0x104),
|
||||
(void*)(((char*)write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl) + 0x114),
|
||||
(void*)(((char*)write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl) + 0x124),
|
||||
};
|
||||
|
||||
/* 80293684-802937B8 28DFC4 0134+00 1/0 4/4 0/0 .text
|
||||
* write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASRegisterParam::write(JASRegisterParam::RegID param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASRegisterParam/write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl.s"
|
||||
void JASRegisterParam::write(JASRegisterParam::RegID param_0, u32 param_1) {
|
||||
if (param_0 < 14) {
|
||||
if (param_0 <= 2) {
|
||||
field_0x0[param_0] = (u8)param_1;
|
||||
return;
|
||||
}
|
||||
|
||||
field_0x0[param_0] = param_1;
|
||||
return;
|
||||
}
|
||||
|
||||
switch (param_0) {
|
||||
case 32:
|
||||
field_0x0[0] = (param_1 >> 8) & 0xff;
|
||||
field_0x0[1] = param_1 & 0xff;
|
||||
break;
|
||||
case 33:
|
||||
field_0x0[4] = param_1 >> 16;
|
||||
field_0x0[5] = param_1;
|
||||
break;
|
||||
case 34:
|
||||
field_0x0[4] &= 0xff;
|
||||
field_0x0[4] |= ((param_1 & 0xff) << 8);
|
||||
break;
|
||||
case 35:
|
||||
field_0x0[4] &= 0xff00;
|
||||
field_0x0[4] |= param_1 & 0xff;
|
||||
break;
|
||||
case 36:
|
||||
field_0x0[5] &= 0xff;
|
||||
field_0x0[5] |= (param_1 & 0xff) << 8;
|
||||
break;
|
||||
case 37:
|
||||
field_0x0[5] &= 0xff00;
|
||||
field_0x0[5] |= param_1 & 0xff;
|
||||
break;
|
||||
case 38:
|
||||
field_0x0[6] = param_1 >> 16;
|
||||
field_0x0[7] = param_1;
|
||||
break;
|
||||
case 39:
|
||||
field_0x0[8] = param_1 >> 16;
|
||||
field_0x0[9] = param_1;
|
||||
break;
|
||||
case 40:
|
||||
field_0x0[10] = param_1 >> 16;
|
||||
field_0x0[11] = param_1;
|
||||
break;
|
||||
case 41:
|
||||
field_0x0[12] = param_1 >> 16;
|
||||
field_0x0[13] = param_1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C5BB8-803C5BE0 -00001 0028+00 1/1 0/0 0/0 .data @87 */
|
||||
SECTION_DATA static void* lit_87[10] = {
|
||||
(void*)(((char*)read__16JASRegisterParamFQ216JASRegisterParam5RegID) + 0x3C),
|
||||
(void*)(((char*)read__16JASRegisterParamFQ216JASRegisterParam5RegID) + 0x54),
|
||||
(void*)(((char*)read__16JASRegisterParamFQ216JASRegisterParam5RegID) + 0x68),
|
||||
(void*)(((char*)read__16JASRegisterParamFQ216JASRegisterParam5RegID) + 0x7C),
|
||||
(void*)(((char*)read__16JASRegisterParamFQ216JASRegisterParam5RegID) + 0x8C),
|
||||
(void*)(((char*)read__16JASRegisterParamFQ216JASRegisterParam5RegID) + 0xA0),
|
||||
(void*)(((char*)read__16JASRegisterParamFQ216JASRegisterParam5RegID) + 0xB0),
|
||||
(void*)(((char*)read__16JASRegisterParamFQ216JASRegisterParam5RegID) + 0xC4),
|
||||
(void*)(((char*)read__16JASRegisterParamFQ216JASRegisterParam5RegID) + 0xD8),
|
||||
(void*)(((char*)read__16JASRegisterParamFQ216JASRegisterParam5RegID) + 0xEC),
|
||||
};
|
||||
|
||||
/* 802937B8-802938BC 28E0F8 0104+00 1/0 1/1 0/0 .text
|
||||
* read__16JASRegisterParamFQ216JASRegisterParam5RegID */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASRegisterParam::read(JASRegisterParam::RegID param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASRegisterParam/read__16JASRegisterParamFQ216JASRegisterParam5RegID.s"
|
||||
u32 JASRegisterParam::read(JASRegisterParam::RegID param_0) {
|
||||
if (param_0 < 14) {
|
||||
return field_0x0[param_0];
|
||||
}
|
||||
u32 rv = 0;
|
||||
switch (param_0) {
|
||||
case 32:
|
||||
rv = ((field_0x0[0] & 0xff) << 8) | (field_0x0[1] & 0xff) ;
|
||||
break;
|
||||
case 33:
|
||||
rv = field_0x0[4];
|
||||
rv <<= 16;
|
||||
rv |= field_0x0[5];
|
||||
break;
|
||||
case 34:
|
||||
rv = (u8)(field_0x0[4] >> 8);
|
||||
break;
|
||||
case 35:
|
||||
rv = (u8)field_0x0[4];
|
||||
break;
|
||||
case 36:
|
||||
rv = (u8)(field_0x0[5] >> 8);
|
||||
break;
|
||||
case 37:
|
||||
rv = (u8)field_0x0[5];
|
||||
break;
|
||||
case 38:
|
||||
rv = field_0x0[6];
|
||||
rv <<= 16;
|
||||
rv |= field_0x0[7];
|
||||
break;
|
||||
case 39:
|
||||
rv = field_0x0[8];
|
||||
rv <<= 16;
|
||||
rv |= field_0x0[9];
|
||||
break;
|
||||
case 40:
|
||||
rv = field_0x0[10];
|
||||
rv <<= 16;
|
||||
rv |= field_0x0[11];
|
||||
break;
|
||||
case 41:
|
||||
// !@bug I think this should get field_0x0[12] and field_0x0[13]. Looks like a copy paste bug.
|
||||
rv = field_0x0[10];
|
||||
rv <<= 16;
|
||||
rv |= field_0x0[11];
|
||||
break;
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
#pragma pop
|
||||
|
|
|
@ -4,57 +4,59 @@
|
|||
//
|
||||
|
||||
#include "JSystem/JAudio2/JASReport.h"
|
||||
#include "dol2asm.h"
|
||||
#include "JSystem/JAudio2/JASMutex.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dolphin/os/OSMutex.h"
|
||||
#include "MSL_C/stdio.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void JASReport__FPCce();
|
||||
extern "C" extern u8 struct_80451230[8];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void OSLockMutex();
|
||||
extern "C" void OSUnlockMutex();
|
||||
extern "C" void vsnprintf();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80431660-80431678 05E380 0018+00 1/1 0/0 0/0 .bss sMutex */
|
||||
static u8 sMutex[24];
|
||||
static OSMutex sMutex;
|
||||
|
||||
/* 80451220-80451224 000720 0004+00 1/1 0/0 0/0 .sbss sBuffer */
|
||||
static u8 sBuffer[4];
|
||||
static char* sBuffer;
|
||||
|
||||
/* 80451224-80451228 000724 0004+00 1/1 0/0 0/0 .sbss sLineMax */
|
||||
static u8 sLineMax[4];
|
||||
static int sLineMax;
|
||||
|
||||
/* 80451228-8045122C 000728 0004+00 1/1 0/0 0/0 .sbss sLineCount */
|
||||
static u8 sLineCount[4];
|
||||
static int sLineCount;
|
||||
|
||||
/* 8045122C-80451230 00072C 0004+00 1/1 0/0 0/0 .sbss sTop */
|
||||
static u8 sTop[4];
|
||||
static int sTop;
|
||||
|
||||
/* 80290F64-80291060 28B8A4 00FC+00 0/0 5/5 0/0 .text JASReport__FPCce */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASReport(char const* param_0, ...) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASReport/JASReport__FPCce.s"
|
||||
void JASReport(const char * str, ...) {
|
||||
if(sBuffer) {
|
||||
va_list vl;
|
||||
va_start(vl, str);
|
||||
JASMutexLock mutexLock(&sMutex);
|
||||
vsnprintf(sBuffer + (sTop * 64), 64, str, vl);
|
||||
va_end(vl);
|
||||
|
||||
sTop++;
|
||||
if (sTop >= sLineMax)
|
||||
sTop = 0;
|
||||
|
||||
if (sLineCount < sLineMax)
|
||||
sLineCount++;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451230-80451238 -00001 0008+00 0/0 6/6 0/0 .sbss None */
|
||||
/* 80451230 0001+00 data_80451230 None */
|
||||
/* 80451231 0007+00 data_80451231 None */
|
||||
extern u8 struct_80451230[8];
|
||||
u8 struct_80451230[8];
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include "JSystem/JAudio2/JASWaveArcLoader.h"
|
||||
#include "JSystem/JAudio2/JASDvdThread.h"
|
||||
#include "JSystem/JAudio2/JASTaskThread.h"
|
||||
#include "JSystem/JAudio2/JASMutex.h"
|
||||
#include "JSystem/JKernel/JKRDvdAramRipper.h"
|
||||
#include "MSL_C/string.h"
|
||||
#include "dolphin/dvd/dvd.h"
|
||||
|
|
Loading…
Reference in New Issue