diff options
Diffstat (limited to 'src/devices/sound/sn76477.cpp')
-rw-r--r-- | src/devices/sound/sn76477.cpp | 38 |
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; } |