diff options
Diffstat (limited to 'lib/rbcodec/codecs/libspc/spc_dsp.c')
-rw-r--r-- | lib/rbcodec/codecs/libspc/spc_dsp.c | 13 |
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] */ |
58 | static int16_t const gauss_table [512] ICONST_ATTR_SPC MEM_ALIGN_ATTR = | 60 | static 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); |