EMULAB Forum

clrmamepro [English] => clrmame Discussion => Topic started by: f205v on 03 January 2017, 19:57

Title: question about fixdat files and a small suggestion
Post by: f205v on 03 January 2017, 19:57
Dear Roman,
happy New Year!
During last week I was updating to latest MAME a very old machine (from 0.78 to 0.181).
I noticed that the fixdat file generated are always the same, regardless of the merging flag I set (non-merged, split, merged). Is this the right behaviour?
Consider the following datfile (it's just a test made by me to illustrate the situation):
Code: [Select]
<datafile>
<header>
<name>test XML</name>
<clrmamepro/>
</header>
<machine name="a">
<description>a</description>
<rom name="aa1" size="256" crc="5baf4761" sha1="aa7e07eb2cada03b85bdf11ac6a3de65f4253eef"/>
<rom name="aa2" size="256" crc="04c22349" sha1="d1cb78911cb1ca660d393a81ed3ed07b24c51525"/>
</machine>
<machine name="b (clone of a)" cloneof="a" romof="a">
<description>(clone of a)</description>
<rom name="aa1" merge="aa1" size="256" crc="5baf4761" sha1="aa7e07eb2cada03b85bdf11ac6a3de65f4253eef"/>
<rom name="ab2" size="256" crc="9428afb0" sha1="ba907d3361256b022583d6a42fe223e90590e3c6"/>
</machine>
<machine name="c (one rom identical to a)">
<description>c (one rom identical to a)</description>
<rom name="cc1" size="256" crc="0ab15633" sha1="df004ff41f35b16089f69808ccf53a5e5cc13ac3"/>
<rom name="cc2" size="256" crc="04c22349" sha1="d1cb78911cb1ca660d393a81ed3ed07b24c51525"/>
</machine>
</datafile>
I was expecting fixdat files to look like the following:
1) un-merged -> identical to the starting datfile
2) split -> games A and C as per original datfile, game B with only one entry (the non "merge" rom)
3) merged -> game A with 3 roms (aa1,aa2,ab2) and game C with 2 roms (cc1,cc2). No entry for game B.

Now my suggestion: as you will notice, rom cc2 has different name from rom aa2, but same size and hash. The games C and A have no parent/clone relation. This is happening a lot in MAME, especially with PROMs or sound ROMs.
Would it be possible for clrmame to generate a "minimal fixdat" file containing only the REALLY NEEDED 4 roms aa1,aa2,ab2,cc1 ? Only these 4 roms are really needed to fully rebuild my example set and clrmame perfectly manages this rebuild already now.
The advantage of a "minimal fixdat" will be to save a lot of bandwidth for people helping each other to complete their collections.

thank you for listening to me and for all the good work you put into clrmame.
Title: Re: question about fixdat files and a small suggestion
Post by: Roman on 03 January 2017, 20:21
fixdats do look like this and this is intended. fixdats are for rebuilding purposes only and the user decides which merge mode is used when using the fixdat,so you need this format.
if you look at a standard mame -listxml output you will see that similar parent clone relationships are listed in a similar manner.
Title: Re: question about fixdat files and a small suggestion
Post by: f205v on 04 January 2017, 08:54
Ok, thank you. So the format of the fixdat is the same regardless of the scan method.

What about my proposal for a "minimal fixdat"? Not worth the effort, I presume.
Title: Re: question about fixdat files and a small suggestion
Post by: Roman on 04 January 2017, 09:46
Sorry, but there won't be a minimal fixdat.

What is a fixdat, well, it's simply a printout of the loaded datfile but limited to the missing files.
So basically it uses the loaded data and hides some entries (the existing ones).