diff options
Diffstat (limited to 'src/JSystem/JAudio2/JASRegisterParam.cpp')
| -rw-r--r-- | src/JSystem/JAudio2/JASRegisterParam.cpp | 56 |
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; } |
