diff --git a/asm/JSystem/JAudio2/JASDvdThread/createThread__6JASDvdFliUl.s b/asm/JSystem/JAudio2/JASDvdThread/createThread__6JASDvdFliUl.s deleted file mode 100644 index 75f8466e6b3..00000000000 --- a/asm/JSystem/JAudio2/JASDvdThread/createThread__6JASDvdFliUl.s +++ /dev/null @@ -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 diff --git a/asm/JSystem/JAudio2/JASProbe/start__8JASProbeFPCc.s b/asm/JSystem/JAudio2/JASProbe/start__8JASProbeFPCc.s deleted file mode 100644 index d2e71637edb..00000000000 --- a/asm/JSystem/JAudio2/JASProbe/start__8JASProbeFPCc.s +++ /dev/null @@ -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 diff --git a/asm/JSystem/JAudio2/JASProbe/start__8JASProbeFlPCc.s b/asm/JSystem/JAudio2/JASProbe/start__8JASProbeFlPCc.s deleted file mode 100644 index f8b76063b54..00000000000 --- a/asm/JSystem/JAudio2/JASProbe/start__8JASProbeFlPCc.s +++ /dev/null @@ -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 diff --git a/asm/JSystem/JAudio2/JASProbe/stop__8JASProbeFl.s b/asm/JSystem/JAudio2/JASProbe/stop__8JASProbeFl.s deleted file mode 100644 index 9efc8c24461..00000000000 --- a/asm/JSystem/JAudio2/JASProbe/stop__8JASProbeFl.s +++ /dev/null @@ -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 diff --git a/asm/JSystem/JAudio2/JASProbe/stop__8JASProbeFv.s b/asm/JSystem/JAudio2/JASProbe/stop__8JASProbeFv.s deleted file mode 100644 index 92b0c18df63..00000000000 --- a/asm/JSystem/JAudio2/JASProbe/stop__8JASProbeFv.s +++ /dev/null @@ -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 diff --git a/asm/JSystem/JAudio2/JASRegisterParam/__ct__16JASRegisterParamFv.s b/asm/JSystem/JAudio2/JASRegisterParam/__ct__16JASRegisterParamFv.s deleted file mode 100644 index b8c67ffb6d5..00000000000 --- a/asm/JSystem/JAudio2/JASRegisterParam/__ct__16JASRegisterParamFv.s +++ /dev/null @@ -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 diff --git a/asm/JSystem/JAudio2/JASRegisterParam/init__16JASRegisterParamFv.s b/asm/JSystem/JAudio2/JASRegisterParam/init__16JASRegisterParamFv.s deleted file mode 100644 index c9e5c877785..00000000000 --- a/asm/JSystem/JAudio2/JASRegisterParam/init__16JASRegisterParamFv.s +++ /dev/null @@ -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 diff --git a/asm/JSystem/JAudio2/JASRegisterParam/read__16JASRegisterParamFQ216JASRegisterParam5RegID.s b/asm/JSystem/JAudio2/JASRegisterParam/read__16JASRegisterParamFQ216JASRegisterParam5RegID.s deleted file mode 100644 index 8a9d1372588..00000000000 --- a/asm/JSystem/JAudio2/JASRegisterParam/read__16JASRegisterParamFQ216JASRegisterParam5RegID.s +++ /dev/null @@ -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 diff --git a/asm/JSystem/JAudio2/JASRegisterParam/write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl.s b/asm/JSystem/JAudio2/JASRegisterParam/write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl.s deleted file mode 100644 index b7afeeec9fc..00000000000 --- a/asm/JSystem/JAudio2/JASRegisterParam/write__16JASRegisterParamFQ216JASRegisterParam5RegIDUl.s +++ /dev/null @@ -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 diff --git a/asm/JSystem/JAudio2/JASReport/JASReport__FPCce.s b/asm/JSystem/JAudio2/JASReport/JASReport__FPCce.s deleted file mode 100644 index 8061530b8c6..00000000000 --- a/asm/JSystem/JAudio2/JASReport/JASReport__FPCce.s +++ /dev/null @@ -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 diff --git a/include/JSystem/JAudio2/JASDvdThread.h b/include/JSystem/JAudio2/JASDvdThread.h index 061f7bd496e..6710da05bec 100644 --- a/include/JSystem/JAudio2/JASDvdThread.h +++ b/include/JSystem/JAudio2/JASDvdThread.h @@ -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; }; diff --git a/include/JSystem/JAudio2/JASHeapCtrl.h b/include/JSystem/JAudio2/JASHeapCtrl.h index 78e9cbb69e0..6db339c6814 100644 --- a/include/JSystem/JAudio2/JASHeapCtrl.h +++ b/include/JSystem/JAudio2/JASHeapCtrl.h @@ -122,4 +122,7 @@ private: } }; +struct JKRSolidHeap; +extern JKRSolidHeap* JASDram; + #endif /* JASHEAPCTRL_H */ diff --git a/include/JSystem/JAudio2/JASMutex.h b/include/JSystem/JAudio2/JASMutex.h new file mode 100644 index 00000000000..c051e0ffb88 --- /dev/null +++ b/include/JSystem/JAudio2/JASMutex.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 diff --git a/include/JSystem/JAudio2/JASProbe.h b/include/JSystem/JAudio2/JASProbe.h index 630431551a9..22d1347d1ac 100644 --- a/include/JSystem/JAudio2/JASProbe.h +++ b/include/JSystem/JAudio2/JASProbe.h @@ -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 */ diff --git a/include/JSystem/JAudio2/JASRegisterParam.h b/include/JSystem/JAudio2/JASRegisterParam.h index 19b9a10a475..76cacdf259f 100644 --- a/include/JSystem/JAudio2/JASRegisterParam.h +++ b/include/JSystem/JAudio2/JASRegisterParam.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 */ diff --git a/include/JSystem/JAudio2/JASTaskThread.h b/include/JSystem/JAudio2/JASTaskThread.h index e24d03bb6d6..65374f9abe8 100644 --- a/include/JSystem/JAudio2/JASTaskThread.h +++ b/include/JSystem/JAudio2/JASTaskThread.h @@ -18,6 +18,7 @@ public: /* 0x7C */ OSThreadQueue* mpThreadQueue; /* 0x84 */ bool field_0x84; + /* 0x88 */ u32 field_0x88; }; #endif /* JASTASKTHREAD_H */ diff --git a/include/JSystem/JAudio2/JASWaveArcLoader.h b/include/JSystem/JAudio2/JASWaveArcLoader.h index 9e3610c6516..e804264b2a3 100644 --- a/include/JSystem/JAudio2/JASWaveArcLoader.h +++ b/include/JSystem/JAudio2/JASWaveArcLoader.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 */ diff --git a/libs/JSystem/JAudio2/JASDvdThread.cpp b/libs/JSystem/JAudio2/JASDvdThread.cpp index d3be1880b41..15b581e0c71 100644 --- a/libs/JSystem/JAudio2/JASDvdThread.cpp +++ b/libs/JSystem/JAudio2/JASDvdThread.cpp @@ -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 diff --git a/libs/JSystem/JAudio2/JASHeapCtrl.cpp b/libs/JSystem/JAudio2/JASHeapCtrl.cpp index fbaef9a02c3..6a5910b0f8f 100644 --- a/libs/JSystem/JAudio2/JASHeapCtrl.cpp +++ b/libs/JSystem/JAudio2/JASHeapCtrl.cpp @@ -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 */ diff --git a/libs/JSystem/JAudio2/JASProbe.cpp b/libs/JSystem/JAudio2/JASProbe.cpp index a2c71a55ee3..74da71d1c97 100644 --- a/libs/JSystem/JAudio2/JASProbe.cpp +++ b/libs/JSystem/JAudio2/JASProbe.cpp @@ -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 diff --git a/libs/JSystem/JAudio2/JASRegisterParam.cpp b/libs/JSystem/JAudio2/JASRegisterParam.cpp index 2ada11dbaac..ac06b2d8a80 100644 --- a/libs/JSystem/JAudio2/JASRegisterParam.cpp +++ b/libs/JSystem/JAudio2/JASRegisterParam.cpp @@ -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 diff --git a/libs/JSystem/JAudio2/JASReport.cpp b/libs/JSystem/JAudio2/JASReport.cpp index 669d64954db..828b0fd0d56 100644 --- a/libs/JSystem/JAudio2/JASReport.cpp +++ b/libs/JSystem/JAudio2/JASReport.cpp @@ -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]; diff --git a/libs/JSystem/JAudio2/JASWaveArcLoader.cpp b/libs/JSystem/JAudio2/JASWaveArcLoader.cpp index bf6104c7804..28d1f9eb292 100644 --- a/libs/JSystem/JAudio2/JASWaveArcLoader.cpp +++ b/libs/JSystem/JAudio2/JASWaveArcLoader.cpp @@ -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"