summaryrefslogtreecommitdiff
path: root/src/JSystem/JAudio2/JASRegisterParam.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/JSystem/JAudio2/JASRegisterParam.cpp')
-rw-r--r--src/JSystem/JAudio2/JASRegisterParam.cpp56
1 files changed, 31 insertions, 25 deletions
diff --git a/src/JSystem/JAudio2/JASRegisterParam.cpp b/src/JSystem/JAudio2/JASRegisterParam.cpp
index c619042106..02d3c140b9 100644
--- a/src/JSystem/JAudio2/JASRegisterParam.cpp
+++ b/src/JSystem/JAudio2/JASRegisterParam.cpp
@@ -1,6 +1,7 @@
#include "JSystem/JSystem.h" // IWYU pragma: keep
#include "JSystem/JAudio2/JASRegisterParam.h"
+#include "JSystem/JSupport/JSupport.h"
JASRegisterParam::JASRegisterParam() {
for (int i = 0; i < 14; i++) {
@@ -19,53 +20,55 @@ 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;
+ } else {
+ field_0x0[param_0] = param_1;
}
-
- 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;
+ field_0x0[0] = JSUHiByte(param_1);
+ field_0x0[1] = JSULoByte(param_1);
break;
case 33:
- field_0x0[4] = param_1 >> 16;
- field_0x0[5] = param_1;
+ field_0x0[4] = JSUHiHalf(param_1);
+ field_0x0[5] = JSULoHalf(param_1);
break;
case 34:
- field_0x0[4] &= 0xff;
- field_0x0[4] |= ((param_1 & 0xff) << 8);
+ field_0x0[4] = u8(field_0x0[4]);
+ field_0x0[4] |= u16((param_1 & 0xff) << 8);
break;
case 35:
field_0x0[4] &= 0xff00;
- field_0x0[4] |= param_1 & 0xff;
+ field_0x0[4] |= u8(param_1);
break;
case 36:
- field_0x0[5] &= 0xff;
- field_0x0[5] |= (param_1 & 0xff) << 8;
+ field_0x0[5] = u8(field_0x0[5]);
+ field_0x0[5] |= u16((param_1 & 0xff) << 8);
break;
case 37:
field_0x0[5] &= 0xff00;
- field_0x0[5] |= param_1 & 0xff;
+ field_0x0[5] |= u8(param_1);
break;
case 38:
- field_0x0[6] = param_1 >> 16;
- field_0x0[7] = param_1;
+ field_0x0[6] = JSUHiHalf(param_1);
+ field_0x0[7] = JSULoHalf(param_1);
break;
case 39:
- field_0x0[8] = param_1 >> 16;
- field_0x0[9] = param_1;
+ field_0x0[8] = JSUHiHalf(param_1);
+ field_0x0[9] = JSULoHalf(param_1);
break;
case 40:
- field_0x0[10] = param_1 >> 16;
- field_0x0[11] = param_1;
+ field_0x0[10] = JSUHiHalf(param_1);
+ field_0x0[11] = JSULoHalf(param_1);
break;
case 41:
- field_0x0[12] = param_1 >> 16;
- field_0x0[13] = param_1;
+ field_0x0[12] = JSUHiHalf(param_1);
+ field_0x0[13] = JSULoHalf(param_1);
+ break;
+ default:
+ JUT_WARN(92, "%s", "Warning: Unsupported REG id");
break;
}
}
@@ -86,16 +89,16 @@ u32 JASRegisterParam::read(JASRegisterParam::RegID param_0) {
rv |= field_0x0[5];
break;
case 34:
- rv = (u8)(field_0x0[4] >> 8);
+ rv = JSUHiByte(field_0x0[4]);
break;
case 35:
- rv = (u8)field_0x0[4];
+ rv = JSULoByte(field_0x0[4]);
break;
case 36:
- rv = (u8)(field_0x0[5] >> 8);
+ rv = JSUHiByte(field_0x0[5]);
break;
case 37:
- rv = (u8)field_0x0[5];
+ rv = JSULoByte(field_0x0[5]);
break;
case 38:
rv = field_0x0[6];
@@ -118,6 +121,9 @@ u32 JASRegisterParam::read(JASRegisterParam::RegID param_0) {
rv <<= 16;
rv |= field_0x0[11];
break;
+ default:
+ JUT_WARN(160, "%s", "Warning: Unsupported REG id");
+ break;
}
return rv;
}