GithubHelp home page GithubHelp logo

Comments (41)

nullpainter avatar nullpainter commented on June 18, 2024

I'll take a look at this, @mika76. I'm guessing it is just the XML format changes, in which case it should be really easy to support earlier versions. Or, at least, this version. Not sure how many breaking changes MAME have made to this schema.

from mamesaver.

mika76 avatar mika76 commented on June 18, 2024

If I remember right it was just the root element or something. Probably easy to see just going through our old commits...

from mamesaver.

mika76 avatar mika76 commented on June 18, 2024

Come to think of it some command line args might be different too...

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

If I remember right it was just the root element or something. Probably easy to see just going through our old commits...

It's a bit more involved than that, unfortunately. I start by running MAME with the -verifyroms to identify good ROMs. The current version of MAME allows us to pass a list of ROMs to check on the command-line. Without this, all supported ROMs are output, which results in the process taking a lot longer.

It appears that MAME 0.177 only accepts a single ROM to verify:

|12:36:14|Matthew_Painter@LT2J157672H:[mame0177]> ./mame -verifyroms bzone asteroid
Error: unknown option: asteroid

vs MAME 0.191:

|12:39:56|Matthew_Painter@LT2J157672H:[mame]> ./mame64 -verifyroms bzone asteroid
romset asteroid is good
romset bzone is good
2 romsets found, 2 were OK.

So either I need to:

  1. Go with the lowest common-denominator and call MAME once per ROM. I fear this may adversely impact performance for large ROM sets; or
  2. Identify MAME version being used, when the behaviour for this (and the game list, and the arguments) changed, and intelligently adapt; or
  3. Brute force it. Run MAME with the ideal arguments, identify it it vomits and fall back.

Ordinarily, I'd just suggest that people upgrade to the latest version, but I understand there is a legitimate desire for old MAME versions to be run, due to when ROMs were dumped and performance.

I'll do some digging. Hopefully I don't need to wade through too many changelogs.

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

Brute force works well, even if it is a bit of a hack:

private IDictionary<string, string> GetVerifiedSets(Action<int> progressCallback)
{
    var verifiedSets = GetVerifiedSets(progressCallback, RomsPerBatch);
    if (verifiedSets.Any()) return verifiedSets;

    // Cater for old versions of MAME which only supported verifying single ROMs at a time
    return GetVerifiedSets(progressCallback, 1);
}

This will result in a performance hit if users are running an old version of MAME and have large number of ROMs, however this is hopefully less of a hit than parsing the entire supported/unsupported game output.

Now onto the -listxml differences. In general, I'd prefer to adapt parsing based on the output than version detection. Apart from being easier, it's also definitive and involves far less trawling through old documentation.

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

Same issue for -listxml - older versions of MAME only support retrieving single game details at a time. Fixed using similar brute-force approach. Same caveats about performance apply.

The XML structure in 0.177 is the same for 0.199, for the elements we care about. I do remember having to tweak this based on your original code, @mika76, so I will grab a really old version of MAME and get that working too. Might as well be inclusive!

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

All fixed and PR submitted. Versions from 0.155 have been tested. Thanks for reporting this, @antdude!

from mamesaver.

antdude avatar antdude commented on June 18, 2024

Thanks and you're welcome. Please kindly let me know when the stable version is released. :)

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

If you're impatient, feel free to install from here:
https://ci.appveyor.com/project/mmihajlovic/mamesaver/build/job/8hjss9e4eac58hy8/artifacts

I'd love to hear how you get on!

from mamesaver.

antdude avatar antdude commented on June 18, 2024

Thanks nullpainter. I'll check it out when I have time. A bit busy and way behind in life right now. :(

from mamesaver.

antdude avatar antdude commented on June 18, 2024

I am still waiting for Game List to build in it (v3.0.1 from five days ago). It had been already over five minutes with my old C:\winstuff\mame0177b_64bit\mam64.exe hogging CPU in my decade old, updated 64-bit W7 HPE SP1 PC. How long is it supposed to take?

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

Yes, that's the problem with the previous approach from a few years back. With the newer versions of MAME, I am able to invoke it once per ~50 games. However with the older versions, you need to invoke it once per game. As you can imagine, this takes significantly longer.

The good(ish) news is that once you build your gamelist, you don't need to do it again. If you have added a game, you can - if you wish - bypass the automated mechanism and edit the game list XML directly in Mamesaver. Not ideal, but a workaround.

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

Yes, that's the problem with the previous approach from a few years back.

Actually, the problem with the previous approach was because MAME was invoked once, but retrieved the entire XML details of every single known - supported and unsupported - game. Similar performance problem though.

How many games do you have, @antdude? And how long did it roughly take in total? If it's really unacceptable, I may be able to revisit the single game list approach and see if I can optimise the parsing.

from mamesaver.

antdude avatar antdude commented on June 18, 2024

I went to shower and then just got back, and noticed an error: https://i.ibb.co/RyYzY46/error.gif
The only thing I configured was my MAME's location (C:\winstuff\mame0177b_64bit\mam64.exe). I am rerunning it again with its debug enabled. Also, I'm going to sleep soon!

from mamesaver.

antdude avatar antdude commented on June 18, 2024

Nullpainter: http://wikisend.com/download/334116/dir.txt for my dir /o:n /s of my MAME v0.177 ROM file listing. Still waiting for Mamesaver Config to finish itself...

from mamesaver.

antdude avatar antdude commented on June 18, 2024

It failed again. I see no %TEMP%\MameSaver\ with my debug logs. :(

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

Yes, 2,048 files will take a remarkably long time. Let me see how fast I can make the XML parsing of the full list instead. I'll keep you posted.

It failed again. I see no %TEMP%\MameSaver\ with my debug logs. :(

Thanks for reporting this and giving it another go. This is a general error if something very bad happens invoking MAME, but I'm surprised there are no logs. We should be logging at info level, so there should always be something. I'll check on this as well.

Appreciate your patience!

from mamesaver.

antdude avatar antdude commented on June 18, 2024

Oh, I need to start Mamesaver to get the logging enabled. Um, you guys need to tell users that they need to restart it to enable it. I assume the same for disabling.

from mamesaver.

antdude avatar antdude commented on June 18, 2024

FYI. I tried to make a bug report about the logging issue (need to tell users to restart their MAME Saver), but couldn't due to a known HTTP 500 error as shown in https://twitter.com/githubstatus/status/1141633660342415365. Argh. :(

from mamesaver.

antdude avatar antdude commented on June 18, 2024

Also shown in https://www.githubstatus.com/.

from mamesaver.

antdude avatar antdude commented on June 18, 2024

https://www.sendspace.com/file/dk0ahi for my debug logs for the third crash. It looks like it stopped after:
...
2019-06-20 02:17:04.722 -07:00 [DBG] MAME started; pid: 10056
2019-06-20 02:17:04.853 -07:00 [INF] Invoking MAME with arguments: -verifyroms dkongjre

:( OK, time for me to sleep so good night all! :)

from mamesaver.

antdude avatar antdude commented on June 18, 2024

Oh, the Github issue was fixed so #55 for my bug report about debugging issue. :)

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

Thanks for the log file and the report about having to start the saver! So there wasn't a later Mamesaver log in that directory? That one is 100k which is the limit where the logger rolls over to a new log file.

from mamesaver.

antdude avatar antdude commented on June 18, 2024

nullpainter: I retried it again. That's the only log I got. Similar results (different ROM filename this time):
...
2019-06-20 02:55:34.247 -07:00 [INF] Invoking MAME with arguments: -verifyroms dkongjrj
2019-06-20 02:55:34.251 -07:00 [DBG] MAME started; pid: 11884
2019-06-20 02:55:34.381 -07:00 [INF] Invoking MAME with arguments: -verifyroms dkongjrm
2019-06-20 02:55:34.385 -07:00 [DBG] MAME started; pid: 18956

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

That's just info level logging. Not sure why the log file didn't roll over.

In any case, we've never tested the screensaver with 2k of ROMs. I suspect that once we've passed this hurdle, the gave validation - where MAME checks the presence of correct files in each zip - is also going to take an unacceptably long time for 4Gb or ROMs.

Have you tried using a semi-curated list?

from mamesaver.

antdude avatar antdude commented on June 18, 2024

Ah. It must be another bug then so I made #56. Lots of bugs from me! ;)

How does semi-curated list work? I don't have any huge ROMs as you can see in my file listing with dir command. I was hoping to use all my MAME ROMs. I am sure some people would use their whole 100% complete ROM collections. ;)

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

Well, you have over 2,000 ROMs. Are you wishing to see all of them? Including all the clones/variants?

I'll continue to look at the performance, but this is just a warning that there may still be issues. The alternative is for us to do filtering/validation at the time a game is selected for playing in the screensaver itself. This may be a sensible 'advanced' option - "delayed verification" or something. That way, the list will build faster for huge collections, at the expense of invalid or unplayable ROMs being listed and potential delays for game selection in the screensaver.

from mamesaver.

antdude avatar antdude commented on June 18, 2024

nullpainter: Ah, I didn't I know I had that many. I just collect the games that I love, interested, and keep. :) I wonder if there are any MAME Saver users who have huge collections.

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

That's the number in the directory listing you sent me - 2048 games, totaling 4Gb. Or was that directory not the one you were running Mamesaver against?

from mamesaver.

antdude avatar antdude commented on June 18, 2024

That's the one I used for arcade games. Wait, how does MAME Saver to look in there? Is it using my 64-bit's MAME's configurations? Also, aren't MAME ROMs using shared files like parents, children, etc. I don't have 2,048 games. Maybe 100. I know there are multiple ROM files for games. I remember using clrmamepro to keep them updated for every MAME updates (stopped at v0.177).

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

Unless you explicitly specify as a command-line argument in Mamesaver, the ROM directories are based on whatever's in the mame.ini for the MAME executable you're using.

You attached a directory listing containing 2k ROMs, so I was assuming that was what you were working with for Mamesaver.

from mamesaver.

antdude avatar antdude commented on June 18, 2024

Ah OK. Thanks. I guess each zip file is considered a ROM even though there are about 100 games in my collection?

from mamesaver.

mika76 avatar mika76 commented on June 18, 2024

@antdude where do you see 100 games, In a UI somewhere? You might be looking at the verified roms list which means out of the 2000 or so rom archives you have only 100 of them actually work.

MAME can be a weird beast to work with 😊 and you could probably save yourself some space and loading time in mame if you clean out the roms which don't work - some of them are not small.

from mamesaver.

antdude avatar antdude commented on June 18, 2024

mika76: 100 was just an estimated guess. I know I don't have 2,000 games. Hmm, MAME v0.177 says I have 2,059 machines. I guess that is what is being referred? I just collect whatever ROM files I need that clrmamepro said. https://prnt.sc/o4psqa for the screen shot/capture.

from mamesaver.

mika76 avatar mika76 commented on June 18, 2024

Yeah our libraries can get quite big 😄 unfortunately MAME has not made it easy to work with it from the outside like we do with Mamesaver. They have improved over time but it's still a bit "cludgy".

I'm not sure anything @nullpainter can do will make this issue go away. Your best bet might be to have a separate MAME folder with only a curated list and point Mamesaver to that - that way you kinda control what roms get shown.

I do recommend you move to a new version of MAME though - 0.177 is from 2016, a lot of work has gone into improving roms and functionality...

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

@antdude, if you look at the Mamesaver-20190620.txt log file you attached, you can see the initial attempts to invoke MAME with each of your ROMs. As you can see, there are way more than 100.

Check the mame.ini associated with the MAME executable you're using for Mamesaver and look at the rompath field. This is the directory - or directories - which is used by Mamesaver.

Agree with @mika76 - even though I could potentially improve the performance a bit for old versions of MAME, it will never work well with that many ROMs.

Also, I am guessing that the crash may be because we're not elegantly handling a non-ROM in your path, or that MAME is not returning gracefully for a ROM.

Here's what's being scanned:

2019-06-20 02:05:54.453 -07:00 [INF] Invoking MAME with arguments: -verifyroms 1941 1941j 1941r1 1941u 1942 1942a 1942abl 1942b 1942h 1942p 1942w 1943 1943b 1943bj 1943j 1943ja 1943kai 1943u 1943ua 1944 1944d 1944j 1945kiii 1945kiiio 19xx 19xxa 19xxar1 19xxb 19xxd 19xxh 19xxj 19xxjr1 19xxjr2 20pacgal 20pacgalr0 20pacgalr1 20pacgalr2 20pacgalr3 20pacgalr4 25pacman 25pacmano a2diskii a2diskiing abscam aburner aburner2 aburner2g ace100 acpsx aerfboo2
2019-06-20 02:05:54.456 -07:00 [DBG] MAME started; pid: 21224
2019-06-20 02:05:59.919 -07:00 [INF] Invoking MAME with arguments: -verifyroms aerfboot aerofgt aerofgtb aerofgtc aerofgts aerolitos agat7 agat9 airbustr airbustrb airbustrj airduel airduelm72 airwolf airwolfa akkanvdr alg_bios alien3 alien3u aliencr alieninv alieninvp2 aliens aliens2 aliens3 aliensa aliensj aliensj2 aliensu aliensyn aliensyn2 aliensyn3 aliensyn5 aliensyn7 aliensynj aliensynjo alphaho alpham2 alpham2p alphamis alphaone alphaonea alphaxz altbeast altbeast2 altbeast4 altbeast5 altbeast5d altbeast6 altbeastbl
2019-06-20 02:05:59.923 -07:00 [DBG] MAME started; pid: 21828
2019-06-20 02:06:05.389 -07:00 [INF] Invoking MAME with arguments: -verifyroms altbeastj altbeastj1 altbeastj3 altbeastj3d am64 anteater anteaterg anteatergg anteateruk apple2 apple2c apple2c0 apple2c3 apple2c4 apple2cp apple2e apple2ee apple2eeuk apple2ep apple2euk apple2jp apple2p arian ark1ball arkangc arkangc2 arkanoid arkanoidj arkanoidja arkanoidjb arkanoidjbl arkanoidjbl2 arkanoidu arkanoiduo arkatayt arkbloc2 arkbloc3 arkblock arkgcbl arkgcbla arknoid2 arknoid2b arknoid2j arknoid2u arkretrn arkretrnj arkretrnu arktayt2 ar_bios ar_xeon
2019-06-20 02:06:05.393 -07:00 [DBG] MAME started; pid: 8184
2019-06-20 02:06:10.859 -07:00 [INF] Invoking MAME with arguments: -verifyroms aso astdelux astdelux1 astdelux2 asterock asterockv asteroid asteroid1 asteroid2 asteroidb astorm astorm3 astorm3d astormb2 astormbl astormj astormjd astormu astormud astrians astrob astrob1 astrob2 astrob2a astrobg astrofl atarisy1 atetris atetrisa atetrisb atetrisb2 atetrisb3 atetrisc atetrisc2 atluspsx atompunk atpsx aurail aurail1 aurail1d aurailj aurailjd automat avefenix avefenixl avefenixrf avsp avspa avspd avsph
2019-06-20 02:06:10.863 -07:00 [DBG] MAME started; pid: 6732
2019-06-20 02:06:16.296 -07:00 [INF] Invoking MAME with arguments: -verifyroms avspj avspu baddudes badlands badlandsb badlandsb2 batman batman2 batmanfr battles bbredux beaminv berzerk berzerk1 berzerkf berzerkg berzerks bigkong bioship blaster blasterkit blastero block2 blockout blockout2 blockoutj blstroid blstroid2 blstroid3 blstroidg blstroidh bmaster bnj bnjm boblbobl boblcave bombrman bonkadv bosco boscomd boscomdo boscoo boscoo2 bouldash bouldashj brubber btime btime2 btime3 btimem
2019-06-20 02:06:16.300 -07:00 [DBG] MAME started; pid: 8816
2019-06-20 02:06:21.730 -07:00 [INF] Invoking MAME with arguments: -verifyroms bub68705 bubblem bubblemj bubbles bubblesp bubblesr bublbob2 bublbob2o bublbob2p bublbobl bublbobl1 bublboblb bublboblr bublboblr1 bublcave bublcave10 bublcave11 bubsymphb bubsymphe bubsymphj bubsymphu bucaner buckrog buckrogn buckrogn2 bwidow bwidowp c1526 c1540 c1541 c1541c c1541dd c1541ii c1541pd c1541pdc c1551 c1563 c1570 c1571 c1581 c64 c64c c64cp c64c_es c64c_se c64dtv c64dx c64g c64gs c64_cs
2019-06-20 02:06:21.734 -07:00 [DBG] MAME started; pid: 152
2019-06-20 02:06:27.161 -07:00 [INF] Invoking MAME with arguments: -verifyroms c64_fcc c64_jp c64_mscr c64_nl10 c64_se c64_supercpu c64_xl80 c65 cadash cadashf cadashg cadashi cadashj cadashj1 cadashjo cadashp cadashu cannball cannballv cannonb cannonb2 cannonb3 cannonbp captaven captavena captavene captavenj captavenu captavenua captavenuu caractn caractn2 catch22 caterplr cball cbdash cbnj cbtime cburnrub cburnrub2 ccastles ccastles1 ccastles2 ccastles3 ccastlesf ccastlesg ccastlesj ccastlesp ccboot ccboot2
2019-06-20 02:06:27.165 -07:00 [DBG] MAME started; pid: 24168
2019-06-20 02:06:32.637 -07:00 [INF] Invoking MAME with arguments: -verifyroms ccbootmr cchasm cchasm1 cclimber cclimberj cclimbr2 cclimbr2a cclimbroper cclimbrrod centipdb centipdd centiped centiped1 centiped2 centiped3 chamburger choplift chopliftbl chopliftu ckong ckongalc ckongcv ckongdks ckongg ckonggx ckongis ckongmc ckongo ckongpt2 ckongpt2a ckongpt2b ckongpt2j ckongpt2jeu ckongs clocknch combat commando commandob commandob2 commandoj commandou commandou2 condor congo congoa contra contra1 contrab contrabj contrabj1
2019-06-20 02:06:32.642 -07:00 [DBG] MAME started; pid: 17072
2019-06-20 02:06:38.112 -07:00 [INF] Invoking MAME with arguments: -verifyroms contrae contraj contraj1 cookrace cosmicm2 cosmicmo cpzn1 cpzn2 crash crockman crossbld crysbios csmash csmasho cstlevna csuperas ct2k3sa ct2k3sp cthd2003 ctrpllrp d2fdc daimakai daimakair darthvdr dbreed dbreedm72 ddragon ddragon2 ddragon2b ddragon2j ddragon2u ddragon3 ddragon3b ddragon3j ddragon3p ddragon6809 ddragon6809a ddragonb ddragonb2 ddragonba ddragonu ddragonua ddragonub ddragonw ddragonw1 ddsom ddsoma ddsomar1 ddsomb ddsomh
2019-06-20 02:06:38.116 -07:00 [DBG] MAME started; pid: 9504
2019-06-20 02:06:43.589 -07:00 [INF] Invoking MAME with arguments: -verifyroms ddsomj ddsomjr1 ddsomr1 ddsomr2 ddsomr3 ddsomu ddsomud ddsomur1 ddtod ddtoda ddtodar1 ddtodd ddtodh ddtodhr1 ddtodhr2 ddtodj ddtodjr1 ddtodjr2 ddtodr1 ddtodu ddtodur1 decocass defcmnd defence defender defenderb defenderg defenderw defense defndjeu diehard digdug digdug1 digdug2 digdug2o digdugat digdugat1 digsid dking dkingjr dkong dkong3 dkong3abl dkong3b dkong3j dkongf dkonghrd dkongj dkongjnrj dkongjo
2019-06-20 02:06:43.593 -07:00 [DBG] MAME started; pid: 16280
2019-06-20 02:06:49.042 -07:00 [INF] Invoking MAME with arguments: -verifyroms dkongjo1 dkongjr dkongjrb dkongjre dkongjrj dkongjrm dkongjrpb dkongo dkongpe dkongx dkongx11 dland dnmtdeka dotron dotrona dotrone doubledr dragnblz drgninja drgninjab drgninjab2 drmario dspirit dspirit1 dspirit2 duckhunt dx64 dynablst dynablstb dynablstb2 dzigzag eagle eagle2 eagle3 ecofghtr ecofghtra ecofghtrd ecofghtrh ecofghtru ecofghtru1 elevator elevatorb elim2 elim2a elim2c elim4 elim4p elppa elvact2u elvactr
2019-06-20 02:06:49.048 -07:00 [DBG] MAME started; pid: 7472
2019-06-20 02:06:54.521 -07:00 [INF] Invoking MAME with arguments: -verifyroms elvactrj falcon falconz fantazia fenix firehawk firehawkv frogf frogg frogger froggeram froggermc froggers froggers1 froggers2 froggers3 froggerv froggrs funnymou ga2 ga2j ga2u gaiden gal3 galaga galaga3 galaga3a galaga3b galaga3c galaga3m galaga88 galaga88a galaga88j galagamf galagamk galagamw galagao galap1 galap4 galapx galaxbsf galaxbsf2 galaxian galaxiana galaxianbl galaxianbl2 galaxiani galaxianm galaxianmo galaxiant
2019-06-20 02:06:54.525 -07:00 [DBG] MAME started; pid: 7776
2019-06-20 02:06:59.969 -07:00 [INF] Invoking MAME with arguments: -verifyroms galaxrf galaxrfgg gallag galmonst galturbo gaplus gaplusa gaplusd gaplust gatsbee gaunt2 gaunt22p gaunt22p1 gaunt22pg gaunt2g gauntlet gauntlet2p gauntlet2pg gauntlet2pg1 gauntlet2pj gauntlet2pj2 gauntlet2pr3 gauntletg gauntletgr3 gauntletgr6 gauntletgr8 gauntletj gauntletj12 gauntletr1 gauntletr2 gauntletr4 gauntletr5 gauntletr7 gauntletr9 gauntlets gaxeduel gcastle geneve ghostb ghostb2a ghostb3 ghostmun ghouls ghoulsu gigaman2 gijoe gijoea gijoej gijoeu gladiatr
2019-06-20 02:06:59.973 -07:00 [DBG] MAME started; pid: 9164
2019-06-20 02:07:05.411 -07:00 [INF] Invoking MAME with arguments: -verifyroms gng gnga gngbl gngblita gngc gngprot gngt goldnaxe goldnaxe1 goldnaxe1d goldnaxe2 goldnaxe3 goldnaxe3d goldnaxeb1 goldnaxeb2 goldnaxej goldnaxejd goldnaxeu goldnaxeud gorf gorfpgm1 gorfpgm1g gradius gradius2 gradius2a gradius2b gradius3 gradius3a gradius3j gradius3js gradius4 greatgur griffon gryzor gryzor1 guzzler guzzlers gyruss gyrussb gyrussce hangly hangly2 hangly3 hng64 hyperpac hyperpacb hyperspc ikari ikari3 ikari3j
2019-06-20 02:07:05.415 -07:00 [DBG] MAME started; pid: 19560
2019-06-20 02:07:10.860 -07:00 [INF] Invoking MAME with arguments: -verifyroms ikari3k ikari3u ikaria ikarijp ikarijpb ikarinc ikariram indytemp indytemp2 indytemp3 indytemp4 indytempc indytempd intruder invad2ct invaddlx invader4 invaderl invaders invadersem invadpt2 invadpt2br invadrmr invasion invasiona invasionb invasionrz invasionrza invrvnge invrvngea invrvngeb invrvngedu invrvngegw irobot istellar ivelultr joust joust2 joust2r1 joustr joustwr joyman jpark jparkj jparkja jparkjc jrking jrpacman jrpacmanf jrpacmbl
2019-06-20 02:07:10.864 -07:00 [DBG] MAME started; pid: 21620
2019-06-20 02:07:16.329 -07:00 [INF] Invoking MAME with arguments: -verifyroms jspecter jspecter2 jungleby jungleh junglehbr junglek junglekas junglekj2 junofrst junofrstg kamakazi3 kamikazp kf10thep kf2k2mp kf2k2mp2 kf2k2pla kf2k2pls kf2k3bl kf2k3bla kf2k3pcb kf2k3pl kf2k3upl kf2k5uni kod kodb kodj kodja kodr1 kodu kof10th kof2000 kof2000n kof2001 kof2001h kof2002 kof2002b kof2003 kof2003h kof2k4se kof94 kof95 kof95a kof95h kof96 kof96h kof97 kof97h kof97k kof97oro kof97pls
2019-06-20 02:07:16.333 -07:00 [DBG] MAME started; pid: 19624
2019-06-20 02:07:21.771 -07:00 [INF] Invoking MAME with arguments: -verifyroms kof98 kof98a kof98h kof98k kof98ka kof99 kof99e kof99h kof99k kof99p kog konamigv konamigx kviper ladybgb2 ladybug ladybugb ladybugg ladyfrog las128e2 las128ex laser laser128 laststar ldrun ldrun2 ldrun3 ldrun3j ldrun4 ldruna lemmings lnc loderndf loderndfa m660 m660b m660j macsbios magworm magworma makaimur makaimurc makaimurg mappy mappyj marble marble2 marble3 marble4 marble5
2019-06-20 02:07:21.776 -07:00 [DBG] MAME started; pid: 22800
2019-06-20 02:07:27.210 -07:00 [INF] Invoking MAME with arguments: -verifyroms mario mariobl marioe marioj marioo marvins masao mastninj maxaflex maxxi maze mazerbla mazerblaa mcombat mcombata mcombats megaman megaman2 megaman2a megaman2h megamana megamn2d megaplay megatech megazone megazonea megazoneb megazonec megazonei meikyuh meikyuha mercenario meteorho meteorts mf_bdash mhavoc mhavoc2 mhavocp mhavocrv mia mia2 miaj microeng midssio millipdd milliped millpac missile missile1 missile2
2019-06-20 02:07:27.214 -07:00 [DBG] MAME started; pid: 24332
2019-06-20 02:07:32.650 -07:00 [INF] Invoking MAME with arguments: -verifyroms missilem mk mk2 mk2chal mk2r11 mk2r14 mk2r20 mk2r21 mk2r30 mk2r31e mk2r32e mk2r42 mk2r91 mk3 mk3mdb mk3p40 mk3r10 mk3r20 mk4 mk4a mk4b mkla1 mkla2 mkla3 mkla4 mknifty mknifty666 mkprot4 mkprot8 mkprot9 mkr4 mkrep mktturbo mkyawdim mkyawdim2 mkyawdim3 mkyawdim4 mkyturbo mkyturboe mmancp2u mmancp2ur1 monkeyd moonal2 moonal2b moonaln moonbase moonbasea mooncmw mooncptc mooncreg
2019-06-20 02:07:32.654 -07:00 [DBG] MAME started; pid: 8932
2019-06-20 02:07:38.341 -07:00 [INF] Invoking MAME with arguments: -verifyroms mooncrgx mooncrs2 mooncrs3 mooncrs4 mooncrsb mooncrsl mooncrst mooncrstg mooncrsto mooncrstso mooncrstu mooncrstuk mooncrstuku mpatrol mpatrolw mprof3 mp_gaxe2 mp_gaxe2a mp_shnb3 mp_soni2 mp_sonic mquake mranger mrdo mrdofix mrdot mrdoy mrdrillr mrdrillrj mrdu mrlo ms4plus ms5pcb ms5plus mschamp mschamps msh msha mshb msheartb mshh mshj mshjr1 mshu mshud mshvsf mshvsfa mshvsfa1 mshvsfb mshvsfb1
2019-06-20 02:07:38.345 -07:00 [DBG] MAME started; pid: 22024
2019-06-20 02:07:43.772 -07:00 [INF] Invoking MAME with arguments: -verifyroms mshvsfh mshvsfj mshvsfj1 mshvsfj2 mshvsfu mshvsfu1 mshvsfu1d mslug mslug2 mslug3 mslug3b6 mslug3h mslug4 mslug4h mslug5 mslug5h mslugx mspacii mspacii2 mspacmab mspacman mspacmanbcc mspacmanbg mspacmanbgd mspacmanbhe mspacmanblt mspacmancr mspacmat mspacmbe mspacmnf mspacpls msword mswordj mswordr1 mswordu mtrap mtrap3 mtrap4 mtrapb mt_aftrb mt_asyn mt_beast mt_gaxe mt_gaxe2 mt_gng mt_mwalk mt_orun mt_shado mt_shang mt_shar2
2019-06-20 02:07:43.776 -07:00 [DBG] MAME started; pid: 8684
2019-06-20 02:07:49.242 -07:00 [INF] Invoking MAME with arguments: -verifyroms mt_shnbi mt_soni2 mt_sonia mt_sonic mt_spman mt_tetri mt_tout mutantwarr mvsc mvsc2 mvsc2u mvsca mvscar1 mvscb mvsch mvscj mvscjr1 mvscjsing mvscr1 mvscu mvscud mvscur1 mwalk mwalkbl mwalkd mwalkj mwalkjd mwalku mwalkud myqbert namco50 namco51 namco52 namco53 namco54 namco62 namcoc69 namcoc70 namcoc74 namcoc75 namcoc76 namcostr naomi naomi2 naomigd nastar nastarw nbahangt nbajam nbajamex
2019-06-20 02:07:49.246 -07:00 [DBG] MAME started; pid: 22772
2019-06-20 02:07:54.671 -07:00 [INF] Invoking MAME with arguments: -verifyroms nbajamr1 nbajamr2 nbajamte nbajamte1 nbajamte2 nbajamte3 nbajamten nbamht nbamht1 nbapbp ncv1 ncv1j ncv1j2 ncv2 ncv2j nemesis nemesisuk neobombe neogeo neomrdo newpuc2 newpuc2b newpuckx nextfase nibbler nibbler6 nibbler8 nibblero nibblerp nitedrvr nost nostj nostk nss nss_smw ogonsiro optiger opwolf opwolf3 opwolf3u opwolfa opwolfb opwolfj opwolfp opwolfu orius othunder othunderj othundero othunderu
2019-06-20 02:07:54.675 -07:00 [DBG] MAME started; pid: 16288
2019-06-20 02:08:00.120 -07:00 [INF] Invoking MAME with arguments: -verifyroms othunderuo outrun outrunb outrundx outrundxa outrundxeh outrundxj outruneh outrunra outzone outzonea outzoneb outzonec outzonecv outzoneh pac90 pacgal pacgal2 pacheart pacland paclandj paclandjo paclandjo2 paclandm pacman pacmanbl pacmanbla pacmanblb pacmanf pacmania pacmaniaj pacmaniao pacmanjpm pacmanpe pacmanso pacmansp pacmod pacnchmp pacnpal pacnpal2 pacominv pacplus pacuman paddle2 paperboy paperboyr1 paperboyr2 pballoon pballoonr pbobbl2n
2019-06-20 02:08:00.124 -07:00 [DBG] MAME started; pid: 22224
2019-06-20 02:08:05.598 -07:00 [INF] Invoking MAME with arguments: -verifyroms pbobble pbobble2 pbobble2j pbobble2o pbobble2u pbobble2x pbobble3 pbobble3j pbobble3u pbobble4 pbobble4j pbobble4u pbobblen pbobblenb pc_1942 pc_ddrgn pc_duckh pc_gntlt pc_grdue pc_grdus pc_mario pc_mman3 pc_smb pc_smb2 pc_smb3 pc_tmnt2 pengo pengo2 pengo2u pengo3u pengo4 pengob pengojpm pengopac penta pestplce pet64 pgm phoenix phoenix3 phoenixa phoenixass phoenixb phoenixc phoenixc2 phoenixc3 phoenixc4 phoenixdal phoenixj phoenixs
2019-06-20 02:08:05.602 -07:00 [DBG] MAME started; pid: 19784
2019-06-20 02:08:11.037 -07:00 [INF] Invoking MAME with arguments: -verifyroms phoenixt phoenxp2 phtetris pipedrm pipedrmj pipedrmt pipedrmu pipeline piranha piranhah piranhao piratpet pitfall2 pitfall2a pitfall2u platoon playch10 podrace pootan pooyan pooyans popeye popeyebl popeyef popeyeman popeyeu pow powj prav82 prav8c prav8m primrage primrage20 psarc95 puckman puckmanb puckmanf puckmanh puckmod puckpkmn puckpkmna puckpkmnb pulstar punchita punchout punchouta punchoutj puyo puyobl puyoj
2019-06-20 02:08:11.041 -07:00 [DBG] MAME started; pid: 22296
2019-06-20 02:08:16.473 -07:00 [INF] Invoking MAME with arguments: -verifyroms puyoja puyopuy2 puyosun qbert qberta qbertj qbertqub qberttst qbtrktst qix qix2 qixa qixb qixo quaak r2dx_v33 r2dx_v33_r2 raiden raiden2 raiden2dx raiden2e raiden2ea raiden2eu raiden2eua raiden2f raiden2g raiden2hk raiden2i raiden2j raiden2nl raiden2sw raiden2u raidena raidenb raidenk raident raidenu raidenua raiders raiders5 raiders5t raidersr3 rallyx rallyxa rallyxm rallyxmr rampage rampage2 rampart rampart2p
2019-06-20 02:08:16.477 -07:00 [DBG] MAME started; pid: 15760
2019-06-20 02:08:21.907 -07:00 [INF] Invoking MAME with arguments: -verifyroms rampartj rastan rastana rastanu rastanua rastanub rastsag2 rastsaga rastsagaa rdft rdft2 rdft22kc rdft2a rdft2aa rdft2it rdft2j rdft2ja rdft2jb rdft2t rdft2u rdft2us rdfta rdftadi rdftam rdftau rdftauge rdftit rdftj rdftja rdftjb rdfts rdftu retofinv retofinv1 retofinv2 rfjet rfjet2kc rfjeta rfjetj rfjets rfjetsa rfjett rfjetu ribbit rmancp2j rmpgwt rmpgwt11 roadrunn roadrunn1 roadrunn2
2019-06-20 02:08:21.911 -07:00 [DBG] MAME started; pid: 19040
2019-06-20 02:08:27.349 -07:00 [INF] Invoking MAME with arguments: -verifyroms robocop robocop2 robocop2j robocop2u robocop2ua robocopb robocopj robocopu robocopu0 robocopw robotron robotron12 robotron87 robotrontd robotronyo rockman2j rockmanj rocnrope rocnropek ropeman rsgun rtype rtype2 rtype2j rtype2jc rtype2m82b rtypeb rtypej rtypejp rtypeleo rtypeleoj rtypem82b rtypeu ryukendn ryukendna sb2003 sb2003a sboblbobl sboblbobla sboblboblb sboblboblc sboblbobld sbrkout sbrkout3 sbrkoutc sbrkoutct sbsgomo scobra scobrab scobrae
2019-06-20 02:08:27.353 -07:00 [DBG] MAME started; pid: 14656
2019-06-20 02:08:32.785 -07:00 [INF] Invoking MAME with arguments: -verifyroms scobras scobrase scontra scontraj sdi sdia sdib sdibl sdibl2 sdibl3 sdibl4 sdibl5 sdibl6 sdungeon searthie searthin searthina sf sf2 sf2acc sf2acca sf2accp2 sf2amf sf2amf2 sf2b sf2bhh sf2ce sf2ceblp sf2cebltw sf2ceea sf2ceja sf2cejb sf2cejc sf2ceua sf2ceub sf2ceuc sf2dkot2 sf2dongb sf2eb sf2ebbl sf2ebbl2 sf2ebbl3 sf2ed sf2ee sf2hf sf2hfj sf2hfu sf2j sf2ja sf2jc
2019-06-20 02:08:32.789 -07:00 [DBG] MAME started; pid: 19144
2019-06-20 02:08:38.470 -07:00 [INF] Invoking MAME with arguments: -verifyroms sf2jf sf2jh sf2jl sf2koryu sf2m1 sf2m10 sf2m2 sf2m3 sf2m4 sf2m5 sf2m6 sf2m7 sf2m8 sf2m9 sf2mdt sf2mdta sf2mdtb sf2qp1 sf2rb sf2rb2 sf2rb3 sf2red sf2rk sf2stt sf2thndr sf2ua sf2ub sf2uc sf2ud sf2ue sf2uf sf2ug sf2ui sf2uk sf2v004 sf2yyc sfa sfa2 sfa2u sfa2ur1 sfa3 sfa3b sfa3h sfa3hr1 sfa3u sfa3ud sfa3ur1 sfa3us sfad sfan
2019-06-20 02:08:38.474 -07:00 [DBG] MAME started; pid: 23424
2019-06-20 02:08:43.919 -07:00 [INF] Invoking MAME with arguments: -verifyroms sfar1 sfar2 sfar3 sfau sfex sfex2 sfex2a sfex2h sfex2j sfex2p sfex2pa sfex2ph sfex2pj sfexa sfexj sfexp sfexpj sfexpj1 sfexpu1 sfexu sfj sfp sftm sftm110 sftm111 sftmj sfua sfz2a sfz2ad sfz2al sfz2alb sfz2ald sfz2alh sfz2alj sfz2b sfz2br1 sfz2h sfz2j sfz2jd sfz2jr1 sfz2n sfz3a sfz3ar1 sfz3j sfz3jr1 sfz3jr2 sfz3jr2d sfza sfzar1 sfzb
2019-06-20 02:08:43.923 -07:00 [DBG] MAME started; pid: 11048
2019-06-20 02:08:49.370 -07:00 [INF] Invoking MAME with arguments: -verifyroms sfzbr1 sfzh sfzhr1 sfzj sfzjr1 sfzjr2 sgladiat shadoww shadowwa shangon shangon1 shangon2 shangon3 shangon3d shangonho shangonle shangonrb shangonro sharrier sharrier1 shdancbl shdancbla shdancer shdancer1 shdancerj shinfz shinobi shinobi1 shinobi1d shinobi2 shinobi2d shinobi3 shinobi4 shinobi5 shinoblb shinobld shinoblda shinobls sia2650 sicv sicv1 simpsons simpsons2p simpsons2p2 simpsons2p3 simpsons2pa simpsons2pj simpsons4pa sinistar sinistar1
2019-06-20 02:08:49.374 -07:00 [DBG] MAME started; pid: 24100
2019-06-20 02:08:54.845 -07:00 [INF] Invoking MAME with arguments: -verifyroms sinistar2 sinvasn sinvasnb sinvemag sinvzen sisv sisv1 sisv2 sisv3 sitv sitv1 skatekds skns skywolf skywolf2 skywolf3 slither slithera smash smashtv smashtv3 smashtv4 smashtv5 smashtv6 smooncrs snakepit snakepit2 sncwgltd solarfox solomon solomonj sonic sonicp sonicwi sonicwi2 sonicwi3 spacduel spacduel0 spacduel1 space84 spaceat2 spaceatt spaceatt2k spaceattbp spacecom spacedx spacedxj spacedxo spaceftr spacerng
2019-06-20 02:08:54.850 -07:00 [DBG] MAME started; pid: 12728
2019-06-20 02:09:00.290 -07:00 [INF] Invoking MAME with arguments: -verifyroms spaceshp spacewar spacewr3 spactrai spcdrag spcdraga spceking spcewarl spcewars spcinv95 spcinv95u spcinvdj spclaser spcrocks spctbird spec2k spec2kh spectred spidman spidmanj spidmanu spyhunt spyhunt2 spyhunt2a spyhuntp spyhuntpr sqbert sqix sqixb1 sqixb2 sqixr1 sqixu ssf2 ssf2a ssf2ar1 ssf2h ssf2j ssf2jr1 ssf2jr2 ssf2mdb ssf2r1 ssf2t ssf2ta ssf2tad ssf2tb ssf2tbd ssf2tbh ssf2tbj ssf2tbj1 ssf2tbr1
2019-06-20 02:09:00.293 -07:00 [DBG] MAME started; pid: 15296
2019-06-20 02:09:05.738 -07:00 [INF] Invoking MAME with arguments: -verifyroms ssf2th ssf2tu ssf2tur1 ssf2u ssf2ud ssf2xj ssf2xjr1 ssf2xjr1d ssf2xjr1r sstarcrs starcas starcas1 starcase starcasp starfght starfgmc startrek startrkd starwars starwars1 starwarso stellcas stera stvbios supbtime supbtimea supbtimej superg supergs supergx superinv superman supermanj supermanu superpac superpacm suprheli suprmatk suprmatkd suprmous suprmrio suprmrioa suprmriobl suprmriobl2 supxevs swa swarm swtrilgy swtrilgya sx64
2019-06-20 02:09:05.742 -07:00 [DBG] MAME started; pid: 13540
2019-06-20 02:09:11.179 -07:00 [INF] Invoking MAME with arguments: -verifyroms sx64p sxevious sxeviousj sys573 szaxxon tacscan taitofx1 taitogn tazmani2 tazmania tazzmang tazzmang2 te0144 tempest tempest1 tempest1r tempest2 tempest3 temptube term2 term2la1 term2la2 term2la3 term2lg1 tesa6240 tetrbx tetris tetris1 tetris1d tetris2 tetris2d tetris3 tetris3d tetrisbl tetrisd tetriskr tetrisp tetrisp2 tetrisp2j tetrisp2ja tetrisse tetrist tetrista tetristh tetrsark tgm2 tgm2p tgmj ti99_4 ti99_4a
2019-06-20 02:09:11.183 -07:00 [DBG] MAME started; pid: 13668
2019-06-20 02:09:16.659 -07:00 [INF] Invoking MAME with arguments: -verifyroms ti99_4ev ti99_4p ti99_4qi ti99_8 ti99_bwg ti99_evpc ti99_fdc ti99_gkracker ti99_hfdc ti99_myarcmem ti99_pcode ti99_rs232 ti99_speech tinv2650 tiptop tk3000 tmht tmht22pe tmht24pe tmht2p tmht2pa tmhta tmhtb tmnt tmnt2 tmnt22pu tmnt2a tmnt2pj tmnt2po tmntj tmntu tmntua tmntub tornado1 tornado2 toutrun toutrun1 toutrun2 toutrun2d toutrun3 toutrun3d toutrund toutrunj toutrunj1 toutrunj1d toutrunjd tp2m32 tps transfrm tron
2019-06-20 02:09:16.663 -07:00 [DBG] MAME started; pid: 14320
2019-06-20 02:09:22.102 -07:00 [INF] Invoking MAME with arguments: -verifyroms tron2 tron3 tron4 tronger tst_galx tst_invd tunhunt tunhuntc tutankhm tutankhms tx1 tx1jb tx1jc uecology ultrainv umk3 umk3r10 umk3r11 uniap2en uniap2pt uniap2ti vangrd2 vanguard vanguardc vanguardj varth varthb varthj varthjr varthr1 varthu vautour vautourz vautourza vcop vcop2 vcopa vendetta vendetta2p vendetta2pd vendetta2peba vendetta2pu vendettaj vendettar vendettaz venus vf vigilant vigilanta vigilantb
2019-06-20 02:09:22.106 -07:00 [DBG] MAME started; pid: 23892
2019-06-20 02:09:27.543 -07:00 [INF] Invoking MAME with arguments: -verifyroms vigilantbl vigilantc vigilantd vigilantg vigilanto vip64 vsgradus vulcan vulcana vulcanb warlords warofbug warofbugg warofbugu wotw wow wowg xevi3dg xevios xevious xeviousa xeviousb xeviousc xexex xexexa xexexj xmcota xmcotaa xmcotaar1 xmcotah xmcotahr1 xmcotaj xmcotaj1 xmcotaj2 xmcotaj3 xmcotajr xmcotar1 xmcotar1d xmcotau xmen xmen2pa xmen2pe xmen2pj xmen2pu xmen6p xmen6pu xmena xmenaa xmene xmenj
2019-06-20 02:09:27.547 -07:00 [DBG] MAME started; pid: 14004
2019-06-20 02:09:32.986 -07:00 [INF] Invoking MAME with arguments: -verifyroms xmultiplm72 xmvsf xmvsfa xmvsfar1 xmvsfar2 xmvsfar3 xmvsfb xmvsfh xmvsfj xmvsfjr1 xmvsfjr2 xmvsfjr3 xmvsfr1 xmvsfu xmvsfu1d xmvsfur1 xmvsfur2 yankeedo zaxxon zaxxon2 zaxxon3 zaxxonb zaxxonj zero zero2 zerohour zerohoura zerohouri zeropnt zeropnt2 zeropnta zeropntj zerotime zerotimed zerowing zerowing1 zerowingw zingzip zingzipbl zoar zookeep zookeep2 zookeep3 zoom909

If you don't want to modify your mame.ini, you can always pass the rompath as an argument in Mamesaver itself via -rompath and -biospath. That way, you can have a smaller directory of games for Mamesaver.

from mamesaver.

antdude avatar antdude commented on June 18, 2024

Thanks. Ooh, good catch. I just checked my old mame.ini and noticed it also had my Atari 2600 ROMs included. I took it out, and MAME said 1,973. Obviously, that is still too many. :( Darn, I was hoping to use ALL my games in the screen saver (randomized).

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

Well, give it a go with fewer and let us know how you get on. I'll still see if we can improve the performance for managing old versions of MAME, but I suspect it'll never cope with quite that many.

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

Also, I'd be interested to see what happens with a new version of MAME and that number of ROMs. You can just download a new version and set it to the same rompath as your current version.

from mamesaver.

nullpainter avatar nullpainter commented on June 18, 2024

Darn, I was hoping to use ALL my games in the screen saver (randomized).

I'm happy to be proved wrong, but IMO there just aren't that many good MAME games. I assume you grabbed a torrent at some stage? In those, you'll find that many games have a number of regional variants (US version, Japanese version, etc.), a number of almost indistinguishable versions, unlicensed clones, and a huge number of rather tedious derivative games.

I'm pretty confident you're going to have a large number of what are practically duplicates and a large amount of dross in your collection.

from mamesaver.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.