Analog Audio Modelled
Analog circuit design remains an enigmatic discipline that has, to date, evaded the expansive reach of ChatGPT and similar technologies. It's therefore not entirely surprising that analog circuits represent the most overlooked element of arcade PCBs (Printed Circuit Boards). Yet, digital-to-analog conversion is essential for producing video and audio outputs. We have incorporated universal support within JTFRAME (the framework for JT cores) to define the analog audio signal pathway. This enhancement addresses several key areas:
Specification of analog properties, such as output impedance and peak-to-peak signal range for sound chips.
Association of first and second-order analog (RC) filters with each channel.
Support for arcade games that modify filter parameters.
Implementation of arbitrary FIR (Finite Impulse Response) filters to emulate analog filter responses beyond simple RC configurations.
Linkage of each analog channel to its respective resistor in the analog adder, enabling volume determination based on this association.
Provision for a universal RC filter applicable to all channels.
Introduction of an antialias filter at 20kHz, utilizing a 192kHz sample rate to ensure cleaner audio at 48kHz for devices like the MiSTer and Analogue Pocket.
Additionally, we've conducted a thorough analysis of the audio signal pathways for all arcade PCBs supported by JT cores. Contributions from Skutis and @docteurpcb, who supplied missing schematics, were invaluable. The insights gained from this analysis have been integrated into the cores to facilitate the aforementioned capabilities.
What benefits does this offer?
Enhanced balance among all instruments and sound effects, ensuring fidelity to the original compositions.
PCM audio that remains as crisp—or as gritty—as the original recordings.
Introduction of "new instruments" through programmatically applied filters by some games to modify the attack and decay of notes, thereby altering the timbre.
Elimination of aliasing noise that typically arises from 48kHz re-sampling.
However, there are a few limitations to note:
CPS1.5 and CPS2 systems remain unaffected. Their QSound filters, designed for spatial audio, would necessitate a bespoke implementation. Achieving the intended spatial sound effect would require precise speaker placement within an arcade cabinet—a requirement we're currently evaluating for feasibility.
Absent schematics for certain games, such as Tokio or GunSmoke, compel us to make educated assumptions. For example, we're treating GunSmoke's audio signal pathway as analogous to that of Ghosts'n Goblins.
Instances of suboptimal circuitry in certain games, like Double Dragon, can be mitigated through optional enhancements, such as enabling an antialiasing filter for PCM voices via the DIP switch menu. This filter, not present in the original system, is offered as an elective feature to preserve authenticity.
Given the extensive nature of these modifications, errors may occur. We encourage reporting any discrepancies, supported by PCB recordings or other forms of verification.
The correct non-linear model for YM2203 PSG outputs means that you may feel the sound effects in Bubble Bobble and The New Zealand Story different from your emulator memories
This initiative sets a new benchmark for sound accuracy in retro gaming. Future cores will benefit from these enhancements from the outset. We appreciate your support for this development.
Comments (4)
Awesome 🤩
Thanks for giving audio accuracy more love. Highly appreciated!
Excellent work! - this makes the JT cores stand out soundwise.
I love this dedication to accuracy
