What's new:
-----------

0.37 BETA 11
------------
- Added debug capability in fullscreen mode.

- Added support for 2 extra buttons on the Intellimouse Explorer mouse.

0.37 BETA 10
------------
- Added support for building MAME32 with the Borland compiler.
  See Borland.txt for more info.

- Changed makefile to use Gnu make instead of nmake.

0.37 BETA 9
-----------
- Added -oslog command line option; when enabled, all logerror() output
  will be passed to OutputDebugString(), in addition to the log file.

0.37 BETA 8
-----------
- Nothing.

0.37 BETA 7
-----------
- Implemented support for new debugger in windowed mode. MAME32 must be compiled with
  MAME_DEBUG defined and run with the -debug command line option. 

- Added support for marquee images. Marquee images should be placed in the marquees directory
  or stored in marquees.zip in the marquees directory.

- Filter Dialog now activated with Ctrl+F.

- Added ability to filter game lists by Decription. 

0.37 BETA 5
-----------
- Changed default snapshot diectory from 'images' to 'snap'.
  Snapshot zipfiles should be named snap.zip.

0.37 BETA 4
-----------
- Nathan added tweaks to make MESS32 work easier. 

- Included Win32 version of romcmp in build.

- Added MAME language file (*.lng) support.

- Random game option submitted by "Ren H0ek". Select option from the File menu,
  or use the 'Ctrl r' keyboard shortcut.

- Zipped icon support from "Ren H0ek". Icons can be put into a zipfile named 'icons.zip'
  in the icon directory.

0.36
----
- Added a default input layout option. It currently supports a standard 
  keyboard layout, HotRod and HotRod SE.

- Support for the Act Labs light gun system. This requires using DirectInput.

- Removed sample bits option. All sound is now 16 bit.

- New sound implementation using DirectSound and MIDAS. The DirectSound option is
  the default unless running on Windows NT.

- Removed SEAL sound library.

- The UI now sends out a system-wide window message each time the current game changes.
  It allows another program to act each time the game selected in the UI changes

- Support for triple buffering in fullscreen mode. With this option,
  screen updates will be synchronized with the vertical blank.

- Added new nvram (*.nv) file support.
  These can optionally be saved to nv.zip similar to the *.cfg files.

- Added display support for games with 16 bit dynamic palettes.

- Enabled x86 68k emulator.

- Removed custom rom audit routines and used core versions.

- Better manufacturer folder matching routine.

- Updated sample code to handle the new sample structures.

- Cleaned up the display of the Manufacturer folders. It now will add the
  games the company Licensed from someone else in both folders.

- Added auto depth option to the UI.

- Modified the folder and filter mechanism to not explicitly display
  list of missing roms.

- Added support for reading zipped inp files.

- Change the joystick code so that the mouse buttons are no longer
  aliases for joystick buttons.

- Joystick names in config now based on the joystick type, not instance.

- New support for any number of POVs using DirectInput.

- Added diagonal positions for POV.

- Improved version detection of the required common control dll.

- Added the Minimize/Maximize code submitted by Ben Jos Walbeehm.

- Removed joystick config from UI. Non-analog joystick configuration
  functionality is now in the MAME set up screens.

- Joystick code now uses additional axes such as rudder, sliders, POV.

- Added support for multiple OPL chips (aka FM synthesis). 
  On NT you must remove and then install the device driver, mameopl.sys
  version 1.02, with instopl.bat. This device driver should be
  backwards compatible with earlier versions of MAME32 that only
  use one chip. However, newer versions of MAME32 will not work
  with older versions of mameopl.sys.

- Removed profile option from the UI. Profiling is now enabled 
  with Shift+F11. The profile code now uses the RDTSC instruction
  only available on pentium class CPUs.

- Changed the game names starting with 'The' in the UI list to be
  re-ordered so games that have 'The' in front of their names are
  alphabetized w/ the 'The' trailing.

- Y2K certified.

0.35
----

- Screenshots now saved in PNG format.

- Removed support for JPEG image loading. The MAME32 UI can load images
  in BMP or PNG format.

- Clicking on the screen shot is a 3 state toggle, screen shot to flyer to cabinet pics.
  Flyer images can be in the flyers directory (default 'flyers') or in a zip file 
  named flyers.zip in the flyer directory. Cabinet images can be in the cabinet directory
  (default 'cabinets') or in a zip file named cabinets.zip in the cabinets directory.

- Flyer/screen shot/cabinet mode now persist.

- Game Options and Default options are now saved when closing the Property sheets.

- Added support for flyer artwork. Flyers are stored in flyers.zip in the images
  directory. Screen shots remain the same.

- Added a history window which appears under the screen shot for games which
  have history information available.

- Added Alt-A keyboard accelerator which opens up the properties dialog straight
  to the audit page.

- MAME32 will now only load icons as needed. The icons will be flushed when
  F5 is hit and reloaded, again only when needed for display.

- Added check box controls to turn on/off artwork or sample loading.

- Added slider control for setting volume attenuation.

- Added option to save MAME32 game session as an AVI file.
  Select "Capture As AVI file" from the File menu and then start
  or stop capturing using then F12 key. From John Zissopoulos.

- Added multiple monitor display support for Windows 98/Windows 2000.

- Added column sort order persistence when starting a new session of MAME32.

- Added Startup Options to the Options menu to customize the startup of MAME32.

- Added new joystick controller options in the Controllers Tab. This allows users
  to map from physical joysticks (and various axes on those joysticks) to MAME's
  4 standard joystick inputs.

- Added Game Name, Game Status, number of games in the current folder and MMX
  detection indicator to the status bar.

- Added a status bar progress control so the user can see progress when the game list
  is being refreshed or initialized.

- Added Custom -> Played folder to replace the Custom -> Favorites.
  Added new functionality for the Custom -> Favorites folder.  The user can now add/remove
  games from this folder by right clicking on the game, and selecting Add to Favorites or
  Remove from Favorites from the pop-up menu.

- If a folder is empty, the status bar now shows 'No Selection' instead of the old game name.

- Default game options now use the same property pages as the game options property pages.

- Background image for game list now works in all views.

- Changed inp file format to include game, and MAME version information.
  This allows MAME32 to read the header and determine which game the
  stream represents and which version of MAME wrote the .inp file.

- Added filters than can be selected from the Folder List or View Menu.
  These will filter which games are displayed in the Game List.

- Added Reset Options to the Options Menu. These will allow you to reset MAME32
  to default settings upon the next restart of MAME32.

- Added right-mouse click support for the Folder List to select the filters menu.

- Added right-mouse click support for the Game List to select the filters menu.

- Added progress bar to display how much of the game has loaded while the game is loading.

- Removed the Large Screen Shots menu option.  Removed Alt-R keyboard support for this option.

0.34
----

- Removed Game options tabs from the main window.
  (They are now incorporated in Properties)

  NOTE: Stock Win95 clients will to update to
        the latest common controls or install
        IE4/5 to use property sheets, the program
        will alert the user if it finds an outdated
        control and tell them where to get it.  If
        they choose to run the program anyway, they
        are restricted by not being able to:

        1) Access the property pages
        2) Can not customize the list view columns.

- Added Toolbar with tooltips.

- Added Status bar with menu help and game selection details.

- Folder list (Tree control) to allow different 'Views'
  of the games in the list.

- Added Splitter controls.
  (This allows resizing the Folder list, Game list and
  Screen shot portions of the main display)

- New shortcut keys:
    F1        brings up help contents
    Alt-N     toggle screen shot
    Alt-T     toggle tool bar
    Alt-S     toggle status bar
    Alt-D     toggle Folder list
    Alt-R     large screen shot
    Alt-P     Still play current game
    Alt-ENTER brings up Properties for the selected item
    F5        Still refresh

- Customizable Icon names in Folder List.
  These can placed in the .\icons directory:

    "foldopen.ico"
    "folder.ico"
    "foldavail.ico"
    "custom.ico"
    "foldmanu.ico"
    "foldunav.ico"
    "foldyear.ico"
    "manufact.ico"
    "working.ico"
    "nonwork.ico"
    "year.ico"
    "neo-geo.ico"

- JPEGs can now be used instead of BMPs as background images
  and as screen shots.
  NOTE: the default image directory is now called .\images.

  You may put *.jpg or *.bmp files in the image directory
  and they will be found by Mame32.  You may zip the images
  into a zipfile inside the image directory and name it 'images.zip'.

  Mame32 will look in the following order to find image files:

  <imagedir>\name.jpg
  <imagedir>\name.bmp
  <imagedir>\images.zip\name.jpg
  <imagedir>\images.zip\name.bmp

  Mame32 will no longer look for bmp.zip in the current
  directory. It must be renamed to 'images.zip' and moved
  to the users images directory. 

  (The images directory is still configurable)

- Added stereo sound support option for the games that use it.

- Removed the Neo-Geo BIOS from the 'Clone of" column in the UI.

- The custom pause code has been removed. Pause now works like the dos version. 

- Added Brightness control to the UI.

- Changed some of the textboxes to sliders.

- Added bkground.bmp image to the screen shot area.

- Added experimental profiler. To enable it, check the 'Enable profile' checkbox; then,
  hit Left Shift + F11 to show the results on screen.

- Added artwork and state file support.

- Modified the usage of the OPL chip driver code to use mameopl.sys as an installed driver
  on Windows NT. The mameopl.sys driver can now be installed and uninstalled by running
  instopl.bat with 'install' or 'remove' as command line parameters.

- Added Dan Miller's Windows Help file.

- Added Robert Schlabbach's Windows NT driver for OPL chip access (ym3812 sound).
  Requires a Sound Blaster compatible sound card. This driver gets loaded
  dynamically for games that use it, so you must run MAME32 with Administrative
  privledges.

- Enabled keyboard LED indicators to emulate the 1 player/2 players start lamps.
  This currently works only in Windows NT.

- Added Audit Tab to Game Property sheet.

- Added Pause/Continue feature to Audit Dialog.

- Added Game Directory under title in Properties popup.

- Widend the audit dialog so that errors don't go over a line.

- Adds preliminary support for average frame rate computation, like the DOS
  version.  It printf()'s the number at the end, so you need to run -debug to
  see it.

- Gamelist background image will be refreshed on F5.

- Increased compatibility with older common control dll (comctl32.dll).

- Added property sheet to display game specific information.

- Added 'Update Game List' to the Options menu to allow
  the user to refresh the ROM/Samples/Icon information.
  This information is no longer updated every time MAME32 starts.

- Added skip columns option for fullscreen mode.

- Added support for detecting merged ROMS.

- Game list column header is now customizeable. Use the menu option
  'View->Customize Fields...'. The header items can also be rearranged
  by drag and drop.

- Added 'Show No Clone Games' to UI menu under Options.

- Added icons the to game list UI to show ROM availability.
  By putting 4 icons in either the image directory or the current
  working directory users can modify the icons to suit their own tastes:
    noroms.ico  <- ROMS not available
    roms.ico    <- ROMS available
    unknown.ico <- ROM availability unknown
    warning.ico <- game not working (a red X)
  NOTE: These icons cannot be in a zipfile.

- Added support for game specific icons in the game list UI.
  If the game, or the game it's a clone of, has an icon with the same
  name in either icons/*.ico or image directory, and the game is available,
  MAME32 will show the 'custom' icon for that game.

- A tiled background image may be used for the game list UI when viewed as Details.
  To use a background image, create a bmp called "bkground.bmp", and
  place it in the image directory.
  For 256 color display modes, you can also specify a 16 color
  bitmap as "bkgnd16.bmp".

- Addded capability to display screen shots in the UI. The images must
  be in the Windows bmp format, located in the image directory.
  The images can also be in a zip file named bmp.zip, located in the same
  directory as MAME32.exe.

- Options in the UI are now split into two tabs, Display and Sound/Input.

- New cpu detection code which should work on PIIs.

- Support for recording/playback of .inp files.
  To record, use the "File->Play and Record Input" menu item. To play,
  use the "File->Playback Input" menu item.

- Support for the the new dirty layer system in fullscreen mode and
  in DirectDraw windowed mode.

- Directories and paths are now configurable. This applies to the rom and
  sample paths, config, high score, image, and input directories.

- Added additional columns in the UI for game manufacturer and year.

- Added Mame/Mame32 help files to the 'Help' menu.

- Added all 4 explorer style view the the Game display.

- Added support for custom font color.

- Context menus when right clicking on the ListView
  and Column Headers.

- Column Sort indicators.

- Number of Games played are now saved after each game
  is played, instead of when you exit the program.

- Ability to use system large fonts without distortion.

0.31.1
------
- Fixed crash when attempting to detect MMX support on Cyrix CPUs.
  If a Cyrix CPU is detected, the code will disable support for
  MMX even if the processor supports MMX instructions 

- Added visible area support in fullscreen and DirectDraw windowed mode.
  All display options now support this functionality.

- 16 bit support for the DirectSound option. Fixed samples being cut off.

- Added support for up to four joysticks.

- Updated Wingman Warrior support. The previous version of MAME32 only worked
  with Logitech's oldest 1.0 driver; this new version only works with
  their latest 2.3 driver. To use the Wingman Warrior spinner you need
  their version 2.3 driver, from http://www.logitech.com. And you must select
  the "Use DirectInput for joystick" option.

- Added an audit feature. This checks all your existing ROM sets for missing
  and incorrect ROMs, and for missing samples. From the File menu, choose Audit.

- Added YM3812 FM synthesis for Sound Blaster compatibles under Windows 95.
  This will not work on Windows NT and may not work with PCI sound cards.

0.31
----
- Added an Unavailable Games option to the View menu.

- Unzip support is now done by the core mame code.
  The unzip.dll file is no longer needed.

- 16-bit color support in fullscreen and GDI windowed mode.
  16-bit color in DirectDraw windowed mode requires the display
  to be set to 16 bit.

- Added yet another sound option, DirectSound. This uses the DirectX
  DirectSound API. It currently does not support 16 bit samples.

- Option to use a Blit operation for fullscreen mode. This applies to
  the double option with no scanlines. This may or may not result in a
  speed increase. It's actually slower on my machine. YMMV.

- Support for processors with MMX instructions. I (Michael) haven't
  tested this code since I don't have an MMX processor available.

- Added DirectX detection code to determine if DirectX is installed.
  MAME32 will not continue if DirectX is not properly installed.

- UI displays the number of times each game has been played.

- 2 joystick support added for the DirectInput joystick option. 

- Support visible area in GDI windowed mode.

- Vector games now use dirty pixels in fullscreen and DirectDraw window mode.

0.30
----
- Dirty rectangle support in DirectDraw window & full screen modes.
  This can speed up the display of games which support dirty rectanges.
  This option is enabled by checking the "Draw only changed areas" checkbox.

- Zip file support for roms, samples, hi and cfg files via Info-ZIP group's
  UnZip zipfile-extraction program. Also support for using ZipFolders/ZipMagic.

- Complete rom/sample directory support.
  When loading ROMs and samples for 'gamename', MAME32 will look in these
  directories and/or files in this order:
  1) gamename             directory
  2) gamename.zip         zip file
  3) ROMS\gamename        directory
     SAMPLES\gamename     directory
  4) ROMS\gamename.zip    zip file
     SAMPLES\gamename.zip zip file

- Settings and options are now saved in the registry in
  HKEY_CURRENT_USER/Software/Freeware/Mame32.

- Resizable UI window.

- Settable font for UI game list.

- Sorting ascending/descending every other click on UI game list title.

- Audio sample rate and sample bit depth setting. Sample rate options are
  44100Hz, 22050Hz and 11025Hz. Sample bit rate settings are 8 or 16 bit.

- Joystick and intellimouse wheel support for scrolling in UI list.
  Use the -joygui command line option for joystick scrolling.

- Support for integrated debugger. Compile with -DMAME_DEBUG.

- Removed "Blt from BackBuffer" option by detecting if the primary surface
  can be locked.

- Added doubling and horizontal scan lines to 8 bit rendering in
  DirectDraw window mode.

- Single analog joystick support.

- Dual digital joysticks are now supported. Also, Point of View input
  devices can be used as joysticks 3 and 4.

- The default directory for screen snapshots (F12) is now BMP instead of the
  current directory. The directory will be created if it does not exist.

- New accelerator in UI for Alt-p to start a game.

- Added an option that allows using extra analog inputs on a joystick (the
  spinner on a wingman warrior in particular) for the 'regular' analog inputs
  usually read from the mouse/trackball.

0.29
----

- The previous official and unofficial versions of MAME32 have been merged.
  As of this version, there is only one, official version of MAME32, which
  is the creation of Michael Soderstrom and Christopher Kirmse.  Naturally,
  the MAME code is the creation of the entire MAME team.

- Pause has been changed to no longer waste cpu cycles.

- All of the options are now settable on a per-game basis.  Use 
  View | Default Options to configure your most common options.  For games
  that you want to use different options, select the game in the list view,
  click on the options tab, and select your options for that game.  All
  of these options are automatically saved into a file called mame32.cfg.

- The list view of all games can be viewed in detailed mode (like the previous
  version) or in list mode, which just lists the names of the games.  This
  is configured in the View menu.

- You can list either all games that MAME32 supports or just the games that
  have the correct ROM files in place.  This is configured in the View menu.

- Player 1 and Player 2 LEDs are now supported in some games (e.g. Pac Man),
  and are drawn on the bottom right of the status window when in window mode.

- DirectInput support has been added for both the keyboard and joysticks 
  (joysticks only with DirectX 5).

- Vertical scan lines are now supported in fullscreen mode.

0.28.2
------
- Uncommented tempest hack to avoid lockup at 150,000 points.
- MIDAS audio implementation is complete.
- SEAl audio is now un-synchronized when throttle is off, just like msdos version.
- Workaround in sndhrdw/psg.c: free was called on reset buffer pointer.

0.28.1
------
- Bugfix in usrintrf.c: traksettings[total] crashed when traksettings == NULL.
- Bugfix: osd_key_name now returns "None" instead of 0.
- Workaround in sndhrdw/8910intf.c: free was called on reset buffer pointer.

0.27.4
------
- Added F12 snapshot option.
- Added -gamma option.
- Added mouse support. Maybe obsolete?
- Added -window option. Alias for -noddraw.
- Bugfix: Window mode trak/mouse should stay within the window client area.
- Bugfix: trak-ball now works with non-centering trak-ball games like ccastles.

0.27.3
------
- Restructured SEAL audio code to be more like newer msdos code.
- Added -vg option to GDI display.
- Bugfix: kbd init now leaves the toggle state bit alone.
- Bugfix: in osd_trak_read, NO_TRAK is returned if no trak.

0.27.2
------
- Changed SEAL audio code to not poll when using the Windows wave device.
  This should prevent SEAL locking up when playing streamed sound.
- Vector game option -vg now forces -nodouble.

0.27.1
------
- Took out a few WIN32 specific lines of code in the main source tree.
- Took out my homegrown DirectSound audio option.
- Added -midas option for MIDAS Digital Audio System. Looped sampled sounds don't work yet.

0.261.2
------
- Fixed bug where DirectSound option with SEAL would cause SetCooperativeLevel
  to fail on Windows 95.

0.261.1
------
- Added joystick deadzone parameter option -joydz n.
- Added -listmodes option to enumerate the possible DirectDraw video modes.
  This will let you know what resolutions are valid for the -XxY parameter.
- Fixed bug in mame.c where Machine->gfx[0] == 0 caused mame to crash.
