thread

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. VERIFIED Honored Veteran Credibility: 28,322


    Join Date
    Nov 2002
    Location
    No' 'ere
    Posts
    20,165
    Thanks (Received)
    6521
    Likes (Received)
    6351
    Blog Entries
    129
    Live Streaming Channel(s)
    View Channel: barthax
    Mentioned
    99 Post(s)
    Tagged
    44 Thread(s)
    Follows
    83
    Following
    77

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

    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 neogeo.zip file or a "pacman.6e" in your pacman.zip: 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:
    Code:
    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:
    Code:
    C:\MAME>mame165.exe -listroms puckman
    ROMs required for driver "puckman".
    Name                    Size Checksum
    pm1_prg1.6e             2048 CRC(f36e88ab) SHA1(813cecf44bf5464b1aed64b36f5047e4
    c79ba176)
    pm1_prg2.6k             2048 CRC(618bd9b3) SHA1(b9ca52b63a49ddece768378d331deebb
    e34fe177)
    pm1_prg3.6f             2048 CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f8
    1f230a25)
    pm1_prg4.6m             2048 CRC(d3e8914c) SHA1(c2f00e1773c6864435f29c8b7f44f2ef
    85d227d3)
    pm1_prg5.6h             2048 CRC(6bf4f625) SHA1(afe72fdfec66c145b53ed865f9873468
    6b26e921)
    pm1_prg6.6n             2048 CRC(a948ce83) SHA1(08759833f7e0690b2ccae573c929e2a4
    8e5bde7f)
    pm1_prg7.6j             2048 CRC(b6289b26) SHA1(d249fa9cdde774d5fee7258147cd25fa
    3f4dc2b3)
    pm1_prg8.6p             2048 CRC(17a88c13) SHA1(eb462de79f49b7aa8adb0cc6d31535b1
    0550c0ce)
    pm1_chg1.5e             2048 CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b6
    79e49a4a)
    pm1_chg2.5h             2048 CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523
    131fb300)
    pm1_chg3.5f             2048 CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b
    585b7a35)
    pm1_chg4.5j             2048 CRC(1b1d9096) SHA1(53771c573051db43e7185b1d18853305
    6290a620)
    pm1-1.7f                  32 CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f511
    09b1f2a5)
    pm1-4.4a                 256 CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f9
    3e5c75d6)
    pm1-3.1m                 256 CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a
    23430081)
    pm1-2.3m                 256 CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a
    74759746)
    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.

    Code:
    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 (neogeo.zip 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:
    Code:
    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 pacman.zip, puckman.zip 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: 1012
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 puckman.zip 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:

    Code:
    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":

    Code:
    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:

    Code:
    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. VERIFIED BANNED FOR POOR BEHAVIOR Credibility: 29,235
    Join Date
    Jul 2014
    Posts
    5,408
    Thanks (Received)
    1593
    Likes (Received)
    2346
    Mentioned
    23 Post(s)
    Tagged
    25 Thread(s)
    Follows
    50
    Following
    2
    Thanks again Pete, I appreciate your time.
  3. VERIFIED Honored Veteran Credibility: 28,322


    Join Date
    Nov 2002
    Location
    No' 'ere
    Posts
    20,165
    Thanks (Received)
    6521
    Likes (Received)
    6351
    Blog Entries
    129
    Live Streaming Channel(s)
    View Channel: barthax
    Mentioned
    99 Post(s)
    Tagged
    44 Thread(s)
    Follows
    83
    Following
    77
    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. VERIFIED Honored Veteran Credibility: 25,958
    Join Date
    Nov 2002
    Location
    Austin, Texas
    Posts
    21,620
    Thanks (Received)
    9607
    Likes (Received)
    4726
    Blog Entries
    3
    Mentioned
    26 Post(s)
    Tagged
    64 Thread(s)
    Follows
    188
    Following
    548
    Thank you for the great info. I have a better understanding learn more each day.
    Likes Barthax liked this post
  5. Junior Member Credibility: 1,000
    Join Date
    Jun 2017
    Posts
    1
    Thanks (Received)
    0
    Likes (Received)
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Follows
    0
    Following
    4

    ROM files

    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. VERIFIED Honored Veteran Credibility: 28,322


    Join Date
    Nov 2002
    Location
    No' 'ere
    Posts
    20,165
    Thanks (Received)
    6521
    Likes (Received)
    6351
    Blog Entries
    129
    Live Streaming Channel(s)
    View Channel: barthax
    Mentioned
    99 Post(s)
    Tagged
    44 Thread(s)
    Follows
    83
    Following
    77
    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 pacman.zip or pacman\ folder as a separate set of files (not zipped).

    MAME command-line syntax: http://docs.mamedev.org/commandline/...dline-all.html

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