diff options
Diffstat (limited to 'src/devices/sound/votrax.cpp')
-rw-r--r-- | src/devices/sound/votrax.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/devices/sound/votrax.cpp b/src/devices/sound/votrax.cpp index 000a568d2a3..067e639ed78 100644 --- a/src/devices/sound/votrax.cpp +++ b/src/devices/sound/votrax.cpp @@ -489,7 +489,7 @@ void votrax_sc01_device::chip_update() m_noise = ((m_noise << 1) & 0x7ffe) | inp; m_cur_noise = !(((m_noise >> 14) ^ (m_noise >> 13)) & 1); - // logerror("%s tick %02x.%03x 625=%d 208=%d pitch=%02x.%x ns=%04x ni=%d noise=%d cl=%x.%x clf=%d/%d\n", machine().time().to_string(), m_ticks, m_phonetick, tick_625, tick_208, m_pitch >> 3, m_pitch & 7, m_noise, inp, m_cur_noise, m_closure >> 2, m_closure & 3, m_rom_closure, m_cur_closure); + // logerror("%s tick %02x.%03x 625=%d 208=%d pitch=%02x.%x ns=%04x ni=%d noise=%d cl=%x.%x clf=%d/%d\n", machine().time().to_string(), m_ticks, m_phonetick, tick_625, tick_208, m_pitch >> 3, m_pitch & 7, m_noise, inp, m_cur_noise, m_closure >> 2, m_closure & 3, m_rom_closure, m_cur_closure); } void votrax_sc01_device::filters_commit(bool force) @@ -877,8 +877,11 @@ void votrax_sc01_device::build_lowpass_filter(double *a, double *b, double c1t, // Unswitched cap, over amp-op, top double c1b) // Switched cap, over amp-op, bottom { + // The caps values puts the cutoff at around 150Hz, put that's no good. + // Recordings shows we want it around 4K, so fuzz it. + // Compute the only coefficient we care about - double k = c1b / (m_cclock * c1t); + double k = c1b / (m_cclock * c1t) * (150.0/4000.0); // Compute the filter cutoff frequency double fpeak = 1/(2*M_PI*k); @@ -1001,7 +1004,7 @@ void votrax_sc01_device::build_injection_filter(double *a, double *b, b[1] = k1 + m; // That ends up in a numerically unstable filter. Neutralize it for now. - a[0] = 1; + a[0] = 0; a[1] = 0; b[0] = 1; b[1] = 0; |