Skip to content

Releases: Tuth/ms2000r-emu

MS2000R emulator v0.9.8

Choose a tag to compare

@Tuth Tuth released this 15 Oct 03:18
73a242b

MS2000R emulator v0.9.8

New since v0.9.7:

  • Fixed: the sound died when switching programs - most easily between the vocoder programs
    (H09-H15) while a note was held; it could stay silent for many seconds, also on other programs.
    Cause: the DSP emulator took a waiting interrupt only after a whole chain of compiled code blocks,
    up to ~370 DSP cycles late, where the real DSP56362 takes it within a few cycles. The per-sample
    job then started late, ran into the next sample period and samples were dropped; the DSP's main
    loop got no time, so its answer to the MCU's program check after every program change came too
    late, and the firmware reset and reloaded the DSP. Now every sample is computed (48000 per second)
    and the check is answered in time.
    CPU use is higher than in v0.9.7 (e.g. 23 % -> 28 % in a VST host): mostly the work of the
    samples that v0.9.7 silently skipped, plus taking interrupts on time as the chip does.
  • Fixed: a crash / wild DSP state on some H-bank program changes (DSP JIT hardening).
  • ROM files are easier to place: boot-362.bin and hd44780_a00.bin may now sit beside
    flash.bin or in its full FW subfolder. If something is missing, the console and the plugin
    panel say which file and in which folder they looked. The zip has a ROMS - READ ME.txt.
    The plugin keeps its folder chooser: Settings -> "Choose the MS2000 folder...".

No firmware or ROMs are included - see the README for the files you need from your own unit.
Replace the whole MS2000R.vst3 folder when updating.

Written by Claude (Anthropic) with Tamás Bársony (Tuth). DSP emulation: dsp56300 by The Usual
Suspects (gearmulator). Flash dump: unknown-technologies. GPL-3.0. KORG and MS2000 are trademarks
of KORG Inc.; this project is not affiliated with KORG.

MS2000R emulator v0.9.7

Choose a tag to compare

@Tuth Tuth released this 11 Oct 07:15
e78bf71

MS2000R emulator v0.9.7

New since v0.9.6:

  • Fixed: high-frequency distortion in the right channel (#3). The right output channel
    sometimes played the sample from the previous frame, in short repeated bursts - audible as
    grit from 1-3 kHz upwards, depending on the program (demo song 6 showed it well). Cause: the
    DSP's per-sample job and its audio interface were timed by two separate 48 kHz clocks whose
    phase depended on the boot. On the real board both come from the same frame clock; the
    emulator now does the same. The sound is no longer bit-identical to v0.9.6: the per-sample
    job now starts at the hardware's phase, so modulation and oscillator start phases shift
    slightly. Levels are unchanged.
  • Linux: the standalone now builds and runs headless on Linux (GCC/Clang) - see the README.
    The GUI and the plugin remain Windows-only.

No firmware or ROMs are included - see the README for the files you need from your own unit.
Replace the whole MS2000R.vst3 folder when updating.

Written by Claude (Anthropic) with Tamás Bársony (Tuth). DSP emulation: dsp56300 by The Usual
Suspects (gearmulator). Flash dump: unknown-technologies. Thanks to Unknown Technologies and to
crushedbitsvortex for the report. GPL-3.0. KORG and MS2000 are trademarks of KORG Inc.; this
project is not affiliated with KORG.

MS2000R emulator v0.9.6

Choose a tag to compare

@Tuth Tuth released this 09 Oct 06:23

MS2000R emulator v0.9.6

New since v0.9.5 - a hardware-faithfulness audit:

  • The service manual's factory test modes run ([ON/OFF] + pad 1 = Full Auto, pad 3 = Full Manual, pad 5 = version) and pass, including the A/D, pedal and footswitch checks. The rear pedal jacks now read what the hardware reads with nothing plugged in (full scale: the expression jack's ring is fed +5 V, the footswitch input has a pull-up); before, they read 0. The firmware sees its pedal inputs at rest, so the sound can differ slightly from v0.9.5 where a program uses the pedal.
  • No more discarded configuration writes: 18 system registers the firmware sets at boot (interrupt sense/enable, DTC enable, standby, clock and module-stop control, pull-ups) used to be dropped silently; they are now registers that read back what was written. The module-stop setting it writes runs exactly the peripherals this emulator models. An unused internal stub (and a host-clock "RTC" the MS2000 does not have) was removed. Output is bit-identical to before for the same input.
  • CPU core cross-check: every instruction encoding the firmware executes in normal use, the test modes and the update mode (6531 of them) was replayed against a second H8S core and the Hitachi manual; no defect was found in this emulator's core.

No firmware or ROMs are included - see the README for the files you need from your own unit. Replace the whole MS2000R.vst3 folder when updating.

Written by Claude (Anthropic) with Tamás Bársony (Tuth). DSP emulation: dsp56300 by The Usual Suspects (gearmulator). Flash dump: unknown-technologies. Thanks to Unknown Technologies. GPL-3.0. KORG and MS2000 are trademarks of KORG Inc.; this project is not affiliated with KORG.

MS2000R emulator v0.9.5

Choose a tag to compare

@Tuth Tuth released this 08 Oct 07:19

MS2000R emulator v0.9.5

New since v0.9.4:

  • MS2000 Flash Tool (FlashTool\MS2000 Flash Tool.exe): reads the whole 1 MB flash of your own MS2000 / MS2000R over MIDI - the flash.bin the emulator needs - using unknown-technologies' flash dump (github.com/unknown-technologies/ms2000, GPL-3.0). It builds the flash-dump update from KORG's v1.07 x811v107.sys (checked by SHA-1, not included), installs it through the unit's own update mode, reads the flash and verifies what it read; it can restore KORG's original v1.07 too. Never use it with an MS2000B / MS2000BR. The update mode was documented first (docs/ipl_protocol.md) and the whole route - install, a damaged block and its recovery, a normal boot, the 1 MB read - was run on the emulated MS2000R before release; MS2000IplBridge.exe lets you try it the same way without a unit (two loopMIDI ports). See FlashTool\README.md.
  • DAW automation (plugin): 59 host parameters, each a physical control (32 pots, POWER/VOLUME, AUDIO IN 1/2, IN 2 MIC/LINE, 23 sound and performance keys). Automating a pot is like a hand on it: the firmware reads it and sends its own CCs; the plugin never generates MIDI from a parameter and incoming CCs or program changes never move a parameter, so automation lanes and MIDI CC tracks do not fight.
  • Standalone: the VOLUME pot's power switch (off at the minimum, cold boot with the held keys when turned up - e.g. WRITE + TYPE for the update mode), the real Master VR law, every key latchable with Shift+click.
  • Output boost 0..+12 dB in 1 dB steps after the VOLUME pot (plugin Settings, standalone slider); at 0 dB the output is bit-identical to v0.9.4.
  • Emulator: the H8S serial port starts a transmission when TDRE is cleared by a status-register write (as the chip does) - the update mode's replies need it.

No firmware or ROMs are included - see the README for the files you need from your own unit. Replace the whole MS2000R.vst3 folder when updating.

Written by Claude (Anthropic) with Tamás Bársony (Tuth). DSP emulation: dsp56300 by The Usual Suspects (gearmulator). Flash dump: unknown-technologies. Thanks to Unknown Technologies. GPL-3.0. KORG and MS2000 are trademarks of KORG Inc.; this project is not affiliated with KORG.

MS2000R emulator v0.9.4

Choose a tag to compare

@Tuth Tuth released this 08 Oct 04:44

MS2000R emulator v0.9.4

New since v0.9.3:

  • The output stage of the real unit. The AK4522 DAC's digital filter (from its data sheet) and the line-output coupling of the KOD-A30413 board are modelled; the DC offset some hosts showed is gone.
  • POWER/VOLUME is the real Master VR: a 10 kOhm linear pot loaded by the next stage (the old full scale is now the pot's middle). At its minimum its switch turns the machine off - dark LCD and LEDs, the flash is kept - and turning it up is a cold boot. Plugin Settings -> "POWER switch on the Master VOLUME" can disable it, so a DAW fade to 0 keeps the machine running.
  • Every key takes LATCH (Shift+click holds it until clicked again), so the service manual's power-on key combinations (test modes, version display) work.
  • The widely shared boot-362.bin is enough: its two known bad words are corrected in memory. A corrected boot-362.ms2000.bin is still used first.
  • Plugin fixes: unloading the plugin no longer takes the host down; the Settings switches are remembered for new instances; the editor keeps its size (larger default); followed pots ("Knobs show the program") no longer jump; new Settings switch "MIDI OUT SysEx -> host" for hosts that stop on a plugin's SysEx output (VSTHost after the demo songs).
  • DSP library (dsp56300): Arithmetic Saturation Mode (SR SM) per the DSP56300 Family Manual.

No firmware or ROMs are included - see the README for the files you need from your own unit. Replace the whole MS2000R.vst3 folder when updating.

Written by Claude (Anthropic) with Tamás Bársony (Tuth). DSP emulation: dsp56300 by The Usual Suspects (gearmulator). Thanks to Unknown Technologies. GPL-3.0. KORG and MS2000 are trademarks of KORG Inc.; this project is not affiliated with KORG.

MS2000R emulator v0.9.3

Choose a tag to compare

@Tuth Tuth released this 03 Oct 16:45

MS2000R emulator v0.9.3

New since v0.9.2:

  • Several plugin instances in one host. Load as many MS2000R instances as you like; each one is a separate machine. The plugin bundle now holds a small loader module and the engine (Contents\Resources\MS2000R_engine.dll); every instance after the first runs from its own copy of the engine in %TEMP%\MS2000R_engines, removed again when the host unloads the plugin. Replace the whole MS2000R.vst3 folder when updating.
  • About 7 % faster: the DSP runs all its work for one MCU time slice under a single entry into the recompiled code. The output is sample-identical to v0.9.2, checked bit for bit against the same reference recording.
  • DSP library (dsp56300): long accumulator moves (move a/b,l:) now update the S bit as the DSP56300 Family Manual specifies, in the interpreter and the recompiler. The MS2000 firmware does not use them, so the sound is unchanged.

No firmware or ROMs are included - see the README for the files you need from your own unit.

Written by Claude (Anthropic) with Tamás Bársony (Tuth). DSP emulation: dsp56300 by The Usual Suspects (gearmulator). Thanks to Unknown Technologies. GPL-3.0. KORG and MS2000 are trademarks of KORG Inc.; this project is not affiliated with KORG.

MS2000R emulator v0.9.2

Choose a tag to compare

@Tuth Tuth released this 01 Oct 18:57

MS2000R emulator v0.9.2

New since v0.9.1 - speed, with the sound unchanged to the last bit:

  • Faster emulation: the whole machine runs about 24 % faster than v0.9.1 (2.08x -> 2.56x real time in our headless benchmark); the MCU (H8S) step takes less than half the time it did (91 -> 43 ns).
  • The output is sample-identical to v0.9.1: every change was checked against the same reference recording, bit for bit.
  • Less CPU in the plugin, so more headroom at small buffers and high sample rates.

No firmware or ROMs are included - see the README for the files you need from your own unit.

Written by Claude (Anthropic) with Tamás Bársony (Tuth). DSP emulation: dsp56300 by The Usual Suspects (gearmulator). Thanks to Unknown Technologies. GPL-3.0. KORG and MS2000 are trademarks of KORG Inc.; this project is not affiliated with KORG.

MS2000R emulator v0.9.1

Choose a tag to compare

@Tuth Tuth released this 01 Oct 02:28

MS2000R emulator v0.9.1

New since v0.9.0:

  • .syx import / export (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; its DATA LOAD COMPLETED / ERROR answer is shown. "Save all programs" writes the machine's 128 programs as a .syx.
  • Library page (plugin): open a .syx bank, click a program name - it goes into the edit buffer (nothing in memory is overwritten; WRITE stores it).
  • Host sync (plugin): the host tempo as MIDI clock (24 a quarter) and the transport as Start/Stop, so with GLOBAL MIDI Clock = Ext the arpeggiator follows the host and starts on beat 1 when you press play.
  • Plugin installed anywhere: Settings -> "Choose the MS2000 folder..." (remembered in %APPDATA%\MS2000R\home.txt); the panel says why the machine is off if it cannot find the ROMs.
  • Plugin performance: runs at 96 kHz with a 128-sample buffer.
  • LCD: the firmware's custom characters (e.g. the note symbol before the tempo).

No firmware or ROMs are included - see the README for the files you need from your own unit.

Written by Claude (Anthropic) with Tamás Bársony (Tuth). DSP emulation: dsp56300 by The Usual Suspects (gearmulator). Thanks to Unknown Technologies. GPL-3.0. KORG and MS2000 are trademarks of KORG Inc.; this project is not affiliated with KORG.

MS2000R emulator v0.9.0

Choose a tag to compare

@Tuth Tuth released this 30 Sep 22:26

MS2000R emulator v0.9.0 - first public release.

The KORG MS2000R's own firmware on an emulated H8S/2350, its own DSP code on an emulated DSP56362 (dsp56300 by TUS). Standalone app with the full front panel, and a VST3 instrument.

No firmware or ROMs are included. You need flash.bin and full FW\boot-362.ms2000.bin from your own unit (optional: hd44780_a00.bin for the LCD font) - see the README.

In the zip:

  • ms2000_emulator.exe + MS2000R.bat (start it with this) and MS2000R (log).bat (writes ms2000_gui.log for bug reports)
  • VST3\MS2000R.vst3 - the plugin (one instance per process for now; runs at 96 kHz with a 128-sample buffer)
  • Needs Windows 10/11 x64 and the Microsoft Visual C++ 2015-2022 x64 runtime.

Put the exe, the launchers and your ROMs in one folder (or the ROMs in a folder above the exe). The plugin finds them through MS2K_HOME, Documents\MS2000R, or a folder above the plugin.

Written by Claude (Anthropic) with Tamás Bársony (Tuth). DSP emulation: dsp56300 by The Usual Suspects (gearmulator). Thanks to Unknown Technologies. GPL-3.0. KORG and MS2000 are trademarks of KORG Inc.; this project is not affiliated with KORG.