MegaGRRL - Portable YM2612 VGM Player

Handheld ESP32-powered VGM player, playing tracks from the Sega Mega Drive/Genesis, Master System, and more!

Public Chat
Similar projects worth following
MegaGRRL is a project to make a portable device capable of playing back VGM files targeting the sound chips used in the Sega Mega Drive/Genesis and Master System. It uses the original chips and has a playback engine focused on accuracy and supporting as many features of the VGM file format as possible, all controlled by an ESP32 running FreeRTOS using the ESP-IDF framework.

Demo video: (Thunder Force IV - Metal Squad)

Currently, the VGM playback core is functional and working well. I'm using a third-party library for some debug output on the LCD, but I've written a new driver that uses DMA, pending writing some UI drawing routines. The hardware is essentially complete, and prototype PCBs have been designed, ordered, and assembled. A design for a 3D-printed enclosure is also underway.


  • MCU: ESP32, specifically the ESP-WROOM-32 module
  • Sound chips: YM2612, SN76489
  • Storage: MicroSD
  • Clock generation: 2x LTC6904
  • Display: ILI9341 320x240
  • Volume control: DS1807S+
  • Headphone amp: TPA6111A2
  • IO expander: MCP23017
  • DC-DC: 2x LM2735
  • Battery charge: MCP73832

  • Prototype time

    natalie6 hours ago 0 comments

    Getting one of these things put together...

    Tested out the LEDs and they look great!

  • New PCBs arrived

    natalie2 days ago 0 comments

    The new PCBs showed up! And I immediately found a mistake on one ;_; but it's pretty minor and if it actually affects anything I can fix it with a bodge wire. So far I got the front panel board assembled (don't have a pic on hand, sorry) and the main one about half done, waiting for some more parts to arrive.

    Board pix!

    The power supplies work and the ESP32 boots...

  • Rev.2 PCB almost done...

    natalie05/06/2019 at 19:47 1 comment

    I've been working on the revision 2 PCB and it is now fully routed, and will be done once I fix a few issues and do the silkscreen graphics.

    Also planning to use a PCB for the front panel, with some through-board LEDs to indicate channel status, SD card access, etc. I still have a few more things to sort out with that, but expect at least a screenshot soon. As stated before, EAGLE board files will be available for both once I've tested the new design.

    In the meantime I also did some more testing with using the ESP to generate clocks for the sound chips, and everything works fine. So, officially (I think!), say goodbye to the expensive and hard-to-solder LTCs!

    While I'm talking about things being hard to solder, I want to note that a major design consideration with this project was making it relatively easy to assemble with simple soldering tools. A lot of space could be saved by using finer pitch IC packages, smaller passives, etc, but I stuck with SOs and 0805s because they're pretty doable on a simple pencil iron. I want this project to be accessible to as many people as possible, which would normally necessitate DIP packages for everything, but then it wouldn't fit in your hand, so I think this is a good compromise.

    Anyway, that's all for now. I plan to order a first batch of PCBs at the end of this week, and I'm excited to test them out when they arrive.

  • Revision 2 coming!!

    natalie03/13/2019 at 20:42 0 comments

    I wanted to post a quick update to this. The project is still ongoing despite my silence here! I am currently working on a revision 2 PCB that simplifies things and removes several parts from the BOM, to hopefully make it cheaper and easier to assemble. There were also a few electronic issues with the first PCB, which is why I haven't posted the schematic or board files yet -- I don't want anyone to make the same mistakes I did!

    In the meantime, I got LittlevGL talking to the LCD, and VGM playback is basically perfect at this point. I've also been slowly putting more code into the git repository, but my focus right now is getting this next board revision finished. Once that's done and tested, I can work on getting a UI written.

    Here's a video from last night, testing the use of the ESP32 for clock generation rather than separate LTC6904 chips. This is just hacked onto my current prototype board to validate my design before I order PCBs. I hope to have the new design fabbed and tested by the end of this month.

  • DAC streams are under control

    natalie10/23/2018 at 10:45 0 comments

    Uploaded two more videos again. This time, using two tracks that make heavy use of the DAC stream control subset of the VGM specification. Enjoy! Links to the artists are in the video descriptions, so go check them out if you like FM synth metal stuff~

  • More videos

    natalie10/20/2018 at 18:01 0 comments

    I put a couple more videos on YouTube today:

View all 6 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates