User Tools

Site Tools


MIDIbox VGM Player

This small synth is a demo of the MBHP_Genesis module (available now from the MIDIbox Shop!).

Hardware Features

  • Supports one to four MBHP_Genesis modules, allowing the user to play that number of VGM files simultaneously (one on each board)
  • OPN2: supports YM2612 and YM3438
  • PSG: supports SN76489 and SN76496 directly, SN76494 with external clock generator
  • Simple front panel interface
  • Entire synth can be powered from USB

VGM Playback Engine Features

  • Stream VGM data from SD card; supports Sega Genesis / Mega Drive, Sega Master System, Sega Game Gear, and any other VGM file that includes a YM2612 or SN76489
  • Advanced multithreaded system for optimal performance
  • Corrects OPN2 frequency commands in real time (hardware OPN2 clocked at 8 MHz rather than 7.67 MHz)
  • Corrects PSG noise zero frequency issue to match Sega Genesis embedded PSG behavior
  • Supports block and embedded samples
  • Seamless VGM looping
  • Simple API–project is contained in one short app.c file


You need:

  • STM32F4 core with SD card
  • 2×20 or larger character LCD
  • Small custom front panel board with 1 encoder and 6 buttons (see below)
  • One to four MBHP_Genesis modules
  • One MBHP_Genesis_LS level shifter board

Front panel board

The front panel board has a single 74HC165 DIN shift register, with the following connections:

  • Pin 0: Encoder A
  • Pin 1: Encoder B
  • Pin 2: Enter button (currently “Play”)
  • Pin 3: Menu/Back button (currently “Stop”)
  • Pin 4: Softkey 1
  • Pin 5: Softkey 2
  • Pin 6: Softkey 3
  • Pin 7: Softkey 4

The other sides of each of the buttons, as well as the encoder's common pin, are grounded.

The four softkeys each correspond to five characters on the LCD display's bottom row.


An official build is available now on SVN! Report bugs to me on the forums.


Connect an SD card with several VGM files in the root directory before powering on the synth. It is recommended to rename them to file names 8 characters or less, or else the names will use MS-DOS syntax on the screen and be hard to read.

Select the MBHP_Genesis board to play the VGM file on with the softkeys. Select the file with the encoder. Press Enter to play the VGM file or to stop the current one and start the selected one. Press Menu/Back to stop playing the current VGM file.

midibox_vgmplayer.txt · Last modified: 2016/04/06 14:42 by sauraen