MT-32 emulation was working with 1.7; not working with 1.8

Ask for help with ScummVM problems

Moderator: ScummVM Team

Post Reply
rrt
Posts: 1
Joined: Fri Sep 02, 2016 9:27 pm

MT-32 emulation was working with 1.7; not working with 1.8

Post by rrt »

I set up MT-32 emulation with ROM images according to the README instructions, and it was working with ScummVM 1.7.0. Recently I updated to 1.8.1, and I started getting the error "MT32emu Init error: Missing PCM ROM image".

I have not moved the ROM files (which are installed in my extras path), or changed the extras path.

I've searched on the forums and can't find any mention of this issue (though I could have overlooked something).

I note that some default paths have changed in 1.8.0, but I have the extras path explicitly set. I have moved my saved games and ini file to the new locations and tested them.

I tried copying the ROM images into the game directory (in this case, monkey2), but that didn't help: I got exactly the same error.

(Note again: it was working fine with 1.7.0; it stopped working, with identical settings, with 1.8.1.)
lwbqnt
Posts: 6
Joined: Tue Aug 16, 2016 1:35 am

Post by lwbqnt »

As a test, have you tried moving the ROMs into the ScummVM executable program directory?

For example: C:\Program Files (x86)\ScummVM\
User avatar
envisaged0ne
Posts: 162
Joined: Mon Nov 01, 2010 9:17 am
Location: United States

Post by envisaged0ne »

I'm using the latest 1.9 dev build and it's working fine. I do have the ROM files in the ScummVM directory
User avatar
sev
ScummVM Lead
Posts: 2304
Joined: Wed Sep 21, 2005 1:06 pm
Contact:

Post by sev »

rrt, are you on Windows? We did not change much in Munt, the MT-32 emulator, so what you have must be problem with your path layout.


Eugene
SpindleyQ
Posts: 1
Joined: Mon Feb 15, 2021 11:33 pm

Re: MT-32 emulation was working with 1.7; not working with 1.8

Post by SpindleyQ »

Sorry to ressurect an old thread about an old ScummVM version, but it's the first Google result for "MT32emu Init error: Missing PCM ROM image", this message still shows up in 2.2.0, and I figured out what was causing it for me!

Short answer: If you have CM32L_PCM.ROM in the same directory, delete it.

Long answer: The culprit is this code in mt32.cpp:

Code: Select all

	Common::File controlFile;
	if (!controlFile.open("CM32L_CONTROL.ROM") && !controlFile.open("MT32_CONTROL.ROM"))
		error("Error opening MT32_CONTROL.ROM / CM32L_CONTROL.ROM. Check that your Extra Path in Paths settings is set to the correct directory");

	Common::File pcmFile;
	if (!pcmFile.open("CM32L_PCM.ROM") && !pcmFile.open("MT32_PCM.ROM"))
		error("Error opening MT32_PCM.ROM / CM32L_PCM.ROM. Check that your Extra Path in Paths settings is set to the correct directory");
In this logic, the MT32 ROMs are only loaded as a fallback if ScummVM can't open the CM32L ROMs. However, it's not trying to load them as a group - each ROM is considered individually. What was happening to me is that I had a set of ROMs for both the MT32 and CM32L in the Extra Path, but the CM32L control ROM was not named CM32L_CONTROL.ROM, so ScummVM didn't find it. So it tried to configure itself with an MT32 control ROM and a CM32L PCM ROM, decided "Wait a minute - this doesn't match up", and spit out that unfortunately misleading error message.

I don't think you can get the "Missing PCM ROM image" message if ScummVM is not finding any ROM images -- you should hit the above error messages first. (I think they'll show up in the debug console.) You also won't get it if there is an incorrect control ROM image - you'll get "MT32Emu: Init Error - Missing or invalid Control ROM image". As far as I can tell, you get this message only when ScummVM finds a PCM ROM, but it's not the file it's expecting.

Hope this helps someone!
User avatar
Praetorian
ScummVM Developer
Posts: 882
Joined: Tue May 08, 2007 8:54 am
Location: Greece
Contact:

Re: MT-32 emulation was working with 1.7; not working with 1.8

Post by Praetorian »

SpindleyQ wrote: Tue Feb 16, 2021 2:02 pm Sorry to ressurect an old thread about an old ScummVM version, but it's the first Google result for "MT32emu Init error: Missing PCM ROM image", this message still shows up in 2.2.0, and I figured out what was causing it for me!

Short answer: If you have CM32L_PCM.ROM in the same directory, delete it.

Long answer: The culprit is this code in mt32.cpp:

Code: Select all

	Common::File controlFile;
	if (!controlFile.open("CM32L_CONTROL.ROM") && !controlFile.open("MT32_CONTROL.ROM"))
		error("Error opening MT32_CONTROL.ROM / CM32L_CONTROL.ROM. Check that your Extra Path in Paths settings is set to the correct directory");

	Common::File pcmFile;
	if (!pcmFile.open("CM32L_PCM.ROM") && !pcmFile.open("MT32_PCM.ROM"))
		error("Error opening MT32_PCM.ROM / CM32L_PCM.ROM. Check that your Extra Path in Paths settings is set to the correct directory");
In this logic, the MT32 ROMs are only loaded as a fallback if ScummVM can't open the CM32L ROMs. However, it's not trying to load them as a group - each ROM is considered individually. What was happening to me is that I had a set of ROMs for both the MT32 and CM32L in the Extra Path, but the CM32L control ROM was not named CM32L_CONTROL.ROM, so ScummVM didn't find it. So it tried to configure itself with an MT32 control ROM and a CM32L PCM ROM, decided "Wait a minute - this doesn't match up", and spit out that unfortunately misleading error message.

I don't think you can get the "Missing PCM ROM image" message if ScummVM is not finding any ROM images -- you should hit the above error messages first. (I think they'll show up in the debug console.) You also won't get it if there is an incorrect control ROM image - you'll get "MT32Emu: Init Error - Missing or invalid Control ROM image". As far as I can tell, you get this message only when ScummVM finds a PCM ROM, but it's not the file it's expecting.

Hope this helps someone!
Probably worth opening a bug ticket about it so that someone will correct the logic here and/or improve the error message(s) to be more specific.
Post Reply