MT-32 vs CM-32L
Moderator: ScummVM Team
MT-32 vs CM-32L
Does ScummVM support CM-32L for the games that use the extra functionality of that Roland module?
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?
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: *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.
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.
- MusicallyInspired
- Posts: 1138
- Joined: Fri Mar 02, 2007 8:03 am
- Location: Manitoba, Canada
- Contact:
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.
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.
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"
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"
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
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
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.
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.
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 notdigitall 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...
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.JohnnyW wrote: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 :(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...
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
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?
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: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.
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.
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.
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.