cool little rom manipulation and management engine


Here you can download the latest version of clrmamepro.

clrmamepro 32bit 3.118a(zip) (1640kb)
clrmamepro 32bit 3.118a(exe) (1621kb)
clrmamepro 64bit 3.118a(zip) (2182kb)
clrmamepro 64bit 3.118a(exe) (1774kb)

Vista user note:

If you install cmpro to a protected folder like C:\program files\, you have to set the compatibility properties of cmpro.exe to 'run this program as administrator' to work correctly or you have to disable UAC. In other folders it should work fine without setting this property and without the need of disabling UAC.

Linux WINE/Mac Crossover user note:

If you got problems with the main window, set the option 'Adv_HideWindow = off' in cmpro.ini. In case you don't have a cmpro.ini yet, create one with the following two lines:
Adv_HideWindow = off

Windows 9x Users:

Update your OS!

What's new recently?


  • fixed: laserdisk chds are listed as unneeded
  • fixed: main window moves to the top from start to start
  • fixed: rebuilder advanced auto-memory checkbox doesn't use 1/2 physical available memory limit
  • fixed: "download all" operations can't be stopped


  • added: support for disc region tags in -listinfo format
  • fixed: rebuilder recompress option gets falsely accessible for 7z/rar after some toggle combinations
  • fixed: unneeded test for inverted crcs fails
  • fixed: crash during cache load when toggling 1G1R mode
  • fixed: 7z reader package fails on 7z filesizes ≥2GB<<4GB
  • fixed: ziparchive package fails on zip filesizes ≥2GB<4GB


  • misc: minor changes to chd regions layout
  • misc: compiled with VS2008 SP1
  • fixed: unneeded test for decompressed sets fails


  • added: support for CHD regions. Now you can disable/enable subsets of chds. For example you can disable lasterdisks but scan cd-roms, etc. You can enable/disable them in Scanner->Hash & Chd (formerly Checksums...) (at the moment this is only available in xml dats)
  • added: wordbyteswap operation to xml header syntax
  • added: new header defintions for n64 (thanks Cue)
  • fixed: setsubfolder support is broken


  • added: batcher scanner option: deep hash scan mode (sha1/md5/crc32)
  • misc: changed the max value for auto-memory functionality to 0 < n < min(max_*available*_physical_memory/2, 1GB)
  • misc: for name/hash clashes within a parent/clone relationshop you can now choose between: forcing split merge mode and removing parent/clone relationship.
  • misc: minor correction in dir2dat checkbox layout
  • fixed: ` in dats (used internally for setsubfolders) aren't replaced with "'"
  • fixed: 7z/rar adding/removing files fails for file starting with "-"
  • fixed: dats with "forcepacking modes = no" still create compressed files with fix missing


  • fixed: 7z/rar add files was broken for filenames with spaces in 3.116b


  • misc: nodump/gooddump clashes within parent/clone relationships can optionally get fixed during parser data clean run
  • misc: enabled editable labels in setinfo tree (also F2 works then)
  • misc: 7z/rar multi-file compress functions don't do multiple tool calls anymore but one with "*"
  • misc: redesigned compressor settings
  • misc: redesigned batcher
  • misc: removed usage of packer.ini, use compressor settings instead
  • misc: dat parser clean up routine detects roms within one set(!) with identical name but different hash value and lets you optionally rename one instance automatically
  • added: preliminary support for crc less roms (but with sha1/md5) several checks don't work yet but at least they get parsed
  • added: batcher option for rebuilder destination -> always use the 1st rompath
  • added: some missing tooltips


  • misc: bios sets with given romof tag aren't handled as biossets (aka MAME .126 sfz3ugd issue)


  • added: full 7z & rar support for scanner/merger/rebuilder (see docs/packer.txt for details)
  • added: dir2dat optionally remove extension from setname/description
  • fixed: can't close scan results window via [x] sometimes after a scan
  • fixed: wrong 'unneeded fake clone:' message when creating an empty chd subfolder for fake clones


  • fixed: 1G1R mode uses prefered name instead of standard name for sets
  • fixed: clearing cache resets profile color even when the dat hasn't changed
  • fixed: existing nodumps got scanned/checked even if 'ignore' mode is enabled


  • fixed: setinformation show setname doesn't show clone names correctly
  • fixed: sample-only sets appear as missing even when samples aren't scanned


  • added: NoIntro's 1G1R mode (related to the regions/languages modes from 3.114) This can be enabled in settings (for region/language dats only)
  • added: set information shows set description or optionally set name now
  • added: Rebuilder Beep() ;)
  • added: more support for sample-only sets
  • misc: set information tree is now sorted alphabetically after setdescription (not setname)
  • misc: renamed "Show All Missing" sets to "Hide Fully-Missing Sets" and inverted the behaviour
  • misc: sample parents which aren't listed (e.g. MAME's alphamc07) are added as sample-only sets
  • misc: settings import button is only available for rom/sample paths
  • misc: reading archives is done in an own thread
  • misc: hash calculators run calculation md5/crc/sha1 in parallel in 3 threads
  • misc: chd verifyer runs md5/sha1 calculation in parallel in 2 threads
  • misc: rebuilding with addpaths doesn't reopen progresswindows per addpath anymore ('minimize & forget')
  • misc: unneeded check detects sample-only sets in rompath and viceversa
  • fixed: very poor performance when background tasks exist running in IDLE mode
  • fixed: xml datfiles which may be parsable with a different engine.cfg aren't listed in the profiler
  • fixed: datfile's forcemerge mode didn't affect merger
  • fixed: addpath removes created empty rebuilder destination folder, so following addpaths fail
  • fixed: xml dats with size="-" are wrongly parsed


  • fixed: set selection crashes (also on profile load)
  • fixed: scanner checksum check was broken for unpacked sets
  • misc: missing required (not obsolete/ignored) nodumps will lead to a red profile


  • added: Logiqx's / NoIntro release/region/language support: Added support for release information in console datafiles. If the datafile contains release information, the user can specify their own region and language preferences. The region and language preferences influence the ZIP names used for merged ROMs. CMPro will choose the most appropriate ZIP names for the user, based on their region and language preferences. Thanks go to Logiqx for the algorithm. De-/Activating regions/languages can be done here: settins->combo box->regions/languages. You can also modify the order there.
  • added: scanner popupmenu explore -> to either explore/open the belonging rompath or the set itself
  • added: an ini entry to make f205v and Tauchy happy ;)
  • misc: moved old option 'decompress rom and test crc32' to compressor settings as decompress files to memory (that's what it actually is)
  • misc: new Scanner->Checksums->'decompress rom and test crc32' is now exactly what it says and it also checks against header and datfile crc32
  • misc: rebuilder auto-memory option default value is now disabled
  • misc: changed orientation of settings arrow buttons
  • misc: setinfo shows prefered name, changed arrow button orientation, default editbox is 'select sets'
  • fixed: resource-only dats in deprecated format and without header weren't loaded
  • fixed: -listinfo dat export misses a closing quote on romof tags with spaces
  • fixed: fuzzygamesearch scoring algorithm doesn't detect sets with more than one identical crc as wrong named


  • misc: reduced database memory footprint a bit
  • misc: reduced cache file size slightly
  • added: dat output format selection
  • fixed: xml header parser only accepted 'forcepacking' but not 'forcezipping'
  • fixed: bios-only dats can't be loaded
  • fixed: header element "email" had too many spaces
  • fixed: wrong "sharing issue" message for some chds
  • fixed: batchrun - min/max progress window in progress-only mode shows scannerwindow, too
  • fixed: batchrun - rebuilder progress window assertion when switching profiles
  • fixed: batchrun - pause value is only kept when hitting ok
  • fixed: batchrun - "for default setting use" is not initially set
  • fixed: batchrun - profiles get reset to 'not scanned' when using a rebuilder-only run
  • fixed: batchrun - profiler doesn't do a refresh when stopping batchrun during cache read or import


  • fixed: xml export shows a crc=0 for nodumps
  • fixed: www profile xml creator doesn't include xml dats
  • fixed: about window frame was wrong
  • misc: added dtd reference to xml header


  • misc: added another seeking step to find fixable missing roms
  • fixed: game tags manufacturer/year didn't follow the dtd rules when exporting
  • fixed: xml datfile detection randomly doesn't work in profiler


  • added: support for upcoming new xml datfile headers
  • added: support for 4 new datfile header fields (date, email, url, homepage)
  • added: support for new game/gamelist tags and cmpro's rebuildto/date tags
  • misc: all datexports now use the xml format
  • misc: engine.cfg's cachefile tag is obsolete. Every profile is cached now.
  • misc: setinfo also shows romof and rebuildto information
  • misc: rebuilder memory for no recompress is limited to 1/2 physical ram or 1GB max
  • misc: some WINE related updates for non modal progress window
  • fixed: /xml commandline parameter crashed when reading xml dats
  • fixed: removing parent/clone relationship didn't set romof tag correctly
  • fixed: red/green profile indicator is not reset when updating an exe based dat
  • fixed: rebuilder remove source can accidently remove an empty backup folder
  • fixed: scanner's automatic move to correct set failed in some cases

clrmamepro 3.111a

  • misc: sysinformation and system picker windows now got a cmpro icon
  • misc: 'checking unknown sets' dialog shows processed filename before working on it
  • misc: toggling a check box for scan tree update, autoscroll is disabled during update
  • misc: speed optimized "deeper check for fixable missing files"
  • fixed: wrong zipclass exception handling may cause crashes when working on corrupt zips
  • fixed: xml datfile check didn't use the engine.cfg replacement settings (mess import issue)

clrmamepro 3.111

Going 64bit...
  • misc: several internal 64bit updates
  • misc: 64bit clrmamepro exe available as separate download
  • misc: updated updateprogram to pick correct 32/64bit package
  • misc: updated to latest fully licensed ziparchive non-mfc version & new 64bit unrar dll
  • misc: remove-rebuilt-source files now works for all parts of a split-rar too
  • misc: more detailed parse error messages showing the last successfully parsed set
  • misc: some small internal preparations for upcoming new xml datheaders
  • fixed: negative windows positions lead to not visible windows
  • fixed: wrong parser error message when no setformat.xml is available
  • fixed: new rebuilder destination folder isn't removed when stopping at rebuilder warning prompts

clrmamepro 3.110a

  • fixed: crash when fixing size of a not compressed rom
  • misc: some minor internal changes on the window-fits-on-screen test

clrmamepro 3.110

  • misc: updated unrar.dll which fixes crashes with incomplete split rars
  • misc: updated have/miss list to handle fake clones, nodump-only sets correctly
  • misc: update dat dialog is now resizeable

clrmamepro 3.109c

  • fixed: dat export exports 'flags baddump' in a wrong way which get reloaded as crc 0xf
  • misc: main window can be put to 0/0
  • misc: profiler's create doesn't care anymore about exe sharing access issues
  • misc: minimum OS requirement is now W2k and higher

clrmamepro 3.109b

  • misc: first compile in new VS2008 environment with some minor code cleanup
  • misc: 0-byte rom files are not handled as nodumps anymore
  • misc: fix dat header includes xmlheader statements (if available in the original dat)
  • fixed: dat export failed for roms with a not specified crc32

clrmamepro 3.109a

  • misc: main button bar remembers focus
  • misc: set information -> 'unload' (set list) button added
  • misc: set information -> you can use '%h=1' in 'select sets' to select sets with chds
  • misc: set information -> you can use '%p=1' in 'select sets' to select sets with samples
  • misc: set information -> split 'mark parent/clones' to two separated checkboxes
  • misc: set information -> mark parent/clones checkboxes also affect loading of set lists
  • misc: don't show warning for clones where all not-parent roms are nodumps
  • misc: introducing datfile header switch "forcenodump" which can be 'obsolete', 'ignore' and 'required': obsolete = default (nodumps are marked as unneeded, missing ones are not shown); ignore = existing nodumps are not marked as unneeded, missing ones are ignored; required = existing nodumps are not marked as unneeded, missing ones are shown
  • misc: dir2dat->nodump header options available
  • misc: allowing empty set definitions (theoretically this allows using of pseudo parents)

clrmamepro 3.109

  • fixed: a chd can get wrongly parent/clone assigned when parent set got > 1 chds
  • fixed: rare wrong "Can't remove files from..." message
  • misc: added warning when a MoveFile operation fails
  • misc: warnings window's clear option also re-hides the window
  • removed: nodump handling controls

clrmamepro 3.108b

  • misc: removing parent/clone relationships for sets which got nodump roms in one and valid dumps (for the same roms) in a clone/parent set. Prevents from overwriting each other when merging.
  • fixed: showing wrong (clone) color for removed parent/clone relationship sets in setinformation tree
  • fixed: memory leak when leaving with "The program is already running!" message
  • fixed: rare crash in system->auto detect sysdef paths

clrmamepro 3.108a

  • misc: nodump handling is now locked to 'hide missing', disabled 'create missing' and enabled 'mark no dumps as unneeded'.

clrmamepro 3.108

  • added: split rar support ("remove rebuilt source files" removes only first part though")

clrmamepro 3.107b

  • fixed: biosset assignment routine assigned some wrong biossets (CVS) in MAME .121u3.

clrmamepro 3.107a

  • misc: systems and setinfo window got max/min boxes
  • misc: memory usage for no recompress is limited to max 1GB (also in auto mode)
  • misc: settings->unneeded masks can be added by drag'n drop
  • misc: updated unrar.dll
  • fixed: search folder for crc32 was partially broken
  • fixed: about drag'n drop size information was wrong for files (not archives)

clrmamepro 3.107

  • misc: changed WindowToFront method which doesn't falsely stick the window as topmost sometimes
  • misc: showing warning about crc32= 1/-1
  • misc: removed a typo in dir2dat tooltip
  • misc: added a n64 header xml description (thanks Cue)
  • misc: www profiler xml creator allows optional subfolder scanning
  • misc: Linux WINE/Mac Crossover users: adding a cmpro.ini setting "Adv_HideWindow = off" helps you when you got issues with the showing/hiding of the 6 button bar

clrmamepro 3.106c

  • fixed: fullmerged 'create missing nodump' sometimes selected clone folder

clrmamepro 3.106b

  • fixed: fix-missing-rom for full merged sets didn't work correctly
  • fixed: uncompressed clones scan was broken

clrmamepro 3.106a

  • misc: several updates to the window rendering system (incl. not stealing focus correct minimizing, warnings window only shows issues, etc.)
  • misc: allowing not existent sampleparents (invaders)

clrmamepro 3.106

  • misc: Linux WINE: changed systime convertion to work flawlessly (www profiler)
  • misc: Linux WINE: launch button bar isn't hidden anymore (but minimized). This increases compatibility and even fixes some MS Windows issues.
  • misc: Linux WINE: changed warnings window. It will now automatically appear if something appears in it. You can still minimize it then.
  • misc: several windows correctly appear at the front now.
  • misc: treectrl and listctrl bitmaps are now 24bit and different
  • misc: F2 (edit label) functionality to several list and tree controls
  • misc: listing corrupt containes (corrupt chds, zips...) in the stats
  • misc: disabled "Possible missing alternative samples folder" in the database checker MAME doesn't load samples from a parentset when no sampleof tag is given. In consequence you may need some more samplesets for MAME now.


Here you can download the latest version of ZipMax. It's not being developed anymore.

ZipMax 0.51
ZipMax 0.51 sourcecode

Read the how2compile.txt & copyright.txt before compiling zipmax. Both files are available in the archive.

You may need 7zip's zip program to use it. Here you can also download Ben Jos Walbeehm's Tools: