Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: Filtering games in MAME  (Read 15980 times)

0 Members and 1 Guest are viewing this topic.

g_block247

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 56
  • Last login:March 29, 2016, 03:46:56 pm
Filtering games in MAME
« on: March 15, 2012, 09:25:26 pm »
Just got MAME Plus v0.145 u3r4988 sh3 build

What's the easiest way to filter out all the crap mahjong/slot machine/adult games/basically filler junk and have a good set?

Also sometimes there's a little red minus icon on a game that works, is there a way to change that?

MacGyver

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 317
  • Last login:December 18, 2023, 12:49:00 am
    • Project Build
Re: Filtering games in MAME
« Reply #1 on: March 19, 2012, 05:37:29 am »
Download the source, put two "//" in front of every game you don't want in the file named "mame.lst" under "src/mame/", then clean compile.

I recently did this, and got mine down to about 3900, although I am going to look into making a reverse of my list and turning it into a .diff, that way it can be applied to future releases easily (because I made my list for 1.41 and am having to manually add the changes from 1.41 to 1.45 manually, and it's a pain).

05SRT4

  • Trade Count: (+5)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1092
  • Last login:July 04, 2025, 09:00:05 am
  • Check out my Pow Pow
Re: Filtering games in MAME
« Reply #2 on: March 19, 2012, 01:10:13 pm »
are you using any front end software? Rom Lister worked good for me. Im not sure if it can make a mame list for just mame. I'm using it with Hyperspin.

g_block247

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 56
  • Last login:March 29, 2016, 03:46:56 pm
Re: Filtering games in MAME
« Reply #3 on: March 19, 2012, 07:20:33 pm »
Nope, no front end atm. Would like too eventually.

MacGyver

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 317
  • Last login:December 18, 2023, 12:49:00 am
    • Project Build
Re: Filtering games in MAME
« Reply #4 on: March 21, 2012, 04:36:31 am »
I am in the process of making a list that when ran with a batch file, will comment out any driver in that list from the existing mame.lst.  It works fine, but takes a long time (SED is slow), and can be used with current 0.145 , and because I am using an exclude list rather than a keep list, new releases of MAME can have the same exclude list ran against them, and "new" roms will be left alone and compiled by default, and any more pinball-screens and fruit machines in the new releases can be added to the exclude list when needed.  It's nice because if you're not interested in new roms (your lists are perfect and just the way you like), you can use your custom mame.lst from before and just compile the old list on the new source (taking advantage of Robotron fixes).

The exclude list is about 15,000 lines long, and it compiles a version of MAME that thinks 0.145 only has about 2700 roms in it.  (The only downside is that because it has the best or US version of the rom and not necessarily the parent, you need to "rebuild" your roms to Split.)

Howard_Casto

  • Idiot Police
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 19427
  • Last login:Today at 11:01:57 am
  • Your Post's Soul is MINE!!! .......Again??
    • The Dragon King
Re: Filtering games in MAME
« Reply #5 on: March 21, 2012, 05:37:12 pm »
I would reccomend against this method myself.  There is no benefits to commenting out drivers but a few potential drawbacks (like having to rebuild your romlist and maintain a custom build ect...). 

Romlists are supposed to be filtered out via the front-end or something like romlister and that's the best way to do it.  I mean for those pinball roms that everybody keeps complaining about it couldn't be easier... they have a "mechanical=yes" entry right at the top of their listxml output. 

g_block247

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 56
  • Last login:March 29, 2016, 03:46:56 pm
Re: Filtering games in MAME
« Reply #6 on: March 21, 2012, 07:15:55 pm »
Wouldn't be bad if I could actually play the damn things....(pinball) but they all show up as red
 :angry:

MacGyver

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 317
  • Last login:December 18, 2023, 12:49:00 am
    • Project Build
Re: Filtering games in MAME
« Reply #7 on: March 22, 2012, 03:29:47 am »
I somewhat agree, but now that the build process uses a .lst it is a lot less complicated to stick with your current romset, and just update the code that runs just those.  For instance, you can take your old 0.131 list of roms (dir c:\mame\roms\*.zip /b >>mame.lst (then remove the ".zip" off lines in the file)) and simply use that as the .lst for 0.145, and aside from the occasional rom name change, be able to have hlsl functions AND not have a giant missing list of roms to go along with it.  As far as I'm concerned my list of 2800 or so is "it", I'll lock down the frontend list with it, fix all the display names, find the missing support files for just those, and "upgrade" by compiling only that list from now on, I'll see emulation improve on those drivers as the devs fix things, and be able to scan for "missing" files that should only include fixes to "No good dump known".  
I think it would also be nice if you are using MAMEUI, though I don't, and therefore haven't tried it.

A side note is that it saves A LOT of space, not only in roms, but all the .avi, .png, .jpg support files as well.  

Some people just have OSD, and want to see the "Romlist complete." even if it is just a lie.  >:D







A side note to anyone that tries my overly simplistic instructions:
When I first tried to do it, there were a few rom names that changed from 0.141 to 0.145, those gave compile errors, so I first commented those out until it compiled correctly, then I d/l 0.141's source and searched the driver's .c files for the commented out rom name, found the friendly name, then searched the 0.145 source for the friendly name, and updated my list to use the new rom name, rebuilding the roms afterwards fixed the newly renamed rom from the old.  Simply keeping up with newest release notes would have probably gave me the name changes.  Which is why I ultimately went with an "exclude" list, it makes rom name changes simpler and it just becomes a matter of adding the few new additions I don't want to the exclude list easier than figuring out what got changed to what.   But my custom list was really just for me, and to remove unused, clones, fruit, pins, and completely foreign roms from my space challenged 128gb SSD.
« Last Edit: March 22, 2012, 03:48:26 am by MacGyver »

Howard_Casto

  • Idiot Police
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 19427
  • Last login:Today at 11:01:57 am
  • Your Post's Soul is MINE!!! .......Again??
    • The Dragon King
Re: Filtering games in MAME
« Reply #8 on: March 22, 2012, 05:16:22 am »
I'm not trying to argue with you here, but again, your method doesn't make any sense. Commenting out drivers doesn't change the crc values of the roms you do have, you are STILL going to have to rebuild a set to match the current version of mame. 

All the space you are talking about saving comes from physically removing roms and their artwork, not removing drivers. 

You won't have a giant list of missing roms, because you should be using a front-end.  If it's halfway decent missing roms won't show up. 

It's a lot of work you are talking about.  Just to give you an example of how easy it is to simply filter/ignore problem roms this is all you have to add to a gamelist entry in my old fe The Dragon King, which hasn't been updated in over 5 years:

filters:6=*mature*;9=*Working No*;6=BIOS;9=*Status Prelimenary*

That's it!  All the troublesome roms are gone from your lists.


Any fe that is worth it's snuff should be able to do something similar.  That's what all that data in the listxml is for, to filter roms.   ;)


I think you are confusing what MAME is responsible for with what your fe, your rom manager and dat files are for.  It's silly to expect mame to do internal filtering... most emulators can't even print out a simple dat file for verification.

MacGyver

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 317
  • Last login:December 18, 2023, 12:49:00 am
    • Project Build
Re: Filtering games in MAME
« Reply #9 on: March 22, 2012, 10:54:42 am »
I can understand where you are coming from, my problem was there was 16,000 new roms added since my last version of mame, and trying to add the "real" roms that changed from then until now was a pain, I knew what I didn't want, but didn't know what I wanted, so the easiest way I could figure out how to show what I didn't know to look for, was to show me everything, except for what I know I didn't want.  (I know that crazy run-on sentence doesn't make much sense either.)  

I wanted absolutely no clones (except extremely unique bootlegs), but in some MAME sets the parents don't work, but the clones do, and out of those, I want only the US one, or the World, or Eur, then maybe Japan if Japan is in English, in that order, unless the higher one doesn't work, and I'll allow some JAPAN only games, if they are in English, or culturally significant.  I want a few fruit machines, but no pinball displays, but want to keep full pinball simulators, no non-working games unless it's playable (wrong colors are fine), and no mature.  There is no amount of filtering that can make that list for me, it has to be done by hand.  And because I had to make that list by hand, I only wanted to do it once.  So if a new version of MAME comes out with 20 new roms, I can run my ignore list against the full list, and those new 20 will pop out as "missing", and only those will be missing, the other 16,000 will be missing as well, but I won't be bothered by endless missing sets, I will only see the 20 new ones.  I could maybe do the same thing with a rom manager and some batch files, so I figured why not just roll a new version of MAME with just what I want, and when Romlister scans the new MAME.exe and outputs the list.xml, it knows only about the roms I want and the new missing 20.
I can see how the way I do it only makes sense for me, but lots of people here seem to be asking for a way to just make MAME forget that it emulates fruit and pinball displays, modifying the compile list does just that, it makes it seem like they never existed. (It's not my method, I'm not that smart, some dev that is much smarter than me put that ability in there sometime after 0.142, I'm just using it for my own nefarious purpose.) >:D

It's really not all that complicated either, I just run this in a batch file in a dos window, the skip.txt is just a plain list of the rom names I don't want compiled.

fix.bat
Code: [Select]
@echo off
sed "s/\t/    /" -i mame.lst
sed "s/^ //" -i mame.lst
sed "s/$/    \r/" -i mame.lst
for /F "eol=;" %%i in (skip.txt) do sed "s/^%%i /\/\/removed- %%i\t/" -i mame.lst
sed "s/$/\r/" -i mame.lst

skip.txt
Code: [Select]
...
1941j
1941u
1942a
1942abl
1942b
1942w
1943
1943b
1943j
1943ja
1944d
1944j
19xxa
19xxb
19xxd
19xxh
   ...

« Last Edit: March 22, 2012, 07:06:44 pm by MacGyver »