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.)
MT-32 emulation was working with 1.7; not working with 1.8
Moderator: ScummVM Team
- envisaged0ne
- Posts: 162
- Joined: Mon Nov 01, 2010 9:17 am
- Location: United States
Re: MT-32 emulation was working with 1.7; not working with 1.8
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:
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!
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");
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!
- 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
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.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: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.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");
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!