Prefer FBNeo over MAME for playlist scans

I use this dat file to verify my roms with ClrMAMEPro: https://github.com/libretro/libretro-database/blob/master/metadat/fbneo-split/FBNeo_romcenter.dat

Whenever I do a Scan Directory for these roms, most of them end up in the “FBNeo - Arcade Games” playlist, however some of them show up in separate MAME2010 and MAME2003 playlists. Is there a way to prefer FBNeo over the MAME playlists? Since I am using Lakka, I don’t think there is a way to remove or otherwise disable the MAME cores, and in general I haven’t seen a way to have the scanner select one core/playlist over another if the rom is present in multiple dat files.

Thank you!

If you do a manual scan and then feed it your DAT, you can assign whichever core you want and it will keep them all in one playlist.

1 Like

Right, that is what I am currently doing. Just seems like an extra step, since I’m using what I assume is the exact DAT file that Lakka/RetroArch is already using behind the scenes. Would be nice for it to just know that any new ones I want to scan in automatically would just go to the FBNeo playlist (since they match the internal DAT file), instead of randomly into one of the arcade playlists.

For example, boogwing shows up in the FBNeo DAT, but also in the MAME 2010 DAT. It matches both DAT files exactly, but gets put in a newly created MAME 2010 playlist, even though I already have the FBNeo one. Seems like MAME 2010 (and maybe 2003?) have priority when a rom matches multiple DAT files internally. Didn’t know if it was possible to change this priority order.

Or, if it’s possible to just remove/disable the MAME cores, so that roms won’t match to them and be forced into the FBNeo playlist?

No, the issue is that the ROMs match on many playlists, so it just matches them to whichever one it finds first. That’s why the manual scan is needed. I suppose you could go into your databases and delete a bunch of them, if you want, though. That should prevent it from matching to them.

This “finds first” bit is the part I want to change. I assume there’s an order somewhere in the code that it always chooses MAME 2010 first. I want it to choose FBNeo first instead. If it’s not in the FBNeo romset, then it can go into a MAME playlist.

Since I am using Lakka, the file system is read only. I have no access to the databases to delete them, as far as I know. Hence a configurable “core preference” or a “disable core” setting.

You should still be able to change the location to somewhere writeable and then re-fetch them from the online updater, right?

You are using the wrong method, as mentioned regularily on this forum, database scan is totally broken with arcade romsets, and will probably never get fixed for many reasons : complexity of scanning the romsets (the current method of scanning the zip’s crc instead of its content is plain wrong), database maintainance for cores that have romset updates on a nearly daily basis, …

The proper method is described in my full guide for FBNeo playlists creation.

1 Like

The problem with arcade roms is, that some games are identical across multiple systems.
Let’s take a look at 1945kiii.zip
The rom for FBNeo, MAME current and MAME 2003-plus are the same (i use only those 3).
Same name of the zip file, same checksum, same rom files inside with the same checksums:

crc32 FBNeo\ -\ Arcade\ Games/1945kiii.zip
0b7a7ea5
crc32 MAME/1945kiii.zip
0b7a7ea5
crc32 MAME\ 2003-Plus/1945kiii.zip
0b7a7ea5

I will paste only 1 time the content, but it is the same for all 3 zip files

TORRENTZIPPED-B23728B0
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
 2097152  Defl:X   520095  75% 12-24-1996 23:32 0b9a6474  m16m-1.u62
 2097152  Defl:X   521416  75% 12-24-1996 23:32 368a8c2e  m16m-2.u63
 2097152  Defl:X   664376  68% 12-24-1996 23:32 32fc80dd  m16m-3.u61
  524288  Defl:X   181385  65% 12-24-1996 23:32 6b345f27  prg-1.u51
  524288  Defl:X    84332  84% 12-24-1996 23:32 ce09b98c  prg-2.u52
  524288  Defl:X   433755  17% 12-24-1996 23:32 bbb7f0ff  snd-1.su7
  524288  Defl:X   339983  35% 12-24-1996 23:32 47e3952e  snd-2.su4
--------          -------  ---                            -------
 8388608          2745342  67%                            7 files

The RetroArch scanner is checking your file with the RA databases and 1945kiii.zip is listed in all 3 databases (FBNeo, MAME, MAME 2003-plus and probably in other mame databases as well)
So RetroArch picks the first that matches.

For this reason you have to use the manual scan method and providing the database that you want to be checked.

2 Likes

@ImnoTapLumber Correct, I understand that a rom can exist in multiple RA databases. You mention “So RetroArch picks the first that matches.” That is the source of my confusion. What one is first? Alphabetically, FBNeo comes before MAME, so one would assume FBNeo would get any duplicates like 1945kiii.zip first. But that doesn’t happen, so I assume there’s some sort of hardcoded list of what core databases have priority over others. That’s the information I was looking for, if it’s possible to change that order (so I can always prefer FBNeo over MAME). I tried looking through the codebase for the answer but… it’s a pretty big codebase. :slightly_smiling_face:

@hunterk Nope, Lakka is much more locked down/read only. There isn’t even an option to update databases in “Main Menu > Online Updater”, since the cores and the databases are built in and not changeable. Hence looking for a way to disable cores/databases from a config standpoint (as I can’t delete anything).

@BarbuDreadMon Thank you for the guide. That’s pretty much what I was doing, though I think I was using a different DAT file. It’s unfortunate that the database scan for arcade will most likely never get fixed, but I guess that kinda makes sense for ever changing romsets. But even something like “scan this rom folder and only look for this core” might be nicer. A sort of middle ground to a full directory scan blindly adding roms to playlists, and a manual scan that I’d have to remember to specify 4 settings and a DAT file each time.