rhargreaves / mega-drive-midi-interface

Control the Sega Mega Drive's Yamaha YM2612 and PSG with MIDI
GNU General Public License v3.0
92 stars 8 forks source link
everdrive-pro everdrive-x7 fm-synthesis general-midi mega-drive midi midi-device midi-interface

SEGA Mega Drive MIDI Interface

Build GitHub release (latest by date)

Control the Yamaha YM2612 and PSG of the Sega Mega Drive via MIDI.

Features

Getting Started

Head over to the Wiki for more information and detailed reference pages.

Build & Test

Unit & system tests are compiled and ran as x86 binaries using CMocka. Mega Drive interfaces are mocked.

There are two flavours of ROM:

The key difference between the two builds is the console header. The standard build has SEGA SSF as the console string in the ROM header which will instruct an EverDrive to expose its SSF API to the ROM as required for USB communication. The MegaWiFi build has SEGA MEGAWIFI which will instruct BlastEm and the MegaWiFi Hardware to expose the MegaWiFi APIs to the ROM.

Docker:

Build EverDrive / Generic Flash ROM:

./docker-make release

Build MegaWiFi ROM:

./docker-make release ROM_TYPE=MEGAWIFI

Linux without Docker

You'll need to configure SGDK in your environment accordingly and make changes to the Makefile to support building outside of Docker. I've never tried to build it outside of Docker :)

make

Contributions

Pull requests are welcome, as are donations!

paypal