I began working on a XMDB for the No-Intro GBA set for GoodMerge support. You can see it started in the attached zip file.....
I tried it with the first 100 roms and it went from 300MB in 100 files to 175MB in 85 files. The more roms you have, the more space you'll save because similar games are put together. You can see that the space you'd save if you put all of the games together is huge....

What I need from you guys is help to complete the sets. If you know a lot of the games that are similar, go through the XML and put similar games together and upload a new version of the XMDB.

Note that you have to have a program like RomCenter to generate the Have.txt file needed for GoodMerge.
===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ xuom2 on 19th September 2006, 17:18 wrote:
you can use the parent-clone list by the great kazumi213

===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ Rob Loach on 20th September 2006, 05:24 wrote:
Perfect! I made a small program to parse through that and give out the XMDB file. Here's the completed set. Could someone please test it out and say what you think?you can use the parent-clone list by the great kazumi213
I tested it with a bunch of different setups and it worked. One interesting one was when the four "Cars" roms went from 17MB in 4 zip files to 3.4MB in 1 7zip file. Much easier to manage.....
If this proves to work, I'll do a bit more hacking on the program and release the source.
Note that you have to get the "have.txt" from a program like RomCenter.
I tried it out on 2,484 of the roms and it went from:
10.4 GB in 2,484 Zip files to....
5.75 GB in 1,504 7-Zip files....
I've attached the merge log.
===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ Rob Loach on 22nd September 2006, 14:48 wrote:
I've updated the XMDB to #2488 as well as cleaned up the source a bit....
===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ Rob Loach on 22nd September 2006, 21:42 wrote:
Just noticed your new program to output the XMDB file: GBA nointro 2460
Very nicely done! Looks good to me.... I think development should shift to that instead of this one.
===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ Cartoonite on 24th September 2006, 08:31 wrote:
I certainly have an interest in this, as you may have gathered from my posts in the thread that xuom2 linked to.
I have been creating my xmdb file by hand, and will compare my results with yours once I have it completed.
Edit:
As I mentioned in the other thread, I don't know much about programing, but I may be able to at least help you with comparisons of your archive outputs and my own.
Automerged Doublepost
Since you seem to have more programming experience than I do, Rob, maybe you can give me a better idea of exactly how to read these lines from the xmdb file:
My understanding is that the first line uses a regular expression to determine a set of strings for GoodMerge to flag as version, or region, identifiers so that it can ignore them when attempting to determine the correct game name of a given input file. My testing seemed to confirm this when adding ACK into the group at the start succeded in removing separate archives for any (A) (C) or (K) games.<flag reg=" (\(([JUEFGISNACK]{0,2}|Beta|MB(2GBA)?)\)|\[)"/>
<ignore reg=" \+ [0-9]{1,3} NES"/>
However, as of now there is apparently one (Ca) game in the collection, and that one is being separated from its clones because the (Ca) marker is not being recognized as a region tag. I'm wary of adding too many letters to that set because I don't want to end up with an expression that says any set of letters in parantheses should be considered a country code.
If you could provide some insight on how to read these lines, and what the second line's function is in regards to GM's operation, it should help resolve this for me.
===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ Rob Loach on 27th September 2006, 12:46 wrote:
Ahhh, I didn't see your post here. Anyway, yes. That RegEx says that it will be a string with 0 to 2 of those captical letters, or "Beta", or MB2, MBG, MBA. Although I'm not sure how GoodMerge handles them from there, that's what the regex says.
I change the Ignore regex to:
so that it would ignore the first four numbers of the rom.<ignore reg="[0-9]{4} \- "/>
===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ Cartoonite on 27th September 2006, 14:33 wrote:
Ah, that makes sense, now that you've explained the ignore line. I will change it in my file, as well, for people who prefer to leave their ROMs numbered. It didn't affect me because my personal preference is for un-numbered naming.
The flag regex is actually the first error I noticed in your new tool's XMDB. Our GBA DAT includes several country codes that are not marked by the flag regex in the official GoodGBA file. To account for this, I've changed the flag line for my file from
to<flag reg=" (\(([JUEFGISN]{0,2}|Beta|MB(2GBA)?)\)|\[)"/>
This allows GoodMerge to recognize the country tags of (A), (C), (K) and (Ca). Changing to {0,3} also allows for recognition of up to 3 letter country codes to be recognize. This is important because there is at least 1 3-letter combination in our set (a (UCa) ROM).<flag reg=" (\(([JUEFGISNACKa]{0,3}|Beta|MB(2GBA)?)\)|\[)"/>
I suspect we can probably remove the "MB(2GBA)" part, but I haven't tested it yet, so I'm not sure. Also, does the "?" have a special meaning as part of a regex, or can it just be interpreted as a litteral part of the string?
===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ Rob Loach on 30th September 2006, 07:23 wrote:
I implemented your fixes, but haven't tried them out. I also haven't updated to 2493 since the parent-clone list hasn't been updated.
The "?" in the Regex means that the previous element can either be there, or not be there. For example: "He?llo" could be either "Hello" or "Hllo"....
On a similar note, do you have any clue of what to do for the Kim Possible problem?
===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ Cartoonite on 1st October 2006, 03:52 wrote:
2 more fixes:
Note the additon of "L" to the flag regex (to account for a single NL game, grr) and of "^" to the ignore regex, so that any game w/ a 4-digit number in the title is still processed correctly.<flag reg=" (\(([JUEFGISNACKaL]{0,2}|Beta|MB(2GBA)?)\)|\[)"/>
<ignore reg="^[0-9]{4} \- "/>
On a similar note, do you have any clue of what to do for the Kim Possible problem?
Yes, but I don't like it. It makes the generated XMDB file much more complex, with a lot of redundant information that shouldn't be necessary, but it's the only way I can think of (so far, anyway) to make the naming messes.
If we remove the flag regex from the start of the file, then all ROM titles will be read in their entirety when GM is attempting to determine which archive they should be put in.
As near as I can tell, the problem stems from the fact that GM is designed to recognize country codes and (with the assistance of our revamped regex) ignore ROM numbers when parsing files for merging. So, what happens is it takes this file for input:
Code: Select all
1274 - Kim Possible (E) (M4) [b].gba
In both cases it ends up with a "name" of "Kim Possible" for that ROM. It then searches through the ZONEDs looking for a matching name. When it finds one, it drops the ROM into that archive.
I can think of 2 possible solutions to this. First is the group regex that I have implemented for myself. When grouping GM will include parts of the filename that have been flagged for removal from the ROM (game) name. The ignore regex will not be overridden.
This will include all file names that start with "Kim Possible (E)" into the current ZONED archive. Because we've stipulated with our ignore regex that "xxxx - " should be remove from the start of the line, ROM 1274 will fit in this group, but ROM 2061 will not. A second group regex ("^Kim Possible \(J\)") is then used to set a group for ROM 2061.<group reg="^Kim Possible \(E\)"/>
This solution works great, but is tough to implement in a tool designed to scan through a list of parent-clones and then output an XMDB based on that. The only way to truely implement this w/o setting up an elaborate check scheme to see if group registration is necessary is to default to creating a group regex for every single entry. This causes even more problems because if we aren't careful we could accidentally create a set of regex statements that are ambiguous.
A better option, IMO, is just to ditch the flag regex altogether. If we parse the entire file name (except the ROM number) when determining a ROM's name, then any possibility of duplication is eliminated. We can then use clone statements to assign the individual ROMs to their correct groups.
Code: Select all
<zoned>
<bias zone="E" name="Kim Possible"/>
<clone name="Kim Possible (E) (M4) (b)"/>
<bias zone="U" name="Kim Possible - Revenge of Monkey Fist"/>
<clone name="Kim Possible - Revenge of Monkey Fist (U) (b)"/>
</zoned>
If we forgo the flag regex it will eliminate any name duplication, but the clone names will have to be specified in full. We could skip the clone sections and just use the full file names in the bias section, but then we'd have archives called
Code: Select all
"Kim Possible (E) (M4) [b]"
That is the only thing I can think of to solve the issue without, as I said, trying to set complex sub routines that will check to see if any name duplication exists within the output XMDB before creating the file. It's not pretty, but it should work.
===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ Rob Loach on 2nd October 2006, 05:13 wrote:
Your changes are in and it resulted in the attached XMDB file in the zip.
The good news is that it looks like it matches exactly what you suggested, the unfortunate news is that I tested it out and it resulted in the following error:
Error: XML loading error.
The element 'zoned' has invalid child element 'bias'. List of possible elements expected: 'clone group'.
Any suggestions?.... Just noticed that I forgot some of the ignore regex, it's in, but still resulted in the same error.
Code: Select all
<zoned>
<bias name="Kim Possible" zone="E"/> <!-- 1274 -->
<clone name="Kim Possible (E) (M4) [b]"/>
<bias name="Kim Possible - Revenge of Monkey Fist" zone="U"/> <!-- 0772 -->
<clone name="Kim Possible - Revenge of Monkey Fist (U) [b]"/>
</zoned>
Re: GoodMerge XMDB No-Intro GBA Support \ Cartoonite on 3rd October 2006, 13:41 wrote:
Hmm. Not sure. Just out of curiosity, was it parsing properly before? Once possible conflict arises from the fact that kazumi has listed the dual/tri-game paks multiple times in her parent-clone list; so we get this in our XMDB:
Code: Select all
<zoned>
<bias name="Rayman Advance" zone="E"/> <!-- 0051 -->
<clone name="Rayman Advance (E) (M5)"/>
<bias name="Rayman Advance" zone="U"/> <!-- 0046 -->
<clone name="Rayman Advance (U) (M5)"/>
<bias name="Rayman 10th Anniversary - Rayman Advance + Rayman 3" zone="E"/> <!-- 2121 -->
<clone name="Rayman 10th Anniversary - Rayman Advance + Rayman 3 (E) (M5+M10)"/>
<bias name="Rayman 10th Anniversary - Rayman Advance + Rayman 3" zone="U"/> <!-- 2144 -->
<clone name="Rayman 10th Anniversary - Rayman Advance + Rayman 3 (U) (M5+M3)"/>
</zoned>
-
-
-
<zoned>
<bias name="Rayman 3" zone="E"/> <!-- 0875 -->
<clone name="Rayman 3 (E) (M10)"/>
<bias name="Rayman 3" zone="U"/> <!-- 0985 -->
<clone name="Rayman 3 (U) (M3)"/>
<bias name="Rayman 10th Anniversary - Rayman Advance + Rayman 3" zone="E"/> <!-- 2121 -->
<clone name="Rayman 10th Anniversary - Rayman Advance + Rayman 3 (E) (M5+M10)"/>
<bias name="Rayman 10th Anniversary - Rayman Advance + Rayman 3" zone="U"/> <!-- 2144 -->
<clone name="Rayman 10th Anniversary - Rayman Advance + Rayman 3 (U) (M5+M3)"/>
</zoned>
I will try to take a closer look at the file later today to see if I can find any other possible causes.
===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ Rob Loach on 7th October 2006, 06:29 wrote:
Did you make any progress with your set, Cartoonite?
===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ xuom2 on 14th October 2006, 10:27 wrote:
XMDB was updated?
===============================================
Re: GoodMerge XMDB No-Intro GBA Support \ Cartoonite on 15th October 2006, 00:46 wrote:
Sorry it took me so long to get back to you. I've been rather busy lately so it took a while before I could take a look at this.
My XMDB file is done. All that remains now is to try and find a way to get your tool to create something similar. I will post my files so you can use them for comparison, but since mine was created by hand, it is going to be a lot different from the auto-generated one.
I see there have been some name changes in the DAT file over the past few weeks, so I am now in the process of updating the XMDB file to reflect the new names. In the meantime, here are the files as they existed based on the 20060916 DAT.
Edit: I also see that kazumi has changed the format of her parent-clone file, which will likely require a recoding of your tool if you plan to continue to use her lists as input.