unexpectedpanda / retool

Retool: a better filter tool for Redump and No-Intro DAT files.
BSD 3-Clause "New" or "Revised" License
343 stars 22 forks source link

[Feature Request] Support FBNeo/Mame (NonMerge) dats #295

Closed Daeymon closed 6 months ago

Daeymon commented 7 months ago

I know FBNeo/Mame dat file support has been requested before, and I can understand the reluctance from your previous comments when faced with the issues that split and merge sets present.

But if someone wants a 1G1R set, then that set in itself will be a filtered non-merged set. I just don't see how the other two set types can result in a reliable 1G1R set; what is the point of splitting or merging when there aren't any clones in a 1G1R set. I tend to use the Libretro FBNeo dats, and those dat files are non-merge: https://github.com/libretro/FBNeo/tree/master/dats

There is no decent 1G1R solutions out there for the Mame dats. The ClrMamePro 1G1R option is a pain to even get working and then is very strict and offers no real flexibility. Other options like BestArcade require a fully downloaded full rom set to carry out the filtering rather than just working with the dat. I prefer a solution that produces a filtered dat like Retool, so I don't need to acquire the whole rom set to figure out which ones will make up the 1G1R set.

Obviously this is just a suggestion and I understand if this is a scope expansion you just don't want to delve into.

unexpectedpanda commented 6 months ago

There's a reason there isn't a decent 1G1R solution for MAME/FBNeo DAT files -- the data structure doesn't lend itself to that sort of processing. The lack of naming standard in the DAT descriptions makes it extremely challenging to automate anything, meaning the most likely path for filtering is an inflexible, curated, massive, and high-effort list that needs frequent updating.

In short, the DAT files are built to service the emulator, not user customization. Deduping or filtering beyond parent/clone wasn't a thing they had in mind when designing the format, and even then that relationship was only established to facilitate split sets. I don't see the situation changing either -- useful filter tools like catver. ini are still separate from MAME and updated by an external party manually, decades later. I think I've seen some MAME developer resistance too in regards to letting users split arcade from software lists -- filtering just doesn't seem to be part of the ethos.

On a personal note, supporting No-Intro and Redump already takes up significant amounts of my time.

I can definitely understand the desire for this, but the combination of unsuitable source data and time expense makes it infeasible for the foreseeable future.