MT-32 vs CM-32L

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

JohnnyW
Posts: 41
Joined: Sun Sep 21, 2014 11:02 am

MT-32 vs CM-32L

Post by JohnnyW »

Does ScummVM support CM-32L for the games that use the extra functionality of that Roland module?
digitall
ScummVM Developer
Posts: 1177
Joined: Thu Aug 02, 2012 1:40 pm

Post by digitall »

I did a quick search through the ScummVM source code and documentation. It appears that there is no specific code for CM-32L in any of the game engines. The README indicates that with the right options, we support the CM32-L with a MT-32 MIDI mapping:
https://github.com/scummvm/scummvm/blob ... ADME#L1800

However, I think this would be game/engine specific as if the game sends the MIDI commands to use the extra CM-32L functionality, we would just pass this through to the native CM-32L if present..

Which games specifically did you have in mind?
Collector
Posts: 549
Joined: Sun Oct 30, 2005 6:58 pm
Contact:

Post by Collector »

Isn't it dependent on the ROMs?
digitall
ScummVM Developer
Posts: 1177
Joined: Thu Aug 02, 2012 1:40 pm

Post by digitall »

Collector: *sigh* That is not the point of the question.

If you are using ScummVM's MT-32 Emulator based on MUNT which does require the ROM files extracted from a MT-32 or CM32-L, then obviously if you use MT-32 ROMs, it emulates a MT-32 and if you use CM32-L ROMs, it emulates a CM-32L... But the question here is if you have a CM-32L (whether a software emulation or a real hardware device connected to your system), whether ScummVM supports the extra functionality of the CM-32L or just uses it as a MT-32...

I think currently, just as an MT-32 ... but to repeat my previous question to JohnnyW, "which games specifically?" Once we know this, we can investigate further.
User avatar
MusicallyInspired
Posts: 1138
Joined: Fri Mar 02, 2007 8:03 am
Location: Manitoba, Canada
Contact:

Post by MusicallyInspired »

I remember hearing a LSL game uses the extra sounds on the CM-32L. I don't remember which.....or was that the CM-64 with the unique digital sound effects? I forget.
Kirben
Posts: 421
Joined: Wed Sep 21, 2005 12:15 pm
Location: Melbourne, Victoria, Australia

Post by Kirben »

The following games make sure of additional CM-32L sound effects, according to the list on Wikipedia:
Beneath a Steel Sky
Day of the Tentacle
Indiana Jones and the Fate of Atlantis
Leisure Suit Larry 5: Passionate Patti Does a Little Undercover Work
Lure of the Temptress
Rex Nebular and the Cosmic Gender Bender

Lure of the Temptress in particular makes major use of the added sound effects of the CM-32L, but we currently lack Roland support for the game.
digitall
ScummVM Developer
Posts: 1177
Joined: Thu Aug 02, 2012 1:40 pm

Post by digitall »

Thanks Kirben. I was about to post something similar based on http://www.vogons.org/viewtopic.php?t=7718

According to that thread and other documentation, the extra sound effects in the CM-32L are assigned to MIDI Channel 10 and are notes (sound effect) 76 through to 108 inclusive.

It may be useful to output a one-off (debug?) message if any of those notes is used on Channel 10 along the lines of "CM-32L Sound Effect used! Will not be heard on MT-32"
digitall
ScummVM Developer
Posts: 1177
Joined: Thu Aug 02, 2012 1:40 pm

Post by digitall »

Testing will probably be also needed with Sky, SCUMM, SCI, and MADS engines to see if the channel / notes are passed through correctly currently.. (And Lure in future)
JohnnyW
Posts: 41
Joined: Sun Sep 21, 2014 11:02 am

Post by JohnnyW »

Sorry for not responding to this. I had just watched this amazing video on YouTube when I posted: https://www.youtube.com/watch?v=OLvsaJ4h-VY

IIRC it seems that CM-32L is the best middle ground: It supported MT-32 and also had extra sound effects that many games took advantage of (thanks to Kirben for making an example list).

I guess in a perfect world ScummVM would support these extra sound effects.

Edit: You can hear what some of these sound effects are supposed to sound like here: https://youtu.be/OLvsaJ4h-VY?t=2h19m23s
JohnnyW
Posts: 41
Joined: Sun Sep 21, 2014 11:02 am

Post by JohnnyW »

I just wanted to add that I found evidence that Day of the Tentacle makes use of the extra sound effects from the CM-32L/CM-64 MIDI units. This video shows the game being played with an MT-32 unit, and there is no bird tweeting sound:

https://www.youtube.com/watch?v=YQeQzeVmN5w

This video uses the CM-32L unit and there IS a bird tweeting sound:

https://www.youtube.com/watch?v=904QdrYUDiE (note that the author disabled digital sounds in order to allow people to hear the MIDI music more clearly -- the birds tweeting come from the MIDI unit).

There are probably other sound effects that are missing when not playing with CM-32L, too.
JohnnyW
Posts: 41
Joined: Sun Sep 21, 2014 11:02 am

Post by JohnnyW »

digitall wrote:Collector: *sigh* That is not the point of the question.

If you are using ScummVM's MT-32 Emulator based on MUNT which does require the ROM files extracted from a MT-32 or CM32-L, then obviously if you use MT-32 ROMs, it emulates a MT-32 and if you use CM32-L ROMs, it emulates a CM-32L...
Actually that wasn't the point of my question. I was asking if you were using ScummVM's emulator based on MUNT if the CM32-L sounds are emulated, and from what I can tell: Even if you include the CM32-L extracted ROM files... they are not :(

For example: The bird does not tweet at the beginning of DOTT, even if you're using CM-32L ROMs. Tested using ScummVM 1.8.0
User avatar
LordHoto
ScummVM Developer
Posts: 1029
Joined: Sun Oct 30, 2005 3:58 pm
Location: Germany

Post by LordHoto »

JohnnyW wrote:
digitall wrote:Collector: *sigh* That is not the point of the question.

If you are using ScummVM's MT-32 Emulator based on MUNT which does require the ROM files extracted from a MT-32 or CM32-L, then obviously if you use MT-32 ROMs, it emulates a MT-32 and if you use CM32-L ROMs, it emulates a CM-32L...
Actually that wasn't the point of my question. I was asking if you were using ScummVM's emulator based on MUNT if the CM32-L sounds are emulated, and from what I can tell: Even if you include the CM32-L extracted ROM files... they are not :(

For example: The bird does not tweet at the beginning of DOTT, even if you're using CM-32L ROMs. Tested using ScummVM 1.8.0
I am 99.99...% sure our built-in MUNT version does not properly detect that you have CM-32L ROMs. Unlike vanilla MUNT we do not distinguish the ROMs based on the SHA-1 hash of the ROM data. Control ROMs have the same size for all models (see here). Thus, the code just picks the first ROM description which seems to match and that is the MT-32 one instead of the CM-32L one (see here. Funnily enough the comment seems to suggest that this difference isn't a big deal.). Then again, the question is whether this would result in sound effects from being missing.

What would be interesting to see however is if you use a real CM-32L with ScummVM whether it gives these additional effects. Since you seem to have tested it with CM-32L ROMs, you could just test it with your actual CM-32L too?
User avatar
md5
ScummVM Developer
Posts: 2250
Joined: Thu Nov 03, 2005 9:31 pm
Location: Athens, Greece

Post by md5 »

LordHoto wrote: I am 99.99...% sure our built-in MUNT version does not properly detect that you have CM-32L ROMs. Unlike vanilla MUNT we do not distinguish the ROMs based on the SHA-1 hash of the ROM data. Control ROMs have the same size for all models (see here). Thus, the code just picks the first ROM description which seems to match and that is the MT-32 one instead of the CM-32L one (see here. Funnily enough the comment seems to suggest that this difference isn't a big deal.). Then again, the question is whether this would result in sound effects from being missing.
Yes, I did that. I thought that we weren't using the extra CM32-L sound samples anywhere. According to this page, there are games like BASS that do feature additional sound effects:
http://www.marshalltradecorp.com/coDe/o ... cm32l.html

Thus, it's quite possible that this lack of proper detection for the CM-32L instruments is the reason why the bird tweeting sound isn't audible.

I'll add the missing functionality (and sync our MUNT emulator too) these days, and will update this thread when the changes are merged into master.
JohnnyW
Posts: 41
Joined: Sun Sep 21, 2014 11:02 am

Post by JohnnyW »

Wonderful! Thanks, md5!
User avatar
md5
ScummVM Developer
Posts: 2250
Joined: Thu Nov 03, 2005 9:31 pm
Location: Athens, Greece

Post by md5 »

And after about two months, I finally found some time to work on this. The munt SHA1 hash check has been integrated into ScummVM's codebase - now, it should correctly set the needed flags for CM-32L emulation.

I tried DOTT, and the bird chirping sound works correctly now. Try it with a daily build of ScummVM:

http://buildbot.scummvm.org/builds.html

Edit: The patch has been removed, because of probable licencing issues with the SHA1 code. We'll let you know when this has been addressed.
Post Reply