M.A.M.E. Catalog / Launcher II Documentation - CHANGES

### CHANGES - v0.243, 29-APR-2022

    fix: general bug fixes
    imp: improved functionality
    new: newly added functionality
    wip: (incomplete) work in progress
    doc: documentation changes
    inf: informational only

v0.243, 29-APR-2022:

- fix: avoid crash when using the command line option -tc
- fix: corrected template version displayed in the about box
- fix: fixed a strange bug with emulator options not displaying with Qt versions somewhere between 5.13 and 5.15 (also runs with earlier Qt versions, actually it did all the time :))
- fix: fixed the palette editor not returning the right values
- fix: rank item widgets are now drawn "five items further" than before which should fix most visual artifacts
- imp: updated bundled minizip-ng to 3.0.5 (thanks to Julian Sikorski)
- imp: updated bundled zlib to 1.2.12
- imp: updated bundled LZMA SDK to 21.07
- imp: updated the emulator configuration templates to MAME 0.243
- imp: updated the about box to not use deprecated constants but new methods; also changed the given URLs
- imp: revised the storing of play history and favorites
- imp: removed the bundled Qt translations
- inf: QMC2 Arcade more or less doesn't work right now
- inf: the 'embedder' is totally hidden for now, that is, also on Windows

v0.242, 02-APR-2022:

- new: moved a lot of files around for better readability and changed the build process to use git instead of svn

v0.218, 28-FEB-2020:

- imp: removed the sample checker and all related UI hooks since it may be misleading
- imp: pure Qt 5 support which also means no embedded emulator - at least for now
- imp: made support for 7zip a little more modern by replacing its boolean type with real bool
- imp: added Zarth's Visual Template to the list of notes templates
- inf: resuming work on QMC2 after a longer break - caused by several strokes :(

v0.195, 01-MAR-2018:

- fix: sample- & software-state checks: merge the process output channels (stdio and stderr) because `-verifysamples` and `-verifysoftlist` use both channels in the meantime
- fix: corrected the restoration of the last machine list view during initialization for non-WIP builds
- fix: manual scanner: corrected the font used for logging (general log-font)
- fix: adjusted machine list set counters due to changes in `-listfull` since MAME 0.195 - this means that MAME 0.195+ is required now (BT #165)
- imp: improved performance when searching for machines
- imp: removed the slot-info cache and all related UI hooks as it's no longer required for the upcoming new device configurator
- imp: updated the emulator configuration templates to MAME 0.195 (added core state / playback options 'rewind' and 'rewind_capacity', added core artwork options 'fallback_artwork' and 'override_artwork', added core miscellaneous option 'nvram_save')
- imp: updated category.ini to MAME 0.195
- new: emulator options: added an enforce default toggle switch to every option's action items so the user can decide to explicitly pass the default value to the emulator (which QMC2 would usually not do)
- wip: reimplementing the device configurator for modern MAME - WIP-info: this doesn't work properly yet and it won't load, produce or save any useful slot- & device-setups for you at the moment, the feature isn't WIP-ified though as it's already too geared with rest of the UI!

v0.192, 29-NOV-2017:

- fix: corrected build issues when using Qt 5.9.x (BT #157)
- fix: software-lists: repeat the last search when the software-list is reloaded and a non-empty search pattern is present (BT #158)
- fix: software-lists: corrected statistics string to also include the number of search matches (S:<n>) when state-checking is disabled
- fix: welcome dialog: explicitly set the GUI font if it has been customized before
- fix: welcome dialog: fixed reverting to the current language setting when the dialog is reject()'ed (i.e. Cancel is clicked or Escape is pressed)
- fix: video player: avoid some of the possible race conditions related to switching machines quickly while the attached videos list is being created
- fix: video player: do not request video image data from YouTube again when the image is already cached, and don't request anything for local videos (oops)
- fix: avoid updating detail-tabs while the tab-widget itself is being recreated (BT #160)
- fix: worked around a Qt bug to fix initial detail-tab header scrolling when the current tab is far to the right (BT #161)
- fix: video player: avoid loading the video info map multiple times
- fix: video overlay widget: don't display status messages when the main GUI is minimized (as the overlay is actually a parentless window it's not receiving the "minimize event" implicitly)
- fix: avoid UI flicker when initially showing the loading animation with active category- or version-view
- fix: example system-notes template: when on Windows, provide a play/pause button alternative for controlling the HTML5 video canvas as the built-in controls don't work
- imp: ignore the new dtd emulator option when checking the template map
- imp: MinGW builds: changed the Makefile to support the newer MAME-dev tools, including Qt 5, but Qt 4 is still recommended (note that for Qt 5 `<mingw-folder>/usr/bin/sh.exe` must be renamed or removed, otherwise `qmake` won't produce correct paths - see QTBUG-48876 which unfortunately isn't fixed but closed)
- imp: updated category.ini to MAME 0.192
- imp: obsolete (or invalid) emulator options are now automatically removed when the options are stored
- imp: video player: greatly improved the way the widget is reloaded upon changing the current system
- imp: replaced the ghost video thumbnail with a more neutral image to avoid misinterpretation (also renamed the corresponding notes-template macro from $GHOST_VIDEO$ to $VIDEO_THUMBNAIL$)
- imp: revised or replaced several icons
- imp: example system notes template: removed the "opacity fade in" feature from the fancy image style (CSS) as it takes a duration of 1s that may cause issues if systems are switched very quickly
- imp: added a key-event filter for the search boxes in order to disable their default handling of `Up` / `Down` key input (because this causes issues with the way QMC2 uses the drop-down list as a search history)
- new: finalized the advanced setup wizard (started in 0.186) and promoted it to non-WIP
- new: notes-templates: added a new JavaScript-accessible funtion to query the current operating system name (see wiki)
- wip: adding freely customizable filtered machine list views (consumers of the machine list database added in 0.66, aka custom views) that can optionally be attached to the UI
- doc: added a note about escaping special characters to both the software-search's tool-tip and the QMC2 guide (BT #153)

v0.187, 02-JUL-2017:

- fix: software-lists: reverted a change from v0.183 which prevented multi-part software from being mounted correctly (BT #145)
- fix: fixed that the system-notes widget gets hidden when a machine is launched while the "notes" tab is the current one (BT #147)
- fix: corrected loading zipped custom artwork data for notes templates (BT #149)
- fix: notes-editor: avoid a potential (temporary) hang caused by text-wrapping the generated JS/HTML code when switching to the HTML tab (BT #150)
- fix: QMC2 Arcade / ToxicWaste theme: some theme-specific settings were not correctly restored
- fix: software-lists: software images weren't correctly updated on the search results page
- imp: updated the alternative system- and software-notes templates contributed by José Marcio Rezende Franco
- imp: notes-editor: the notes-editor's tab-bar uses a smaller font size now (2/3 of the general application font's size)
- imp: updated category.ini to MAME 0.187
- imp: QMC2 Arcade / ToxicWaste theme: delay image, video and info updates when the user flicks the machine list quickly
- imp: QMC2 Arcade / ToxicWaste theme: the cabinet can now be scaled independently from its automatic positioning (mouse wheel) and the menu bar's fade-in/out is animated
- new: added optional support for dynamically filtering machines according to their potentially changing ROM states during full audits (BT #144)
- new: QMC2 Arcade: added support for the icon cache database (used if enabled in the main GUI)
- new: QMC2 Arcade: added the new CLI option `-debugqt` which will enable logging of Qt debug messages (which are now suppressed by default)

v0.186, 14-JUN-2017:

- fix: manual scanner: convert relative paths to absolute ones (so that the file URLs are correctly interpreted when launching the PDF viewer)
- fix: collection rebuilder: the collection rebuilder's specific settings weren't stored under certain circumstances
- fix: corrected the initial restoration of the tab-header of the current machine-detail when the tab-header has to be scrolled
- fix: corrected UI behavior when the given emulator executable file's path does not exist during reload (BT #143)
- fix: ROMAlyzer: added a hard limit of 2 GB per analyzed dump (the analyzer will skip individual dumps which are bigger than QByteArray's limit, avoiding a crash)
- fix: avoid a crash when interrupting a ROM verification of tagged sets (the process is now cleanly interruptable)
- fix: the enable log settings of the check-sum scanner log and the collection rebuilder were not restored
- fix: corrected the ROM- and software-state checks to work with MAME 0.186+
- imp: software-lists: removed the temporary workaround for launching ColecoVision™ cartridge images since the issue has been fixed in MAME 0.184
- imp: updated category.ini to MAME 0.186
- imp: added a confirmation pop-up which tells the user that it's much faster to do a full ROM audit than to check ROM states individually above a certain amount of sets (shown for more than 500 tagged sets)
- imp: removed the -qmc2_config_path option which was renamed to -config_path in v0.42 (the old name was still supported as a more or less hidden alias)
- imp: ROMAlyzer: renamed the former Report tab to Analyzer and moved the related widgets to it, so that they are no longer suggesting a global meaning
- new: collection rebuilder: added support for rebuilding dumps that are larger than 2 GB individually (e.g. 'hapyfsh2', see BT #142)
- new: notes-templates: added access functions for PDF manuals (see wiki)
- wip: ROMAlyzer: adding a ROM path cleaner sub-feature (BT #82)
- wip: adding an advanced setup wizard as an alternative to the classic welcome dialog

v0.183, 22-FEB-2017:

- fix: corrected the start-up restoration of the currently selected machine when said machine is hidden in the main view (aka 'full detail view') due to ROM state filtering
- fix: template check: when a (presumably) boolean type option changes its semantic, make sure that the check at least sees the changed default (example: the 'sound' option in current MAME)
- fix: correctly honor the ShowROMStatusIcons setting in the main view when the machine list is loaded from cache
- fix: system-notes: got rid of some MAME/MESS/UME leftovers (OMG!) which prevented titles from being displayed in system-notes when they were (7-)zipped
- imp: updated category.ini to MAME 0.183
- imp: updated PDF.js to a newer git revision (as of 30-JAN-2017), now pre-built with `gulp`
- imp: changed the category- and version-views to do an ascending sort of the category or version column before running the actual sort on the current criteria upon creation
- imp: avoid UI flicker when initially creating the category- or version-views
- imp: updated the emulator configuration templates to MAME 0.183 (changed the 'sound' option to correspond with current MAME)
- imp: improved the main setup dialog's (former) Machine-list tab (now called Machine- / Software-lists) by reorganizing the different options in separate sections
- imp: software-lists: get rid of using a temporary file for looking up mountable devices for the current slot setup, use the standard input channel instead (we actually got rid of using a temporary file completely, so the corresponding setting has been removed as well)
- imp: device configurator: adopted MAME's new formatting of the `-listslots` output (this means that MAME 0.183 is required now!)
- imp: component setup: when a feature isn't allowed to be removed (i.e. the per-machine emulator configuration), indicate this by disabling the deactivate button
- imp: the context-menu of each component's tab-widget is now accessible by right-clicking the header (instead of a small area above it)
- imp: software-lists: use `list:name` instead of `list:name:part` when generating software-specific arguments
- imp: software-lists: added a (temporary) workaround for launching ColecoVision™ cartridge images (see MT bug #6504)
- imp: device configurator: a loading animation is shown when the slot info cache has to be recreated (the previous indication for this was too subtle)
- new: the last ten machine search patterns that were added to the drop-down list (i.e. by pressing Return or Enter) are saved and restored now
- new: added a relaunch setup wizard item to the tools menu which will stop and restart QMC2 with the `-r` command line option
- new: software-lists: added support for saving and restoring the last selected software item per system (BT #140)
- new: added support for system- and software-manuals (in PDF format), allowing the use of an external PDF viewer (system default) as an alternative to the internal one which doesn't work everywhere (BT #141, BT #116)
- new: each component's current tab can also be switched through the tab-widget header's context-menu now (BT #134)
- inf: changed the versioning scheme to match MAME's version from now on (due to popular demand) - this should avoid confusion in the future

v0.71, 26-JAN-2017:

- fix: software-lists: corrected the initial update of custom software artwork when the images are loaded from a zip- or 7z-archive (BT #137)
- fix: software-lists: avoid a possible crash when recreating the software-list XML cache DB
- imp: updated category.ini to MAME 0.182
- imp: updated PDF.js to a newer git revision (as of 12-JAN-2017)
- imp: updated the emulator configuration templates to MAME 0.182 (added HTTP server and PortAudio options)
- imp: updated the bundled version of zlib to 1.2.11 (see zlib's change-log for details)
- imp: updated the bundled version of the LZMA SDK to 16.04 (see LZMA SDK's homepage for details)

v0.70, 30-NOV-2016:

- fix: ROMAlyzer / collection rebuilder: corrected the logged uncompressed size of a dump when reading from a ZIP archive through minizip (minor)
- fix: image or icon sources weren't refreshed correctly when the decompressor setup (zip, 7z or libarchive) was changed on-the-fly
- fix: honor the component setup / tab order when updating the tab icon for the currently selected view
- imp: removed all 'terminate emulator' actions as they don't work with modern MAME ('kill emulator' actions still work and got a nicer icon)
- imp: updated template format to v0.2.9 which adds an optional 'wip' attribute for emulator options
- imp: updated PDF.js to a newer git revision (as of 27-OCT-2016)
- imp: updated the os-detection script to also support Arch Linux (also added a distribution specific configuration file for it)
- imp: slightly improved start-up performance
- imp: updated category.ini to MAME 0.180
- imp: renamed all remaining settings that were still using the string "Game" in their names to a "Machine" pendant
- imp: emulator configuration templates updated to MAME 0.180 (added new core option 'homepath')
- imp: updated minizip to a newer git revision (as of 14-NOV-2016)
- new: added a new 'icon cache database' which stores decompressed icon data already mapped to machine IDs (this should speed up icon loading for everyone but can be disabled if not)
- new: reimplemented the support for MAME output notifiers in a platform independent way (this requires a modern version of MAME)
- new: software-lists: added optional automatic adjustment of the emulator's -statename parameter for easier state-file separation -- see also BT #129

v0.69, 27-OCT-2016:

- fix: ROMAlyzer: when identifying dumps contained in zip- or 7z-archives, fall back to a member's file name if its CRC exists multiple times within the archive
- fix: when the loading animation was initially hidden and switched on later the gif movie wasn't scaled (minor)
- imp: updated category.ini to MAME 0.179
- imp: updated minizip to a newer git revision (as of 09-OCT-2016)
- imp: updated PDF.js to a newer git revision (as of 30-SEP-2016)
- imp: ROMAlyzer: the check-sum wizard has been renamed to 'check-sum finder' and its auto-repair feature has been removed (it's no longer required, the collection rebuilder is much better at this)
- imp: emulator configuration templates updated to MAME 0.179 (added new core search path option 'swpath')

v0.68, 28-SEP-2016:

- imp: updated minizip to a newer git revision (as of 28-AUG-2016)
- imp: updated PDF.js to a newer git revision (as of 31-AUG-2016)
- imp: updated category.ini to MAME 0.178
- imp: emulator configuration templates updated to MAME 0.178 (added new OSD video option 'monitorprovider')
- new: added two new options to the ROM status exporter which allow for exporting only favorites or tagged sets

v0.67, 01-SEP-2016:

- fix: build: corrected the VC++ project generation script to use bundled zlib / minizip
- fix: options: fixed icon size adjustment for a tool-button added in 0.66
- fix: Mac OS X: avoid start-up deadlock and make `-cc` work again
- fix: device configurator: systems that have no slot-device instances for default slot-options weren't customizable
- imp: added a 'show all' item to the software-list visibility menu (shown when at least one software-list is currently hidden)
- imp: updated category.ini to MAME 0.177
- imp: emulator configuration templates updated to MAME 0.177 (added new core render options 'autostretchxy' and 'unevenstretchy')

v0.66, 27-JUL-2016:

- fix: device configurator: don't implicitly save device configurations on item activation as it may kill the currently chosen configuration's mappings
- fix: fixed a rare start-up crash caused by not waiting for the options to be fully applied
- fix: corrected the man-page generation script (`scripts/txt2man.sh`) to not output an unsupported macro
- fix: Qt 5 build fixes (BT #130)
- imp: emulator configuration templates updated to MAME 0.176 (changed default value for 'bgfx_avi_name')
- imp: updated category.ini to MAME 0.176
- imp: build: system-wide zlib and/or minizip libraries can now be used by specifying SYSTEM_ZLIB=1 and/or SYSTEM_MINIZIP=1 -- thanks to Julian Sikorski
- imp: build: revised the Makefile to cleanlier support building & installing of qchdman and qmc2-arcade
- imp: updated PDF.js to a newer git revision (as of 10-JUL-2016)
- new: added a machine list database that's used by additional filtered custom views (WIP-info: the view is already *mostly* working)

v0.65, 01-JUL-2016:

- fix: don't prevent the 'automatic ROM check' from starting when the 'Check ROMs' action gets triggered while the machine list is being reloaded
- fix: image checker: added obsolete file removal support when using libarchive (missing unintentionally)
- fix: image checker: corrected checking for obsolete icon files when read from a directory (this verified only PNGs as valid but the restriction is long gone)
- imp: video player: accept youtu.be besides youtube.com when copy-pasting video URLs
- imp: updated category.ini to MAME 0.175
- imp: emulator configuration templates updated to MAME 0.175 (removed core option 'antialias', added Windows-specific option 'vector_beam_smooth')
- imp: changed the default command line for the 7zip removal tool to include `-mhc=off` (disables header compression which libarchive doesn't support) and `-ms=off` (disables solid blocks which are generally counter productive for our use case)
- imp: pre-caching icons from a directory will no longer block the GUI and works faster now (using QDirIterator)
- imp: updated PDF.js to a newer git revision (as of 11-JUN-2016)
- imp: hide the splash-screen as soon as the initial start-up is done (in case it's still open by that time - which is likely)
- imp: added a new alternative system-notes template contributed by José Marcio Rezende Franco (data/gmn/Concise.html)
- new: ROMAlyzer / collection rebuilder: CHD files are now optionally included in the reproduction process (automatically renaming them if required); you can choose between creating hard links, symbolic links and real copies, or to omit CHD reproduction completely (which is the default) -- see also BT #114
- new: added a catver.ini optimizer to potentially speed up loading slightly
- new: emulator identification is now skipped when the binary's modification time hasn't changed - this generally speeds up loading greatly (but can be disabled in case it causes any trouble)

v0.64, 26-MAY-2016:

- imp: updated category.ini to MAME 0.174
- imp: using a cleaner base image for the loading animation (rotating circle-arrow)
- imp: updated PDF.js to a newer git revision (as of 08-MAY-2016)
- imp: ported the built-in audio player to Qt 5 / QtMultimedia (the AudioEffectDialog is deprecated now, it isn't available for Qt 5 builds and will be dropped as soon as we switch to Qt 5 completely; the make option `FORCE_PHONON` has been removed in favour of the new option `MULTMEDIA` for Qt 5 builds) -- see also BT #94
- imp: added info about using semicolon (to separate multiple items) to the tool-tips of all front-end artwork options
- imp: emulator configuration templates updated to MAME 0.174 (changed default value for HLSL option 'vector_length_ratio')

v0.63, 27-APR-2016:

- imp: updated minizip to a newer git revision (as of 26-MAR-2016)
- imp: updated PDF.js to a newer git revision (as of 31-MAR-2016)
- imp: updated category.ini contributed by ASH to MAME 0.173
- imp: emulator configuration templates updated to MAME 0.173 (added new core options 'intoverscan' and 'output', added new BGFX post-processing option 'bgfx_avi_name', updated HLSL options)
- imp: ROMAlyzer / check-sum scanner: display the scan timer already during the preparation phase of an incremental scan

v0.62, 30-MAR-2016:

- fix: ROMAlyzer / check-sum scanner: disable database path selection by the user while scanning
- fix: icons loaded through libarchive weren't reloaded after clearing the icon cache
- fix: corrected the comparison of option values comprised of float-tuples or -triples (some HLSL options) with their default values
- fix: device configurator: nested slot options could visually overlap their treewidget's viewport when initially loaded
- fix: system web-search: corrected search pattern / URL generation for systems containing '<unknown>' or '<generic>' in their description or manufacturer name
- imp: updated minizip to a newer git revision (as of 19-FEB-2016)
- imp: reduced the loading animation's speed which saves a few milliseconds
- imp: changed the banner message to include the build OS and machine architecture (instead of the language code)
- imp: create the SDLMAME notifier FIFO (/tmp/sdlmame_out) with group write permission turned on so that other users from the same group can use it as well
- imp: improved emulator output logging
- imp: emulator configuration templates updated to MAME 0.172 (added new OSD input options 'keyboardprovider', 'mouseprovider', 'lightgunprovider' and 'joystickprovider', changed default for 'autoboot_delay' to 0, adjusted HLSL options, removed 'multithreading', added new core render options 'intscalex', 'intscaley' and 'unevenstretchx', added new plugin and BGFX post-processing options)
- imp: updated category.ini contributed by ASH to MAME 0.172
- imp: QMC2 Arcade: added console type 'none' to suppress all log output
- imp: unified (OS-wise) and simplified splash screen handling
- imp: optimized machine list loading to save up to ~100ms start-up time
- imp: emulator options are alpha-numerically sorted within their sections now
- imp: cleaner separation of icon pre-caching and machine list loading
- imp: consolidated the log messages for loading favorites and play history
- imp: ROMAlyzer: changed the check-sum scanner's 'open/close log' button to look like a regular tool-button
- inf: this version marks QMC2's 10-year-anniversary (how time flies!)

v0.61, 24-FEB-2016:

- imp: greatly improved machine list loading by doing the actual item insertion more intelligently
- imp: hide the machine list / show the loading animation before triggering the actual start-up
- imp: removed make option `CTIME`
- imp: updated category.ini contributed by ASH to MAME 0.171
- imp: emulator configuration templates updated to MAME 0.171 (added 'bgfx' as additional choice for option 'video' / removed 'ddraw' choice from Windows template, added the new core options 'exit_after_playback', 'record_timecode', 'pluginspath', 'languagepath' and 'language')

v0.60, 27-JAN-2016:

- fix: Mac OS X build: SDLmain_tmpl.m/.h aren't necessary for SDL2
- fix: ROMAlyzer: use QFileInfo::completeBaseName() instead of QFileInfo::baseName() to correctly query CHD names with multiple dots (minor)
- imp: main GUI translations are now also part of the Qt resource and no longer loaded from external .qm files (the make option QT_TRANSLATION has been removed due to this)
- imp: updated category.ini contributed by ASH to MAME 0.170
- imp: emulator configuration templates updated to MAME 0.170 (readded 'console')
- imp: globally renamed all GLC (game list cache) remains to MLC (machine list cache)
- imp: generally optimized machine list loading

v0.59, 30-DEC-2015:

- fix: custom software artwork wasn't updated / displayed correctly when more than one additional software artwork class was defined -- see also BT #127
- fix: main GUI didn't quit until the last independent browser window was closed
- fix: corrected query error logging for all database managers
- fix: avoid high CPU load by constantly updating software detail
- imp: qchdman: added new script-engine functions for platform-independent folder creation and removal
- imp: ROMAlyzer / check-sum scanner: improved thread synchronization which speeds up scanning and fixes corner cases where the cross-thread event frequency could get too high
- imp: new loading animation (less obtrusive)
- imp: slightly speeded up loading the ROM state cache
- imp: updated category.ini contributed by ASH to MAME 0.169
- imp: emulator configuration templates updated to MAME 0.169 (added new HLSL options 'bloom_blend_mode' and 'shadow_mask_tile_mode')
- new: added optional support for libarchive (use `make LIBARCHIVE=1` to enable it at build time) -- see also BT #93
- new: software-list loading and checking also display a rotating circle animation now (unless the animation is switched off)
- inf: the French translation has a new maintainer -- thanks to Yû Voskoboinikov
- inf: SDL2 is now preferred - if you still need/want to build for SDL1 and both SDL versions are installed, specifiy `SDL=1` on the make command line to forcibly use it

v0.58, 25-NOV-2015:

- fix: corrected display of the available category- and version-view options according to the chosen use of catver.ini and/or category.ini
- fix: corrected view switching when the machine list wasn't shown during start-up but activated later by clicking the tab header
- fix: fixed building with `PHONON=0`
- imp: collection rebuilder: added progress indication to the fix.dat export feature of the missing dumps viewer
- imp: MinGW builds: added support for new MAME build tools as of 01-NOV-2015 (older tools are no longer supported!)
- imp: emulator configuration templates updated to MAME 0.168 (removed options 'console', 'http', 'http_port' and 'http_path' due to MAME's mongoose removal, updated many HLSL option defaults, removed 'hlsl_preset')
- imp: updated category.ini contributed by ASH to MAME 0.168
- imp: welcome dialog: added a GUI style selector to allow for avoiding style-related crashes by switching to a working style before actual start-up -- see also BT #121
- imp: changed some defaults for front-end / GUI related settings to more modern and recommended values
- imp: ROMAlyzer / check-sum scanner: rearranged the scanner's UI controls
- imp: removed optional / experimental support for drawing images through OpenGL by the main GUI (this wasn't very useful anyway)
- imp: software images that are stored folder-based can now also follow the pattern `<software-list-name>/<software-name>/<xxxx>.<fmt>` to be found (<xxxx> = 0000 .. 9999, <fmt> = any active image format - the highest number will be found first)
- imp: updated the alternative system- and software-notes templates contributed by José Marcio Rezende Franco
- new: added support for user-defined additional system- and software-artwork -- see also BT #49
- new: added support for customizing parent fallback individually per artwork class -- see also BT #125

v0.57, 28-OCT-2015:

- fix: qchdman: corrected the size adjustment of the about dialog to make the credits text fit
- fix: arcade mode setup: hide the category filter when neither catver.ini nor category.ini are used
- fix: system web-search: corrected the handling of '&' in the generated URL
- fix: collection rebuilder: corrected dump mapping for cases where only the SHA-1 is unique
- fix: collection rebuilder: the missing dumps viewer wasn't updated correctly under certain circumstances
- fix: corrected style sheet handling in order to allow for overwriting fonts through style sheets -- see also BT #120
- fix: ROMAlyzer / check-sum scanner: when rows are removed from the database during incremental scan preparation, their keys also need to be removed from the (life) hash cache
- imp: updated category.ini contributed by ASH to MAME 0.167
- imp: help menu: added QMC2 homepage link (opened in the default browser)
- imp: welcome dialog: provide a history of previously selected emulator binaries to choose from (on `-r`)
- imp: notes-templates: prepend `doc($xmlDocument)` when an XML query misses this variable binding completely (`qmc2NEO.queryLocalXml()`)
- imp: removed the restriction of not allowing the machine list to be sorted while a ROM check is running
- imp: added "System / BIOS" as a constant category to the arcade mode setup dialog in order to allow for filtering of BIOS sets even if neither catver.ini nor category.ini contain this category
- imp: updated the alternative system-notes template contributed by José Marcio Rezende Franco
- imp: ROMAlyzer / check-sum scanner: greatly improved the performance of incremental scan preparation (3rd step) in worst case scenarios (most/all files have been updated, or touched)
- imp: slightly improved startup performance (UI initialization)
- imp: emulator configuration templates updated to MAME 0.167 (added new vector game options 'beam_intensity_weight', 'beam_width_max' and 'beam_width_min', removed 'beam' and adopted all changes to HLSL options)
- new: added an option to enable/disable the loading animation
- new: software-lists: added display of software compatibility and requirements
- new: arcade mode setup: added filtering by machine rank
- new: collection rebuilder: added a 'hash cache' option to speed up database lookups during rebuilds
- new: collection rebuilder: added a dry run mode which is good for a quick "what if" check and/or for rapidly creating a fix.dat file
- inf: the QMC2 homepage has been moved to http://qmc2.batcom-it.net/

v0.56, 30-SEP-2015:

- fix: corrected build on Linux x86 (32 bit) when using `CFLAGS=-fPIC` -- see also BT #115 (thanks to pullmoll)
- fix: welcome dialog: make the file browser pre-select the executable file if it exists (minor)
- imp: updated category.ini contributed by ASH to MAME 0.166
- imp: updated redistributed Qt translations from Qt 4.8.7
- imp: compacted the main GUI's layout to save vertical space for machine list views (memory indicator removed)
- imp: updated the alternative system- and software-notes templates contributed by José Marcio Rezende Franco
- new: about dialog: added memory info on Windows (system information tab)
- new: QMC2 Arcade: added support for video snaps and a new back-end & CLI option to enable/disable it (`-video on/off`) -- see also BT #117
- new: QMC2 Arcade: added new `-fullscreen` and `-windowed` CLI options to overwrite the stored setting
- new: ROMAlyzer / check-sum scanner: added a 'cache' option which will speed up scanning enormously when enabled (consumes about 35 MB additional memory per 100K scanned objects, released after scan completion)
- new: ROMAlyzer / check-sum scanner: added display of the scan timer during active scans

v0.55, 26-AUG-2015:

- fix: device configurator: avoid crash when a slot-option references a device that doesn't exist in the XML database
- fix: corrected a bug in cached machine list loading which confused the ROM check
- fix: interrupting any processing caused subsequent ROM checks on tagged sets to not be carried out
- fix: corrected visibility switching of the ROM state filter menu during machine list reload
- fix: update visible user data (ranks) even if no machine is selected after reload
- imp: updated category.ini contributed by ASH to MAME 0.165
- imp: the value of the `-config_path` command line option can now also be a relative path (relative to the current working directory, that is)
- imp: slightly improved the performance of loading catver.ini and sorting by alpha-numeric columns
- new: added measurement of the 'total start-up time' (printed to the front-end log)

v0.54, 29-JUL-2015:

- fix: QMC2 Arcade: DAT-info database: corrected file modification checking to also work on Windows
- fix: QMC2 Arcade: corrected the settings key used for querying the machine list cache path (unification bug)
- fix: corrected character conversion of file paths for multi-byte character sets (works everywhere except on Windows, so avoid paths with multi-byte characters)
- fix: image checker: use a more reliable condition to determine the end of the (threaded) image scan
- fix: the initial setup dialog didn't honor the new default setting for 'NativeFileDialogs' on Mac OS X
- fix: corrected input focus after full ROM audits (minor)
- fix: renamed the former make option MINGW to FORCE_MINGW in order to resolve a conflict with the environment of the latest MAME dev-tools
- fix: software-lists: corrected part specification when manually mounting
- fix: MiniWebBrowser: hovered links weren't displayed in the browser's status bar while a page was still loading
- imp: updated category.ini contributed by ASH to MAME 0.164
- imp: updated the alternative system-notes template contributed by José Marcio Rezende Franco
- imp: file-chooser: include hidden files / folders
- imp: video player: the player's context menu is now also available in full-screen mode and playback can be paused / resumed by left-clicking into the video widget
- imp: improved progress indication for machine list loading
- imp: optimized the creation of the hierarchical parent/clone view (drastically improves the overall loading performance)
- imp: adjusted the ROM state filter menu to work the same way as the software-state filter menu
- imp: added make option FORCE_PHONON which - when set to 1 - enables the use of Phonon even with Qt 5
- imp: about dialog: added Mac OS X 10.10 & Windows 10 detection for Qt >= 4.8.7 / 5.5.0
- imp: replaced minizip 1.1 with the actively maintained minizip code from http://github.com/nmoinvaz/minizip which also fixes support for very large ZIP archives
- imp: improved catver.ini loading performance (about twice as fast now) and category/version lookups (QMap => QHash)
- new: software-lists: added a 'matched items' counter for the current search pattern to the software-list statistics
- new: video player: added support for video snaps (BT #110)
- new: system-notes templates: added support for video snaps by providing their file URLs to the template (can be used in an HTML5 <video> container for example)

v0.53, 24-JUN-2015:

- fix: collection rebuilder: the default set entity should be 'machine' now (unification bug)
- fix: the GeneralSoftwareFolder setting was neither restored nor used (unification bug)
- fix: ROMAlyzer: corrected the delta counter (for objects in database) when both the system- and software-mode's check-sum scanners are running in parallel
- fix: corrected glitches in splash screen image that were only visible on PowerPC Macs
- fix: version- and category-column visibility wasn't correctly restored in both the master list and the hierarchical parent/clone view (BT #106)
- fix: restoring the last machine selection didn't work correctly with active ROM state filtering
- fix: software-lists: individual software-list state counters weren't correctly logged upon checking
- fix: correctly handle view-switching while the category- or version-views are being created
- fix: software-lists: corrected software launch combined with a stored device configuration
- fix: the device configurator's UI setup wasn't saved upon reload
- fix: reopen the notifier FIFO whenever an emulator exits to avoid unnecessary CPU load (caused by a QSocketNotifier bug)
- imp: updated the alternative software-notes template contributed by José Marcio Rezende Franco
- imp: updated category.ini contributed by ASH to MAME 0.163
- imp: ROM status icons are now taken from the embedded resources rather than loaded from file during initialization
- imp: globally replaced the term 'game' with a corresponding 'machine' pendant
- imp: emulator configuration templates updated to MAME 0.163 (added new communication options to all templates, added 'uimodekey' to the Windows OSD template, updated HLSL options and a number of default values in the Windows OSD template)
- imp: smarter system web-search that also takes the manufacturer into account
- imp: when a machine has no slot-devices at all the device configurator is completely disabled now
- imp: category handling: BIOS and device sets are fully auto-categorized now, uncategorized child sets inherit their parent's category if applicable
- imp: improved generation of command line arguments passed to foreign emulators
- new: added command line option '-r' (reconfigure) which will run the setup wizard / welcome dialog before starting
- new: device configurator: suggest actual MIDI ports (from -listmidi) for midiin/midiout devices
- wip: adding support for launching emulators in movie recording mode (BT #107)

v0.52, 27-MAY-2015:

- fix: corrected visibility switching of the ROM state filter menu (related to the detail-setup overhaul in 0.50)
- fix: DAT-info database: corrected file modification checking to also work on Windows
- imp: unified all main GUI variants into one: qmc2-(sdl)mame (because of the unification in MAME) - as a result, you only have to build one binary now and the EMULATOR option as well as variant switching have been removed
- imp: updated category.ini contributed by ASH to MAME 0.162
- imp: ROMAlyzer: removed the extra frame around the scanner status and centered it vertically
- imp: when the emulator binary cannot be identified as MAME this will no longer stop game list processing, instead QMC2 will log a warning and try to continue as if it were MAME (note: bad things can happen if this is not the case!)
- imp: added new software notes-template macro $SOFTWARE_PARENT_ID$ (BT #105)
- imp: updated the alternative system- and software-notes templates contributed by José Marcio Rezende Franco
- imp: category view: BIOS and device sets that aren't available in catver.ini and/or category.ini will now still be inserted as sub-items of their respective categories when the view is created
- imp: system- and software-notes templates: added a new JavaScript-usable function to open URLs in the system's default browser (qmc2NEO.openLinkInDefaultBrowser(linkUrl))
- imp: all former <game> XML entities are handled as / expected to be <machine> entities now
- inf: project renamed to M.A.M.E. Catalog / Launcher II
- inf: the old MAWS feature has been dropped in favor of the ProjectMESS feature

v0.51, 30-APR-2015:

- imp: updated MESS category.ini contributed by ASH to MESS 0.161
- imp: ROMAlyzer / check-sum scanner: commit database transactions in smaller chunks when a single scanned archive contains hundreds or thousands of files
- imp: MAME/MESS/UME emulator templates updated to 0.161 (added Mac OS X specific CoreAudio effect options, 'debugger_font' and 'debugger_font_size' to all SDL templates)
- imp: replaced all occurrances of qSort() with std::sort() as the qSort() function is marked obsolete (for Qt 5 at least)
- inf: YouTube officially took down the v2 API access as of APR-20-2015, so the YouTube feature doesn't work right now (until we support the YouTube v3 API which is already planned)

v0.50, 25-MAR-2015:

- fix: software-lists: corrected storing of software favorites to include the list name
- fix: updated the catver.ini loader to work with the latest format change
- fix: options: corrected short-cut and joystick-function map coloring on 'cancel'
- fix: corrected the audio player's progress indication when tracks are stopped
- fix: ensure that the software-detail widget is visible when 'undocked' initially
- fix: ROMAlyzer: corrected the calculated size shown when dumps are indicated as available in the check-sum database (but missing in the expected files within the ROM path)
- fix: corrected the use of the right file-dialog for selecting output files in the 'ROM status export' dialog (BT #102)
- imp: updated MESS category.ini contributed by ASH to MESS 0.160
- imp: software-lists: added parent image & info fallback (BT #92)
- imp: added support for using 'history.dat' as 'sysinfo.dat' (BT #91)
- imp: software-lists: software favorites are no longer stored in qmc2.ini but in the user data database (auto-migrated on demand)
- imp: main GUI: slightly snappier start-up
- imp: main GUI: folder based icons are no longer limited to PNGs (every supported image format can be used now, same as with ZIP-/7z-archived icons)
- imp: MAME/MESS/UME emulator templates updated to 0.160 (added OpenGL section and the new 'opengl' choice for -video to all Windows OSD templates)
- imp: added players and driver-status columns to the 'ROM status export' feature (BT #103)
- new: software-lists: added a parent/clone hierarchy view (BT #81)
- new: software-lists: added per system software-list visibility toggling (BT #85)
- new: reimplemented the former 'detail setup' feature as a general 'component setup' to allow for changing the order and visibility of all features in all main GUI components
- new: the arrangement of all main GUI components can now be defined through the new 'component setup' dialog as well (this replaces the old method and its related settings)
- new: added 'parent-only filtering' to the arcade mode setup (BT #96) and the demo mode

v0.49, 25-FEB-2015:

- fix: avoid possible crashes when mass tagging items
- fix: ROMAlyzer (software-mode): avoid that the widget stays disabled under certain circumstances
- fix: process manager: keep white-space characters in (formatted) emulator log messages
- fix: Max OS X: avoid crash on initial load (after recreating the emulator caches)
- fix: QMC2 Arcade (Mac OS X): ensure that plugins are always loaded from the app bundle and not from a probably installed Qt SDK (which would cause a serious crash)
- fix: corrected software-info retrieval -- see also BT #87
- fix: avoid that the software-list tab can be moved while it's being created initially (could result in unwanted/uncontrolled tab moves)
- imp: Mac OS X build: using MKSPEC=macx-g++ as default Qt mkspec which allows it to build with binary Qt packages (hurray!)
- imp: updated MESS category.ini contributed by ASH to MESS 0.159 (also added French translation contributed by remax)
- imp: QMC2 Arcade: simplified windowed <=> full screen switching
- imp: enabled the sample-checker for MESS targets
- imp: ROMAlyzer: added a set-rewriter flag to decide if reproduction is aborted on error (recommended)
- imp: ROMAlyzer: integrated the collection rebuilder as a ROMAlyzer tab for improved user-friendliness
- imp: removed the inconsequently used 'save/restore layout' options (that is, all relevant windows will save/restore their layout under all circumstances now)
- imp: ROMAlyzer: greatly improved the filtering performance of the collection rebuilder
- imp: ROMAlyzer: better main-widget integration of the collection rebuilder's features
- imp: updated the alternative system-notes template contributed by José Marcio Rezende Franco
- imp: template translator: handle section comments and use tabs for identation, the build & run scripts now download required jars automatically
- new: ROMAlyzer: added a 'missing dumps viewer' to the collection rebuilder
- new: ROMAlyzer: added an 'exact match' flag to both filter expressions of the collection rebuilder

v0.48, 28-JAN-2015:

- fix: system-notes: fixed possible duplication of the system notes detail tab (the bug was only effective when Phonon or YouTube features were disabled)
- imp: updated MESS category.ini contributed by ASH to MESS 0.158
- imp: ROMAlyzer: added an 'enable log output' option to both the check-sum scanner and the collection rebuilder (when disabled, log messages emitted by the respective worker thread are suppressed)
- imp: ROMAlyzer: added a 'deep scan' option to the check-sum scanner - when enabled (default), the scanner will uncompress each ZIP/7z member in order to recalculate its check-sums (SHA-1, CRC and dump size), otherwise it will rely on the header check-sums (CRC and dump size)
- imp: notes templates: added 3 new notes editor functions to retrieve system-, emu- and software-info within scripts
- imp: ROMAlyzer (software-mode): the widget is now shown (but disabled) while the software-list XML cache is rebuilt; it gets enabled when the cache is ready (this avoids working on premature data)
- imp: updated the alternative system- and software-notes templates contributed by José Marcio Rezende Franco
- imp: MAME/MESS/UME emulator templates updated to 0.158 (added new SDL2 option 'uifontprovider')
- imp: interrupt a running search immediately when the system- or software-search's pattern changes
- new: due to popular demand, the system search can now be configured to include (default) or exclude BIOS and device sets via the menu attached to the pattern input
- new: ROMAlyzer (system-mode): added a ROM state filtering option to the 'ROM Collection Rebuilder'

v0.47, 31-DEC-2014:

- fix: Mac OS X build: corrected linker issues when building with clang (LLVM)
- fix: avoid crash when caching software-lists while ROM states are being checked
- fix: Mac OS X: using the platform's default key-sequence for 'close application' (Command+Q) to stop current processing / quit QMC2
- fix: ROMAlyzer (system-mode): sort selected set-names before analyzing them
- imp: ROMAlyzer / check-sum scanner: show the progress of running scans in the corresponding status widget as well
- imp: updated MESS category.ini contributed by ASH to MESS 0.157
- imp: QMC2 Arcade: taught QMC2 Arcade the use of the new DAT-info database added in 0.46 (including fall back to the parent's info if applicable)
- imp: QMC2 Arcade / ToxicWaste theme: minor cosmetic corrections regarding the bottom menu-bar
- imp: changed the default setting for 'NativeFileDialogs' to true on Mac OS X
- imp: build: added make option 'L_LIBDIRFLAGS' which allows for changing the order in which library paths are searched when linking (usually not required, but may be useful for solving Qt library version conflicts)
- imp: ROMAlyzer: added a reproduction option to toggle the creation of a ZIP comment (may be annoying)
- imp: the main GUI no longer restores the visibility of certain sub-windows as it's prone to trouble and wasn't consequently implemented anyway (i.e. not all sub-windows were restored)
- imp: software-lists: utilizing the same (much faster) algorithm for searching within known software as used by the system search
- new: ROMAlyzer: added support for software / software-lists (there are two instances of the ROMAlyzer now, one for 'systems' and one for 'software') -- see also BT #61

v0.46, 26-NOV-2014:

- fix: image-checker: corrected obsoleteness check for free-standing image files on Windows -- see also BT #78
- fix: corrected the HTML encoding of links in software-info DB entries so they actually work now
- imp: updated MESS category.ini contributed by ASH to MESS 0.156
- imp: ROMAlyzer / check-sum wizard: temporarily set the 'searched check-sum hash' to read-only instead of disabling the widget in order to allow for copying the check-sum while it's being searched
- imp: MAME/MESS/UME emulator templates updated to 0.156 (added new core options 'snapbilinear', 'drc_log_uml' and 'drc_log_native' to all templates)
- imp: Linux / UNIX / Mac OS X: defaulting to SDL2 templates now since SDLMAME/SDLMESS switched to SDL2 as default build target after 0.155
- imp: replaced the colored sphere icons showing the ROM status with new images
- imp: using QHash instead of QMap for all internal item lookup tables (less dependent on the number of entries, thus faster in the long run)
- imp: drastically improved the performance of all game/machine and software-list views by enabling uniformRowHeights which allows for neat optimizations by Qt (improves loading time as well as sorting and scrolling)
- imp: check-sum scanner: lowered the algorithmic complexity of steps 1 and 3 when preparing incremental scans, so this works remarkably faster now
- imp: slightly darkened the text-color for ROM-/software-state 'mostly correct' for better readability
- new: ROMAlyzer: added a second 'copy to clipboard' function that only copies the bad or missing dumps from a given set and excludes columns that aren't important for this purpose
- new: revised the software-list XML cache to be stored in / retrieved from an SQLite 3 database in order to save memory, speed up software-list loading and allow for ROMAlyzer support -- see also BT #63
- new: added a new combined database for all supported DAT-info sources (emu-info, game/machine-info and software-info) -- see also BT #80

v0.45, 15-OCT-2014:

- fix: ROMAlyzer: the fix.dat export action needs to be disabled initially (minor)
- fix: rank images didn't update their color or shape on the fly
- fix: ROMAlyzer: corrected set rewriter issues with data read from regular files (their CRCs couldn't be correlated)
- fix: ROMAlyzer: the default ZIP compression level (Z_DEFAULT_COMPRESSION) is -1, corresponding to level 6, but the spin-box only supported values from 0 to 9 so the default level was actually 0
- fix: avoid crash when checking an individual set's ROM status (probably only seen on slow systems)
- fix: avoid start-up crash on gcc 4.9+ builds -- see also BT #77 (thanks to Pulfer)
- imp: ROMAlyzer: major UI and logic overhaul (the settings page has been redesigned completely)
- imp: updated MESS category.ini contributed by ASH to MESS 0.155
- imp: ROMAlyzer: allow set repairing from 7-zip archived reproduction templates
- imp: all database updates are fully asynchronous now, using in-memory journals (that's faster on slow I/O, but also slightly more risky)
- imp: added support for SDL2 (SDL 1.x remains the default if available, you can force either version using 'SDL=1' or 'SDL=2' on the make command line)
- imp: MAME/MESS/UME emulator templates updated to 0.155 (added new templates for SDL2 builds)
- imp: updated template format to v0.2.8 which adds support for ignoring <choice> nodes on certain platforms (or generally)
- imp: improved mouse event handling of rank-item widgets (also fixes a minor UI bug)
- new: ROMAlyzer: added a check-sum database for storing/retrieving paths to dumps available in your file-system by SHA-1 and/or CRC (aka support for unstructured additional ROM paths) -- see also BT #62
- new: ROMAlyzer: added a ROM Collection Rebuilder which uses the check-sum database to rebuild a complete ROM path from 'any' given XML (including XML from foreign emulators as long as it's MAME/MESS/UME-compatible) -- see also BT #71
- new: ROMAlyzer: added a new 'create backups' option that will create backup copies of all existing files that are going to be modified / overwritten -- see also BT #73
- doc: symbolic links to the English HTML docs are no longer required (falls back to English automatically when a language-specific index.html doesn't exist)

v0.44, 23-JUL-2014:

- fix: Mac OS X build: resolved type conflicts between LZMA SDK and older XCode headers (< 4.x)
- fix: corrected device and BIOS set hiding in the master list when ROM state filtering is disabled
- fix: corrected initial opening of zip/7z image archives when the splash screen is disabled
- fix: avoid crash when the game/machine list cache creation is prematurely interrupted (upon user request)
- fix: MiniWebBrowser: corrected the network item downloader
- fix: fixed a bug with individual ROM checks that corrupted the ROM state cache with an invalid entry, causing it to be invalidated during the next reload
- fix: welcome dialog: 'NativeFileDialogs' setting didn't work as expected with folder browsers
- imp: MAME/MESS/UME emulator templates updated to 0.154 (removed 'hlsl_write' from Windows OSD templates, removed 'memcard_directory' from all templates, added option 'console' to all templates)
- imp: speeded up ROM- and software-state filtering as well as game-/machine-/emu-info lookups by using QHash [amortized O(1)] instead of QMap [O(log n)] to store/retrieve states & infos internally
- imp: updated MESS category.ini contributed by ASH to 0.154 (4 sets remain uncategorized, help appreciated)
- imp: upon merging game/machine info-sources UME variants now keep track if a game's/machine's info came from MAME (history.dat) or MESS (sysinfo.dat) and formats/displays the data accordingly when requested
- imp: updated the alternative system- and software-notes templates contributed by José Marcio Rezende Franco
- imp: hide game/machine list while filtering it by ROM state (faster)
- imp: consecutive duplicate words in SDL joystick names are now cleaned up -- i.e. "Logitech Logitech Extreme 3D" becomes "Logitech Extreme 3D"
- imp: QMC2 Arcade: added support for theme-specific default values used by certain settings -- i.e. darkone uses a 'sortByName' setting with an expected default value of 'true', ToxicWaste doesn't (want to) support this setting and uses the global default value of 'false' instead
- imp: QMC2 Arcade: be more responsive while loading data from file (especially interesting when using a console window)
- imp: updated minizip to version 1.1 which adds support for zip64 (zip archives can now be larger than 4 GB) -- see also BT #45
- imp: made category.ini translatable (caution: the new format is not backward-compatible (!) - however, you can use older category.ini's with the new code because translations are optional)
- imp: revised slot-info cache creation/loading to be more responsive and faster
- imp: changed default paths for 'category.ini' and 'catver.ini' (using the 'data/cat' folder now)
- imp: about dialog: added Mac OS X 10.9 & Windows 8.1 detection for Qt >= 4.8.6 / 5.2.0
- imp: improved ROM state filtering performance by resetting the internal state of the tree-widget before actually showing/hiding the items
- imp: don't be fussy about ignored options when checking emulator configuration templates (they are ignored for good reason, so why confuse users by mentioning them?)
- imp: QMC2 Arcade (Windows): when started from a command prompt, console-mode 'terminal' now causes QMC2 Arcade to use this console for logging
- imp: QMC2 Arcade / ToxicWaste theme: load icons asynchronously (in a separate thread) in order to not affect flicking performance
- new: added a 'user data' database (SQLite 3) to store & retrieve rank information and personal comments per game/machine
- new: added a new ranking system and a corresponding 'rank' column to all game/machine lists -- see also BT #46
- new: added missing 'restore' feature to the image format setup dialog
- new: replaced the foreign IDs menu with a new (tree-)view for foreign emulators and their custom IDs (if any) shown as sub-items of each emulator; the view will only be shown when there are any registered (foreign) emulators -- see also BT #53
- new: icons for foreign emulators and their custom IDs can now be selected individually
- new: eye-candy: pepped up the static loading & filtering texts with an animation (also used for mass tagging)
- new: automatically clear all emulator caches when the output of '-listfull' changes (optional, enabled by default) -- something users often forget is using QMC2's -cc command line switch when updating their MAME/MESS/UME SVN builds; this feature is supposed to automate that as far as possible (changes to devices and software-lists aren't recognized automatically)
- new: added command line option '-tc' which will check the emulator configuration template (printing results to stdout) and exit before actual start-up occurs
- new: ROMAlyzer: added support for CMP-compatible fix.dat exports -- see also BT #51
- new: QMC2 Arcade: added support for multiple image/icon files (per artwork category), supporting the main GUI's ParentImageFallback setting as well
- new: icons of game/machine clones now fall back to the parent set's icon when the ParentImageFallback setting is enabled (and an individual icon for the clone isn't available)

v0.43, 07-APR-2014:

- fix: avoid crash upon game/machine launch when double-click activation is enabled -- see also BT #44
- fix: ROM status exporter: corrected mix up of certain sort criteria indexes
- fix: MinGW build: corrected compiler & linker flags for QMC2 Arcade to not open a console window
- fix: MiniWebBrowser: corrected a signal/slot auto-connection that caused a Qt warning with Qt 5 (minor)
- fix: corrected tagging through Shift+Up/Down when the XML tree is expanded and the cursor is on a sub-item
- fix: MiniWebBrowser: corrected the display of super-long links in the status-bar so the browser wouldn't resize in X direction
- fix: corrected variant launching (broken in 0.42)
- fix: main GUI / key- & joy-mapping: don't trigger disabled actions
- fix: MESS device configurator: avoid crash (seen on Windows) when the selected system changes while the available devices and slot-options are currently being determined for another system
- fix: initial ROM path check: corrected handling of relative ROM paths
- fix: updated the handling of character encoding in software-lists on Windows to modern MAME/MESS/UME -- see also BT #65
- fix: corrected the working directory the emulator would use when scanning software-lists (so that a relative hash path would actually be found)
- fix: demo-mode (minor): corrected the produced command line when 'maximize' is disabled
- imp: updated MESS category.ini contributed by ASH to 0.153
- imp: QMC2 Arcade: enabled translation for joystick and key-sequence map debugging
- imp: initial ROM path check: output more detailed information for each non-existing/inaccessible ROM path
- imp: revised the help menu and added forum, wiki and bug-tracker links (opened in the default browser)
- imp: ROMAlyzer: included an item counter in the progress bar when analyzing, reading or writing sets
- imp: added LZMA SDK 9.22 (7-zip) data compression/decompression library by Igor Pavlov
- imp: optimized loading & parsing of the software-info DB
- imp: added a subset of the QtFtp add-on for Qt 5 compatibility with the QFtp and QUrlInfo classes
- imp: separated MAME & MESS emulator-info DBs as well as their game-/machine-info counterparts in order to allow for merging them in case of UME
- imp: MAME/MESS/UME emulator templates updated to 0.153
- imp: system- and software-notes templates: new template macros ($IS_BIOS$ and $IS_DEVICE$) and JS functions (isBios(), isDevice() and romStatus())
- imp: Windows: the FileSystemModel's directory scanner thread now uses native Win32 API calls instead of Qt classes -- see also BT #56
- imp: added a FileIconProvider wrapper class for QFileIconProvider that uses native Win32 API calls on Windows for better performance (also caches the icons internally)
- imp: updated template format to v0.2.7 which adds support for a new relativeTo attribute (valid only for file-type options) which - if set - will be used to generate a path relative to the current value of the referenced directory-type option when using a file-picker; note that this will only work correctly when the referenced directory-type option consists of a single path (i.e. not for semicolon-seperated paths, in which case you'd have to edit the corresponding file-type option manually to reflect relative file paths)
- imp: replaced some icons in the classic image-set
- imp: produce a nicer command line when the emulator is launched in embedded- or demo-mode (no duplicate or redundant options)
- imp: updated the alternative system- and software-notes template contributed by José Marcio Rezende Franco
- new: ROMAlyzer: added read-only support for 7z archived ROMs
- new: added support for 7z archived icons and image artwork - note that for best performance 7-zipped icons should be packed in a solid block (7z default) and images should be packed non-solid (7za option -ms=off)
- new: MESS device configurator: added support for 7z archives to the file-chooser (just like the existing support for zip archives)
- new: QMC2 Arcade: added support for game/machine icons (only supported by the ToxicWaste theme at the moment)
- new: revised the XML data cache to be stored in / retrieved from an SQLite 3 database in order to save memory and speed up initial loading (per game/machine XML data is queried from the DB on demand)
- new: added a web-search feature (currently supporting Google, Wikipedia, DuckDuckGo and Yandex)
- new: MiniWebBrowser: added experimental support for anonymous FTP (warning: don't use this for big downloads)
- new: added a built-in PDF viewer based on PDF.js (experimental)

v0.42, 24-DEC-2013:

- fix: changes to global emulator options weren't correctly merged with the current game/machine-specific ones when the corresponding save-button was pressed and 'overwrite' was selected on the subsequent dialog
- fix: don't add 'ghost sets' to internal master list when creating category- or version-views
- fix: don't allow initial ROMAlyzer setup while reload is active
- fix: do final update of the progress bar before sorting the game/machine list after a reload
- fix: emulator configuration widgets now honor the current style's highlight coloring for check-box (bool) type delegates
- fix: corrected sRGB profile headers of all included PNGs
- fix: software-list: favorite software wasn't shown initially when software-state filtering was active
- fix: ROM check: the ROM status indication for the currently selected game/machine wasn't always correctly updated on-the-fly for 'not found' sets and sets w/o ROMs
- fix: software-list: corrected combined state- and compatibility-filtering
- fix: MESS device configurator: don't show slots that have no user-selectable options
- imp: MAME/MESS/UME emulator templates updated to 0.152
- imp: main GUI: renamed command line argument -qmc2_config_path to -config_path (the old argument name is still supported, though)
- imp: updated MESS category.ini contributed by ASH to his latest version as of 20-DEC-2013
- imp: greatly improved the game/machine search feature to be interruptable while the actual search is performed, indicating its progress; added reg-exp like features for the pattern syntax (the special characters $, (, ), *, +, ., ?, [, ], ^, {, |, } and \ must be escaped - by adding \ in front of them - when they are meant literally)
- imp: X11 embedder: removed xwininfo requirement (done via Xlib directly now)
- imp: QMC2 Arcade: countless improvements to the darkone theme
- imp: speed up loading of cached game/machine lists and cached XML data
- imp: added the run-time Qt version to the window titles of all variants / applications
- imp: setup dialog: shuffled / replaced some button-bar icons
- imp: modernized the YouTube video player and ported it to Qt 5 / QtMultimedia
- imp: replaced splash screens with new ones based on current logos
- imp: ROMAlyzer: indicate optional missing ROMs as such in the report (greyed-out icon) and when logging the CRC miss
- new: added support for the use of environment variables in settings strings
- new: ROMAlyzer: added data file import (imports all game names contained in a data file as the list of sets to be analyzed)
- inf: the new required minimum Qt version is 4.8.0, support for older versions of Qt has been dropped

v0.41, 05-NOV-2013:

- fix: QMC2 Arcade: disabled GTK style related work-around for Mac OS X
- fix: foreign emulator support: the selection of a foreign emulator in the system's configuration wasn't correctly honored on emu-launch
- imp: template-map check: switched the order in which differing default values are logged (the expected value is shown first now, the second value is the one from the currently active template)
- imp: QMC2 Arcade / ToxicWaste theme: updated cabinet overlay image made by Jacques Châtelet (JacKc), added auto-stopping of animation and wave effect when emulators are running
- imp: new logo images for all QMC2 variants, also by Jacques Châtelet (JacKc)
- imp: improved key-sequence and joystick-function scanners
- new: QMC2 Arcade: added support for key-sequence mapping
- new: QMC2 Arcade: added support for digital joysticks (mapping their functions to key-sequences)
- new: Qt CHDMAN GUI: added a script-engine based on QtScript (ECMAScript/JavaScript)
- doc: completed all man-pages

v0.40, 18-SEP-2013:

- fix: demo- & arcade-mode setup dialogs: corrected driver status filter order
- fix: corrected item selection in favorites and play-history when restoring the game/machine selection
- fix: corrected device and BIOS set filtering for category- and version-views
- fix: QMC2 Arcade: worked around a weird issue on some GTK environments (which may implicitly set a buggy default style causing start-up crashes) by explicitly setting a safe built-in Qt style
- fix: QMC2 Arcade: corrected the path that's used when loading images from a ZIP
- fix: software-list: don't trigger an unwanted search during the loading phase
- fix: reopen/remap the currently selected joystick (if any) after scanning the available sticks
- imp: ROMAlyzer: improved logging when CHDs can't be found
- imp: variant launcher on Linux/UNIX: added fallback to the current working directory for launching QMC2 variant binaries
- imp: implemented a generalized solution for 'MinimizeOnVariantLaunch' and 'MinimizeOnEmuLaunch' which also saves/restores the current window states of all top-level widgets
- imp: QMC2 Arcade: added a '-language' command line option (using the main GUI's setting as the default, which is now customizable from within arcade themes as well)
- imp: QMC2 Arcade / ToxicWaste theme: the flip direction (cabinet <=> game-card) now adapts to where the user clicks on the 'flippable' item (left/right half of vertical center area vs. top/bottom area), the back-end default options are customizable from within the theme, the quit confirmation is optional now and the image-class shown in the cabinet can be selected on the game-card
- imp: suppress the initial ROM state filtering when no states or BIOS / device sets have been disabled (this speeds up loading in many cases), also do not run the actual filter when an individual set's ROM state is checked and doesn't change
- imp: slightly improved the loading performance for cached XML data and all dat-info sources
- imp: added support for Qt 5.1, however, the recommended Qt version remains 4.8 (when Qt 5 is used, the build rules will automatically disable embedder functionality on X11 platforms as well as all Phonon features on all platforms -- new implementations using QtMultimedia as replacement for Phonon and a rewrite of the embedder code will most likely be done at a later stage
- imp: MAME/MESS/UME emulator templates updated to 0.150
- imp: ROMAlyzer: changed file-status indication slightly, using capital letters for good and lower letters for bad states
- imp: added mamedb.com and progettoemma.net as additional MAWS sources and made progettoemma.net the new default URL
- imp: MESS device configurator: renamed available device configurations to stored device configurations and simplified some tool-tips accordingly
- imp: emulator control panel: exchanged LED on/off icons with fancier ones and added a third LED column
- imp: more SDL joystick related logging
- new: added display of software-state info as 'combined statistics' to the software-list widget (similar to the stats-label used for the game/machine list)
- new: QMC2 Arcade / ToxicWaste theme: added support for displaying emulator- and game-infos on the game-card and for manual vs. automatic cabinet scaling/positioning
- new: added 'tagged only' and 'favorites only' filter options to the arcade- and demo-mode setup dialogs
- new: added optional support for additional image formats for all kinds of artwork
- doc: added (preliminary) man-pages for all binaries
- inf: globally renamed the 'XML game/machine list cache' to just 'XML data cache'

v0.39, 11-JUN-2013:

- fix: software-list export: traverse the export map correctly
- fix: avoid crash when play was triggered on premature game/machine list data
- fix: minor: launch foreign emulators/IDs even if the current game/machine is a device set
- fix: don't remove/hide the system-notes detail page when the game-/machine-list is reloaded
- fix: slot-devices: default slot-options with non-default BIOS selections weren't passed to the emulator
- fix: Windows 8 specific corrections (especially related to the file-chooser and the welcome-dialog)
- fix: MESS device configurator: the UI setup wasn't correctly stored/restored under certain circumstances
- fix: MESS device configurator: double-clicking stored configurations could lead to a crash
- fix: MESS device configurator: adjust tab-orders after dynamically changing device-mappings and slot-options
- fix: MESS device configurator: correctly clear all device-maps and reset the slot-configuration to the default one when the 'new configuration' button is clicked
- fix: X11 embedder: call XUnmapWindow() & XMapRaised() after releasing an emulator to avoid that its window may be hidden, corrected a centering issue upon resizing of the embed-container
- fix: software-lists: floating software-snapshots should never be shown when their contents are the ghost-image
- fix: software-lists: corrected a rare UI synchronization issue when switching systems while a software-list is currently being created
- fix: software-lists: don't disable the complete widget when one or more expected software-lists weren't found
- fix: avoid a rare crash that could be caused by subsequently applying settings very quickly
- fix: QMC2 Arcade / ToxicWaste theme: corrected positioning of the imager-viewer (back-side)
- fix: options / joystick: automatically select the 'Map' function when the user clicks 'Apply' or 'OK' so joystick function mappings actually get activated (joystick functions won't be mapped when in 'Calibrate' or 'Test' mode)
- fix: honor the emulator's working directory (if specified) when verifying ROMs
- fix: avoid crash of the front-end when 'mame/mess/ume -listxml' crashes
- fix: minor: don't issue an actual search when no game/machine list data has been loaded yet
- fix: key-sequence scanner: avoid X Error: BadWindow invalid window parameter warning when grabbing the keyboard -- on X11, the window must the 'mapped' (shown) first
- fix: corrected joystick support on Mac OS X by implementing real calibration / axis value normalization -- see also BT #39
- imp: added tool-buttons to select/deselect all categories in the demo- and arcade-mode setup dialogs
- imp: software-list export: added the 'supported' column to the software-list export feature
- imp: software-lists: added a 'clear selection' item to the software-list's context-menu
- imp: updated MESS category.ini contributed by ASH to his latest version as of 28-MAY-2013
- imp: software-lists: save/restore an individual position of the vertical splitter for use with the software-detail widget
- imp: added support for multiple ZIPs per image type, specified as a semicolon-separated list of ZIP file paths
- imp: ROMAlyzer: when a set is analyzed, also check for any device-references and offer a context-menu item to analyze them separately
- imp: MAME/MESS/UME emulator templates updated to 0.149
- imp: HTML editor: added a shorter editor object reference named 'qmc2NEO' as an alternative to 'qmc2NotesEditorObject'
- imp: system- and software-notes templates: template macro additions ($EMULATOR_TYPE$, $SOFTWARE_STATUS$, $SOFTWARE_STATUS_UT$ and $SOURCE_FILE$)
- imp: updated & renamed the alternative system-/software-notes templates contributed by José Marcio Rezende Franco
- imp: MESS device configurator: minor UI improvements using fewer frames and some new icons
- imp: all MAME targets: added support for detection of HBMAME
- imp: minor speed ups on the initial loading of the game/machine list views
- imp: made XML cache loading/creation an interruptable process
- imp: X11 and Windows only: the scaling mode for snapshots taken through the embedder can now be selected
- imp: using Qt's built-in (= non-native) standard file-dialogs wherever possible (you can optionally switch back to using native dialogs, however, we don't recommend it due to possible issues on some platforms or desktop systems)
- imp: added a 'reset' action to all header context-menus (will make all contained columns visible and stretch them equally)
- imp: added support for samples to all MESS targets as well (MESS supports samples since sometime after 0.148u3), however, this doesn't include the sample-checker yet
- imp: available 'bios' and 'ramsize' options are now displayed with their descriptions (bios) or as human readable values (ramsize), including an indication for the default option and natural sorting
- imp: enabled free sorting for shortcut- and joystick-maps
- imp: log a warning to the front-end log when QMC2 finds multiple uses of the same set name during game-/machine-list cache creation
- imp: integrated zlib updated to version 1.2.8 (see zlib's change-log for details)
- new: system- and software-notes templates: added two new slots for use with zipped images: 'qmc2NEO.isZippedImage()' will determine if an image is from a ZIP, 'qmc2NEO.getImageData()' will return the base64-encoded image data which you can use in <img> tags (caution: may be slow and will inflate the HTML enormously -- only use this with the WYSIWYG editor!)
- new: HTML editor: added an option to show/hide the HTML tab
- new: system- and software-notes templates: added support for querying the XML (from -listxml) using XQuery through the new slots 'qmc2NEO.queryXml()' (will execute an XQuery on the complete XML data, warning: may be slow), 'qmc2NEO.queryLocalXml()' (same as before, restricted to a single game/machine and thus much faster) and 'qmc2NEO.getXmlResult()' (will return the list of result strings as an array)
- new: search-patterns used to match games/machines or software-list entries can now be negated on-the-fly through a setup-menu attached to the search-box's find button
- new: promoted 'Qt CHDMAN GUI' (see tools/qchdman) to non-WIP status as it meanwhile supports all 'chdman' commands
- new: allow merging the file-chooser mapping with the currently set device-mappings
- new: added a built-in palette-editor to easily set up UI colors (without the use of a Qt style-sheet or 'qtconfig' which isn't available on all platforms)
- new: added a slot-info cache for faster initial loading of data from '-listslots'
- new: added selectable zoom-factors for the software-list's floating snapshot-viewer and the embedder's snapshot-list/-viewer
- new: X11 and Windows only: snapshots taken through the embedder can now directly replace an image of any type; the image will be stored to the first (primary) folder and a backup file will be created there first (note that this is only available for images stored in folders, not for zipped images)
- new: added support for state-checking, -caching & -filtering of software-lists
- new: added a source file column to all game-/machine-list views
- new: added an option to allow for automatic emulator termination when a new one is launched (i.e. run one emulator instance at a time)
- new: added new QMC2 Arcade theme 'darkone' including additional functionality by Pete Beardmore
- new: QMC2 Arcade's default values for the command line switches -theme, -console and -graphicssystem now follow any customizations made in the main GUI's arcade mode setup dialog
- wip: adding support for freely definable additional artwork classes (system- or software-images)
- doc: the QMC2 FAQ has been moved to the wiki

v0.38, 11-JAN-2013:

- fix: corrected progress-bar updates when loading catver.ini or category.ini
- fix: corrected remapping of key-sequences using the Command key on Mac OS X
- fix: the key-sequence scanner now also scans num-pad keys
- fix: system-notes: template loading didn't work correctly initially
- fix: corrected full-screen switching when the menu-bar is hidden
- fix: Windows: corrected HLSL multi-part float handling
- fix: fall back to the default style when a previously set style wasn't found
- imp: system-notes: template macro additions ($PARENT_ID$, $ROM_STATUS$ and $ROM_STATUS_UT$)
- imp: updated MESS/UME variant logos / splash-screens and all app-icons -- thanks to Jacques Châtelet (JacKc)
- imp: demo-mode: added an option to launch emulators sequentially rather than randomly
- imp: Win32 MinGW build: changed the default for 'MKSPEC' to 'win32-g++-4.6' -- this assumes Qt 4.8, so whoever still uses Qt 4.7 has to pass 'MKSPEC=win32-g++' on the make command (i.e. 'make configure MKSPEC=win32-g++')
- imp: image-checker: potentially obsolete items contained in image- or icon-directories include files and folders now
- imp: control-panel images are now available to all MESS variants as well (i. e. for use with AntoPISA's new MESS controllers)
- imp: YouTube video player: added support for YouTube's new requirement to add session signatures to stream URLs
- imp: removed no longer required file-removal tool settings
- imp: MAME/MESS/UME emulator templates updated to 0.148
- imp: Mac OS X: replaced key-sequence 'Ctrl+O' with 'Ctrl+,' (commonly used short-cut for open preferences dialog); 'Ctrl+O' can now be used for its actual use case on Mac OS X (open/activate item)
- imp: software-lists: added a 'supported' column (possible values: yes/no/partially)
- imp: HTML editor: the menu-bar can be hidden now, and the editor's contents can be made read-only (i.e. to avoid unintended changes)
- imp: system- and software-notes: template loading allows asynchronous URL retrieval now (i.e. remote image URLs), indicating the current progress while loading
- imp: HTML editor: replaced the standard QWebView with the MiniWebBrowser's tweaked internal web-view to support JavaScript actions that open new windows
- imp: software-notes: template macro additions ($SOFTWARE_SUPPORTED$, $SOFTWARE_SUPPORTED_UT$, $SOFTWARE_INFO$, $SOFTWARE_INFO_STATUS$)
- imp: the documentation browser's zoom-setting is now restored as well
- imp: added ability to store an option's short-name in the emulator configuration template (i. e. <option default="roms" name="rompath" shortname="rp" type="directory">)
- imp: using a proxy-style when Qt 5 is detected to avoid single-click item activations (that's not really suitable for us)
- new: ROMAlyzer: the set rewriter and checksum wizard now also load repro-data from regular files (when they are stored in expected folders and have the correct file names / CRCs), the set rewriter can also reproduce sets in individual sub-directories (see 'reproduction type' in ROMAlyzer settings)
- new: demo-mode: added filtering by category, driver-status and set-names when selecting eligible sets for the demo
- new: image-checker: bad image files (subset of the missing ones) can now be filtered and removed by means of the GUI (so searching for bad image files in the log and manually removing them is no longer required)
- new: made a complete rewrite of the sample-checker which wasn't working correctly for ages -- see also BT #31
- new: MiniWebBrowser: added a search widget to find arbitrary text in web-pages
- new: MiniWebBrowser: added support for persistent cookies (stored in / retrieved from an SQLite database)
- new: added PDF.js -- a JavaScript / HTML5 PDF rendering library
- new: added support for HTML5 'localStorage' to the MiniWebBrowser and notes-templates (this allows templates to store and retrieve local settings)
- new: system- and software-notes templates: exposing the notes-editor object to JavaScript allowing templates to call editor slots directly (!) -- right now, there are four slots you can use: 'qmc2NotesEditorObject.loadCurrentTemplate()' will reload the template itself (for example to react on changed settings), 'qmc2NotesEditorObject.getIconData()' will return the base64-encoded icon data which you can use in <img> tags, 'qmc2NotesEditorObject.getColor()' will open a color-dialog and returns a named color, and finally 'qmc2NotesEditorObject.getImage()' will open a file-dialog to select an image file (see data/gmn/template.html for an example)
- new: MESS device configurator: allow in-place renaming of stored device configurations (see context menu)
- new: added support for a 'software info DB' using MAME history.dat's new (MAME & MESS) software infos, available in all variants -- thanks to Alexis Bousiges for his efforts and kind cooperation on this matter
- new: added ability to reset, revert and/or store individual emulator options by adding a column with respective action tool-buttons that are enabled/disabled according to the option's current ini-state
- new: file-chooser: folders can now be included in the file-list and are opened/followed when double-clicked or Enter/Return is pressed on them (there's also a new context-menu item for this); the folder-mode itself can be switched through a new menu-button in the widget's tool-bar (folders are hidden by default, select 'Show folders' to display them or 'Show folders first' to show them on top of the file-list, before any regular files)
- new: added a new QML based implementation of the long-awaited 'arcade mode' as a stand-alone application (QMC2 Arcade, see arcade/ folder)
- new: added support for Qt 5.0, however, the recommended Qt version remains 4.8 (when Qt 5 is used, the build rules will automatically disable embedder functionality on X11 platforms as well as all Phonon features on all platforms -- this is due to dropped Qt modules, add-on modules may cover this later perhaps)
- new: added alternative system- and software-notes templates contributed by José Marcio Rezende Franco
- new: added MESS category.ini contributed by ASH
- inf: the SVN repository has been moved to a new location -- use one of these URLs now: svn://svn.code.sf.net/p/qmc2/code/trunk or http://svn.code.sf.net/p/qmc2/code/trunk

v0.37, 17-SEP-2012:

- fix: changes made to multi-value floats as used in HLSL options weren't updated correctly
- fix: demo-mode: don't select device-sets
- fix: non-Windows: avoid a rare crash when exiting QMC2 while a running emulator is producing output on the notifier FIFO
- fix: don't allow tagging/untagging of parent-items in category- and version-views
- fix: file-browsers in emulator configuration dialogs used the wrong standard file-dialog so non-existing file names weren't accepted
- fix: ZIP-archived image files weren't correctly opened initially
- fix: full-screen switching on Ubuntu 12.04 (Unity desktop) didn't work correctly -- see BT #26
- fix: don't pass empty arguments when launching foreign emulators
- fix: non-Windows: the optional memory indicator wasn't updated because the corresponding timer didn't fire
- fix: MESS device configurator: when a configuration made with the file-chooser was saved, the current slot setup wasn't stored together with it -- rendering the stored item useless when slot customizations were required
- fix: corrected ROM status determination for sets containing only CHDs (but no ROMs)
- fix: the current emulator selection made on the game/machine-specific configuration tab wasn't saved upon reload
- fix: minor: corrected progress-text updates when certain operations are running 'in parallel' (i.e. loading the software-list while a full ROM audit is active)
- fix: avoid crash when no game/machine is selected and a 'play' action is triggered
- fix: MiniWebBrowser: corrected document history handling with regard to the availability of back- and forward-actions
- fix: set locale- and c-string-encoding to UTF-8 globally and handle XML data specifically on Windows to cleanly support international character sets
- fix: emulator wasn't launched under certain circumstances when the game/machine was filtered out due to its ROM status
- fix: use UTF-8 character encoding when reading game-/machine- and/or emulator-info DB dat-sources
- imp: adjusted the ghost-image used for videos (wrong text removed)
- imp: depending on the installed codecs, an unused YouTube widget may still cause load on the system, so it's now already destroyed when it's no longer required
- imp: updated redistributed Qt translations from Qt 4.8.3
- imp: unified the image processing to remove code duplication for different image types
- imp: check for the existence of the emulator's executable file before trying to actually run a null process (which may cause issues on Mac OS X)
- imp: Mac OS X build: added build option XCODE3 which (if set to 1) will disable the special handling when Qt 4.8+ is detected
- imp: MAME/MESS/UME emulator templates updated to 0.147 (added new core options ui_mouse and ui_active, removed option hide_cursor)
- imp: added an option to allow for setting QMC2's working directory to be the same as the executable's path (for special use cases, not commonly used)
- imp: replaced all QMC2 variant logos and splash-screens with improved versions from JacKc
- imp: Qt messages that are sent before the GUI is ready are now printed to the console (stdout) instead of eating them
- imp: emulator configuration widgets: all drop-down lists for 'bios' / 'ramsize' selections or options with pre-defined choices are now sorted, possible duplicates are removed and the number of visible items has been increased to 20
- imp: the file-chooser's folder selector is now also sorted / sortable
- imp: foreign emulator IDs can now contain arguments with white-space characters when they are enclosed in double-quotes
- imp: changed the file-chooser's sorting (by file name) to be case-insensitive
- imp: updated template format to v0.2.6 which adds support to ignore complete sections (globally or per target OS)
- imp: Mac OS X build: don't compile runonce as it's not used on Mac OS X (and has an X11 requirement)
- imp: integrated zlib updated to version 1.2.7 (see zlib's change-log for details)
- imp: Win32 MinGW build: added OS auto-detection for Windows so specification of MINGW=1 is no longer required (however, if MINGW is set, its value will be used regardless)
- imp: when a non-default (= foreign) emulator is selected for the current game/machine, the device-mapper and software-list tabs are disabled now
- imp: sets with empty names are now ignored, logging corresponding warnings when the game/machine list cache is recreated (this is a driver bug which also '-validate' will warn about)
- imp: Win32 VC++ build: added x64 support to the project generation script
- imp: added an advanced line-edit containing an icon to symbolize its function (used in certain search widgets)
- imp: changed the default short-cuts for adding games/machines to the favorites list (now Ctrl+J and Ctrl+Shift+J) to free the Ctrl+F short-cut for another/better use (i.e. for finding arbitrary text)
- imp: changed the default short-cut for 'About QMC2' (now Ctrl+B) to free the Ctrl+A short-cut which is commonly used for 'select all'
- imp: file-chooser: opened ZIP contents are sorted as well
- imp: completely revised the image cache internals, now also storing the file path the cached image was loaded from, which can be retrieved via the image's context-menu (the file path is not available in case of zipped images, though)
- imp: much better GUI response while recreating the XML cache and checking all ROMs (full audit)
- imp: animate searching for game/machine XML data when the user expands an item in the primary (full-detail) view
- imp: the menu-bar on Mac OS X is no longer 'native' because this misbehaves with multiple menu-bars that we have now
- imp: emulator configuration widgets are now initially hidden and shown after all options were loaded, which speeds up this process a little bit (you won't see a visual difference, though)
- imp: added OS detection for Windows 8 and Mac OS X 10.8 to the about dialog when Qt 4.8.3 or higher is used
- new: added support for David Haywood's (Haze) Universal Machine Emulator (MAME/MESS unification project) in the form of an additional variant called 'qmc2-ume' or 'qmc2-sdlume' -- see BT #22
- new: the YouTube video-player now supports local movie files as well
- new: added support for tool-bar customization
- new: allow the specification of semicolon-separated lists of folders for ALL image types
- new: added support for system- and manufacturer-logo images (i. e. AntoPISA's new MESS marquees)
- new: added support for the new MESS category.ini from ASH (UME targets merge the info with data from catver.ini, if applicable)
- new: added a check for the ROM path setting (a warning message will pop up when the ROM path hasn't been set or isn't available) -- see BT #28
- new: made a complete rewrite of the image-checker dialog, which now allows checks of ALL image types in a multi-threaded way -- this also fixes a long-standing bug on Windows, BTW (see BT #5)
- new: MESS device configurator: added support for nested slots, including real slot recursion
- new: software-lists: available mount-devices are dynamically updated whenever the device/slot setup changes
- new: added 3 new actions to tag / untag / invert tags of all visible sets (according to the current ROM state filter)
- new: game/machine detail tabs can now also be reordered directly in the GUI by dragging them with the mouse
- new: added a tool action to open a new empty browser window on demand
- new: <info> elements contained in a number of software-list entries are now displayed as well (requires very recent MAME/MESS/UME versions after 0.146u5, otherwise <info> elements are not contained in the -listsoftware output)
- new: items in all game/machine list views can now be tagged/untagged while the 'cursor' is moved, using the new (customizable) short-cuts Shift+Up and Shift+Down (works much like in 'Total Commander' when tagging/untagging files or folders)
- new: the file-chooser now offers an additional context-menu item to open regular files (not ZIP content yet!) externally by launching the default application that's associated with the file's MIME type (or extension)
- new: added a 'personal rich-text notes' detail for games/machines (same as the software-notes feature, but for systems this time)
- new: added command line option '-cc' which clears (removes) all emulator caches prior to starting up
- new: HTML editor: added document preview in built-in browser as well as 'new-from-template' and 'revert-from-saved-file' functionality
- new: MESS device configurator: added support for selecting the BIOS used in slot-devices (if applicable)
- new: software-lists: optional automatic adjustment of the emulator's -snapname parameter for easier creation of software-snapshots
- doc: use a common image directory instead of sym-links
- inf: the configuration template for MAMEUIFX32 has been dropped (unmaintained)
- inf: long project name changed to M.A.M.E./M.E.S.S./U.M.E. Catalog / Launcher II

v0.36, 21-MAY-2012:

- fix: ROMAlyzer: don't stop searching for CHDs at the first ROM path (when there are multiple ROM paths)
- fix: allow embedding of (MAME/MESS-like) foreign emulators again -- changes made in 0.35 prevented this completely
- fix: changed the default short-cut for the check template map action to 'Ctrl+Shift+C' -- the previous default of 'Ctrl+C' was awkward since it's usually used as short-cut for copy to clipboard
- fix: avoid crashes in the game list parser and the ROMAlyzer's checksum wizard due to unexpected nameless entries (first appeared in MESS 0.145u1+)
- fix: build: corrected a new set of compile-time bugs related to builds with PHONON=0
- fix: ROMAlyzer: after updating CHDs to the latest format, update the CHD header information from the replaced file before comparing the SHA1 checksums
- fix: minor: corrected a few texts with regard to the current variant's emulator type (MAME vs. MESS)
- fix: file-chooser: expand/collapse ZIP-contents on any type of 'activation' (i.e. not only on mouse double-clicks but also when enter or return are pressed, includes navigation via cursor-keys)
- fix: re-enable 'locked' widgets when the emulator can't be started for reading the game/machine data
- fix: MESS device configurator: corrected display of file-editor's data when there's only one available device instance (by synchronizing delegate/model updates)
- fix: don't start a verification process when the ROM state cache can't be opened for writing
- fix: file-chooser: the machine-dependent software-folder was not correctly pre-selected when existing device configurations were loaded in parallel
- fix: MESS device configurator: avoid a rare crash when systems are hovered very quickly (asynchronous updates may otherwise work on meanwhile invalid data)
- fix: clear favorites and play-history upon reload and make sure the last selected game/machine is correctly re-selected (if applicable)
- fix: ROMAlyzer: when repairing a set and the wanted CRC or name (header-)entry already exists in the target ZIP, recreate the complete ZIP file in order to replace the 'bad' file
- fix: ROMAlyzer: don't rewrite sets that are analyzed on behalf of the checksum-wizard (even if 'rewrite while analyzing' has been activated)
- fix: corrected some additional MESS-specific phrases and removed WIP-only stuff from key- & joystick-mappers
- fix: adjusted the behavior of the two main search combo-boxes and tied them more closely
- fix: software-lists: support multiple allowed device-interface types
- fix: MiniWebBrowser: don't raise main-widget / lower browser window(s) when selecting the path to save a downloadable resource
- fix: corrected character conversion when compressing HTML data stored in in-memory and on-disk web-caches (using QString::toLocal8Bit() instead of QString::toLatin1() now)
- imp: ROMAlyzer: LRU-caching XML data positions in order to speed up merge-processing
- imp: updated the MAME variant's logo with an improved version from JacKc
- imp: MESS device configurator: log a warning when '-listslots' crashes
- imp: MAME/MESS emulator templates updated to 0.146 (fixed duplication of option 'natural' in MESS templates)
- imp: interpret the new 'has no roms' status as 'good' (a.k.a. correct)
- imp: foreign emulator support: added $DESCRIPTION$ as an optional argument placeholder for the set's description
- imp: ROMAlyzer: interpret emu- and file-states of sets that have no ROMs as 'good' also in case of MAME (new since 0.145u2)
- imp: ROM status check: circumvent the corner case of sets without ROMs also in case of MAME (new since 0.145u2, see 'ide_baseboard' and 'hdd' devices)
- imp: ROMAlyzer: log possible driver XML bugs where a merge-name is given without a parent set to take it from (other than this, these cases are ignored and treated as 'good' merge-states)
- imp: when registering foreign emulators, the existence of the $ID$ placeholder on the supplied command line is now indicated through a green/yellow colored label (when $ID$ is missing, the configuration will most likely not work)
- imp: allow the specification of the emulator's working directory already in the welcome dialog
- imp: updated redistributed Qt translations from Qt 4.8.1
- imp: honor 'players' value for device sets where applicable (i.e. some input devices)
- imp: MESS device configurator: sort slot-options alphanumerically, add a separator between 'not used' and available options, allow disabling of default slot-options and indicate them as such
- imp: main widget: revised all auto-connected menu actions to use QAction::triggered(bool) (instead of a meanwhile deprecated signal)
- imp: slightly better responsiveness while loading cached XML data
- imp: Mac OS X build: avoid using xcodebuild for Qt 4.8+
- imp: replaced the 'MESS wiki driver look-up' with a ProjectMESS-based search since most data in the MESS wiki was lost, and ProjectMESS is the new de-facto '#1 web-resource for all things MESS' :)
- imp: the MiniWebBrowser's zoom-factor can now also be specified through a (mouse) wheel-event when the Ctrl-key is pressed at the same time (like most standalone browsers)
- new: ROMAlyzer: added support for CHD v5 (new since MAME/MESS 0.145u1) -- built-in analysis will work for CHD v3, v4 and v5; however, note that all 'CHD manager' functionality requires chdman from MAME/MESS 0.145u1+ now
- new: ROMAlyzer: added a function to store the current log contents to a file
- new: added tear-off capability to all menus within menu-bars
- new: added freely customizable lists of game/machine IDs (and descriptions) that can be attached to foreign emulators and be presented / launched through the menu
- new: both the MAWS (off-line) and the ProjectMESS driver look-up features save/restore their zoom-factors now
- new: experimental support for Qt 5, which is in alpha-stage right now (there will be no embedder support on X11 platforms in the first place, since they dropped some X11-specific classes like the QX11EmbedContainer -- an add-on for Qt 5 to revive this functionality is planned, but will probably not be available before Qt 5.1)
- new: YouTube video-player: you can now also 'paste' a YouTube video URL into the video-player itself, which will then start playing the respective video without attaching it to the play list
- new: about dialog: added output of run-time Qt library paths to the system-information page
- new: integrated zlib 1.2.6 to remove the extra requirement
- new: the MiniWebBrowser now supports and allows pop-up window requests when the build option BROWSER_JAVASCRIPT is enabled (which is the default)
- new: build option BROWSER_EXTRAS is now enabled by default which also activates the use of QtWebKit's Web Inspector in the MiniWebBrowser for everyone
- new: added a Spanish translation -- thanks to Daniel Barrado
- wip: adding a set rename tool to the ROMAlyzer which uses the -listxml outputs from both the old and the current emulator to gather the changes automagically
- wip: adding a Romanian translation (mostly done) -- thanks to Mihai Boisteanu
- wip: adding an Italian translation -- thanks to Stefano Cereda
- wip: adding a stand-alone CHDMAN GUI (see tools/qchdman/)
- wip: adding a Greek translation -- thanks to Kostas Albanidis
- wip: adding a Swedish translation -- thanks to Daniel Nylander

v0.35, 06-FEB-2012:

- fix: minor: hide the software-list favorites column 'device configuration' for MAME targets as it's a MESS-only feature
- fix: minor: corrected the main progress-bar's visual behavior when ROM status checking and software-list caching are running in parallel
- fix: MAME targets: the software-list widget wasn't cleared upon reload
- fix: the last active detail-tab's header wasn't always shown initially
- fix: software-snapshots were positioned incorrectly under certain circumstances
- fix: corrected a few minor log-scrolling issues
- fix: individual ROM checks didn't work correctly when the ROM status was 'not found' since output is written to stderr in this case and not to stdout as otherwise
- fix: YouTube video-player: avoid crashes on exit by waiting for all application threads to finish before returning to the OS
- fix: YouTube video-player: attached videos could get lost when changing the current game/machine very quickly
- fix: ROMAlyzer: correctly 'remove' the progress-bar item-widget before deleting it (worked w/o until Qt 4.7.x, crashed since Qt 4.8.0)
- fix: corrected restoration of main-widget's layout when the front-end was showing a maximized embedded emulator during clean up on the previous run
- fix: corrected Windows 64-bit builds with DEBUG=2 (see BT #21)
- fix: file-chooser: the underlying item model now produces correct minimum widths for icon-less columns (size and modification date)
- fix: embedder on X11: corrected initial input focus after launching a new embedded emulator
- imp: ROM status exporter: additional output-format choice ('all formats') to export the ROM states to all three formats at once
- imp: when a software-list can't be found (though it's expected to exist), leave the software-list widget disabled and don't try to parse the invalid XML (a warning will still be logged since this is actually an emulator bug, but probably also a wanted/known situation as told by etabeta78)
- imp: MAME/MESS emulator templates updated to 0.145
- imp: faster display of software-snapshots by using tool-tip like window attributes for the viewer widget (this also fixes bad-window errors on X11)
- imp: slightly bigger icons in all game/machine list views
- imp: updated template format to v0.2.5 which adds support for an optional 'part' attribute that can be used in file-type options to specify the extracted part of the file's path (currently only "basename" is supported, used by the effect-option)
- imp: loading of software-lists can be interrupted now and is indicated accordingly for larger lists (i.e. cpc_cass/cpc_flop)
- imp: Mac OS X build: moved macx/Info.plist.in to arch/Darwin/Info.plist.in where it belongs
- imp: build: added a 'configure' make target to create platform dependent project file(s) and stop (i.e. to open it in XCode and build from there on Mac OS X, or to run MinGW make in job-server mode on Windows)
- imp: MiniWebBrowser: browser-plugins are now enabled by default (see make option BROWSER_PLUGINS)
- imp: build: removed make option PRETTY as it's no longer usable in the supported Qt versions
- imp: Mac OS X build: provide application icons (.icns) to be associated with the apps
- imp: created new logo images (thanks to JacKc)
- imp: ROMAlyzer: checksum-wizard: when the user changes the checksum-type and the current checksum is available in the 'other' type as well, display it in the line-edit (not available when the checksum is edited manually)
- new: the ROM state filtering mechanism can now be enabled/disabled on-the-fly (the default is 'enabled', just as before)
- new: added support for multi-device software-list entries as well as automatic vs. manual mount-device selection (includes the ability to mix parts from different software-list entries)
- new: added an alternative game/machine search entry box to the tool-bar
- new: added a CSV and ASCII export tool for software-lists
- new: added import/export functionality for software-list favorites
- new: changed the MESS device configurator so it offers available device-instances based on the slot-options specified, thus allowing to mount them as well (through the legacy device-mapper and the file-chooser)
- new: added ZIP support for software-snapshots
- new: X11 and Windows only: game/machine icons are now also shown on the tab headers of embedded emulators
- new: all images have an additional context-menu item ('refresh') now to clear and reload their cached pendants
- new: integrated the HTML editor from Qt Labs / graphics-dojo for all kinds of (upcoming) rich-text editing purposes
- new: added content-zoom to the MiniWebBrowser
- new: top-level windows can now optionally be minimized upon emulation launch and automatically restored when the (last) emulator instance has ended
- new: YouTube video-player: added a semi-transparent overlay widget to display status information at the bottom of the player's viewport
- new: software-lists: added software-compatibility filtering
- new: added a 'MESS wiki' detail to look up available driver information
- new: added an option to suppress all messages sent through QDebug and related convenience functions
- new: added an optional startup splash-screen utilizing the new logos
- new: added support for emulator-embedding on Windows (!) -- note, however, that embedding of emulators running in Direct 3D mode ('-video d3d') has two known issues: full-screen switching will lead to a crash (of the emulator) and screen-shots aren't taken correctly from within the GUI (just a black image)
- new: X11 and Windows only: added an option to select the default launch-mode used when starting emulation by activating (i.e. double-clicking) an entry in any list
- new: X11 and Windows only: replaced the style-controlled embedder-release icons (usually a red 'X' which some users wrongly interpreted as 'exit emulator') with a more suitable / less irritating and style-independent icon by setting explicit style-sheets on the tab-bars of all embedders
- new: added two options to allow for hiding of BIOS and/or device sets in all master-lists (see Front end -> Game/Machine list in the main setup dialog) -- both will trigger an automatic reload when changed
- new: added a dock-able/floating software-detail widget with a separate snapshot-browser, a ProjectMESS software-lookup feature, and an HTML editor/viewer for personal rich-text software-notes
- inf: the new required minimum Qt version is 4.7.0, support for older versions of Qt has been dropped

v0.34, 15-NOV-2011:

- fix: MAME targets: don't auto-resize the last column in the game/machine list views when toggling the use of catver.ini (it annoys more than it helps)
- fix: build: corrected compile-time bugs related to builds with PHONON=0
- fix: adjust icon sizes when showing the audio-effect dialog initially
- fix: removed flicker on changing game-/machine-list views
- fix: corrected a few MESS-specific phrases
- fix: corrected delegate-sizing issues when there's only one device instance in the MESS device setup
- fix: Mac OS X: set ROMAlyzer's parent widget in order to avoid context-menu displacement
- fix: ROMAlyzer: the ROM set's context-menu should be available also when the set rewriter hasn't been enabled
- fix: MAME targets: category- and version-views were not created initially when switched to via the view-selector combo-box
- fix: MAME targets: demo-mode: avoid floating-point exception when no games were selected by the filter
- imp: updated minizip to version 1.01h
- imp: YouTube video player: decode (percent-)encoded error messages before logging them
- imp: setup dialog: conflated all formerly split emulator- and game-info DB settings
- imp: MAME/MESS emulator templates updated to 0.144
- imp: ROMAlyzer: better 'no dump' indication
- imp: enabled audio-effect widgets for MinGW builds (they work fine when the official Qt DLLs are being used, otherwise set the new AUDIOEFFECTDIALOGS make option to 0 in order to disable them)
- imp: X11 only: minor embedder optimizations regarding widget resizing
- imp: YouTube video player: added support for YouTube's new way of presenting video stream URLs
- imp: general overhaul of the main-widget's layout parameters to allow for a somewhat more 'compact' design
- imp: the working directory of the external ROM tool can be specified now
- imp: build: added EMU as an alias for the EMULATOR make option
- imp: locale-aware statistics in the ROM status exporter and the GUI's ROM status bar
- imp: updated redistributed Qt translations from Qt 4.7.4
- new: added a 'driver status' column to all game/machine lists (or views)
- new: Windows only: the other variant's exe file can now be specified explicitly (the default is to search for it only in the directory where the calling variant was started from) -- this works also when you rename the exe files; you can additionally specify the command line arguments passed to the other variant (note that this is an independent setting and would also be used when the variant exe is not overwritten!)
- new: support for MAME's/MESS's new device-referencing (new since 0.143u2+ SVN)
- new: Mac OS X only: the tool-bar can now optionally be unified with the title-bar
- new: MESS targets: support for machine-specific device slots / slot options, integrated with the MESS device configurator
- new: the MESS variants now use their own logo, and all variants use new unified applications icons -- thanks to Anna Wu
- new: added a new tool-function to allow for forced removal of ALL emulator related caches at once
- new: added support for the new 'messinfo.dat' file from AntoPISA (see http://www.progettosnaps.net/messinfo/)
- new: completed the support for software-lists in MAME and MESS (ZIP-support for software-snaps will be added later)
- new: customizable columns in all game-/machine-list and software-list views
- new: MESS targets: a new 'file chooser' dialog has been added to the MESS device configurator as an easy-to-use alternative to the manual setup
- new: MESS targets: device type icons are now displayed to better symbolize MESS device instances
- new: ROMAlyzer: you can specify an additional source ROM path for the set rewriter in order to allow for merging updates
- new: added support for item-tagging and a number of related operations that can now also be performed for tagged games/machines
- new: for ZIP-archived icons (actually the only practical way to store them) support for ICO format has been added -- this means that for instance MAMU's icon can now be used directly, w/o conversion to PNGs!
- new: icons are now also supported for all MESS targets
- wip: adding a Java (Eclipse/SWT) based editor/translator for emulator templates (see tools/qmc2_options_editor_java) -- thanks to Marcelo Bossoni
- inf: note that the versioning pattern has changed: we now just count the releases and follow the simple scheme '0.XX', where XX is the release number
- inf: note that the minimum required MESS revision now is SVN r12599 (or MESS 0.143u3)

Ancient change-log entries prior to QMC2 v0.34 are no longer maintained in the SVN tree since v0.39!

The archived change-log can be downloaded from here in case you're interested.