Skip to content

rhargreaves/mega-drive-midi-interface

Repository files navigation

SEGA Mega Drive MIDI Interface

Build & Release 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 standard build is intended for use in EverDrives or any generic flash ROM cart.
  • The MegaWiFi build is intended for use with the BlastEm emulator or MegaWiFi hardware.

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

Warning

Building this project requires certain modifications to be applied to the SGDK. If you are not building using Docker you will need to manually apply patches from the docker-sgdk repo (*.patch files in the root) otherwise the build or tests may fail.

Contributions

Pull requests are welcome, as are donations!

paypal