Opened 16 years ago

Closed 16 years ago

Last modified 12 months ago

#7269 closed enhancement (fixed)

MI1VGA Roland support

Reported by: SF/logicdeluxe Owned by: SF/jamieson630
Priority: normal Component: Engine: SCUMM
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, 16 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
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, 16 years ago

Owner: set to fingolfin
Resolution: invalid
Status: newclosed

comment:3 by SF/logicdeluxe, 16 years ago

Status: closednew

comment:4 by SF/logicdeluxe, 16 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, 16 years ago

Owner: changed from fingolfin to SF/jamieson630

comment:6 by fingolfin, 16 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, 16 years ago

I think, that logicdeluxe is right!

Go to:

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, 16 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

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"

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

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

comment:9 by SF/khalek, 16 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, 16 years ago

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

comment:11 by SF/logicdeluxe, 16 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, 16 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, 16 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, 16 years ago

Resolution: invalidfixed
Status: newclosed

comment:15 by Kirben, 16 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, 12 months ago

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