From 3848e68585a7c2c1616135654b5bd7779e1c8aa6 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Wed, 13 Jan 2010 00:11:29 +0000 Subject: [PATCH] DSP LLE: code cleanup that doesn't affect behavior. Make DSPCore build properly in debugfast (breakpoints work again) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4816 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/DSPCore/DSPCore.vcproj | 8 +- Source/Core/DSPCore/Src/DSPCore.h | 216 ++++++------ Source/Core/DSPCore/Src/DSPIntExtOps.cpp | 88 ++--- Source/Core/DSPCore/Src/DspIntMultiplier.cpp | 9 +- .../Plugin_DSP_LLE/Src/Logging/AXTask.cpp | 91 ----- .../Plugin_DSP_LLE/Src/Logging/Logging.cpp | 331 ------------------ .../Plugin_DSP_LLE/Src/Logging/Logging.h | 23 -- .../Plugin_DSP_LLE/Src/Logging/ReadPBs.cpp | 103 ------ .../Src/Logging/UCode_AXStructs.h | 143 -------- Source/Plugins/Plugin_DSP_LLE/Src/main.cpp | 1 - 10 files changed, 159 insertions(+), 854 deletions(-) delete mode 100644 Source/Plugins/Plugin_DSP_LLE/Src/Logging/AXTask.cpp delete mode 100644 Source/Plugins/Plugin_DSP_LLE/Src/Logging/Logging.cpp delete mode 100644 Source/Plugins/Plugin_DSP_LLE/Src/Logging/Logging.h delete mode 100644 Source/Plugins/Plugin_DSP_LLE/Src/Logging/ReadPBs.cpp delete mode 100644 Source/Plugins/Plugin_DSP_LLE/Src/Logging/UCode_AXStructs.h diff --git a/Source/Core/DSPCore/DSPCore.vcproj b/Source/Core/DSPCore/DSPCore.vcproj index 34f8e428f4..0636e1c9d8 100644 --- a/Source/Core/DSPCore/DSPCore.vcproj +++ b/Source/Core/DSPCore/DSPCore.vcproj @@ -299,7 +299,7 @@ Optimization="2" EnableIntrinsicFunctions="true" AdditionalIncludeDirectories="..\Common\Src" - PreprocessorDefinitions="LOGGING;WIN32;NDEBUG;_LIB;_WINDOWS;NOPCH;_SECURE_SCL=0;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE" + PreprocessorDefinitions="DEBUGFAST;LOGGING;WIN32;_LIB;_WINDOWS;NOPCH;_SECURE_SCL=0;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE" RuntimeLibrary="0" EnableFunctionLevelLinking="true" UsePrecompiledHeader="0" @@ -363,7 +363,7 @@ Optimization="2" EnableIntrinsicFunctions="true" AdditionalIncludeDirectories="..\Common\Src" - PreprocessorDefinitions="LOGGING;WIN32;NDEBUG;_LIB;_WINDOWS;NOPCH;_SECURE_SCL=0;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE" + PreprocessorDefinitions="DEBUGFAST;LOGGING;WIN32;_LIB;_WINDOWS;NOPCH;_SECURE_SCL=0;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE" RuntimeLibrary="0" EnableFunctionLevelLinking="true" UsePrecompiledHeader="0" @@ -446,10 +446,6 @@ > - - diff --git a/Source/Core/DSPCore/Src/DSPCore.h b/Source/Core/DSPCore/Src/DSPCore.h index a14e205961..54cf3b76b1 100644 --- a/Source/Core/DSPCore/Src/DSPCore.h +++ b/Source/Core/DSPCore/Src/DSPCore.h @@ -30,149 +30,149 @@ #include "DSPBreakpoints.h" -#define DSP_IRAM_BYTE_SIZE 0x2000 -#define DSP_IRAM_SIZE 0x1000 -#define DSP_IRAM_MASK 0x0fff +#define DSP_IRAM_BYTE_SIZE 0x2000 +#define DSP_IRAM_SIZE 0x1000 +#define DSP_IRAM_MASK 0x0fff -#define DSP_IROM_BYTE_SIZE 0x2000 -#define DSP_IROM_SIZE 0x1000 -#define DSP_IROM_MASK 0x0fff +#define DSP_IROM_BYTE_SIZE 0x2000 +#define DSP_IROM_SIZE 0x1000 +#define DSP_IROM_MASK 0x0fff -#define DSP_DRAM_BYTE_SIZE 0x2000 -#define DSP_DRAM_SIZE 0x1000 -#define DSP_DRAM_MASK 0x0fff +#define DSP_DRAM_BYTE_SIZE 0x2000 +#define DSP_DRAM_SIZE 0x1000 +#define DSP_DRAM_MASK 0x0fff -#define DSP_COEF_BYTE_SIZE 0x1000 -#define DSP_COEF_SIZE 0x800 -#define DSP_COEF_MASK 0x7ff +#define DSP_COEF_BYTE_SIZE 0x1000 +#define DSP_COEF_SIZE 0x800 +#define DSP_COEF_MASK 0x7ff -#define DSP_RESET_VECTOR 0x8000 +#define DSP_RESET_VECTOR 0x8000 -#define DSP_STACK_DEPTH 0x20 -#define DSP_STACK_MASK 0x1f +#define DSP_STACK_DEPTH 0x20 +#define DSP_STACK_MASK 0x1f -#define DSP_CR_IMEM 2 -#define DSP_CR_DMEM 0 -#define DSP_CR_TO_CPU 1 -#define DSP_CR_FROM_CPU 0 +#define DSP_CR_IMEM 2 +#define DSP_CR_DMEM 0 +#define DSP_CR_TO_CPU 1 +#define DSP_CR_FROM_CPU 0 // Register table taken from libasnd -#define DSP_REG_AR0 0x00 // address registers -#define DSP_REG_AR1 0x01 -#define DSP_REG_AR2 0x02 -#define DSP_REG_AR3 0x03 +#define DSP_REG_AR0 0x00 // address registers +#define DSP_REG_AR1 0x01 +#define DSP_REG_AR2 0x02 +#define DSP_REG_AR3 0x03 -#define DSP_REG_IX0 0x04 // indexing registers (actually, mostly used as increments) -#define DSP_REG_IX1 0x05 -#define DSP_REG_IX2 0x06 -#define DSP_REG_IX3 0x07 +#define DSP_REG_IX0 0x04 // indexing registers (actually, mostly used as increments) +#define DSP_REG_IX1 0x05 +#define DSP_REG_IX2 0x06 +#define DSP_REG_IX3 0x07 -#define DSP_REG_WR0 0x08 // address wrapping registers. should be initialized to 0xFFFF if not used. -#define DSP_REG_WR1 0x09 -#define DSP_REG_WR2 0x0a -#define DSP_REG_WR3 0x0b +#define DSP_REG_WR0 0x08 // address wrapping registers. should be initialized to 0xFFFF if not used. +#define DSP_REG_WR1 0x09 +#define DSP_REG_WR2 0x0a +#define DSP_REG_WR3 0x0b -#define DSP_REG_ST0 0x0c // stacks. -#define DSP_REG_ST1 0x0d -#define DSP_REG_ST2 0x0e -#define DSP_REG_ST3 0x0f +#define DSP_REG_ST0 0x0c // stacks. +#define DSP_REG_ST1 0x0d +#define DSP_REG_ST2 0x0e +#define DSP_REG_ST3 0x0f -#define DSP_REG_CR 0x12 // Seems to be the top 8 bits of LRS/SRS. -#define DSP_REG_SR 0x13 +#define DSP_REG_CR 0x12 // Seems to be the top 8 bits of LRS/SRS. +#define DSP_REG_SR 0x13 -#define DSP_REG_PRODL 0x14 // product. -#define DSP_REG_PRODM 0x15 -#define DSP_REG_PRODH 0x16 -#define DSP_REG_PRODM2 0x17 +#define DSP_REG_PRODL 0x14 // product. +#define DSP_REG_PRODM 0x15 +#define DSP_REG_PRODH 0x16 +#define DSP_REG_PRODM2 0x17 -#define DSP_REG_AXL0 0x18 -#define DSP_REG_AXL1 0x19 -#define DSP_REG_AXH0 0x1a -#define DSP_REG_AXH1 0x1b +#define DSP_REG_AXL0 0x18 +#define DSP_REG_AXL1 0x19 +#define DSP_REG_AXH0 0x1a +#define DSP_REG_AXH1 0x1b -#define DSP_REG_ACC0 0x1c // accumulator (global) -#define DSP_REG_ACC1 0x1d +#define DSP_REG_ACC0 0x1c // accumulator (global) +#define DSP_REG_ACC1 0x1d -#define DSP_REG_ACL0 0x1c // Low accumulator -#define DSP_REG_ACL1 0x1d -#define DSP_REG_ACM0 0x1e // Mid accumulator -#define DSP_REG_ACM1 0x1f -#define DSP_REG_ACH0 0x10 // Sign extended 8 bit register 0 -#define DSP_REG_ACH1 0x11 // Sign extended 8 bit register 1 +#define DSP_REG_ACL0 0x1c // Low accumulator +#define DSP_REG_ACL1 0x1d +#define DSP_REG_ACM0 0x1e // Mid accumulator +#define DSP_REG_ACM1 0x1f +#define DSP_REG_ACH0 0x10 // Sign extended 8 bit register 0 +#define DSP_REG_ACH1 0x11 // Sign extended 8 bit register 1 // Hardware registers address -#define DSP_COEF_A1_0 0xa0 +#define DSP_COEF_A1_0 0xa0 -#define DSP_DSMAH 0xce -#define DSP_DSMAL 0xcf -#define DSP_DSCR 0xc9 // DSP DMA Control Reg -#define DSP_DSPA 0xcd // DSP DMA Block Length -#define DSP_DSBL 0xcb // DSP DMA DMEM Address -#define DSP_DSMAH 0xce // DSP DMA Mem Address H -#define DSP_DSMAL 0xcf // DSP DMA Mem Address L +#define DSP_DSCR 0xc9 // DSP DMA Control Reg +#define DSP_DSPA 0xcd // DSP DMA Address (DSP) +#define DSP_DSBL 0xcb // DSP DMA Block Length +#define DSP_DSMAH 0xce // DSP DMA Address High (External) +#define DSP_DSMAL 0xcf // DSP DMA Address Low (External) -#define DSP_FORMAT 0xd1 -#define DSP_ACDATA1 0xd3 // used only by Zelda ucodes -#define DSP_ACSAH 0xd4 -#define DSP_ACSAL 0xd5 -#define DSP_ACEAH 0xd6 -#define DSP_ACEAL 0xd7 -#define DSP_ACCAH 0xd8 -#define DSP_ACCAL 0xd9 -#define DSP_PRED_SCALE 0xda -#define DSP_YN1 0xdb -#define DSP_YN2 0xdc -#define DSP_ACCELERATOR 0xdd // ADPCM accelerator read. Used by AX. -#define DSP_GAIN 0xde +#define DSP_FORMAT 0xd1 // Sample format +#define DSP_ACDATA1 0xd3 // used only by Zelda ucodes +#define DSP_ACSAH 0xd4 // Start of loop +#define DSP_ACSAL 0xd5 +#define DSP_ACEAH 0xd6 // End of sample (and loop) +#define DSP_ACEAL 0xd7 +#define DSP_ACCAH 0xd8 // Current playback position +#define DSP_ACCAL 0xd9 +#define DSP_PRED_SCALE 0xda // ADPCM predictor and scale +#define DSP_YN1 0xdb +#define DSP_YN2 0xdc +#define DSP_ACCELERATOR 0xdd // ADPCM accelerator read. Used by AX. +#define DSP_GAIN 0xde -#define DSP_DIRQ 0xfb // DSP Irq Rest -#define DSP_DMBH 0xfc // DSP Mailbox H -#define DSP_DMBL 0xfd // DSP Mailbox L -#define DSP_CMBH 0xfe // CPU Mailbox H -#define DSP_CMBL 0xff // CPU Mailbox L +#define DSP_DREQ_MASK 0xef // ARAM DMA Request Mask -#define DMA_TO_DSP 0 -#define DMA_TO_CPU 1 +#define DSP_DIRQ 0xfb // DSP Irq Rest +#define DSP_DMBH 0xfc // DSP Mailbox H +#define DSP_DMBL 0xfd // DSP Mailbox L +#define DSP_CMBH 0xfe // CPU Mailbox H +#define DSP_CMBL 0xff // CPU Mailbox L + +#define DMA_TO_DSP 0 +#define DMA_TO_CPU 1 // Stacks -#define DSP_STACK_C 0 -#define DSP_STACK_D 1 +#define DSP_STACK_C 0 +#define DSP_STACK_D 1 // cr (Not g_dsp.r[CR]) bits // See HW/DSP.cpp. -#define CR_HALT 0x0004 +#define CR_EXTERNAL_INT 0x0002 +#define CR_HALT 0x0004 #define CR_INIT 0x0400 -#define CR_EXTERNAL_INT 0x0002 // SR bits -#define SR_CARRY 0x0001 -#define SR_OVERFLOW 0x0002 -#define SR_ARITH_ZERO 0x0004 -#define SR_SIGN 0x0008 -#define SR_10 0x0010 // seem to be set by tst -#define SR_TOP2BITS 0x0020 // if the upper 2 bits are equal -#define SR_LOGIC_ZERO 0x0040 -#define SR_80 0x0080 // Unknown, set by add -#define SR_INT_ENABLE 0x0200 // Not 100% sure but duddie says so. This should replace the hack, if so. -#define SR_EXT_INT_ENABLE 0x0800 // Appears in zelda - seems to disable external interupts -#define SR_MUL_MODIFY 0x2000 // 1 = normal. 0 = x2 (M0, M2) -#define SR_40_MODE_BIT 0x4000 // 0 = "16", 1 = "40" (SET16, SET40) Controls sign extension when loading mid accums. -#define SR_MUL_UNSIGNED 0x8000 // 0 = normal. 1 = unsigned (CLR15, SET15) If set, treats operands as unsigned. Tested with mulx only so far. +#define SR_CARRY 0x0001 +#define SR_OVERFLOW 0x0002 +#define SR_ARITH_ZERO 0x0004 +#define SR_SIGN 0x0008 +#define SR_10 0x0010 // seem to be set by tst +#define SR_TOP2BITS 0x0020 // if the upper 2 bits are equal +#define SR_LOGIC_ZERO 0x0040 +#define SR_80 0x0080 // Unknown, set by add +#define SR_INT_ENABLE 0x0200 // Not 100% sure but duddie says so. This should replace the hack, if so. +#define SR_EXT_INT_ENABLE 0x0800 // Appears in zelda - seems to disable external interupts +#define SR_MUL_MODIFY 0x2000 // 1 = normal. 0 = x2 (M0, M2) +#define SR_40_MODE_BIT 0x4000 // 0 = "16", 1 = "40" (SET16, SET40) Controls sign extension when loading mid accums. +#define SR_MUL_UNSIGNED 0x8000 // 0 = normal. 1 = unsigned (CLR15, SET15) If set, treats operands as unsigned. Tested with mulx only so far. // This should be the bits affected by CMP. Does not include logic zero. -#define SR_CMP_MASK 0x3f +#define SR_CMP_MASK 0x3f // exceptions vector -#define EXP_STOVF 1 // 0x0002 stack under/over flow -#define EXP_2 2 // 0x0004 -#define EXP_3 3 // 0x0006 -#define EXP_4 4 // 0x0008 -#define EXP_ACCOV 5 // 0x000a accelerator address overflow -#define EXP_6 6 // 0x000c -#define EXP_INT 7 // 0x000e external int (message from cpu) +#define EXP_STOVF 1 // 0x0002 stack under/over flow +#define EXP_2 2 // 0x0004 +#define EXP_3 3 // 0x0006 +#define EXP_4 4 // 0x0008 +#define EXP_ACCOV 5 // 0x000a accelerator address overflow +#define EXP_6 6 // 0x000c +#define EXP_INT 7 // 0x000e external int (message from cpu) // All the state of the DSP should be in this struct. Any DSP state that is not filled on init // should be moved here. @@ -232,7 +232,7 @@ extern DSPBreakpoints dsp_breakpoints; bool DSPCore_Init(const char *irom_filename, const char *coef_filename); void DSPCore_Reset(); -void DSPCore_Shutdown(); // Frees all allocated memory. +void DSPCore_Shutdown(); // Frees all allocated memory. void DSPCore_CheckExternalInterrupt(); void DSPCore_CheckExceptions(); @@ -254,4 +254,4 @@ DSPCoreState DSPCore_GetState(); void DSPCore_Step(); -#endif // _DSPCORE_H +#endif // _DSPCORE_H diff --git a/Source/Core/DSPCore/Src/DSPIntExtOps.cpp b/Source/Core/DSPCore/Src/DSPIntExtOps.cpp index a843d2c1e7..de5a3f7d04 100644 --- a/Source/Core/DSPCore/Src/DSPIntExtOps.cpp +++ b/Source/Core/DSPCore/Src/DSPIntExtOps.cpp @@ -144,14 +144,14 @@ void ln(const UDSPInstruction& opc) void ls(const UDSPInstruction& opc) { u8 areg = (opc.hex & 0x1) + DSP_REG_ACM0; - u8 sreg = 0x03; + u8 sreg = DSP_REG_AR3; u8 dreg = ((opc.hex >> 4) & 0x3) + DSP_REG_AXL0; dsp_dmem_write(g_dsp.r[sreg], g_dsp.r[areg]); - writeToBackLog(0, dreg, dsp_dmem_read(g_dsp.r[0x00])); + writeToBackLog(0, dreg, dsp_dmem_read(g_dsp.r[DSP_REG_AR0])); writeToBackLog(1, sreg, dsp_increment_addr_reg(sreg)); - writeToBackLog(2, 0x00, dsp_increment_addr_reg(0x00)); + writeToBackLog(2, DSP_REG_AR0, dsp_increment_addr_reg(DSP_REG_AR0)); } @@ -164,14 +164,14 @@ void ls(const UDSPInstruction& opc) void lsn(const UDSPInstruction& opc) { u8 areg = (opc.hex & 0x1) + DSP_REG_ACM0; - u8 sreg = 0x03; + u8 sreg = DSP_REG_AR3; u8 dreg = ((opc.hex >> 4) & 0x3) + DSP_REG_AXL0; dsp_dmem_write(g_dsp.r[sreg], g_dsp.r[areg]); - writeToBackLog(0, dreg, dsp_dmem_read(g_dsp.r[0x00])); + writeToBackLog(0, dreg, dsp_dmem_read(g_dsp.r[DSP_REG_AR0])); writeToBackLog(1, sreg, dsp_increment_addr_reg(sreg)); - writeToBackLog(2, 0x00,dsp_increase_addr_reg(0x00, (s16)g_dsp.r[DSP_REG_IX0])); + writeToBackLog(2, DSP_REG_AR0, dsp_increase_addr_reg(DSP_REG_AR0, (s16)g_dsp.r[DSP_REG_IX0])); } // LSM $acD.l, $acS.m @@ -183,14 +183,14 @@ void lsn(const UDSPInstruction& opc) void lsm(const UDSPInstruction& opc) { u8 areg = (opc.hex & 0x1) + DSP_REG_ACM0; - u8 sreg = 0x03; + u8 sreg = DSP_REG_AR3; u8 dreg = ((opc.hex >> 4) & 0x3) + DSP_REG_AXL0; dsp_dmem_write(g_dsp.r[sreg], g_dsp.r[areg]); - writeToBackLog(0, dreg, dsp_dmem_read(g_dsp.r[0x00])); + writeToBackLog(0, dreg, dsp_dmem_read(g_dsp.r[DSP_REG_AR0])); writeToBackLog(1, sreg, dsp_increase_addr_reg(sreg, (s16)g_dsp.r[DSP_REG_IX0 + sreg])); - writeToBackLog(2, 0x00, dsp_increment_addr_reg(0x00)); + writeToBackLog(2, DSP_REG_AR0, dsp_increment_addr_reg(DSP_REG_AR0)); } // LSMN $acD.l, $acS.m @@ -203,14 +203,14 @@ void lsm(const UDSPInstruction& opc) void lsnm(const UDSPInstruction& opc) { u8 areg = (opc.hex & 0x1) + DSP_REG_ACM0; - u8 sreg = 0x03; + u8 sreg = DSP_REG_AR3; u8 dreg = ((opc.hex >> 4) & 0x3) + DSP_REG_AXL0; dsp_dmem_write(g_dsp.r[sreg], g_dsp.r[areg]); - writeToBackLog(0, dreg, dsp_dmem_read(g_dsp.r[0x00])); + writeToBackLog(0, dreg, dsp_dmem_read(g_dsp.r[DSP_REG_AR0])); writeToBackLog(1, sreg, dsp_increase_addr_reg(sreg, (s16)g_dsp.r[DSP_REG_IX0 + sreg])); - writeToBackLog(2, 0x00, dsp_increase_addr_reg(0x00, (s16)g_dsp.r[DSP_REG_IX0])); + writeToBackLog(2, DSP_REG_AR0, dsp_increase_addr_reg(DSP_REG_AR0, (s16)g_dsp.r[DSP_REG_IX0])); } // SL $acS.m, $acD.l @@ -222,13 +222,13 @@ void sl(const UDSPInstruction& opc) { u8 areg = (opc.hex & 0x1) + DSP_REG_ACM0; u8 dreg = ((opc.hex >> 4) & 0x3) + DSP_REG_AXL0; - const u8 sreg = 0x03; + const u8 sreg = DSP_REG_AR3; - dsp_dmem_write(g_dsp.r[0x00], g_dsp.r[areg]); + dsp_dmem_write(g_dsp.r[DSP_REG_AR0], g_dsp.r[areg]); writeToBackLog(0, dreg, dsp_dmem_read(g_dsp.r[sreg])); writeToBackLog(1, sreg, dsp_increment_addr_reg(sreg)); - writeToBackLog(2, 0x00, dsp_increment_addr_reg(0x00)); + writeToBackLog(2, DSP_REG_AR0, dsp_increment_addr_reg(DSP_REG_AR0)); } // SLN $acS.m, $acD.l @@ -241,13 +241,13 @@ void sln(const UDSPInstruction& opc) { u8 areg = (opc.hex & 0x1) + DSP_REG_ACM0; u8 dreg = ((opc.hex >> 4) & 0x3) + DSP_REG_AXL0; - const u8 sreg = 0x03; + const u8 sreg = DSP_REG_AR3; - dsp_dmem_write(g_dsp.r[0x00], g_dsp.r[areg]); + dsp_dmem_write(g_dsp.r[DSP_REG_AR0], g_dsp.r[areg]); writeToBackLog(0, dreg, dsp_dmem_read(g_dsp.r[sreg])); writeToBackLog(1, sreg, dsp_increment_addr_reg(sreg)); - writeToBackLog(2, 0x00, dsp_increase_addr_reg(0x00, (s16)g_dsp.r[DSP_REG_IX0])); + writeToBackLog(2, DSP_REG_AR0, dsp_increase_addr_reg(DSP_REG_AR0, (s16)g_dsp.r[DSP_REG_IX0])); } // SLM $acS.m, $acD.l @@ -260,13 +260,13 @@ void slm(const UDSPInstruction& opc) { u8 areg = (opc.hex & 0x1) + DSP_REG_ACM0; u8 dreg = ((opc.hex >> 4) & 0x3) + DSP_REG_AXL0; - const u8 sreg = 0x03; + const u8 sreg = DSP_REG_AR3; - dsp_dmem_write(g_dsp.r[0x00], g_dsp.r[areg]); + dsp_dmem_write(g_dsp.r[DSP_REG_AR0], g_dsp.r[areg]); writeToBackLog(0, dreg, dsp_dmem_read(g_dsp.r[sreg])); writeToBackLog(1, sreg, dsp_increase_addr_reg(sreg, (s16)g_dsp.r[DSP_REG_IX0 + sreg])); - writeToBackLog(2, 0x00, dsp_increment_addr_reg(0x00)); + writeToBackLog(2, DSP_REG_AR0, dsp_increment_addr_reg(DSP_REG_AR0)); } // SLMN $acS.m, $acD.l @@ -279,13 +279,13 @@ void slnm(const UDSPInstruction& opc) { u8 areg = (opc.hex & 0x1) + DSP_REG_ACM0; u8 dreg = ((opc.hex >> 4) & 0x3) + DSP_REG_AXL0; - const u8 sreg = 0x03; + const u8 sreg = DSP_REG_AR3; - dsp_dmem_write(g_dsp.r[0x00], g_dsp.r[areg]); + dsp_dmem_write(g_dsp.r[DSP_REG_AR0], g_dsp.r[areg]); writeToBackLog(0, dreg, dsp_dmem_read(g_dsp.r[sreg])); writeToBackLog(1, sreg, dsp_increase_addr_reg(sreg, (s16)g_dsp.r[DSP_REG_IX0 + sreg])); - writeToBackLog(2, 0x00, dsp_increase_addr_reg(0x00, (s16)g_dsp.r[DSP_REG_IX0])); + writeToBackLog(2, DSP_REG_AR0, dsp_increase_addr_reg(DSP_REG_AR0, (s16)g_dsp.r[DSP_REG_IX0])); } // Not in duddie's doc @@ -297,22 +297,22 @@ void ld(const UDSPInstruction& opc) u8 rreg = (opc.hex >> 4) & 0x1; u8 sreg = opc.hex & 0x3; - if (sreg != 0x03) { + if (sreg != DSP_REG_AR3) { writeToBackLog(0, (dreg << 1) + DSP_REG_AXL0, dsp_dmem_read(g_dsp.r[sreg])); - if (IsSameMemArea(g_dsp.r[sreg],g_dsp.r[0x3])) + if (IsSameMemArea(g_dsp.r[sreg], g_dsp.r[DSP_REG_AR3])) writeToBackLog(1, (rreg << 1) + DSP_REG_AXL1, dsp_dmem_read(g_dsp.r[sreg])); else - writeToBackLog(1, (rreg << 1) + DSP_REG_AXL1, dsp_dmem_read(g_dsp.r[0x3])); + writeToBackLog(1, (rreg << 1) + DSP_REG_AXL1, dsp_dmem_read(g_dsp.r[DSP_REG_AR3])); writeToBackLog(2, sreg, dsp_increment_addr_reg(sreg)); } else { writeToBackLog(0, rreg + DSP_REG_AXL0, dsp_dmem_read(g_dsp.r[dreg])); - if (IsSameMemArea(g_dsp.r[dreg],g_dsp.r[0x3])) + if (IsSameMemArea(g_dsp.r[dreg], g_dsp.r[DSP_REG_AR3])) writeToBackLog(1, rreg + DSP_REG_AXH0, dsp_dmem_read(g_dsp.r[dreg])); else - writeToBackLog(1, rreg + DSP_REG_AXH0, dsp_dmem_read(g_dsp.r[0x3])); + writeToBackLog(1, rreg + DSP_REG_AXH0, dsp_dmem_read(g_dsp.r[DSP_REG_AR3])); writeToBackLog(2, dreg, dsp_increment_addr_reg(dreg)); } @@ -329,22 +329,22 @@ void ldn(const UDSPInstruction& opc) u8 rreg = (opc.hex >> 4) & 0x1; u8 sreg = opc.hex & 0x3; - if (sreg != 0x03) { + if (sreg != DSP_REG_AR3) { writeToBackLog(0, (dreg << 1) + DSP_REG_AXL0, dsp_dmem_read(g_dsp.r[sreg])); - if (IsSameMemArea(g_dsp.r[sreg],g_dsp.r[0x3])) + if (IsSameMemArea(g_dsp.r[sreg], g_dsp.r[DSP_REG_AR3])) writeToBackLog(1, (rreg << 1) + DSP_REG_AXL1, dsp_dmem_read(g_dsp.r[sreg])); else - writeToBackLog(1, (rreg << 1) + DSP_REG_AXL1, dsp_dmem_read(g_dsp.r[0x3])); + writeToBackLog(1, (rreg << 1) + DSP_REG_AXL1, dsp_dmem_read(g_dsp.r[DSP_REG_AR3])); writeToBackLog(2, sreg, dsp_increase_addr_reg(sreg, (s16)g_dsp.r[DSP_REG_IX0 + sreg])); } else { writeToBackLog(0, rreg + DSP_REG_AXL0, dsp_dmem_read(g_dsp.r[dreg])); - if (IsSameMemArea(g_dsp.r[dreg],g_dsp.r[0x3])) + if (IsSameMemArea(g_dsp.r[dreg], g_dsp.r[DSP_REG_AR3])) writeToBackLog(1, rreg + DSP_REG_AXH0, dsp_dmem_read(g_dsp.r[dreg])); else - writeToBackLog(1, rreg + DSP_REG_AXH0, dsp_dmem_read(g_dsp.r[0x3])); + writeToBackLog(1, rreg + DSP_REG_AXH0, dsp_dmem_read(g_dsp.r[DSP_REG_AR3])); writeToBackLog(2, dreg, dsp_increase_addr_reg(dreg, (s16)g_dsp.r[DSP_REG_IX0 + dreg])); } @@ -362,22 +362,22 @@ void ldm(const UDSPInstruction& opc) u8 rreg = (opc.hex >> 4) & 0x1; u8 sreg = opc.hex & 0x3; - if (sreg != 0x03) { + if (sreg != DSP_REG_AR3) { writeToBackLog(0, (dreg << 1) + DSP_REG_AXL0, dsp_dmem_read(g_dsp.r[sreg])); - if (IsSameMemArea(g_dsp.r[sreg],g_dsp.r[0x3])) + if (IsSameMemArea(g_dsp.r[sreg], g_dsp.r[DSP_REG_AR3])) writeToBackLog(1, (rreg << 1) + DSP_REG_AXL1, dsp_dmem_read(g_dsp.r[sreg])); else - writeToBackLog(1, (rreg << 1) + DSP_REG_AXL1, dsp_dmem_read(g_dsp.r[0x3])); + writeToBackLog(1, (rreg << 1) + DSP_REG_AXL1, dsp_dmem_read(g_dsp.r[DSP_REG_AR3])); writeToBackLog(2, sreg, dsp_increment_addr_reg(sreg)); } else { writeToBackLog(0, rreg + DSP_REG_AXL0, dsp_dmem_read(g_dsp.r[dreg])); - if (IsSameMemArea(g_dsp.r[dreg],g_dsp.r[0x3])) + if (IsSameMemArea(g_dsp.r[dreg], g_dsp.r[DSP_REG_AR3])) writeToBackLog(1, rreg + DSP_REG_AXH0, dsp_dmem_read(g_dsp.r[dreg])); else - writeToBackLog(1, rreg + DSP_REG_AXH0, dsp_dmem_read(g_dsp.r[0x3])); + writeToBackLog(1, rreg + DSP_REG_AXH0, dsp_dmem_read(g_dsp.r[DSP_REG_AR3])); writeToBackLog(2, dreg, dsp_increment_addr_reg(dreg)); } @@ -395,22 +395,22 @@ void ldnm(const UDSPInstruction& opc) u8 rreg = (opc.hex >> 4) & 0x1; u8 sreg = opc.hex & 0x3; - if (sreg != 0x03) { + if (sreg != DSP_REG_AR3) { writeToBackLog(0, (dreg << 1) + DSP_REG_AXL0, dsp_dmem_read(g_dsp.r[sreg])); - if (IsSameMemArea(g_dsp.r[sreg],g_dsp.r[0x3])) + if (IsSameMemArea(g_dsp.r[sreg], g_dsp.r[DSP_REG_AR3])) writeToBackLog(1, (rreg << 1) + DSP_REG_AXL1, dsp_dmem_read(g_dsp.r[sreg])); else - writeToBackLog(1, (rreg << 1) + DSP_REG_AXL1, dsp_dmem_read(g_dsp.r[0x3])); + writeToBackLog(1, (rreg << 1) + DSP_REG_AXL1, dsp_dmem_read(g_dsp.r[DSP_REG_AR3])); writeToBackLog(2, sreg, dsp_increase_addr_reg(sreg, (s16)g_dsp.r[DSP_REG_IX0 + sreg])); } else { writeToBackLog(0, rreg + DSP_REG_AXL0, dsp_dmem_read(g_dsp.r[dreg])); - if (IsSameMemArea(g_dsp.r[dreg],g_dsp.r[0x3])) + if (IsSameMemArea(g_dsp.r[dreg], g_dsp.r[DSP_REG_AR3])) writeToBackLog(1, rreg + DSP_REG_AXH0, dsp_dmem_read(g_dsp.r[dreg])); else - writeToBackLog(1, rreg + DSP_REG_AXH0, dsp_dmem_read(g_dsp.r[0x3])); + writeToBackLog(1, rreg + DSP_REG_AXH0, dsp_dmem_read(g_dsp.r[DSP_REG_AR3])); writeToBackLog(2, dreg, dsp_increase_addr_reg(dreg, (s16)g_dsp.r[DSP_REG_IX0 + dreg])); } diff --git a/Source/Core/DSPCore/Src/DspIntMultiplier.cpp b/Source/Core/DSPCore/Src/DspIntMultiplier.cpp index 4f599cf6a0..27fe5fea39 100644 --- a/Source/Core/DSPCore/Src/DspIntMultiplier.cpp +++ b/Source/Core/DSPCore/Src/DspIntMultiplier.cpp @@ -84,10 +84,11 @@ void clrp(const UDSPInstruction& opc) // Magic numbers taken from duddie's doc // These are probably a bad idea to put here. zeroWriteBackLog(); - g_dsp.r[0x14] = 0x0000; - g_dsp.r[0x15] = 0xfff0; - g_dsp.r[0x16] = 0x00ff; - g_dsp.r[0x17] = 0x0010; + g_dsp.r[DSP_REG_PRODL] = 0x0000; + g_dsp.r[DSP_REG_PRODM] = 0xfff0; + g_dsp.r[DSP_REG_PRODH] = 0x00ff; + g_dsp.r[DSP_REG_PRODM2] = 0x0010; + // 00ff_(fff0 + 0010)_0000 = 0100_0000_0000, conveniently, lower 40bits = 0 } // MOVP $acD diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/Logging/AXTask.cpp b/Source/Plugins/Plugin_DSP_LLE/Src/Logging/AXTask.cpp deleted file mode 100644 index 99bc2d9d93..0000000000 --- a/Source/Plugins/Plugin_DSP_LLE/Src/Logging/AXTask.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - - -#include "../Globals.h" -#include "Common.h" - - -extern u32 m_addressPBs; - - -// Get the parameter block location - Example SSBM: We get the addr 8049cf00, -// first we always get 0 and go to AXLIST_STUDIOADDR, then we end up at -// AXLIST_PBADDR. -bool AXTask(u32& _uMail) -{ - u32 uAddress = _uMail; - DEBUG_LOG(DSPLLE, "AXTask - ================================================================"); - DEBUG_LOG(DSPLLE, "AXTask - AXCommandList-Addr: 0x%08x", uAddress); - - bool bExecuteList = true; - - while (bExecuteList) - { - // SSBM: We get the addr 8049cf00, first we always get 0 - u16 iCommand = Memory_Read_U16(uAddress); - uAddress += 2; - - switch (iCommand) - { - // ? - case 0: // AXLIST_STUDIOADDR: //00 - { - uAddress += 4; - DEBUG_LOG(DSPLLE, "AXLIST AXLIST_SBUFFER: %08x", uAddress); - } - break; - - - case 2: // AXLIST_PBADDR: // 02 - { - m_addressPBs = Memory_Read_U32(uAddress); - uAddress += 4; - DEBUG_LOG(DSPLLE, "AXLIST PB address: %08x", m_addressPBs); - bExecuteList = false; - } - break; - - case 7: // AXLIST_SBUFFER: // 7 - { - // Hopefully this is where in main ram to write. - uAddress += 4; - DEBUG_LOG(DSPLLE, "AXLIST AXLIST_SBUFFER: %08x", uAddress); - } - break; - - - - default: - { - // Stop the execution of this TaskList - DEBUG_LOG(DSPLLE, "AXLIST default: %08x", uAddress); - bExecuteList = false; - } - break; - } // end of switch - } - - DEBUG_LOG(DSPLLE, "AXTask - done, send resume"); - DEBUG_LOG(DSPLLE, "AXTask - ================================================================"); - - // now resume - return true; -} - - - diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/Logging/Logging.cpp b/Source/Plugins/Plugin_DSP_LLE/Src/Logging/Logging.cpp deleted file mode 100644 index 89155eff7f..0000000000 --- a/Source/Plugins/Plugin_DSP_LLE/Src/Logging/Logging.cpp +++ /dev/null @@ -1,331 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - - - -#include -#include -#include // So that we can test if std::string == abc - -#include "Common.h" - -#include "UCode_AXStructs.h" // they are only in a virtual dir called UCodes AX - - -// Settings -#define NUMBER_OF_PBS 64 // Todo: move this to a logging class - -// Externals -extern u32 m_addressPBs; -static float ratioFactor; -u32 gLastBlock; - - -// Vectors and other things -static std::vector gloopPos(64); -static std::vector gsampleEnd(64); -static std::vector gsamplePos(64); -static std::vector gratio(64); -static std::vector gratiohi(64); -static std::vector gratiolo(64); -static std::vector gfrac(64); -static std::vector gcoef(64); - -// PBSampleRateConverter mixer -static std::vector gvolume_left(64); -static std::vector gvolume_right(64); -static std::vector gmixer_control(64); -static std::vector gcur_volume(64); -static std::vector gcur_volume_delta(64); - - -static std::vector gaudioFormat(64); -static std::vector glooping(64); -static std::vector gsrc_type(64); -static std::vector gis_stream(64); - -// loop -static std::vector gloop1(64); -static std::vector gloop2(64); -static std::vector gloop3(64); -static std::vector gadloop1(64); -static std::vector gadloop2(64); -static std::vector gadloop3(64); - -// updates -static std::vector gupdates1(64); -static std::vector gupdates2(64); -static std::vector gupdates3(64); -static std::vector gupdates4(64); -static std::vector gupdates5(64); -static std::vector gupdates_addr(64); - -// Other things -static std::vector Jump(64); // this is 1 or 0 -static std::vector musicLength(64); -static std::vector< std::vector > vector1(64, std::vector(100,0)); -static std::vector numberRunning(64); - -static int j = 0; -static int k = 0; -static s64 l = 0; -static bool iupdonce = false; -static std::vector viupd(15); // the length of the update frequency bar -static int vectorLength = 15; // the length of the playback history bar and how long -// old blocks are shown - -static std::vector vector62(vectorLength); -static std::vector vector63(vectorLength); - -int ReadOutPBs(AXParamBlock * _pPBs, int _num); - - -// Main logging function -void Logging() -{ - // Control how often the screen is updated - j++; - l++; - if (j>1000000) // TODO: make the update frequency adjustable from the logging window - { - - AXParamBlock PBs[NUMBER_OF_PBS]; - int numberOfPBs = ReadOutPBs(PBs, NUMBER_OF_PBS); - - // ======================================================================================= - // Vector1 is a vector1[64][100] vector - /* - Move all items back like this - 1 to 2 - 2 3 - 3 ... - */ - // ---------------- - for (int i = 0; i < 64; i++) - { - for (int j = 1; j < vectorLength; j++) - { - vector1.at(i).at(j-1) = vector1.at(i).at(j); - } - } - // ================= - - // Enter the latest value - for (int i = 0; i < numberOfPBs; i++) - { - vector1.at(i).at(vectorLength-1) = PBs[i].running; - } - - - // Count how many blocks we have running now - int jj = 0; - for (int i = 0; i < 64; i++) - { - for (int j = 0; j < vectorLength-1; j++) - { - if (vector1.at(i).at(j) == 1) - { - jj++; - } - numberRunning.at(i) = jj; - } - } - - - // Write the first row - char buffer [1000] = ""; - std::string sbuff; - //sbuff = sbuff + " Nr | | frac ratio | old new \n"; // 5 - sbuff = sbuff + " Nr pos / end lpos | voll volr curv vold mix | isl[pre yn1 yn2] iss | frac ratio[hi lo] | 1 2 3 4 5\n"; - - - - // Read out values for all blocks - for (int i = 0; i < numberOfPBs; i++) - { - if (numberRunning.at(i) > 0) - { - // Write the playback bar - for (int j = 0; j < vectorLength; j++) - { - if(vector1.at(i).at(j) == 0) - { - sbuff = sbuff + " "; - } - else - { - sprintf(buffer, "%c", 177); - sbuff = sbuff + buffer; strcpy(buffer, ""); - } - } - - - int sampleJump; - int loopJump; - //if (PBs[i].running && PBs[i].adpcm_loop_info.yn1 && PBs[i].mixer.volume_left) - if (true) - { - // AXPB base - //int running = pb.running; - gcoef[i] = PBs[i].unknown1; - - sampleJump = ((PBs[i].audio_addr.cur_addr_hi << 16) | PBs[i].audio_addr.cur_addr_lo) - gsamplePos[i]; - loopJump = ((PBs[i].audio_addr.loop_addr_hi << 16) | PBs[i].audio_addr.loop_addr_lo) - gloopPos[i]; - - gloopPos[i] = (PBs[i].audio_addr.loop_addr_hi << 16) | PBs[i].audio_addr.loop_addr_lo; - gsampleEnd[i] = (PBs[i].audio_addr.end_addr_hi << 16) | PBs[i].audio_addr.end_addr_lo; - gsamplePos[i] = (PBs[i].audio_addr.cur_addr_hi << 16) | PBs[i].audio_addr.cur_addr_lo; - - // PBSampleRateConverter src - - gratio[i] = (u32)(((PBs[i].src.ratio_hi << 16) + PBs[i].src.ratio_lo) * ratioFactor); - gratiohi[i] = PBs[i].src.ratio_hi; - gratiolo[i] = PBs[i].src.ratio_lo; - gfrac[i] = PBs[i].src.cur_addr_frac; - - // adpcm_loop_info - gadloop1[i] = PBs[i].adpcm.pred_scale; - gadloop2[i] = PBs[i].adpcm.yn1; - gadloop3[i] = PBs[i].adpcm.yn2; - - gloop1[i] = PBs[i].adpcm_loop_info.pred_scale; - gloop2[i] = PBs[i].adpcm_loop_info.yn1; - gloop3[i] = PBs[i].adpcm_loop_info.yn2; - - // updates - gupdates1[i] = PBs[i].updates.num_updates[0]; - gupdates2[i] = PBs[i].updates.num_updates[1]; - gupdates3[i] = PBs[i].updates.num_updates[2]; - gupdates4[i] = PBs[i].updates.num_updates[3]; - gupdates5[i] = PBs[i].updates.num_updates[4]; - - gupdates_addr[i] = (PBs[i].updates.data_hi << 16) | PBs[i].updates.data_lo; - - gaudioFormat[i] = PBs[i].audio_addr.sample_format; - glooping[i] = PBs[i].audio_addr.looping; - gsrc_type[i] = PBs[i].src_type; - gis_stream[i] = PBs[i].is_stream; - - // mixer - gvolume_left[i] = PBs[i].mixer.volume_left; - gvolume_right[i] = PBs[i].mixer.volume_right; - - gmixer_control[i] = PBs[i].mixer_control; - gcur_volume[i] = PBs[i].vol_env.cur_volume; - gcur_volume_delta[i] = PBs[i].vol_env.cur_volume_delta; - - // other stuff - Jump[i] = (gfrac[i] >> 16); // This is 1 or 0 - musicLength[i] = gsampleEnd[i] - gloopPos[i]; - } - - - - - - // PRESETS - /* - /" Nr pos / end lpos | voll volr curv vold mix | isl[pre yn1 yn2] iss | frac ratio[hi lo] | 1 2 3 4 5\n"; - "---------------|00 12341234/12341234 12341234 | 00000 00000 00000 0000 00000 | 0[000 00000 00000] 0 | 00000 00000[0 00000] | - */ - sprintf(buffer,"%c%i %08i/%08i %08i | %05i %05i %05i %04i %05i | %i[%03i %05i %05i] %i | %05i %05i[%i %05i] | %i %i %i %i %i", - 223, i, gsamplePos[i], gsampleEnd[i], gloopPos[i], - gvolume_left[i], gvolume_right[i], gcur_volume[i], gcur_volume_delta[i], gmixer_control[i], - glooping[i], gloop1[i], gloop2[i], gloop3[i], gis_stream[i], - gfrac[i], gratio[i], gratiohi[i], gratiolo[i], - gupdates1[i], gupdates2[i], gupdates3[i], gupdates4[i], gupdates5[i] - ); - - // write a new line - sbuff = sbuff + buffer; strcpy(buffer, ""); - sbuff = sbuff + "\n"; - - } // end of if (true) - - - } // end of big loop - for (int i = 0; i < numberOfPBs; i++) - - - // Write global values - sprintf(buffer, "\nParameter blocks span from %08x | to %08x | distance %i %i\n", m_addressPBs, gLastBlock, (gLastBlock-m_addressPBs), (gLastBlock-m_addressPBs) / 192); - sbuff = sbuff + buffer; strcpy(buffer, ""); - - - // Show update frequency - sbuff = sbuff + "\n"; - if(!iupdonce) - { - /* - for (int i = 0; i < 10; i++) - { - viupd.at(i) == 0; - } - */ - viupd.at(0) = 1; - viupd.at(1) = 1; - viupd.at(2) = 1; - iupdonce = true; - } - - for (int i = 0; i < (int)viupd.size(); i++) // 0, 1,..., 9 - { - if (i < (int)viupd.size()-1) - { - viupd.at(viupd.size()-i-1) = viupd.at(viupd.size()-i-2); // move all forward - } - else - { - viupd.at(0) = viupd.at(viupd.size()-1); - } - - // Correction - if (viupd.at(viupd.size()-3) == 1 && viupd.at(viupd.size()-2) == 1 && viupd.at(viupd.size()-1) == 1) - { - viupd.at(0) = 0; - } - if(viupd.at(0) == 0 && viupd.at(1) == 1 && viupd.at(2) == 1 && viupd.at(3) == 0) - { - viupd.at(0) = 1; - } - } - - for (int i = 0; i < (int)viupd.size(); i++) - { - if(viupd.at(i) == 0) - sbuff = sbuff + " "; - else - sbuff = sbuff + "."; - } - // ================ - - - // Print - - INFO_LOG(DSPLLE, "%s", sbuff.c_str()); - sbuff.clear(); strcpy(buffer, ""); - // --------------- - k=0; - j=0; - // --------------- - } - -} - - - - - diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/Logging/Logging.h b/Source/Plugins/Plugin_DSP_LLE/Src/Logging/Logging.h deleted file mode 100644 index 6542385956..0000000000 --- a/Source/Plugins/Plugin_DSP_LLE/Src/Logging/Logging.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#ifndef LOGGING_H -#define LOGGING_H - -void Logging(); - -#endif diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/Logging/ReadPBs.cpp b/Source/Plugins/Plugin_DSP_LLE/Src/Logging/ReadPBs.cpp deleted file mode 100644 index 7b383fbe2e..0000000000 --- a/Source/Plugins/Plugin_DSP_LLE/Src/Logging/ReadPBs.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - - - - -// Turn on and off logging modes -// -------------- -//#define LOG1 // writes selected parameters only and with more readable formatting -//#define LOG2 // writes all parameters - -#include "Common.h" -#include "../Globals.h" -#include "CommonTypes.h" // Pluginspecs - -#include "UCode_AXStructs.h" // For the AXParamBlock structure - - -u32 m_addressPBs = 0; -extern u32 gLastBlock; - -int m = 0; -int n = 0; -#ifdef LOG2 -bool logall = true; -#else -bool logall = false; -#endif -int ReadOutPBs(AXParamBlock * _pPBs, int _num) -{ - int count = 0; - u32 blockAddr = m_addressPBs; - u32 OldblockAddr = blockAddr; - u32 paraAddr = blockAddr; - - // reading and 'halfword' swap - n++; - //FIXME if (n > 20 && logall) {Console::ClearScreen();} - for (int i = 0; i < _num; i++) - { - // Check if there is something here. - const short * pSrc = (const short *)g_dspInitialize.pGetMemoryPointer(blockAddr); - // ------------- - - if (pSrc != NULL) // only read non-blank blocks - { - - // Create a shortcut that let us update struct members - short * pDest = (short *) & _pPBs[i]; - - if (n > 20 && logall) {DEBUG_LOG(DSPLLE, "%c%i:", 223, i);} // logging - - // Here we update the PB. We do it by going through all 192 / 2 = 96 u16 values - for (size_t p = 0; p < sizeof(AXParamBlock) / 2; p++) - { - paraAddr += 2; - - if(pSrc != NULL) - { - if (pSrc[p] != 0 && n > 20 && logall) - { - DEBUG_LOG(DSPLLE, "%i %04x | ", p, Common::swap16(pSrc[p])); - } - } - - pDest[p] = Common::swap16(pSrc[p]); - - } - - if(n > 20 && logall) {DEBUG_LOG(DSPLLE, "\n");} // logging - // Here we update the block address to the starting point of the next PB - blockAddr = (_pPBs[i].next_pb_hi << 16) | _pPBs[i].next_pb_lo; - // save some values - count++; - gLastBlock = paraAddr; // blockAddr - // ============ - } - else - { - break; - } - - } // end of the big loop - if (n > 20) {n = 0;} // for logging - - - // return the number of readed PBs - return count; -} diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/Logging/UCode_AXStructs.h b/Source/Plugins/Plugin_DSP_LLE/Src/Logging/UCode_AXStructs.h deleted file mode 100644 index ed38a4c29b..0000000000 --- a/Source/Plugins/Plugin_DSP_LLE/Src/Logging/UCode_AXStructs.h +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#ifndef UCODE_AX_STRUCTS -#define UCODE_AX_STRUCTS - -struct PBMixer -{ - u16 volume_left; - u16 unknown; - u16 volume_right; - u16 unknown2; - - u16 unknown3[8]; - u16 unknown4[6]; -}; - -struct PBInitialTimeDelay -{ - u16 unknown[7]; -}; - -// Update data - read these each 1ms subframe and use them! -// It seems that to provide higher time precisions for MIDI events, some games -// use this thing to update the parameter blocks per 1ms sub-block (a block is 5ms). -// Using this data should fix games that are missing MIDI notes. -struct PBUpdates -{ - u16 num_updates[5]; - u16 data_hi; // These point to main RAM. Not sure about the structure of the data. - u16 data_lo; -}; - -struct PBUnknown -{ - s16 unknown[9]; -}; - -struct PBVolumeEnvelope -{ - u16 cur_volume; - s16 cur_volume_delta; -}; - -struct PBUnknown2 -{ - u16 unknown_reserved[3]; -}; - -struct PBAudioAddr -{ - u16 looping; - u16 sample_format; - u16 loop_addr_hi; // Start of loop (this will point to a shared "zero" buffer if one-shot mode is active) - u16 loop_addr_lo; - u16 end_addr_hi; // End of sample (and loop), inclusive - u16 end_addr_lo; - u16 cur_addr_hi; - u16 cur_addr_lo; -}; - -struct PBADPCMInfo -{ - s16 coefs[16]; - u16 unknown; - u16 pred_scale; - s16 yn1; - s16 yn2; -}; - -struct PBSampleRateConverter -{ - u16 ratio_hi; - u16 ratio_lo; - u16 cur_addr_frac; - u16 last_samples[4]; -}; - -struct PBADPCMLoopInfo -{ - u16 pred_scale; - u16 yn1; - u16 yn2; -}; - -struct AXParamBlock -{ - u16 next_pb_hi; - u16 next_pb_lo; - - u16 this_pb_hi; - u16 this_pb_lo; - - u16 src_type; // Type of sample rate converter (2 = none, ?, linear) - u16 unknown1; - - u16 mixer_control; - u16 running; // 1=RUN 0=STOP - u16 is_stream; // 1 = stream, 0 = one shot - - PBMixer mixer; - PBInitialTimeDelay initial_time_delay; - PBUpdates updates; - PBUnknown unknown2; - PBVolumeEnvelope vol_env; - PBUnknown2 unknown3; - PBAudioAddr audio_addr; - PBADPCMInfo adpcm; - PBSampleRateConverter src; - PBADPCMLoopInfo adpcm_loop_info; - u16 unknown_maybe_padding[3]; -}; - -enum { - AUDIOFORMAT_ADPCM = 0, - AUDIOFORMAT_PCM8 = 0x19, - AUDIOFORMAT_PCM16 = 0xA, -}; - -enum { - SRCTYPE_LINEAR = 1, - SRCTYPE_NEAREST = 2, - MIXCONTROL_RAMPING = 8, -}; - - -#endif - - diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/main.cpp b/Source/Plugins/Plugin_DSP_LLE/Src/main.cpp index a41596a286..e29221df7c 100644 --- a/Source/Plugins/Plugin_DSP_LLE/Src/main.cpp +++ b/Source/Plugins/Plugin_DSP_LLE/Src/main.cpp @@ -31,7 +31,6 @@ #include "AudioCommon.h" #include "Mixer.h" -#include "Logging/Logging.h" // For Logging #include "DSPTables.h" #include "DSPCore.h"