Explaination of rom hierarchy in FBA DAT file
-
Can someone explain the rom hierarchy in the FBA DAT file? I know that some entries are language specific, so those specific romsets can be deleted as I will never use them. From what I can tell, the "root" (ie, without "romof"), appears to be the latest and/or most widely accepted version, where as the others simply have the modified/additional files in their romset to create a new version. Also, what is the difference between "cloneof" and "romof"?
Second, take for instance the following:
<game name="capbowl"> <description>Capcom Bowling (set 1)</description> <year>1988</year> <manufacturer>Incredible Technologies / Capcom</manufacturer> <rom name="u6" size="32768" crc="14924c96"/> <rom name="gr0" size="32768" crc="ef53ca7a"/> <rom name="gr1" size="32768" crc="27ede6ce"/> <rom name="gr2" size="32768" crc="e49238f4"/> <rom name="sound.u30" size="32768" crc="8c9c3b8a"/> </game> <game name="capbowl2" cloneof="capbowl" romof="capbowl"> <description>Capcom Bowling (set 2)</description> <year>1988</year> <manufacturer>Incredible Technologies / Capcom</manufacturer> <rom name="program_rev_3_u6.u6" size="32768" crc="9162934a"/> <rom name="gr0" merge="gr0" size="32768" crc="ef53ca7a"/> <rom name="gr1" merge="gr1" size="32768" crc="27ede6ce"/> <rom name="gr2" merge="gr2" size="32768" crc="e49238f4"/> <rom name="sound.u30" merge="sound.u30" size="32768" crc="8c9c3b8a"/> </game> <game name="capbowl3" cloneof="capbowl" romof="capbowl"> <description>Capcom Bowling (set 3)</description> <year>1988</year> <manufacturer>Incredible Technologies / Capcom</manufacturer> <rom name="3.0_bowl.u6" size="32768" crc="32e30928"/> <rom name="grom0-gr0.gr0" size="32768" crc="2b5eb091"/> <rom name="grom1-gr1.gr1" size="32768" crc="880e4e1c"/> <rom name="grom2-gr2.gr2" size="32768" crc="f3d2468d"/> <rom name="sound_r2_u30.u30" size="32768" crc="43ac1658"/> </game> <game name="capbowl4" cloneof="capbowl" romof="capbowl"> <description>Capcom Bowling (set 4)</description> <year>1988</year> <manufacturer>Incredible Technologies / Capcom</manufacturer> <rom name="bfb.u6" size="32768" crc="79f1d083"/> <rom name="grom0-gr0.gr0" size="32768" crc="2b5eb091"/> <rom name="grom1-gr1.gr1" size="32768" crc="880e4e1c"/> <rom name="grom2-gr2.gr2" size="32768" crc="f3d2468d"/> <rom name="bfb.u30" size="32768" crc="6fe2c4ff"/> </game>
What exactly does "set 1" through "set 4" actually mean? And the listed files in set don't really seem to override, and there doesn't appear to be a common file among all romsets that acts as the boot rom. I'm confused by this.
-
@retrocake said in Explaination of rom hierarchy in FBA DAT file:
Can someone explain the rom hierarchy in the FBA DAT file? I know that some entries are language specific, so those specific romsets can be deleted as I will never use them. From what I can tell, the "root" (ie, without "romof"), appears to be the latest and/or most widely accepted version, where as the others simply have the modified/additional files in their romset to create a new version. Also, what is the difference between "cloneof" and "romof"?
No difference per say other than that Roms with this tag would require the parent eg set 1 in order to work unless you make them the parent but thats another story :)
@retrocake said in Explaination of rom hierarchy in FBA DAT file:
What exactly does "set 1" through "set 4" actually mean? And the listed files in set don't really seem to override, and there doesn't appear to be a common file among all romsets that acts as the boot rom. I'm confused by this.
It means 4 versions of this game have been dumped from the original Arcade pcb's
-
@gamez-fan
So, regarding my first question, does the official FBA DAT file provided by lr-fbalpha organize the hierarchy so that the parent of a romset is the most current/preferred? It appears to be organized that way.
The entire point of my questioning is to determine which romset zips I can remove so that I don't have duplicate games in my game list in RetroPie. If the parent is preferred, then I can just delete the all the children. Unless RetroPie's FBA interface can automatically choose the preferred romset and hide everything else. That would be a great option to have.
-
@retrocake said in Explaination of rom hierarchy in FBA DAT file:
@gamez-fan
So, regarding my first question, does the official FBA DAT file provided by lr-fbalpha organize the hierarchy so that the parent of a romset is the most current/preferred? It appears to be organized that way.
The entire point of my questioning is to determine which romset zips I can remove so that I don't have duplicate games in my game list in RetroPie. If the parent is preferred, then I can just delete the all the children. Unless RetroPie's FBA interface can automatically choose the preferred romset and hide everything else. That would be a great option to have.
The parent is always the prefered Rom due it usually being the newest revison of a game they have dumped, but sometimes a clone can have benefits due to that version
of a game being uncencored, BTW you need to grab a handy programe called Romcentre or even CLRMAMEPRO with those you can specify what type of Roms you want to
favour eg parent and set the programe to delete the clones while it scans your Roms folder. -
@gamez-fan said in Explaination of rom hierarchy in FBA DAT file:
a handy programe called Romcentre or even CLRMAMEPRO with those you can specify what type of Roms you want to
favour eg parent and set the programe to delete the clones while it scans your Roms folder.whhaaaaaaat?!?!?!?! :) :) :) :) :)
@gamez-fan, you're my favorite person in the world right now.
-
@retrocake You should check out @markwkidd 's excellent tool Simple Arcade Multifilter - app for MAME and FB Alpha ROM sets
-
@retrocake said in Explaination of rom hierarchy in FBA DAT file:
Romcentre or even CLRMAMEPRO
It looks like Romcentre and CLRMAMEPRO are closed source binaries. I won't use those. Thanks, though.
-
Why can't I just do this?
cp original_roms/*.zip roms/ grep cloneof FB\ Alpha\ v0.2.97.42\ \(ClrMame\ Pro\ XML\).dat | sed -rn 's/.* name="([a-z0-9]+)" .*/\1/p' >> remove_roms.txt grep neogeo FB\ Alpha\ v0.2.97.42\ \(ClrMame\ Pro\ XML\).dat | sed -rn 's/.* name="([a-z0-9]+)" .*/\1/p' >> remove_roms.txt for file in `cat remove_roms.txt`; do rm roms/$file.zip;done;
-
@retrocake said in Explaination of rom hierarchy in FBA DAT file:
Why can't I just do this?
cp original_roms/*.zip roms/ grep cloneof FB\ Alpha\ v0.2.97.42\ \(ClrMame\ Pro\ XML\).dat | sed -rn 's/.* name="([a-z0-9]+)" .*/\1/p' >> remove_roms.txt grep neogeo FB\ Alpha\ v0.2.97.42\ \(ClrMame\ Pro\ XML\).dat | sed -rn 's/.* name="([a-z0-9]+)" .*/\1/p' >> remove_roms.txt for file in `cat remove_roms.txt`; do rm roms/$file.zip;done;
Yes, it would remove clones and neogeo games. If you search on this forum, i think you can also find a list of clones worth keeping (i kinda remember seeing topics about this).
Also, it is worth mentioning sometimes parent roms are marked as NW (non working) and are in the romset only to allow their clones to work
Actually, if you want to write your own script to filter games out, i would recommend writing something that parse https://github.com/libretro/fbalpha/blob/master/gamelist.txt since the NW information is present.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.