artyb
Posts: 3
Joined: Mon Nov 22, 2021 9:06 pm

ROMs found using -verifyroms but not when trying to start emulation

Hi,

Thank you for your work on MAME. I'm trying to use MAME 0.228 on Debian Bullseye, but can't get started. I've put a few roms in mame/roms in my home directory. They are owned by the user, and have at least read permissions.

Should MAME be able to read roms from inside zip files, or should I extract them?

I get the error "Error opening translation file English", is there something I can do to fix that?

Running mame -verifyroms shows eg "romset XX [XX] is good" for the machine I'm trying to emulate, but doesn't find an associated XXdos.rom file-should it?

When I try to start the machine using:

mame XX -window -flop1 XX.dsk

Error opening translation file English
XX.rom NOT FOUND (tried in XX XX)
XXdos.rom NOT FOUND (tried in XX XX)
Fatal error: Required files are missing, the machine cannot be run.

Any ideas?

Thank you,
A
mhoes
Posts: 186
Joined: Wed Oct 26, 2016 12:26 pm

Re: ROMs found using -verifyroms but not when trying to start emulation

artyb wrote: Sun Dec 19, 2021 7:43 pm Should MAME be able to read roms from inside zip files, or should I extract them?
Leave them zipped, MAME is able to use them zipped.
artyb wrote: Sun Dec 19, 2021 7:43 pm I get the error "Error opening translation file English", is there something I can do to fix that?
MAME supports different languages for the user interface. On Windows, for example (for English) they are stored in the "language\English" subfolder of wherever you extracted MAME to. I have no idea where these files are supposed to be located on Linux Debian, but you could check your 'mame.ini' file to see where 'languagepath' points to. Looking at Fedora 35, the Fedora supplied MAME rpm package puts them in "/usr/share/mame/language". If you dont have a 'mame.ini', you can create one by running 'mame -cc', and it will create one with default settings in your current directory.
artyb wrote: Sun Dec 19, 2021 7:43 pm Running mame -verifyroms shows eg "romset XX [XX] is good" for the machine I'm trying to emulate, but doesn't find an associated XXdos.rom file should it?
If MAME says that it can't find something, then it needs it. So yes, it should find that 'XXdos.rom' file.
artyb wrote: Sun Dec 19, 2021 7:43 pm XX.rom NOT FOUND (tried in XX XX)
XXdos.rom NOT FOUND (tried in XX XX)
Fatal error: Required files are missing, the machine cannot be run.
MAME is telling you what it needs ("XX.rom" and "XXdos.rom", and where it went looking for them ("tried in XX XX"). They should be exactly there, and if they are not located there, MAME can't find them. Put these files where MAME expects to find them, or edit your 'mame.ini' to point MAME at the location you put those files.
mhoes
Posts: 186
Joined: Wed Oct 26, 2016 12:26 pm

Re: ROMs found using -verifyroms but not when trying to start emulation

Well, I installed Debian 11.2 (aka 'Bullseye') in a VM, and installed the debian provided MAME package. At least regarding the language error, there appears to be a packaging error with the debian MAME package. After installing MAME, the directory '/usr/share/games/mame/language' exists and is searched by MAME, but all the sub-directory's (like 'English', 'French', etc.) are all empty. They should contain the language files ('strings.mo'), and they do not.
artyb
Posts: 3
Joined: Mon Nov 22, 2021 9:06 pm

Re: ROMs found using -verifyroms but not when trying to start emulation

Hi mhoes,

Thank you for the replies, and for installing Debian in a VM to investigate the language file issue.


When I run the -verifyroms command I noticed that XXdos.rom wasn't listed, but there is no error about it being missing. The romset XX [XX] is found though, but not when I try to start emulation; instead I get the error: XX.rom NOT FOUND (tried in XX XX). Both files are in a zip folder of the name that MAME says its looking in, and I've also tried copying them to both mame/roms in my home directory and to sub folders of mame/roms in my home directory named XX which is the name MAME says its looking in. In all these cases MAME doesn't find the roms, so I'm at a loss as to what to do next.

I don't want to install the other version in Debian testing because that would upgrade lots of important parts of my install as well.

Thanks,
A
mhoes
Posts: 186
Joined: Wed Oct 26, 2016 12:26 pm

Re: ROMs found using -verifyroms but not when trying to start emulation

Maybe it's just me, but I find it slightly difficult to determine what is causing your issue when you keep replacing things in entered commandlines and MAME output with things like 'XX'. Perhaps it would help if you showed the exact commandlines exactly as you type them, and the exact output of MAME, without replacing things with 'XX' or similar substitutions ? (for both the -verifyroms command and output, and the commandline and output when trying to start the emulation). Having said that, the issue might be that you have a 'foo.bin' in foo.zip, but it is the wrong version for the version of MAME that you are using. Due to reasons [1], the contents of roms may change over time (even though the names might be the same), resulting in the fact that any given rom (version) you have may not be valid for the mame version you are using. Also, one of the default roms locations in Debian Bullseye appears to be in "$HOME/mame/roms", so if you put them there (for example "$HOME/mame/roms/rom.zip") then the location should be good. Only *.chd files need to be put in a sub-directory, like for example 'roms/alien/alien.chd'.

[1]
https://docs.mamedev.org/usingmame/aboutromsets.html
artyb
Posts: 3
Joined: Mon Nov 22, 2021 9:06 pm

Re: ROMs found using -verifyroms but not when trying to start emulation

Hi mhoes,

OK, I'd redacted the names because of forum policies about roms.

I haven't been able to find MAME specific versions of some of these, so that could be the issue?

mame -verifyroms | grep cpc
romset al520ex [cpc464] is good
romset cpc464 is good
romset cpc464p is best available
romset cpc6128 [cpc464] is good
romset cpc6128f [cpc464] is good
romset cpc6128p is best available
cpc6128s : cpc6128s.rom (32768 bytes) - NOT FOUND
romset cpc6128s [cpc464] is bad
cpc6128sp : amstrad_40038.ic103 (32768 bytes) - NOT FOUND
cpc6128sp : mmi_hal16l8.ic118 (260 bytes) - NOT FOUND - NO GOOD DUMP KNOWN
romset cpc6128sp [cpc464] is bad
romset cpc664 [cpc464] is good
romset kccomp [cpc464] is good
romset cpc_brunword4 is good
romset cpc_serams is good
romset cpc_ssa1 is good
romset cpc_dkspeech is good
romset cpc_hd20 is good
romset cpc_smartwatch is good
romset cpc_transtape is good
196 romsets found, 194 were OK.

So I have cpc6128 [cpc464] and cpc464. No mention of cpcados.rom though, even though it it present.

mame cpc6128 -window -flop1 chuck.dsk
Error opening translation file English
cpc6128.rom NOT FOUND (tried in cpc6128 cpc464)
cpcados.rom NOT FOUND (tried in cpc6128 cpc464)
Fatal error: Required files are missing, the machine cannot be run.

chuck.dsk is in ~/mame/roms/

cpc6128.rom cpc464.rom and cpcados.rom exist in ~/mame/roms/cpc6128.zip and also in the folder ~/mame/roms/cpc6128 where I tried copying them to in response to the error message.

cpc464.rom and cpcados.rom exist in ~/mame/roms/cpc464.zip

Hope that helps.
Cheers,
A
mhoes
Posts: 186
Joined: Wed Oct 26, 2016 12:26 pm

Re: ROMs found using -verifyroms but not when trying to start emulation

artyb wrote: Mon Dec 27, 2021 1:42 pm OK, I'd redacted the names because of forum policies about roms.
I fully understand that, but it's hard to troubleshoot when you only have parts of the information. But I think it's safe to mention the names of roms, as long as we do not talk about how and where to find them. If I'm mistaken, I'm sure a moderator will step in and lock the thread, but based on what we have mentioned so far I personally don't think they will.
artyb wrote: Mon Dec 27, 2021 1:42 pm I haven't been able to find MAME specific versions of some of these, so that could be the issue?
Yes. You need to have rom files that match exactly what (your version of) mame expects, or else it will not work. I suspect that this is what is happening here. Even more so, because I cannot reproduce your results on my Debian installation when i run 'mame cpc6128 -window' (it works as expected). Of course, that doesn't explain why '-verify' and starting the actual emulation produce different results for you; you would expect them to have the same result.

One more thing to try might be running 'mame -verifyroms cpc6128' (and see what that gets you), which produces this for me :

Code: Select all

mame -verifyroms cpc6128
romset cpc6128 [cpc464] is good
1 romsets found, 1 were OK.
But I highly suspect you need to find the 'right' roms for your mame version, with which we obviously cannot help you here because of the forum rules.
cpw83
Posts: 5
Joined: Tue Jul 03, 2018 6:37 pm

Re: ROMs found using -verifyroms but not when trying to start emulation

mhoes wrote: Of course, that doesn't explain why '-verify' and starting the actual emulation produce different results for you; you would expect them to have the same result.
Yes, I would expect that as well, seems a bit weird. Maybe -verifyroms just checks for filenames and not for sizes and checksums?

//EDIT: No, it should check for size and at least CRC32, I just tried verifying something fake with -verifyroms in 0.238 on Windows.
artyb wrote: cpc6128.rom cpc464.rom and cpcados.rom exist in ~/mame/roms/cpc6128.zip
Have a closer look at the files in the ZIP archives. MAME 0.228 expects (you can get this info by using -listxml):

for cpc6128.zip:

Code: Select all

<rom name="cpc6128.rom" size="32768" crc="9e827fe1" sha1="5977adbad3f7c1e0e082cd02fe76a700d9860c30" region="maincpu" offset="10000"/>
<rom name="cpcados.rom" size="16384" crc="1fe22ecd" sha1="39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb" region="maincpu" offset="18000"/>


and for cpc464.zip:

Code: Select all

<rom name="cpc464.rom" size="32768" crc="40852f25" sha1="56d39c463da60968d93e58b4ba0e675829412a20" region="maincpu" offset="10000"/>

Check if the sizes and checksums of those files match.

// EDIT 2:

Are you running

Code: Select all

mame -verifyroms | grep cpc
mame cpc6128 -window -flop1 chuck.dsk
consecutively from the same shell in the same directory? I wonder if you might somehow have two different MAME versions installed (maybe one executable in the folder you're in at that moment, one somewhere else that is called via environment variable) that look for their ROMs in different directories.

Return to “MAME Discussion”