Table of Contents
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
Construction
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.
Software
An official build is available now on SVN! Report bugs to me on the forums.
Usage
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.