Opened 21 years ago

Closed 21 years ago

Last modified 6 years ago

#7269 closed feature request (fixed)

MI1VGA Roland support

Reported by: SF/logicdeluxe Owned by: SF/jamieson630
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Monkey Island 1


Only Adlib emulations works in the current version. E.g. '-e windows' has no effect on this game. The MT32-MIDIs should be translatable to GM like ScummVM already does it in later games.

Ticket imported from: #742249. Ticket imported from: feature-requests/85.

Change History (16)

comment:1 by fingolfin, 21 years ago

There is no MT32 midi in MonkeyVGA. And anyway, did you actually try with latest CVS? For the problem with "-e windows" not working with MonkeyVGA was only present for a few days, and was fixed some time ago. Feel free to reopen this if you really think there is some justification, but this time please include at least your specs (what ScummVM version etc.)

comment:2 by fingolfin, 21 years ago

Owner: set to fingolfin
Resolution: invalid
Status: newclosed

comment:3 by SF/logicdeluxe, 21 years ago

Status: closednew

comment:4 by SF/logicdeluxe, 21 years ago

You are wrong. In fact there ARE Roland MIDI's with the VGA disk version, though they are a bit hidden. They are included in disk04.lec in the very last room there is a bunch of Roland-MIDI's also called RO hence they can be easily mistaken for rooms. Check this out with ScummRV. Also noticable when playing directly from disk (despite it is not recommended in the readme) you have to insert disk 4 every time a music is to be loaded.

For Monkey EGA and Loom EGA there are free upgrades at LucasArts for download, which add MT-32 support for those versions, too. There the MIDI's are stored in separate files as well. This is disk09.lec for Monkey EGA and several further lfl files for Loom EGA. (Yes, those old Interpreters do have an undocumented '-r' switch! Try it without those upgrates and you will see a file not found error.)

Since you want to know: ScummVM 0.5.0pre-cvs Windows Built on Jul 5 2003 21:59:31 But there is no different since the first version supported monkeyvga with music anyway, since there is simply no MT-32 support implemented in ScummVM yet, hence I did not write those information in the opening post earlier. Btw. "-e windows" has no effect with monkeyvga.

comment:5 by fingolfin, 21 years ago

Owner: changed from fingolfin to SF/jamieson630

comment:6 by fingolfin, 21 years ago

"Check this out with ScummRV" assumes that a) I own that game and b) I can use ScummRev, neither is true.

Maybe Jamieson wants to say something on this matter <shrug>

comment:7 by SF/andrej4000, 21 years ago

I think, that logicdeluxe is right!

Go to: 1.htm#Roland%20Upgrade

There you can get the Roland-Upgrade for MonkeyEGA (DISK09.LEC), if you compare the only room in this file with the last room in DISK04.LEC of MonkeyEGA, you'll find, that they are identical!

And in fact, tha Roland-Sounds-Ressources have thje Header "RO".

comment:8 by SF/jamieson630, 21 years ago

Well, I downloaded the disk09.lec and ran a hex dump on the non-room "RO" resources from ScummRev. One "RO" looks like a valid room resource (albeit without any real useful information, but there ARE child elements in there), while the rest look like they COULD possibly pass as MIDI data. If I were to write a parser off the top of my head, here's how I would interpret the file:

Music starts at address + 6 bytes (just past the two- character "RO" header, though it might start a few bytes later).

Events seem to follow SMF closely. Cx (program change, 1 byte data); Bx (control change, 2 bytes data); 9x (note on, 2 bytes data); and 8x (note off, 2 bytes data); all look to match up fine. Ax appears numerous time, with no data, and so far all I've found is 0xA0 (i.e. x == 0 every time). Could probably be ignored in a first-pass parser.

Events stream one right after another, and are assumed to occur at the same point in time unless F0 xx is encountered. This is a delay marker where xx == ticks (presumably) to delay. xx == 0 means end of track. Also, FF is sometimes used instead of F0 00 at end of track. Whether this type of EOT should be treated separately (e.g. does it mean loop to beginning instead?) is unknown.

So... yeah, I could throw together a parser for this format. What I'm not so sure about is (1) whether an attempt is made to load these songs in the MonkeyVGA scripts, and (2) how we distinguish the music "RO" resources from the room "RO" resources.

If somebody else can look at the resource loading/identification issue, I'll see what I can do for parser code.

Fingolfin, I will leave this tracker item's resolution and status for you decide upon.

comment:9 by SF/khalek, 21 years ago

on a similiar note the afore mentioned roland patch for loom (adds some LFLs), it would be nice if that could be supported as well :)

It is a self extracting zip file.

comment:10 by SF/andrej4000, 21 years ago

Is this a true patch for loom game files or just an updated interpreter?

comment:11 by SF/logicdeluxe, 21 years ago

Actually this is no patch at all. The archive just contains some additional LFL files. No changes applie to any of the existing files. You can try "loom.exe r" without the upgrate, and the interpreter fails the attempt to load those extra files. And after upgrading you can still play like befor without the 'r' parameter and use Adlib or PC-Speaker and play without the ouverture. That 'r' must influens the script behavior in some way. The same goes for monkeyega and monkeyvga.

comment:12 by Kirben, 21 years ago

Some notes for future reference: The roland RO resources can be found when VAR_SOUNDCARD is set to 4. The roland resources in monkeyega/vga appear to be exactly the same. The roland resources in loom are tagless.

comment:13 by SF/jamieson630, 21 years ago

So if we set up VAR_SOUNDCARD with the right number, instead of 3 every time (presumably 3 is for Adlib), some older games use that to reference different music resources, including the Roland RO resources. Okay, working on a parser now. First-pass parser will probably not support Loom until we can fudge a header for it.

comment:14 by Kirben, 21 years ago

Resolution: invalidfixed
Status: newclosed

comment:15 by Kirben, 21 years ago

Roland support for loom (ega), monkeyega and monkeyvga is now in ScummVM cvs. Unfortunately monkeyega and monkeyvga don't seem to have roland sfx, only music. So you will miss out on sound effects.

comment:16 by digitall, 6 years ago

Component: Engine: SCUMM
Game: Monkey Island 1
Note: See TracTickets for help on using tickets.