summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libspc/spc_dsp.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs/libspc/spc_dsp.c')
-rw-r--r--lib/rbcodec/codecs/libspc/spc_dsp.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/rbcodec/codecs/libspc/spc_dsp.c b/lib/rbcodec/codecs/libspc/spc_dsp.c
index 6ad194aba6..28385c6498 100644
--- a/lib/rbcodec/codecs/libspc/spc_dsp.c
+++ b/lib/rbcodec/codecs/libspc/spc_dsp.c
@@ -32,6 +32,8 @@
32#if defined(CPU_ARM) 32#if defined(CPU_ARM)
33#if ARM_ARCH >= 6 33#if ARM_ARCH >= 6
34#include "cpu/spc_dsp_armv6.c" 34#include "cpu/spc_dsp_armv6.c"
35#elif ARM_ARCH >= 5
36#include "cpu/spc_dsp_armv5.c"
35#else 37#else
36#include "cpu/spc_dsp_armv4.c" 38#include "cpu/spc_dsp_armv4.c"
37#endif 39#endif
@@ -55,7 +57,7 @@ static unsigned short const env_rates [0x20] ICONST_ATTR_SPC =
55#if !SPC_NOINTERP 57#if !SPC_NOINTERP
56/* Interleved gauss table (to improve cache coherency). */ 58/* Interleved gauss table (to improve cache coherency). */
57/* gauss [i * 2 + j] = normal_gauss [(1 - j) * 256 + i] */ 59/* gauss [i * 2 + j] = normal_gauss [(1 - j) * 256 + i] */
58static int16_t const gauss_table [512] ICONST_ATTR_SPC MEM_ALIGN_ATTR = 60static int16_t gauss_table [512] IDATA_ATTR_SPC MEM_ALIGN_ATTR =
59{ 61{
60 370,1305, 366,1305, 362,1304, 358,1304, 62 370,1305, 366,1305, 362,1304, 358,1304,
61 354,1304, 351,1304, 347,1304, 343,1303, 63 354,1304, 351,1304, 347,1304, 343,1303,
@@ -956,6 +958,15 @@ void DSP_reset( struct Spc_Dsp* this )
956 this->wave_entry [i].start_addr = 0xffff; 958 this->wave_entry [i].start_addr = 0xffff;
957#endif /* SPC_BRRCACHE */ 959#endif /* SPC_BRRCACHE */
958 960
961#if !SPC_NOINTERP && GAUSS_TABLE_SCALE
962 if (gauss_table[0] == 370)
963 {
964 /* Not yet scaled */
965 for ( int i = 0; i < 512; i++)
966 gauss_table[i] <<= GAUSS_TABLE_SCALE;
967 }
968#endif /* !SPC_NOINTERP && GAUSS_TABLE_SCALE */
969
959#if !SPC_NOECHO 970#if !SPC_NOECHO
960 this->echo_pos = 0; 971 this->echo_pos = 0;
961 echo_init(this); 972 echo_init(this);