diff --git a/hw/xbox/dsp/dsp_dis.inl b/hw/xbox/dsp/dsp_dis.inl index 78396ef070..666ce3c08f 100644 --- a/hw/xbox/dsp/dsp_dis.inl +++ b/hw/xbox/dsp/dsp_dis.inl @@ -1321,7 +1321,7 @@ static void dis_lua(dsp_core_t* dsp) static void dis_lua_rel(dsp_core_t* dsp) { - uint32_t aa = (dsp->disasm_cur_inst >> 4) & BITMASK(4) + uint32_t aa = ((dsp->disasm_cur_inst >> 4) & BITMASK(4)) + (((dsp->disasm_cur_inst >> 11) & BITMASK(3)) << 4); uint32_t addrreg = (dsp->disasm_cur_inst >> 8) & BITMASK(3); uint32_t dstreg = (dsp->disasm_cur_inst & BITMASK(3)); diff --git a/hw/xbox/dsp/dsp_emu.inl b/hw/xbox/dsp/dsp_emu.inl index f062a35169..3121c17984 100644 --- a/hw/xbox/dsp/dsp_emu.inl +++ b/hw/xbox/dsp/dsp_emu.inl @@ -7279,7 +7279,7 @@ static void emu_lua(dsp_core_t* dsp) static void emu_lua_rel(dsp_core_t* dsp) { - uint32_t aa = (dsp->cur_inst >> 4) & BITMASK(4) + uint32_t aa = ((dsp->cur_inst >> 4) & BITMASK(4)) + (((dsp->cur_inst >> 11) & BITMASK(3)) << 4); uint32_t addrreg = (dsp->cur_inst>>8) & BITMASK(3); uint32_t dstreg = dsp->cur_inst & BITMASK(3);