summaryrefslogtreecommitdiff
path: root/apps/codecs/spc.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/spc.c')
-rw-r--r--apps/codecs/spc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/apps/codecs/spc.c b/apps/codecs/spc.c
index 86b9c0caf1..87b5972087 100644
--- a/apps/codecs/spc.c
+++ b/apps/codecs/spc.c
@@ -51,9 +51,14 @@ CODEC_HEADER
51 /* Disable gaussian interpolation */ 51 /* Disable gaussian interpolation */
52 #define SPC_NOINTERP 1 52 #define SPC_NOINTERP 1
53 53
54#ifndef CPU_COLDFIRE
54 /* Disable echo processing */ 55 /* Disable echo processing */
55 #define SPC_NOECHO 1 56 #define SPC_NOECHO 1
56#else 57#else
58 /* Enable echo processing */
59 #define SPC_NOECHO 0
60#endif
61#else
57 /* Don't cache BRR waves */ 62 /* Don't cache BRR waves */
58 #define SPC_BRRCACHE 0 63 #define SPC_BRRCACHE 0
59 64
@@ -100,6 +105,8 @@ static inline void set_le16( void* p, unsigned n )
100 105
101#define GET_LE16( addr ) get_le16( addr ) 106#define GET_LE16( addr ) get_le16( addr )
102#define SET_LE16( addr, data ) set_le16( addr, data ) 107#define SET_LE16( addr, data ) set_le16( addr, data )
108#define INT16A( addr ) (*(uint16_t*) (addr))
109#define INT16SA( addr ) (*(int16_t*) (addr))
103 110
104#ifdef ROCKBOX_LITTLE_ENDIAN 111#ifdef ROCKBOX_LITTLE_ENDIAN
105 #define GET_LE16A( addr ) (*(uint16_t*) (addr)) 112 #define GET_LE16A( addr ) (*(uint16_t*) (addr))
@@ -794,6 +801,10 @@ enum codec_status codec_main(void)
794{ 801{
795 memcpy( spc_emu.cycle_table, cycle_table, sizeof cycle_table ); 802 memcpy( spc_emu.cycle_table, cycle_table, sizeof cycle_table );
796 803
804#ifdef CPU_COLDFIRE
805 coldfire_set_macsr(EMAC_SATURATE);
806#endif
807
797 do 808 do
798 { 809 {
799 DEBUGF("SPC: next_track\n"); 810 DEBUGF("SPC: next_track\n");