diff options
Diffstat (limited to 'apps/codecs/spc.c')
-rw-r--r-- | apps/codecs/spc.c | 11 |
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"); |