### TODO - v0.39, 11-JUN-2013

Known bugs and restrictions

- The built-in joystick GUI control includes support for trackballs -- this is completely untested due to the lack of controllers with trackballs (it should basically work, but be prepared for bugs and unexpected behavior).
- On X11 platforms, the QMC2 variant launcher will try to raise a probably already running other variant -- this feature is very dependent on the window manager which may decide to ignore XMapRaised().
- MAME/MESS output notifiers are not supported on Windows yet.
- The built-in MiniWebBrowser has a fairly restrictive set of features which is tailored to the uses of QMC2. It's not even meant to be a full-featured browser, even though it meanwhile supports most of the typical browser-functions.
- Depending on the complexity of a style / style sheet combination, it may slow down GUI operations (that's no bug, but you should note it).
- X11 only: Embedded emulators that change their display sizes at runtime (usually during startup) may not always be centered correctly.
- The 'set repair' function (a feature of the ROMAlyzer's checksum wizard) only operates on ZIPs! There's no support for ROM sets stored as unzipped files in individual sub-directores yet.
- Due to a Qt restriction, a QTabWidget's corner-widget (if any) is only shown when the tab-position is either 'north' or 'south'.
- Windows only: There's a known issue for embedded emulators running in Direct 3D mode ('-video d3d'): full-screen switching will lead to a crash of the emulator. To work around this, you have to release the emulator first; you can re-embed it later from the emulator control panel.

Work in progress

- Adding support for freely definable additional artwork classes (system- or software-images)
- Work has been started to support emulator embedding on Mac OS X -- thanks to Mario Sergio
- Adding a Swedish translation -- thanks to Daniel Nylander
- Adding a Greek translation -- thanks to Kostas Albanidis
- Adding an Italian translation -- thanks to Stefano Cereda
- Adding a Romanian translation (mostly done) -- thanks to Mihai Boisteanu
- Adding a set rename tool to the ROMAlyzer which uses the -listxml outputs from both the old and the current emulator to gather the changes automagically
- Adding support for an optional ROM/CHD database which can be used to store unique copies of all (good) ROMs and CHDs and to retrieve complete sets from it to a local path -- among other things, this can be used to keep different versions of individual ROM/CHD files (due to changing sets) or to just keep your local ROM path clean

Planned changes, new features and improvements

- Arcade mode: add support for remapping of key-sequences and (digital) joystick-functions
- Arcade mode: add support for dynamically changing background images based on the current game's category (category images being freely customizable), add a MESS specific theme
- Port all uses of Qt Phonon to Qt Multimedia as Phonon isn't part of Qt 5 (not even planned for future releases)
- Add a built-in PDF reader to directly support system documentation like AntoPISA's MESS manual collections -- note that we've already integrated PDF.js to accomplish this through QtWebKit
- Add support for multiple images per image category
- Add a nicer 'quick-search' function (replacing the default keyboard-search implementation inherited from QAbstractItemView) to all 4 game/machine list views and the software-list views including a pop-up editor to display and customize the search string
- Add extended (reg-exp) filtering for any textual data in any available game/machine list column
- Add YouTube protocol 3.0 support (currently 'experimental')
- Add support for 3D arcade cabinet models from the 3D Arcade project
- Add support for 7z-compressed ROMs to the ROMAlyzer and file-chooser
- Add support for optional coloring of some game/machine list item cells, especially for the driver status column
- Add support for command.dat from http://home.comcast.net/~plotor/
- Add a 'record a video' dialog to make the creation of emulator session videos an easier task
- Allow changing the order and visibility of any 'special' widgets (emulator & front-end logs, emulator control, audio player and downloads + tabs on the software-detail widget)
- Add support to hide/show specific categories in both major game lists when the use of catver.ini (MAME/UME) and/or category.ini (MESS/UME) has been enabled
- Add an option to allow for automatic switching to the last viewed detail of each game/machine (do we really need that?)
- Add support for launching emulators in record & playback modes (input recording/playback)
- Morph game/machine favorites, play-history and search results into tree-widgets (like the game/machine list views) and let the user categorize his/her favorites freely
- Add a backup / restore tool for QMC2's configuration and caches (though it's a trivial task, see Q2.17 in the FAQ)
- Add export / import functionality for YouTube video attachments (to allow for merging of videos found by different people, or to backup / restore discovered videos)
- Add a high-score database
- Add a joystick & keyboard configurator for MAME and MESS
- Add support for MAME/MESS output notifications on Windows
- Create an improved setup wizard with QWizard
- Extend the template syntax to include the version an option was added/removed and process such options only if the current MAME/MESS version lies within this range (both new attributes will be optional, though, meaning that if they are omitted QMC2 will process the respective option regardless of the current MAME/MESS version -- just as it works now) (do we really need that?)