[Aidan Lawrence] likes classic synthesized video game music in the same way that other people “like” breathing and eating. He spent a good deal of 2017 working on a line of devices based on the Yamaha YM2612 used in the Sega Genesis to get his feet wet in the world of gaming synths, and is now ready to take the wraps off his latest and most refined creation.
The YM2151 Arcade Classic is an open source hardware player for Video Game Music (VGM) files. It uses no emulation, the files are played on the device’s YM2151 chip in the same way they would have been on a real arcade cabinet at the time of their release. Interestingly, as some arcade machines were exceedingly rare or even scrapped before release, [Aidan] believes that his player may be the first time some of these songs have ever been played (at least in public) on real hardware.
The YM2151 synthesizer is powered by a STM32 “Blue Pill” board, which was selected as much for its capabilities as it was its low cost. The STM32 loads the VGM files from an SD card, and puts track information for the currently playing song on the 128×32 OLED display. A few tactile switches under the screen allow for shuffling through the songs stored on the card, and a slide switch for mute rounds out the simplistic but functional user interface.
In the GitHub repository, [Aidan] has provided the source code, schematics, Bill of Materials, and KiCad-generated Gerber files; everything you need to create your own version of his player. After listening to it rock out for a few minutes in the video after the break, we’re tempted to take him up on that offer.
This player reminds us of a similar design, also using original hardware, that we covered last year. The logical next step for this project would be to flesh out the UI and put it into an enclosure like this SNES chiptune player.
5 thoughts on “Open Source Hardware Video Game Music Player”
This is a very cool project, and gave me great ideas when I was in the doldrums between my own tinkering. Impressed that he decided to go ahead and move beyond perf-board and build up a real PCB.
I cite this as a direct inspiration for a project I’m currently working on:
My project is a similar idea, only for the Nintendo Entertainment System. It uses a vintage RP2A03 CPU for the audio synth, and an ESP32 as the front-end microcontroller.
This is so beautifully done — from the use of commonly available modules to the good documentation. Kudos.
I don’t really have any fond memories of this era of gaming, it’s not something I personally took part in. That being said, this thing does sound pretty awesome. Especially since, if I’m understanding the tech involved here, it’s happening in real-time on these old-school chips.
Hey! Thanks for the awesome article! I appreciate the interest and kind words :)
If you’d like some more information on the development of this project, I’ve just finished up my own write-up here: http://www.aidanlawrence.com/ym2151-arcade-classic-adlib-mini/
This is one of those things I’ve been wanting to do for ages.
Thanks for sharing!
I think I’ll be ordering some PCBs and parts on the weekend…
Please be kind and respectful to help make the comments section excellent. (Comment Policy)