mw8080bw: improvements to 280zzzap netlist audio #6984
Conversation
Noise-based sound effects corrected. The original strength of the zener noise voltage was about three orders of magnitude too low for the current being passed through a zener of this type. This prevented the noise generator from working as designed and made the noise far too weak for the noise-based sound effects to work properly. Those effects now sound much closer to the real hardware. Implemented faster high-level emulation version of noise generator. (Credit to couriersud for suggesting this.) The corrected noise voltage made the component-level emulation of the noise generator much too demanding on the minimum timestep needed to produce accurate results without unrealistic voltage spikes, and so will not run accurately at reasonable emulation speeds. But by replacing it with a simple but effective AFUNC()-based comparator, we get a functionally similar noise signal generator that produces effectively identical output while still being able to run with 48 kHz static timestepping. So we get both decent emulation speed and correct-sounding noise effects. Added output voltage clipping on post-crash sound to remove voltage spikes, resulting in a smoother, more accurate sound. (Credit to Aaron Giles for suggesting this clipping method.) Changed output to be taken from second LM3900 output opamp (inverted signal) for smoother waveform and better tone quality. Added master volume potentiometer which can be user-set, set to midpoint by default. Adjusted output scaling and offset to match. Various explanatory comments expanded or corrected.
|
Update for 280-ZZZAP sound, correcting several flaws in my first version. Still runs at a decent speed, with |
|
Colin, can you fix the conflict with Aaron's static solvers update so this can be applied? Thanks! |
Suggestions on the simplest way to get git to do this cleanly? My git inexperience is showing here. What needs to be done is to simply ignore src/lib/netlist/generated/static_solvers.cpp and then regenerate it using "sh src/lib/netlist/nl_create_mame_solvers.sh", because src/lib/netlist/generated/static_solvers.cpp is machine-generated anyway, from the source netlists. Wish I'd waited to submit this until after Aaron's changes were merged. |
|
If it’s in a branch, just merge master in, rebuild the static solvers, and then push it back. The PR should update with the new push, I believe.
Aaron
From: Colin Douglas Howell <notifications@github.com>
Sent: Thursday, July 23, 2020 9:57 AM
To: mamedev/mame <mame@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Subject: Re: [mamedev/mame] mw8080bw: improvements to 280zzzap netlist audio (#6984)
Colin, can you fix the conflict with Aaron's static solvers update so this can be applied? Thanks!
Suggestions on the simplest way to get git to do this cleanly? My git inexperience is showing here. What needs to be done is to simply ignore src/lib/netlist/generated/static_solvers.cpp and then regenerate it using "sh src/lib/netlist/nl_create_mame_solvers.sh", because src/lib/netlist/generated/static_solvers.cpp is machine-generated anyway, from the source netlists.
Wish I'd waited to submit this until after Aaron's changes were merged.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub<#6984 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABQNG44BLYU57CO2CY3ZLF3R5BTXJANCNFSM4PE35WWQ>.
|
Aaron's recent netlist changes changed the static solvers, so now they conflict with this branch. Merge those changes into this branch so the static solvers can be regenerated; then the updated solvers can be merged into upstream master without conflicts.
|
Thanks, Aaron and RB. Hope this worked... |
|
Thanks Colin, looks good and sounds even better! |
Noise-based sound effects corrected. The original strength of the
zener noise voltage was about three orders of magnitude too low
for the current being passed through a zener of this type. This
prevented the noise generator from working as designed and made
the noise far too weak for the noise-based sound effects to work
properly. Those effects now sound much closer to the real hardware.
Implemented faster high-level emulation version of noise generator.
(Credit to couriersud for suggesting this.) The corrected noise
voltage made the component-level emulation of the noise generator
much too demanding on the minimum timestep needed to produce
accurate results without unrealistic voltage spikes, and so will
not run accurately at reasonable emulation speeds. But by replacing
it with a simple but effective AFUNC()-based comparator, we get a
functionally similar noise signal generator that produces
effectively identical output while still being able to run with
48 kHz static timestepping. So we get both decent emulation speed
and correct-sounding noise effects.
Added output voltage clipping on post-crash sound to remove
voltage spikes, resulting in a smoother, more accurate sound.
(Credit to Aaron Giles for suggesting this clipping method.)
Changed output to be taken from second LM3900 output opamp
(inverted signal) for smoother waveform and better tone quality.
Added master volume potentiometer which can be user-set, set to
midpoint by default. Adjusted output scaling and offset to match.
Various explanatory comments expanded or corrected.