#7388 closed feature request
AUDIO: CMS/Gameblaster Emulation
Reported by: | SF/tbcarey | Owned by: | lordhoto |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: | Monkey Island 1 |
Description
I don't know if this has been discussed before, but I thought I'd make the request anyway.
In both Monkey Island 1 PC Floppy [EGA/VGA versions] and Loom PC Floppy [EGA], CMS/Gameblaster support is not available. I don't know whether this applies to more games that pre-date them, although obviously they were the last two games to support it.
I realize that PCjr/Tandy Sounds emulation is active, and the Gameblaster/CMS' "overall sound" is fairly similar to it, but the way both are utilized in Loom and MI1 is fairly different. The original PCjr soundtrack is extremely like the PC Speaker one, whereas the Gameblaster soundtrack is far more melodic [I believe it uses almost all of the Gameblaster's 12 channels, as opposed to the PCjr's 3, but I could be wrong]. I have included samples of both to highlight the distinction.
Gameblaster support has been added to DOSBox, where it was originally taken from MAME's source, I believe. I don't think it would be a very difficult task to implement support for it since it's probably extremely similar to PCjr/Tandy sounds emulation, just with 9 more operators.
Ticket imported from: #1040167. Ticket imported from: feature-requests/204.
Attachments (2)
Change History (18)
by , 20 years ago
Attachment: | gameblaster_monkeyisland.ogg added |
---|
by , 20 years ago
Attachment: | pcjr_monkeyisland.ogg added |
---|
Clip of PCjr/Tandy Sounds Monkey Island 1 Intro
comment:1 by , 20 years ago
What about OPL2 aka Adlib emulation which is also present in ScummVM? Is there advantages of Gameblaster except stereo over Adlib? (I mean in case of ScummVM)
comment:2 by , 20 years ago
There are no 'advantages' over OPL/2 emulation -- CMS came out around the same time and was inferior to OPL/2 [Adlib].. it rests somewhere between PCjr and Adlib. However, it was definitely a 'unique' sounding device that's worth emulating for nostalgic reasons.
Additionally, many of the songs are skipped when using PCjr/Tandy Sounds -- I believe it only plays the same songs as the Internal Speaker, which are few and far between. The Gameblaster, however, plays all songs that Adlib/OPL2 and Roland/MT-32 do.
It's definitely a worthy addition, if not only to reproduce an element of several early Lucasfilm games that is currently missing. Also, I'm just a big fan of that old-school sine/tri/square-wave sound :)
comment:3 by , 20 years ago
Just to clarify, OPL/2 or Adlib is FM synthesis, while CMS/Gameblaster is simply sinewave and noise generation, nothing more. As you mention, CMS/Gameblaster was stereo while OPL/2 was mono, but that has little bearing on the overall comparison considering they utilize two totally different types of sound generation.
According to one FAQ author, "...the GameBlaster chips are really easy to program (due to the fact that it can't do anything)". Apparently it's only a matter of producing 12 sine waves of specific frequencies and magnitudes, and a simple noise channel. The FAQ is here if it can be of any help in implementing CMS/Gameblaster support:
http://www.arl.wustl.edu/~lockwood/class/cse306-s04/resources/gpe/gameblst.txt.html
One of the main reasons I can see for implementing it is that it is technically different from both the PCjr and Adlib, so merits inclusion due to its variance, but also because PCjr music on almost all Lucasfilm/Lucasarts games is practically identical to the internal speaker music, making it an inadequate substitute.
I hope this gets implemented, anyway!
comment:4 by , 20 years ago
Sorry to keep adding more comments. I just thought I'd add that after some research, I found out that two additional LucasArts titles supported CMS/Gameblaster -- 'Indiana Jones and the Last Crusade' and 'Night Shift', though I suppose the latter doesn't apply since it's not a SCUMM game.
That brings the total number of SCUMM games supporting CMS/Gameblaster to 3: 'Indiana Jones and the Last Crusade', 'Loom', and 'The Secret of Monkey Island'.
Again, hope that helps is some way and isn't a bother.
comment:5 by , 20 years ago
I think it's the same sound device that Nagi or Sarien uses by default instead of PCjr in the early AGI games, and you can tell it definitely sounds better than the latter (which is merely a three-voice speaker). I agree that it's unique PSG rendering has a real appeal, especially in Space Quest 3. I'd love to hear it in CMS-enabled Scumm games :)
comment:6 by , 20 years ago
hmm. according to mobygames that's Indiana Jones and the last Crusade: Graphic Adventure which has CMS support. That means that only 2 titles are supported. Neither one of other engine games do use CMS.
comment:7 by , 20 years ago
oops. DIdn't check the screenshots and now I see that that is complete game name. Never thought about it. There are three games which do use CMS:
monkey1 loom indy3
comment:9 by , 20 years ago
I took a look on how to implement it. Unfortunately it appeared to be much more difficult task than I thought before. CMS is port-driven, i.e. it works by writing some simple instructions to ports 0x220-0x223. It has its own set of command, so support of it will require another parser and in original they're quite complicated.
Though I still would like to see it implemented someday.
comment:10 by , 20 years ago
DOSBox has CMS emulation built-in. Since DOSBox is open source, I'm assuming it'd be easy to implement the emulation code into ScummVM after speaking with/crediting the developers, right?
comment:11 by , 20 years ago
No, that's the point. Dosbox emulates processor/interrupts/ports. Original SCUMM engine parsed music data and fed CMS ports with instructions. That means that we have to implemet same parser for ScummVM. After that there will be an easy part: incorporate dosbox's Gameblaster implementation.
Parser there is not that simple, though I didn't compare it with our already implemented PC speaker parser, maybe they're similiar enough and major parts of it may be reused, but there is not manpower to perform the task now.
comment:12 by , 20 years ago
Just a note for reference: VAR(VAR_SOUNDCARD) should be set to 2 for CMS/Gameblaster sound.
There is a check against VAR(VAR_SOUNDCARD) in script (room 2 script 209) of Loom[EGA], which alters soundtrack credits based on its value.
comment:13 by , 17 years ago
Summary: | CMS/Gameblaster Emulation → AUDIO: CMS/Gameblaster Emulation |
---|
comment:14 by , 13 years ago
Owner: | set to |
---|---|
Status: | new → closed |
comment:16 by , 6 years ago
Component: | → Engine: SCUMM |
---|---|
Game: | → Monkey Island 1 |
Clip of CMS/Gameblaster Monkey Island 1 Intro