Arcade Cabinet









Valid XHTML 1.0!

Valid CSS!



MAMEDiff makes it easy to identify ROM related changes in a new release of MAME (it can even find game additions that aren't mentioned in whatsnew.txt). It can spot game renames and will not regard them as one game deleted and another added. When ROMs or games are renamed (or if there is a change in the way that sets are merged), MAMEDiff will just tell you how to rebuild the affected sets (i.e. no downloading required). A must-have for any MAME fanatic! It also works for new releases of MESS, RAINE, Final Burn Alpha, Kawaks, etc.

Download MAMEDiff v2.31 (224KB)



13 April 2009 - MAMEDiff v2.31

- Uses DatLib v2.36.
- Added support for 64-bit ROM sizes (n.b. not for directory scan).

28 October 2008 - MAMEDiff v2.30

- Uses DatLib v2.33.
- Added support for AAE RomList.
- Changed the directory scanner to process zero byte files / roms.

5 May 2008 - MAMEDiff v2.29

- Added the -x option for Final Burn and FBA. Use it with -d1.

5 May 2008 - MAMEDiff v2.28

- Uses DatLib v2.28.
- MAMEDiff -z option is inferred from 'forcenodump' (if present).
- Fixed de-duplication of "nodump" ROMs and disks for MAMEDiff.
- Log file now shows the MAMEDiff version as well as the options.

24 March 2008 - MAMEDiff v2.27

- Uses DatLib v2.24.
- Fixed crash (allzip had spurious carriage returns in kyukaidk).
- DatLib 2.23 also added the Generic XML format.

30 December 2006 - MAMEDiff v2.26

- Uses DatLib v2.19.
- Improved -dX modes (understands merging despite differing names)
- Added CPS-2 to descriptions when producing disk supplements
- Added sourcefile information to output datafile
- Fixed sample functionality in the standard comparison modes.
i.e. Running MAMEDiff without options or in verbose mode (-v).

11 July 2006 - MAMEDiff v2.25

- Uses DatLib v2.16.
- Fixed bug that messed up internal indices (affected crc matching)
- More intelligent directory scanner (regarding samples and CHDs)
- Removed 64MB file limit from directory scanner (reads 1MB blocks)

9 January 2005 - MAMEDiff v2.24

- Added -d4 (even smaller supplements - for ROM archival only).
- Updated the usage information on the command line.
- Tidied up the code in generate.c (used by -d1, -d2, -d3, -d4).

6 December 2005 - MAMEDiff v2.23

- Uses DatLib v2.13.
- DatLib v2.12 broke the RomCenter drivers (now fixed).

5 December 2005 - MAMEDiff v2.22

- Uses DatLib v2.12.
- Fixed a rare crash (if the longest line in the dat was the last).
- Fixed a problem loading RomCenter data files containing [].
- From DatLib v2.11.
- M1 XML will not use hex for ROM sizes after all... changed back!

31 October 2005 - MAMEDiff v2.21

- Uses DatLib v2.10.
- Fixed identification of ListXML for MAME+MESS v0.101u4 onwards.

28 October 2005 - MAMEDiff v2.20

- Uses DatLib v2.9.
- M1 XML will use hex for ROM sizes. Changed driver accordingly.

5 October 2005 - MAMEDiff v2.19

- Uses DatLib v2.8.
- Improved the logerror() function (used for reporting ZIP errors).
- Added support for M1's XML format (when it becomes available).

17 September 2005 - MAMEDiff v2.18

- Uses DatLib v2.7.
- Compiled with zlib 1.3.
- Improved Neo-Geo handling for the Nebula driver.
- Improved 'romof' handling for RomCenter 2 driver (during loading).

31 August 2005 - MAMEDiff v2.18

- Uses DatLib v2.6.
- Fixed a 'hang' that occurred with circular cloneof relationships.

28 February 2005 - MAMEDiff v2.16

- Uses DatLib v2.2.
- Added support for tab delimited files.
- Fixed problem of unrecognised escape sequences looping forever!

22 February 2005 - MAMEDiff v2.15

- Uses DatLib v2.1.
- Now outputs a listing of game name comparisons (mamediff.out).
- Can identify listinfo files even if they only contain resources.
- Changed the error messages that are given when files are missing.

15 February 2005 - MAMEDiff v2.14

- Uses DatLib v2.0.
- Supports the DatLib v2.0 method of handling baddump/nodump ROMs.

16 January 2005 - MAMEDiff v2.13

- Uses DatLib v1.14.
- Added support for Calice drivers (DatLib v1.13).
- Added support for the GNGEO romrc file.
- Increased maximum ROM size to 64MB (used when scanning folders).
- Fixed a memory allocation bug that could cause a hang sometimes.

25 November 2004 - MAMEDiff v2.12

- Uses DatLib v1.12.
- Improved the handling of CRC conflicts within the 'fix merging'.

26 October 2004 - MAMEDiff v2.11

- Uses DatLib v1.11.
- Added a parser for the ZiNc --list-sets.

18 August 2004 - MAMEDiff v2.10

- Uses DatLib v1.10.
- Better handling of 'clones of clones' when loading data files.

2 August 2004 - MAMEDiff v2.9

- Fixed a bug that was introduced in v2.6 and affected -d3 option.

30 July 2004 - MAMEDiff v2.8

- Uses DatLib v1.9.
- Added full support for disk 'merge' and 'flags' information.
- Made use of the DatLib FORMAT_LISTINFO_XXXXXX macros throughout.

22 July 2004 - MAMEDiff v2.7

- Uses DatLib v1.8.
- Removed the need for xml2info by adding my own MAME XML parser.
- A nice side effect is that names like "Alien3: The Gun" work now!

21 July 2004 - MAMEDiff v2.6

- Uses DatLib v1.7
- Added support for MESS XML.
- Avoids duplicate ROMs in MAMEDiff -d1/-d2/-d3 data files.
- Added support for disks and samples in the -d1/-d2/-d3 options.
Use '-o disk' or '-o sample' to specify the desired object type.
These options even work when comparing directories against dats!
- Added instructions to the readme about ROM/disk/sample auditing.

18 July 2004 - MAMEDiff v2.5

- Added -b option (non-separated BIOS) for use with the -dX modes.
- Added sample and disk support to the standard comparison modes.
i.e. Running MAMEDiff without options or in verbose mode (-v).

11 July 2004 - MAMEDiff v2.4

- Updated the source to use the new functions of DatLib v1.4.
- There is no functional change within MAMEDiff though.

6 July 2004 - MAMEDiff v2.3

- Compiled with DatLib v1.3 to fix a small issue with -d1/-d2/-d3.
Problem only affected data files containing games without ROMs.

5 July 2004 - MAMEDiff v2.2

- Fixed a bug in the standard comparison that could cause a memory fault and crash MAMEDiff.
- Made a couple of changes so that MAMEDiff can be used as a batch tool
for ROM auditing (i.e. compare a directory against a dat):
- When using -d1/-d2/-d3, games without ROMs are now ignored.
- When using -d1/-d2/-d3 and -z, no dumps that replace a real CRC
are not considered a change now (the previous ROM is still fine).
- To use for simple ROM verification, use the following syntax:
mamediff -d1 -r [-z] <dir> <dat>

4 July 2004 - MAMEDiff v2.1

- When using -d1, MAMEDiff will report the options in the log file.
- Uses DatLib v2.1 so ZIP comparisons will be much faster now.

2 July 2004 - MAMEDiff v2.0

- Modified to use DatLib so there should be no size limitations now.
- Basically a complete rewrite of all dat generation routines!
- Supports all of the DatLib formats (CMPro, XML, RomCenter, Nebula Drivers, etc.)
- Does not re-order games and ROMs in output data files now.
- Outputs SHA1, MD5, flags (baddump and nodump) and regions now.
- Better at spotting renames now due to a different game checksum.
- Better internal 'fix merging' results in more accurate output.
- The prefix 'Neo-Geo' is no longer added to Neo-Geo games.
- Supports full-width game descriptions now (i.e. >100 characters).
- Replaced -M, -S, -N, -t, -T options with -d1, -d2, -d3, -r, -z.
Read the documentation for full details of the new options.
- Update and supplement dats will be different, hopefully better!

4 March 2004 - MAMEDiff v1.26

- Increased length of ROM names to 40 chars (for MAME v0.79).

31 January 2004 - MAMEDiff v1.25

- When generating data files and log files, 'crc 00000000' is now written out as 'flags nodump'.

24 January 2004 - MAMEDiff v1.24

- Increased the maximum number of games from 5000 to 6000.
- Added support for the 0x syntax used in some data files.
- Fixed a small glitch in -S/-N/-M (used by 'MAME Changes') where some resources containing changes may not get output.
- Note: This only used to happen when the resource was not required by any of the games in the output data file.
- I finally got around to making a change so that new MAME resources don't need to be added to MAMEDiff ever again.
- I guess I was being lazy and never expected so many of them!

20 January 2004 - MAMEDiff v1.23

- Internal 'fix merging' runs twice now so that it propagates to all clones.
- Minor adjustment to the routine that decides if a ROM lives in a resource.
- This fixes the handling of shootgal/sg-01-0 and lots of unrequired games in a 'split-merged changes' datafile.

31 December 2003 - MAMEDiff v1.22

- Added knowledge of the atpsx resource.

28 December 2003 - MAMEDiff v1.21

- Added knowledge of the 2 new resources added in MAME v0.78.
- Increased the maximum ROM size to 9 digits (for sfish2).

25 August 2003 - MAMEDiff v1.20

- Added knowledge of the seven new resources added in MAME v0.72.

20 May 2003 - MAMEDiff v1.19

- Found a small glitch in 'fix merging' while testing the non-public v1.18.

- MAMEDiff v1.18 (non-public):

- Fixed memory addressing bug (triggered by the many apparent [but not really] merge related changes in MAME v0.58).
- Included 'fix merging' logic in the listinfo parser because MAME listinfo no longer includes merge details.

19 May 2003 - MAMEDiff v1.17

- Fixed so that the missing konamigx resource in MAME v0.67 doesn't cause a crash!
- Added support for the new 'nodump' syntax of MAME v0.68.

7 April 2003 - MAMEDiff v1.16

- Added knowledge of the Konami GX BIOS.

18 January 2003 - MAMEDiff v1.15

- Increased line buffer size to 32KB (for those people who end up with MAME history in their listinfo).
- Added knowledge of the Sega ST-V BIOS.

14 November 2002 - MAMEDiff v1.14

- Required some improvements for MAME v0.62:
- Added support for the SKNS resource.
- Improved merge handling (required by European SKNS games).
- Does not output empty year information to mamediff.dat.
- Made a minor change to improve compatibility with MSVC++.

20 May 2002 - MAMEDiff v1.13

- Automatically detects and handles new resource ROMs.
- New resource ROMs are now included in the -t/-T output.

22 April 2002 - MAMEDiff v1.12

- Added support for the PGM resource.

4 April 2002 - MAMEDiff v1.11

- Made internal 'fix-merging' logic check CRC as well as name.
- Increased maximum ROM name length to 20 (for neopong).
- Minor fix relating to ROM names that are too long.
- Exits gracefully when the maximum no of games/ROMs reached.

17 March 2002 - MAMEDiff v1.10

- Fixed bug with last version where standard compare refused to start (affected -v as well).

15 March 2002 - MAMEDiff v1.09

- Added the -t and -T options (brief description below).
- Made CRCs case insensitive.
- Minor fix to -v output.

- Explanation of the -t and -T options

- In addition to the -M, -S and -N options that produce CMPro dats of changed ZIPs, you can produce 'tiny' versions of the dats. This allows you to create a small supplementary dat for the new emulator that when added to the original set is 100% suitable for the new emulator (i.e. for emulators that support multiple ROM paths).

- Not only can these options be used when upgrading from one version of an emu to another but they can even be used when trying to use ROMs of one emulator with another (e.g. trying to use MAME ROMs with RAINE, Kawaks or Nebula). When used in this way you can use a standard MAME ROM set and a small emulator specific 'supplementary' ROM set for the emulator of your choice.

10 February 2002 - MAMEDiff v1.08

- Improved the -M, -S and -N options:
- The dats generated now include resource information so that CMPro can separate out Standard/Neo-Geo games etc.
- The non-merged dat now doesn't include 'merge' information in games where the parent isn't included in the dat.
- Modified source to compile easily with CygWin (and FreeBSD?).

7 May 2001 - MAMEDiff v1.07

- Minor fix: Removes unneeded 'romof' details with -S and -N.
- Now compiled with MinGW (just like the new Windows MAME).
- Can also be compiled with Microsoft Visual C++.

24 March 2001 - MAMEDiff v1.06

- Major: Added three new modes (-M, -S and -N) to show newly required ZIPs (generates a report and CMPro dat file).
- Minor: Now ignores RAINE and clrmamepro headers.
- Minor: Compiled with -Wall (fixed all warnings it uncovered).

11 March 2001 - MAMEDiff v1.05

- Tiny fix to exclude resources from the game and ROM totals.

31 December 2000 - MAMEDiff v1.04

- Increased game name length from 8 to 20 (for Modeler dat).
- Prefixes Neo-Geo titles with 'Neo-Geo' (so they stand out).
- ROMs added to parent set are also reported for clone too.
- Now spots merge changes at the same time as CRC compliment.
- Added '-c' option to assist with the maintenance of CAESAR.
- Included source, do not abuse!
- Internal change: max of 32 flags instead of 16 (int->long).
- Internal change: strcpy->strncpy to avoid memory problems.

28 July 2000 - MAMEDiff v1.03

- Added support for complimented CRCs.
- MAME v0.37 beta 5 convinced me to do it ;)

23 May 2000 - MAMEDiff v1.02

- Added support for MESS (just a minor modification)
- Added RAINE support too (since it was so easy)

24 April 2000 - MAMEDiff v1.01

- Released v1.01 of MameDiff to fix SIGSEGV crash in pure DOS. Didn't affect Windows users...

15 April 2000 - MAMEDiff v1.0

- Released version 1.0 of my new tool for MAME users.