Control the Yamaha YM2612 and PSG of the Sega Mega Drive via MIDI.
- On-screen per-channel activity indicators & log
- Built-in FM presets for General MIDI compatibility
- Built-in PSG envelopes based on the EEF format
- Supports MIDI 1.0 CCs & events (e.g. panning, volume, pitch bending)
- Loading of user-defined presets via SysEx
- Memoisation of a MIDI channel's current FM parameters as a user-defined preset
- Auto-saving & loading of user-defined presets in SRAM (EverDrive X7 & PRO only)
- Polyphony via dynamic FM channel mapping
- Portamento (glide)
- Experimental DAC support
- Connectivity via:
- Mega EverDrive X7 USB port.
- Mega EverDrive PRO USB port.
- Controller or ext/modem port via custom USB serial cable.
- MegaWiFi cartridge / BlastEm emulator (experimental)
- Control of YM2612 registers via GenMDM-style CCs
Head over to the Wiki for more information and detailed reference pages.
Unit & system tests are compiled and ran as x86 binaries using CMocka. Mega Drive interfaces are mocked.
There are two flavours of ROM:
- Standard: for EverDrives or other flash cart.
- MegaWiFi: for use with the BlastEm emulator or MegaWiFi hardware.
Build Standard ROM:
./docker-make release
Build MegaWiFi ROM:
./docker-make release ROM_TYPE=MEGAWIFI
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.
Pull requests are welcome, as are donations!