QMamecat CHANGES
----------------

v0.44, 24-FEB-2003:

  - new requirements: Qt 3.1.0 or above required now (tested: 3.1.0 - 3.1.1)
  - major improvement: settings dialog redesigned via Qt's GUI designer
  - major improvement: edit dialog redesigned (using designer); new simple game
    RC file editor
  - major improvement: major changes to makefiles to support uic-generated code
  - major improvement: added _lots_ of new options
  - code cleanup: removed the old font options, replaced them with 3
    QFont::toString()-like font specifications (default_/gamelist_/editor_font)
  - major improvement: using Qt's built-in font- and color-selection dialogs
  - minor improvement: double-clicking a sample color entry opens corresponding
    color selection dialog as well as the (color) buttons above the sample
    gamelist 
  - major improvement: added support for GUI styles (9 styles for now)
  - minor improvement: tooltips can now be enabled/disabled (on-the-fly)
  - bug-fix: when the log-windows were closed by pressing ESC, qmamecat didn't
    recognize it; fixed by rerouting the keyPressEvent()
  - major improvement: several new or changed menu items and accel-keys
  - major improvement: changed/added _lots_ of default values
  - major improvement: catalog format changed (see README), backward-compatible
    through catgen - this also fixes a serious bug (empty remarks caused the
    catalog reader to go crazy :)
  - addition: added developer information about patch creation/installation to
    the docs
  - bug-fix: when editing a catalog entry, the gamelist was sometimes not
    correctly scrolled
  - bug-fix: status bar wasn't always correctly cleared
  - major improvement: speed-ups for the preview checker (no sort during checks)
  - major improvement: added a process management class to better control
    emulator instances and to support the new <multiple_xmame_instances> option;
    emulators are no longer launched with fork(), instead QProcess is used
  - major improvement: added a designer-generated emulator control dialog (to
    view/terminate/kill emulator instances)
  - minor improvement: added an options menu and an emulator control item to the
    game context menu
  - major improvement: accel-keys for ALL main menu items are now available in
    every window or dialog, except the about- and options-dialog
  - major improvement: preview check dialog redesigned using designer
  - minor improvement: added more log messages (mamecat log)
  - major improvement: redesigned the setup-wizard using designer; it can now
    only be started from qmamecat (minimizes the risk of overwriting a user's
    configuration accidently)
  - major improvement: the search-window is a combo-box now, displaying the
    current match list in its popup listbox; the keyboard is no longer grabbed
  - minor improvement: filtering some irritating Qt warnings within
    myQtMessageHandler() :)
  - minor improvement: added -DTARGET_OS_$(ARCH) as precompiler definition to
    makefiles
  - minor improvement: changed catgen to suppress xmame's output to stderr
  - bug-fix: under certain circumstances, the catalog was saved AFTER catgen
    was run, which caused the ROM analysis to hang and corrupt the catalog/cache
  - major improvement: the window layout is now completely saved and qmamecat
    will recognize ANY changes to the layout (except during startup)
  - major improvement: major changes to ROM status parser (using a pipe now) to
    fully support FreeBSD (and other POSIX compliant OSs)
  - minor improvement: emulators can also be started from the previewcheck
    dialog's missing list (right- or double-click) to allow for easier preview
    creation
  - major improvement: added rules to makefiles to support automatic creation of
    binary distributions (gmake bindist-shared, gmake bindist-static etc.) and
    fixed some dependencies
  - bug-fix: added item-reselection on every selectionChanged() event for the
    gamelist color sample to support Qt 3.1.0 and above
  - bug-fix: command line arguments passed to QApplication(3qt) caused senseless
    warning messages to stderr; qmamecat is silent now :)
  - bug-fix: focus problems with search-widget fixed
  - major improvement: added ASCII export for gamelist
  - bug-fix: incorrect item-selection when right-clicking into gamelist 
  - major improvement: added a sample check dialog
  - major improvement: using current style's palette background color (or
    pixmap) for preview widget's background now
  - major improvement: replaced the text "Preview not available" with a
    transparent image
  - minor improvement: improved look of preview widget's frame
  - major improvement: showing "consistency check" progress counters where
    applicable (includes earlier display of main widget on startup)
  - bug-fix: automatically refreshing/recreating the catalog and ROM status
    cache on startup when the xmame version was changed outside qmamecat works
    fine again
  - major improvement: when catgen is called from within qmamecat, its output to
    stdout is no longer shown; a progress dialog is displayed instead
  - major improvement: an image is shown in front of the gamename, if a preview
    could not be found (updated after checking the previews and on-the-fly)
  - bug-fix: gamelist wasn't scrolled correctly after preview check
  - bug-fix: corrected some tooltips
  - bug-fix: xmame log didn't show ANY data
  - bug-fix: xmame log wasn't updated after gamelist refresh
  - code cleanup: widely used pointer to main widget (MainWidget *mw) now global
    to reduce overhead
  - major improvement: added a MAME options editor/dialog
  - major improvement: updates to xmame log now triggered by process manager
  - bug-fix: path label of preview check dialog sometimes not correctly updated
    when hidden
  - minor improvement: changed makefiles to allow for linking against libqt-mt
    (gmake QT_MT=1)
  - bug-fix: wrong dialog caption for temp dir selection
  - major improvement: added a complex dialog to edit M.A.M.E. command line
    options (global and game-specific) in a user friendly way
  - code cleanup: moved style management to common library to make it available
    for all applications (not only qmamecat)
  - addition: added qmmapkey-x11 as a first external key remapper
  - code cleanup: more ISO C++ compliant (gcc/g++ 3.x support)
  - major improvement: options and MAME options dialogs totally redesigned,
    minor layout changes to other dialogs
  - minor improvement: adjusting options and MAME options dialogs to smallest
    possible geometry
  - major improvement: Qt based installer added (fallback to old perl script, if
    i.e. the DISPLAY can't be opened), integrated into qmsetup
  - code cleanup: common images moved to src/common/images/
  - minor improvement: finish button of setup wizard now default button when
    enabled
  - major improvement: using QSettings for qmamecat's options (platform
    independent, more flexible and easier to use/enhance), changed some external
    option names as well (more consistent naming) => settings will be reset !
  - minor improvement: binary distribution now contains all major docs as well
  - minor improvement: for all listviews (except the gamelist): resize mode =>
    last column
  - appearance: changed column header descriptions
  - bug-fix: didn't raise mame options dialog on user request

  Changes since last beta (v0.44.b45):

  - bug-fix: fixed compile problem with KDE 3.1 supplied Qt 3.1.1 headers
  - major improvement: using QString's instead of char arrays in internal
    gamelist representation (dynamic allocation => more effective memory usage,
    support for _full_ length game descriptions)
  - bug-fix: fixed several compile issues with "make DEBUG=2"
  - major improvement: the new MAME options dialog finally works :) - supports
    both short and long MAME command line options
  - major improvement: new "custom options" line edit for unknown options (MAME
    options)
  - bug-fix: missing range checks for "-dar <float>" (MAME options)
  - bug-fix: recreating gamelist "on-the-fly" resulted in a seg-fault under
    certain conditions; the game structure is a class now, with an overloaded
    "=" operator (which fixes it, because of the transition to QString's and
    their dynamically allocated memory)
  - bug-fix: fixed order in x11 key maps

v0.43, 18-JAN-2002:

  - first version with Qt 3 support (tested with Qt 2.3.1, 2.3.2, 3.0.0 and
    3.0.1)
  - note that there are minor differences in the log-window's scroll-behaviour
    between the Qt 2.x and 3.x versions of qmamecat
  - when upgrading (or downgrading) to Qt 3.x (or 2.x) you should reconfigure
    your fonts (!!!); as soon as you open/close the font-dialog you'll probably
    be presented with different fonts than expected; that's because Qt's
    internal font-handling has changed and so the fonts are determined
    differently (QFontDatabase)
  - made the GUI more responsive during gamelist-refresh and preview-checking
    by the use of QApplication::processEvents() (at several places)
  - bug-fix: automatic gamelist-refresh is now avoided if the xmame version
    is the same (only the executable is different, i. e. another display 
    target); note that this eats some memory, because we need to temporarily
    save the current state of the gamelist while checking this
  - progress dialogs are now also displayed while the catalog, the rom 
    status cache and "additional info" (manufacturer & year) are loaded/parsed
  - bug-fix: when qmamecat determined that it had to recreate the rom status
    cache and the command line option "-r" was used as well, it did that twice;
    fixed now :)
  - new and improved about dialog that works fine with both Qt 2's and Qt 3's
    layout management (the old dialog didn't work correctly under Qt 3)
  - bug-fix: status-bar messages weren't correctly updated while printing
    (shows currently printed page number correctly now)
  - changed the snapshot-rule from <rom>-snapXXX.<ext> to <rom>XXXX.<ext> when
    searching for preview images (changed the docs accordingly) - note that this
    requires/assumes a recent xmame version (it changed somewhere in the
    0.37beta series of xmame)
  - integrated the FAQ into the docs directory; german translation available
  - new "overall" gamelist statistics counters (see about dialog, the numbers in
    bracktes - the other numbers correspond to the currently displayed subset
    of the gamelist)
  - fixed paragraphs in the sample text for the default font (options/fonts)
  - adjusted the startup size of the options dialog (smaller now)
  - added several preview toggles via menu (see view->preview) or their
    accelerators alt+v/i/c/b/a
  - some existing accel-keys changed (not the important ones)
  - bug-fix: used geometry() instead of frameGeometry() to store the position
    of the preview window
  - bug-fix: log-windows can be toggled via the options-dialog or menu (same
    meaning), should've done that before :)
  - bug-fix: closing the log- and preview-windows by the window-manager is now
    correctly handled (this is recognized by qmamecat now, that is)
  - using a different Qt header file for the QMultiLineEdit declaration
    (qmultilineedit.h)
  - bug-fix: missing "#include <qpainter.h>" in qmamecat.cc (needed since Qt 3
    beta 4)
  - bug-fix: when using Qt 3, empty QLineEdit's return NULL for the text()
    method, which resulted in a segmentation fault, when returning from the
    edit- or options-dialogs; fixed by checking for text().isNull() prior to
    copying the string to the config-struct
  - when using Qt 3, setErasePixmap() is now used instead of 
    setBackgroundPixmap() (still used for Qt 2) as setBackgroundPixmap() is
    marked "obsolete" for Qt 3 and above
  - the preview images can now also be shown inside the main-widget (beside or
    below the gamelist)
  - previews can be scaled now (and the preview window can be resized) !
  - support for italic fonts added
  - a warning message is shown before the ROM status cache is refreshed (by user
    invocation, probably accidently), because this may take some time depending
    on your ROM collection and system 
  - 11 new options: <pvw_w>, <pvw_h>, <integrated_preview>, <scaled_preview>,
    <preview_below>, <keep_aspect_ratio>, <warn_refresh>, <splitter_gamelist>,
    <splitter_preview>, <font_italic> and <gl_font_italic) (see README)
  - view menu changed to include a new preview-popup (where some of the new 
    options can be configured) and an exit item; same for the game context menu
  - pressing the right mouse button within the preview- or log-windows also
    displays the context menu now (all items of the context menu can also be
    reached via their corresponding accelerators even in these windows now)
  - bug-fix: calling adjustSize() after setGeometry() caused the main widget not
    to resize correctly at startup :)
  - implemented a message handler for all Qt messages to redirect them to the
    mamecat log (instead of stderr/stdout); only works with Qt 3 !
  - bug-fix: the search-window was not positioned correctly under the gamelist
  - bug-fix: (external) preview-window position was not correctly restored in
    all cases
  - bug-fix: log window positions were stored when they were hidden (which
    resulted in incorrect positions when reenabled later)
  - bug-fix: progress dialog's font was not changed correctly
  - many debug messages added/changed
  - some default values (esp. font-settings) changed - see README (section 6)
  - docs changed accordingly (incl. new URL of german homepage, a new "bugs &
    restrictions" section in the README and additional FAQs)
  - bug-fix: missing word-wrap in default-font sample when using Qt 2 (no fix
    needed for Qt 3)
  - Qt's built-in sort-indicators are used for the gamelist-header now; minor
    changes to the column descriptions

v0.42, 25-FEB-2001:

  - changed makefiles to correctly determine library dependencies
  - added a lib directory to store all local library files
  - bug-fix: start directories in browse dialogs now correctly setup, files
    pre-selected now (note: pre-selection doesn't wokr with Qt 2.2.4, other
    versions we tested appear ok - even Qt 2.3.0 beta)
  - added a new source file (src/include/macros.hxx) to store all constants
    and macros in one place
  - added two additional per game info columns: manufacturer and year (these
    infos are parsed from "xmame -listgames" and not stored in the catalog);
    this has been tested with xmame-0.36.1 (latest final), -0.37.b11.1 and 
    -0.37.b11.2; if it doesn't work for you, please let me know !!!
  - added a check_only flag to LoadGamelist() to allow for a better/faster
    check for a changed xmame version (avoids catalog inconsistencies if you
    tend to often switch between 2 or more xmame versions)
  - changed all default window positions to (0,0); default info-column widths
    changed
  - bug-fix: submenu(s) of the gamecontext menu didn't change fonts dynamically
  - the parser now automatically determines if quotation marks are used in
    xmame's -listfull output - compile time option -DUSE_QUOTATION has been
    removed
  - two new log windows and files for qmamecat's and xmame's output; the log
    files are stored in <tempdir> as mamecat-session.log and xmame-session.log;
    note that the xmame log works asynchronously, it will take up to 4 seconds
    before new data is displayed
  - menu additions: "Log->Mamecat log..." and "Log->Xmame log..." added to
    "View"- and game-context-menus
  - qmamecat now directly starts into GUI mode (that is, there is no console
    output any longer - instead it's in the log windows/files now !)
  - new boolean option <remove_logs> = remove log files on exit (1) or keep
    them (0) ?
  - eight new options to store geometry of the log windows (<xmamelog_x/y/w/h>
    and <mamecatlog_x/y/w/h>); two new boolean options to decide if the log
    windows should be displayed when qmamecat starts (<xmamelog_show> and
    <mamecatlog_show>)
  - four new options to store positions and widths of the new info columns
    (<manufacturer_pos/width> and <year_pos/width>)
  - added a new boolean option (<warn_catalog_update>) to disable the "catalog
    needs an update" message boxes
  - added the new options (the configurable ones) to options-dialog
  - added a new compile time option (DEBUG = 1 or 2) to top-level make.cfg
    (note: if you open the log-windows when FULL debug is turned on, it may
    cause Xlib errors - better use the log files in this case - but it basically
    works (at least on my machine ;-)
  - readded the bin directory - easier to find binaries when installing
    manually; this includes some makefile additions and changes in the install
    script
  - minor corrections for dynamic menu-descriptions; two new menu-descriptions
    added
  - READMEs changed accordingly

v0.41, 04-OCT-2000:

  - moved most constants/macros to src/include/macros.hxx
  - renamed all *.cxx files to *.cc 
  - moved all header files to src/include
  - moved the preview-checker code from src/qmamecat/qmamecat.cc to the new
    src/qmamecat/prvcheck.cc (see PreviewCheckDialog::refreshLists())
  - added a new tab-dialog for the preview check output (the old dialog was a 
    bit rudimentary and needed a replacement ;-)
  - the new dialog is non-modal and the preview-check process can be
    interrupted ("Stop" button on the progress-dialogs), analysis output
    gathered up to this point will be available (even if you close and reopen
    the dialog); a "Refresh" button clears the data and restarts the preview
    checker
  - the progress dialog for the preview checker is ONE instance again, reset in
    between the two passes; I found the reason and a solution for my problems
    with the single dialog approach; see change-log for v0.38 for more info
  - the new dialog uses some Qt 2.xx features that are not compatible with Qt
    1.4x, so we decided to only support Qt 2.xx from now on !!! Sorry, if that
    bothers anybody, but it would have made things too complicated to make it
    both 2.xx and 1.4x compliant. On the other hand, there are interesting new
    features in Qt 2.xx which we NOW can start to use. So this is an 
    improvement ;-).
  - all available fonts are now automatically determined (see note below !)
  - furthermore, since the new automatic determination of all available fonts
    requires the QFontDatabase class, Qt 2.1.0 is required at least !!! In 2.0
    this class was private and was only used internally (Qt)... sorry for that,
    but since version 0.41.b6 Qt 2.1.0 is ABSOLUTELY REQUIRED.
  - successfully tested with xmame-0.37b7.1
  - a small popup message ("Executing XXXXXXX...") is displayed for 2 seconds
    now when a game is started (easier to recognize than the message in the 
    status bar, which is still available)
  - changed some accel-keys in the options-dialog (general settings) for
    uniqueness
  - removed the "Hide" button from the progress dialog for the gamelist refresh
    and reimplemented the closeEvent() method for this dialog to be able to 
    ignore close events while refreshing the list (being able to close the 
    progress dialog caused weird behaviour for some users - at least for one 
    user I know of (hi Rob ;-) - which is hopefully fixed now)
  - totally new makefile-structure contributed by Betrand Petit (see CREDITS)
  - removed support for the curses-version (mamecat) because it caused us 
    trouble with the new makefile-structure (I already said in the man-page
    for a long time, that this version will die as soon as it causes us
    trouble - so don't blame me for it ;-)
  - as Bertrand is using FreeBSD, we can now proudly announce FreeBSD support
    as well; therefor the current set of supported platforms is Linux, SunOS 
    and FreeBSD. OS-specific maintainers are documented in doc/CREDITS. Thanks
    for the contribution... BTW: we would like to support more platforms, so
    additional OS-specific maintainers are very welcome !!!
  - changed the docs accordingly (esp. the new compilation/installation
    procedure)
  - changed the install script to support the new makefile structure
  - added a new tool: qmsetup - startup config wizard for qmamecat (should
    NOT be started manually, ONLY automatically by qmamecat !)
  - removed "missing value for option..." warning messages from config
    parser (common/options.cc)
  - changed the default color for "not found" rom-sets to #C8C8C8 (lightgrey)
    to better distinguish them from "incorrect" ones (default: red)
  - changed the color-settings dialog to allow for switching to the color
    represented by a line in the sample list (by clicking on it)
  - minor bug-fix (printing): gave the rom-column 2% more room, stolen from the
    gamename-column; should fix word-breaking within the rom-column
  - doc changes (READMEs): removed entries up to v0.40 from section 11 (release
    notes), reworked section 3 (installation)
  - moved the installer into the new subdir "scripts"

v0.40, 10-APR-2000:

  - added 11 new options: <color_ROMSTATUS>, <color_ROMSTATUS_high> (replace
    ROMSTATUS with "correct", "maywork", "incorrect", "notfound" or "unknown")
    and <specify_color_by>, which allow for gamelist color specification by
    rom-status !!! A long awaited feature ;-)... the "old" behaviour is still
    supported (color specification by rom-availability) and the default;
    <specify_color_by> sets the color-specification method (1 = rom-status,
    0 = rom-availability)
  - changed the color-settings dialog accordingly; the sample-gamelist now has
    3 entries for each valid rom-status (before I used a copy of the first 500
    "real" gamelist entries, but this couldn't guarantee that an entry of EACH
    type existed in the sample-list; consider it a bug fix ;-)
  - added the new options to the READMEs (section 6) and to mamecatrc.sample
  - added two new methods (makeQColorFrom() and makeRGBColorFrom()) to GameList
    class for better readability of the code
  - added a line edit & browse button for the <status_cache> option (introduced
    in v0.39) to the options-dialog
  - did some code-cleanup in the GameListItem::paintCell() and 
    SampleGamelistItem::paintCell() methods for better Qt 2.xx compatibility
  - removed (nearly) all occurances of the old <thorough_romcheck> option,
    which were already commented out in most cases since v0.39
  - corrected a typographical error in the message printed when requested to
    enter the path and filename of the ROM status cache
  - changed the default answer for rebuilding the targets (when they already
    exist) to "no" in the install script
  - config-reader and ~-writer rewritten; much cleaner and smaller code now, 
    which makes it easier to add new options than before; ALL white-space 
    characters can be used as delimiters now (before it was a bit pedantic
    about the format ;-)
  - successfully tested with xmame-0.36.1 and xmame-0.37b1.1
  - changed all occurances of www.troll.no to www.trolltech.com in the docs
    (Troll Tech changed their domainname a few weeks ago ;-)
  - bug-fix: when using a beta release before a final release, the version 
    checker interpreted the smaller <version_beta> incorrectly (it's "0" in the
    case of a non-beta/final release !), printed a weird warning message and did
    NOT update the version entries in the config file; this is fixed now

v0.39, 15-MAR-2000:

  - added a variable MAKE to the top-level Makefile.inc (if you have an SMP
    system, use "MAKE = make -j N" (N = number of CPUs + 1) for faster
    compilation (BTW, before you ask: SMP does not improve the performance of
    (q)mamecat very much, except for rom-analysis - which uses 2 threads of
    execution - and when fork()'ing xmame-processes !)
  - bug-fix: "include ../Makefile.inc" was missing in one of the makefiles
  - using a rom-status cache now to speed up rom-analysis at startup
  - added a new option <status_cache> for this purpose (points to the filename
    of the cache file); this option cannot be changed from within qmamecat yet,
    you have to change it manually in the config-file, if you want to do so - 
    for whatever reason; I will probably add this in a later version
  - added a command line option "-r" which will force (q)mamecat to recreate
    the rom-status cache from scratch (same happens when the View->Refresh menu
    item in qmamecat is used or the rom-status cache file is removed); note that
    you HAVE TO refresh the gamelist now if you install new ROMs so that 
    (q)mamecat can find and analyze the new (or changed) ROMs !!! Updating to a
    newer xmame release will automatically force a recreation of the cache and
    update of the catalog (through catgen as before). Frankly speaking, I'm not
    sure what happens if an OLDER xmame release is used ;-)...
  - added a new section to the READMEs about available command line options
  - added a description of the ROM-status cache file format to the READMEs
    (combined with the section about the catalog format)
  - modified the man-page accordingly
  - <thorough_romcheck> is NOT an option any longer; the new ROM-status cache
    makes it somewhat obsolete and it would lead to trouble if unset; it's still
    in the internal config-struct (just in case ;-), but you can't reconfigure
    it "externally", it's always enabled now !
  - qmamecat now prints the Qt version it was compiled with as well as the Qt
    version it is currently being run with at startup (this should make it
    easier to find possible binary library incompatibilities, if any)
  - changed the english homepage URL to http://www.mameworld.net/mamecat 
    "everywhere" in the sources (mainly the docs)
  - removed the useless linker option -lstdc++ from the top-level Makefile.inc
  - added 3 additional options for better version-handling: <version_major>,
    <version_minor> and <version_beta> (only used internally, shouldn't be
    changed manually !!!)
  - added a new routine for version-specific checks (see version_check() in
    src/common/options.cxx); this includes procedures for easier migration
    from existing installations to newer (and probably incompatible) versions
    of (q)mamecat - the first use of this is the setup of the new rom-status
    cache file (you will be asked for a path and filename) - this is the main
    reason for the afore mentioned <version_xxx> options 
  - added all new options to doc/mamecatrc.sample, removed <thorough_romcheck>
    from it
  - changed the READMEs (sections 6 & 8) accordingly
  - added support for the new "xmame -listXXX" output format (new since 
    xmame-0.36rc1.1)

v0.38, 09-DEC-1999:

  - added a tool to check the current preview set (incl. a new menu item
    "Tools" -> "Check previews...") - note that this may take some time, esp.
    when run on a zip-compressed preview-archive it will give the impression
    of a 10 MB download over a 64 Kb/s line ;-)
  - prepared a menu item for the upcoming ROM administration tool (not yet
    implemented)
  - the actual code for updating the preview-window has been moved out of 
    PreviewWindow::paintEvent() into a new subroutine called PreviewWindow::
    doSearchAndUpdate()) to allow for reuse of this functionality within 
    other code (esp. for the new preview-checker); this new routine has a 
    parameter "pseudo", if pseudo == 1 the preview will NOT be drawn, instead
    a string-list (QStrList) will be returned containing ALL available preview
    image file names for a particular rom-set (incl.  the obsolete ones) - 
    this is "PASS 1" of the preview-check. "PASS 2" checks if there are any 
    preview-files that are not related to any rom-set; all this information 
    gets printed as ASCII text in an editor-widget... the dialog is yet a bit 
    rudimentary and it's hard to find what you're looking for, but I will try
    to improve it in later versions
  - added a symlink README.english in the doc directory (which links to README)
  - changed the references to the english homepage (which has moved to 
    http://mameworld.retrogames.com/mamecat/ !) in the READMEs, the man-page and
    the installation script
  - added a function total_entries() to src/unzip/unzip.[ch] to determine the
    number of entries in a given zip-file
  - added a function entry_list() to src/unzip/unzip.[ch] which returns a "list"
    (char **) of all entries in a given zip-file
  - changed the "parent" of the options-dialog (back) to NULL, which centers the
    dialog on the desktop (I think it looks better, esp. when the main widget is
    placed at any corner of the desktop)
  - added a new compile-time switch -DCHECK_IMAGE_FORMAT for qmamecat; if unset
    (the default), qmamecat does not check if a preview image has a valid
    format, which speeds up preview-processing a little bit (not noticable on
    a fast machine). See the top-level Makefile.inc for more information...
  - when zip-compressed previews are used, the uncompressed image data is now
    DIRECTLY copied into the pixmap memory (before I used a temp. file), which
    makes it a bit faster than before (also not noticable on a fast machine ;-)
  - changed the overall compiler optimization from "-O3" to "-O2" as some
    compilers (non gcc) appear to have trouble with "-O3"
  - fixed a serious memory leak that was introduced in v0.38.b4 (the RSS
    went above 20 MB when zip-compressed previews where checked)
  - using two separate progress-dialogs for the preview-checks (PASS 1 & 2)
    now; until v0.38.b4 I used only one object which was reset between the two
    steps, it appears that this caused strange behaviour sometimes ("BadWindow"
    X11 errors); I hope this fixes it
  - instead of using cache_suspendzip (as in v0.38.b4) I'm using 
    cache_closezip() now in both new routines entry_list() and total_entries()
    (see src/unzip/unzip.c); this fixes another (minor) memory leak
  - support for the new output format of "xmame -verifyroms" of xmame-0.36b11.1
    and above (older xmame versions are still supported)
  - gamenames can now be up to 80 characters long (not all descriptions fit, but
    most ;-)
  - new option <show_unknown> (enabled by default) which allows you to see
    rom-sets which are in an "unknown" state (the status-column will display
    "NA" = "Not Applicable" in these cases); this is especially important for
    games that have NO rom-set (currently only "pong" AFAIK). This means that
    mamecat finally supports games without a rom-set !!!
  - this includes additional menu entries in the view- and game-context-menus
  - added a description of the new option to the READMEs
  - added the new option to doc/mamecatrc.sample
  - added a counter to display the number of games in "unknown" state in the
    about-dialog

v0.37, 23-JUL-1999:

  - bug-fix: corrected the prototype definition for child_signal_handler() in
    src/common/util.hxx (no real code change)
  - removed the use of .depend (the dependency file) from all Makefiles; the
    dependencies are already correctly setup in the Makefiles
  - enhanced search-routine: automatic string substitution, which also works
    REVERSELY when backspace is pressed - I'm very proud of this !
    Note that qmamecat "wastes" another 250000 bytes of memory to accomplish
    this, but I think it's worthwhile doing so... BTW: I don't know any other
    application that can do reverse substitution, so I believe we are the first
    to do so - WOW ;-) !
  - search-window timeout set to 4 seconds (you need more time to compare the
    substituted strings with what you wanted to find ;-); every key (except 
    ESC !) resets the timeout now
  - bug-fix: the cursor was not visible within the search-window; fixed now by
    grabbing the focus while the search window is active
  - the gamelist is sorted case-insensitive now !!!
  - bug-fix: when the preview window was iconified and restored afterwards, the
    image was not always correctly changed; fixed now by periodically checking
    the current visibiliy-state and forcing a repaint() when the window is
    restored (unfortunately, restores don't generate X/Qt events, so the only 
    solution is polling the state)
  - added information about the new string-substitution to README(.german)

v0.36, 21-JUL-1999:

  - using the routine QPrintDialog::getPrinterSetup() as a replacement for 
    QPrinter::setup() now if Qt 2.x is used (the Qt docs state that 
    QPrinter::setup() is obsolete now) - please note that you will not see any
    difference in the GUI !
  - bugfix: settings for highlighted gamelist colors were ignored under Qt 2.0, 
    this is fixed now
  - you can now sort the gamelist by "game specific options" as well; changed
    README(.german) to reflect this
  - due to popular request, current gamelist stats are now shown in the about-
    dialog below the copyright-infos

v0.35, 17-JUN-1999:

  - support for PNG image format added (requires Qt 2.0 or above - if Qt 1.4x
    is used, PNG support will NOT be included in qmamecat !); BTW: this is also
    the new format xmame creates since 0.35rc1.1 (when you press F12) !
  - support for PPM, PBM and PGM image formats removed (they are normally not
    used and cost a lot of time searching for them ;-)
  - xmame's "old" XPM snapshots (rom-snap00X.xpm) are still supported, but the
    range of snapshots searched for has been reduced to 000 - 004 (this speeds
    up searching for images, esp. in the worst-case when an image cannot be 
    found at all !)
  - found a way to reduce overhead produced by unwanted Qt- or X11-generated
    paintEvent()'s; this should make the new code for displaying previews about
    twice as fast as before (well, the "useless" paintEvent()'s are still 
    generated, but they are ignored) - it's a littly tricky (and I really don't
    know exactly, WHY it works ;-) but at least it results in a better 
    performance...
  - the display of previews is delayed until the gamelist-cursor isn't moved for
    a short amount of time (currently 250 milliseconds !); again, this avoids
    unwanted paintEvent()'s for the preview-window and due it reduces some 
    overhead; you will notice that moving the gamelist cursor is faster now, 
    because it is not interrupted by preview-processing (at least not as often
    as before ;-). 
    Note that this (and the above) is not yet a complete solution for the 
    performance problems we have with previews, but it's a start... we think
    that either parallelizing it (seperate thread for preview-processing) and/
    or making it interruptable (by keyPressEvent()'s) should be a better 
    solution; we hope to implement that in the next release !
  - changed README(.german) to reflect the above mentioned changes
  - the automatic raise() for the preview-window has been removed

v0.34, 09-JUN-1999:

  - changed Makefiles to use $(CXX) everywhere (mixing C++ and C compiler seems
    to have introduced dynamic linker problems (at least) on Slackware Linux);
    I hope this fixes it (thanks to wfaulk@totalsports.net for his hard work
    figuring this out ;-).
  - removed the "extern "C"" statements from some C sources, as it is not 
    neccessary when using ONLY C++ compilers...
  - code cleanup (there were a lot of "unused variables")
  - many code changes to be Qt 2.0 compliant (Qt 1.4x is still supported !)
  - changed URL of german homepage in README(.german) and man-page
  - added information to README(.german) about the printing problems under
    Qt 2.0 (appears to be caused by a bug in Qt 2.00beta1 !)

v0.33, 07-MAY-1999:

  - some improvements to the installation script by Robert Hamberger
  - when the catalog is "outdated" the user gets the option to start catgen
    from within qmamecat now (without the need to exit qmamecat); note that
    if you use a catalog other than "mamecat.cat" the run of catgen will cause
    the catalog's name to be automatically changed to "mamecat.cat", because
    catgen stores the new catalog under this name ! This is done without
    warning or further questions...
  - since 0.35b11 (x)mame reports an additional ROM-status (NO GOOD DUMP KNOWN)
    and lets you start the emulation in such a case; prior to this version,
    MAMECAT marked these ROMs as 'IN'correct, which not neccessarily is true;
    this has been fixed in this version, so that such ROMs are marked as
    'M'ight 'W'ork ! It's hard to stay up-to-date with (x)mame ;-)...
  - added a "Special notes for new versions of MAMECAT" section to
    README(.german)

v0.32, 09-APR-1999:

  - installation script added (thanks to Robert Hamberger !), can be launched
    with "./install" or "make install"
  - (q)mamecat checks the availability of the local configuration file at
    startup; if it can't be found, prompts the user for a minimum configuration;
    additionally a catalog will be created automatically; both the new 
    configuration file (.mamecatrc) AND the new catalog (mamecat.cat) are
    stored in $(HOME)/.xmame. Note that this requires "catgen" to be in your
    PATH !!!
  - ROM-path (parsed from xmame -showconfig) is shown on stdout, when 
    MAMECAT_DEBUG is defined
  - added a CREDITS file
  - added german README (README.german)
  - added URL of german homepage to man-page and README(.german)
  - added information about the new installation-procedure to README(.german)

v0.31, 16-MAR-1999:

  - changed all combo-boxes from Motif 1.x style to Motif 2.0 style
  - temp. messages are shown in the status-bar when you save the catalog
    or the options
  - edit- & options-dialogs are now children of the main-widget (which centers
    them on the main-widget, not on the desktop as before)
  - ROM status and Refresh menus added to gamelist context menu
  - first version with support for Qt 2.0 (which is not yet released !)
  - xmames -listfull output has changed again ;-(, this version supports
    the new output-format (by default); if you should use an older xmame 
    version (older than 0.35b6.1 !), please uncomment the option QUOTATION
    in the top-level Makefile.inc !!!

v0.30.1, 26-FEB-1999:

  - under Qt 1.43 the display of the preview-window was 'damn slow', this 
    version fixes that by delaying the visual widget updates
  - the menubar was not displayed correctly under Solaris 2.5 with Qt 1.43,
    fixed by adding a menu_bar->repaint() to the main-widget's resizeEvent()
    (Carsten Engel found the problem and its solution)

v0.30, 25-FEB-1999:

  - buttons and old status-line removed (the information in the status-line was
    redundant since it is already in the gamelist !)
  - menubar added as a replacement for the buttons; this includes some extra
    functionality:
  - the rom-status can be used to limit/control the current view (see menu
    'View'->'ROM status')
  - 4 new options (<show_correct>, <show_maywork>, <show_incorrect> and
    <show_notfound>) added to accomplish this (also added to README and
    mamecatrc.sample)
  - when the option <thorough_romcheck> is changed, the gamelist will now
    automatically be refreshed after return from the options-dialog (due to
    the above)
  - made gamelist-initialization more failsafe
  - a progress dialog is shown when the gamelist has to be reinitialized
    (the initialization at startup still uses the progress-output to stdout !)
  - the individual tabs of the options-dialog can now be pre-selected through
    the options-menu
  - accel-keys defined for most menus
  - class MyWidget renamed to MainWidget
  - print function added (incl. a printer setup dialog); note that this
    has only been tested on A4 printers, but it *should* also work on other
    formats
  - added a small section about printing to README
  - an about-dialog has been added (very important ;-)
  - bug-fix: when the gameopts and/or remarks did only change in terms of 
    'character-case' (when edited), the gamelist-entry was not correctly set
    after return from the edit-dialog 
  - bug-fix: when the catalog-filename and/or mame-executable are changed, the
    gamelist has to be reinitialized (this should be done correctly now)
  - bug-fix: window-positions were not stored when you saved the options on
    exit; this works now, but only if you do a 'clean' exit ('File'->'Exit')
  - a 'real' status-bar has been added (this includes a little resize-handle in
    the lower right corner)
  - pressing cursor-up/down while the search-window is open jumps to the next/
    previous matching game in the current gamelist
  - the search-window is displayed below the gamelist now (note that when you
    resize the main-widget, the open search-window will NOT resize/move)

v0.29, 17-FEB-1999:

  - changing the sort-criterion and ~-order by clicking on a column-header is 
    now supported (the only exception is the 'OPTIONS' column); the current
    setting is shown in the header as a '>' (ascending) or '<' (descending) 
    as a prefix to the corresponding column-header !
  - column-positions and ~-widths are (re)stored now (this was neccessary to
    work-around a bug in Qt :-); 12 new options added to accomplish this 
    (<XXXX_pos>/<XXXX_width>; also added to README and mamecatrc.sample)
  - tool-tip for gamelist removed (the mouse cursor wasn't changed correctly,
    while the tool-tip was active !)
  - a click on the save button in the main-widget opens a popup menu now to
    select between 'Gamelist', 'Options' and 'Both'
  - totally new way of checking if current options differ from saved options
    (easier, faster and more precise now :-)
  - a context-menu appears when you right-click on an entry in the gamelist
    (no new functionality, but nice to have :)

v0.28, 01-FEB-1999:

  - added support for zip-compressed preview images (the unzip-code has been
    taken from xmame and is in the new directory src/unzip !) - this is only
    available with qmamecat (of course :-); unzip-code slightly changed (only
    handling of error-messages)
  - two new options (<compressed_previews> and <compressed_preview_file>) 
    added for this purpose
  - both new options added to options-dialog (general settings), README (see
    sections 4 and 5) and mamecatrc.sample
  - using a QListView instead of a QListBox for the gamelist in qmamecat; this
    solves the problem that proportional fonts made the gamelist look weird (so
    now you can use them in the gamelist, if you like), offers column-headers,
    you can dynamically change the column-widths or exchange columns (but
    their order is currently not (re)stored) etc. etc. ...
  - the gamelist in qmamecat displays additional information: <gamename>, 
    <rom>, <status>, <remarks>, <gameopts> and <rating>
  - you can also sort by <status> now
  - bug-fix: when the options where not changed (while in the options-dialog)
    and 'save' was clicked, the window-positions where not stored to
    .mamecatrc
  - function FindGameStr() (in src/common/gamelist.cxx) now supports searching
    in both directions (forward and backward); new optional parameter 'forward'
    (backward searching was neccessary due to the 'reverse ordering' of the
    entries in QListView, otherwise the search found the last entry first :-)
  - options-dialog (sample gamelists) changed to reflect the new look of the 
    gamelist; the sample gamelists now show the *exact copy* of the current 
    gamelist, except that the max. number of entries is limited to 500 (to
    speed up dialog creation !)

v0.27, 26-JAN-1999:

  - 'Known working platforms' section removed from README (the list on the
    homepage is more up-to-date :-)
  - README now correctly states that Qt 1.4x is neccessary (since v0.25
    Qt 1.3x is no longer supported !)
  - catalog-consistency is checked on startup now: if (q)mamecat finds any
    inconsistencies compared to the '-listfull' output of xmame the
    user will be warned (in case of mamecat only in form of a message to
    stderr, in case of qmamecat by the use of a message-box !)
  - "#if QT_VERSION >= 140 ... #endif" removed from all sources as it does not
    make sense to check for something that is no longer supported ;-)
  - fork()'ing of xmame now only done with qmamecat, the text-/console-version
    was seriously 'confused' by the use of fork() (exec_game() has a new flag 
    'forkit' now - it didn't make much sense if used on the console !)
  - new option <thorough_romcheck> added; if set, (q)mamecat uses xmame's
    -verifyroms option to analyze rom-availability 'in-deep' at startup
    of (q)mamecat or at every refresh (!); this may take some time depending
    on the amount of roms you own, but is much more reliable than just looking
    for the existance of a file named <rom>.zip (or a directory of that name)
  - new <status> field in _game_-struct; the status is displayed in both 
    mamecat and qmamecat in their status-lines: shown as 'CO' (COrrect), 
    'IN' (INcorrect and not working), 'MW' (incorrect but May Work), 
    'NF' (Not Found) or 'NA' (Not Applicable = unknown status);
    ROMs with status CO, IN or MW are marked as 'available' !
  - added a new counter for the number of 'correct' games, which is displayed
    in the gamecount-label in both mamecat and qmamecat, but only if
    <thorough_romcheck> is enabled (otherwise the value would be unknown !);
    this gives you the ability to cross-check that the ROM-status was correctly
    determined (if you compare this to the output of 'xmame -verifyroms', which
    blurbs out some counters at the end - these should match the counters
    (q)mamecat displays, otherwise something has gone totally wrong :-)
  - max. length of gamename set to 50 as many gamenames meanwhile exceed 32 
    characters

v0.26, 18-JAN-1999:

  - bug-fix: gamelist-colors were set incorrectly after return from the
    options-dialog
  - bug-fix: the gamecount-label was incorrectly resized after return
    from the options-dialog (under certain circumstances parts of the text 
    were not displayed)
  - added a counter for the number of available games that are currently
    shown in the gamelist (displayed in the gamecount-label in both mamecat
    and qmamecat)
  - preview image filenames can now also be <rom>-snap00x.<ext> (x = 0..9,
    limited to 0..9 because of performance issues), so you may just copy
    snapshot-files produced by xmame to your previewdir; but note that if there
    is a file named <rom>.<ext>, this one will be used instead (README changed
    to explain this)
  - new option <ignore_rom_avail>: if set, the rom-availability will be ignored
    and games that (q)mamecat considers unavailable can be started too ! 
    (new option added to options-dialog (general settings), mamecatrc.sample 
    and README)
  - the search window now ignores input that does not result in a listed
    game name (beeps in this case)

v0.25, 18-DEC-1998:

  - the config-setting <romdir> has been removed (ignored now), instead xmame's
    rom-path setting is parsed from 'xmame -showconfig' and used as <romdir>
  - <romdir> label & lineedit removed from options-dialog (see above)
  - <romdir> removed from mamecatrc.sample (may confuse the user :)
  - bug-fix: the rom-image filename was editable in the edit-dialog, now it
    is a just a label (w/o focus), so you can't change it from within qmamecat
    (being able to change this might have caused some trouble :-)
  - the options-dialog now is a tab-dialog with tab-widgets for general-, 
    font- and color-settings (the general-tab includes all settings that
    were in the original options-dialog !)
  - fonts can be changed 'on-the-fly' now using the new 'Fonts'-tab of the
    options-dialog (the main-widget's layout is 'automagically' rearranged, if 
    the default-font changes !)
  - gamelist colors can be changed 'on-the-fly' now using the new 'Colors'-tab
    of the options-dialog
  - the preview-dir can now also be browsed
  - file browsers (used in the options-dialog/general settings) now start off
    in the directory where the currently selected file is stored
  - you are now asked to save the options before you exit qmamecat, if you 
    changed any settings (from within the options-dialog)
  - bug-fix: the ROM-, AVAIL- and RATING-labels in the main-widget are now
    'fixed' at their initial positions (before they were stretched dynamically,
    which looked a little ugly ;-)

v0.24, 14-DEC-1998:

  - man-page added (see src/man/*, doc/mamecat.6); see README (section 3) for
    more information on how to rebuild the man-page (which normally shouldn't 
    be neccessary) - symlinks for qmamecat.6 and catgen.6 created in the doc
    directory , so the user may also use 'man qmamecat' or 'man catgen' (not
    only 'man mamecat')
  - macro EXISTS() moved from src/version.hxx to /src/common/util.hxx, which 
    is a better place for it (src/version.hxx now only includes version & 
    copyright information, nothing else !)
  - gamelist colors can now be specified in .mamecatrc: 4 new options
    avail_color, avail_color_high, unavail_color, unavail_color_high either
    in #RRGGBB format or as a named color (named colors have to be defined
    in /usr/X11/lib/X11/rgb.txt !); see README section 5 for more information !
  - changed doc/mamecatrc.sample to reflect the new color-settings

v0.23, 10-DEC-1998:

  - minor bug-fix: options- and edit-dialogs now have OK as default-buttons
    defined (pressing ENTER will also close the dialogs and accept the changes)
  - when you exit qmamecat or press the refresh button you will be asked to
    save the changes made to your current game-list (if any :-)
  - added information about rom-path usage in xmamerc to doc/README section 5
    (thanks to Robert Hamberger for this hint)

v0.22, 04-DEC-1998:

  - enhanced search-function for qmamecat: when you type a character while in
    the gamelist, a small pop-up window appears where you can enter a string
    to search for; if the string is found (at the beginning of a games name)
    the cursor will jump to the corresponding position in the list; after 
    an idle-time of 2 seconds (or when you press ESC !) the window will be
    closed...
  - bug-fix: if the old catalog was in the cwd and its name was mamecat.cat,
    catgen couldnt find it, because it renamed it to mamecat.cat.bak prior
    to reading from it ;-)
  - new Refresh button to reload the entire gamelist (so you dont need to
    restart qmamecat when you install new ROMs - a click on Refresh will
    cause qmamecat to recognize them !)
  - qmamecat successfully tested with Qt 1.42
  - the colors of the gamelist-entries are dynamically set now: available
    games are 'black', unavailable games are 'grey'ed; longterm these colors
    should be user-definable (in .mamecatrc)... but for now it's ok !
  - bug-fix: last entry was not allways displayed correctly when the END-key 
    was pressed or the new search function caused the list-cursor to jump
    to its location

v0.21, 25-NOV-1998:

  - bug-fix: <zombie>-problem fixed by the use of a signal-handler (which 
    catches the SIGCHLD signal) and wait(2)
  - 'gencat' renamed to 'catgen' as 'gencat' seems to exists as a system tool
    on some platforms (at least seen on SunOS :)

v0.20, 23-NOV-1998:

  - bug-fix: InitGamelist() caused a seg-fault when <executable> was not set
    correctly (or the call to 'xmame -listfull...' didn't succeed); fixed now,
    but *all* games will be marked as 'UNSUPPORTED' in such a case !
  - default for <executable> changed to "xmame.x11" (which should be a better
    default than "xmame.linux" :-)
  - bug-fix (qmamecat): the game count was not displayed correctly when the 
    number of 'loaded' games increases while qmamecat is running (by changing
    some options); the label was not 'stretchable', which caused this bug...

v0.19, 20-NOV-1998:

  - new config-setting <tempdir> used for temporary files
  - new setting added to doc/mamecatrc.sample
  - pipes are no longer used to determine xmame's supported games (which is
    done by 'xmame.* -listfull'), instead temp. files are used (DGA version
    caused problems with pipes; option -stdout-file is now also passed to
    xmame)
  - 'gencat' totally redone - should work fine now

v0.18, 19-NOV-1998:

  - X-Mame is now fork()'ed when you click on 'Play' (or double-click on a
    game or press ENTER); this means that (q)mamecat can now be used (process
    input/events) while X-Mame is running, it also means that you now can start
    several X-Mame processes at the same time (tested with xmame.x11, i do
    not recommend this for DGA, SVGALib or FX/GLMame - but if you do so, please
    mail me your results !)
  - window-position restore now supported: the window-positions (mainwidget
    & preview-window) are stored to the config-file when the 'save'-button
    is clicked from within the options-dialog; they are restored when you
    restart qmamecat (only used in Qt version, of course). Note that if the
    preview-window is disabled when storing the window positions, the 
    default position will be used when you enable it. Also, as long as
    the preview-window is disabled, its position will not be be saved, and
    when you reenable it later on, the last stored position will be used...
    this might, for example, lead to overlapping windows ! 
  - 6 new options in .mamecatrc: mainwidget_x/_y/_w/_h and pvw_x/_y 
  - doc/README changed to explain these new settings (see section 5)
  - doc/mamecatrc.sample updated (includes the new settings now)
  - updated version of doc/COPYING (from www.gnu.org), incl. the new 
    address of the FSF (also updated the address in all cxx-headers and 
    doc/README)

v0.17, 13-NOV-1998:

  - new source-files (src/common/util.*) for common general purpose routines
    added (until v0.16 they were implemented twice)
  - .mamecatrc can now be stored in $(HOME), $(HOME)/.xmame/ or $(HOME)/xmame/;
    when you 'save' the configuration, it gets stored in the dir where it
    was found first - if no file was found, qmamecat uses the default
    $(HOME)/.mamecatrc to save the configuration (see also README section 5 !)
  - env. variable $(MAMEDIR) is no longer used; instead the search for ROM-
    images is done in the same way as the newer xmame-versions do it (this
    includes a new config-setting 'romdir', where the ROM-directories can
    be specified - colon-separated list, just copy it from xmamerc :) !
  - options-dialog changed (added widgets for the romdir-setting)

v0.16, 11-NOV-1998:

  - fixed the 'preview-window'-bug by the use of setBackgroundPixmap() instead
    of QPainter. As a positive side-effect, the image-updates look nicer now 
    (no flickering images) and are a little bit faster than before...
  - the message 'Preview not available' is now also implemented as a pixmap
    (compiled in - see pixmaps.hxx !)
  - changed mamecatrc.sample to reflect the new xmame-config-dir (~/.xmame/)
    convention

v0.15, 17-SEP-1998:

  - thanks to Carsten Engel (carsten.engel@odn.de) qmamecat now supports Qt's 
    layouts; this solves any sort of font-related problems (i.e. selecting a
    very big font may have caused qmamecat not to display the text on buttons
    correctly). As a 'side-effect' any dialog can be resized now (prior to this
    version resizing was restricted to the main-window only).

v0.14, 02-SEP-1998:

  - since Qt 1.40 short & long filenames can be used for Qt's include files,
    but this will be changed in the future (to long filenames only), so
    MAMECAT now supports both: short filenames for Qt versions < 1.40, long
    filenames for Qt versions >= 1.40 !

v0.13, 31-AUG-1998:

  - bug-fix: found another bug in 'gencat', the catalog *should* be generated
    correctly now (did not reload the temporarily generated gamelist from
    disk before game-validation was done, instead the memory-copy was used,
    but this copy was invalid due to possible additions to the temp. gamelist
    on disk - if somebody understands what i'm saying here :) - but please
    allways save a backup copy of your old catalog as 'gencat' is still not
    GA-proven !

v0.12, 19-AUG-1998:

  - bug-fix: in contrast to my own convention that a value must exist if the
    option is specified (in .mamecatrc), the SaveOptions() routine (in 
    src/common/options.cxx) did exactly this, which caused seg-faults when
    restarting (q)mamecat.
    I fixed the LoadOptions() routine (same file) to deal with such 
    'mis-configurations', so the old rule that if an option is specified its
    value must exist, is obsolete now !
  - changed README to reflect this

v0.11, 18-AUG-1998:

  - qmamecat tested with Qt 1.40; compiles & runs flawlessly, the file-dialogs
    look great with this new Qt version !
  - the message 'Preview not available' now (allways) fits into the preview
    window; the correct window-size is determined using the QFontMetric class
  - tried to use the new QListView/QListViewItem classes for the gamelist but
    decided to stay with a 'normal' QListBox, because my way of dealing with
    the gamelist (as an array: indexed) does not make it easy to adopt the
    pointer-oriented QListView... the 'problem' with the QListBox is that you 
    have to use a fixed font, otherwise the gamelist looks very strange.
  - fixed a problem with gencat: when a game does not exist in a newer xmame-
    release or its rom-name has been changed (i already saw that between xmame
    0.33b6.1 and 0.33rc1.1), gencat now comments out the 'invalid' entry. This
    means that the entry will not be lost, but it will be ignored by 
    (q)mamecat. However, if you edit/save the gamelist from within (q)mamecat or
    generate a new catalog from this one (with comments) such entries will be
    lost in the newly created catalog !!! So you should allways save a backup 
    copy of your old catalog before using a new one to avoid problems...

v0.10, 1-JUL-1998:

  - the cursor-position in the gamelist is restored after an edit or a change 
    to the options now; the entry is centered in the gamelist (if possible);
    if the entry is not in the new list (due to the current combination of
    options/game-settings) the first entry is selected instead ! 
    Please note that the DEBUG-version - that is, MAMECAT_DEBUG is defined at
    compile-time - may loose some events due the high amount of printf's which
    slow qmamecat down; the result is that the preview images are not painted
    correctly (sometimes :)
  - added a search function for qmamecat: like in the curses-version (mamecat)
    you can now search for a game by pressing an alphanumeric key when the
    gamelist has input-focus. Qmamecat will automatically 'jump' to the next
    occurance of a game which name starts with a character corresponding to the
    key pressed. If no game is found, the cursor will remain at its current
    position...
  - 2 fonts can be specified in the options now (currently not via the options
    dialog - only via .mamecatrc !) - one for the gamelist and one for the rest
    of the application. See README (section 5) for more information...
    obviously these settings have no effect to the text-only version !

v0.09, 26-JUN-1998:

  - added support for game-specific options: new (optional) field for game
    options in catalog (see README for more information)
  - as this is an optional field, (q)mamecat also works with catalogs of the
    older format, or vice versa (that is, older MAMECAT versions should also
    work with newer catalogs, they will just ignore the new field - to be 
    honest: i didn't test this - but if you save the catalog from within an
    older MAMECAT the new information gets lost. You have been warned... :)

v0.08, 24-JUN-1998:

  - fixed a 'bug' in the PreviewWindow::paintEvent() routine that caused
    flickering images when modal dialogs (options dialog, edit dialog, 
    message boxes etc.) overlapped the preview window (the call to raise() is
    avoided in these cases now by setting the new global variable
    'raise_preview' to 0 temporarily !)
  - added more information about preview images to the README file

v0.07, 23-JUN-1998:

  - new & delete buttons/callback routines removed: game insertion/deletion 
    from within mamecat doesn't make sense, the user can restrict the catalog
    using different options instead ! For game insertion 'gencat' should be 
    used as it automatically adds only those games which are really supported
    by the installed xmame release.
  - due to this every time a new xmame release is installed, gencat should
    be called once to add all newly supported games (they are appended to the
    catalog with a rating of 1) !
  - MAX_GAMES set to 5000 (defined in src/common/gamelist.hxx); should be 
    enough for now...
  - created a README file in the doc directory (holds information about
    prerequesites running (q)mamecat and how to configure/install it)
  - making this version the first public release...

v0.06, 18-JUN-1998:

  - support for additional preview-image file-formats has been added 
    (now supporting every image format that Qt supports :-)
  - checking image format prior to loading a preview image now; but if the
    image file is corrupted, qmamecat will possibly crash with an X error 
    (already seen that on a corrupted gif image !)
  - new edit dialog (will also be used for insertion of new games later)
    Unfortunately i had to redesign the gamelist-handling totally :(,
    but managed to make these fundamental changes (nearly) transparent to
    both mamecat & qmamecat (and even gencat) ! Due to this (q)mamecat now
    needs more memory (about twice as much), but at least i didn't have to 
    change too much this way - so i hope this makes it worth :) !
  - you can now edit and save the game list (game insertion/deletion are still
    not supported) - this was nearly impossible to implement prior to the
    redesign of the gamelist-handling
  - a big advantage of the above mentioned redesign is that the gamelist is
    reloaded from memory now (before it was reloaded from file !), this speeds
    it up of course

v0.05, 17-JUN-1998:

  - new option 'previewdir': directory where preview images are stored 
    (currently only *.xpm supported)
  - new 'game preview' window (shown if option 'showpreview' is set, see below)
  - new option 'showpreview': if set (1), the preview window is displayed
  - additions to the options-dialog (due to the above)
  - seems i'm near to a first release; looks quite nice :-)
    (but there are still some missing functions !)

v0.04, 16-JUN-1998:

  - source-tree totally restructured (new src/common directory; Makefiles 
    redesigned) ! You can now explicitly make one or all targets (from mamecat
    root dir):
    make                 creates *all* targets
    make mamecat         creates the curses version only
    make qmamecat        creates the Qt version only
    make tools           creates all tools (currently only gencat)
    make clean           cleans up the source-tree
  - number of loaded games is now displayed (in mamecat & qmamecat) in the lower
    left area of the display
  - gencat now automatically merges new & existing entries (from the catalog 
    specified in $(HOME)/.mamecatrc !); the output file is './mamecat.cat.new'
  - qmamecat only:
      - new options dialog and the ability to save the configuration to 
        $(HOME)/.mamecatrc
      - if options change, the gamelist is reloaded automatically
  - had to change every #ifdef DEBUG to #ifdef MAMECAT_DEBUG, Qt seems to use 
    the same #define in one of its headers...

v0.03, 12-JUN-1998:

  - new src/tools directory: created 'gencat' - a very simple catalog generator
  - qmamecat displays 'not implemented yet' messages where applicable

v0.02, 10-JUN-1998:

  - minor bug fixes (mostly keyboard mapping)
  - first release with a Qt version (qmamecat)
  - new option <available_games_only>; availability of rom-images is checked and
    shown in the status-area now !

v0.01, 08-JUN-1998:

  - initial version
  - most of the planned functions already work (at least you can walk through
    the list, start games etc.)
