diff --git a/src/devices/sound/tt5665.cpp b/src/devices/sound/tt5665.cpp index fad98371774..58fd55bfed8 100644 --- a/src/devices/sound/tt5665.cpp +++ b/src/devices/sound/tt5665.cpp @@ -226,9 +226,9 @@ void tt5665_device::sound_stream_update(sound_stream &stream, std::vector> (((m_sample & 1) << 2) ^ 4); // output to the buffer, scaling by the volume - // signal in range -2048..2047, volume in range 2..32 => signal * volume / 2 in range -32768..32767 - *buffer += m_adpcm.clock(nibble) * sample_scale * m_volume; + // signal in range -2048..2047; 12 bit built-in DAC + *buffer += m_adpcm.clock(nibble) * m_volume; // next! if (++m_sample >= m_count) diff --git a/src/devices/sound/tt5665.h b/src/devices/sound/tt5665.h index e896872ecb3..37a0a712e27 100644 --- a/src/devices/sound/tt5665.h +++ b/src/devices/sound/tt5665.h @@ -74,7 +74,7 @@ private: { public: tt5665_voice(); - void generate_adpcm(device_rom_interface &rom, stream_buffer::sample_t *buffer); + void generate_adpcm(device_rom_interface &rom, s32 *buffer); oki_adpcm_state m_adpcm; // current ADPCM state bool m_playing; @@ -94,7 +94,7 @@ private: tt5665_voice m_voice[TT5665_VOICES * 2]; // separated voice for left and right output s32 m_command; sound_stream* m_stream; - stream_buffer::sample_t m_daol_output; + s32 m_daol_output; int m_daol_timing; inline int freq_divider() const { return m_ss_state ? 136 : 170; }