MegaGRRL - Portable YM2612 VGM Player

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

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 of progress so far:

Currently, work is underway on a second hardware revision to address some shortcomings of the first version. New prototype PCBs have been assembled, a case has been designed and 3D-printed, and the VGM playback core is functional, with progress continuing on a UI.


Please note this list is subject to change - project is undergoing redesign

  • MCU: ESP32, specifically the ESP-WROOM-32 module
  • Sound chips: YM2612/YM3438, SN76489
  • Storage: MicroSD
  • Display: ILI9341 240x320
  • Headphone amp: TPA6111A2
  • IO expander: MCP23017
  • DC-DC: 2x LM2735
  • Battery charge: MCP73832
  • LED drivers: 2x PCA9634

  • Desktop version available

    natalie12/27/2019 at 21:53 0 comments

    Hi everyone! Sorry for the lack of updates. I developed a desktop version of this player, and all the files for it are now available to build. I created a separate page for it here:

    And here's the announcement video.

    Look forward to some more progress on the portable in the new year.

    Thank you for your support!

  • UI WIP

    natalie07/01/2019 at 00:11 1 comment

    Working on UI stuff, here's a video. Still a lot more to do...

  • Just in case...

    natalie06/25/2019 at 18:29 0 comments

    I did some work on the case! Three 3D printed pieces, and two common lengths of M3 standoffs and screws. It needs a few little things fixed but I'm quite happy with it...

  • blinky

    natalie06/21/2019 at 19:25 0 comments

    i wrote some code to drive the channel status LEDs.

  • Prototype time

    natalie06/17/2019 at 01:23 0 comments

    Getting one of these things put together...

    Tested out the LEDs and they look great!

  • New PCBs arrived

    natalie06/15/2019 at 18:09 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 10 project logs

Enjoy this project?



Stefan wrote 11/05/2019 at 04:51 point

I cant wait to try one! Looks awesome.. any chance the rest of the schematics will be released so we can build this amazing player? Hope all the YM2612 I bought are working.... got a bit worried since the last update with your tests, and ppl seem to have alot of faulty ones :(. Anyway, please share the current status when you have time :). Thank you!

  Are you sure? yes | no

mensinhl wrote 10/14/2019 at 14:57 point

Great, i like it. please where can i purchase one of this hardware...

  Are you sure? yes | no

Sebastius wrote 08/16/2019 at 21:09 point

Hey on the Git repo is only the frontpanel, can you please share the mainboard schematic/pcb too? I want to sink my teeth in it. 

  Are you sure? yes | no

Coin Feeder wrote 07/24/2019 at 13:46 point

I'd take a fully assembled one every day :)

  Are you sure? yes | no

interzone wrote 07/08/2019 at 17:03 point

Would love to grab one of these if made available!  

  Are you sure? yes | no wrote 07/06/2019 at 22:37 point

I'm drooling! I need this in my life! Are you planning on selling kits on tindy or elsewhere? 

  Are you sure? yes | no

natalie wrote 07/08/2019 at 06:18 point

not sure about kits - it's almost completely surface mount (although i tried to use 0805s and sot23s everywhere, so it's pretty entry-level smd stuff). however, i am considering selling assembled units if there is enough interest.

  Are you sure? yes | no

Jonas wrote 07/08/2019 at 14:53 point

Hello, I'd be interested to buy a kit as well along with an enclosure depending of the build quality (otherwise I can make my own). I'd like to use it along with my Yamaha CX5MII for maximum FM goodness

  Are you sure? yes | no

Sebastius wrote 07/06/2019 at 19:54 point

Can you please share your schematics/board files/code? Even though its incomplete, it will be fun to experiment with.

  Are you sure? yes | no

natalie wrote 07/06/2019 at 22:09 point

working on getting schematics cleaned up and posted today. just committed the front panel stuff a moment ago. check the git repo link in the left column

  Are you sure? yes | no

Quetzalcoatlus wrote 07/06/2019 at 11:41 point

Wow never had a Genesis this sounds way better than anything i recall the NES or SNES ever putting out but it's been a while 😆

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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