How to check which files are missing for a particular ROM set in (Wolf)MAME

User Tag List

Results 1 to 6 of 6
  1. How to check which files are missing for a particular ROM set in (Wolf)MAME

    10-06-2015, 02:44 AM
    Most versions of MAME and WolfMAME are used at the command line. So there is some expectation that you understand this in the below. Earlier versions of WolfMAME included third-party code which enabled a GUI and that gave some extra options and I'll try to reference them but please realise these are ancient versions.

    Before I begin, one thing to understand about how MAME checks the files: it is done on the content of the ROM file and not based on the name of the zip file nor on the name of the files contained in the zip file. So, for example, if you have a an "sfix.sfix" file in your file or a "pacman.6e" in your it doesn't mean it is the correct one. This occurs because the dump (extraction of data from a ROM chip) may not have been complete, or was incorrect, or even some mistake occurred afterwards like putting it into the wrong game in MAME by a developer: several other explanations occur but the only thing you need to be aware of is that different versions of MAME can use different files for the same game. This happens over time so the newest MAMEs should have the correct information but the older MAMEs won't have been updated and still reference the incorrect information. To illustrate this , there is a -listroms command which can show the set of files included in a particular ROM set.

    Puckman in MAME 0.106:
    C:\MAME>mame106.exe -listroms puckman
    This is the list of the ROMs required for driver "puckman".
    Name            Size Checksum
    namcopac.6e     4096 CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669
    namcopac.6f     4096 CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59
    namcopac.6h     4096 CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8
    namcopac.6j     4096 CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377
    pacman.5e       4096 CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9
    pacman.5f       4096 CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599
    82s123.7f         32 CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5
    82s126.4a        256 CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6
    82s126.1m        256 CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081
    82s126.3m        256 CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746
    Puckman in MAME 0.165:
    C:\MAME>mame165.exe -listroms puckman
    ROMs required for driver "puckman".
    Name                    Size Checksum
    pm1_prg1.6e             2048 CRC(f36e88ab) SHA1(813cecf44bf5464b1aed64b36f5047e4
    pm1_prg2.6k             2048 CRC(618bd9b3) SHA1(b9ca52b63a49ddece768378d331deebb
    pm1_prg3.6f             2048 CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f8
    pm1_prg4.6m             2048 CRC(d3e8914c) SHA1(c2f00e1773c6864435f29c8b7f44f2ef
    pm1_prg5.6h             2048 CRC(6bf4f625) SHA1(afe72fdfec66c145b53ed865f9873468
    pm1_prg6.6n             2048 CRC(a948ce83) SHA1(08759833f7e0690b2ccae573c929e2a4
    pm1_prg7.6j             2048 CRC(b6289b26) SHA1(d249fa9cdde774d5fee7258147cd25fa
    pm1_prg8.6p             2048 CRC(17a88c13) SHA1(eb462de79f49b7aa8adb0cc6d31535b1
    pm1_chg1.5e             2048 CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b6
    pm1_chg2.5h             2048 CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523
    pm1_chg3.5f             2048 CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b
    pm1_chg4.5j             2048 CRC(1b1d9096) SHA1(53771c573051db43e7185b1d18853305
    pm1-1.7f                  32 CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f511
    pm1-4.4a                 256 CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f9
    pm1-3.1m                 256 CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a
    pm1-2.3m                 256 CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a
    To perform the check on the files you have, instead of -listroms use -verifyroms. If the set of files you have are sufficient you get a small amount of feedback and the message is the same for all current (TG perspective) versions. Note: for early WolfMAME versions with a GUI (0.106 and earlier): there is the option to right-click and choose Audit to get this information.

    C:\MAME>mame106.exe -verifyroms puckman
    romset puckman is good
    1 romsets found, 1 were OK.
    C:\MAME>mame165.exe -verifyroms puckman
    romset puckman is good
    1 romsets found, 1 were OK.
    For many games, the files may be spread across two or three files - this is due to a "parent - clone" relationship and the possibility of a BIOS file ( is a popular case). The pacman set, for example, is a clone of the original Japanese set puckman.

    Pacman is shown to be a clone of puckman with the reference to the parent set in square brackets:
    C:\MAME>mame106.exe -verifyroms pacman
    romset pacman [puckman] is good
    1 romsets found, 1 were OK.
    This means that any of the files that are needed by pacman can be placed in either, or both: MAME will find the files regardless of which zip they are in. To this end, you can lump all the clone ROMs into the parent set (puckman in this case). Additionally, MAME does not care what the files are named: it does not look for "pacman.6e" but instead references the file by checksum or Cyclic Redundancy Check (CRC) - a small piece of information which aids in understanding the content of the file without looking inside the file. If you use 7-zip, for example, you can see this information in the CRC column:

    Name:  Screenshot from 2015-10-06 11:20:33.jpg
Views: 1579
Size:  170.6 KB
    Notice how in this file there are multiple files with the same CRC? These are exactly the same file but with different file names (I was too lazy to clean up). MAME doesn't care: it will find the file it seeks if it is in the zip file. This one file (the above 7-Zip snapshot) has been created by merging the files of numerous clones together, across multiple versions of MAME. One complex for all versions of MAME and all clones of puckman that I've ever required. Takes a little thought to get set up.

    Occasionally, you'll stumble across a note from the MAME team that something isn't right but there's nothing you can do about it. For example, the "NEEDS REDUMP" message:

    C:\MAME>mame.exe -verifyroms 19xxjr1
    19xxjr1     : qsound.bin (8192 bytes) - NEEDS REDUMP
    romset 19xxjr1 [19xx] is best available
    1 romsets found, 1 were OK.
    This is not a problem: this version (whichever it is) was known to have an incorrect ROM file and this version will forever have the incorrect knowledge. Newer versions may have corrected the issue. A similar issue you can do nothing about (for the version of MAME tested) is the "NOT FOUND - NO GOOD DUMP KNOWN":

    47pie2      : 91022-01.ic83 (1 bytes) - NOT FOUND - NO GOOD DUMP KNOWN

    When something is wrong MAME will inform you in a manner like the following:

    C:\MAME>mame.exe -verifyroms 2020bb
    2020bb      : 000-lo.lo (131072 bytes) - INCORRECT LENGTH: 65536 bytes
    2020bb      : uni-bios_3_1.rom (131072 bytes) - NOT FOUND (neogeo)
    2020bb      : sm1.sm1 (131072 bytes) - INCORRECT CHECKSUM:
    EXPECTED: CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf)
       FOUND: CRC(97cf998b)
    romset 2020bb [neogeo] is bad
    1 romsets found, 0 were OK.
    In this example, three different files are indicated: this means three different issues have occurred. Observations which display as INCORRECT something are the wrong file. I'd suggest renaming those files (which could be correct for other versions of MAME) and then seeking out another file. In the above you can see that two checksums of the sm1.sm1 file are given: one is the what this version of MAME expects to find and the other is the file's own checksum. Again, it is likely that the file works for some other versions of MAME. It has been known for files to get dropped from a series of MAME and then become required for a future version MAME. Just because the files is wrong now doesn't really mean it is wrong in all circumstances and we circle back to my first note: it depends on the reason it is wrong and could just have been associated with the wrong ROM set.

    The third case in this example is simple: the NOT FOUND message simply indicates the file is missing.

    HTH some understanding of what goes on by MAME & how to check.
    Last edited by Barthax; 10-06-2015 at 04:47 AM.

    Are you on my radar?
    I'd rather be last on every game than throw my time away chasing only one score.
    Thanks Barra, creech, terencew thanked this post
    Likes creech, 1500points liked this post
  2. 10-06-2015, 03:23 AM
    Thanks again Pete, I appreciate your time.
  3. 10-06-2015, 04:43 AM
    Quote Originally Posted by creech View Post
    Thanks again Pete, I appreciate your time.
    No problem. If it helps then it was worthwhile. :)

    Are you on my radar?
    I'd rather be last on every game than throw my time away chasing only one score.
    Likes creech liked this post
  4. 10-28-2015, 05:35 AM
    Thank you for the great info. I have a better understanding learn more each day.
    Likes Barthax liked this post
  5. ROM files

    06-19-2017, 02:28 PM
    How does MAME know which folder to search for a game's ROM files? I have all my ROM files in files in the ROMS folder under MAME. The folder names are just game names not ZIPs and they contain the individual files. Thank you,
  6. 06-19-2017, 02:35 PM
    Quote Originally Posted by kahunadude View Post
    How does MAME know which folder to search for a game's ROM files? I have all my ROM files in files in the ROMS folder under MAME. The folder names are just game names not ZIPs and they contain the individual files. Thank you,
    By default it checks for a folder called "ROMS" underneath where the executable lives. This default can be changed with the command-line "-rompath" option (see link below for common command-line syntax).

    Wherever your default/specified path lives, MAME expects to find the "game" set in a zip file or a folder (but searches both). For example, the pacman set lives either in or pacman\ folder as a separate set of files (not zipped).

    MAME command-line syntax:

    Are you on my radar?
    I'd rather be last on every game than throw my time away chasing only one score.
Join us