Skip to content

Configuration & Advanced Operations

Robert Hargreaves edited this page Jul 1, 2024 · 19 revisions

The interface is configurable by sending SysEx messages to the Mega Drive. There are also a number of advanced operations which have a specific effect when received. A list of all possible SysEx messages are given below:

Name SysEx (Hexadecimal) Description
General MIDI Reset 7E 7F 09 01 Force all notes off on all channels and resets all MIDI channel mappings.
Remap MIDI Channel 00 22 77 00 xx yy Remap MIDI channel xx to device channel yy
xx = MIDI channel (00-0F) or unassigned (7F)
yy = FM (00-05), PSG (06-09), FM Ch. 3 Special Mode Operators (0A-0C) or unassigned (7F)
Ping 00 22 77 01 Interface responds with a pong SysEx reply (00 22 77 02). Intended for use in measuring MIDI round-trip latency.
Mapping Mode 00 22 77 03 xx Sets the mapping mode. "Dynamic" assigns MIDI channels to idle FM/PSG channels to allow for maximum polyphony and variation in instrumentation. "Static" keeps 1-to-1 mapping between MIDI and FM/PSG channels. "Auto" (default) switches to dynamic mode if a General MIDI reset is received.
xx = Static (00) / Dynamic (01) / Auto (02)
Non-General MIDI CCs 00 22 77 04 xx Respond to non-General MIDI CCs.
xx = Disable (00) / Enable (01)
Polyphony Sticks to Device Type 00 22 77 05 xx MIDI channel polyphony will stick to originally assigned device type (FM or PSG). Enable for consistent voicing, but disable to allow for maximum polyphony.
xx = Disable (00) / Enable (01)
Load User Defined PSG Envelope 00 22 77 06 ... Loads a custom PSG envelope
Invert Total Level 00 22 77 07 xx Invert Total Level values sent via CC to match GenMDM's behaviour of inverting the value. This makes controlling the value from a MIDI controller more intuitive. The on-screen FM parameter table will continue to display the actual value sent to the YM2612.
xx = Disable (00) / Enable (01)
Direct Write To YM2612 (Bank 0) 00 22 77 08 0x 0x 0y 0y Writes data to the registers of the YM2612 directly (reg bank/part 0). Useful for performing YM2612 operations which are unhandled by the interface at a MIDI CC level. x is an 8-bit value which represents the YM2612 register. It should be split into two 4-bit nibbles (for example, register 0xB1 will become 0B 01). y represents the 8-bit register data and should be split in a similar fashion to x.
Direct Write To YM2612 (Bank 1) 00 22 77 09 0x 0x 0y 0y Writes data to the registers of the YM2612 directly (reg bank/part 1). See the Bank 0 SysEx above for more information.
Clone this wiki locally