No need to make it more complicated than that.
*Sigh*.... I do really appreciate the feedback, but I thought I was pretty clear that I don't want Genres, I want sub genres. Ticking 'Breakout' doesn't just give me Breakout, it gives me Breakout, Breakout *Mature*, and what ever other sub genres are under breakout. I don't want 500 games listed under 'fighter', I want separate game lists for each sub-genre (Fighter - 2.5D, Fighter - 2D, Fighter - Versus, etc, etc).
ROMLister is not behaving the way I expected it to so I have reverted back to going through my XML documents one by one. I think it boils down to me probably not doing the filter queries properly but for example a query like:
(buttons=8 | buttons=7 | buttons=6 | buttons=5 | buttons=4 | buttons=3 | buttons=2 | buttons=1 | buttons=0 | !buttons=) & (puzzle) & !('ball & paddle' | 'BIOS' | breakout | casino | climbing | driving | fighter | maze | minigames | mature | misc. | multiplay | pinball | platform | quiz | rhythm | shooter | sports | tabletop | wrestling)
I would expect to return games where the category field equals 'Puzzle', Not 'Puzzle / Maze', 'Puzzle / Cards', 'Puzzle / Drop', etc, etc.
And when I run a query like this:
(buttons=8 | buttons=7 | buttons=6 | buttons=5 | buttons=4 | buttons=3 | buttons=2 | buttons=1 | buttons=0 | !buttons=) & (puzzle) & ('Maze') & !('ball & paddle' | 'BIOS' | breakout | casino | climbing | driving | fighter | maze | minigames | mature | misc. | multiplay | pinball | platform | quiz | rhythm | shooter | sports | tabletop | wrestling)
I would expect it to return 'Puzzle / Maze' games but it doesn't return anything.
I was hoping ROMLister was written in .NET (C#/J#/VB) so I could reflect it to determine where the actual creation of the mlg file is being performed (so I could borrow that segment of code) but unfortunately it's Visual C++ and I don't have time to dig through the ASM dump in IDA Pro. Is there an API or a public static library that I can pass in an XML document and have it spit back the mlg file? This creation of the binary mlg file is my only sticking point and it has cost me hours of time now.
As soon as I get done with this evolution I need to review all 147 genres and consolidate them into custom mlg lists, and now I'm dreading that task. At the end of the day I want a set of 15 or 20 categories with no more than 100 or so games in them, however I want a clean set of mlg's that accurately reflect the MAME / catver.ini database that I can always revert back to or use for any new arcade projects.
Thanks again everyone.