Home Creators Posts Import Register Favorites Logout

Downloads

Content

Español abajo

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.

Updates to some multi-game cores (e.g., JT1942, JTSIMSON) are pending completion.

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.

While we have established a comprehensive framework, our work continues as we delve into the nuanced analog characteristics of various sound generators found in arcade games. Our ongoing efforts aim to model the distinct sound compression observed across different connections of PSG channels in YM2203/AY-3-8910/YM2149 chips—a task yet to be accomplished.

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.

PS: Bubble Bobble for Pocket is now available to the public. Additionally, MX5000 has entered beta testing for Pocket.

Español

El diseño de circuitos analógicos sigue siendo una disciplina enigmática que, hasta la fecha, ha eludido el amplio alcance de ChatGPT y tecnologías similares. Por tanto, no es del todo sorprendente que los circuitos analógicos representen el elemento más ignorado de las placas de circuito impreso de arcade. Sin embargo, la conversión de digital a analógico es esencial para producir salidas de vídeo y audio. Hemos incorporado soporte universal dentro de JTFRAME (el marco para los núcleos JT) para definir la ruta de la señal de audio analógica. Esta mejora aborda varias áreas clave:

Especificación de propiedades analógicas, como impedancia de salida y rango de señal pico a pico para chips de sonido.

Asociación de filtros analógicos (RC) de primer y segundo orden con cada canal.

Soporte para juegos arcade que modifican los parámetros de los filtros.

Implementación de filtros FIR (Finite Impulse Response) arbitrarios para emular las respuestas de los filtros analógicos más allá de las simples configuraciones RC.

Vinculación de cada canal analógico a su resistencia respectiva en el sumador analógico, lo que permite determinar el volumen en función de esta asociación.

Disposición de un filtro RC universal aplicable a todos los canales.

Introducción de un filtro antialias a 20 kHz, utilizando una frecuencia de muestreo de 192 kHz para garantizar un audio más limpio a 48 kHz para dispositivos como el MiSTer y el Analogue Pocket.

Además, hemos realizado un análisis exhaustivo de las vías de señal de audio para todas las PCB arcade compatibles con los núcleos JT. Las contribuciones de Skutis y @docteurpcb, que proporcionaron los esquemas que faltaban, han sido inestimables. La información obtenida de este análisis se ha integrado en los núcleos para facilitar las funciones mencionadas.

¿Qué ventajas ofrece esto?

Mayor equilibrio entre todos los instrumentos y efectos de sonido, lo que garantiza la fidelidad a las composiciones originales.

Audio PCM que sigue siendo tan nítido -o tan arenoso- como las grabaciones originales.

Introducción de "nuevos instrumentos" mediante filtros aplicados programáticamente por algunos juegos para modificar el ataque y el decaimiento de las notas, alterando así el timbre.

Eliminación del ruido de aliasing que suele producirse en el remuestreo a 48 kHz.

Sin embargo, hay que tener en cuenta algunas limitaciones:

Los sistemas CPS1.5 y CPS2 no se ven afectados. Sus filtros QSound, diseñados para audio espacial, requerirían una implementación a medida. Para conseguir el efecto de sonido espacial deseado, sería necesario colocar los altavoces con precisión dentro de un mueble arcade, un requisito cuya viabilidad estamos evaluando actualmente.

La ausencia de esquemas de algunos juegos, como Tokio o GunSmoke, nos obliga a hacer suposiciones. Por ejemplo, consideramos que la ruta de la señal de audio de GunSmoke es análoga a la de Ghosts'n Goblins.

Las actualizaciones de algunos núcleos multijuego (por ejemplo, JT1942, JTSIMSON) están pendientes de finalización.

Los casos de circuitos subóptimos en determinados juegos, como Double Dragon, pueden mitigarse mediante mejoras opcionales, como la activación de un filtro antialiasing para voces PCM a través del menú de interruptores DIP. Este filtro, que no estaba presente en el sistema original, se ofrece como función opcional para preservar la autenticidad.

Dada la naturaleza extensiva de estas modificaciones, pueden producirse errores. Le animamos a que nos informe de cualquier discrepancia, respaldada por grabaciones de PCB u otras formas de verificación.

Aunque hemos establecido un marco exhaustivo, nuestro trabajo continúa profundizando en las matizadas características analógicas de varios generadores de sonido que se encuentran en los juegos arcade. Nuestro objetivo es modelar la distinta compresión del sonido observada en las diferentes conexiones de los canales PSG de los chips YM2203/AY-3-8910/YM2149, una tarea aún por realizar.

Esta iniciativa marca un nuevo hito en la precisión del sonido en los juegos retro. Los futuros núcleos se beneficiarán de estas mejoras desde el principio. Agradecemos su apoyo a este desarrollo.

PD: Bubble Bobble para Pocket ya está disponible para el público. Además, MX5000 ha entrado en la fase de pruebas beta para Pocket.

Files

Comments

Tony Vo

Awesome sound work! ......always loved the sound effects of your arcade cores!

Mat Azel

as someone who studied EE (bachelor level only), I'd say this is the most exciting update/project to me in a long time, thanks a million for doing all this, this actually is HUGE !!

Shannon Thomasson

Way above my knowledge but im down for improvements to emulation. Thanks to you and your team for making this content enjoyable for us all!

Richard Maxey

Thanks for the education Jotego!

Trey S.

I just set up a mini-toslink to DAC/RCA setup yesterday for my vintage Hi-Fi setup--love this push for accuracy, and my luck with timing! Since MiSTer can put out a digital 96kHz signal in the ini settings, I assume the 96kHz audio output will benefit even moreso with the 192kHz sample rate and future proof for other FPGA solutions that might be able to output 192kHz? (Or are the JT cores not compatible with the 92kHz output as I've heard some cores may not play audio when this option is turned on)

none none

Wow, the difference is defintely noticable! Some of the cores struck home right away, even though back in the day there was so much noise in the arcades you could barely hear the sound... Thank you so much Artemio and Jotego team for such an outstanding piece of work!

Adrien Duchemole

Thanks a lot for this work it highly contributes to make the arcade experience on fpga hardware more faithful to the pcbs !!!

Fabricio

Tried Double Dragon a few minutes ago. The music sound volume is too low now. The other sounds (punch, kick) are ok. Can I change it (music volume)?

Dr Tenma

Thank you! It's great that you're taking so much care into analog sound!

gekko1979

Still problem with outrun.... 🙁 car missing

Southy

Yeah, I have my MiSTer set to output 96khz in the ini settings so would be interested to know if this has any positive/negative effects.

sbutter

I'm having this issue too, but I'd be sooner inclined to say this is an issue with the SD card or installation. People who have had this issue in the past have had it with builds that otherwise work fine.

gekko1979

I format again the sd card and I reinstall all, still the same problem , I not try other sd card

Wayne

Just updated and now Simpson has credits can’t play and tmnt upside down plz help

Rick S.

I did a similar thing, mni toslink to DAC connected to my 20 year old Cambridge Soundworks 2.1 cube speakers with a powered sub woofer. it sounds amazing!

Big Al.

use the correct beta file/check rom and tmnt go into service mode A button and left analogue button of the 3 to change it.

JOTEGO

JT cores should work correctly using that option and the sound quality should be better

JOTEGO

That PCB has a bad sound circuit indeed. Instead of filtering the PCM, they are overly filtering the FM music. Also, part of the problem may be that we are overestimating the YM3012 DAC output impedance. I am going to relax that filter until we can confirm the DAC measurement.

JOTEGO

This is being tracked in GitHub. Please do not insist. I am aware of it.

Adrien Duchemole

I have tried many games, results are amazing !! double dragon balance seems weird to me, I don't remember PCM to be that loud compared to FM Tmnt balance sounds strange to me too ... also, there is probably another aspect to consider (but I believe it might be complicated to emulate) when pushing output level a bit louder on some PCB, output signal was saturating the built in amp (I remember games such as Vigilante or Rastan) so, despite the Lpf, you could get some high frequencies Sadly, I no longer have PCBs to record and compare keep the great work, thanks a lot, and congratulations !!!

Brett

Hey thanks so much for all your hard work once again Jotego!!!

mpatou

Hi Great Job Jotego Unfortunately, I want to report what has already been reported here : sound FX with pocket cores are now not loud enough : voices and hit noises in Vendetta, as for Simpsons and Parodius, all sound effects in Bubble Bobble. It feels unbalanced, dispite the overall sound quality. CPS Cores sound balance is perfect. I'd like to mention that I only talk about that games for which I own the original hardware. Keep on good work and million times EDIT : I also want to say that SEGA System 16 A and B's sound balance is very accurate and quality is great

JOTEGO

For the Konami ones, it is a problem of having the core adjusted to only one of the boards it supports. I was aware of it. But for Bubble Bobble is troublesome as I do not see where the discrepancy is coming from. Either the schematics are wrong or one of the Yamaha chips has a different volume scale. I need to take some measurements to figure it out. Thanks for the detailed report.

JOTEGO

About the System 16 cores, these have benefited the most from the changes. They sound much nicer now as you said.

Adrien Duchemole

Hi Jose I just wondered, as you've more and more improving the audio part, and have started to work on Namco system 1 with Splatter house, will you try to include a bass/treble tuning as included on these PCB ? (with similar range and specs as found on the original hardware) it would be great there are some games including amazing features about sound, as Equites featuring a pitch tuning pot on the PCB ... thanks again for your amazing work, adding accuracy to the gaming experience

Matt G

Just thought I'd pass along I noticed that Outrun and Turbo Outrun having missing sprites on the Analogue Pocket, mainly the car and trees. Thank you for all your work in preserving these classics!

L

Super Muscle Bomber has low volume compared to my other cps1 roms. Anyone else? Sorry if known about, i’ve only just updated by MisterCade.

Mark Saunders

This is very exciting, the audio is overlooked but not now - thanks to you and your friends

Southy

Thanks - been playing some games and definitely noticed the difference! Many thanks

Matt G

Found the GitHub instructions that helped! So did the latest update, I believe. Thank you!