CHANGES - v0.2.b20, 29-JUN-2011
fix: general bug fixes
imp: improved functionality
new: newly added functionality
wip: (incomplete) work in progress
doc: documentation changes
inf: informational only
v0.2.b20, 29-JUN-2011:
- fix: ROMAlyzer / checksum wizard: correctly handle ROM files when their names contain special characters (i.e. '&')
- fix: corrected the handling of repeated log messages (the repetition counter was correctly logged, but the actual new message was eaten)
- fix: remove Phonon effects asynchronously (aka QObject::deleteLater()) -- note that this finally also fixes the long-standing post-mortem crash on Mac OS X
- fix: file and directory edit widgets did only commit any data changes when they were 'edited', but not when their data changed 'spontaneously' -- see bug tracker ID #17
- fix: MESS targets: avoid crash when exiting while a device setup is open
- fix: emulator configuration: correctly position the text cursor for 'int' and 'float' option types as well
- fix: corrected hiding of category-/version-columns in the category-/version-views
- fix: embedder: under certain window-managers (i.e. KDE4 >= 4.6) the snapshot-viewer wasn't correctly updated -- fixed by adding an explicit paintEvent() method which just repaints the background brush
- fix: Win32: emulator control panel: hide LED0-, LED1- and status-columns, because notifiers aren't supported on Windows (yet)
- fix: build: corrected the default image directory settings used for /etc/qmc2/qmc2.ini during installation (see inst/qmc2.ini.template)
- fix: minor: put arguments containing white-space characters in double-quotes when presenting/copying the emulator command line
- fix: log file paths weren't correctly set up on the initial run, so logs were written only on subsequent runs
- fix: corrected a rather old bug within the game/machine-list cache creation code that could've led to rare (and hard to reproduce) crashes
- fix: ROM status exporter: CSV and HTML output formats didn't honor the specified ROM status filter
- fix: ROMAlyzer: corrected (minor) overflow issues caused by using plural-translation with large unsigned numbers (Qt only supports this cleanly for signed integers)
- imp: SDLMAME/MAME/MAMEUIFX32 templates updated to 0.143 (new option menu for MAME, removed option uimodekey for MAME, changed default value of audio_latency for SDLMAME, added new options use_cpanels, use_marquees and confirm_quit for all, added many new HLSL options for MAME)
- imp: SDLMESS/MESS templates updated to 0.143 (changed default value of audio_latency for SDLMESS, added new options use_cpanels, use_marquees and confirm_quit for all, added many new HLSL options for MESS)
- imp: ghost image enhanced, including a derived 'no video' pendant
- imp: improved log output when the validation of the emulator executable fails
- imp: MESS targets: added new / alternate emulator type identification string ('M.E.S.S.' vs. 'MESS') as used since 0.142 SVN -- see bug tracker ID #16
- imp: MESS targets: the device configurator now also saves / restores the last selected setup (if any) and includes a context menu for the device instance map
- imp: added an option to let the user decide if the ROM status icons are to be shown or not (see in game/machine-list tab of the main setup dialog)
- imp: avoid potential blocking when synchronously calling external programs
- imp: updated template format to v0.2.4 which adds support for a new 'combo' option-type (editable combo-box with pre-defined choices the user can select from), a new 'visible' attribute to hide certain options (esp. to hide the ramsize option for MAME, where it's not used, but the emulator still reports it as a valid option), two additional option types ('float2', 'float3') for multi-part floating point values and an optional decimals attribute for all float types to specify the precision (default precision: '6 decimals')
- imp: setup dialog: added the ability to reset a customized application- or log-font as well as to reset the style-sheet (note that the system's default font will be gathered during startup, so if its value changes at run-time you will have to restart QMC2 for correct behavior)
- imp: reduced (eliminated?) flickering upon creation of game-/machine-specific emulator configuration widgets
- imp: the game/machine search function now also searches through the 'short names' (or game/machine IDs), so for instance entering 'snes' would also return valid results for MESS
- imp: variant launching now also works on Windows (it's assumed that the 'other' variant exe can be found in the same path as the currently running one)
- imp: MESS targets: device configurator: modified the extension filter to be case-insensitive when browsing for device files, added a 'clear' button to reset a device instance mapping and added a 'remove configuration' action to the context-menu for available device configurations
- imp: ROMAlyzer: honor the system locale when logging CHD header information (logical size and other numbers)
- new: added command line option -qmc2_config_path to allow for overwriting the path where QMC2 stores its setup, caches etc. -- it's in the user's responsibility to copy/move the data to the desired directory (otherwise QMC2 will start over, which may be wanted behavior, though)
- new: support for game/machine attached YouTube videos (Phonon-based video player)
- new: added 4 new tool-functions to allow for forced removal of any game-/machine- and software-list related cache data stored on disk
- new: added support to provide lists of available BIOS sets (MAME & MESS) and RAM size options (MESS-only) in the game/machine-specific emulator configuration widgets
- new: MESS targets: added a 'general software folder' setting used as the default directory for the MESS device configurator (when no individual software folder was specified explicitly); when a sub-folder named as the currently selected machine exists in this directory, that folder will be selected automatically
- new: MESS targets: enabled the use of a 'cabinet detail' for MESS as well
- new: added support for the MinGW (GCC) compiler on Windows (you need the MAME dev-tools plus the QMC2 add-on package for your architecture)
- wip: completing the support for software lists -- basically working, but some planned functionality is still missing, and there are open questions regarding the official way to scan the hash XML data
- doc: added Q2.14, Q2.15, Q2.16 and Q2.17 to the FAQ
v0.2.b19, 03-APR-2011:
- fix: ROMAlyzer: corrected status determination for ROM files that have no dump (but for which the file size or any checksums are available through the XML data)
- fix: corrected the scrolling behavior of the front-end and emulator logs
- fix: MESS targets only: corrected ROM status determination for machines that require no ROMs
- fix: correctly display document titles / title changes in the mini web browser
- fix: MP3 player: corrected auto-repeating of pressed (and held) fast-forward / fast-backward buttons
- fix: corrected MAWS web-cache compression (works also on Windows now)
- fix: embedder: avoid left-over embed container widget when an emulator dies unexpectedly while it's currently being embedded
- fix: demo mode: avoid saving game configurations while in demo mode (may crash)
- fix: corrected the conversion to/from some (HTML encoded) special characters as used in a few game/machine descriptions and manufacturer names
- fix: ensure correct parsing of XML attributes when retrieving game/machine details
- fix: mini web browser: don't produce lower case URL patterns when validating entered strings
- fix: corrected ROM cache updates on individual ROM status checks
- imp: ROMAlyzer: improved performance for CRC identification of ZIP-archived ROM files
- imp: ROMAlyzer: generally improved progress indication
- imp: all logs are now based on read-only QPlainTextEdit's as this class is much better optimized for large amounts of plain-text data (compared to rich-text capabable QTextBrowser's, which were used before)
- imp: SDLMESS/MESS templates updated to 0.141 (new option uifont, changed default value of writeconfig)
- imp: SDLMAME/MAME/MAMEUIFX32 templates updated to 0.142 (new option ramsize for all, new options syncrefresh, bench and watchdog for SDLMAME, removed option uimodekey for SDLMAME)
- imp: MESS targets only: for machines that require no ROMs, the ROMAlyzer will now display both their emulation- and file-states as 'good' (as opposed to 'unknown' / 'not found' which was used before)
- imp: launching of BIOS sets will no longer be prevented (it actually makes sense for some of them) -- except in demo mode, where BIOS sets are never selected
- imp: Windows build: revised the VC++ project generation script to be fully automatic and to also support VC++ 2010 (requires sed for Windows now!)
- imp: support for additional XML data in game/machine details (tag and mask as sub-elements of configuration)
- imp: embedder: when embedder maximization is turned on, the menu-, status- and tool-bars as well as the game-/machine-list status frame are now automatically hidden while an emulator is shown
- imp: embedder: the embedder maximization toggle button now uses two icons to indicate the action taken when it's clicked
- imp: updated redistributed Qt translations from Qt 4.7.2
- new: ROMAlyzer: added a checksum wizard to search for SHA1 or CRC hashes in all sets, to qualify the states of the results and to repair bad sets from good ones (note: the set repair function works only for ZIPs at the moment -- create backups before using it!)
- new: ROMAlyzer: if a ROM or CHD file that's expected to be merged from a parent set is loaded from the child set instead, a warning is logged (may be obsolete); the report will contain green (OK), yellow (warning) or red (critical) symbols to indicate the merge status
- new: ROMAlyzer: added a set rewriter function to programmatically rewrite (clean) ROM sets on demand and/or while analysing them (works only for ZIPs!)
- new: ROMAlyzer: the number of reported sets held in memory can now be limited (which is important for long batch runs where the memory consumption can otherwise grow enormously); the new default behavior now is that after 1000 analyzed sets the ROMAlyzer will start to remove the oldest reports
- new: you can now select the position chosen by QMC2 when scrolling to the current game/machine item (the setting actually applies to all views & lists); the default is top (= old behavior)
- new: all game/machine detail images now have a context menu with a 'copy to clipboard' item
- new: added new compile-time setting BROWSER_PREFETCH_DNS to allow for prefetching of DNS lookups by the mini web browser (Qt 4.6 and higher)
- new: embedder: embedded emulators can now automatically be paused when they are hidden and resumed when they are shown (requires the MAME/MESS notifier FIFO in order to correctly track any state changes)
- new: embedder: the current status of an embedded emulator is now indicated through traffic lights in the respective tab widget header
- new: added support for a 'number of players' column to the game/machine list as suggested by Francisco Javier Felix (csfax) -- see bug tracker ID #14
- new: ROMAlyzer: added a 'copy to clipboard' function to copy the analysis output for the currently selected set to the system clipboard (as formatted text)
- wip: completing the support for game/machine attached youtube.com videos -- note: this is a Qt 4.7+ only feature as it uses the embeddable youtube.com video player which in turn needs the npviewer browser plugin (and that's only cleanly supported since Qt 4.7)
- doc: updated Q1.7.2 in FAQ to reflect openSUSE 11.4
- inf: SDLMAME & SDLMESS targets only: the output notifier FIFO (/tmp/sdlmame_out) is no longer removed when QMC2 exits to allow for clean concurrent use by multiple variants (that's actually a work around because SDLMAME & SDLMESS both use the same FIFO, and there's apparently no portable way to find out if it's opened by another process to decide when it's eligible for removal)
v0.2.b18, 02-JAN-2011:
- fix: welcome dialog: the initial/optional hashpath setting must be stored under MESS (not MAME)
- fix: Qt 4.7+ only: worked around a Qt bug that caused the first embedded emulator whose options were activated to disappear (visually)
- fix: corrected concurrent/mixed joystick control when emulators are embedded
- fix: avoid a QWebInspector warning by setting the application's organization name (only for builds with BROWSER_EXTRAS=1); as a result, QWebInspector will now correctly (re)store its settings in ~/.config/qmc2.conf
- fix: corrected cursor positioning when editing strings in delegated item views (emulator configuration widgets and MESS device setup)
- fix: avoid possible qUncompress() warnings due to empty input data
- fix: embedder: corrected client resizing issues on maximized embedded emulators
- fix: embedder: make sure the next visible embedded emulator (if any) gains input focus when the currently focused embed client is released
- fix: set the codec for C-string conversion to the current locale's codec in order to correctly support unicode characters used in XML data (however, note that this makes the creation of XML- and gamelist-caches a bit slower)
- fix: ROMAlyzer: just because chdman verifies the file integrity as good doesn't mean that it's the wanted file, so we still need to use the header checksums for comparison
- imp: foreign emulator support: a working directory can now also be specified in the registration of foreign emulators (this was particularly added to support RAINE, but it's a good idea anyway)
- imp: SDLMESS/MESS templates updated to 0.140 (no new or changed options)
- imp: SDLMAME/MAME/MAMEUIFX32 templates updated to 0.141 (new options profile and bench for MAME, new option uifont for all, changed default value of coin_lockout for MAMEUIFX32, removed option volume_adjust for MAMEUIFX32, new option hashpath for all)
- imp: UNIX build: forcedly disable pretty compilation output ('make PRETTY=1 ...') for Qt 4.7+ as it produces irritating (but harmless) shell warnings
- imp: updated redistributed Qt translations from Qt 4.7.1
- imp: embedder snapshot tool: the snapshot viewer now also hides itself when the escape key is pressed -- we're no longer bypassing the X11 window manager and are instead using a managed frameless window (the window manager must understand Motif and/or NETWM hints for this to work; however, most - if not all - modern WMs should be able to handle this)
- imp: embedder: cleaner layout handling to avoid flickering borders due to auto-maximization
- imp: ROMAlyzer: checksum columns will only be shown in the analysis report when their calculation has been enabled in the settings
- imp: support for additional XML data in game/machine details (status for ROMs, disks and software-lists, optional for ROMs and disks)
- new: embedder: the embedder options drop down menu now also contains a copy command item
- wip: adding support for game/machine attached youtube.com videos -- will likely only work for Qt 4.7+ as it uses the embeddable youtube.com video player which in turn needs the npviewer browser plugin
v0.2.b17, 22-OCT-2010:
- fix: embedder snapshot tool: the first snapshot clicked wasn't displayed in the viewer
- fix: demo mode and ROM checks aren't allowed to run at the same time (would crash); additional emulators shouldn't be launched while in demo mode -- both will be avoided now
- fix: ROM check: on fast machines, the first few check results got lost sometimes (this was a serious bug!)
- fix: the game/machine status indicator wasn't correctly updated when the ROM status of the currently selected game/machine changed during a ROM check
- fix: consider the MAWS cache as invalid when the MAWS base URL is changed (cleared now)
- fix: corrected widget layout restoration for image- and sample-check dialogs
- fix: when the tool-executor dialog gets closed while the external program is still running, the process must be killed
- fix: MESS targets only: don't try to load machine icons (we don't support them anyway in case of MESS)
- fix: ROMAlyzer: corrected icon size adjustment
- fix: ROM status toggles were effectively disabled when the applied configuration was restored by the user
- fix: embedder: corrected initial focus and container maximization issues
- fix: joystick test widget: if a style sheet is active, the button test labels must be colorized with a style sheet as well (instead of changing their palette)
- fix: icon sizes of the MAWS quick download setup dialog are now also correctly adjusted
- fix: ini-importer/exporter: when the inipath hasn't been set explicitly, try to use the template's default value instead
- imp: SDLMESS/MESS templates updated to 0.139 (no new options, corrected default value for option writeconfig)
- imp: SDLMAME/MAME/MAMEUIFX32 templates updated to 0.140 (no new or changed options)
- imp: Mac OS X build: determine correct SCM revision used for CFBundleVersion in Info.plist, call macdeployqt only when necessary, use correct permissions on directories for system-wide installation
- imp: demo mode dialog: added a label to display the name of the currently played game
- imp: about dialog: supported MIME types (Phonon backend) shown on the sys-info page are sorted now
- imp: support for additional/new XML data when retrieving game/machine details (configuration, adjuster, category and softwarelist)
- imp: updated the MAWS quick download links to the current site layout
- imp: the tool executor dialog can now auto-close and copy the tool's output to the front end log (i.e. for debugging)
- imp: additional empty-line consolidation for game/machine info texts
- imp: the demo mode dialog now (re)stores its geometry
- imp: build: cleaned up the build system in many aspects, added several new make options (for special build environments)
- imp: keep an internal run-time index of the XML data when searching and retrieving game/machine details (making subsequent retrievals of the same data slightly faster)
- imp: embedder: using the internal emulator ID to set the WM_CLASS property in order to make the emulator's X11 window uniquely identifiable (this means that multiple windows with the same emulated game/machine can now be cleanly embedded!)
- imp: the hierarchical parent/clone view is now also hidden during game/machine list reloads (if applicable)
- imp: embedded emulator windows are now automatically maximized to use all available space within their parent widgets (no margins)
- imp: file & directory editors in the emulator configuration widgets use tool-buttons (instead of push-buttons) now for better consistency
- imp: textual descriptions for emulator exit codes
- imp: using separate semaphores for the serialization of log data (front end and emulator logs)
- new: added generic support to drive a ROM tool for any external processing based on the game/machine ID ($ID$) or description ($DESCRIPTION$)
- new: URLs in the game/machine and emulator info DBs are now directly clickable (opening the URL in the desktop's default browser, if any)
- new: MESS targets only: MESS wiki texts from sysinfo.dat are now converted to HTML (far from perfect, but basically working fine)
- new: experimental support for Qt 4.7 -- browser plugins appear to work nicely using Qt 4.7, so you could enable the compile-time option BROWSER_PLUGINS in this case; however, there's at least one embedder-related issue left: toggling the embedder options will lead to a black screen for the embedded emulator's window, but only the first time it is used (strange)
- wip: MESS targets only: completing the support for MESS software lists -- basically working, but some functionality is still missing
- wip: started to add support for an optional ROM/CHD database, a repository to store and retrieve unique copies of ROM and CHD data
- wip: added the current template-tool wip to the SVN trunk
- doc: updated Q1.7.1 and Q1.7.2 in FAQ to reflect Ubuntu 10.04, Ubuntu 10.10 and openSUSE 11.3
- doc: updated the ROM status table in section 4 of the README to better describe the meaning of the different states
- inf: Greek translation dropped
v0.2.b16, 30-JUL-2010:
- fix: correctly clear the MESS device configurator when the machine list is reloaded
- fix: MP3 player (cosmetic): forcedly stop the progress bar's unknown length animation when a stream (or track) is stopped
- fix: Mac OS X build: removed i386 and ppc requirements from the qmake/xcodebuild configuration
- fix: Mac OS X build: corrected build rules for the mixed Qt/Cocoa environment
- fix: if a font hasn't been set yet, use the QApplication's current font to initially feed the font dialog (on Mac OS X, 'Arial' and 'Courier New' are used as the initial fonts for that dialog)
- fix: removed the deprecated Encoding key in the desktop entry template (see http://standards.freedesktop.org/desktop-entry-spec/latest/apc.html)
- fix: ini-importer: correctly handle quotation marks and white space in string values
- fix: Qt bug circumvention on Mac OS X: combo box and button pop-ups were strangley displaced in some parentless dialogs
- fix: corrected the welcome dialog's UI (logo pixmap wasn't displayed)
- fix: MP3 player: corrected multi-track selection behavior when in playback mode
- fix: tweaked full sreen startup for Qt 4.6+ to ensure that the main window is raised
- fix: restore Qt's default message handler shortly before exiting (this may fix crashes caused by Qt warnings posted after the QApplication object has been destroyed)
- imp: SDLMESS/MESS templates updated to 0.138 (new option newui for MESS only, ignored in all SDLMESS builds)
- imp: SDLMAME/MAME/MAMEUIFX32 templates updated to 0.139 (new option writeconfig)
- imp: added / changed a number of icons in the classic image set
- imp: updated template format to v0.2.3 which adds support for OS-specific default attributes and the ability to ignore certain options on specific OSs (namely Mac OS X)
- imp: besides better text, the welcome dialog now also includes an optional entry to specify the hash path (in case of MESS, which needs it to support software lists cleanly)
- imp: the MESS device configurator now also determines the devices' brief names (to make it compatible with MESS software lists)
- imp: build: added make options BROWSER_JAVA and BROWSER_JAVASCRIPT to allow for a compile-time decision to enable Java and/or JavaScript (default: both enabled, current behavior)
- imp: about dialog: added output of the Qt build key and MIME types supported by the Phonon backend to sys-info page
- imp: MP3 player: display the buffer fill level (percentage) while in buffering state
- new: MP3 player: when Qt 4.6+ is used, the volume slider is replaced with a nice new volume dial
- new: MP3 player: support for available audio effects (depends on Phonon backend capabilities) -- CAUTION: certain effects may cause crashes!
- new: you can now specify the working directory that's used when the emulator is executed in play or demo mode (optional, but recommended)
- new: MP3 player: the playlist now supports drag & drop to move items internally
- wip: MESS targets only: support for MESS's new -listsoftware feature (new since version 0.138) as a new machine detail -- not really working yet, but basic GUI integration and software list caching are done -- thanks to etabeta78 for the suggestion
- doc: added Q1.7.4 to FAQ
v0.2.b15, 16-MAY-2010:
- fix: correctly change the view menu's and game list tab's icons when the view is selected via the combo box under the game/machine list
- fix: ROMAlyzer (cosmetic): forcedly update the result tree widget after each individual analysis (circumvents rare update issues when the ROMAlyzer isn't the active window)
- fix: correctly honor the escape key in the global emulator options when its temporary search widget is hidden (i.e. cancel/close the setup dialog instead of eating the key press)
- imp: SDLMESS/MESS templates updated to 0.137 (new/changed options debug_internal, natural and uimodekey)
- imp: SDLMAME/MAME/MAMEUIFX32 templates updated to 0.138 (no new or changed options)
- new: added boolean option PlayOnSublistActivation to interprete item activations in search-, favorites- and played-lists as start playing commands instead of jumping to the game/machine list (default: false, current behavior)
- new: added a new ROM types column to all game/machine lists and the ROM status exporter (the game/machine list cache will be updated automatically)
- new: the exit/stop action now blinks when there's background activity, giving better indication of the activity itself as well as the action's second function (stop all current activity)
- new: MAME targets only: added optional support for catver.ini from http://www.progettoemma.net/?catlist; this includes standard game list integration as well as two new views (view by game category / view by emulator version the game was added)
- new: MP3 player: also handles MP3 streams now (simply add a valid URL instead of a file name)
v0.2.b14, 12-MAR-2010:
- fix: MAME/MAMEUIFX32 templates: corrected default value for audio_latency, added new option numprocessors
- fix: build: disabling joystick support caused compilation errors -- thanks to Marcelo Bossoni for reporting the issue
- fix: corrected a set of initial setup issues (when there's no valid user-scope configuration for the respective QMC2 variant)
- fix: corrected template checking for default values containing white-space (bug tracker ID #11)
- fix: after checking icons, widget updates to the detailed game/machine list were disabled -- thanks to Robert Hamberger for reporting the issue
- fix: the game/machine list header's sort indicator wasn't correctly shown when the load process finished
- fix: corrected the MP3 player's internal state handling
- fix: avoid crashes when switching style sheets on-the-fly
- fix: avoid auto-scrolling of any game-/machine-list when returning from an embedded emulator
- fix: prevent the menu-bar's context menu from being displayed (it may irritate the user that settings made through it aren't (re)stored)
- fix: corrected full screen restoration on startup for desktops with multiple screens
- imp: the search pattern combo box is now part of the search tab widget (which appears more intuitive and leaves vertical space for better uses)
- imp: delaying initial main widget updates until all basic initializations & GUI reconstructions are finished
- imp: added distribution-specific package specs to the source tree (see directory pkg-specs/)
- imp: delaying automatically triggered ROM checks for 250ms (in the hope it avoids rare crashes on slower systems)
- imp: nice performance improvements for ROM state filtering and loading of cached data (ROM state cache, game/machine list cache and XML cache)
- imp: SDLMAME/MAME/MAMEUIFX32 templates updated to 0.137 (new options debug_internal, natural and uimodekey)
- imp: SDLMESS/MESS templates updated to 0.136 (new option numprocessors)
- imp: embedder snapshot tool: positioning the snapshot viewer more intelligently, scaling the snapshot preview down to 50% of the captured size (if its size is larger than the native resolution)
- imp: build: QTDIR is no longer used -- use QMAKE instead, which defaults to qmake (that is, the qmake command found in $PATH)
- imp: added new alternative image sets circles and cubes (95% the same as the classic image set, except the colored spheres are replaced with styled circles / cubes)
- imp: embedder: show a message box and let the user decide if to retry an embedding operation if a window ID couldn't be found but the corresponding emulator was active at that time
- imp: honoring desktop/screen geometry limits when positioning context menus
- imp: setting the update delay to 'none' (0) will now cause synchronous updates when the game/machine selection changes; values higher than 0 will cause asynchronous updates just as before
- imp: embedder snapshot tool: by default, take snapshots in the game's/machine's native resolution
- imp: build: added the new make option L_FLAGS to pass additional flags to the linker
- new: embedder: added a toggle switch for automatic horizontal maximization of embedded emulator windows
- new: ROMAlyzer: CHD manager integration for optional deep verification (+ fixing) and automatic updates of CHDs -- caution: create backups before enabling the CHD manager!
- new: the main widget's splitters now have their own context menus to allow for orientation flipping and swapping of their sub-widgets/sub-layouts -- this allows a free (to a certain extent) layout of all major widgets!
- new: embedder: the embedder options toggle button now also includes a drop down menu (opened after a short delay when the button is held down) to terminate/kill the emulator or to add the game/machine to the favorites list (more actions may follow perhaps)
- new: MAME targets only: added a demo mode which runs random games from the overall list (filtered by ROM state) for a selectable period of time -- this has been requested by some MAME cabinet users for whom it may be useful
- doc: added Q3.6 and Q2.13 to FAQ
v0.2.b13, 02-JAN-2010:
- fix: minor: use reverse order when loading translators (first load the Qt translations, then QMC2's translations -- Qt searches the loaded translations in reverse order, that is QMC2's translation will now be used with higher precedence)
- fix: disable MAWS cache directory browse button during reload
- fix: worked around a Qt bug that inhibits font changes through QApplication::setFont() when a style sheet is active
- fix: restored forced backround widget updates for Qt versions >= 4.5.3 (MAWS quick links feature), delaying it to allow Qt to process all pending events (not perfect: may flicker)
- fix: hide the MAWS quick links button when its menu is (auto-)hidden and the mouse cursor has left the browser widget in the meantime
- fix: corrected minor focus issues after game/machine list reload
- fix: MAWS lookup: don't try to download the startup URL when we're offline
- fix: audio player: initially scroll playlist to the track last played (if any)
- fix: using update() wherever repaint() was used to redraw game/machine images (among other things, this corrects some long-standing minor item selection issues)
- imp: build: added a build configuration file for NetBSD (see arch/NetBSD.cfg) -- thanks to Jürgen Buchmüller for testing QMC2 in this environment and reporting his results
- imp: SDLMAME/MAME/MAMEUIFX32 templates updated to 0.136 (SDLMAME only: new option numprocessors)
- imp: SDLMESS/MESS templates updated to 0.135 (no new or changed options)
- imp: added/replaced a number of embedded icons to/in the classic image set
- imp: improved the error handling of the process manager
- imp: build: added new make options CC_FLAGS and CXX_FLAGS to pass additional flags to the C/C++ compiler
- imp: reparent the detail setup dialog to the widget it was called from (main widget or settings dialog)
- imp: removed programmatic scrolling of front-end and emulator logs on new entries (using Qt's default now, which allows the user to scroll back and uses automatic scrolling when at the end of the log)
- imp: improved synchronization of log browser updates
- imp: minor: forcing PNG format when loading images, which offers a small performance increase
- imp: during a session, the item expansion state and scroll bar values of game-/machine-specific emulator configurators are preserved
- imp: using QStyledItemDelegate as base-class for item delegation (Qt recommendation)
- imp: tool tips with descriptions are now also shown for the names of emulator options (not only when hovering their editors/values)
- new: support for additional (foreign) emulators which can be used on a per-game/-machine basis
- new: Portuguese translation by Marcelo Bossoni
- new: experimental support for Qt 4.6 (note that Qt 4.5 is still the required and recommended version)
- new: added new make option BROWSER_PLUGINS to enable/disable the use of browser plugins (default: disabled)
- new: X11 only: added support for optional/on-demand embedding of emulator windows through the XEmbed extension (note that without minor modifications to SDLMAME/SDLMESS, there's currently no way to distinguish between multiple instances of the same emulator, running the same game/machine) -- requires xwininfo!
- new: X11 only: optional embedder functions (snapshot tool, additional features planned)
- new: added new make option XWININFO to supply an alternate path to xwininfo (default: "xwininfo")
- new: added ability to specify a separate (i.e. fixed sized) font for all log browsers
- new: except for menus, all static icons are now scaled/adjusted to the size of the current application font (even icons on the tool bar)
- new: emulator configurator widgets now use check boxes (instead of combo boxes) for all boolean settings
- doc: updated Q1.7.1 and Q1.7.2 in FAQ to reflect Ubuntu 9.10 and openSUSE 11.2
v0.2.b12, 01-NOV-2009:
- fix: disable PCB file/directory browse buttons during reload
- fix: corrected notifier FIFO recreation (needs to be done synchronously)
- fix: remove forced background widget updates for Qt versions >= 4.5.3 from MAWS quick links feature
- imp: adjusted layout spacing for some compact horizontal layouts
- imp: SDLMAME/MAME/MAMEUIFX32 templates updated to 0.135 (no new options)
- imp: SDLMESS/MESS templates updated to 0.134 (fixed change of crsshairpath to crosshairpath)
- imp: minor main widget layout improvements (MP3 player)
- imp: updated redistributed Qt translations to Qt 4.5.3 and integrated them into build system
- imp: new (transparent) QMC2 logo
- imp: log loading of style sheets only if the name changed (this effectively suppresses the second log entry during initialization)
- new: added optional live indicator for physical memory utilization to main widget
- new: variant launcher: support for spawn & quit when launching another variant (optional, mainly for low memory systems)
- new: template check against the running emulator's options and defaults
- doc: added Q1.11 and Q2.12 to FAQ
v0.2.b11, 10-SEP-2009:
- fix: corrected default short cuts for audio player functions jump to previous/next track (old short cuts were already used by X.Org X11 servers, now using Ctrl+Alt+Left/Right)
- fix: custom palettes and style sheets are mutually exclusive (this fixes minor palette issues with the menu- and tool-bars when switching styles / style sheets on-the-fly)
- fix: options dialog: adjusted some texts & tool tips for MESS targets
- fix: corrected MOC warning for arcade/arcadeitem.h related to a missing Q_INTERFACES() statement when using Qt 4.6+
- imp: SDLMAME/MAME/MAMEUIFX32 templates updated to 0.134 (no new options)
- imp: SDLMESS/MESS templates updated to 0.133 (new option burnin, crsshairpath changed to crosshairpath)
- imp: less CPU intense audio fading (also changed the default value for FADER_SPEED to 500)
- imp: build: fix make install target to work with Ubuntu 9.04+
- imp: build: cleaned up file/sym-link naming structure in arch/Linux/ sub-directory
- new: added new game/machine list setting HideWhileLoading to speed up load processing tremendously by hiding the primary game list (default: true)
- new: download manager: optionally remove finished downloads automatically (default: false)
- new: options dialog: provide a push button to open the detail setup dialog from the main GUI settings
- doc: updated Q1.7.1 and Q1.7.3 in FAQ to reflect Ubuntu 9.04 and Fedora 11
v0.2.b10, 20-JUL-2009:
- fix: clear MAWS lookup correctly when reloading game list
- fix: corrected icon size adjustment for mini web browser, detail setup and ROM status exporter
- fix: fixed a series of race conditions with activated Qt style sheets (Qt 4.5.2+ is recommended when using style sheets)
- fix: audio player: when starting to play a new track, scroll playlist to the file currently played
- fix: disable a number of widgets to avoid launching of modal dialogs when the emulator and/or game/machine info DBs are loaded (would interrupt the load progress)
- imp: log discovered emulator type (MAME or MESS) together with its version
- imp: download manager: remember / preselect last storage path when presenting the file name chooser, show download details in tool tip
- imp: about dialog: using QDesktopServices to launch default browser when following links
- imp: SDLMAME/MAME/MAMEUIFX32 templates updated to 0.133 (new option burnin, crsshairpath changed to crosshairpath)
- imp: SDLMESS/MESS templates updated to 0.132 (no new options)
- imp: ghost image enhanced (rounded corners with a semi-transparent shadow)
- imp: updated redistributed Qt translations to Qt 4.5.2
- imp: greatly improved download retry logic & timing
- imp: build: added new distribution specific build configuration for Debian Squeeze (thanks to Tomasz Moń)
- imp: cosmetic: added detection of Windows 7 and Mac OS X 10.6 to about dialog
- imp: code cleanup: set and (where possible) use QMC2_EMUTYPE_MAME/QMC2_EMUTYPE_MESS macros instead of OR'ed emulator target macros to select MAME-/MESS-only code segments
- new: built-in support for dynamic loading of Qt style sheets -- note: due to a Qt bug, for now we have to change the current working directory to the style sheet's directory to make sure relative paths (image URLs) are handled correctly
- new: support for PCB images as an additional game/machine detail
- new: added new make option FADER_SPEED to select the speed of audio fading at build time (0: fastest/instantly, >0: slower, default: 100)
- new: MAWS quick download links (manual and automatic) -- supports all available in-game previews, title snapshots, icons and cabinet art images (flyers, cabinets, control panels, marquees and PCBs)
- wip: Greek translation (thanks to Giorgos Kostopoulos)
- doc: adopted new homepage look to all docs
v0.2.b9, 08-JUN-2009:
- fix: corrected some main widget layout restoration troubles related to maximized windowed mode vs. full screen mode -- thanks to Armin Schmidhuber for finding the issues
- fix: fixed a series of bugs related to automatic keyboard focussing in main widget functions
- fix: corrected a set of issues related to automatic item (de)selection when switching game/machine list tabs
- fix: Windows: checks for obsolete image & sample files didn't work correctly when absolute paths were used
- imp: updated redistributed Qt translations to Qt 4.5.1
- imp: (SDL)MESS templates updated to 0.131 (new option crsshairpath)
- imp: SDLMAME template updated to 0.131u4 (no new options)
- imp: exchanged MESS icon with one derived from the new offical logo
- imp: made options dialog more flexible to be used on small resolution displays by enclosing all sub-widgets in QScrollArea's
- imp: general layouting facelift (smaller layout content margins)
- imp: added and cleaned up some (static) main widget short cuts which are accessible through Alt + "character"
- imp: build: Windows: add icon to binary target exe (qmc2-emulator.exe)
- new: all UI files regenerated with Qt 4.5's designer -- Qt 4.5.0+ promoted as the new required version -- Qt 4.4 is no longer supported!
- new: added new make option AUDIT_WILDCARD to enable/disable the use of wildcards ('*') on full audit calls if required (default: disabled)
- new: free reordering & (de)activation of all available game/machine details
- new: all MAME variants now include an MAWS lookup feature as an additional game detail page (in-memory and disk-caching included)
- new: integrated (mini) web browser based on QtWebKit with just a subset of typical browser features (used by the MAWS lookup and documentation browser)
- new: all (HTTP) network access can be routed directly or via a proxy
- new: added new make option BROWSER_EXTRAS to enable/disable the use of browser extra features such as Qt's Web Inspector (default: disabled) -- warning: these extra features may be buggy!
- new: added new make option WC_COMPRESSION to enable/disable on-disk web-cache compression (default: enabled on UNIX and Mac, disabled on Windows for now)
- new: using the new mini web browser to display online documentation (includes support for external links)
- new: save/restore layout of documentation browser (not its visibility), made it an independent widget
- new: download manager for use with web content, integrated into the main widget (still needs a bunch of improvements, but basically does its job -- also, there are still some QtWebKit issues we've tried to work around as far as possible...)
- doc: changed all occurrances of external URLs to real href's (only http://... URLs supported)
v0.2.b8, 23-APR-2009:
- fix: joystick calibration and test widgets: check current joystick index correctly (also fixes build issues with gcc 4.4)
- fix: don't set InstanceRunning flag in the welcome dialog, but when the main widget is about to be setup (fixes cancelling/restarting with the welcome dialog)
- fix: completely removed buggy settings conversion code
- fix: ensure trailing slash for data-directory for path returned by standard dialog
- fix: corrected variant launch on Mac OS X -- now uses LaunchServices to locate the other variant
- fix: full ROM check: increase progress indicator during final determination of games/machines with a not found ROM status (or when the ROM states of all remaining systems need to become unknown due to interruption)
- fix: use rompath and samplepath only if they have been explicitly set, otherwise fall back to the default paths (roms, samples)
- fix: start emulator audit processes after their signals were connected (otherwise we can't be sure on all platforms that the QProcess::started() signal will be catched)
- fix: insert process map entry before starting the emulation (same reason as preceding fix)
- fix: ROM state toggles weren't correctly initialized at very first start
- fix: corrected position restauration of image checker dialog
- fix: completely rewrote the buggy obsoleteness check for ZIP'ed icons
- fix: corrected flakey sample check (output from emulator goes to both I/O channels -- stdout & stderr)
- fix: minor tool/status tip corrections for game/machine list status widget
- fix: fixed crashes when the game- or emulator-info widgets were visible during game-/machine-list reload
- fix: correctly update the ROM state toggles when the ROM state filter is changed through the options dialog
- imp: revised executable check of emulator binary to work platform independently
- imp: SDLMAME template updated to 0.131 (new option crsshairpath)
- imp: SDLMESS template updated to 0.130 (no new or changed options)
- imp: completely reverted the use of wildcards (*) on full audit calls -- makes more troubles than it brings benefits
- imp: ROMAlyzer: skip unsupported CHD formats
- imp: pressing Qt::Key_Escape in the emulator configuration does no longer open the alphanumeric search widget, but will close it if it's currently visible
- imp: updated template format to include the two new option types directory and file (new format version 0.2.2)
- imp: code cleanup: replaced all occurrences of getenv("HOME") with QDir::homePath() as it is more platform independent
- imp: print warnings to the front end log if emulator audit calls don't exit cleanly
- imp: ROM check: set ROM status of remaining games/machines to unknown if the emulator crashes while auditing
- imp: updated redistributed Qt translations to Qt 4.5.0
- imp: main widget improved to allow for even more layout flexibility
- imp: ROMAlyzer: changed some default settings to be more like "what the user expects"
- imp: earlier initial style setup, also circumvents a minor issue with the GTK+ style
- imp: worked around an annoying Qt bug that sometimes left the menu- and tool-bars at the wrong style or color palette (when changing the style dynamically)
- imp: removed icon-related GUI representations for MESS targets (there are no usefull MESS machine icons we're aware of)
- new: Mac and Windows only: show version of running OS on the sys-info page of the about dialog
- new: show Phonon runtime version on the sys-info page of the about dialog (if applicable)
- new: support for WindowsTM and the original versions of MAME & MESS (including some of their variants)
- new: added new template for the original version of MAME on Windows (see data/opt/MAME/template.xml, initial version 0.131)
- new: added new template for the original version of MESS on Windows (see data/opt/MESS/template.xml, initial version 0.130)
- new: added new template for MAMEUIFX32 on Windows (see data/opt/MAMEUIFX32/template.xml, initial version 0.131) -- use this template together with the MAME variant on Windows to cleanly support MAMEUIFX32 through QMC2
- new: added batch script for VC++ project file generation on Windows (see scripts/generate-vcprojects.bat -- preliminary, you'll have to adjust the path variables if you're going to use this script!)
- new: added new game/machine list setting called DoubleClickActivation to let the user enable/disable the start of an emulator on mouse double-clicks (may be annoying)
- new: build: added new VARIANT_LAUNCHER make option to enable/disable the QMC2 variant launcher at compile time (default: enabled on UNIX and Mac, disabled on Windows for now)
- new: ROMAlyzer: support for CHD v4
- new: show sort indicator in game/machine lists and let the user change the sort criteria & order by clicking an applicable column header
- new: provide file & directory browsers in emulator configuration widgets where applicable
- new: selectable tab positions (north, south, west, east) for the main widget -- changed via context menus
- new: support for additional artwork (cabinets, controllers, marquees and titles)
- new: print statistical ROM state info to front end log after game/machine list reload and ROM state checks
- doc: revised many paragraphs to better reflect platform-specific and common information
v0.2.b7, 09-MAR-2009:
- fix: ini-import/-export didn't work correctly when built for SDLMESS
- fix: clear search results list when search pattern is empty
- fix: ROMAlyzer: correctly reset the progress bar after analysing a game/machine for which the XML data indicates that it has no ROM files (MESS example: genesis)
- fix: corrected item cursor behavior in parent/clone hierarchy view on rapidly changing selections (i.e. when hovering over the list)
- fix: loading translations earlier now to allow for a translated welcome wizard
- fix: SDLMESS variant: store machine-specific emulator configurations in the [MESS] section
- fix: corrected a minor initial item selection issue for search results, play history and favorites lists
- fix: ensure a trailing slash for preview-, flyer- and icon-directories for paths returned by the directory selection dialog
- fix: corrected a series of bugs related to trimming the cached XML data -- if you don't update MAME/MESS when first using this (hopefully) fixed version of QMC2, it's recommended that you remove the gamelist- and XML-caches prior to starting QMC2 (the caches will be recreated cleanly)
- fix: ROMAlyzer: use full range of main progress bar
- fix: ROM state filter: correctly reset the progress bar after the filter has been applied
- fix: corrected a minor style setup issue on startup
- fix: ensure same minimum width for axis reset buttons of joystick calibration widget
- fix: honor UpdateDelay not only for previews & flyers, but also for all the other game/machine details
- fix: ensure main window is initially visible and not obscured by the menu bar
- fix: install target works with spaces in paths
- fix: center main widget on desktop if its restore position is yet undefined
- imp: build: added installation of desktop entry files
- imp: build: added optional support to build against a local / alternate SDL library (see new make options starting with SDLLOCAL) - the default is to use whatever SDL library the system may default to
- imp: SDLMAME configuration template updated to 0.130 (no new options)
- imp: SDLMESS configuration template updated to 0.129 (revised several option descriptions, removed remapjoys and remapjoyfile, added new options joy_idx1 - joy_idx8)
- imp: ROM status exporter: more SDLMESS specific updates to translatable texts
- imp: build: add qmc2.pro dependency for Makefile.qmake target
- imp: avoid potential locking during the determination of the emulator's version & supported games/machines due to a probably failed reception of the sub-process' finished() signal
- imp: ROMAlyzer: added more file status icons, log a warning on files with incorrect checksums
- imp: ROMAlyzer: show count down in analyzer status
- imp: code cleanup: replaced all occurrances of obsoleted QWidget method setShown() with setVisible()
- imp: code cleanup: use constants instead of numbers for logical emulator options columns
- imp: automatically fall back to parent's game/machine- and emulator-info records when necessary/possible
- imp: build: even nicer compile output
- imp: more flexibility to layout the main widget (note that this can lead to unusable sub-widgets if you overdo what's possible :)
- imp: ROMAlyzer: colorize wrong checksums in red, unknown states in blue
- imp: build: added new ARCADE_OPENGL make option - if enabled (default), QMC2's arcade mode will support OpenGL (if available - direct rendering/hardware acceleration recommended!), otherwise only the software renderer will be available (should be fast enough, though)
- imp: build: added new WIP make option - if set to 1, unfinished code will be made available (default = 0/disabled)
- imp: updated redistributed Qt translations to Qt 4.4.3
- imp: build: added new QT_TRANSLATION make option - set this to the absolute path to your Qt translation files if you don't want to use the ones which are redistributed with QMC2 (which is the default)
- imp: welcome wizard: remove initial sample path setup for MESS variant because MESS doesn't support samples anyway
- imp: added distribution specific build configuration for Mandriva Linux release 2009.0
- imp: use -listfull '*' / -listxml '*' (instead of just -listfull / -listxml) to determine the total number of supported games/machines and their detailed XML data - some MAME/MESS builds wouldn't report the full game/machine list without the asterisk
- imp: ROMAlyzer: log elapsed time after analysis
- imp: improved full screen toggling of main widget -- should work generally better now and be more independent of the window manager
- imp: build: out-of-the-box build support for Mac OS X (Darwin) -- thanks to Vas Crabb!
- new: log activation of joystick support and the run-time version of SDL (if applicable)
- new: show compile- and run-time versions of SDL in about dialog (if applicable)
- new: log run-time version of Phonon (if applicable)
- new: added new setting ParentImageFallback (default: false) to enable falling back to the parent's image if an individual clone's image doesn't exist (but the parent's image does)
- new: added optional/on-demand vertical status indicator in game/machine detail view
- new: added optional/on-demand display of game/machine description in preview & flyer images
- new: added new setting ShowMenuBar (default: true) to control the menu bar visibility
- new: MESS: full device support through the new MESS device configurator, which is integrated into the main widget
- new: added ROM state filter toggles to the main widget, including new short cuts
- new: added new setting CheckSingleInstance (default: true) to enable/disable a startup check against multi-instance runs of the same QMC2 variant
- new: all QMC2 variants are now separately configured - includes automatic settings conversion (if required) and automatic cloning of a probably already existing front end configuration (from another variant)
- new: added runonce utility to project for use with the QMC2 variant launcher
- new: QMC2 variant launcher: both QMC2 variants (qmc2-sdlmame & qmc2-sdlmess) can launch one another; if the other variant already runs, try raising it - note that this feature is very dependent on the window manager which may decide to ignore XMapRaised(); on KDE for example, it will only work correctly when focus under mouse or focus strictly under mouse has been set!)
- wip: arcade mode (not working in this release -- disabled by default -- use "make WIP=1 ..." for a preview)
- doc: added Q2.11 to FAQ
- inf: checked SDL 1.3 (experimental!) compatibility of joystick API
- inf: trying to build with Qt versions less than 4.4.0 is now completely inhibited!
- inf: long project name changed to M.A.M.E./M.E.S.S. Catalog / Launcher II
- inf: build: compile time measurement is disabled per default now
- inf: there's nothing like an emulator info DB for MESS, so this feature is completely disabled in case of QMC2 for SDLMESS
- inf: project home page moved to http://qmc2.arcadehits.net -- thanks to Vincent Bousquet
- inf: checked Qt 4.5+ compatibility (recommended due to much better performance!)
v0.2.b6, 05-JAN-2009:
- fix: startup crash on the creation of the template configuration map under certain circumstances (see tracker #2201714)
- fix: worked around a minor Phonon issue with duplicate metaDataChanged() signals
- imp: SDLMAME options template updated to 0.129 (corrected default value for audio_latency, revised several option descriptions, removed remapjoys and remapjoyfile, added new options joy_idx1 - joy_idx8)
- imp: updated template format to include the template's emulator name (new format version 0.2.1)
- imp: ROMAlyzer: determine ROM file CRC identification troubles in ZIPs, log warnings and set the file status to bad in such a case (in contrast to not found as before)
- imp: code cleanup: changed several macro definitions to be consistent within QMC2's namespace
- imp: build: added new make options DISTCC, DISTCC_CC & DISTCC_CXX (uses a distributed compiler such as distcc or icecc if DISTCC is set to 1 - check/set DISTCC_CC / DISTCC_CXX if enabled!)
- imp: slightly improved welcome dialog (logo, button icons and layout)
- imp: build: preserve existing system-wide configuration (usually /etc/qmc2/qmc2.ini) on make install
- imp: build: avoid overwriting the Makefile when qmake is accidently called standalone (the project file now sets QMAKE_MAKEFILE to Makefile.qmake)
- imp: build: allow pretty compile output (doesn't work for RCC yet due to a qmake bug) - enabled per default, use make PRETTY=0 to disable
- imp: build: splitted CCACHECMD into CCACHE_CC & CCACHE_CXX
- imp: build: use the same qmc2.pro project file for both debug and release builds (adding CONFIG settings dynamically on qmake call)
- imp: ROMAlyzer: log more CHD v3 header information (CHD tag, writable flag and parent's MD5/SHA1 checksums, if applicable)
- imp: ROMAlyzer: if romof is set in a game's XML data, but the file to merge is missing from this data (= merge attribute is empty), recursively search for the name of the current game's ROM file instead - MAME does exactly this in these rare cases (example: sfiiin)
- imp: ROMAlyzer: produce better status and log information on CHDs that were not found
- imp: allow higher values for gamelist responsiveness - setting this value higher than the total number of games will usually allow for less than 2 seconds of gamelist processing (at the expense of a more or less unresponsive GUI during reload, of course)
- imp: updated XML game info parser to support all current game/machine settings from MAME/MESS
- imp: many [Frontend] settings moved to [MAME] and [MESS] sections (automatically converted if the previous version is less than 0.2.b6)
- imp: code cleanup: make class and variable names emulator independent (i.e. use EmulatorOptions instead of MameOptions)
- new: added new SDLMESS options template (see data/opt/SDLMESS/template.xml, initial version 0.128)
- new: experimental support for SDLMESS (status: very basic and no device support yet)
- new: added plugin helper sample script for emulator startup interception (see scripts/plugin_helper.sh)
- new: all UI files regenerated with Qt 4.4's designer - Qt 4.4.0+ promoted as the new required version, although you may still be able to build it using Qt 4.3 in the short term - Qt 4.3 is no longer supported!
- new: added tab icons for all main widget functions
- new: ROM status export tool with support for ASCII, CSV and HTML output formats - can output to file or clipboard
- doc: added Q2.10 to FAQ
- doc: added Ubuntu 8.10 (Intrepid) as an officially tested distribution to the FAQ (see Q1.7.1)
- doc: added Fedora release 10 as an officially tested distribution to the FAQ (see Q1.7.3)
- doc: added openSUSE 11.1 as an officially tested distribution to the FAQ (see Q1.7.2)
v0.2.b5, 16-OCT-2008:
- fix: corrected a serious bug in ROM state and gamelist caching introduced by trimming the data - please remove all cache files from previous releases before using this version, otherwise QMC2 is likely to crash (rm ~/.qmc2/mame.lxc ~/.qmc2/qmc2.rsc ~/.qmc2/qmc2.glc)
- fix: corrected the shortcut scope of several actions
- fix: ROMAlyzer (cosmetic): don't start analyzing if the gamelist is empty
- fix: tool bar and status bar didn't show up on first start
- imp: SDLMAME options template updated to 0.128
- imp: build: added new make option PHONON (enables Phonon based features if set to 1, which is the default for Qt 4.4+)
- imp: revised a number of menu item texts
- imp: layout improvements for the ROMAlyzer (file I/O indicator now vertical)
- imp: code cleanup: prepend QMC2_ to SDLMAME macro internally
- imp: build: added new make options CCACHE & CCACHECMD (uses ccache compiler cache if CCACHE is set to 1; default is 0 - check/set CCACHECMD if enabled!)
- imp: exchanged Qt logo due to Qt rebranding as of 4.4.3
- new: support for MAME output notifications via a named pipe (SDLMAME 0.127+)
- new: emulator control panel changed to a multi-column tree widget displaying more information like the game name, its LEDs (if applicable), the current emulator status and additional notifiers/values not handled statically (in a sub tree)
- new: added a copy command menu item to the emulator control panel's context menu to allow for easier copying of emulator command lines to the system clipboard
- new: individual joystick axes can now be enabled/disabled at will (this should make Sixaxis users happy :)
- new: the number of lines kept in the ROMAlyzer log can now also be limited
- new: optional support for background music playback (requires Qt 4.4+ / Phonon API - feature will be completely disabled for Qt 4.3)
- new: the boolean emulator option values true and false are now also translatable
- doc: added Q2.9 to FAQ
v0.2.b4, 19-AUG-2008:
- fix: joystick mapping initially didn't work before the options were explicitly applied
- fix: keep game-specific emulator configurations open only as long as they are really needed
- fix: corrected support for keyboard shortcut mapping with multiple modifier keys
- imp: try to use system locale to setup the language if no language was specified (or if the language is unavailable within the translations); fallback to us as last resort
- imp: joystick test and calibration widgets are enclosed in scrollable areas now to allow for better handling of high amounts of axes or buttons; due to this, the layout management for these widgets was totally revised
- imp: minor speed ups for loading of XML and gamelist caches by reading data block-wise
- imp: SDLMAME options template updated to 0.127 (yuvmode replaced with scalemode, removed cheat_file, added new options cheatpath, videodriver, audiodriver and gl_lib)
- imp: code cleanup: use constants instead of numbers for logical gamelist columns, prepend QMC2_ to JOYSTICK and OPENGL macros internally
- imp: trimmed XML cache data - saves memory and disk space (plus adds a minor speed improvement upon cache reading)
- imp: build: check required Qt version on call to qmake (see qmc2.pro*)
- new: show number of (real/virtual) CPUs on system information page (about dialog)
- new: the frontend and emulator log browsers can now be limited to the amount of lines they keep in memory (the default is unlimited as before)
- doc: added Q2.8 and Q3.5 to FAQ
v0.2.b3, 07-JUL-2008:
- fix: if a null pixmap was retrieved, display the ghost image instead (of nothing)
- fix: under rare circumstances, the game specific emulator configuration wasn't updated correctly (empty widget)
- fix: positions of about dialog and doc browser were incorrectly restored on showEvent()'s
- fix: when switching between detailed gamelist and parent/clone hierarchy during reload, QMC2 crashed under certain circumstances (not absoluteley sure if this bug existed before or if it was introduced by new features of this release :)
- fix: avoid auto-selecting first game in list if switching views during gamelist reload
- fix: adjust icon sizes of shortcut redefinition buttons
- fix: restore "Default" style selection correctly after language switch
- fix: corrected several position- & size-restoration bugs for all child widgets with restorable layout
- fix: corrected null pixmap on startup issue for the restored game selection if there is no preview- or flyer-image available for that game
- imp: SDLMAME options template updated to 0.126 (new options aviwrite, coin_lockout, snapname, snapsize, snapview, debug and debugscript, changed default for joystick, updated several descriptions)
- imp: build: added new make option OPENGL (enables OpenGL features if set to 1)
- imp: use QWidget instead of QFrame for (standard) preview & flyer widgets
- imp: enabled on-the-fly switching to system default style
- imp: all independant widgets (dialogs) are now explicitly created as sub-windows which allows them to be individually minimized / restored regardless if they have parents or not (new window flags: Qt::Dialog | Qt::SubWindow)
- imp: build: added support for distribution specific build on openSUSE 11.0, Fedora release 9 and Yellow Dog Linux 6.0
- imp: build: moved os-detect.sh to scripts/ directory (where it belongs :)
- imp: build: changed os-detection to be architecture independant for Linux distributions
- new: optional use of OpenGL to draw images (previews & flyers) - decided at compile time with the new OPENGL make option (OPENGL=0 is the default and paints on a normal QWidget; using a QPainter on a QGLWidget is actually a bit slower)
- new: optional direct GUI control via digital and analog joysticks (joystick support is enabled by default, use make option JOYSTICK=0 to completely disable it - note that compilation of QMC2 with enabled joystick support requires an SDL 1.2.11+ development package to be installed on your system!)
- new: support for MAME's history.dat game information database
- new: support for MAME's mameinfo.dat emulator information database
- new: show memory information (total, free, used) in about dialog (see system info)
- new: toggle fullscreen mode of main widget
- doc: added Q2.6, Q2.7, Q3.4 and build instructions for Ubuntu 8.04, openSUSE 11.0 and Fedora release 9 to FAQ
v0.2.b2, 05-MAY-2008:
- fix: automatically save favorites list & play history on exit only if they are not empty
- imp: completed Polish translation of options template (Julian Sikorski)
- imp: SDLMAME options template updated to 0.125 (new option maximize, changed default for bios)
- imp: confirm clearing of favorites list & play history
- new: French translation by Vincent Bousquet
- new: improved template reader for emulator options (using QXmlStreamReader)
- new: template syntax changed to a new format to allow for easier translation (note that this format is NOT compatible with older versions of QMC2!)
- new: game's short name (game ID) now also included in gamelist, plus added sorting by game name
- inf: SDLMESS can only be used when compiled against the MAME target, of course :)
v0.2.b1, 26-MAR-2008:
- fix: replace "~" with "$HOME" in path options when exporting ini's or checking ROMs
- fix: corrected removal of entries in emulator control
- imp: build: replaced make option MAME with EMULATOR (to prepare for multi-emulator support)
- imp: SDLMAME options-template updated to 0.124a, cleaned up XML syntax to be well-formed
- imp: don't disable import / export buttons when the gamelist is reloaded
- imp: clean support for plural translation in natural language (includes a translation of the native language "us")
- imp: fallback to the native description if the template doesn't contain a translation for an option
- imp: build: improved make rules for the creation of binary translations with lrelease
- imp: game context menus of search, favorites and history lists now also include ROM check & analyzer entries
- imp: reduced memory consumption when cached XML data is used (white space stripped)
- imp: action & shortcut reservations for (planned) arcade mode added
- new: Qt 4.3+ required
- new: XMAME support dropped (the XMAME project is inactive since MAME 0.106, so it isn't worth the hassle)
- new: support for multiple ini-paths added to import & export functions
- new: added new setting ToolbarState to save/restore the toolbar position
- new: added a built-in ROMAlyzer to deeply analyze a game's individual ROMs and CHDs
- new: Polish translation by Julian Sikorski (template translation yet incomplete)
- inf: treating QMC2 as a multi-emulator frontend from now on
- inf: SDLMESS has been successfully tested to be supported as well, WolfMAME should also work fine
v0.1, 05-FEB-2008:
- imp: SDLMAME options-template updated to 0.123
- inf: SVN revision 431 released as QMC2 0.1 final
v0.1.b12, 04-FEB-2008:
- fix: fixed a serious bug when QMC2 needs to (re)parse the gamelist data due to MAME version changes which caused crashes and undefined behavior (the cause was just a minimal slip, though :)
- fix: don't try to analyze data if an incompatible executable was selected
- fix: corrected several time measurements to be more precise
- fix: force initialization of customized shortcuts & GUI control keys at early startup
- fix: corrected preview check for previews in game sub-dirs below PreviewDirectory (gamename/XXXX.png)
- imp: SDLMAME options-template updated to 0.122u8
- imp: greatly improved about dialog, including system information summary
- imp: improved key event filter to better handle complex & varying event-sequence patterns
- imp: log a warning if the template version could not be determined (for whatever reason)
- imp: save/restore widget positions of doc-browser and about-dialog during runtime
- imp: avoid UI setup of welcome dialog if QMC2 configuration check is okay
- imp: allow gamelist widget updates while pre-caching icons (looks better on slow machines)
- new: QMC2 logo, application icon colorified accordingly
- new: XML gamelist data cache to speed up loading of -listxml output from MAME
- new: option ListXMLCache added (default: ~/.qmc2/mame.lxc)
- new: added Home, End & Esc to the list of remappable GUI control keys
- new: icons for detail/hierarchy switch (actions) added
- new: options ZipTool (default: zip) and ZipToolRemovalArguments (default: $ARCHIVE$ -d $FILELIST$) added
- new: options FileRemovalTool (default: rm) and FileRemovalToolArguments (default: -f -v $FILELIST$) added
- new: support to remove obsolete samples & image files (previews, flyers and icons) either from directories or ZIP archives - uses external tools to remove files (rm) or ZIP entries (zip)
- new: simple tool executor dialog added (see toolexec.*)
- new: option ProgressTexts added to optionally show short descriptions of current processing in progress bar (default: false, current behavior)
v0.1.b11, 24-DEC-2007:
- fix: long timeout on exit for Qt 4.3+ fixed
- fix: fixed processing of BIOS ROMs due to changes to the XML output since MAME 0.117u2 (older MAME releases are still supported)
- fix: save & clear current game's MAME configuration on gamelist reload (if open)
- fix: reset horizontal scrollbars on log-updates (minor bug)
- fix: don't freeze GUI if MAME executable is specified incorrectly
- fix: correctly update ROM statistics for an individual ROM check (thanks to Christopher Stone for reporting this bug)
- fix: correctly honor custom color palettes for GUI styles (which can be setup with qtconfig)
- fix: minor translation fixes
- fix: corrected (hidden) selection of filtered games
- fix: worked around a Qt bug when POS1/Home is pressed and the first item in the gamelist is hidden due to ROM state filtering; QMC2 now selects the first VISIBLE entry instead
- fix: fixed several item selection bugs when changing between lists (gamelist, search results, favorites and play history) - note that this fix is only effective, if Qt 4.3+ is used
- fix: when switching back to the (full-detail) gamelist view, the next item selection issued by a mouse-click wasn't correctly recognized
- fix: corrected unwanted double paint-event when selecting games through the parent/clone hierarchy view
- fix: make MAME executable setting unchangeable during gamelist reload
- fix: avoid temporary game reselection when adding a game to the play history (at game start)
- fix: corrected focus issues when switching between lists
- fix: when the ROM state filter was setup to hide ALL states, QMC2 crashed under certain circumstances
- fix: corrected save/restore of game selection in the case that ALL ROM states are filtered
- fix: corrected build issues due to type-ambiguity on certain 32-bit platforms (like Win32)
- imp: SDLMAME options-template updated to 0.122 (several new settings, some removed or replaced)
- imp: added Qt version, selected MAME target and language code to greeting string (see frontend log)
- imp: removed some useless/annoying tool tips
- imp: build: alphabetical output for make help and make config
- imp: ghost image scaled down by 50% (faster)
- imp: several layout improvements for configuration dialog
- imp: delay search by 250ms so it doesn't hamper the user when he/she is quickly typing a pattern
- imp: speed up for ROM state filter by iterating over the internal gamelist item map instead of the QTreeWidget itself
- imp: exchanged QAction::activated() with QAction::triggered()
- imp: code cleanup / macro consolidation (see macros.h)
- imp: faster game selection by search, favorites and history lists
- imp: delay game preview/flyer/config updates by a configurable amount of milliseconds to better sync to item selection in all lists
- imp: change to gamelist tab if F5 or F6 is pressed
- new: import/export from/to mame.ini/gamename.ini (SDLMAME) and xmamerc/gamenamerc (XMAME)
- new: added ROMAlyzer script from Carsten Engel (see scripts/romalyzer.pl) - WORK IN PROGRESS
- new: BIOS ROMs are now also supported (but obviously cannot be run); the ROM status icon will contain a white "B" to indicate that this is a BIOS (when using the classic image set)
- new: determination of MAME and configuration template version (see frontend log)
- new: added gamelist cache to speed up reload process; the cache will be automagically recreated if the MAME version changes or QMC2 thinks the cache is invalid / out-of-date
- new: added optional sample-path setup to welcome dialog
- new: added new setting RetryLoadingImages: if unset, QMC2 will cache the ghost image where no images were found (default: true, current behavior)
- new: added new setting StandardColorPalette: if unset, QMC2 will use the custom palette which may have been setup with qtconfig (default: true, current behavior)
- new: image set support - select at compile time with new IMGSET variable (default "classic", alternative image sets "crazy" and "crazy-black" by Armin Schmidhuber)
- new: added new setting AutoTriggerROMCheck: if set, QMC2 will automatically trigger a ROM check if necessary (default: false, current behavior)
- new: reload gamelist automatically if MAME executable changes
- new: added new setting UpdateDelay; controls the delay in milliseconds between a game's selection and the update of its preview, flyer or MAME configuration
- new: if Qt 4.3+ is used, QMC2 will now save & restore the header states of all tree-widgets, except the game specific MAME configuration widget which is too temporary to be valuable for save/restore
- new: added remap function for shortcuts & GUI control keys
- doc: todo: define missing features for 0.1 final, add planned features for 0.2 series
v0.1.b10, 20-JUL-2007:
- fix: raise visible widgets when starting up
- fix: reselect current item after applying ROM state filter
- fix: fixed a serious bug in MAME options handling which showed up for Qt 4.3.0
- fix: corrected online flyer directory/file switching (didn't open/close ZIP if changed)
- fix: earlier restoration of gamelist view to avoid flicker when starting up
- fix: use showNormal() if options widget is requested but currently minimized
- fix: build: corrected snapshot creation (same timestamp for tar.gz and tar.bz2 archives)
- fix: avoid processing of subsequent QCloseEvent's for main widget
- fix: auto-adjust size of welcome widget
- fix: requests for a context menu on an empty part of the gamelist or parent/clone view resulted in a segmentation fault
- imp: color enhancement for "mostly correct"-indicator (sphere image)
- imp: build: make option SDLMAME=(0|1) replaced with MAME=(SDLMAME|XMAME)
- imp: code cleanup in many places
- imp: better GUI responsiveness when determining the total number of supported games (early phase of gamelist reload)
- imp: some GUI icons replaced, actions in toolbar reorderd, tool-tips corrected
- imp: build: new OS detection mechanism for distribution-specific configuration, see new make options DISTCFG, OSCFG and arch/os-detect.sh
- imp: build: added new make targets os-detect, help and config
- imp: build: changed name of make option TIMECMD to TIME
- imp: SDLMAME options-template updated to 0.117 (several new settings, some removed)
- imp: header texts of gamelist and parent/clone view now left-aligned
- imp: build: cleaner make output
- imp: application-wide shortcuts
- imp: better calculation of icon sizes
- imp: major layout improvements for options-widget
- new: Qt 4.3 support
- new: support for PNG game icons (stored in a ZIP archive or a single directory)
- new: added menu items for flyer and icon check
- new: sort by year or manufacturer, additional columns for gamelist and parent/clone view
- new: options: IconDirectory, IconFile, UseIconFile, GamelistColumnWidths, HierarchyColumnWidths, Toolbar and new settings for check dialogs
- new: restore column widths of gamelist and parent/clone view
- new: image check dialog (includes preview-, flyer- and icon-checks)
- new: sample check dialog
- new: individual ROM state check added
- doc: added section about action shortcuts to readme.html
- doc: added several FAQs
v0.1.b9, 30-MAR-2007:
- fix: avoid applying ROM state filter while other processing is active
- fix: reset parser interruption flag before applying ROM state filter
- fix: avoid copy of SVN-directories for 'make install' (only relevant for SVN source)
- fix: build: added colrm script to fix qmake check on SunOS
- fix: install: change ownership of installed files to uid/gid of installer (normally root)
- fix: don't show game context menu when gamelist data is not yet available
- fix: start cursor movement at current game when switching lists/views
- imp: more time measures, straighter logging
- imp: change Makefile to support multiple pre-defined ini-paths per MAME option (thanks to Christopher Stone)
- imp: easier specification of search pattern (thanks to Christopher Stone)
- imp: improved quality of ghost image ("no image" indicator)
- imp: use PNGs only, also for docs
- imp: removed annoying tool-tips for obvious gamelists
- imp: options: browse tool-buttons improved (icons)
- new: application icon (data/img/mame.png)
- new: added support for preview and flyer compression based upon minizip-1.01e
- new: settings FlyerFile, UseFlyerFile, PreviewFile, UsePreviewFile and GamelistView added
- new: added hierarchical parent/clone view, plus corresponding switch, menu items and shortcuts
- doc: several new FAQs, credits revised
v0.1.b8, 23-FEB-2007:
- fix: missing line-feed for "last message repeated N time(s)" message
- fix: incorrect position restoration for options-widget under certain circumstances
- fix: restoration of selected game failed if treewidget received focus during gamelist reload
- fix: build: "make DEBUG=2" failed for welcome.cpp
- fix: replace all occurances of "~" with "$HOME" before passing the argument strings to MAME (thanks to Christoper Stone who found the bug and its solution)
- fix: install: add flyer directory to install target
- fix: clear flyer image on gamelist reload
- imp: more changes to allow for easier package-creation - thanks to Christopher Stone for his input on this matter
- imp: removed informational log message for missing previews
- imp: removed obsolete setting MAME/FilesAndDirectories/ROMPath, using MAME/Configuration/Global/rompath instead
- imp: build: clean creation of debugging code (see DEBUG make option in Makefile)
- imp: avoid multiple processing of MAME options within game-subtree
- imp: performance of ROM state verification improved
- new: Qt 4.2.0+ required for all MAME targets (Qt 4.1 support dropped!)
- new: support for game flyer images, new setting Frontend/FilesAndDirectories/FlyerDirectory
- new: settings can now be reset to their system-wide default values (all at once); if no system-wide default configuration exists, the built-in default for the respective setting will be used
- new: search function for MAME options (enter an alphanumeric string while the MAME options widget has focus)
- new: built-in style support, new setting Frontend/GUI/Style (Default = system default / specify on command line)
- new: ROM state filter, new settings Frontend/Gamelist/Show[CMINU]
- new: previews can now also be stored as PreviewDirectory/gamename/xxxx.png (PreviewDirectory/gamename.png has prescedence, if it doesn't exist, the highest existing value of xxxx will be used)
v0.1.b7, 12-DEC-2006:
- fix: weird layout problem in setup-wizard (welcome.ui)
- imp: updated Qt language file (from Qt 4.2.2)
- imp: ROM verification enhancements to support SDLMAME 0.111+ (which changed the way it reports missing ROMs)
- new: install target for make
- new: many changes to support system-scope (/etc/qmc2/qmc2.ini) and user-sope (~/.qmc2/qmc2.ini) configuration
- new: build: SDLMAME support is now the new default (use "make SDLMAME=0" for XMAME support)!
- new: icons now embedded into application (see resource file qmc2.qrc)
- new: added optional ROM path setting to setup-wizard (welcome.*)
v0.1.b6, 29-NOV-2006:
- fix: widgets disabled during gamelist reload not re-enabled if parser prematurely stopped
- fix: ROMs with attribute runnable="no" removed from gamelist (caused incorrect counters)
- fix: total game count determination didn't cleanly return in case of an error
- fix: build: check qmake version for ALL targets
- fix: ROM check: don't rely on full lines from sub-process, buffered output might be truncated
- imp: some code-cleanups
- imp: removed log entry for loading of preview images
- new: selectable criteria and order for gamelist sort (case insensitive) - note that Qt 4.2.0+ performs much better due to the new "stable sort" for QTreeWidget (and other item views)
- new: when emulators are still running when QMC2 is about to exit, the user can decide to kill them or keep them alive
- new: options Frontend/Gamelist/SortCriteria, .../SortOrder, Frontend/GUI/KillEmulatorsOnExit and MAME/FilesAndDirectories/ROMPath added
- new: SDLMAME-support, including new options template (use "make SDLMAME=1" to enable support for SDLMAME, default is XMAME!)
- new: setup-wizard: checks valid configuration and asks for MAME executable if necessary
- new: added ROM state M(ostly correct) for verification result "best available" (indicated by a yellow-green sphere)
v0.1.b5, 10-OCT-2006:
- fix: build: check qmake version before qmake run
- fix: add missing tooltip for gamelist reload action
- fix: serious memory leak for reload of the entire gamelist (missing buffer clear)
- fix: re-initialize ROM verification counter on every ROM check, making it non-static
- fix: several fixes regarding empty settings (no configuration file on first start)
- fix: Makefile changes to support Qt 4.2.0+
- fix: crash when parser prematurely stopped upon user request
- fix: restoration of widget position for options dialog fixed
- imp: some code optimizations for references to the ROM state cache
- imp: GUI speed-ups at start
- imp: more phrase translations for gamelist
- imp: scroll auto-selected items to top
- new: options VerifyROMs and CatalogFile removed (no longer needed)
- new: options Version, Responsiveness, HistoryFile and FavoritesFile added
- new: log a warning if the ROM state cache appears not to be up to date
- new: preview images can optionally be scaled "smoothly" (nicer, but slower)
- new: processing play history and favorite games
- new: additional (context menu) actions and icons for game favorites, play history and emulator control
- new: settings changed to ini-format / user-scope ($HOME/.config/qmc2.ini)
- new: Qt message handler (Qt messages are logged to the frontend log)
- doc: some additions and corrections to readme.html and faq.html
- doc: html-formatting changed to better support Qt 4.2.0+
v0.1.b4, 01-SEP-2006:
- fix: parse also ROMs marked as "runnable=no" (BIOSes)
- imp: error message for missing previews changed to informational
- imp: changed OS-dependant configuration file to arch/`uname`.cfg
- imp: code cleanup
- imp: improved game-reselection / auto-scrolling in gamelist to circumvent a Qt 4 "misbehavior"
- new: rudimentary about dialog added
- new: browser for online documentation added
- new: ROM check / ROM state cache
- new: option ROMStateCacheFile added
- doc: major additions to data/doc/html/us/readme.html, unnecessary sym-links removed
- inf: options-template (data/opt/template.xml) updated for xmame 0.106
v0.1.b3, 27-AUG-2006:
- fix: tab-position west appears buggy since Qt 4.1.4 (shows no text); changed to tab-position north
- fix: adopted xmame command line parameter changes since 0.104 (tested with xmame 0.106)
- imp: Makefile and documentation changes to reflect that a system-wide installation is not necessary (nor recommended)
- new: “make snap” (snapshot) target added to Makefile (same as “make dist”, plus date- & timestamp)
- doc: many additions to readme.html
v0.1.b2, 01-APR-2006:
- fix: browse button for template file must be disabled during gamelist reload
- fix: added missing tool- and status-tips for game preview and MAME options
- fix: first focus widget should be the gamelist
- fix: fixed layout restoration bug for options widget
- fix: corrected a bunch of MAME configuration related bugs
- fix: clear background before scaling a (potentionally transparent) image
- imp: moved template file option to MAME tab where it belongs
- imp: improved phrases and translations
- new: added options template for SDL display-target (see data/opt/...)
- new: save/restore of game selection at exit/start and gamelist reload
- new: improved game selection scheme (games can now also be selected in the search result widget)
- new: context menu added for search result
- new: preview scaling now optional, original image size if disabled
- new: using QPixmapCache for preview image cache'ing (LRU-cache)
- new: customizable image cache size (1-1024 MB, default 64 MB)
- new: ghost icon shown in gamelist's value column if no preview was found
- new: preview check routine added
- new: many action icons and ROM status images added
- new: colored sphere icons displayed in front of each game description indicating the ROM status
v0.1.b1, 03-MAR-2006: