CHANGES - v0.2.b13, 02-JAN-2010
fix: general bug fixes
imp: improved functionality
new: newly added functionality
wip: (incomplete) work in progress
doc: documentation changes
inf: informational only
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: