diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPInterpreter.cpp b/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPInterpreter.cpp index 94600fd50b..18c4508d8c 100644 --- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPInterpreter.cpp +++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPInterpreter.cpp @@ -331,7 +331,7 @@ void tstaxh(const UDSPInstruction& opc) u8 reg = (opc.hex >> 8) & 0x1; s16 val = dsp_get_ax_h(reg); - Update_SR_Register(val); + Update_SR_Register16(val); } void clr(const UDSPInstruction& opc) @@ -340,7 +340,7 @@ void clr(const UDSPInstruction& opc) dsp_set_long_acc(reg, 0); - Update_SR_Register((s64)0); + Update_SR_Register64((s64)0); // really? } void clrp(const UDSPInstruction& opc) @@ -360,7 +360,7 @@ void mulc(const UDSPInstruction& opc) s64 prod = dsp_get_acc_m(sreg) * dsp_get_ax_h(treg) * GetMultiplyModifier(); dsp_set_long_prod(prod); - Update_SR_Register(prod); + Update_SR_Register64(prod); } // TODO: Implement @@ -386,7 +386,7 @@ void cmpar(const UDSPInstruction& opc) s64 ar = dsp_get_long_acc(areg); - Update_SR_Register(ar - rr); + Update_SR_Register64(ar - rr); } void cmp(const UDSPInstruction& opc) @@ -394,7 +394,7 @@ void cmp(const UDSPInstruction& opc) s64 acc0 = dsp_get_long_acc(0); s64 acc1 = dsp_get_long_acc(1); - Update_SR_Register(acc0 - acc1); + Update_SR_Register64(acc0 - acc1); } void tsta(const UDSPInstruction& opc) @@ -402,7 +402,7 @@ void tsta(const UDSPInstruction& opc) u8 reg = (opc.hex >> 11) & 0x1; s64 acc = dsp_get_long_acc(reg); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void addaxl(const UDSPInstruction& opc) @@ -417,7 +417,7 @@ void addaxl(const UDSPInstruction& opc) dsp_set_long_acc(dreg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void addarn(const UDSPInstruction& opc) @@ -453,7 +453,7 @@ void movr(const UDSPInstruction& opc) dsp_set_long_acc(areg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void movax(const UDSPInstruction& opc) @@ -602,7 +602,7 @@ void subf(const UDSPInstruction& opc) s64 val = (s16)g_dsp.r[reg]; s64 res = val - imm; - Update_SR_Register(res); + Update_SR_Register64(res); } // FIXME inside @@ -618,7 +618,7 @@ void xori(const UDSPInstruction& opc) u16 imm = dsp_fetch_code(); g_dsp.r[reg] ^= imm; - Update_SR_Register((s16)g_dsp.r[reg]); + Update_SR_Register16((s16)g_dsp.r[reg]); } //FIXME inside @@ -634,7 +634,7 @@ void andi(const UDSPInstruction& opc) u16 imm = dsp_fetch_code(); g_dsp.r[reg] &= imm; - Update_SR_Register((s16)g_dsp.r[reg]); + Update_SR_Register16((s16)g_dsp.r[reg]); } @@ -654,7 +654,7 @@ void ori(const UDSPInstruction& opc) u16 imm = dsp_fetch_code(); g_dsp.r[reg] |= imm; - Update_SR_Register((s16)g_dsp.r[reg]); + Update_SR_Register16((s16)g_dsp.r[reg]); } //------------------------------------------------------------- @@ -669,7 +669,7 @@ void add(const UDSPInstruction& opc) dsp_set_long_acc(areg, res); - Update_SR_Register(res); + Update_SR_Register64(res); } //------------------------------------------------------------- @@ -681,7 +681,7 @@ void addp(const UDSPInstruction& opc) acc = acc + dsp_get_long_prod(); dsp_set_long_acc(dreg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void cmpis(const UDSPInstruction& opc) @@ -694,7 +694,7 @@ void cmpis(const UDSPInstruction& opc) s64 res = acc - val; - Update_SR_Register(res); + Update_SR_Register64(res); } void addpaxz(const UDSPInstruction& opc) @@ -708,7 +708,7 @@ void addpaxz(const UDSPInstruction& opc) dsp_set_long_acc(dreg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void movpz(const UDSPInstruction& opc) @@ -720,7 +720,7 @@ void movpz(const UDSPInstruction& opc) s64 acc = prod & ~0xffff; dsp_set_long_acc(dreg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void decm(const UDSPInstruction& opc) @@ -732,7 +732,7 @@ void decm(const UDSPInstruction& opc) acc -= sub; dsp_set_long_acc(dreg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void dec(const UDSPInstruction& opc) @@ -742,7 +742,7 @@ void dec(const UDSPInstruction& opc) s64 acc = dsp_get_long_acc(dreg) - 1; dsp_set_long_acc(dreg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void incm(const UDSPInstruction& opc) @@ -754,7 +754,7 @@ void incm(const UDSPInstruction& opc) acc += sub; dsp_set_long_acc(dreg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void inc(const UDSPInstruction& opc) @@ -765,7 +765,7 @@ void inc(const UDSPInstruction& opc) acc++; dsp_set_long_acc(dreg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void neg(const UDSPInstruction& opc) @@ -776,7 +776,7 @@ void neg(const UDSPInstruction& opc) acc = 0 - acc; dsp_set_long_acc(areg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } @@ -806,7 +806,7 @@ void addax(const UDSPInstruction& opc) acc += ax; dsp_set_long_acc(areg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void addr(const UDSPInstruction& opc) @@ -821,7 +821,7 @@ void addr(const UDSPInstruction& opc) acc += ax; dsp_set_long_acc(areg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void subr(const UDSPInstruction& opc) @@ -836,7 +836,7 @@ void subr(const UDSPInstruction& opc) acc -= ax; dsp_set_long_acc(areg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void subax(const UDSPInstruction& opc) @@ -847,7 +847,7 @@ void subax(const UDSPInstruction& opc) s64 Acc = dsp_get_long_acc(regD) - dsp_get_long_acx(regT); dsp_set_long_acc(regD, Acc); - Update_SR_Register(Acc); + Update_SR_Register64(Acc); } void addis(const UDSPInstruction& opc) @@ -860,7 +860,7 @@ void addis(const UDSPInstruction& opc) acc += Imm; dsp_set_long_acc(areg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void addi(const UDSPInstruction& opc) @@ -873,7 +873,7 @@ void addi(const UDSPInstruction& opc) acc += sub; dsp_set_long_acc(areg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void lsl16(const UDSPInstruction& opc) @@ -884,7 +884,7 @@ void lsl16(const UDSPInstruction& opc) acc <<= 16; dsp_set_long_acc(areg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void madd(const UDSPInstruction& opc) @@ -913,7 +913,7 @@ void lsr16(const UDSPInstruction& opc) acc >>= 16; dsp_set_long_acc(areg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void asr16(const UDSPInstruction& opc) @@ -924,7 +924,7 @@ void asr16(const UDSPInstruction& opc) acc >>= 16; dsp_set_long_acc(areg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } void shifti(const UDSPInstruction& opc) @@ -974,7 +974,7 @@ void shifti(const UDSPInstruction& opc) dsp_set_long_acc(opc.areg, acc); - Update_SR_Register(acc); + Update_SR_Register64(acc); } //------------------------------------------------------------- @@ -1067,7 +1067,7 @@ void mul(const UDSPInstruction& opc) dsp_set_long_prod(prod); - Update_SR_Register(prod); + Update_SR_Register64(prod); } void mulac(const UDSPInstruction& opc) @@ -1082,7 +1082,7 @@ void mulac(const UDSPInstruction& opc) s64 prod = dsp_get_ax_l(sreg) * dsp_get_ax_h(sreg) * GetMultiplyModifier(); dsp_set_long_prod(prod); - Update_SR_Register(prod); + Update_SR_Register64(prod); } void mulmv(const UDSPInstruction& opc) @@ -1101,7 +1101,7 @@ void mulmv(const UDSPInstruction& opc) dsp_set_long_prod(prod); - Update_SR_Register(prod); + Update_SR_Register64(prod); } void mulmvz(const UDSPInstruction& opc) @@ -1118,7 +1118,7 @@ void mulmvz(const UDSPInstruction& opc) prod = (s64)g_dsp.r[0x18 + sreg] * (s64)g_dsp.r[0x1a + sreg] * GetMultiplyModifier(); dsp_set_long_prod(prod); - Update_SR_Register(prod); + Update_SR_Register64(prod); } void mulx(const UDSPInstruction& opc) @@ -1132,7 +1132,7 @@ void mulx(const UDSPInstruction& opc) s64 prod = val1 * val2 * GetMultiplyModifier(); dsp_set_long_prod(prod); - Update_SR_Register(prod); + Update_SR_Register64(prod); } void mulxac(const UDSPInstruction& opc) @@ -1152,7 +1152,7 @@ void mulxac(const UDSPInstruction& opc) s64 prod = val1 * val2 * GetMultiplyModifier(); dsp_set_long_prod(prod); - Update_SR_Register(prod); + Update_SR_Register64(prod); } void mulxmv(const UDSPInstruction& opc) @@ -1172,7 +1172,7 @@ void mulxmv(const UDSPInstruction& opc) s64 prod = val1 * val2 * GetMultiplyModifier(); dsp_set_long_prod(prod); - Update_SR_Register(prod); + Update_SR_Register64(prod); } void mulxmvz(const UDSPInstruction& opc) @@ -1193,7 +1193,7 @@ void mulxmvz(const UDSPInstruction& opc) prod = val1 * val2 * GetMultiplyModifier(); dsp_set_long_prod(prod); - Update_SR_Register(prod); + Update_SR_Register64(prod); } void sub(const UDSPInstruction& opc) diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPInterpreter.h b/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPInterpreter.h index 550479ebd8..66e132222e 100644 --- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPInterpreter.h +++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPInterpreter.h @@ -20,7 +20,6 @@ #include "DSPTables.h" -#define SR_CMP_MASK 0x3f #define DSP_REG_MASK 0x1f #define R_SR 0x13 @@ -28,11 +27,6 @@ namespace DSPInterpreter { -// GLOBAL HELPER FUNCTIONS -void Update_SR_Register(s64 _Value); -s8 GetMultiplyModifier(); -// END OF HELPER FUNCTIONS - void unknown(const UDSPInstruction& opc); void call(const UDSPInstruction& opc); void callr(const UDSPInstruction& opc); @@ -95,7 +89,7 @@ void dar(const UDSPInstruction& opc); void iar(const UDSPInstruction& opc); void sbclr(const UDSPInstruction& opc); void sbset(const UDSPInstruction& opc); - void mov(const UDSPInstruction& opc); +void mov(const UDSPInstruction& opc); void movp(const UDSPInstruction& opc); void mul(const UDSPInstruction& opc); void mulac(const UDSPInstruction& opc); @@ -112,6 +106,7 @@ void maddc(const UDSPInstruction& opc); void msubc(const UDSPInstruction& opc); void srs(const UDSPInstruction& opc); void lrs(const UDSPInstruction& opc); +void nx(const UDSPInstruction& opc); // FIXME inside void rti(const UDSPInstruction& opc); @@ -129,7 +124,6 @@ void ori(const UDSPInstruction& opc); // TODO: PENDING IMPLEMENTATION / UNIMPLEMENTED void mulcmvz(const UDSPInstruction& opc); void mulcmv(const UDSPInstruction& opc); -void nx(const UDSPInstruction& opc); void movnp(const UDSPInstruction& opc); // END OF UNIMPLEMENTED diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/HLE_Functions.cpp b/Source/Plugins/Plugin_DSP_LLE-testing/Src/HLE_Functions.cpp index 579bcdcaef..75eb1c013f 100644 --- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/HLE_Functions.cpp +++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/HLE_Functions.cpp @@ -21,6 +21,7 @@ #include "Globals.h" #include "HLE_Helper.h" #include "DSPInterpreter.h" +#include "gdsp_condition_codes.h" // Avoid adding "DSPInterpreter::" to every instruction using namespace DSPInterpreter; @@ -93,27 +94,27 @@ u16 HLE_ROM_80E7_81F8() AX0_h = ReadDMEM(R00); R00++; ACC0 = 0; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_80E8: AX1_l = ReadDMEM(R01); R01++; ACC1 = 0; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_80E9: AC0_m = ReadDMEM(R02); R02++; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_80EA: AC0_l = ReadDMEM(R02); R02++; ACC1 = 0; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_80EB: AC1_m = ReadDMEM(R02); R02++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_80EC: AX0_h = ReadDMEM(R00); R00++; @@ -122,15 +123,15 @@ u16 HLE_ROM_80E7_81F8() R02++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_80EE: ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_80EF: WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_80F0: @@ -138,12 +139,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_80F1: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_80F2: AC0_l = ReadDMEM(R02); R02++; @@ -151,7 +152,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_80F4: @@ -159,12 +160,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_80F5: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_80F6: AC1_l = ReadDMEM(R02); R02++; @@ -172,7 +173,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_80F8: @@ -180,12 +181,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_80F9: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_80FA: AC0_l = ReadDMEM(R02); R02++; @@ -193,7 +194,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_80FC: @@ -201,12 +202,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_80FD: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_80FE: AC1_l = ReadDMEM(R02); R02++; @@ -214,7 +215,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8100: @@ -222,12 +223,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8101: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_8102: AC0_l = ReadDMEM(R02); R02++; @@ -235,7 +236,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_8104: @@ -243,12 +244,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8105: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8106: AC1_l = ReadDMEM(R02); R02++; @@ -256,7 +257,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8108: @@ -264,12 +265,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8109: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_810A: AC0_l = ReadDMEM(R02); R02++; @@ -277,7 +278,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_810C: @@ -285,12 +286,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_810D: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_810E: AC1_l = ReadDMEM(R02); R02++; @@ -298,7 +299,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8110: @@ -306,12 +307,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8111: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_8112: AC0_l = ReadDMEM(R02); R02++; @@ -319,7 +320,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_8114: @@ -327,12 +328,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8115: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8116: AC1_l = ReadDMEM(R02); R02++; @@ -340,7 +341,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8118: @@ -348,12 +349,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8119: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_811A: AC0_l = ReadDMEM(R02); R02++; @@ -361,7 +362,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_811C: @@ -369,12 +370,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_811D: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_811E: AC1_l = ReadDMEM(R02); R02++; @@ -382,7 +383,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8120: @@ -390,12 +391,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8121: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_8122: AC0_l = ReadDMEM(R02); R02++; @@ -403,7 +404,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_8124: @@ -411,12 +412,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8125: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8126: AC1_l = ReadDMEM(R02); R02++; @@ -424,7 +425,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8128: @@ -432,12 +433,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8129: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_812A: AC0_l = ReadDMEM(R02); R02++; @@ -445,7 +446,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_812C: @@ -453,12 +454,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_812D: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_812E: AC1_l = ReadDMEM(R02); R02++; @@ -466,7 +467,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8130: @@ -474,12 +475,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8131: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_8132: AC0_l = ReadDMEM(R02); R02++; @@ -487,7 +488,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_8134: @@ -495,12 +496,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8135: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8136: AC1_l = ReadDMEM(R02); R02++; @@ -508,7 +509,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8138: @@ -516,12 +517,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8139: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_813A: AC0_l = ReadDMEM(R02); R02++; @@ -529,7 +530,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_813C: @@ -537,12 +538,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_813D: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_813E: AC1_l = ReadDMEM(R02); R02++; @@ -550,7 +551,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8140: @@ -558,12 +559,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8141: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_8142: AC0_l = ReadDMEM(R02); R02++; @@ -571,7 +572,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_8144: @@ -579,12 +580,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8145: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8146: AC1_l = ReadDMEM(R02); R02++; @@ -592,7 +593,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8148: @@ -600,12 +601,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8149: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_814A: AC0_l = ReadDMEM(R02); R02++; @@ -613,7 +614,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_814C: @@ -621,12 +622,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_814D: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_814E: AC1_l = ReadDMEM(R02); R02++; @@ -634,7 +635,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8150: @@ -642,12 +643,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8151: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_8152: AC0_l = ReadDMEM(R02); R02++; @@ -655,7 +656,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_8154: @@ -663,12 +664,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8155: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8156: AC1_l = ReadDMEM(R02); R02++; @@ -676,7 +677,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8158: @@ -684,12 +685,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8159: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_815A: AC0_l = ReadDMEM(R02); R02++; @@ -697,7 +698,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_815C: @@ -705,12 +706,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_815D: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_815E: AC1_l = ReadDMEM(R02); R02++; @@ -718,7 +719,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8160: @@ -726,12 +727,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8161: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_8162: AC0_l = ReadDMEM(R02); R02++; @@ -739,7 +740,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_8164: @@ -747,12 +748,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8165: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8166: AC1_l = ReadDMEM(R02); R02++; @@ -760,7 +761,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8168: @@ -772,11 +773,11 @@ u16 HLE_ROM_80E7_81F8() AX0_l = AC0_m; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_816B: R01++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_816C: WriteDMEM(R03, AC1_m); R03++; @@ -784,7 +785,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_l); R03++; ACC0 = 0; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_816E: R00 = R04; // l_816F: @@ -795,27 +796,27 @@ u16 HLE_ROM_80E7_81F8() AX0_h = ReadDMEM(R00); R00++; ACC0 = 0; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8172: AX1_l = ReadDMEM(R01); R01++; ACC1 = 0; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_8173: AC0_m = ReadDMEM(R02); R02++; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8174: AC0_l = ReadDMEM(R02); R02++; ACC1 = 0; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_8175: AC1_m = ReadDMEM(R02); R02++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8176: AX0_h = ReadDMEM(R00); R00++; @@ -824,15 +825,15 @@ u16 HLE_ROM_80E7_81F8() R02++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8178: ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8179: WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_817A: @@ -840,12 +841,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_817B: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_817C: AC0_l = ReadDMEM(R02); R02++; @@ -853,7 +854,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_817E: @@ -861,12 +862,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_817F: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8180: AC1_l = ReadDMEM(R02); R02++; @@ -874,7 +875,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8182: @@ -882,12 +883,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8183: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_8184: AC0_l = ReadDMEM(R02); R02++; @@ -895,7 +896,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_8186: @@ -903,12 +904,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8187: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8188: AC1_l = ReadDMEM(R02); R02++; @@ -916,7 +917,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_818A: @@ -924,12 +925,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_818B: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_818C: AC0_l = ReadDMEM(R02); R02++; @@ -937,7 +938,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_818E: @@ -945,12 +946,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_818F: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8190: AC1_l = ReadDMEM(R02); R02++; @@ -958,7 +959,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_8192: @@ -966,12 +967,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8193: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_8194: AC0_l = ReadDMEM(R02); R02++; @@ -979,7 +980,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_8196: @@ -987,12 +988,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_8197: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_8198: AC1_l = ReadDMEM(R02); R02++; @@ -1000,7 +1001,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_819A: @@ -1008,12 +1009,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_819B: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_819C: AC0_l = ReadDMEM(R02); R02++; @@ -1021,7 +1022,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_819E: @@ -1029,12 +1030,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_819F: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_81A0: AC1_l = ReadDMEM(R02); R02++; @@ -1042,7 +1043,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_81A2: @@ -1050,12 +1051,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81A3: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_81A4: AC0_l = ReadDMEM(R02); R02++; @@ -1063,7 +1064,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_81A6: @@ -1071,12 +1072,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81A7: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_81A8: AC1_l = ReadDMEM(R02); R02++; @@ -1084,7 +1085,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_81AA: @@ -1092,12 +1093,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81AB: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_81AC: AC0_l = ReadDMEM(R02); R02++; @@ -1105,7 +1106,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_81AE: @@ -1113,12 +1114,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81AF: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_81B0: AC1_l = ReadDMEM(R02); R02++; @@ -1126,7 +1127,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_81B2: @@ -1134,12 +1135,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81B3: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_81B4: AC0_l = ReadDMEM(R02); R02++; @@ -1147,7 +1148,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_81B6: @@ -1155,12 +1156,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81B7: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_81B8: AC1_l = ReadDMEM(R02); R02++; @@ -1168,7 +1169,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_81BA: @@ -1176,12 +1177,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81BB: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_81BC: AC0_l = ReadDMEM(R02); R02++; @@ -1189,7 +1190,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_81BE: @@ -1197,12 +1198,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81BF: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_81C0: AC1_l = ReadDMEM(R02); R02++; @@ -1210,7 +1211,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_81C2: @@ -1218,12 +1219,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81C3: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_81C4: AC0_l = ReadDMEM(R02); R02++; @@ -1231,7 +1232,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_81C6: @@ -1239,12 +1240,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81C7: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_81C8: AC1_l = ReadDMEM(R02); R02++; @@ -1252,7 +1253,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_81CA: @@ -1260,12 +1261,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81CB: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_81CC: AC0_l = ReadDMEM(R02); R02++; @@ -1273,7 +1274,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_81CE: @@ -1281,12 +1282,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81CF: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_81D0: AC1_l = ReadDMEM(R02); R02++; @@ -1294,7 +1295,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_81D2: @@ -1302,12 +1303,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81D3: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_81D4: AC0_l = ReadDMEM(R02); R02++; @@ -1315,7 +1316,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_81D6: @@ -1323,12 +1324,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81D7: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_81D8: AC1_l = ReadDMEM(R02); R02++; @@ -1336,7 +1337,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_81DA: @@ -1344,12 +1345,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81DB: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_81DC: AC0_l = ReadDMEM(R02); R02++; @@ -1357,7 +1358,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_81DE: @@ -1365,12 +1366,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81DF: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_81E0: AC1_l = ReadDMEM(R02); R02++; @@ -1378,7 +1379,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_81E2: @@ -1386,12 +1387,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81E3: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_81E4: AC0_l = ReadDMEM(R02); R02++; @@ -1399,7 +1400,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_81E6: @@ -1407,12 +1408,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81E7: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_81E8: AC1_l = ReadDMEM(R02); R02++; @@ -1420,7 +1421,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_81EA: @@ -1428,12 +1429,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81EB: AC0_m = ReadDMEM(R02); R02++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_81EC: AC0_l = ReadDMEM(R02); R02++; @@ -1441,7 +1442,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_m); R03++; ACC0 <<= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); AX0_h = ReadDMEM(R00); R00++; // l_81EE: @@ -1449,12 +1450,12 @@ u16 HLE_ROM_80E7_81F8() R03++; ACC0 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81EF: AC1_m = ReadDMEM(R02); R02++; ACC0 >>= 16; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_81F0: AC1_l = ReadDMEM(R02); R02++; @@ -1462,7 +1463,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC0_m); R03++; ACC1 <<= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); AX0_h = ReadDMEM(R00); R00++; // l_81F2: @@ -1474,11 +1475,11 @@ u16 HLE_ROM_80E7_81F8() AX1_h = AC0_m; ACC1 += PROD; PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); + Update_SR_Register64(PROD); // l_81F5: R01++; ACC1 >>= 16; - Update_SR_Register(ACC1); + Update_SR_Register64(ACC1); // l_81F6: WriteDMEM(R03, AC1_m); R03++; @@ -1486,7 +1487,7 @@ u16 HLE_ROM_80E7_81F8() WriteDMEM(R03, AC1_l); R03++; ACC0 = 0; - Update_SR_Register(ACC0); + Update_SR_Register64(ACC0); // l_81F8: //missing: dsp_opc_ret; diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_condition_codes.cpp b/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_condition_codes.cpp index 123e763a99..2223c8b1c5 100644 --- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_condition_codes.cpp +++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_condition_codes.cpp @@ -26,7 +26,7 @@ namespace DSPInterpreter { -void Update_SR_Register(s64 _Value) +void Update_SR_Register64(s64 _Value) { g_dsp.r[R_SR] &= ~SR_CMP_MASK; @@ -47,7 +47,7 @@ void Update_SR_Register(s64 _Value) } } -void Update_SR_Register(s16 _Value) +void Update_SR_Register16(s16 _Value) { g_dsp.r[R_SR] &= ~SR_CMP_MASK; @@ -68,13 +68,12 @@ void Update_SR_Register(s16 _Value) } } -s8 GetMultiplyModifier() +int GetMultiplyModifier() { if (g_dsp.r[R_SR] & (1 << 13)) - { - return(1); - } - return 2; + return 1; + else + return 2; } diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_condition_codes.h b/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_condition_codes.h index 5877b2d409..5ecaa267d9 100644 --- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_condition_codes.h +++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_condition_codes.h @@ -28,11 +28,22 @@ namespace DSPInterpreter { -bool CheckCondition(u8 _Condition); -s8 GetMultiplyModifier(); +// SR flag defines. +#define SR_CMP_MASK 0x3f // Shouldn't this include 0x40? -void Update_SR_Register(s16 _Value); -void Update_SR_Register(s64 _Value); +// These are probably not accurate. Do not use yet. +#define SR_LOGIC_ZERO 0x0040 // ?? duddie's doc sometimes say & 1<<6 (0x40), sometimes 1<<14 (0x4000), while we have 0x20 .. eh +#define SR_PROD_MUL2 0x2000 +#define SR_SIGN 0x0008 +#define SR_ARITH_ZERO 0x0002 // ???????? +#define SR_INT_ENABLE 0x0200 // Not 100% sure but duddie says so. This should replace the hack, if so. +#define SR_MUL_MODIFY 0x2000 // 1 = normal. 0 = x2 + +bool CheckCondition(u8 _Condition); +int GetMultiplyModifier(); + +void Update_SR_Register16(s16 _Value); +void Update_SR_Register64(s64 _Value); } // namespace diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_interpreter.cpp b/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_interpreter.cpp index f962b6ce1b..e20ab919d5 100644 --- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_interpreter.cpp +++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_interpreter.cpp @@ -65,14 +65,6 @@ extern volatile u32 dsp_running; static bool cr_halt = true; static bool cr_external_int = false; -// SR flag defines. -// These are probably not accurate. Do not use yet. -#define SR_LOGIC_ZERO 0x0040 // ?? duddie's doc sometimes say & 1<<6, sometimes 1<<14 (0x4000) -#define SR_PROD_MUL2 0x2000 -#define SR_SIGN 0x0008 -#define SR_ARITH_ZERO 0x0002 -#define SR_INT_ENABLE 0x0200 - void UpdateCachedCR() { cr_halt = (g_dsp.cr & 0x4) != 0; diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/gdsp_opcodes.cpp b/Source/Plugins/Plugin_DSP_LLE/Src/gdsp_opcodes.cpp index a3e22ec058..5ddce25360 100644 --- a/Source/Plugins/Plugin_DSP_LLE/Src/gdsp_opcodes.cpp +++ b/Source/Plugins/Plugin_DSP_LLE/Src/gdsp_opcodes.cpp @@ -92,14 +92,12 @@ void Update_SR_Register(sint16 _Value) } -sint8 GetMultiplyModifier() +int GetMultiplyModifier() { if (g_dsp.r[R_SR] & (1 << 13)) - { - return(1); - } - - return(2); + return 1; + else + return 2; }