cool little rom manipulation and management engine


Here you can download the latest version of clrmamepro.

clrmamepro 32bit 4.021a(zip) (2648kb)
clrmamepro 32bit 4.021a(exe) (1966kb)
clrmamepro 64bit 4.021a(zip) (3140kb)
clrmamepro 64bit 4.021a(exe) (2259kb)

Vista/Windows7/8/10 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: nspirit nodump hashcollision issue which was a sideeffect of the 4.020 hashcollision fix


  • fixed: possible crash with corrupt settings file
  • fixed: rare issue where a sample parent set with no samples for its own and multi-softwarelist support is marked as unneeded
  • fixed: possible crash on cmpro start on read-only device or full device
  • fixed: structural issues and possible crash when using dats with releases and run into double name issues
  • fixed: double name check when using releases
  • fixed: some dialogs don't use "MS Sans Serif" as font...
  • fixed: adjusted some warning messages to use [SOFT] instead of [LIST]
  • fixed: setinformation "hide parent" does not work for listed disks
  • fixed: unpacked set with chds can be falsely detected as misplaced
  • fixed: rare typo based bug in checking unneeded sets/chds
  • fixed: hashcollision sets with nodumps can create circular fix-unneeded/fix-missing scenarios
  • misc: better unneeded detection of chds within an identical setnames relation (softwarelists/Non-Software List)
  • misc: better wrong sysdefpath detection of chds within an identical setnames relation (softwarelists/Non-Software List)
  • added: automatically detect mame and mess as xml root elements
  • added: supporting biossets with samples (and sampleof) elements


  • misc: using "engine" and "game" elements as defaults which allow loading of new MAME binaries and dats without modifying engine.cfg
  • fixed: game name check might produce a wrong warning for full merged chd sets where the parent does not have chds
  • fixed: sampleclones check for sample-only sets fails and reports missing sets


  • fixed: official 7z bug which causes a crash when a fake 7z archive file is being processed
  • fixed: rebuilding bios files in hash collide full merge mode creates dupes (this also affects dat export)
  • fixed: wrong statistics "wrong named chd count"


  • added: support for biossets with chds
  • fixed: obsolete missing game message for sample-only sets in multi-software list mode
  • fixed: deprecated dat export exports biossets as resource and game
  • misc: updated to latest rar (5.21) and 7z sdk (9.38)


    So what will change if you scan your MAME set with the new cmpro version: - unmerged sets: (you don't use this for MAME, do you...), nothing changes... - split merged sets: you will see some wrong placed roms now since clrmame did not kill parent/clone relationships - full merged sets: you will see several wrong named roms (due to hash collisions)
  • misc: Changed the way how hash collisions are handled. A hash collision happens when you got identically named files with different hashes within a parent/clone relationship. In the past cmpro either removed the parent/clone relationship completely or you were forced to split merged mode. Now, in case of a hash collision *and* only if switch to full merged sets (scanner, rebuilder or merger), the rom names of the clones will be switched to a naming convention which you can select. Default is setname\romname. You can select the naming in profiler options 'Naming pattern'. A flyover tells you which variables you can use there. %1 (plus something else) is mandatory here. Again, only if full merged mode and hash collisions are active. You also got an option there to say how many files get renamed. Either only the single hash collision clone file, or all files in this clone set or all clone files in all clones of this parent clone relationship.
  • added: added option (Settings screen) to allow a full merge mode which ALWAYS stores parent/clones the way described above, no matter if a hash collision is there or not. This is the "hash collision name" mode. If you're using this, the upper mentioned selection of files which get renamed is obsolete. In this mode all clone files in the parent clone relationship are renamed.
  • added: batcher rebuilder option "never compress files" which allows you to create unpacked sets
  • removed: "Possible wrong nodump definition found" cleanup step prompt. It's actually a special case of hash collision and so it's handled the same way as other collisions.
  • misc: some intern changes so that you got theoretically 32k path length support (Hello Tosec..) If you need such long paths, you need to add "\\?\" in front of your rom/sample/add/rebuilder source/destination/etc paths.. So for example: \\?\E:\temp\this is a long folder name right or wrong blabalbalblablablablabalabl\
  • misc: updated to latest unrar dlls
  • misc: merger works with subfolders
  • misc: "double roms detector" during parsing handles weird merge tag combinations better
  • misc: "double setname" is also performed when you're using "release" elements and switch modes
  • fixed: belongs_to_parent check fails on 0-byte files
  • fixed: weird messages when you enable the clone but disable its parent in full merged mode
  • fixed: remove obsolete wrong merging or missing set messages (which normally get removed in 2nd scan)
  • fixed: adding sampleonly sets may cause issues when you got softwarelist which share the setname


  • fixed: corrected handling of sets with only bios roms and sample clone (MAME 154 gp110 sets)
  • fixed: dir2dat not always writes cr/lf as line delimiter (deprecated format only)
  • fixed: rebuilder log shows no reason for already rebuilt files
  • fixed: rebuilder shows warning when rebuilding uncompressed file which already exists in destination
  • fixed: rebuilder recreates files (when not needed) when you use chds files as roms
  • fixed: crash when redrawing scan results (some rare circumstances)
  • misc: optimized general hash calculation / file read routine
  • misc: removed crc=-1 / 1 suspicious checksum check
  • misc: changed nes header file to be a bit less strict
  • misc: updated to latest ziparchive class lib, unrar dll
  • misc: parse rom merge tags enabled by default (on clean install)


  • fixed: not initialized variable causes 7z decompress warnings in Windows 8.1 (64bit only)


  • fixed: accidently reintroduced 7z case fix issue when using 7z exe's rename operation


  • misc: switched to 7z CPP SDK core now. Unpack operations and hash calculations are now done blockwise. So you should not run into memory issues with huge 7z files anymore.
  • misc: reenabled detection of unneeded folders within rar/7z files with safe handling on delete
  • fixed: no more possible double file creations when using external packer's rename command
  • fixed: possible assertion when not using external packer's rename command
  • misc: updated unrar dll


  • fixed: unneeded samples can cause crash
  • fixed: rebuilder fails on filenames containing special character '`' which is internally used
  • fixed: crash on illegal 7z file dates
  • fixed: case fix for rar/7z without using their rename operations removes file and leads to crash
  • misc: updated to latest unrar dll
  • misc: updated to latest ziparchive class


  • fixed: rar processing freezes when handling multi volume rars
  • fixed: rar deletion failed due to some other multi volume handling (dll update)
  • misc: changed default operation for "Edit Datfile..." from ShellExecute "edit" to "open"


  • added: profiler tree option "Profile List Includes All Subfolder Entries" which shows you profiles on the selected plus all sublevels
  • added: cmpro.ini option "Adv_MinimizeCHDMan = on" to keep chdman windows minimized (not hidden)
  • misc: updated unrar.dll with the release of winrar5
  • fixed: zero padding in offlineList xml parser was not working correctly
  • fixed: little memleak when you drag'n drop profiles in profiler
  • misc: changed rar/7z rename operations a bit to made them more safe against possible external packer failures
  • misc: minor changes to disk name checks to avoid rare issues with identical hashes but different names within a parent/clone relationship (in full merge mode)


  • misc: supporting multiple device_ref entries (removed %i from rebuilder poststring variables though)
  • misc: replaced 7z case fix with exe rename when possible
  • misc: disabled obsolete archive folder check for external packers (since they might remove the folder and entries)


  • added: profiler column timestamp when dat was added
  • misc: removed some visual effects (useful if you're using dark themes)
  • misc: updated to latest ziparchive library
  • misc: rebuilder log shows more info for 'Exists' and 'Skipped'
  • fixed: runtime error with 0 sized packed files and header support
  • fixed: software lists of a previous loaded datfile stay when no xml datfile is loaded afterwards
  • fixed: batchrun uses previous scan data sometimes incorrectly
  • fixed: rebuilder destprestring function does not pick clone or bios set when file belongs to them only (issues with e.g. %a)
  • fixed: 7z/rar removal of unneeded files in archive subfolders does not work
  • fixed: chds and samples with extensions loose extensions
  • fixed: xml file header parser can (by mistake) detect a mess -listxml output as a mess software list output
  • fixed: xml parser crash when xml file is wrongly detected as mess software list ouput (above)


  • fixed: 7z working with filenames starting with an "@" fails if the filename also contains a space
  • fixed: header support: possible infinite loop when file is too short
  • fixed: header support: wrong hash calculation (in file and memfile) when file is too short
  • fixed: detection of prefered archive type falsely failed for unpacked sets causing creation of zips
  • misc: unneeded check also detects obsolete chd folders
  • misc: explicity test folder for no entries to avoid possible deletion of NTFS junctions
  • misc: check if file really exist in 7z/rar archives before trying to remove them. Gives a small speed gain


  • misc: take over a set bad dump chd status flag for all parent/clone instances of that chd


  • fixed: rename profiles (which are based on a xml dat) corrupts xml structure
  • fixed: fix missing doesn't look into parent set in rompaths in full merge mode it might oversee missing but fixable roms
  • misc: changed size of compressor settings window


  • added: parsing of driver status flag (good|imperfect|preliminary), %D can be used for set selection
  • misc: some minor optimization for fix missing if one and the same checksum reappears in the same set
  • fixed: 7z utf8 name reading was broken since switch to sdk 9.22 in 4.08 (used local code page instead)
  • fixed: wrong "wrong placed" / "unneeded" prompt when there are softwarelist/non-softwarelist chd clashes
  • fixed: wrong prompt for possible rompath addition for disabled sysdefpaths standard/device/mechanical


  • misc: test if 7z/rar rename operation is available, otherwise it will be disabled automatically. You need to enabled it manually (if supported by 7z)...I may change that to auto-enable in the future.
  • fixed: rare obsolete missing but fixable chd message for sets without roms
  • fixed: workaround for 7z.exe no-file-in-archive corruption (e.g. after removing all files from it you were not able to add new files to it)


  • added: batcher rebuilder and scanner merge mode overwrites
  • added: supporting rar and 7z binaries rename operation. However your packer version needs to support it. For 7z, the latest alpha does. If your version does not, you can uncheck the option in settings compressor 7z and/or rar.
  • misc: updated to 7z sdk 9.22 for reading and unpacking 7z archives (e.g. supports LZMA2)
  • fixed: wrong unneeded files message in samples folder if you're using software lists
  • fixed: rare obsolete missing but fixable chd message based on rompath ordering
  • fixed: decompressed samples in non wav format causes wrong prompts


  • fixed: wrong sysdefpath prompt reappears even if you press yes-to-all
  • fixed: wrong sysdefpath is listed in scan results tree even if it was fixed
  • 4.07

    • added: chdman settings option to ignore warning for BADDUMP chds
    • added: rebuilder advanced option to list matched chds (so that's a first step towards chds rebuilding)
    • misc: dummy clones/fake clone (100% identical sets) detection now takes chds into account
    • misc: show prompt for fixing wrong sysdefpath issues
    • misc: ignoring chds in matchgame function for some speedup here and there
    • misc: updated rar dll
    • fixed: crash when using setinformation->show enabled
    • fixed: create rompaths for sysdefpaths can rarely create an empty path which will then be "current path"
    • fixed: wrong sysdefpath issue output was sometimes missing when chds and roms didn't share the same path
    • fixed: sysdefpath auto-rompath creation didn't ask for standard/mechanical/devices


    • misc: reset profile to not scanned in case scan was skipped
    • misc: changed the error message for .7z files which aren't 7z archives
    • misc: made the three settings/compressor/general options list archive files with comments, +rsh, double names global options. You need to reset them if you used them before
    • misc: download failure messages are shown in the warnings window instead of a prompt
    • misc: show file and rom names in progress dialog for rom uneeded check/rom if set is not compressed
    • misc: general speed up for fix-missing decompressed files
    • added: CMPro_TempFolder and CMPro_TempFolder_Clean settings to cmpro.ini to let you select the cmpro folder and optionally clean it on startup. Default value is the cmpro temp folder and data gets initially removed. You need to start/quit cmpro once to see this setting
    • added: logging warnings window entries to cmpro.log (cleared on startup)
    • added: set information boxes to include devices and/or bios automatically
    • fixed: chdman verify check fails for rompaths with spaces
    • fixed: newly created exe profiles can falsely takeover system default settings from loaded profile
    • fixed: chdversion check for merged sets can hide the result
    • fixed: xml parser failure when hitting an ending and starting xml comment in one line
    • fixed: falsely show full set as missing in case of removing unneeded files from decompressed sets


    • added: profiler options option to prompt for software lists import during MAME/MESS import
    • added: chdman settings option to optionally show version mismatches during scan
    • misc: auto expand not fixed items in tree control
    • misc: improved scanner matching for identical named sets / softwarelists (with BIOS roms)
    • misc: updated to latest ziparchive lib
    • misc: updated to latest unrar lib
    • misc: scanner adv option to remove not renamed sets to backup now also applies to roms
    • misc: removed border from tree scan output (minor cosmetics)
    • fixed: warning about missing sysdefpaths rarely shows only "..." instead of list
    • fixed: batch rebuilding doesn't care about forcepacking attributes in dats


    • fixed: scanner crash when using "mark disabled sets as unneeded"
    • fixed: lib assertion when removing files from zip with double listed indexes
    • fixed: cmpro crashes within uneeded scan when you let it add rompaths for not existing systems
    • fixed: rebuilder does not rebuild software lists when they got identical files in non-softlists
    • fixed: old deprecated dat format is broken
    • fixed: identical set names can fool cmpro's set check (MAME software lists)
    • fixed: zip rename can rarely create double entries (you may now run into some not-fixed renames in such cases)
    • fixed: system's unbind all only fully works after restart
    • misc: added workaround for a possible MAME/MESS -listsoftware specific output error which leads to wrong rom sizes
    • misc: slightly changed the text for the softwarelist import prompt and system auto detect button
    • misc: changed the way how active systems are read from config


    • fixed: 7z crash for archives which don't use date/time stamps (t7z)
    • fixed: incorrect removal of sampleof assignements starting with .145u1


    • added: multi SoftwareList support; see below for details
    • !!! when importing MAME, you're asked if you want to import software lists since even MAME got some. If you're not familar with it, don't import them !!!

    • added: chd version 5 support
    • removed internal chd decompress/verify process. Deep validation is now done directly by calling chdman. For this, you need to go to Settings->Compressor->ChdMan and setup the path (if not included in %PATH% env variable already) for chdman. Also the default validation command needs to be entered. Default is given for latest chdman which comes with 145u1. !!! Older versions require -verify %1, the current one verify -i %1 !!! During validation you see the chdman console window, so you can see the progress. Removed option for read sector map and show bad metadata. Cmpro now only reads the various headers and checks the sha1/md5 there. Also I've added an option in the chdman dialog to select your prefered chd version. If found chds don't match, you will get a warning during scanning. This replaces the old upgrage/downgrade messages. !!! The current default value here is 5. You should set this to 4 if you did not update yet !!!

    • added: samples extensions wav, flac, ape and sam are supported
    • added: profiler context menu option to clean cache for single profiles/folders
    • misc: show warning if sysdefpaths aren't rompaths plus option to auto add them
    • misc: don't warn about not active sysdefpaths when no path is assigned
    • misc: setinfo shows standard/mechanical/device/etc in separate branches
    • misc: systems dialog list standard/device/etc with new captions
    • misc: improved fuzzy name check in case of double checksums
    • misc: some general packer handling for empty filenames in archives
    • misc: some more descriptive rar error messages
    • misc: removed warning if rompath names match setnames
    • added: compressor / general option to warn about identical names in archives
    • fixed: crash on 7z entries with no filename
    • fixed: possible memleak on illegal 7z file timestamps
    • fixed: wrong progress title & cancel handling when auto-moving to sysdefpaths

    • Multi-SoftwareList support: This version brings you multi-software list support, i.e. multiple software lists within one xml will be read (single software lists are also supported of course, no matter if they are standalone or with outer ). Multi software lists are handled like this:

      • all sets (no matter if they got identical names) are added to the current games list
      • for each software list, a new system (system picker dialog) is added
      • you have to assign unique sysdefpaths to such new 'systems'
      • profile is named after the 1st and last software list (in case of an exe import, the profile is named after the exe profile description)
      • fix dats export all missing files
      • datfile export (setinfo window) does NOT export software list roms
      • setinfo window's select-sets edit box got a new variable (%l) to pick roms from a given list
      • scanner output of a missing set additionally lists the software list (can be enabled/disabled via context menu view)
      EXE improvements:
      • in case of an exe -listxml output (like MAME/MESS) you're asked if you want to include found software list. You see a list of available ones and can select none, some or all. In case of some, your selection will be remembered for a possible future update of MESS/MAME
      • in case of 'all', the exe is run once again with -listsoftware
      • in case you picked some, cmpro runs "-listsoftware softwarelistname"
      Keep in mind that you can drag'n drop rompaths in the settings folder for a quick way to add all your software lists paths. Then you can use the auto assign option in systems to setup the belonging sysdefpaths. You can of course still use singe software list profiles if handling via sysdefpaths is too complex for you.


    • removed: scanner advanced option: check for dupes (it's enabled by default now)
    • removed: scanner advanced option: use optimized rompath scan (it's enabled by default now)
    • added: scanner info line besides setinformation button to indicate not enabled sets/systems/chd regions
    • added: unbind all button for system picker window
    • misc: optimized time needed for sysdefpath autodetection (roughly 10x faster)
    • misc: changed file attribute routines to win32 api to avoid assertions on illegal dates
    • fixed: system picker's last entries can't be edited
    • fixed: deprecated dat loader did not force utf8 encoding


    • added: Font selector (popupmenu->View->Select Font) for scanner tree and setinfo tree/list
    • added: profiler option to support inverted crc32 for baddumps method (default = off)
    • fixed: missing device path/system initialization randomly keeps devices unchecked
    • fixed: circular renames inside zips don't work
    • fixed: saving/loading of standard/mech/device path clones names when only 1 is setup
    • misc: limit list of not setup sysdefpaths to avoid too big prompt
    • misc: don't allow profiler reset on exe based dat
    • removed: setinformation title flyover (obsolete and flickers)


    • fixed: rebuilder ignored 'recompress'
    • fixed: compress to rar/7z created zip files
    • fixed: little typo in systems dialog
    • fixed: stats are not kept correctly over sessions (empty stats window)
    • fixed: biossets with set romof are not handled as biossets (sys1 with soundboard)
    • misc: don't write utf8 BOM for old-style dats


    • fixed: crash in filedialog of "add Profile"
    • misc: smarter is-bios-rom check if bios definitions hold identical checksums
    • misc: fixed homepage and forum link in installer


    • misc: full unicode build
    • misc: full support for UTF8 characters in file/folder names, files within archives (7z/rar/zip) and datfiles (XML and old format) The default encoding of xml datfiles is UTF8. The default storing method in archives is UTF8 (for zip, with no extra field usage). Current versions of Winrar, Winzip, 7z (just to name a few) support UF8 stored names. There might be other 3rd party tools (which some people use to rezip/share :)) which might fail (they only work with local page encoding). Tough luck... All textfiles in the clrmamepro environment are now saved as UTF8. You can use your old setup, since it loads them in ASCII and saves them as UTF8. XML files are stored without a BOM (byte ordered mark), non-xml files with a BOM. You should not use newly written files with old versions of clrmamepro. I recommend a good texteditor to work with UF8 datfiles, e.g. notepad++, available here
    • misc: completely switched to latest ziparchive library for all zip related operations. This includes reading, in-place renaming and no-recompress copy. This results in a faster rebuilder (no recompress) and faster rename operations (scanner). Actual scanning speed is roughly the same.
    • added: devices support, devices and device_ref elements are parsed, exported, an own system default path for devices can be added, select sets supports filtering by devices and device_refs
    • removed: included doucmentation, switching to online pdf docs soon
    • removed: Settings->Compressor->Zip, obsolete due to ziparchive usage
    • removed: Settings->Compressor->Oem/Ansi conversion, obsolete due to UTF8 switch
    • removed: Scanner->Advanced-> detect sets in wrong sysdefpaths; move sets to correct sysdefpath; chd use sysdefault assignments; use sysdefault paths for fix missing; Such options are automatically enabled internally now if sysdefpaths are setup. The first two ones require an unneeded check+fix though.
    • misc: aligned "allow not separated bios sets" & "split bios sets"
    • misc: directly jump to profiler or settings instead of prompting
    • fixed: xml parser doesn't handle multiple comments on the same line correctly
    • fixed: dat resource tag export for non-xml datfiles is broken


    • added: missing but fixable chds can get fixed automatically by fix-missing
    • added: append option for rebuilder log
    • misc: redisplay dir2dat window after dat completion to avoid minimizing issues
    • misc: dat export will only export active sets
    • misc: added trimming for subfolder rom/etc defintions


    • added: batcher rebuild options for always compress / never recompress and packer type
    • misc: updated winrar dll
    • fixed: cleaning parsed data always uses yes to nodump replacement
    • fixed: crash bug when removing full archives from sample paths


    • fixed: removed trimming of xml attribute values for now since it disallows whitespace separators for export lists


    • fixed: 7z add/remove fails for files starting with @
    • fixed: scanner popup menu functions to delete/move incomplete/notfixed sets got rare issues when deleting files
    • fixed: removed very old chd extension workaround which causes issues now with chds with "."
    • fixed: xml parser misses attribute name/value trimming


    • added: import/export of upcoming MAME flag "ismechanical"
      setinformation's 'Select Sets' supports variable %M=1 to mark mechanicals
      Split system default path "Standard" into "Standard" and "Mechanical", ie you
      can split mechanical sets in an own path. Note, if a mechanical set is also using a bios
      the belonging bios path is used since that binding got a higher priority
    • added: scanner advance option to keep disabled sets as unneeded (instead of ignoring them)
    • misc: changed a bit the show missing behaviour of sets which only consist of nodumps and samples
    • misc: correct handling of not possible profile renaming of hyperspin/offline/software list dats
    • misc: for now, stop parsing dats if 1st closed main element is found
    • misc: supporting chds in mess software lists


    • misc: support of parsing rom size entries in hexformat (0x...)


    • fixed: rare external packer file not found prompt issue
    • fixed: removing more than one file via external packers fails
    • fixed: several www profiler issues fix:
      - does not load compressed xmls when generated via php
      - wrong sorting after download
      - popupmenu "refresh datfiles from" does not work correctly
      - not always remembering selected tree/list item after refresh
    • added: www profiler shows author as column
    • misc: changed progress window and button bar design
      Thanks to Alex Schuetz for the artwork.
    • misc: updated unrar dll
    • misc: changed tempfolder failure text to uac warning


    • misc: slightly optimized rebuilding speed of decompressed files by using MoveFile instead of CopyFile if possible
    • misc: slightly optimized scanning speed of decompressed sets by using hash caches
    • misc: manufacturer tag isn't mandatory anymore in dtd and won't appear in export if empty
    • misc: show prompt if external packers are not available
    • fixed: profiler loading issues when having mess and mame xmls handy and defining mess dats in engine.cfg
    • fixed: utf boms (byte order marks) let the dat detection fail


    • fixed: dupes check was still broken


    • fixed: rare wrong "no or corrupt chd header/sectormap" message
    • fixed: wrong dupe check when clones does have chd(s) while parent doesn't
    • fixed: wrong "wrong case" message when using the move set to correct sysdefpath option


    • fixed: wrong warning about bios storage method in rebuilder when no bios sets are available
    • fixed: wrong "error while reading" warning during scan
    • misc: double setnames/descriptions are now renamed in any case during parsing dat


    • added: adv scanner option to automatically move sets in wrong sysdefpaths
    • added: chd checksum option to read chd sector map
    • misc: don't rebuild cache if newly created dats/exes are identical to others
    • misc: added *.xml filemask to setinfo export
    • misc: improved dupes scan to find double chd folders
    • misc: new option for rename wizard to not rename replaced sets
    • misc: some text changes here and there incl. copy/move prompts
    • misc: added warning to rebuilder if bios storing methods between scanner/rebuilder differ
    • fixed: miss/have lists handle sample-only sets
    • fixed: "version not found issue" for 64 bit versions
    • fixed: merger ignored sets with chds
    • fixed: chd folders in full merged modes can rarely create missing rom messages
    • fixed: set stats count for bios only + chd sets


    • misc: changed xml dat detection to be faster for known doctypes
    • misc: hide warning about not exisiting folders during batch run
    • fixed: one errormessage names addpaths while rompaths are affected
    • fixed: progress window doesn't blank out lines when it should do
    • fixed: chd only sets with wrong placed chds need a 2 pass scan to appear correctly


    • fixed: completely replaced sets are listed without missing set tag in a 1st scan
    • fixed: www profiler error for urls with ?
    • fixed: rebuilding archives-in-archives works only for the first file
    • fixed: rebuilding archives-in-archives doesn't work for subfolders in archives


    • added: support mess software list's loadflag continue and ignore flags
    • added: show rebuilder warning if rebuilt file can't be removed (when wanted)
    • fixed: fixed wrong named sets falsely need a 2 pass scan to get displayed correctly
    • fixed: chd-on-root level was broken for romless sets
    • fixed: replacing an xml dat does not reset the profile status
    • fixed: profiler.xml stats values are wrong (32bit version only)


    • added: support for mess software lists (either as hash/*.xml file or via -listsoftware output)
    • misc: don't show archive errors for no entries in rar part files (partxx.rar format only)
    • misc: 64bit version uses version64.ini and version.ini as fallback
    • misc: slight speedup for several routines
    • misc: showing chd region count in title when not enabling all
    • misc: trim filenames in dats and remove "." from end of folders and files in datfile
    • fixed: wrong "illegal download" message on clean install
    • fixed: rare wrong named chd stats count


    • fixed: crash at the end of a scan when not all sets are enabled


    • added: introducing 'DIFF SCAN'. A new scan functionality which knows which sets did change from a previous datfile to the current one and with this option you will only scan the sets which did change. 'Change' in terms of important changes which makes a rescan necessary (e.g. a checksum or rom name change, NOT a description change). When e.g. MAME updates, 99% of all sets stay the same, there is not really a need to rescan them (unless you changed them manually). You can now use the diff scan option. It's only selectable if at least one set differs and not all do differ. This function is robust against cache-clearing. In the set information window you can use the popup menu in the tree to show only the changed sets if you're interested in them.
    • added: archives in archives ( archives...) are supported now for the rebuilder. Removing rebuilt files is limited to the root level though.
    • added: writing profiler.xml file when you leave cmpro, you can use this xml for any of your own xslt/html building usage
    • misc: updated unrar dlls
    • misc: disabled systems are shown in title line set count and stats
    • misc: renamed rebuilder logfile reason for skipped files
    • misc: standard listinfo and xml dats don't necessarily require a description tag. In this case, the setname is used as description, too.
    • fixed: some line limit detection fixes on xml dat parser (MESS > .137 issue)
    • fixed: some wrong stats when using fastscan
    • fixed: wrong warning about a not recommmended scan appears rarely for fastscan
    • fixed: forgot to remove old cache files after dat update


    • added: support for utf-8 encoding in xml datfiles
    • misc: agent name for http/ftp is now set to "cmpro"
    • fixed: www profiler can't load from php generated urls with ?
    • fixed: archive comments warning is still broken for rar files
    • fixed: wrong illegal download folder message on clean install
    • fixed: explore menu option opens an explorer path for not game specific warnings
    • fixed: www open popmenu option shows romname in url only in the 2nd try onwards


    • fixed: missing bytes column falsely appears in www profiler
    • fixed: archive comments warning is broken for rar files


    • added: basic support for HyperSpin dat files
    • added: optional warning about archives (zip/rar) with comments (compressor settings)
    • added: missing/available bytes display in profiler and html report
    • added: rebuilder advance option to not create set folder when rebuilding to decompressed sets
    • misc: changed renamewizard keep parent behaviour to "if the old set was a parent and is renamed to a non-parent in the new dat, you can use the option to allow this or not."
    • misc: show prompt after renamewizard modified a dat
    • misc: changed windows rect calculation which may solves weird border issue
    • misc: some minor code cleanup here and there
    • fixed: show wrong setname in download popupmenu
    • fixed: don't mark profile as green when a sysdefpath not assigned message pops up
    • fixed: separated biosfiles are wrongly counted as missing in fully missing sets


    • fixed: rename wizard's 'keep parent' option isn't working


    • fixed: header support reported bad hashes when using the decompress and calc sha1/md5/full crc tests
    • fixed: rename wizard column sorting gets broken after using "Apply Changes"
    • fixed: merger shows merge options even when no parent/clone relationships are available


    More on rename wizard:
    • changed analysis to 5-pass: 1) unique set hash 2) single unique rom hash match 3) single unique chd hash match 4) description match 5) setname match
    • detecting removed, added and replaced sets
    • new layout, list control, sortable columns
    • acess via Profiler Button
    • keeping positions and options
    • added option for enable/disable parent rename
    • added option for enable/disable rename to multiple new name
    • detecting new, removed and replaced sets
    • export to clipboard, file and file (mamediff format)
    • diff button only reparses files if needed
    • ability to apply renames to a 3rd datfile (e.g. an artwork datfile). You can select 'apply on sets' or 'apply on roms' method. 'Apply On Sets' renames set name (description, year, manufacturer, romof, cloneof, sourcefile tags optionally), while 'Apply on Roms' renames rom name, rom merge tags. In case of roms, it checks the names with and without extensions, so you can easily have them as e.g. *.png. This 'Apply' option will only do the renames. Removed, added, replaced sets are not handled. Usage example: Enter paths to a MAME .133 datfile as old and MAME .133u3 datfile as new. Hit 'diff' and see what the load a MAME flyersdatfile for .133 as 'Modify DatFile'. Enable 'Apply On Roms' and hit 'Apply Renames'. It will create you a *_new.dat with the updated roms.


    • rename wizard: - improved fuzzy name compare - don't allow identical new names, the one with the best method wins
    • misc: don't replace illegal chars in description tags until you use it for writing
    • misc: reapplying setinformation options "incl.clones/parents" on profile load, this can be useful if you limit sets with "available sets" (and the parent/clone options) to auto-enable some renamed sets on dat update. However you still should recheck the limit sets after an update since limiting sets is not robust against massive renames.
    • misc: improved chd decompress and check hash routines slighly
    • fixed: checkbox init of scanner->Hash&CHD->CHD MD5/SHA1 is not always correct
    • fixed: header support getRealSize was still broken


      a somehow "in between" release. Since I'm currently preparing a house move I better release what I got at the moment....

    • added:
      1st part of the upcoming new toy "Rename Wizard".
      You may know about the major set renames in latest MAME, well the Rename Wizard should help you in the future to update e.g. related datfiles (like artwork datfiles, etc...). The basic idea is: Load an old datfile and a new datfile. Find set renames. Apply the renames to a third datfile (e.g. artwork) either to rom or set level and save this dat. So the 1st step is to find set renames.
      Logiqx's MAMEDIFF is usually used for such a thing but MAMEDIFF isn't as accurate as you might think. So Logiqx and myself though about other ways to find renames. The current idea is a 6-path check (from highest to lowest prio).

      1) unique set hash compare: Hash is created over all rom/disk hashes and in case of nodumps or samples over names. Hash lookup tries to find a matching set.
      2) single unique rom hash compare: Take a single unique rom hash of old datfile set and check if it's a single unique hash in new datfile. Use this to find a matching set
      3) single unique chd hash compare: similar to 2) but on chds
      4) fuzzy name check: similar to cmpro's scanner set name check. Tries to find the 'best fit' name
      5) lazy description compare: try to match the descriptions
      6) lazy set compare: try to match the setname

      Currently a complete set list is produced showing something like:
      old name -> new name [succeeded matching method] or *old name -> new name [succeeded matching method] or old name -> ? (when no match was found....propably a removed set) The * indicates a name change.

      This part is already can play around with it if you like.
      The next steps will be:
      - optionally disallow parent-to-clone renames (since a lot of dats work on parent sets only)
      - load and apply changes on 3rd datfile
      The Rename Wizard is not directly visible at the moment...but still easy to find. Check out popup menus if you want to know more ABOUT it.
    • added: warning when 'Sets' scan option is not enabled
    • added: dir2dat option to create a 0 byte file for empty folders
    • misc: show common rebuilder warnings only once and not per addpath
    • misc: improved fuzzy set name check
    • fixed: xml dats with UTF ByteOrderMark aren't listed in profiler
    • fixed: when using header support, rom size values are wrong
    • fixed: offline datfiles 0 crc/ 0 size issue


    • misc: added some more support for offline dats. Parsing romTitle tags etc...
    • misc: don't allow "." at the end of a rom name anymore
    • misc: parser warning about double named rom entries but different hashes include nodumps (MESS .133)
    • misc: fixing an unpacked wrong file name (where the new name already exists) backups and replaces the existing file now instead of reporting not-fixed.
    • fixed: batcher-rebuilder always scan/never scan subfolder options aren't saved correctly


    • misc: increased scanner speed slightly
    • misc: wrong named chds on root level (and with root mode enabled) are detected and can be fixed
    • misc: you can add/drop *.xml files as datfiles, too now
    • fixed: offline xml dat parser (however naming is currently limited to release number + name + extension)
    • fixed: "double description/folder" renames during parsing can create double counter extension
    • fixed: old style dat parser is broken in 3.128a


    • added: batcher-rebuilder always scan/never scan subfolder options
    • misc: enhanced "Can't merge set due to equal names" check to work with chds, too
    • misc: increased memoryfile size which is used for header support. This should increase speed when header detection is done on zipped files
    • misc: added shareRead and shareWrite options to cmpro.ini. Setting them to "on" will allow generalfile read/write sharing. Use it on your own risk ;)
    • removed: fix missing scans all set. An old resource hog...rarely used


    • misc: showing compress/decompress information in progress window
    • fixed: external packer delete operations fail when deleting more than 1 file with spaces in its name
    • fixed: sometimes wrong fix name messages are shown for files with romsize = 0
    • fixed: dir2dat initially scans subfolders even when subfolder option is disabled which can take some time
    • fixed: 7z sdk returns a not initialized pointer value instead of a crc=0 for a size 0 file
    • fixed: falsely allow rebuilder drag'n drop while showing rebuilder stats
    • fixed: an empty rebuilder destination folder is initially shown in scanner's drag'n drop options (instead of 1st rompath)


    • misc: updated 1G1R algorithm according to No Intro Team's new requirements. Active regions now filter sets in 1G1R mode
    • misc: don't allow backup & download folders as rompath subfolders anymore
    • misc: updated to some newer 7z sdk routines (fixing accessing files >=4GB). However block based unpack is still not enabled
    • misc: new datfiles are sorted by full path name and not by description
    • misc: changed and added some no profile/no data messages
    • misc: got rid of some short foldernames
    • fixed: crash when printing results for sets without roms


    • added: 3 state button bar file
    • misc: scanner popupmenu move/copy to operations remember last used path
    • fixed: bios assignment can fail on rather identical sets (naomigd/naomi MAME .131 issue)


    • misc: optimized rom name check, major speed increase for sets with lots of roms
    • misc: optimized "deeper check for fixable missing files", major speed increase for sets with lots of roms
    • misc: don't list unneeded chds twice anymore (one via disk and the other via rom unneeded check)
    • fixed: zip buffersize for one-file operations was wrongly set to 15 byte decreasing speed immensly
    • fixed: profiler rarely shows a wrong tree icon when removing a currently loaded profile
    • fixed: profiler rarely doesn't autorefresh [new datfiles]


    • misc: optimized wrong placed chd routine
    • misc: version.ini/docs updated for new homepage
    • fixed: "upgrade / downgrade" messages are wrong sometimes (again)
    • fixed: wrong sets statistic count for sets which only consists of nodump rom + chds + bios roms ;)


    • fixed: crash when doing a deep-chd scan on hashed metadata
    • fixed: wrong rom statistic count for sets which only consists of nodump rom + chds + bios roms ;)
    • fixed: old type chds aren't listed when wrongly placed
    • fixed: "upgrade / downgrade" messages are wrong sometimes
    • fixed: slow down when looking for missing chds
    • fixed: crash when -r/-s/-h flag option is used an no warnings window is available
    • fixed: some md5 over sha1 priority issue which impacts the wrong placed chd detection


    • misc: supporting chd format version 4
    • fixed: rare www profiler crash based on sorting
    • fixed: scanner unneeded fix crashes rarely in full merge mode (again)


    • misc: profiler columns are sortable
    • misc: messageboxes are resizeable (horizontally)
    • misc: readded some 'lines on root' for tree controls
    • misc: empty profile based backup/download folder will be removed when cmpro is closed or on profile change
    • fixed: batcher auto-del-fixdat option isn't saved
    • fixed: scanner unneeded fix crashes rarely in full merge mode


    • added: speed up by supporting zip no-recompress operations for fix-wrong placed
    • added: speed up by supporting zip no-recompress operations for fix-missing
    • added: speed up by supporting zip no-recompress operations for fix-unneeded
    • added: optional reporting of files in archives with +r/+h/+s attributes (compressor settings)
    • added: rebuilder advanced option to rebuild sha1-only roms
    • added: support for 4-states buttonbars (normal/hover/click/focus, bitmap of X=384 Y=64*n where n = 1,2,3,4)
    • added: scanner popup menu 'Copy' (incomplete, not fixed, current) as an addition to move and delete
    • misc: optimized fix missing (besides of general no-recompress support)
    • misc: separated 'wrong placed' from 'unneeded' prompts
    • misc: changed fixing and parsing messages and the belonging dialogs
    • misc: updated statistics, about window, several texts/control positions, colors etc
    • misc: showing count in window title only if it's not 100%, however set information always shows the count
    • misc: stats show "-" for not scanned items (e.g. if no sets is enabled, you will see '-' for set specific numbers)
    • misc: dir2dat shows a warning if a file access error happens instead of just stopping the folder scan
    • misc: updated MAWS url in urls.ini
    • misc: made the following options per-profile (they are set to their default values, so check them) -Optimized rompath scan -Rebuilder Beep
    • misc: made the following options global (they are set to their default values, so check them) -preserve file date/time -preserve archive date/time -thread priority -zip compression level -download folder -backup folder + make backups to folder
    • (you will see a prompt "Illegal backupfolder detected" message *once* when running the new version)
    • misc: changed backup folder behaviour. Your given one is now just the root while the folder name is coming from the datfile header / etc. Similar to fixdat storage.
    • misc: changed download folder behaviour. Your given one is now just the root while the folder name is coming from the datfile header / etc. Similar to fixdat storage.
    • fixed: fix missing doesn't pick up 'move-not-renamed-sets-to-backup' sets
    • fixed: fuzzy wrong name detection fails for clones which biosroms in some cases
    • fixed: for rar/7z -afzip/-tzip option, cmpro falsely uses .rar/.7z as extension
    • fixed: some rare issues while cleansing the datfile
    • fixed: sample-only sets appear as missing set in the stats when sample scanning is off
    • fixed: wrong placed files aren't put to backup when 'NO' is used in fixmissing prompt


    • fixed: batch rebuilder dialog checkboxes don't respond


    • fixed: stats count for nodump-only clonesets in splitmerged mode counts wrong
    • fixed: sets with no roms/samples/chds at all are shown in the miss list as missing
    • fixed: fixdats header description/name tags hold full pathname
    • misc: show stats, save auto fixdat, save fastscan only if the scan was not stopped
    • misc: increased tooltip time for setinfo/rebuilderadvanced
    • misc: changed batchrun's rebuilder options to radio buttons and don't disable the settings
    • misc: some minor menu and diskchecksum adjustments


    • added: setinfo tree menu to show enabled/disabled/all sets
    • fixed: /t in tooltips don't show up in Windows XP
    • fixed: header detection fails in batchrun mode
    • fixed: 'select sets'/'from file' combo boxes are limited to 25 chars
    • fixed: rebuilder's 'remove matched source files' removes empty addpaths


    • added: support for disk/rom status tag value "verified"
    • added: verified rom/chd information to stats.ini
    • added: history combo boxes for setinfo 'select sets' and 'from file'
    • added: multiline tooltips to 'setinformation-select sets'/'rebuilder advanced destination prestring' which list the supported variables
    • misc: usage of fallback font 'fixedsys' for stats in case of 'Courier' is not available
    • misc: setinformation's 'select sets' can enable/disable sets by their status information if at least one chd/rom got the selected value: %S=v (verified), =n (nodump), =b (baddump)
    • misc: changed some default initial window sizes to avoid clipping
    • fixed: stats counts romsets which only consist of a bios as missing
    • fixed: fixmissing/fixunneeded can rarely impact each other in backupfolder (aka cps3 10/20 issue)
    • fixed: 7z memory leak when using compressor->test archive option
    • fixed: returned packerextension is wrong for non-archive files (however no impact found)
    • fixed: rebuilder wrongly created destination file if sha1/md5 check failed due to unzip error in no-recompress mode
    • fixed: saving fixdat with enabled MS Windows' hide extension option can create double extensions


    • misc: introducing new more accurate statistics
    • misc: statistics window is now resizeable and remembers size/position
    • misc: statistics layout is defined in stats.ini (variables are selfexplaining if you're looking at the captions in this default file). You can
    • overwrite these default stats by creating a stats01.ini (02, 03...10.ini).
    • misc: profile color is now based on scan tree issues, red = issue listed, green = no issue listed, grey = not scanned or stopped scan
    • fixed: some typos
    • fixed: several internal statistic based stuff
    • fixed: issue with compressed descriptions (aka dir2dat description problem)
    • All your existing profiles are reset to grey when using this for the first time. You have to rescan them.


    • misc: reduced database memory footprint
    • misc: additionally showing active biosset count in tree output caption
    • added: warnings window got Explore and Open popup menu functionality


    • misc: fastscan information is always saved now, even if you cancel a scan. So you can continue a stopped scan at a later point in time.
    • misc: renamed scan to new scan and fastscan to have to get used to it ;)
    • misc: fastscan button is only enabled if the operation is actually possible
    • misc: merger can create rar/7zip
    • misc: merger can create destination folder if it doesn't exist
    • misc: changed caption of merger placement options
    • misc: fix missing operations also optionally prompt for confirmation now
    • misc: don't show 'recompress' popupmenu in scanner when rebuilder is set to 7z/rar
    • misc: added some error promps for failed http/ftp connections
    • fixed: crash on loading corrupt online xmls
    • fixed: dats without chd regions falsely list one empty region
    • fixed: rare issue with chd subfolders for fake clone sets
    • fixed: merger removes chds during cleanup
    • fixed: merger doesn't move parent-only sets for placement mode 'move'


    • fixed: sets with >1 chd list these chds wrongly as missing if chd region type is disabled
    • fixed: dir2dat cancel doesn't work during a lengthy hash calculation
    • misc: prefered scanner archive type is detected from rebuilder settings if no sets at all exist
    • misc: don't allow setinformation load/unload file during an active scan


    • misc: missing AV metadata in chds are shown as errors
    • misc: setinformation 'select sets' supports %B=1 for selecting bios sets only
    • misc: changed several rebuilder warning texts
    • fixed: rebuilding uncompressed files rarely creates archived files
    • fixed: scanner's fixmissing rarely ignores the default archive format
    • fixed: profiler's hide-common doesn't set the default answer to yes for illegal merges and bad merge tags
    • fixed: if a removed unneeded file had a valid romname it's not shown as missing
    • fixed: progress window shrinks magically
    • fixed: after closing setinfo window you need 2 clicks to reopen it
    • fixed: misplaced romsets in samplepaths are falsely listed as wrong named
    • fixed: wrong "fake clone" message for fake clones with chds (mainly for Mac Crossfire users)
    • fixed: propertypages are shown twice (mainly for Linux WINE users)


    • misc: rar/7z/zip decompress failure lists archive and filename in warnings window
    • misc: files count operations can be cancelled
    • added: rebuilder advanced option to additionally check sha1/md5 of possibly existing destination file
    • fixed: 7z sdk crashes when 0-byte files are found while reading TOC
    • fixed: failed rar/7z renames aren't listed


    • 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: