With so much new firmware, emulations and recompilations happening, it's difficult to keep track. Here's one which stood out; a free version of the MS2000R Synth, which used machine code to reproduce the engine Korg built for the MS2000 and MicroKorg. You will need to provide your own firmware and ROMs, and there are more details on GitHub...
A hardware-level emulator of the KORG MS2000R (rack version of the MS2000 analog-modeling synthesizer): the H8S/2350 main CPU runs the original firmware instruction by instruction, and the DSP56362 runs the original DSP code on the dsp56300 emulator library. Nothing of the synth engine is re-implemented - the sound comes from the machine's own code.
Standalone application (Windows and macOS, ImGui) with the full MS2000R front panel, and a VST3 instrument plugin (JUCE; on macOS also an Audio Unit).
Status
- The firmware boots and runs: programs, the vocoder, the arpeggiator, the motion/mod sequencer, the demo songs, MIDI IN and MIDI OUT (knob moves send CCs), Global and program WRITE (the flash is emulated, non-volatile).
- Front panel: all 32 knobs, the switch matrix, the LED matrix (as the firmware multiplexes it) and the 16x2 LCD including its custom characters. Shift+click on any key keeps it held until clicked again (chords, EXIT+GLOBAL, the service manual's power-on key combinations).
- Output: the AK4522 DAC's digital filter and the line-output coupling (KOD-A30413), and the POWER/VOLUME pot as the real 10 kOhm linear Master VR loaded by the next stage. At its minimum the pot's switch turns the machine off (dark panel, the flash is kept); turning it up is a cold boot with the held keys down. Plugin Settings can disable the switch, so a DAW fade to 0 keeps the machine running. The standalone has the same switch (its VOLUME pot or slider) and the same pot law. An Output boost of 0..+12 dB (1 dB steps) after the pot: plugin Settings, standalone slider - at 0 dB the output is unchanged.
- DAW automation (plugin): 59 host parameters, each one a PHYSICAL control - the 32 pots, POWER/VOLUME, AUDIO IN 1/2, IN 2 MIC/LINE and 23 sound/performance keys (momentary, 1 = held). An automated pot is a hand on the pot: the firmware reads it and sends its own CCs as on the unit; the plugin never makes MIDI from a parameter, and nothing the machine does moves a parameter (the pots are not motorised) - so automation and MIDI CC tracks never fight. Mouse moves on the panel are recorded in Write/Touch mode.
- MS2000 Flash Tool (Windows, in the release zip): reads the complete 1 MB flash of your own MS2000 / MS2000R over MIDI - the
flash.binthis emulator needs - with unknown-technologies' flash dump, installed through the unit's own update mode from KORG's v1.07 updater file. Never with an MS2000B / MS2000BR. See source/tools/flashdump/README.md and docs/ipl_protocol.md.- Audio In 1/2 (vocoder, OSC1 AUDIO IN) through a model of the input stage and the AK4522 codec.
- .syx: load a bank or program file into the machine and save all 128 programs as .syx (standalone: the buttons under the panel; plugin: Settings). The file goes into the emulated MIDI IN and the firmware itself stores it, as the real unit does from an editor; its DATA LOAD COMPLETED / ERROR answer is shown.
- Plugin extras: a Library page (open a .syx, click a program to hear it - it goes into the edit buffer, the memory is not changed); the host tempo as MIDI clock and the host transport as Start/Stop (GLOBAL: MIDI Clock = Ext, the arpeggiator starts on beat 1 with the host); Settings -> "Choose the MS2000 folder...".
- "Knobs show the program" (plugin Settings, standalone checkbox): the pots are drawn where the program being edited has its values (read from the machine's edit buffer); turning one takes over from there without a jump.
- VST3 (phase 2): the panel in the plugin window; the machine's state (knob positions, settings and the written flash sectors) is saved in the host project.
- Several plugin instances in one host: the plugin bundle carries the engine as
Contents\Resources\MS2000R_engine.dll; every instance after the first runs from its own copy of it in%TEMP%\MS2000R_engines(removed when the host unloads the plugin), so each instance is a separate machine.Known limits: the GUI and the plugin run on Windows and macOS (VST3, and AU on macOS); Linux has a headless build (see below). VSTHost stops calling a plugin that sends SysEx to it (e.g. on leaving the demo songs): switch off "MIDI OUT SysEx -> host" in the plugin's Settings there. The emulator needs a recent CPU - it runs about 2x real time on a current desktop; the plugin runs at 96 kHz with a 128-sample buffer (measured: 0.62 ms median, 0.96 ms worst per 1.33 ms block after the boot). Next: a preset library page.
Download here: https://github.com/Tuth/ms2000r-emu/releases