VOGONS


88Emu is out (Roland SC-88/Pro/50 Emulator)

Topic actions

First post, by giulio

User metadata
Rank Newbie
Rank
Newbie

buYsD.gif

Demo: https://www.youtube.com/watch?v=LFDmDiaVk8o
Download and info: https://theusualsuspects.io/downloads/88emuplayer

Runs the original firmware and emulates the original sound chips low-level with JIT for better performance.

Supports SC-55 series, SC-88 series, SC-88Pro, SC-8820, SC-8850, CM-32P, JV-1080, XV-3080.
Support is coming soon for MT-32, CM-32L, CM-64.

Reply 1 of 21, by APN_K

User metadata
Rank Newbie
Rank
Newbie

Guess it's time to ditch SCVA

Reply 2 of 21, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Impressive. How much CPU oomph does it need? Like if you were just playing midi files, just enough to do that? Wondering about "use shitty netbook/old-linux-PMP/android/raspi-touchscreen" kind of standalone device with some kind of midi convertor to go to retro soundcard.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 3 of 21, by Gradius2

User metadata
Rank Newbie
Rank
Newbie

Guys, I need help.

Where can I download the SC-88Pro roms? I tried to search here, and no luck.

Same for SC-8820.

Thanks!

Reply 4 of 21, by zaphod77

User metadata
Rank Member
Rank
Member

You need to increase your google fu if you wish to find a Roland sound canvas pack.

Most of the other roms are available at the famous public synth rom archive. But not all of them.

Reply 5 of 21, by keropi

User metadata
Rank l33t++
Rank
l33t++

Reminder : please do not ask or share links to or upload such copyrighted stuff here, thanks 😀

🎵 🎧 SoundVision PRO,MK1869 , PCMIDI MPU , OrpheusII , Megacard and 🎶GoldLib soundcard website
💾💾💾 Looking for a full version of LIST ENHANCED 2.4y1 by V. Buerg, message me if you have it for sale! 💾💾💾

Reply 6 of 21, by zaphod77

User metadata
Rank Member
Rank
Member

That's why i said it how i did.

ps. you aren't going to find the sc8820 roms.

Reply 7 of 21, by Lord Myn

User metadata
Rank Newbie
Rank
Newbie

What are the correct file names/folder names for the emulator to find the rom files? I have the sc88, sc8850 and sc88pro rom files but the emulator doesn't indentify them.

Reply 8 of 21, by yes

User metadata
Rank Newbie
Rank
Newbie
Lord Myn wrote on Today, 12:25:

What are the correct file names/folder names for the emulator to find the rom files? I have the sc88, sc8850 and sc88pro rom files but the emulator doesn't indentify them.

The names don't matter, just size and hash. I think you're using wrong location for your ROMs, see:
https://github.com/dsp56300/gearmulator/blob/ … -file-locations

Reply 9 of 21, by Kappa971

User metadata
Rank Member
Rank
Member
giulio wrote on Today, 01:10:
https://s15.gifyu.com/images/buYsD.gif […]
Show full quote

buYsD.gif

Demo: https://www.youtube.com/watch?v=LFDmDiaVk8o
Download and info: https://theusualsuspects.io/downloads/88emuplayer

Runs the original firmware and emulates the original sound chips low-level with JIT for better performance.

Supports SC-55 series, SC-88 series, SC-88Pro, SC-8820, SC-8850, CM-32P, JV-1080, XV-3080.
Support is coming soon for MT-32, CM-32L, CM-64.

Hi @giulio, I’d like to point out that 88emu’s built-in MIDI player doesn't currently play Apogee Software's EMIDI files (used in Duke Nukem 3D) correctly. I’m attaching an example track.

I also found this text file with further details:

Details

=============================================================
| Apogee Expanded MIDI (EMIDI) API v1.1 |
=============================================================

Specifications created by Lee Jackson and Jim Dosè
Apogee Sound System Support coded by Jim Dosè

First public release 1997.

Copyright (c) 1995,1997 Apogee Software Ltd. All Rights Reserved.

=============================================================
| Contents |
=============================================================

I. Instrument Definitions
II. Controller Definitions
III. InitBeat Format
IV. Contact Information

=============================================================
| I. Instrument Definitions |
=============================================================

The following instruments are currently defined as valid for data
entry events:

0 - General MIDI
1 - Roland Sound Canvas (GM only)
2 - Sound Blaster AWE32
3 - Wave Blaster and Compatibles (SCD-10, etc.)
4 - Sound Blaster and Compatibles (OPL-2 and OPL-3)
5 - Media Vision Pro Audio series
6 - Logitech Sound Man 16
7 - Adlib and Compatibles
8 - Ensoniq Soundscape
9 - Gravis Ultrasound, Ultrasound Max, Ultrasound ACE
127 - All (see Controller Definitions)

Note: Although the Roland Sound Canvas is supported, it is
only supported in GM mode. The Apogee Sound System does not
support the direct sending of System Exclusive messages required
for GS mode support.

=============================================================
| II. Controller Definitions |
=============================================================

The following controllers are currently defined as valid:

110 - Track Designation
Required: Yes
Multiples allowed: Yes
Format: 110 nn
(where nn is a defined instrument)

Controller 110 determines which instruments will receive data for
this track. Multiple instances may be used to designate multiple
instruments. If the track is designated for all instruments,
Instrument 127 may be used. This instrument may also be used in
conjunction with Controller 111 to exclude a single instrument or
group of instruments.

111 - Track Exclusion
Required: No
Multiples allowed: Yes
Format: 111 nn
(where nn is a defined instrument -
instrument 127 is invalid)

Controller 111 excludes an instrument from receiving the data for
this track. Multiple instances may be used to exclude multiple
instruments. Instrument 127 is not valid for this controller.

112 - Program Change
Required: No
Multiples allowed: Yes
Format: 112 nn
(where nn is a GM program change)

Controller 112 is the same as the standard MIDI program change
event. It may be inserted at any point a program change is
required. If it does not exist, standard MIDI program change events
will be recognized for this track. If it does exist, standard MIDI
program change events will not be recognized for this track, and all
program changes for the track must be entered using Controller 112.

113 - Volume
Required: No
Multiples allowed: Yes
Format: 113 nn
(where nn is between 0 and 127)

Controller 113 allows different volumes to be inserted in the same
manner as Controller 7. It should be used only if
designation/exclusion groups exist on the same MIDI channel. If
Controller 113 does not exist at the beginning of the track,
Controller 7 events will be recognized. If Controller 113 does
exist at the beginning of the track, Controller 7 events will be
ignored.

116 - Loop Begin
Required: Yes
Multiples allowed: Yes (see below)
Format: 116 nn
(see below for definition)

Controller 116 indicates the beginning of a sequence to be looped.
Values for this controller are as follows:

0 - infinite loop
1 - loop once
2 - loop twice
x - loop x times

A song should have a Master Start point and a Master End point. The
start point should occur after the InitBeat (see section III) and
after any introduction you wish to have played only once. Any
controller information (patch changes, pitch bend info, etc.)
required for the loop should be entered and/or repeated after the
loop's Master Start event (see also Section III, "InitBeat", below).
Likewise, any "reset" events required should be entered either just
after the loop's Master Start event or just before the loop's Master
End event.

Multiple non-infinite loop start/end pairs (see Controller 117
below) may occur at any point inside the Master Loop. Only one
infinite loop may be defined per song. Nested loops are not yet
supported.

IMPORTANT: Any event to be included within the loop must fall after
the Loop Begin point and end before the Loop End point.
If you are using Cakewalk Pro for Windows, you can
verify this by looking at the Event List view.
SIMULTANEOUS TIMES FOR LOOP POINTS AND EVENT DATA DO NOT
GUARANTEE THAT AN EVENT IS INSIDE THE LOOP. If in
doubt, set the event one tick after the Loop Begin or
have it end one tick before the Loop End.

117 - Loop End
Required: Yes
Multiples allowed: Yes (see below)
Format: 117 127

Controller 117 indicates the end of a looped segment of a song, or
in the case of a Master Loop, the end of the entire song. This
controller signals that the Apogee Sound System should immediately
loop back to the nearest non-resolved loop begin event (i.e., the
nearest Controller 116 event that does not have a matching
Controller 117 event).

Loop End events should not occur at the exact time of a Loop Begin
event.

Note: Loop Begin/End pairs only affect the track they are placed
on. If an entire song is to be looped through a segment, all
tracks must contain Loop Begin events and Loop End events
which occur on the same tick across all tracks, or should use
Global Loop Controllers 118/119 instead.

Be careful how you use non-synchronous single track loops -
the composer is responsible for making sure that everything
stays in sync.

See Controller 116 above for important information regarding
placements of events to be included within loops.

118 - Global Loop Begin
Required: Yes
Multiples allowed: Yes (see below)
Format: 118 nn
(see Controller 116 for definition)

119 - Global Loop End
Required: Yes
Multiples allowed: Yes (see below)
Format: 119 127

Controllers 118 and 119 are global versions of Controllers 116 and
117. Instead of controlling a single track's loop points, these
control every track's loop points. The same rules that apply to
116/117 also apply to 118/119, with these exceptions:

1. If you use 118/119 in a song, you cannot use 116/117
(and vice versa).
2. You can only place one 118/119 event at any single point
in a song. Recommended placement is on the first track.

=============================================================
| III. InitBeat Format |
=============================================================

Each song should begin with an InitBeat. In terms of standard
musical notation, an example of this would be a single 1/4 measure
where the rest of the song is in 4/4, or a single 1/8 measure when
the rest of the song is in 6/8. In MIDI terms, this is equivalent
to one full cycle of the current timebase (e.g., for timebase 120, a
single beat, 120 ticks long). Each track used should have its own
InitBeat. This beat should not contain any note on/off data, sysex
dump data, Loop Begin/End events (Controllers 116 and/or 117), or
other non-Controller events. It may, however, contain MetaEvents
such as text, copyrights, markers, program changes (normal or
Controller 112), and the like.

The InitBeat should contain any needed Controller 110, 111, 112, or
113 events needed to set up each track for the song. It may also
contain other Controllers (pitch wheel, modulation, RPN/NRPN data,
etc.) as desired. Keep in mind that you will need to repeat these
controller values at some point within the Master Loop if you change
them at any point in the song (and you rely on the original values
when the song goes back to the Master Start point).

If no special handling is required for a track (i.e., the track is
to be played by all instruments and no Controller resets/setups are
desired), the InitBeat for that track may be left blank. It is
advisable, however, to at least insert a single Controller 110 event
with value 127, indicating that the track is to be played by all
instruments. This is more a matter of personal preference, but it
can come in handy for setting up templates with Cakewalk Pro for
Windows and other programs that support default song templates.

If none of the tracks in a song require any special handling, all
InitBeats may be left blank. Do not delete the InitBeat measure -
just leave it blank.

Controller events may be spread throughout the InitBeat as desired.
You may place them all on a single tick, or on separate ticks. Some
instruments will behave unpredictably if all events for a track are
placed on the same tick (e.g., the 5-6 events needed to adjust pitch
bend parameters, especially if controllers 100 and 101 are set with
value 0 and then reset with value 127 as recommended by Roland), so
composer discretion is advised. At this time, simultaneous events
across multiple tracks are not known to cause a problem.

The InitBeat may be inserted in any way desired. If you are using
Cakewalk Pro for Windows, it is simplest to make the first measure a
1/4 measure (one beat @ 4 per measure) and then switch the meter to
whatever you want to use for the remainder of the song right at
measure 2. Meter changes within the song are not affected by this,
of course.

=============================================================
| IV. Support |
=============================================================

This version of the EMIDI API is being released on a "use at
your own risk" basis. No support is provided, and Apogee Software
Ltd. and 3D Realms Entertainment may not be held responsible
for any problems or damage you incur as a result of using this
API or any programs written to support it.

Anyway, it's a fantastic emulator!

Reply 10 of 21, by Lord Myn

User metadata
Rank Newbie
Rank
Newbie
yes wrote on Today, 13:31:
Lord Myn wrote on Today, 12:25:

What are the correct file names/folder names for the emulator to find the rom files? I have the sc88, sc8850 and sc88pro rom files but the emulator doesn't indentify them.

The names don't matter, just size and hash. I think you're using wrong location for your ROMs, see:
https://github.com/dsp56300/gearmulator/blob/ … -file-locations

Yes, that was it! Many thanks!

Reply 11 of 21, by yes

User metadata
Rank Newbie
Rank
Newbie
giulio wrote on Today, 01:10:

Supports SC-55 series, SC-88 series, SC-88Pro, SC-8820, SC-8850, CM-32P, JV-1080, XV-3080.
Support is coming soon for MT-32, CM-32L, CM-64.

I guess, JV-1080 and XV-3080 are WIP, no signs of them being supported by the current revision of 88emuPlayer.

Reply 12 of 21, by yes

User metadata
Rank Newbie
Rank
Newbie
zaphod77 wrote on Today, 05:46:

ps. you aren't going to find the sc8820 roms.

It looks like MAME guys are going to supply some hand-made 8820 ROMs derived from 8850's ones, see:
https://github.com/mamedev/mame/pull/16086
Anyways, SCCore.dll has all the waveforms of SC-8820 and 88emuPlayer can use them (if you already have the rest of 8820 firmware).

Reply 13 of 21, by zaphod77

User metadata
Rank Member
Rank
Member

well, i'm also missing the program rom. The standin is legal to distribute, right?

Reply 14 of 21, by Trelokk

User metadata
Rank Member
Rank
Member

If only the SC88 supported CTF or could be patched to do so...

Reply 15 of 21, by moturimi1

User metadata
Rank Member
Rank
Member

This project is awesome!
I am looking forward to emulation of JV-1080 and XV-3080 + MT-32 emulation as well.
Then it will be my only Roland device to use in these modern days.
I will then leave all of my devices in the storage. All these Midi cables are a real mess 😀

Reply 16 of 21, by giulio

User metadata
Rank Newbie
Rank
Newbie

1080 and 3080 are supported, but they only show up if you have the correct ROM files and they automatically go into GM mode by default

Reply 17 of 21, by moturimi1

User metadata
Rank Member
Rank
Member
giulio wrote on Today, 18:22:

1080 and 3080 are supported, but they only show up if you have the correct ROM files and they automatically go into GM mode by default

Good to know. I removed all ROMs of other devices from the folder and copied my JV-1080 ROMS to it. I have 1 x 1024kB PROM and 4 x 2048 kB Wave ROMs, but nothing is detected. Is there anywhere information, what the emulator expects for the JV-1080 and XV-3080.
I think for a lot of users it would also be helpfull to support with a link to a tool that can extract the ROMS from the hardware (if possible). In case of the S-MU2000 project this was possible and even I managed the process. I think I and others will not use hotair to desolder the ROMS to read and save them for such rare hardware, even though I did this for some Wavetable Soundcards in the past.

Reply 18 of 21, by giulio

User metadata
Rank Newbie
Rank
Newbie

https://github.com/dsp56300/gearmulator/blob/ … .md#rom-loading

NU-10B nu10b_internal.bin — 64 KiB; nu10b_program.bin — 1 MiB nu10b_wave0.bin — 2 MiB; nu10b_wave1.bin — 2 MiB; nu10b_wave2.bin — 2 MiB; nu10b_wave3.bin — 2 MiB
MIIG5 miig5_internal.bin — 256 KiB; miig5_program.bin — 2 MiB miig5_wave.bin — 32 MiB, already unscrambled

Reply 19 of 21, by moturimi1

User metadata
Rank Member
Rank
Member
giulio wrote on Today, 18:54:

https://github.com/dsp56300/gearmulator/blob/ … .md#rom-loading

NU-10B nu10b_internal.bin — 64 KiB; nu10b_program.bin — 1 MiB nu10b_wave0.bin — 2 MiB; nu10b_wave1.bin — 2 MiB; nu10b_wave2.bin — 2 MiB; nu10b_wave3.bin — 2 MiB
MIIG5 miig5_internal.bin — 256 KiB; miig5_program.bin — 2 MiB miig5_wave.bin — 32 MiB, already unscrambled

Thanks. Now the abbreviations are clear. I am missing the small nu10b_internal.bin I was not aware that there are more chips on the mainboard. I only saw the 5 ROMS. Strange. Maybe in the future there will be some tools to extract the necessary files from the devices, because this project will definately shread in the retro-community.
I think the nameing of the files is not important just like with all other ROMs.