summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound/sn76477.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/sound/sn76477.cpp')
-rw-r--r--src/devices/sound/sn76477.cpp38
1 files changed, 29 insertions, 9 deletions
diff --git a/src/devices/sound/sn76477.cpp b/src/devices/sound/sn76477.cpp
index c259b3cb0ed..d24ab6a1bb6 100644
--- a/src/devices/sound/sn76477.cpp
+++ b/src/devices/sound/sn76477.cpp
@@ -892,9 +892,11 @@ void sn76477_device::log_complete_state()
void sn76477_device::open_wav_file()
{
- char wav_file_name[30];
+ std::string s = tag();
+ std::replace(s.begin(), s.end(), ':', '_');
+
+ char const* wav_file_name = util::string_format(LOG_WAV_FILE_NAME, s).c_str();
- sprintf(wav_file_name, LOG_WAV_FILE_NAME, tag());
m_file = wav_open(wav_file_name, m_our_sample_rate, 2);
LOG(1, "SN76477: Logging output: %s\n", wav_file_name);
@@ -1996,7 +1998,7 @@ void sn76477_device::sound_stream_update(sound_stream &stream, stream_sample_t *
*/
*buffer++ = (((voltage_out - OUT_LOW_CLIP_THRESHOLD) / (OUT_CENTER_LEVEL_VOLTAGE - OUT_LOW_CLIP_THRESHOLD)) - 1) * 32767;
- if (LOG_WAV && LOG_WAV_ENABLED_ONLY && !m_enable)
+ if (LOG_WAV && (!m_enable || !LOG_WAV_ENABLED_ONLY))
{
int16_t log_data_l;
int16_t log_data_r;
@@ -2005,30 +2007,48 @@ void sn76477_device::sound_stream_update(sound_stream &stream, stream_sample_t *
{
case 0:
log_data_l = LOG_WAV_GAIN_FACTOR * voltage_out;
- log_data_r = LOG_WAV_GAIN_FACTOR * voltage_out;
break;
case 1:
log_data_l = LOG_WAV_GAIN_FACTOR * m_enable;
- log_data_r = LOG_WAV_GAIN_FACTOR * m_enable;
break;
case 2:
log_data_l = LOG_WAV_GAIN_FACTOR * m_one_shot_cap_voltage;
- log_data_r = LOG_WAV_GAIN_FACTOR * m_one_shot_cap_voltage;
break;
case 3:
log_data_l = LOG_WAV_GAIN_FACTOR * m_attack_decay_cap_voltage;
- log_data_r = LOG_WAV_GAIN_FACTOR * m_attack_decay_cap_voltage;
break;
case 4:
log_data_l = LOG_WAV_GAIN_FACTOR * m_slf_cap_voltage;
- log_data_r = LOG_WAV_GAIN_FACTOR * m_slf_cap_voltage;
break;
case 5:
log_data_l = LOG_WAV_GAIN_FACTOR * m_vco_cap_voltage;
- log_data_r = LOG_WAV_GAIN_FACTOR * m_vco_cap_voltage;
break;
case 6:
log_data_l = LOG_WAV_GAIN_FACTOR * m_noise_filter_cap_voltage;
+ break;
+ }
+
+ switch (LOG_WAV_VALUE_R)
+ {
+ case 0:
+ log_data_r = LOG_WAV_GAIN_FACTOR * voltage_out;
+ break;
+ case 1:
+ log_data_r = LOG_WAV_GAIN_FACTOR * m_enable;
+ break;
+ case 2:
+ log_data_r = LOG_WAV_GAIN_FACTOR * m_one_shot_cap_voltage;
+ break;
+ case 3:
+ log_data_r = LOG_WAV_GAIN_FACTOR * m_attack_decay_cap_voltage;
+ break;
+ case 4:
+ log_data_r = LOG_WAV_GAIN_FACTOR * m_slf_cap_voltage;
+ break;
+ case 5:
+ log_data_r = LOG_WAV_GAIN_FACTOR * m_vco_cap_voltage;
+ break;
+ case 6:
log_data_r = LOG_WAV_GAIN_FACTOR * m_noise_filter_cap_voltage;
break;
}