Tuesday, June 25, 2024

Nuked-SC55: True Roland SC-55 Emulation is Here

Roland Sound Canvas emulation has long been a "white whale" of DOS emulation. While there have been several efforts from Roland over the years to emulate the Sound Canvas line, they have not targeted the modules used by most DOS games, the SC-55 and SC-55mkII. Other emulation methods have not quite hit the mark for other reasons. Recently, an emulator author with the handle "nukeyt" has released an emulator called Nuked-SC55. In this article I will tell you how to run it with DOSBox and other programs.

Nuked-SC55 & Windows Media Player

Brief History of the Roland Sound Canvas and its Emulation

When General MIDI devices displayed the Roland MT-32 and its compatibles as the high end music device of choice for DOS games, the Roland Sound Canvas modules were the standard by which General MIDI music was composed. General MIDI set a sound standard that any device manufacturer  could adhere to and have the resulting music have instrumentation that the composer intended. The Roland SC-55 originally was not technically speaking GM compatible but as it otherwise complied with the General MIDI standards in all respect with its GS Standard, it is de-facto GM compatible.

Roland's modules were expensive in the early 1990s, as was the sound card built which contained its synthesizer engine, the SCC-1/1A and the wavetable module, the SCB-55. General MIDI music can vary wildly in quality based not only on the quality of the playback device's samples but also on how the music was composed for the samples available to the composer. Most composers for DOS games in the early-to-mid 90s used Roland Sound Canvas devices  like or based on the SC-55 (1991) or the SC-55mkII (1992) to compose their music and naturally their music sounds best with a true Roland device.

Once the Roland modules and General MIDI was made obsolete in the late 1990s by compressed digitized music, the modules became difficult to find and eventually became expensive on eBay. Windows has included the Microsoft GS Software Wavetable Synthesizer since Windows 98 and that is the default way Windows and emulators which run under them can play General MIDI files. While the software GS synthesizer samples were passable in isolation, they paled in comparison to what could be provided by an original module. Microsoft's solution did not provide support for the reverb and chorus controllers of the Sound Canvas modules or  so it tended to sound a bit dry and bland. Soundfonts can come close to the punchiness of the original Sound Canvas modules but lack support for GS-specific features. 

A true emulation suitable for DOSBox must target the sound and features of the SC-55 or SC-55mkII.  Roland's current emulation product, Sound Canvas VA, is subscription based and is based off the SC-88 and later modules, which has notable variance in sound compared to the older modules. Efforts to emulate the SC-55 have been difficult because vital control code needed to run the modules is embedded in the custom microcontroller that runs the modules. The modules could not completely emulated completely until a way to dump their code had been discovered through chip decapping and staining. 

Nukeyt has gained respect for his highly accurate emulation of the Yamaha OPL3 chip, Nuked-OPL3. He has also written an excellent emulator for the YM2612/YM3438 used in the Sega Genesis and the YM2413/VRC7 used for the Sega Mark III FM Expansion Unit and the Famicom's Lagrange Point. Knowing he would tackle the project has given hope that he would bring true accuracy to this area at last, and his emulator, Nuked-SC55, does not disappoint. 

Nuked-SC55 & DOSBox

How to Setup and use Nuked-SC55

In order to setup and use Nuked-SC55, you will need three things. First, you will need the emulator.  Second, you will need the correct firmware for the device you are trying to emulate. Third, you will need a MIDI redirector to get MIDI data from a source to the emulator.

The emulator can be downloaded from this github page. As you can see from the "Install" section of that page, the emulator supports a wide variety of first and second generation Roland Sound Canvas devices. Each device needs its specific ROM set and to have those ROMs renamed as indicated, use the part numbers for guidance. You can find complete ROM sets for the SC-55 (v1.21), SC-55mkII (v1.01) and the SC-155 (rev1) in MAME 0.266. Place them, as renamed, in the same directory as the emulator uses.

Before you run Nuked SC-55 with DOSBox, you will need MIDI redirector like loopMIDI to allow the emulators to communicate with each other. Install and run loopMIDI. loopMIDI needs to run while Nuked-SC55 runs and by default it can run in the background. Add a new port in loopMIDI using the + button and then leave loopMIDI alone.

Now, with your ROMs renamed and located, you can run Nuked SC-55. When the program starts, it pulls up a command line prompt and you want it to say "Opened midi port: loopMIDI port." Nuked SC-55 defaults to the SC-55mkII, but you can tell it to use the SC-55 with the command line argument -mk1 and the SC-155 with argument -sc155. There is no obvious difference between the SC-55 and SC-155 at this time because Nuked-SC55 does not yet implement the extra slider and button controls of the latter. The buttons of the SC-55/SC-55mkII are mapped to keyboard keys as indicated on the github page and function as they would on an original module.

Each time you start Nuked-SC55, you must Initialize GM, GS or MT-32 otherwise the sound will be too low in pitch. This is not an emulation issue, it is a firmware issue. Not all games send an appropriate Initialize command. These modules have a battery inside them to remember module settings when powered down. Nuked-SC55 does not retain settings after it is closed. The CM modules have no battery and will execute an initialize command when powered on. Unfortunately the dump for the CM-300 is incomplete as of the latest MAME.

Directory listing for Nuked-SC55

You can Initialize the SC-55 devices in three ways. First with the combination of buttons as with the original modules. As the buttons are hard-mapped to keyboard keys in Nuked-SC55, you will need to hold down Q while pressing Y for Init MT-32, down Q while pressing U for Init GS, and down Q while pressing Y and U for Init All/GM. When you see the Init message on the simulated LED display, press W confirm the option. The second way is to play a MIDI file with the command embedded. The Roland SCC-1A Utility Disk has files called GS_RESET.MID and MT32EMU.MID which can Init GS and Init MT-32 respectively. The third way is to send a system exclusive message to the module.

In DOSBox, in order to use Nuked-SC55 you can edit the dosbox.conf file. Under [midi] set mididevice=win32 and midiconfig= to whatever number DOSBox gives you for loopMIDI when you run MIXER /LISTMIDI command at its DOS prompt. You can also enter midiconfig=(number for loopMIDI) at the DOSBox prompt to temporarily assign the MIDI device. If you wish to play MIDI files in Windows, use the MIDI Selector program to force Windows Media Player to use the loopMIDI device. MUNT, the MT-32 Emulator and equivalent to Nuked-SC55 does not require loopMIDI because it presents itself as a MIDI interface to Windows.

Nuked-SC55 is designed around the firmware for these devices, so an SC-55 and an SC-55mkII have their own advantages and limitations. The SC-55 v1.21 has capital tone and drum set fallback features which were removed in the SC-55mkII due to a patent claim from Yamaha. (The SC-55 v2.00 has official support for General MIDI but makes a change to how the Drum Set handles Program Change messages). The SC-55mkII has greater polyphony (28 vs. 24 voices) and some extra sounds (354 vs 317 patches) lacking in the SC-55s.

Nuked-SC55 & 486 PC (captured via Datapath VisionRGB E1s & VCS)

You can use the Nuked-SC55 emulator with a vintage computer. While Nuked-SC55 requires a relatively modern computer to run, you can use a MIDI interface to communicate between a game running on a 486 PC and modern PC. You will need a hardware MIDI interface with a MIDI In port, I use the venerable Roland UM-1X. Your vintage computer must have a MIDI Out port, and if you are using a Gameport/MIDI adapter you may need a DIN5 coupler with female ends to connect the two devices. On the 486 I have an original Roland MPU-401. I use MIDI Selector to set the default MIDI device to the UM-1X. This also works with MUNT.

3 comments:

  1. If you don’t want to use a emulator and also don’t want to spent too much money on a SC-55 or SC-55mkII check out the SC-880. It’s the rackmount studio version that contains a SC-55, a SC-88 and a special SC-880. They’re going for under 100$ on eBay...

    ReplyDelete
  2. Nice post and great setup instructions!

    There's lots of good info here, but let me allow to point out a few inaccuracies and offer a slightly different view on the authenticity of the SCVA:

    > The Roland SC-55 originally was not technically speaking GM compatible but as it otherwise complied with the General MIDI standards in all respect with its GS Standard, it is de-facto GM compatible.

    Yeah, so that's because the General MIDI standard wasn't finalised yet when the SC-55 was released, it just existed as a draft. Once the standard was officially released, later SC-55 revisions made adjustments so it fully complies to the GM standard.

    What would be important to mention here is that SC-55 implements GS (General Standard), which is a superset of General MIDI. Most notably, it add chorus and reverb support, instrument variations, and extra drum kits.

    I'm writing about this in detail in my DOS General MIDI related post:
    https://blog.johnnovak.net/2023/03/05/grand-ms-dos-gaming-general-midi-showdown/#roland-sound-canvas-sc-55

    > Roland's current emulation product, Sound Canvas VA, is subscription based and is based off the SC-88 and later modules, which has notable variance in sound compared to the older modules

    Although "notable" can be interpreted in many different ways, I'm think the "non-authenticity" of the SCVA compared to the SC-55 is overblown. Yes, it's not 100% authentic, there are differences, and you'd be able to spot them when intently A/B comparing the same 2-3 second snippet, but 99.99% of normal people would never notice if their SC-55 was secretly swapped out to SCVA in SC-55 mode.

    I think "minute differences only noticeable on a few tunes" would reflect reality more accurately. And even then, you need to have good ears and a good listening equipment to spot the differences, and even then I don't think anyone can pick the SCVA and SC-55 apart easily in blind tests without prior training...

    Here's my "Grand MS-DOS gaming General MIDI showdown" article if you're interested:

    https://blog.johnnovak.net/2023/03/05/grand-ms-dos-gaming-general-midi-showdown/

    ReplyDelete
  3. Love getting to use sound emulators! Thanks for making me aware of it.

    ReplyDelete