From 1156a0df9e552c07b896627b84f32e0cd8da50c0 Mon Sep 17 00:00:00 2001 From: nakeee Date: Mon, 6 Apr 2009 16:53:49 +0000 Subject: [PATCH] Fixed mov + some logging for memory write git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2899 8ced0084-cf51-0410-be5f-012b33b47a6e --- .../Src/DSPInterpreter.cpp | 5 ++- .../Src/gdsp_memory.cpp | 36 ++++++++++--------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPInterpreter.cpp b/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPInterpreter.cpp index ee28f30f8e..3a5fe63aaf 100644 --- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPInterpreter.cpp +++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/DSPInterpreter.cpp @@ -921,10 +921,9 @@ void movnp(const UDSPInstruction& opc) void mov(const UDSPInstruction& opc) { u8 D = (opc.hex >> 8) & 0x1; + u16 acc = dsp_get_acc_m(1 - D); - u16 ac1 = dsp_get_acc_m(D); - u16 ac2 = dsp_get_acc_m(1 - D); - dsp_set_long_acc(D, ac1 + ac2); + dsp_set_long_acc(D, acc); } // ADDAX $acD, $axS diff --git a/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_memory.cpp b/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_memory.cpp index 49bd960dc8..b7c52a0876 100644 --- a/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_memory.cpp +++ b/Source/Plugins/Plugin_DSP_LLE-testing/Src/gdsp_memory.cpp @@ -76,23 +76,27 @@ void dsp_dmem_write(u16 addr, u16 val) { switch (addr >> 12) { - case 0x8: // 8xxx DROM - ERROR_LOG(DSPHLE, "someone writes to ROM"); - /* val = dsp_swap16(val); - g_dsp.drom[addr & DSP_DROM_MASK] = val;*/ - break; + case 0x0: // 0xxx DRAM + g_dsp.dram[addr & DSP_DRAM_MASK] = dsp_swap16(val); + break; - case 0xf: // Fxxx HW regs - gdsp_ifx_write(addr, val); - break; - - case 0x0: // 0xxx DRAM - g_dsp.dram[addr & DSP_DRAM_MASK] = dsp_swap16(val); - break; - - default: // error - ERROR_LOG(DSPHLE, "%04x DSP ERROR: Write to UNKNOWN (%04x) memory", g_dsp.pc, addr); - break; + case 0x1: // 1xxx COEF + ERROR_LOG(DSPHLE, "someone writes to COEF"); + break; + + case 0x8: // 8xxx DROM + ERROR_LOG(DSPHLE, "someone writes to DROM"); + /* val = dsp_swap16(val); + g_dsp.drom[addr & DSP_DROM_MASK] = val;*/ + break; + + case 0xf: // Fxxx HW regs + gdsp_ifx_write(addr, val); + break; + + default: // error + ERROR_LOG(DSPHLE, "%04x DSP ERROR: Write to UNKNOWN (%04x) memory", g_dsp.pc, addr); + break; } }