Mame32 Overview & History

Mame32 is an emulator. Simply put, it allows a PC to mimic the internal hardware of a large number of stand-alone arcade machines from 1975 to 2000. Combined with the original software from these arcade machines, Mame32 will display and play the games on a PC. The software thinks it’s still running on its original box. Mame32 is the GUI version of Mame, the M.ultiple A.rcade M.achine E.mulator. It has an attractive, elegant, graphical interface which allows the user to forego having to type command line parameters, although it can still be passed these arguments, for example. ‘Mame32.exe dkong -r 1024x768x32 -refresh 85 -effect sharp’. For many, it’s easier to click the icon of the game.

1997.02.05 - In the beginning, Italian programmer and preservationist, Nicola Salmoria, combined his individual game emulators into the DOS based multi-game emulator, Mame. It was released Feb. 05, 1997. Since the source was also released, numerous people contributed new drivers to add support for more and more games. The number of contributors grew into the hundreds and has continued to increase over the years.

1997.08 - Mame32 was the first port of Mame to the Microsoft Windows platform. It originally came out in August of 1997, adding the GUI and a considerable amount of new code to transition to Win32. The original Mame32 was authored by Chris Kirmse and later integrated Michael Soderstrom's Win32 command-line port of Mame. Mike Haaland joined the project and would wholly revamp the user interface to its current state. Mame32 releases followed the Mame DOS releases by a few days to a few weeks over the next four years.

2001.05.24 - With the inexorable phasing out of DOS, the authors of the DOS based Mame ported it to the Microsoft Windows platform as a command line application. Evolutionally similar to MameDOS, it is run by typing in arguments from a command prompt, and has no GUI. [many people try to double click it, which opens up the command line window briefly, then closes]. Its original name was Mame[w], it is now known simply as Mame.

2001.07.24 - Mame32 was re-positioned, with the familiar GUI grafted onto the new Mame Windows engine. Mame32 is currently maintained by a small group of three people and released shortly after Mame[w].


Mame32 Whatsnew32

Changes to Mame32

v.61

  • Fixed a nasty crasher where Mame32 would hang if loading a game that required user intervention in Mame[w] like 'The Astyanax', and there was no joystick connected to the system. [Sword]
  • Fixed a couple of fringe case crashers when Windows is shut down beneath Mame32, i.e. a cabinet setting. [Robert John Sheppard]
  • Removed -dirty / -nodirty options to match Aaron's core changes. [John IV]
  • Added dialogue box support for new artwork switches, added -ini support to Options • Directories. [Mike Haaland]
  • Added dialogue box support for LED disablement, artwork resolution. [Mike Haaland]
  • Added brightness slider, removed -bpp per Aaron's changes. [Mike Haaland]
  • Added sound chip and CPU information to the folder views. Added the long requested feature to create user defined folder views, see \folders files for examples. [Sword, BUT, Emuman / Mike Haaland]
  • Created Artwork, BIOS, and Custom folder views. [John IV]
  • Added support for displaying -listsourcefile [source] field to the View • Customize Fields. Handy for sorting to test global driver changes across all its games., or using to report game problems to MameTesters.com. [Mike Haaland]
  • Created new Version and Classification folder views. [John IV]
  • Added support for the new -lightgun switch. [John IV]
  • Removed 'add to favorites' from context menus and file menu since it is now possible/preferable to have favorites stored in the portable, user-defined, external text file [\folders]. Which also of course would survive a registry key purge. Times played is still accessible as a column in details view. [John IV]
  • Updated help file with new settings, added baseline Mame[w] documents to help file. [John IV]
  • Added \titles directory support to allow for title screenshots viewing. [John IV]
  • Created new Mame32 icon and About graphic. [John IV]

v.60

  • Created and added the new Mame32 HTML Help File. [John IV]
  • Updated context sensitive help support to Mame32, all controls should be mapped to pop-up help. [Mike Haaland]
  • Added 'Use less CPU if possible' check box in Options • Default Options • Miscellaneous. This toggles the new baseline Mame[w] sleep / -nosleep switch. If toggled on, it will return more time slices to the processor and be more amenable to multi-tasking with other applications. If toggled off, Mame32 will continue to take 100% of the CPU time as it has historically. It should be toggled 'off' for people experiencing severe slowdowns, particularly laptop users. [John IV / Mike Haaland]
  • Added option to set the directory for hard drive image diff files to match Mame[w] in Options • Directories. Fixed screenshot area decimation when image sized too large for area. Scales properly now and looks great. Fixed flip options. [Sword]
  • Added option to set the directory for icons in Options • Directories. [John IV]
  • Added support for new external controller mapping. This adds support for HotRod, HotRod SE, X-Arcade, SlikStik, and other user configurable controllers. See Options • Default Options • Controllers. [Ron Fries]

v.59

  • Added 'Allow game selection by joystick' check box to Startup Options. Allows navigation and game launch via controller:
    joystick 1 up = up arrow
    joystick 1 down = down arrow
    joystick 1 left = left arrow
    joystick 1 right = right arrow
    joystick 1 button 1 = play game
    joystick 1 button 2 = page up
    joystick 1 button 5 = page down
    joystick 1 button 3 = end
    joystick 1 button 6 = home. [Chris Kirmse]
  • Fixed a few files to allow a MingW compile without errors. [Sword]
  • Added 'Broadcast selected game to all windows' check box in Startup Options, this allows third party applications to be programmatically told what game is being played in Mame32. It can be used to hook into applications like LED reader boards, or instant message clients, etc. [Chris Kirmse]

2002-07-04 03:37 PM -0700


Mame32 System Requirements

System Requirements

Mame32 runs on Microsoft Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, and Windows XP. Ensure the latest version of DirectX is installed. NT4 users will need SP4 or greater. If Internet Explorer 4.0 or higher has never been installed, Mame32 will need the common controls update. This will prevent property sheet errors when going to the Properties tabs for individual games or the Options • Default Options menu item.

Because of the wide range of arcade hardware supported by Mame32, system requirements vary considerably. Early arcade games circa 1984 and before can be run on Pentium/2/3 level boxes with 64M of memory. However, the more complex the original arcade hardware, the more CPU power is needed to emulate it. More recent games can often take upwards of 512M of memory, and AMD Athlon / Pentium 4 chips to emulate at 100% speed with effects. For those wishing to upgrade their systems; Mame32 benefits most from adding more CPU power, then memory and upgraded video card.


Mame32 Download Locations

Download Locations

The official sites for Mame32 are:

Chris Kirmse's Homepage

The Mame32 QA/Test and Art Dept.


Mame32 Installation Procedures

Install Procedures

* Create a folder on your desktop called ‘Mame32’.

* Place the recently downloaded Mame32 zip file into that folder.

* Using an archive program like WinZip, extract the contents of the Mame32 zip file into the \mame32 folder. In WinZip select Extract from the Actions menu [or press the Extract button], be sure the ‘Use folder names’ checkbox is checked. You should now have a folder which looks like the image below.

* Download the three freely available public domain ROMs from Mame.net. Place these files still in their zipped forms, into the \mame32\roms folder.

* Some early games require sampled sounds [Space Invaders, Donkey Kong, etc.] due to their sound hardware, these are available at Mame.net. If a game requires samples it will show on the game's property tab [alt-enter]. Place your sample files as zip files into the \mame32\samples folder.

* These are the bare-boned instructions for getting started with Mame32. To enhance the look and feel of Mame32 with icons, screenshots, flyers, cabinets, and background art, proceed to : Art and Support Files


Mame32 Art & Support Files

Art & Support Files

Mame32's flexible GUI framework allows for some beautiful customization; including font color, icons, screenshots art, and background images. The official site for these files is Mame32QA. For examples of some of the various permutations, take a look at the Mame32QA Gallery: The following files are used for this customization.

* Icons.zip : This file contains icons for every game in Mame32 and the folder view on the far left. Place it in the \mame32\icons folder, it can remain zipped to save slack HD space.

* Snap.zip : These are a series of files that contain in-game screenshots of every parent game in Mame32. Download the packs and extract their contents into the \mame32\snap directory. [one of the display modes shown by toggling/clicking on the screenshot area on the far right of the GUI].

* Titles.zip : These are a series of files that contain title screenshots of every parent game in Mame32. Download the packs and extract their contents into the \mame32\titles directory. [one of the display modes shown by toggling/clicking on the screenshot area on the far right of the GUI].

* Marquees.zip : These are a series of files that contain images of the signs that topped arcade machines. Download the packs and extract their contents into the \mame32\marquees directory. [one of the display modes shown by toggling/clicking on the screenshot area on the far right of the GUI].

* Bkground.zip : This file contains numerous images that are used as the background for the Mame32 GUI [beneath the game list, behind the screenshot/folder areas]. Download this file and extract its contents into the \mame32\bkground directory which you will have to create. Choose a background image, rename it ‘bkground.png’ and place it in the mame32\snap directory. You can also use the rotate.exe program [including batch file] to automatically choose a random/sequential file and use that for the background.

* Flyers.zip : These are a series of files that contain images of the original promotional material sent to arcade owners when the games came out, exhorting them to buy the games. Download the packs and extract their contents into the \mame32\flyers directory. [one of the display modes shown by toggling/clicking on the screenshot area on the far right of the GUI].

* Cabinets.zip : These are a series of files that contain images of the actual arcade machines themselves, showing what they looked like in their native habitat. Download the packs and extract their contents into the \mame32\flyers directory. [one of the display modes shown by toggling/clicking on the screenshot area on the far right of the GUI].

* History.dat : This file contains the original game’s designer’s names, and assorted trivia. Place this file in the \mame32 folder alongside Mame32.exe. [note: history.dat information will only display in screenshot mode, not during flyer/cab/marquee mode].

* Hiscore.dat : This file facilitates the creation of hi-scores in a large number of Mame32 games. This file is needed if the original arcade game did not maintain its hi-score table after being reset or turned off. Note that this file is an externally supported database, not every candidate game is supported in it. Place this file in \mame32 alongside Mame32.exe and verify that you have a \hi directory. You must use this file to get hi scores in most early games.

* Rotate.zip : Written by Joel Conover, this is a command line program that rotates your bkground images so you can have a new look for Mame32 every time you run it. See the enclosed batch file for a quick reference. The batch file grabs an image from the \mame32\bkground directory and copies it to the \mame32\snap directory. Run the program by itself to see parameters.


Mame32 Playing a Game & Internal Controls

Playing a Game & Internal Controls

* Once a game has been selected and double-clicked, Mame32 will produce two information screens and then it will run the game. Since Mame32 is emulating the original hardware, the software thinks it’s still in an arcade and is starting up for the first time in the morning. Initial diagnostic screens are run through, as well as possibly some accounting information presented to the arcade owner.

* The game should now be running its demo/attract mode. Insert a coin with the [5] key on the keyboard, the mappings for coin inserts are: player 1 [5], player 2 [6], player 3 [7], player 4 [8]. Now that a coin has been inserted, start the game with the [1] key on the keyboard. Game start mappings are player 1 [1], player 2 [2], player 3 [3], player 4 [4].

* Mame32’s default control scheme is to use the inverted T arrow keys on the keyboard for directional controls, and the left [CTRL] key as the primary action button.

* While in a game within Mame32, the internal configuration menu system can be activated by pressing the [TAB] key. This will bring up the control options. These options allow remapping Mame32 controls to whatever keys are desired. The Input (general) area controls the global settings, and the Input (this game) are the controls for the game selected. To change the mapping, select the control to change by arrowing down to it, hit the [ENTER] key and then the new desired control. Hit the [ESC] key to exit the [TAB] menu back to the game.

* Other keys of interest while playing a game are :

[TAB] key to bring up the internal menu system.

[~ TILDE] the onscreen display.

[p] for the pause button.

[F3] resets the game.

[F4] displays the game’s color palette.

[F9] changes the frameskip on the fly.

[F10] toggles throttling.

[F11] toggles the FPS display.

[F12] takes a *.png snapshot of the game and places it in the \mame32\snap directory.

[ESC] exits from the game back to the Mame32 GUI.


Mame32 Toolbar / Status Bar / Windows

The Mame32 toolbar extends the width of the application at the top and can be toggled on by using the View • Toolbar menu item, or the Alt-T keyboard shortcut. The buttons on the toolbar from left to right are : toggle folder list, toggle screenshot, large icons view, small icons view, list view, details view, help about, and help file. Click the items to toggle them on or off.

The Mame32 status bar extends the width of the application at the bottom and can be toggled on by using the View • Status Bar menu item, or the Alt-S keyboard shortcut. The status bar indicates the full name of the game highlighted, and gives its internal status flag as to whether it’s working or if there are some issues with the emulation. The status bar also indicates the game count for the particular view used.

Mame32 can be divided into three windowed sections:

The first section on the far left is the folder view, toggled on by using the View • Folder List menu item, or the Alt-D keyboard shortcut. This contains a tree style list that expands for certain items like year, manufacturer, and custom. By selecting one of these items, Mame32 will display the games that meet that criterion. Selecting year / 1978, Mame32 will display all the games manufactured in 1978. Mame32 will also display user created folders based on *.ini files located in the \mame32\folders directory. See files in that location for examples.

The second, middle section of Mame32 is the game list, always toggled on. This is where Mame32 lists all of the games you have chosen in the left folder view. Mame32 has the option to display the games as large icons, small icons, a list icons view, or details. Choosing details allows Mame32 to display, in columnar mode, the game name as well as additional informational fields, chosen in the View • Customize Fields menu item.

The third section, on the far right, is the screenshot/art area, toggled on by using the View • Screenshot menu item, or the Alt-N keyboard shortcut. This area of the GUI will display the optional artwork for each game selected, the artwork modes are toggled through by clicking on the picture. The modes are: screenshot, flyer, cabinet, marquees, and title shots. The area under the screenshots will also display the history.dat information if that file is present. Further information about these files is in Art and Support Files.


Mame32 File Menu

File Menu

* Play Game : Selecting this option from the file menu will launch the highlighted game.

* Play and Record Input : Selecting this option from the file menu will allow for the creation of an *.inp file which will allow Mame32 to record keystrokes in the game being played for playback later. Similar to a VCR.

* Playback Input : Selecting this option from the file menu will allow the loading and playing of a previously recorded *.inp file.

* Select Random Game : Selecting this option from the file menu will cause Mame32 to randomly highlight a game in the game list.

* Properties : Selecting this option from the file menu will display the highlighted game’s individual settings, these settings over-ride those made to all games in the Options • Default Options menu item.

* Audit All Games : Selecting this option from the file menu will initiate an exhaustive check on the available games, verifying them to Mame32’s expected results.

* Quit : Selecting this option from the file menu will exit the program.


Mame32 Properties

Default Options & Game Properties

The default options and game properties tabs of Mame32 are used to set the vast majority of game play parameters. The Game Properties dialogue box, accessible from the File • Properties menu item, shares all the tabs of the Default Options dialogue box, accessible from the Options • Default Options menu item. The Game Properties dialogue contains two additional tabs which give information on the game selected, and its current audited state.

* General Tab : [only available in Game Properties dialogue] This tab provides information on the game selected, this information includes manufacturer name and date, driver status, original CPU, original sound hardware, original screen resolution and orientation, and number of colors.

* Audit Tab : [only available in the Game Properties dialogue] This tab performs a ‘mini-audit’ on the game selected, determining its status compared to what Mame32 expects. Status will be reported and missing files with CRC information will appear in the details view.

* Display Tab : This tab allows the setting of numerous video options.

Run in a window : Mame32 will launch the game selected in a window on your desktop, the window can be resized by pausing the emulation and dragging the borders. The resolution of the window can also be set in the Advanced tab.

Start out maximized : Toggling this option on ensures that when windowed mode is used, the maximum amount of space is used. Toggle this option off to play the smallest version of the windowed game.

Enforce aspect ratio : This option is used in conjunction with windowed mode, it forces the aspect ratio to be maintained when the game is paused and the window is dragged and resized. Turn this off to create long, thin game windows, or short fat, etc.

Throttle : This option prevents Mame32 from running games as fast as the host CPU can go. Unless this is toggled on, a modern x86 processor will run Donkey Kong at a thousand times its original speed.

Rotation : This drop down box allows Mame32 to rotate the video output by 90 degrees in either direction. This setting is useful if used in conjunction with a pivoting monitor, or playing games with a monitor on its side. Doing so allows vertical orientated games to be played full screen.

Do not apply rotation : This option forces Mame32 to output the original orientation of the game being played, i.e. it will output in vertical orientation even if the output target [monitor] is horizontal.

Flip screen upside down : This option mirrors the image vertically.

Flip screen left right : This option mirrors the image horizontally.

Effects : This option allows Mame32 to attempt to simulate more closely the look of the original hardware’s monitors, which were much lower resolution devices than modern computer monitors. The scanlines check box can be toggled on only when hardware stretching is disabled. Horizontal scanlines can impose an additional speed penalty in games played, and RGB effects impose an even greater speed hit, upwards of 40%.

Gamma correction : This option controls the global gamma correction in a game and can result in much brighter video output if moved to the higher setting. A high gamma setting is particularly helpful when playing vector based games. Same setting available using the tilde menu [~] in-game.

Brightness correction : This option controls the global brightness in a game at the palette level in Mame32 and works with 99% of the games, [does not for those that go directly to RGB]. Same setting available using the tilde menu [~] in-game.

* Advanced Tab : This tab allows the setting of numerous video options.

Use DirectDraw : This option controls whether or not Mame32 utilizes the DirectDraw component of DirectX with the video card. Toggling this option off precludes the use of all other check boxes in the area.

Triple buffering : This option controls how Mame32 draws to the screen, if toggled on, it will draw to three buffers and cycle between them. This setting when toggled on can also help alleviate tearing that sometimes occurs in some scrolling games.

Match game refresh rate : This option tells Mame32 to attempt to force the output monitor to match the refresh rate of the selected game’s original video hardware. The majority of games in Mame32 are 60Hz, using this option and triple buffering will produce smooth scrolling in those games.

Sync to monitor refresh : This option tells Mame32 to ignore the original game’s refresh rate and sync it to the output monitor’s current rate. This can cause the game to run too fast if the output monitor is using 85Hz for example..

Wait for vertical sync : This option tells Mame32 to wait for the refresh period on the output monitor to finish before starting to draw video to the screen.

Stretch using hardware : This option allows Mame32 to utilize the stretching abilities of the video card. Most modern video cards allow this, some do not. If this option is grayed out, the video card does not support it, or it is necessary to switch to 16bpp or 32bpp. Mame32 will stretch the original game’s resolution to the nearest 4:3 ratio and output that to the screen. Most video cards perform this stretch and provide a filtering effect which can make the output appear muddy, or blurry. Use one of the graphic effects on the Display tab to counteract this blurriness, particularly the RGB sharp effect.

Switch resolutions to fit : This option when used in conjunction with the resolution settings allows Mame32 to resize the game output to the dimensions specified. If not toggled on, Mame32 will draw the game to the current desktop size and settings.

Switch color depths to fit : This option when used in conjunction with the resolution settings allows Mame32 to switch to the game’s requested color depth. If not toggled on, Mame32 will draw the game to the current desktop color depth.

Full screen brightness : This option allows Mame32 to change its full screen brightness. Some cards alter the brightness/gamma when they go into full screen mode, this allows the counteracting it.

Aspect ratio : This option allows Mame32 to change its stretched to aspect ratio, default value is 4:3.

Resolution : These settings allow Mame32 to use resolutions defined by the systems DirectX video modes, color depths, and refresh rates.

Frame skipping : These settings allow Mame32 to skip frames of animation when playing games, if the host CPU is not fast enough to run the game.

* Sound Tab : This tab allows for setting the sound options.

Enable sound and sound CPUs : This setting toggles sound on or off in games.

Use samples : This setting allows Mame32 to utilize samples for games which do not have their sound hardware emulated, or were using analogue circuitry.

Resample if samplerate doesn’t match : This setting is utilized if the samplerate of the original hardware does not match the samplerate actually used by an integer factor. This is more faithful to the original sound, however, the sound may not be as crisp.

Samplerate : This setting tells Mame32 at what rate to output sound, the higher, the better. Lowering this setting can also result in faster performance on lower end machines.

Volume attenuation : This setting allows Mame32 to set the initial volume level, the default is 0dB.

* Controllers Tab : This tab allows for setting the game controller options.

Enable joystick input : This setting tells Mame32 to utilize any currently connected joysticks. Mame32 will interrogate the game controllers control panel and use ID#1 and up.

Analog joystick deadzone : This setting controls how Mame32 translates analog input to games that require digital input.

Enable mouse input : This setting tells Mame32 to utilize the mouse in games that require analogue control methods.

Enable lightgun input : This setting tells Mame32 to utilize a lightgun for target/shooting games that require analogue control, like Crossbow, Police Trainer, Rev X, etc. The ACT LABS gun is currently supported.

Enable steadykey support : This option tells Mame32 to use a different keyboard handling that makes it easier to register simultaneous key presses for games that require it for special moves. However it can produce more sluggish results in other games.

Default input layout : This drop down menu allows Mame32 to choose between multiple key mappings, including keyboard mapping for the Hanaho HotRod/HotRod SE, The SlikStik, and The X-Arcade arcade control panels. It will also display user defined controller mappings. See \docs\ctrlr.txt for more information.

* Miscellaneous Tab : This tab allows for setting additional options.

Use additional game artwork : This setting if toggled on allows Mame32 to utilize the external artwork packages available at Mame.net for display in games like Armor Attack, Discs of Tron, Lunar Lander, Warrior, etc. The artwork packages are placed in the \artwork directory. Each element of the artwork package can be toggled: bezel, overlay, and background.

Crop Artwork : Selecting the crop artwork toggle will shrink the scene down to the games original dimensions, cropping any available art pieces.

Artwork resolution : This setting allows selecting normal and higher resolution versions of the artwork, the high setting scales the game graphics to match the higher art resolution, best seen in Night Driver and Space Invaders.

Use LEDs as game indicators : This setting if toggled allows Mame32 to utilize the LEDs on the keyboard to match some of the in-game light flashing, seen during braking in Outrun for example, and coin/credit indicators.

Enable game cheats : This setting if toggled on allows Mame32 to use some cheats that are present in games like Defender and Battlezone to make control easier. It also allows for the use of an external cheat.dat file which can be used to cheat illegally in games in a variety of ways, including infinite lives, level jumping, etc.

Error log (for developers) : This setting if toggled on produces an error log of illegal memory accesses.

Use less CPU time if possible : This setting if toggled on allows Mame32 to be more multitasking friendly in that it does not use as much processor time. If this setting is toggled off Mame32 will utilize 100% of the CPU for playing games. Some machines slow down dramatically if this setting is toggled on, particularly laptops.

* Vector Tab : This tab allows for setting additional options for games that originally utilized a vector monitor instead of a raster monitor. [Asteroids, Battlezone, Armor Attack, etc.]

Draw antialiased vectors : This setting if toggled on tells Mame32 to draw vector lines with an additional pleasing antialiased look.

Draw translucent vectors : This setting if toggled on tells Mame32 to draw vector lines with a slight translucency and bright points at intersections.

Beam width : This slider allows Mame32 to set the beam width on the vector lines drawn, increasing it creates wider vectors.

Flicker : This slider tells Mame32 to artificially create a flicker effect on the vector lines.

Intensity : This slider tells Mame32 to increase the brightness/intensity of the vector lines.


Mame32 View Menu

View Menu

* Toolbar : Selecting this option from the view menu will toggle the toolbar on or off.

* Status Bar : Selecting this option from the view menu will toggle the status bar on or off.

* Folder List : Selecting this option from the view menu will toggle the folder list view on or off.

* Screenshot : Selecting this option from the view menu will toggle the screenshot area on or off.

* Large Icons : Selecting this option from the view menu will display large icons in the gamelist area.

* Small Icons : Selecting this option from the view menu will display small icons in a different grid pattern in the gamelist area.

* List : Selecting this option from the view menu will display small icons in the gamelist area.

* Details : Selecting this option from the view menu will display small icons along with full game name and any other fields chosen with the View • Customize Fields option.

* Arrange Icons : Selecting this option from the view menu will order the gamelist area by the choice made; game, directory, manufacturer, times played, type, or year.

* Line Up Icons : Selecting this option from the view menu will re-align the icons in views where it does not automatically happen.

* Refresh : Selecting this option from the view menu will initiate an update of the gamelist while Mame32 searches for the existence of zip files that match game directory names. This is not as exhaustive as the audit function on the File menu.

* Custom Filters : Selecting this option from the view menu will allow for the selective hiding of certain types of games. Manually typing in a phrase in the filter text box will only display games that have that text in their names.

* Customize Fields : Selecting this option from the view menu will allow choosing which fields are displayed in columnar mode in the game list details view, selectable from the View • Details. The columns can also be ordered by moving them up and down the right hand side of the well. The game name field is always the first item and cannot be changed.


Mame32 Options Menu

Options Menu

* Game List Font : Selecting this option from the options menu will change the font used for the GUI display.

* Directories : Selecting this option from the options menu will allow for choosing a different directory for a number of Mame32 support files including: roms, samples, config, high scores, snapshots, input files, state, artwork, memory card, flyers, cabinets, marquees, and nvram. Normally these directories are created under the Mame32 executable’s directory.

* Default Options : Selecting this option from the options menu will allow for the global customization of all games in the game list. These settings are overridden by altering the individual game settings using the File • Properties menu item.

* Reset to Default : Selecting this option from the options menu will allow for resetting various parts of Mame32 to their defaults. Mame32 will prompt before resetting, giving the option to cancel.

* Startup Options : Selecting this option from the options menu will allow: toggling on or off the search for new games on start, toggling on or off the version mismatch feature of Mame32, toggling on or off the ability to use a gamepad to navigate the GUI, and toggling on or off Mame32 broadcasting the selected game programmatically to other listening applications like message clients, or an LED message bar.

* Language : Selecting this option from the options menu allows the choosing of an externally supported *.lng file. These files translate the internal Mame32 menu system [accessed from the tab key while playing a game] into a different language.


Mame32 Help Menu

Help Menu

* Help Topics : Selecting this option from the help menu will launch the Mame32 help file.

* Troubleshooting : Selecting this option from the help menu will display the troubleshooting topic in the help file.

* New Game Changes : Selecting this option from the help menu will display added, removed, changed games.

* Mame Whatsnew.txt : Selecting this option from the help menu will display the baseline Mame[w] whatsnew.txt file which contains information about source changes, games added, driver improvements, etc.

* About : Selecting this option from the help menu will display information about the version of Mame32 and its contributors.


Mame32 Support

Mame32 Troubleshooting [& Tips]

Mame32 is a five year old program; it is mature, complex, and robust. However, since the Mame project itself is a documentation effort, and development is continuous, there will be times when changes to the core program effect Mame32. Since Mame32 is effectively a front end which passes user input from the GUI to the Mame[w] engine, any problems that occur in the Mame[w] engine will be inherited by Mame32. When problems do occur with a specific game in a specific version of Mame32, a previous version of Mame32 may be used easily, toggling off the Enable version mismatch warning check on the Options • Startup Options menu. Prior to reporting problems against Mame32, verify that the issue is not a known, core defect in Mame[w]. The Mametesters site is designed to track and report bugs in the baseline Mame[w] version. The current list of known Mame32 issues and defect tracking is available at Mame32QA.

ROMs Related Topics

* If receiving missing ROM error messages when attempting to run a game, secondary click on the game in the list and choose properties, do an audit on that game [or use Alt-A]. The audit will determine which files are missing from the romset currently being played. Mame32 will not run a game which fails its internal audit.

* Mame is an ongoing documentation project. Sometimes old ROM sets are found to have miss-dumped, missing, or damaged ROMs, which need to be replaced. As new versions of Mame are released, the Mame developers add support for these new iterations of ROMs, supplanting or renaming the old supported versions. Thus, often, older versions of ROMs which did work in older versions of Mame32, will not work with newer versions of Mame32 because they are now read as incomplete.

* Mame32 utilizes the idea of a parent / clone relationship for its games. If trying to play a clone or a bootleg of a game, Mame32 will need the ROMs for the clone game, and the parent set. Mame32 indicates the parent set of a clone at the bottom of the game’s properties tab.

* Mame32 utilizes the idea of having single zip files to house the BIOS files for a large number of similar games, the NeoGeo games for example, share four BIOS files in every game. Mame will look to neogeo.zip as the BIOS zip, if this file is along with the other NeoGeo games, it will use it. Otherwise, Mame32 expects the BIOS files in every NeoGeo game. DECO cassette, CVS, and Playchoice are also BIOS games. An error message will occur if the BIOS files are not present and those games are run.

* F5 / View • Refresh in the GUI. (Do this anytime ROMs are altered, renaming, etc.)

* Ensure the appropriate folder view is toggled, i.e. 'all games' and it doesn't have filtering on it to stop the display of the game being searched for.

* Use the Options • Reset to default menu choice and check all of the items, restart Mame32.

* Final option, manually delete the registry key for Mame32 by running regedit.exe: HKEY_CURRENT_USER\Software\Freeware\MAME32

Crash Related Topics

* Delete the .hi, .cfg, or .nv files for the game that's crashing.

* Check to see that the zip file is valid and that it's not corrupt or read-only.

* The game’s entry in the external database, hiscore.dat, may be causing the crash, remove the entry by editing hiscore.dat with a text editor.

* If crashing during an audit or an [F5] refresh, it could be a corrupt .zip file. Extract it and re-zip. Pkunzip -t *.zip. Note the file that dies during the audit and concentrate on that one. Also verify that if zip files are not used, that the folder is not empty, or contains partial or damaged ROMs.

* If seeing crashes or weird screen coloration, try disabling running background apps [in Win98, use msconfig.exe], Norton Crashguard, popup killers, viruscans, fast find, the Microsoft Office Bar, Intellimouse, even IE subscription updates, etc. Try moving Mame32 away from compressed [DriveSpace, DoubleSpace, stacker] drives. IntelliMouse and Office Toolbars have been known to cause conflicts. Also disable items in the system tray, like the CD player, etc. It may also be necessary to download and install the latest version of DirectX from Microsoft to prevent some errors.

* Some recent viruses which attach to .exe’s will cause page faults and access violations in Mame32 when it's run. Use an anti-virus check and verify Mame32 is not infected.

* Use the Options • Reset to default menu choice and check all of the items, restart Mame32.

* Final option, manually delete the registry key for Mame32 by running regedit.exe: HKEY_CURRENT_USER\Software\Freeware\MAME32

Performance Related Topics [sound scratchiness and stuttering]

* Mame32 will start to crackle, scratch, or echo if the game running is too taxing for the processor [Taito F3, Midway Wolf Unit, CPS2 games require a lot of horsepower]. This can be visually confirmed by turning on FPS display with [F11], and frame skip to auto with [F8]. If the FPS dips anywhere or frame skipping rises anywhere during the game play, the game is maxing out the CPU and sound breakup could occur. The new blitter effects [partial scanlines, RGB effects] will impose further strain on the CPU, upwards of 50%. As a data point, an AMD Athlon 1900 XP is able to do all current Mame32 games [.58] at greater than 100% fps at a resolution of 1600x1200x32 using RGB effects [the most stressful Mame32 settings]. Feed Mame32 as much hardware as possible. Suggested Mame32 settings are available on the Mame32QA site.

* If seeing a severe slowdown in games that historically didn't, ensure that the Use less CPU time if possible menu item is toggled off in Options • Default Options • Miscellaneous. This happens to laptop users particularly.

Joysticks and Gamepad Related Topics

* Gamepads and mouse are disabled by default on first Mame32 launch, enable them by toggling their check boxes on in Options • Default Options • Controllers.

* Mame32 relies on DirectInput for joystick support, ensure the game pad is seen as present and active in the game controller control panel: start menu • settings • control panel • game controllers.

* Verify the joystick is seen as ID #1 in the game controllers control panel rather than being assigned a higher number. If using multiple gamepads, ensure each one has its own ID#.

* Daisy chained gameport Microsoft Sidewinders [original] in Win2k do not work very well. Use USB gamepads instead. Single Sidewinders may also cause odd behavior like ghost button presses.

GUI Related Topics & Miscellaneous Tips

* If seeing icon palette corruption in the GUI when returning from a full screen game, try increasing the desktop color depth to 24bpp or 32bpp.

* Quickly navigate through games in the details view by simply typing the name of the game, the highlight will jump to that game and become more granular as the name is typed out.

* Select a random game with [Ctrl-R].

* If Stretch using hardware is grayed out in Options • Default Options • Advanced, verify the desktop is set to 16bpp or 32bpp and not 24bpp. If it is still grayed out, the video card does not support the hardware stretch capabilities Mame32 needs.

* If there are screenshots in the \snap directory and the default Mame image is the only thing being displayed in the screenshot area on the right, Mame32 is currently toggled into another art mode. Click the screenshot area to toggle between: screenshot, flyer, cabinet, marquee views.

* The GUI text may disappear from the folder view if the GUI font color chosen is very close to the Windows system background color scheme.

* To alleviate screen tearing in some scrolling games, it is necessary to check use triple buffering and match game refresh rate, while setting refresh to ‘auto’. This will set the output monitor’s refresh rate down to 60Hz or the closest the monitor can do to the game’s refresh rate.

* Sometimes due to the Windows system background color scheme chosen, some small black ‘dots’ can display on the Mame32 icons in large icon view. Try a different Windows color scheme ‘window’ setting.

* Vector games like asteroids look and work better if hardware stretch is disabled. Increase the gamma to 2, and force a resolution like 1024x768x32.

* If seeing corruption in the screenshot/flyers/cabinets images, resize the viewable area. Mame32 decimates the image if the area to display the image in is too small, resulting in colored patterns. [increase the viewable screenshot area by turning off status bar, and toolbar, or widening/heightening the screenshot pane].

* If having trouble saving keyboard mappings and configuration, verify that the *.cfg files are not read-only and that a \mame32\cfg directory is present.

* If the in-game [TAB] menu no longer working or can’t be accessed. It’s been mapped it accidentally to another key; delete the default.cfg file in the \mame32\cfg directory.

* Some of the largest games supported by Mame32 [NeoGeo mainly] can run into the hundreds of megabyte range when they are uncompressed into memory, this combined with Mame32 in memory, plus OS overhead can lead to very slow performance as Windows swaps the information out to disk if there is not enough physical memory. 256M or 512M is recommended for all current games [.58].

* The screenshot area was grayed out in Windows XP because of the inclusion of a preliminary file in Mame32 version .54 called Mame32 manifest. Remove that file to view the screenshot area artwork again.


Mame32 Compiling

Compiling Mame32 with MinGW

* Download the MinGW package from Mame.net.
 http://www.mame.net/downmain.html
Extract the contents of the file, allowing directories to be created. Add the \MinGW\bin directory to your environment path via autoexec.bat or control panel • system • advanced.

* Download the latest baseline Mame source.
 http://www.mame.net/downmain.html
Extract the contents of the file, allowing directories to be created.

* Download the latest Mame32 source.
http://www.classicgaming.com/mame32qa/down.htm
Extract the contents of the file, allowing directories to be created.
Overlay the Mame32 directory structure [and subs] onto the baseline Mame directory.

To compile with MinGW move the contents of the Mame32 source \htmlhelp directory to their appropriate MingW directories from the fist step.

htmlhelp.h to \MinGW\include\

htmlhelp.lib to \MinGW\lib\

* Compile with 'make.exe WINUI=1 SUFFIX=32', Note: case makes a difference.

PS - if compiling with MinGW, to alleviate slowdown in the GUI when using zipped icons, it is necessary to alter src\windows\windows.mak and comment out the winalloc.c. guard pages. After commenting, it should now look like:

# uncomment this line to enable guard pages on all memory allocations

# OSOBJS += $(OBJ)/windows/winalloc.o

Compiling Mame32 with Microsoft Visual Studio

http://www.vcmame.net/

Resources for compiling questions:

Mame Compiling Message Board


Mame32 Credits

Mame32 Credits & Resources

Credits

The current Mame32DEV team:

* Chris Kirmse

* Mike Haaland

* John Hardy IV

Additional appreciated contributions by : Michael Soderstrom, Jeff Miller, Dan Miller, Andrew Kirmse, Mohammad Rezaei, John Zissopoulos, Robert Schlabbach, Sword, Emuman, BUT, R. J. Sheppard, and ‘Ren Höek’.

Resources

* The Mame32 QA/Test & Art Dept. : Home to Mame32 icons, cabinets, flyers, screenshots, background images, testing, work in progress updates, bug reporting/tracking, and benchmarking.

* The Mame32 Message Board : Forum for discussion of Mame32 related issues.

* Mame32 Defect Tracking and Bug Reports : Page on Mame32QA which displays information about current Mame32 feature requests and issues. Check before reporting potential bugs.

* Mame.net : Home of Mame[w].

* Mame.net Message Board : Forums for discussion of Mame[w].

* MameTesters.com : Reporting and tracking Mame[w] bugs.

Mame32 © 2002 C. Kirmse, M. Haaland, M. Soderstrom, & the Mame32 team

this help file authored by john iv

updated: 2002-06-25 11:23 AM -0700


Mame32 Changes

Game Additions, Deletions, & Changes

-| game removed

+| game added

c| game changed from

C| game changed to

.61 02:32 pm 7/04/2002

 -|armorap   "Armor Attack"

 -|armorar   "Armor Attack"

 -|lightbr   "Lightbringer"

 -|rckman2j  "Rockman 2: The Power Fighters"

 +|3kokushi  "Sankokushi"

 +|4in1      "4 Fun in 1"

 +|bakutotu  "Bakutotsu Kijuutei"

 +|battlex   "Battle Cross"

 +|bbakraid  "Battle Bakraid - unlimited version"

 +|bbusters  "Beast Busters"

 +|bking     "Birdie King"

 +|bubl2000  "Bubble 2000"

 +|bullfgtr  "Bull Fighter"

 +|carpolo   "Car Polo"

 +|clayshoo  "Clay Shoot"

 +|crshrace  "Lethal Crash Race"

 +|dingo     "Dingo"

 +|dogfgt    "Dog-Fight"

 +|dribling  "Dribbling"

 +|dungeonm  "Dungeon Magic"

 +|equites   "Equites"

 +|f1gp      "F-1 Grand Prix"

 +|findout   "Find Out"

 +|glfgreat  "Golfing Greats"

 +|gstriker  "Grand Striker"

 +|gulfwar2  "Gulf War II"

 +|hotgmck   "Taisen Hot Gimmick"

 +|hvoltage  "High Voltage"

 +|hypreact  "Mahjong Hyper Reaction"

 +|jumpkids  "Jump Kids"

 +|kickgoal  "Kick Goal"

 +|kouyakyu  "Koukouyakyuh, The"

 +|kov       "Knights of Valour / Sangoku Senki"

 +|loderndf  "Lode Runner - The Dig Fight"

 +|macrossp  "Macross Plus"

 +|mayumi    "Kikiippatsu Mayumi-chan"

 +|mechatt   "Mechanized Attack"

 +|megaman2  "Mega Man 2: The Power Fighters"

 +|minferno  "Inferno"

 +|montecar  "Monte Carlo"

 +|mrkougar  "Mr. Kougar"

 +|netwars   "Net Wars"

 +|orbit     "Orbit"

 +|quizmoon  "Quiz Bisyoujo Senshi Sailor Moon - Chiryoku Tairyoku Toki no Un"

 +|redrobin  "Red Robin"

 +|rjammer   "Roller Jammer"

 +|spcking2  "Space King 2"

 +|splndrbt  "Splendor Blast"

 +|srmp4     "Super Real Mahjong PIV"

 +|srmp7     "Super Real Mahjong P7"

 +|sshangha  "Super Shanghai Dragon's Eye"

 +|stmblade  "Storm Blade"

 +|stoffy    "Super Toffy"

 +|suprslam  "Super Slams"

 +|thndzone  "Thunder Zone"

 +|tnexspce  "Next Space, The"

 +|toffy     "Toffy"

 +|triplhnt  "Triple Hunt"

 +|tubep     "Tube Panic"

 +|usg185    "Games V18.7"

 +|usg252    "Games V25.4"

 +|usg32     "Super Duper Casino"

 +|usg83     "Super Ten V8.3"

 +|vhunt2    "Vampire Hunter 2: Darkstalkers Revenge"

 +|wilytowr  "Wily Tower"

 C|battleg   "Battle Garegga - Type 2"

 c|battleg   "Battle Garegga"

 c|daitorid  "Dai Toride"

 C|daitorid  "Daitoride"

 C|orlegend  "Oriental Legend / Xi Yo Gi Shi Re Zuang"

 c|orlegend  "Oriental Legend"

 C|spinmast  "Spin Master / Miracle Adventure"

 c|spinmast  "Spinmaster / Miracle Adventure"

clones

 +|airbustj airbustr

 +|armorap  armora

 +|armorar  armora

 +|atomboy  wilytowr

 +|bagmang  bagman

 +|baraduka baraduke

 +|battlega battleg

 +|battles  xevious

 +|bbakrada bbakraid

 +|condor   phoenix

 +|crshrac2 crshrace

 +|dariusgj dariusg

 +|dariusgu dariusg

 +|dassaul4 thndzone

 +|dassault thndzone

 +|driblino dribling

 +|dungenmu dungeonm

 +|equitess equites

 +|espradeo esprade

 +|glfgretj glfgreat

 +|gravp    gravitar

 +|grindsta vfive

 +|hellfir1 hellfire

 +|kov115   kov

 +|kovplus  kov

 +|lightbr  dungeonm

 +|lunarbat gravitar

 +|metrocra metrocrs

 +|mooncrsu mooncrst

 +|mrkougb  mrkougar

 +|mshvsfu1 mshvsf

 +|orlegndc orlegend

 +|orlegnde orlegend

 +|outfxesj outfxies

 +|popnpopu popnpop

 +|pspikesk pspikes

 +|rckman2j megaman2

 +|redhawk  stagger1

 +|samesam2 fireshrk

 +|scobrase scobra

 +|spcnv95u spcinv95

 +|spyu     spy

 +|sshanghb sshangha

 +|tactcan2 tactcian

.60 11:27 am 5/01/2002

 -|akkanvdr  "Akkanvader"

 -|fa        "F/A"

 +|armorap   "Armor Attack"

 +|armorar   "Armor Attack"

 +|bangbead  "Bang Bead"

 +|barricad  "Barricade"

 +|blkheart  "Black Heart"

 +|blockgal  "Block Gal"

 +|dragrace  "Drag Race"

 +|fghtatck  "Fighter & Attacker"

 +|formatz   "Formation Z"

 +|gtmr2     "Mille Miglia 2: Great 1000 Miles Rally"

 +|hitme     "Hit Me"

 +|hyperpac  "Hyper Pacman"

 +|hyprduel  "Hyper Duel"

 +|iqblock   "IQ-Block"

 +|jdredd    "Judge Dredd"

 +|manybloc  "Many Block"

 +|mastkin   "Masters of Kin, The"

 +|mustang   "US AAF Mustang"

 +|news      "News"

 +|nwarr     "Night Warriors: Darkstalkers' Revenge"

 +|orlegend  "Oriental Legend"

 +|outfxies  "Outfoxies"

 +|poolshrk  "Poolshark"

 +|primrage  "Primal Rage"

 +|rrreveng  "Road Riot's Revenge"

 +|sgemf     "Super Gem Fighter Mini Mix"

 +|shadfrce  "Shadow Force"

 +|silkroad  "Legend of Silkroad, The"

 +|spcinv95  "Space Invaders '95 - Attack Of The Lunar Loonies"

 +|tactcian  "Tactician"

 +|tankbust  "Tank Busters"

 +|taxidrvr  "Taxi Driver"

 +|wcbowl    "World Class Bowling"

 +|xyonix    "Xyonix"

 C|balonfgt  "Vs. Balloon Fight"

 c|balonfgt  "Vs. Baloon Fight"

 C|batcira   "Battle Circuit"

 c|batcirj   "Battle Circuit"

 c|btlecity  "Battle City"

 C|btlecity  "Vs. Battle City"

 c|cluclu    "Clu Clu Land"

 C|cluclu    "Vs. Clu Clu Land"

 C|cscluba   "Capcom Sports Club"

 c|csclubj   "Capcom Sports Club"

 c|drmario   "Dr. Mario"

 C|drmario   "Vs. Dr. Mario"

 c|duckhunt  "Duck Hunt"

 C|duckhunt  "Vs. Duck Hunt"

 c|excitebk  "Excitebike"

 C|excitebk  "Vs. Excitebike"

 c|hogalley  "Hogan's Alley"

 C|hogalley  "Vs. Hogan's Alley"

 c|iceclimb  "Ice Climber"

 C|iceclimb  "Vs. Ice Climber"

 c|iceclmrj  "Ice Climber Dual"

 C|iceclmrj  "Vs. Ice Climber Dual"

 c|ladygolf  "Stroke and Match Golf"

 C|ladygolf  "Vs. Stroke and Match Golf"

 c|machridr  "Mach Rider"

 C|machridr  "Vs. Mach Rider"

 C|moo       "Wild West C.O.W.-Boys of Moo Mesa"

 c|moo       "Wild West C.O.W.boys of Moo Mesa"

 c|platoon   "Platoon"

 C|platoon   "Vs. Platoon"

 c|rbibb     "Atari RBI Baseball"

 C|rbibb     "Vs. Atari RBI Baseball"

 c|smgolf    "Stroke and Match Golf"

 C|smgolf    "Vs. Stroke and Match Golf"

 C|soldivid  "Sol Divide - The Sword Of Darkness"

 c|soldivid  "Sol Divide"

 c|starlstr  "Star Luster"

 C|starlstr  "Vs. Star Luster"

 C|ttmahjng  "Mahjong"

 c|ttmahjng  "T.T. Mahjong"

 c|vspinbal  "Pinball"

 C|vspinbal  "Vs. Pinball"

 c|vsskykid  "Super SkyKid"

 C|vsskykid  "Vs. Super SkyKid"

 c|vssoccer  "Soccer"

 C|vssoccer  "Vs. Soccer"

 c|warlord   "Warlords"

 C|warlords  "Warlords"

clones

 +|aeroboto formatz

 +|akkanvdr spcinv95

 +|arkbl3   arkanoid

 +|arkblock arkanoid

 +|bcrusher kncljoe

 +|blckgalb blockgal

 +|blkhearj blkheart

 +|bloods11 bloodstm

 +|brickyrd barricad

 +|bubsympe bublbob2

 +|clowns1  clowns

 +|drgpunch sprtmtch

 +|emerldaa emeralda

 +|fa       fghtatck

 +|fitegol2 fitegolf

 +|gunbirdk gunbird

 +|herodk   hero

 +|herodku  hero

 +|hstenn10 hstennis

 +|hyperpcb hyperpac

 +|hyprdelj hyprduel

 +|knckhedj knckhead

 +|magworm  centiped

 +|missb2   bublbobl

 +|mooua    moo

 +|mustangb mustang

 +|mustangs mustang

 +|nebulryj nebulray

 +|nwarrh   nwarr

 +|paddle2  arkanoid

 +|pengob   pengo

 +|pfghtj   sgemf

 +|piratpet junglek

 +|primrag2 primrage

 +|rtypelej rtypeleo

 +|sf1p     sf1

 +|sfz2aa   sfa2

 +|sgemfa   sgemf

 +|sgemfh   sgemf

 +|starcase starcas

 +|starcasp starcas

 +|stellcas starcas

 +|stratab1 stratab

 +|vhuntj   nwarr

 +|vhuntjr1 nwarr

 +|xmvsfjr1 xmvsf

 c|batcira  batcirj

 C|batcirj  batcira

 c|cscluba  csclubj

 C|csclubj  cscluba

.59 2:53 PM 3/22/2002

 +|bucky     "Bucky O'Hare"

 +|daraku    "Daraku Tenshi - The Fallen Angels"

 +|gakupara  "Quiz Gakuen Paradise"

 +|gekiretu  "Quiz Gekiretsu Scramble"

 +|gunbird2  "Gunbird 2"

 +|mjsister  "Mahjong Sisters"

 +|moo       "Wild West C.O.W.boys of Moo Mesa"

 +|paddlema  "Paddle Mania"

 +|pass      "Pass"

 +|policetr  "Police Trainer"

 +|quizdna   "Quiz DNA no Hanran"

 +|s1945ii   "Strikers 1945 II"

 +|sbomberb  "Space Bomber"

 +|scorpng   "Scorpion"

 +|soldivid  "Sol Divide"

 +|spbactn   "Super Pinball Action"

 +|superbug  "Super Bug"

 C|cybots    "Cyberbots: Fullmetal Madness"

 c|cybotsj   "Cyberbots: Fullmetal Madness"

 C|dw        "Dynasty Wars"

 c|dwj       "Tenchi wo Kurau"

clones

 -|hcastlea hcastle

 -|rainbowa rainbow

 +|beraboho berabohm

 +|buckyua  bucky

 +|ccastle3 ccastles

 +|cybotsj  cybots

 +|ddsomur1 ddsom

 +|ddtodh   ddtod

 +|dwj      dw

 +|frogg    frogger

 +|galmidwo galaxian

 +|grdius3e gradius3

 +|hcastleo hcastle

 +|hcastljo hcastle

 +|kof99e   kof99

 +|mgcrystj mgcrystl

 +|mooncrsa mooncrst

 +|piscesb  pisces

 +|rainbowo rainbow

 +|sfar2    sfa

 +|skykido  skykid

 +|ssf2ar1  ssf2

 c|captav19 captaven

 c|captavee captaven

 C|captavne captaven

 C|captavnj captaven

 C|captavnu captaven

 c|digdug2a digdug2

 C|digdug2o digdug2

 C|mappyj   mappy

 c|mappyjp  mappy

 c|skykidb  skykid

 C|skykidd  skykid

 c|todruagb todruaga

 C|todruago todruaga

.58 4:45 PM 2/5/2002

 +|angelkds  "Angel Kids"

 +|captaven  "Captain America"

 +|flyball   "Flyball"

 +|gcpinbal  "Grand Cross"

 +|gunforc2  "Gunforce 2"

 +|lemmings  "Lemmings"

 +|mugsmash  "Mug Smashers"

 +|mvsc      "Marvel Vs. Capcom: Clash of Super Heroes"

 +|noboranb  "Noboranka"

 +|stlforce  "Steel Force"

clones

 +|alphaona mhavoc

 +|alphaone mhavoc

 +|blastkit blaster

 +|buckrogn buckrog

 +|captav19 captaven

 +|captavee captaven

 +|geostorm gunforc2

 +|maydayb  mayday

 +|mk2r21   mk2

 +|mkprot9  mk

 +|mvsca    mvsc

 +|mvsch    mvsc

 +|mvscj    mvsc

 +|mvscjr1  mvsc

 c|dstlkr1  dstlk

 C|dstlku   dstlk

 C|dstlkur1 dstlk

.57 7:58 PM 1/1/2002

 +|40love    "Forty-Love"

 +|acrobatm  "Acrobat Mission"

 +|agallet   "Air Gallet"

 +|btoads    "Battle Toads"

 +|buckrog   "Buck Rogers: Planet of Zoom"

 +|carjmbre  "Car Jamboree"

 +|ccasino   "Chinese Casino [BET]"

 +|crystalg  "Crystal Gal"

 +|destroyr  "Destroyer"

 +|drifto94  "Drift Out '94 - The Hard Order"

 +|fa        "F/A"

 +|fromanc2  "Taisen Idol-Mahjong Final Romance 2"

 +|fromanc4  "Taisen Mahjong FinalRomance 4"

 +|fromancr  "Taisen Mahjong FinalRomance R"

 +|hypreac2  "Mahjong Hyper Reaction 2"

 +|janjans1  "Lovely Pop Mahjong Jan Jan Shimasyo"

 +|keithlcy  "Dramatic Adventure Quiz Keith & Lucy"

 +|kof2000   "King of Fighters 2000, The"

 +|meosism   "Meosis Magic"

 +|mosaic    "Mosaic"

 +|mslider   "Monster Slider"

 +|mslug3    "Metal Slug 3"

 +|nekkyoku  "Rettou Juudan Nekkyoku Janshi - Higashi Nippon Hen"

 +|nitd      "Nightmare in the Dark"

 +|numanath  "Numan Athletics"

 +|ojanko2   "Ojanko Yakata 2bankan"

 +|ojankohs  "Ojanko High School"

 +|ojankoy   "Ojanko Yakata"

 +|onna34ro  "Onna Sansirou - Typhoon Gal"

 +|playball  "PlayBall!"

 +|ponchin   "Mahjong Pon Chin Kan"

 +|popper    "Popper"

 +|qzkklgy2  "Quiz Kokology 2"

 +|rckman2j  "Rockman 2: The Power Fighters"

 +|reikaids  "Reikai Doushi"

 +|renaiclb  "Mahjong Ren-ai Club"

 +|revx      "Revolution X"

 +|ryorioh   "Gourmet Battle Quiz Ryorioh CooKing"

 +|s1945p    "Strikers 1945 Plus"

 +|sdgndmps  "SD Gundam Psycho Salamander no Kyoui"

 +|skybase   "Sky Base"

 +|sprcros2  "Super Cross 2"

 +|subroc3d  "Subroc3D"

 +|survarts  "Survival Arts"

 +|sxyreact  "Pachinko Sexy Reaction"

 +|uchuuai   "Mahjong Uchuu yori Ai wo komete"

 +|ultramhm  "Ultra Maru-hi Mahjong"

 +|undoukai  "Undoukai, The"

 +|welltris  "Welltris"

 +|wits      "Wit's"

 c|av2mj1    "AV2Mahjong No.1 Bay Bridge no Seijo"

 C|av2mj1bb  "AV2Mahjong No.1 Bay Bridge no Seijo"

 C|av2mj2rg  "AV2Mahjong No.2 Rouge no Kaori"

 C|vanvan    "Van-Van Car"

 c|vanvan    "Van Van Car"

clones

 -|vampa    dstlk

 +|blckoutj blockout

 +|catch22  combat

 +|club90sa club90s

 +|demonwl1 demonwld

 +|donpachk donpachi

 +|dstlka   dstlk

 +|gunbirdj gunbird

 +|kof2000n kof2000

 +|mosaica  mosaic

 +|msha     msh

 +|mslug3n  mslug3

 +|numanatj numanath

 +|onna34ra onna34ro

 +|ponchina ponchin

 +|popflamb popflame

 +|popnpopj popnpop

 +|roadbls2 roadblst

 +|sailormo sailormn

 +|sfz2a    sfa2

 +|spacecho speakres

 +|volfiedj volfied

 +|volfiedu volfied

 +|vsavu    vsav

 +|wgpjoya  wgp

 C|vanvank  vanvan

 c|vanvans  vanvan

 C|vimana1  vimana

 c|vimana2  vimana

.56 11:06 AM 11/1/2001

 -|arkanoi2  "Arkanoid - Revenge of DOH"

 -|destderb  "Demolition Derby"

 +|arknoid2  "Arkanoid - Revenge of DOH"

 +|chameleo  "Chameleon"

 +|demoderb  "Demolition Derby"

 +|ganryu    "Musashi Ganryuuki"

 +|metmqstr  "Metamoqester"

 +|mshvsf    "Marvel Super Heroes Vs. Street Fighter"

 +|myangel   "Kosodate Quiz My Angel"

 +|myangel2  "Kosodate Quiz My Angel 2"

 +|preisle2  "Prehistoric Isle 2"

 +|pzlbowl   "Puzzle De Bowling"

 +|raflesia  "Rafflesia"

 +|spatter   "Spatter"

 +|stargrds  "Star Guards"

 +|vsav2     "Vampire Savior 2: The Lord of Vampire"

 +|wmatch    "Water Match"

 +|wwjgtin   "Wai Wai Jockey Gate-In!"

 C|garou     "Garou - Mark of the Wolves"

 c|garoup    "Garou - Mark of the Wolves"

clones

 -|ark2jp   arkanoi2

 -|ark2us   arkanoi2

 -|bullfgtj bullfgt

 -|myheroj  myhero

 +|arknid2j arknoid2

 +|arknid2u arknoid2

 +|armwaru  armwar

 +|garouo   garou

 +|garoup   garou

 +|kof99n   kof99

 +|mshvsfa  mshvsf

 +|mshvsfa1 mshvsf

 +|mshvsfh  mshvsf

 +|mshvsfj  mshvsf

 +|mshvsfj1 mshvsf

 +|nprincso seganinj

 +|raflsiau raflesia

 +|reguluso regulus

 +|sfz3a    sfa3

 +|sscandal myhero

 +|teddybbo teddybb

 +|thetogyu bullfgt

 +|vsava    vsav

 +|xmcotau  xmcota

 +|xmvsfu   xmvsf

 c|ddtodr1  ddtod

 C|ddtodu   ddtod

 C|ddtodur1 ddtod

 C|demoderm demoderb

 c|destderm destderb

 c|flicky2  flicky

 C|flickyo  flicky

 c|mrvikinj mrviking

 C|mrvikngj mrviking

 C|wbmlb    wbml

 c|wbmlj    wbml

 c|wbmlj2   wbml

 C|wbmljb   wbml

 C|wbmljo   wbml

 c|wbmlju   wbml

.55 5:25 PM 9/16/2001

 -|blockgal  "Block Gal"

 -|gotya     "Got-Ya"

 -|kikstart  "Kick Start Wheelie King"

 +|crzrally  "Crazy Rally"

 +|nbbatman  "Ninja Baseball Batman"

 +|nyny      "New York New York"

 +|skysmash  "Sky Smasher"

 +|spacefrt  "Space Fortress"

 +|sprtmtch  "Sports Match"

 +|thehand   "Hand, The"

 +|umanclub  "Ultraman Club - Tatakae! Ultraman Kyoudai!!"

 +|zerohour  "Zero Hour"

clones

 -|aeroboto formatz

 -|blckgalb blockgal

 +|arcadia  nyny

 +|blmbycau blmbycar

 +|ddsoma   ddsom

 +|ddsomu   ddsom

 +|dsccr94j dsoccr94

 +|dstlkr1  dstlk

 +|gotya    thehand

 +|kurikinj kurikint

 +|kurikinu kurikint

 +|leaguemn nbbatman

 +|mschamp  mspacman

 +|nynyg    nyny

 +|rambo3ae rambo3

 +|sfar1    sfa

 +|spacedxj spacedx

 +|spacedxo spacedx

 +|typhoon  ajax

.54 7:02 PM 8/24/2001

 -|champbb2  "Champion Baseball II"

 -|dakkochn  "DakkoChan Jansoh"

 -|formatz   "Formation Z"

 -|gardia    "Gardia"

 -|meteor    "Meteoroids"

 -|primella  "Primella"

 -|shtngmst  "Shooting Master"

 -|ufosensi  "Ufo Senshi Yohko Chan"

 +|firebarr  "Fire Barrel"

 +|gulfstrm  "Gulf Storm"

 +|gundl94   "Gun Dealer '94"

 +|mineswpr  "Minesweeper"

 +|spcforce  "Space Force"

 +|timelimt  "Time Limit"

 +|youjyudn  "Youjyuden"

 C|lastmisn  "Last Mission"

 c|lastmiss  "Last Mission"

 C|strahl    "Koutetsu Yousai Strahl"

 c|strahl    "Strahl"

clones

 -|gardiab  gardia

 +|bluehawn bluehawk

 +|gulfstr2 gulfstrm

 +|meteor   spcforce

 +|primella gundl94

 +|spcforc2 spcforce

 C|lastmsnj lastmisn

 C|lastmsno lastmisn

 c|lastmss2 lastmiss

.53 4:18 PM 8/11/2001

 -|cbnj      "Cassette: Bump N Jump"

 -|daisenpu  "Daisenpu"

 -|gunbulet  "Gun Bullet"

 -|pacman    "PuckMan"

 -|slam2e    "Ring of Destruction: Slammasters II"

 -|stratvox  "Stratovox"

 +|aquajack  "Aqua Jack"

 +|batcirj   "Battle Circuit"

 +|bigrun    "Big Run"

 +|bshark    "Battle Shark"

 +|chasehq   "Chase HQ"

 +|contcirc  "Continental Circus"

 +|csclubj   "Capcom Sports Club"

 +|dblaxle   "Double Axle"

 +|dirtfoxj  "Dirt Fox"

 +|dokyusei  "Mahjong Doukyuusei"

 +|dokyusp   "Mahjong Doukyuusei Special"

 +|ecofghtr  "Eco Fighters"

 +|funkyjet  "Funky Jet"

 +|hasamu    "Hasamu"

 +|kengo     "Ken-Go"

 +|mazinger  "Mazinger Z"

 +|mgcrystl  "Magical Crystals"

 +|mightguy  "Mighty Guy"

 +|mjyuugi   "Mahjong Yuugi"

 +|nightstr  "Night Striker"

 +|pbobblen  "Puzzle Bobble / Bust-A-Move"

 +|ptblank   "Point Blank"

 +|puckman   "PuckMan"

 +|ringdest  "Ring of Destruction: Slammasters II"

 +|sailormn  "Pretty Soldier Sailor Moon"

 +|sandscrp  "Sand Scorpion"

 +|sci       "Special Criminal Investigation"

 +|sokonuke  "Sokonuke Taisen Game"

 +|sotsugyo  "Sotsugyo Shousho"

 +|speakres  "Speak & Rescue"

 +|sstrangr  "Space Stranger"

 +|sstrngr2  "Space Stranger 2"

 +|twinhawk  "Twin Hawk"

 +|ultratnk  "Ultra Tank"

 c|clapapa   "Cassette: La.Pa.Pa"

 C|clapapa   "Cassette: Rootin' Tootin'"

 c|pbobble   "Puzzle Bobble / Bust-A-Move"

 C|pbobble   "Puzzle Bobble"

 c|srmp2     "Super Real Mahjong P2"

 C|srmp2     "Super Real Mahjong Part 2"

 C|srmp3     "Super Real Mahjong Part 3"

clones

 -|npacmod  pacman

 -|pbobblbs pbobble

 -|popeye2  popeye

 -|speakres stratvox

 +|19xxjr1  19xx

 +|aquajckj aquajack

 +|batcira  batcirj

 +|bouldshj bouldash

 +|bsharkj  bshark

 +|bubblesp bubbles

 +|cbnj     cburnrub

 +|cburnrb2 cburnrub

 +|cgraplp2 cgraplop

 +|chasehqj chasehq

 +|chelnovu chelnov

 +|clapapa2 clapapa

 +|cnights2 cnightst

 +|contcrcu contcirc

 +|cppicf2  cppicf

 +|cscluba  csclubj

 +|cscrtry2 cscrtry

 +|csweetht cdiscon1

 +|ctislnd2 ctisland

 +|ctislnd3 ctisland

 +|daisenpu twinhawk

 +|ddsomjr1 ddsom

 +|dkongjo  dkong

 +|dkongjo1 dkong

 +|dondokdj dondokod

 +|dondokdu dondokod

 +|galxwar2 galxwars

 +|galxwart galxwars

 +|gteikob2 uniwars

 +|gtmrusa  gtmr

 +|gunbulet ptblank

 +|jspectr2 invaders

 +|klaxp1   klax

 +|klaxp2   klax

 +|m660j    m660

 +|mjyuugia mjyuugi

 +|newpuckx puckman

 +|omega    theend

 +|ozmawar2 ozmawars

 +|pitfighb pitfight

 +|popeyeu  popeye

 +|pwheelsj dblaxle

 +|robocopj robocop

 +|robocopw robocop

 +|robocp2j robocop2

 +|robocp2u robocop2

 +|scia     sci

 +|sciu     sci

 +|spaceat2 invaders

 +|srdarwnj srdarwin

 +|ssf2tb   ssf2

 +|ssf2tbj  ssf2

 +|starfira starfire

 +|swimmerb swimmer

 +|thndfoxj thundfox

 +|thndfoxu thundfox

 +|twinhwku twinhawk

 +|uecology ecofghtr

 +|upndownu upndown

 +|vampjr1  dstlk

 +|vendetar vendetta

 +|wgp2     wgp

 +|xmcotah  xmcota

 C|cameltrj cameltry

 c|cameltru cameltry

 C|camltrua cameltry

 c|dkjrbl   dkongjr

 c|dkjrjp   dkongjr

 C|dkngjnrb dkongjr

 C|dkngjnrj dkongjr

 c|dkngjrjp dkongjr

 c|dkongjpo dkong

 C|dkongjrb dkongjr

 C|dkongjrj dkongjr

 c|ghostmun pacman

 C|ghostmun puckman

 c|hangly   pacman

 C|hangly   puckman

 c|hangly2  pacman

 C|hangly2  puckman

 c|pacheart pacman

 C|pacheart puckman

 C|pacman   puckman

 c|pacmanbl pacman

 C|pacmanbl puckman

 c|pacmanjp pacman

 c|pacmanm  pacman

 c|pacmod   pacman

 C|pacmod   puckman

 c|piranha  pacman

 C|piranha  puckman

 c|puckman  pacman

 C|puckmana puckman

 C|puckmod  puckman

 c|sfaer1   sfa

 C|sfau     sfa

 C|smbomb   ringdest

 c|smbomber slam2e

 C|smbombr1 ringdest

 C|stratvox speakres

 c|stratvxb stratvox


                 M.A.M.E.  -  Multiple Arcade Machine Emulator
          Copyright (C) 1997-2002 by Nicola Salmoria and The MAME Team

Many people have helped with this project--directly, or by releasing the source
code for the drivers they have written. We are not trying to take credit that
isn't ours. See the Acknowledgments section for a list of contributors. Please
note, however, that the list is largely incomplete. Also see the comments in
the source code to see the people who contributed to specific drivers. That
list, too, may be incomplete. We apologize for any omission.

All trademarks cited in this document are property of their respective owners.

For usage instructions, please consult the corresponding readme.

MS-DOS:   msdos.txt
Windows:  windows.txt

Usage and Distribution License
------------------------------

I. Purpose
----------
   MAME is strictly a non-profit project. Its main purpose is to be a reference
   to the inner workings of the emulated arcade machines. This is done for
   educational purposes and to prevent many historical games from sinking into
   oblivion once the hardware they run on stops working. Of course to preserve
   the games, you must also be able to actually play them; you can consider
   that a nice side effect.
   It is not our intention to infringe on any copyrights or patents on the
   original games. All of MAME's source code is either our own or freely
   available. To operate, the emulator requires images of the original ROMs
   from the arcade machines, which must be provided by the user. No portion of
   the original ROM codes are included in the executable.

II. Cost
--------
   MAME is free. Its source code is free. Selling either is not allowed.

III. ROM Images
---------------
   ROM images are copyrighted material. Most of them cannot be distributed
   freely. Distribution of MAME on the same physical medium as illegal copies
   of ROM images is strictly forbidden.
   You are not allowed to distribute MAME in any form if you sell, advertise,
   or publicize illegal CD-ROMs or other media containing ROM images. This
   restriction applies even if you don't make money, directly or indirectly,
   from those activities. You are allowed to make ROMs and MAME available for
   download on the same website, but only if you warn users about the ROMs's
   copyright status, and make it clear that users must not download ROMs unless
   they are legally entitled to do so.

IV. Source Code Distribution
----------------------------
   If you distribute the binary (compiled) version of MAME, you should also
   distribute the source code. If you can't do that, you must provide a link
   to a site where the source can be obtained.

V. Distribution Integrity
-------------------------
   This chapter applies to the official MAME distribution. See below for
   limitations on the distribution of derivative works.
   MAME must be distributed only in the original archives. You are not allowed
   to distribute a modified version, nor to remove and/or add files to the
   archive.

VI. Reuse of Source Code
--------------------------
   This chapter might not apply to specific portions of MAME (e.g. CPU
   emulators) which bear different copyright notices.
   The source code cannot be used in a commercial product without the written
   authorization of the authors. Use in non-commercial products is allowed, and
   indeed encouraged.  If you use portions of the MAME source code in your
   program, however, you must make the full source code freely available as
   well.
   Usage of the _information_ contained in the source code is free for any use.
   However, given the amount of time and energy it took to collect this
   information, if you find new information we would appreciate if you made it
   freely available as well.

VII. Derivative Works
---------------------
   Derivative works are allowed, provided their source code is freely
   available. However, these works are discouraged. MAME is a continuously-
   -evolving project. It is in your best interests to submit your contributions
   to the MAME development team, so they may be integrated into the main
   distribution.
   There are some specific modifications to the source code which go against
   the spirit of the project. They are NOT considered a derivative work, and
   distribution of executables containing them is strictly forbidden. Such
   modifications include, but are not limited to:
   - enabling games that are disabled
   - changing the ROM verification commands so that they report missing games
   - removing the startup information screens
   If you make a derivative work, you are not allowed to call it MAME. You must
   use a different name to make clear that it is a MAME derivative, not an
   official distribution from the MAME team. Simply calling it MAME followed or
   preceded by a punctuation mark (e.g. MAME+) is not sufficient. The name must
   be clearly distinct (e.g. REMAME). The version number must also match the
   number of the official MAME version from which you derived your version.

How to Contact Us
-----------------

The official MAME homepage is http://www.mame.net/  You can always find the
latest release there, including beta versions and information on things being
worked on. Also, a totally legal and free ROM set of Robby Roto is available
on the same page.

If you have bugs to report, check the MAME Testing Project at
http://www.mametesters.com

Here are some of the people contributing to MAME. If you have comments,
suggestions, or bug reports about an existing driver, check the driver's
source code to find who has worked on it, and send comments to that person.
If you are not sure who to contact, write to Nicola. If you have comments
specific to a system other than DOS (e.g. Mac, Win32, Unix), they should be
sent to the respective port maintainer (check the documentation to know who he
is). DON'T SEND THEM TO NICOLA - they will be ignored.

Nicola Salmoria    MC6489@mclink.it

Mike Balfour       mab22@po.cwru.edu
Aaron Giles        agiles@mame.net
Chris Moore        chris.moore@writeme.com
Brad Oliver        bradman@pobox.com
Andrew Scott       ascott@utkux.utcc.utk.edu
Zsolt Vasvari      vaszs01@banet.net
Luca Elia          l.elia@tin.it

DON'T SEND BINARY ATTACHMENTS WITHOUT ASKING FIRST, *ESPECIALLY* ROM IMAGES.

THESE ARE NOT SUPPORT ADDRESSES. Support questions sent to these addresses
*will* be ignored. Please understand that this is a *free* project, mostly
targeted at experienced users. We don't have the resources to provide end user
support. Basically, if you can't get the emulator to work, you are on your own.
First of all, read the docs carefully. If you still can't find an answer to
your question, try checking the beginner's sections that many emulation pages
have, or ask on the appropriate Usenet newsgroups (e.g. comp.emulators.misc) or
on the official MAME message board at http://www.mame.net/msg/

For help in compiling MAME, check these pages:
http://www.mame.net/compile.html
http://www.mameworld.net

Also, DO NOT SEND REQUESTS FOR NEW GAMES TO ADD, unless you have some original
info on the game hardware or, even better, own the board and have the technical
expertise needed to help us.
Please don't send us information widely available on the Internet - we are
perfectly capable of finding it ourselves, thank you.

Acknowledgments
---------------

First of all, thanks to Allard van der Bas (avdbas@wi.leidenuniv.nl) for
starting the Arcade Emulation Programming Repository at
http://valhalla.ph.tn.tudelft.nl/emul8
Without the Repository, I would never have even tried to write an emulator.
Unfortunately, the original Repository is now closed, but its spirit lives
on in MAME.

Z80 emulator Copyright (c) 1998 Juergen Buchmueller, all rights reserved.
M6502 emulator Copyright (c) 1998 Juergen Buchmueller, all rights reserved.
Hu6280 Copyright (c) 1999 Bryan McPhail, mish@tendril.force9.net
I86 emulator by David Hedley, modified by Fabrice Frances (frances@ensica.fr)
M6809 emulator by John Butler, based on L.C. Benschop's 6809 Simulator V09.
M6808 based on L.C. Benschop's 6809 Simulator V09.
M68000 emulator Copyright 1999 Karl Stenerud.  All rights reserved.
80x86 M68000 emulator Copyright 1998, Mike Coates, Darren Olafson.
8039 emulator by Mirko Buffoni, based on 8048 emulator by Dan Boris.
T-11 emulator Copyright (C) Aaron Giles 1998
TMS34010 emulator by Alex Pasadyn and Zsolt Vasvari.
TMS9900 emulator by Andy Jones, based on original code by Ton Brouwer.
Cinematronics CPU emulator by Jeff Mitchell, Zonn Moore, Neil Bradley.
Atari AVG/DVG emulation based on VECSIM by Hedley Rainnie, Eric Smith and
Al Kossow.

TMS5220 emulator by Frank Palazzolo.
AY-3-8910 emulation based on various code snippets by Ville Hallik,
  Michael Cuddy, Tatsuyuki Satoh, Fabrice Frances, Nicola Salmoria.
YM-2203, YM-2151, YM3812 emulation by Tatsuyuki Satoh.
POKEY emulator by Ron Fries.
Many thanks to Eric Smith, Hedley Rainnie and Sean Trowbridge for information
   on the Pokey random number generator.
NES sound hardware info by Matthew Conte.
YM2610 emulation by Hiromitsu Shioya.

Background art by Peter Hirschberg (PeterH@cronuscom.com).

Allegro library by Shawn Hargreaves, 1994/97
SEAL Synthetic Audio Library API Interface Copyright (C) 1995, 1996
   Carlos Hasan. All Rights Reserved.
Video modes created using Tweak 1.6b by Robert Schmidt, who also wrote
   TwkUser.c.
"inflate" code for zip file support by Mark Adler.

DOS executable compressed with UPX by Markus F.X.J. Oberhumer & Laszlo Molnar,
    http://upx.sourceforge.net/

Big thanks to Gary Walton (garyw@excels-w.demon.co.uk) for too many things
   to mention.

Thanks to Brian Deuel, Neil Bradley, and the Retrocade dev team for allowing us
to use Retrocade's game history database.

Thanks to Richard Bush for info on several games.

Thanks to Dave (www.finalburn.com) for info on After Burner.

and thanks to everyone else I forgot.


                 Controller-Specific Input Port Mappings
                 ---------------------------------------

The main purpose of the controller-specific .ini files is to remap the
inputs.  This is handled via two mechanisms: key re-mapping and
sequence re-mapping.

Key re-mapping occurs at the most basic level.  The specified keycode is
replaced where ever it occurs (in all sequences) with the specified
replacement.  Only single keycodes can be used as a replacement (that is, a
single key cannot be replaced with a key sequence).

Sequence mapping occurs at a higher level.  In this case, the entire
key sequence for the given input is replaced with the specified key
sequence.

Keycodes are specified as a single keyword.  Key sequences are specified
as a series of keycodes separated by spaces (the full sequence must be
enclosed in quotes if spaces exist).  Two special keywords are available
for defining key sequences, CODE_OR and CODE_NOT (which can abbreviated |
and ! respectively).

When two keycodes are specified together (separated by only whitespace),
the default action is a logical AND, such that both keys must be pressed
at the same time for the action to occur.  Often it desired that either
key can be pressed for the action to occur (for example LEFT CTRL and
Joystick Button 0), in which case the two keycodes need to be separated
by a CODE_OR (|) keyword.  Finally, certain combinations may be
undesirable and warrant no action by MAME.  For these, the keywords should
be specified by a CODE_NOT (!) (for example, ALT-TAB on a windows machine).

An example file containing all key sequences and the standard definitions
can be found in ctrlr\std.ini.  This file is NOT parsed by MAME and is
only provided for reference.  Lines can be copied from this file to create
a controller customization file.  When creating a file, keep the number of
redefinitions to a minimum.  Any input not listed will default to the
standard sequence.  Note that several files may be parsed for any given
controller/game combination, so an input may be re-defined in multiple
places.

For support of controller input customization, two new command-line
options were added:

-ctrlr_directory "name"

Specifies the directory that contains the controller customization .ini files.

-ctrlr "name"

Specifies a controller name for customization.  The .ini files for the
controller are stored in either a directory or a .zip file with the same
name as the specified controller.

The first file in the directory/zip to be scanned is the file default.ini.
From there, game-specific files are scanned starting with the top-most
parent file and continuing down to the specified game name.

Once the default.ini and all game-specific files are scanned, additional
files may be scanned depending on the game type.  The files to be scanned
are specified by the following custom keywords:

dial_ini                "name"
paddle_ini              "name"
pedal_ini               "name"
trackball_ini           "name"
ad_stick_ini            "name"

Each of these keywords specify the name of an .ini file that will be
parsed if the game has one of these types of inputs.  For example,
Tempest, which  has a dial input, will automatically parse the file
specified by the dial_ini keyword.  Typically, all of the x_ini keywords
will point to the same file (e.g. mouse.ini) which enables mouse and/or
joystick support.  In this way, mouse and joystick support will only be
enabled on those games that require it.  If all games for this controller
require joystick and/or mouse support, those keywords can be placed in
the main default.ini file.

All of the options that can be specified on the command-line or in the
main mame.ini file can be specified in the controller-specific ini files,
though because of when these files are parsed, the specified options may
have no effect.  The only two general options guaranteed to be supported
are mouse and joystick.  Note that command-line specification of these
options takes precedence.  Since most front-ends, including MAME32,
specify these options through the command-line, the mouse and/or joystick
options specified in the .ini files will be ignored.

Another custom keyword is:

ctrlrname               "name"

This keyword defines a detailed name for the selected controller.  Names
that include spaces must be enclosed in quotes.

Keywords:
---------

Keywords are separated into two categories, keycodes and input port
definitions.  To specify a key re-mapping, specify the keycode as the
keyword to re-define (that is, on the left-hand side) followed by the
replacement code.  To specify a sequence re-map, specify the input port
code to be re-defined on the left followed by the sequence.

In addition to the standard codes, additional OSD specific codes may be
generated.  The keycodes added are typically generated based on connected
hardware.  For example, in the windows port, direct input is polled to
determine what inputs are available and assign names.

With respect to the windows port, the generated keycodes are identical
to those displayed in the configuration menu with all spaces replaced by
underscores.  For example, the keycodes automatically generated for a
Wingman Warrior joystick are:

J1_X-axis_+        J1_X-axis_-        J1_Y-axis_+        J1_Y-axis_-
J1_Z-axis_+        J1_Z-axis_-        J1_Rz-axis_+       J1_Rz-axis_-
J1_Button_0        J1_Button_1        J1_Button_2        J1_Button_3
J1_POV_0_U         J1_POV_0_D         J1_POV_0_L         J1_POV_0_R

The names generated will vary with the port to which the joystick is
connected.  In the codes listed above, the Wingman Warrior was connected as
the first joystick (J1).  If it had been configured as a different input,
the generated codes would have a different Jx number.

All keyword matching including the standard keywords is case sensitive.
Also, some of the automatically generated OSD codes may be redundant.
For example, J1_Button_0 is the same as JOYCODE_1_BUTTON1.  Standard codes
are preferred over OSD codes.

The standard keycodes are:
--------------------------

KEYCODE_A                KEYCODE_B                KEYCODE_C
KEYCODE_D                KEYCODE_E                KEYCODE_F
KEYCODE_G                KEYCODE_H                KEYCODE_I
KEYCODE_J                KEYCODE_K                KEYCODE_L
KEYCODE_M                KEYCODE_N                KEYCODE_O
KEYCODE_P                KEYCODE_Q                KEYCODE_R
KEYCODE_S                KEYCODE_T                KEYCODE_U
KEYCODE_V                KEYCODE_W                KEYCODE_X
KEYCODE_Y                KEYCODE_Z                KEYCODE_0
KEYCODE_1                KEYCODE_2                KEYCODE_3
KEYCODE_4                KEYCODE_5                KEYCODE_6
KEYCODE_7                KEYCODE_8                KEYCODE_9
KEYCODE_0_PAD            KEYCODE_1_PAD            KEYCODE_2_PAD
KEYCODE_3_PAD            KEYCODE_4_PAD            KEYCODE_5_PAD
KEYCODE_6_PAD            KEYCODE_7_PAD            KEYCODE_8_PAD
KEYCODE_9_PAD            KEYCODE_F1               KEYCODE_F2
KEYCODE_F3               KEYCODE_F4               KEYCODE_F5
KEYCODE_F6               KEYCODE_F7               KEYCODE_F8
KEYCODE_F9               KEYCODE_F10              KEYCODE_F11
KEYCODE_F12              KEYCODE_ESC              KEYCODE_TILDE
KEYCODE_MINUS            KEYCODE_EQUALS           KEYCODE_BACKSPACE
KEYCODE_TAB              KEYCODE_OPENBRACE        KEYCODE_CLOSEBRACE
KEYCODE_ENTER            KEYCODE_COLON            KEYCODE_QUOTE
KEYCODE_BACKSLASH        KEYCODE_BACKSLASH2       KEYCODE_COMMA
KEYCODE_STOP             KEYCODE_SLASH            KEYCODE_SPACE
KEYCODE_INSERT           KEYCODE_DEL              KEYCODE_HOME
KEYCODE_END              KEYCODE_PGUP             KEYCODE_PGDN
KEYCODE_LEFT             KEYCODE_RIGHT            KEYCODE_UP
KEYCODE_DOWN             KEYCODE_SLASH_PAD        KEYCODE_ASTERISK
KEYCODE_MINUS_PAD        KEYCODE_PLUS_PAD         KEYCODE_DEL_PAD
KEYCODE_ENTER_PAD        KEYCODE_PRTSCR           KEYCODE_PAUSE
KEYCODE_LSHIFT           KEYCODE_RSHIFT           KEYCODE_LCONTROL
KEYCODE_RCONTROL         KEYCODE_LALT             KEYCODE_RALT
KEYCODE_SCRLOCK          KEYCODE_NUMLOCK          KEYCODE_CAPSLOCK
KEYCODE_LWIN             KEYCODE_RWIN             KEYCODE_MENU

JOYCODE_1_LEFT           JOYCODE_1_RIGHT          JOYCODE_1_UP
JOYCODE_1_DOWN           JOYCODE_1_BUTTON1        JOYCODE_1_BUTTON2
JOYCODE_1_BUTTON3        JOYCODE_1_BUTTON4        JOYCODE_1_BUTTON5
JOYCODE_1_BUTTON6        JOYCODE_1_START          JOYCODE_1_SELECT
JOYCODE_2_LEFT           JOYCODE_2_RIGHT          JOYCODE_2_UP
JOYCODE_2_DOWN           JOYCODE_2_BUTTON1        JOYCODE_2_BUTTON2
JOYCODE_2_BUTTON3        JOYCODE_2_BUTTON4        JOYCODE_2_BUTTON5
JOYCODE_2_BUTTON6        JOYCODE_2_START          JOYCODE_2_SELECT
JOYCODE_3_LEFT           JOYCODE_3_RIGHT          JOYCODE_3_UP
JOYCODE_3_DOWN           JOYCODE_3_BUTTON1        JOYCODE_3_BUTTON2
JOYCODE_3_BUTTON3        JOYCODE_3_BUTTON4        JOYCODE_3_BUTTON5
JOYCODE_3_BUTTON6        JOYCODE_3_START          JOYCODE_3_SELECT
JOYCODE_4_LEFT           JOYCODE_4_RIGHT          JOYCODE_4_UP
JOYCODE_4_DOWN           JOYCODE_4_BUTTON1        JOYCODE_4_BUTTON2
JOYCODE_4_BUTTON3        JOYCODE_4_BUTTON4        JOYCODE_4_BUTTON5
JOYCODE_4_BUTTON6        JOYCODE_4_START          JOYCODE_4_SELECT

MOUSECODE_1_BUTTON1      MOUSECODE_1_BUTTON2      MOUSECODE_1_BUTTON3

KEYCODE_NONE             CODE_NONE                CODE_OTHER
CODE_DEFAULT             CODE_PREVIOUS            CODE_NOT
CODE_OR                  !                        |

The input port codes are:
-------------------------

UI_CONFIGURE             UI_ON_SCREEN_DISPLAY     UI_PAUSE
UI_RESET_MACHINE         UI_SHOW_GFX              UI_FRAMESKIP_DEC
UI_FRAMESKIP_INC         UI_THROTTLE              UI_SHOW_FPS
UI_SHOW_PROFILER         UI_SNAPSHOT              UI_TOGGLE_CHEAT
UI_UP                    UI_DOWN                  UI_LEFT
UI_RIGHT                 UI_SELECT                UI_CANCEL
UI_PAN_UP                UI_PAN_DOWN              UI_PAN_LEFT
UI_PAN_RIGHT             UI_TOGGLE_DEBUG          UI_SAVE_STATE
UI_LOAD_STATE            UI_ADD_CHEAT             UI_DELETE_CHEAT
UI_SAVE_CHEAT            UI_WATCH_VALUE           UI_EDIT_CHEAT
START1                   START2                   START3
START4                   COIN1                    COIN2
COIN3                    COIN4                    SERVICE1
SERVICE2                 SERVICE3                 SERVICE4
TILT

P1_JOYSTICK_UP           P1_JOYSTICK_DOWN         P1_JOYSTICK_LEFT
P1_JOYSTICK_RIGHT        P1_BUTTON1               P1_BUTTON2
P1_BUTTON3               P1_BUTTON4               P1_BUTTON5
P1_BUTTON6               P1_BUTTON7               P1_BUTTON8
P1_BUTTON9               P1_BUTTON10              P1_JOYSTICKRIGHT_UP
P1_JOYSTICKRIGHT_DOWN    P1_JOYSTICKRIGHT_LEFT    P1_JOYSTICKRIGHT_RIGHT
P1_JOYSTICKLEFT_UP       P1_JOYSTICKLEFT_DOWN     P1_JOYSTICKLEFT_LEFT
P1_JOYSTICKLEFT_RIGHT

P2_JOYSTICK_UP           P2_JOYSTICK_DOWN         P2_JOYSTICK_LEFT
P2_JOYSTICK_RIGHT        P2_BUTTON1               P2_BUTTON2
P2_BUTTON3               P2_BUTTON4               P2_BUTTON5
P2_BUTTON6               P2_BUTTON7               P2_BUTTON8
P2_BUTTON9               P2_BUTTON10              P2_JOYSTICKRIGHT_UP
P2_JOYSTICKRIGHT_DOWN    P2_JOYSTICKRIGHT_LEFT    P2_JOYSTICKRIGHT_RIGHT
P2_JOYSTICKLEFT_UP       P2_JOYSTICKLEFT_DOWN     P2_JOYSTICKLEFT_LEFT
P2_JOYSTICKLEFT_RIGHT

P3_JOYSTICK_UP           P3_JOYSTICK_DOWN         P3_JOYSTICK_LEFT
P3_JOYSTICK_RIGHT        P3_BUTTON1               P3_BUTTON2
P3_BUTTON3               P3_BUTTON4

P4_JOYSTICK_UP           P4_JOYSTICK_DOWN         P4_JOYSTICK_LEFT
P4_JOYSTICK_RIGHT        P4_BUTTON1               P4_BUTTON2
P4_BUTTON3               P4_BUTTON4

P1_PEDAL                 P1_PEDAL_EXT             P2_PEDAL
P2_PEDAL_EXT             P3_PEDAL                 P3_PEDAL_EXT
P4_PEDAL                 P4_PEDAL_EXT

P1_PADDLE                P1_PADDLE_EXT            P2_PADDLE
P2_PADDLE_EXT            P3_PADDLE                P3_PADDLE_EXT
P4_PADDLE                P4_PADDLE_EXT            P1_PADDLE_V
P1_PADDLE_V_EXT          P2_PADDLE_V              P2_PADDLE_V_EXT
P3_PADDLE_V              P3_PADDLE_V_EXT          P4_PADDLE_V
P4_PADDLE_V_EXT

P1_DIAL                  P1_DIAL_EXT              P2_DIAL
P2_DIAL_EXT              P3_DIAL                  P3_DIAL_EXT
P4_DIAL                  P4_DIAL_EXT              P1_DIAL_V
P1_DIAL_V_EXT            P2_DIAL_V                P2_DIAL_V_EXT
P3_DIAL_V                P3_DIAL_V_EXT            P4_DIAL_V
P4_DIAL_V_EXT

P1_TRACKBALL_X           P1_TRACKBALL_X_EXT       P2_TRACKBALL_X
P2_TRACKBALL_X_EXT       P3_TRACKBALL_X           P3_TRACKBALL_X_EXT
P4_TRACKBALL_X           P4_TRACKBALL_X_EXT

P1_TRACKBALL_Y           P1_TRACKBALL_Y_EXT       P2_TRACKBALL_Y
P2_TRACKBALL_Y_EXT       P3_TRACKBALL_Y           P3_TRACKBALL_Y_EXT
P4_TRACKBALL_Y           P4_TRACKBALL_Y_EXT

P1_AD_STICK_X            P1_AD_STICK_X_EXT        P2_AD_STICK_X
P2_AD_STICK_X_EXT        P3_AD_STICK_X            P3_AD_STICK_X_EXT
P4_AD_STICK_X            P4_AD_STICK_X_EXT

P1_AD_STICK_Y            P1_AD_STICK_Y_EXT        P2_AD_STICK_Y
P2_AD_STICK_Y_EXT        P3_AD_STICK_Y            P3_AD_STICK_Y_EXT
P4_AD_STICK_Y            P4_AD_STICK_Y_EXT

OSD_1                    OSD_2                    OSD_3
OSD_4


Using the program
-----------------

mame [name of the game to run] [options]

for example:

   mame mspacman -nosound

...will run Ms Pac Man without sound

Options:

* -help / -?
Displays current MAME version and copyright notice

* -list / -ls
Displays a list of currently supported games.

* -listfull / -ll
Displays a list of game directory names + descriptions.

Configuration options
---------------------

* -createconfig / -cc
Creates the default MAME.INI file. All the following configuration options
can be permanently changed by editing this configuration file.

* -showconfig / -sc
Displays the current configuration settings. If you route this to a file,
you can use it as an INI file. For example, the command:
  mame -showconfig >mame.ini
is equivalent to -createconfig.

* -showusage / -su
Displays a summary of all the command line options. For options that are
not mentioned here, the short summary given by "mame -showusage" is
usually sufficient.

* -[no]readconfig / -[no]rc
Enables or disables the reading of the config files. When enabled (which
is the default), MAME reads the following config files in order:
  - MAME.INI
  - $MY_MAME.INI (i.e. if MAME was renamed MAME060.EXE, MAME parses
                  MAME060.INI here)
  - MAMED.INI  (if this is a debug build, i.e. MAMED.EXE)
  - VECTOR.INI (for vector games only)
  - DRIVER.INI (based on the source filename of the driver)
  - PARENT.INI (for clones only, may be called recursively)
  - GAMENAME.INI
The settings in the later ini's override those in the earlier ini's. So, for
example, if you wanted to disable hardware stretch in the vector games, you
can create a VECTOR.INI with the "hwstretch 0" line in it, and it will
override whatever hwstretch value you have in your MAME.INI.

* -[no]verbose / -[no]v (default: off)
Displays some diagnostic information at startup. IMPORTANT: when reporting
bugs, please run with mame -verbose and include the resulting information.
It can be very helpful in tracking down problems.

Windows path and directory options
----------------------------------

* -rompath / -rp
You can give a path (list of directories seperated by semicolons) of
directories to be searched for roms. The default is ROMS (that is, a directory
"roms" in the current directory).

* -samplepath / -sp
You can give a path (list of directories seperated by semicolons) of
directories to be searched for samples. The default is SAMPLES (that is, a
directory "samples" in the current directory).

* -inipath
You can give a path (list of directories seperated by semicolons) of
directories to be searched for INI-files. The default is .;ini (that is,
search in the current directory first, and then in the directory "ini"
in the current directory).

* -cfg_directory
After running a game, MAME stores some user changeable settings into
cfg_directory/gamename.cfg. Additionally, on the first start of MAME a
cfg_directory/default.cfg is created. The default is CFG.

* -nvram_directory
The original hardware of some games use non-volative ram chips to save their
configuration. The contents of these are saved into this directory. The
default is NVRAM.

* -memcard_directory
The original hardware of some games supports so-called memory cards. The
contents of these are stored here. The default is MEMCARD.

* -input_directory
Input recordings created by "-record" will be saved here and loaded by
"-playback". The default is INP.

* -hiscore_directory
If there exists a file HISCORE.DAT in the MAME directory, highscores may also
be saved for games that do not have the original hardware to support this. The
quality of this feature depends on the accuracy of the externally available
file HISCORE.DAT. The default is HI.

* -state_directory
MAME supports state saving for some games. These states will be saved here.
The default is STATE.

* -artwork_directory
Some games used extra artwork not created by electical circuits. MAME supports
such artwork in PNG image format, located in this directory. The default is
ARTWORK.

* -snapshot_directory
Screenshots will go here. The default is SNAP.

* -diff_directory
Directory for hard drive image difference files. The default is DIFF.

* -ctrlr_directory
This directory holds controller-specific input port mapping .ini files. The
default is CTRLR.

* -history_file
The default is HISTORY.DAT. Modifying the default may not work at the moment.

* -mameinfo_file
The default is MAMEINFO.DAT. Modifying the default may not work at the moment.

* -cheat_file
The default is CHEAT.DAT. Modifying the default may not work at the moment.

*********
IMPORTANT
*********
Please use the path, directory and file options ONLY in MAME.INI. Otherwise,
the outcome may be unpredictable and not consistent across releases.

Windows video options
---------------------

* -[no]autoframeskip / -[no]afs
Automatically determines the frameskip level while you're playing the game,
adjusting it constantly in a frantic attempt to keep the game running at
full speed. Turning this on overrides the value you have set for -frameskip
above. The default is ON (-autoframeskip).

* -frameskip / -fs
Specifies the frameskip value. This is the number of frames out of every 12
to drop when running. For example, if you say -frameskip 2, then MAME will
display 10 out of every 12 frames. By skipping those frames, you may be able
to get full speed in a game that requires more horsepower than your computer
has. The default value is -frameskip 0, which skips no frames.

* -[no]waitvsync
Waits for the refresh period on your computer's monitor to finish before
starting to draw video to your screen. If this option is off, MAME will
just draw to the screen at any old time, even in the middle of a refresh
cycle. This can cause "tearing" artifacts, where the top portion of the
screen is out of sync with the bottom portion. Tearing is not noticeable on
all games, and some people hate it more than others. However, if you turn
this option on, you will waste more of your CPU cycles waiting for the
proper time to draw, so you will see a performance hit. The default is OFF
(-nowaitvsync). This option requires -ddraw.

* -[no]triplebuffer / -[no]tb
Enables or disables "triple buffering". Normally, MAME just draws directly
to the screen, without any fancy buffering. But with this option enabled,
MAME creates three buffers to draw to, and cycles between them in order. It
attempts to keep things flowing such that one buffer is currently displayed,
the second buffer is waiting to be displayed, and the third buffer is being
drawn to. Unfortunately, due to some DirectDraw issues, this doesn't always
work out as well as it should. This is still being investigated. The default
is OFF (-notriplebuffer). This option required -ddraw and -nowindow.

* -[no]window
Run MAME in either in a window or full screen. The default is OFF (-nowindow).

* -[no]ddraw / -[no]dd
This is really just for testing. It disables the use of DirectDraw, which
removes a lot of the features of the video system
(-triplebuffer, -waitvsync, -resolution, -refresh, -switchres, -switchbpp, -
resolution, -hwstretch all won't work). It will generally run really slowly.
If anyone has a legitimate use for this option, I'd be curious to know. The
default is ON (-ddraw).

* -[no]hwstrectch / -[no]hws
MAME uses the hardware stretching abilities of modern graphic cards to
scale the game image to the requested resolution. Depending on the quality
of your graphic card and its drivers, this may be a fractional, antialiased
scaling (nice) or an integer, blocky scaling (not so nice). In any case,
you can disable this stretching altogether and let MAME do the scaling in
software, which is probably slower, though. The default is ON (-hwstretch).
Note: Vector games may actually look better with "-nohws".

* -resolution wxh[xd] / -r wxh[xd]
Specifies an exact resolution to run in. In full screen mode, MAME will try
to use the specific resolution you request. The width (w) and height (h) are
required; the color depth (d) is optional. If omitted or set to 0, MAME
will determine the mode auomatically. For example, -resolution 640x480 will
force 640x480 resolution, but MAME is free to choose the color depth.
Similarly, -resolution 0x0x32 will force 32-bit color depth, but allows
MAME to choose the resolution. The string "auto" is also supported, and is
equivalent to 0x0x0. In window mode, this resolution is used as a maximum
size for the window. The default is auto (-resolution auto). This option
requires -ddraw for full screen resolution switching.

* -refresh
Specifies a particular refresh rate to set your monitor to. If the refresh
rate is not found, or if this parameter is 0, the default DirectDraw refresh
rate is used. The default is -refresh 0. This option requires -ddraw
and -nowindow.

* -[no]scanlines / -[no]sl
Enables the classic MAME "scanlines" effect. The default is OFF
(-noscanlines). This option requires -nohwstretch.

* -[no]switchres
Enables resolution switching. This option is required for the -resolution
option to switch resolutions in full screen mode. On many modern video cards
with hardware stretching support, there is little performance penalty at
higher resolutions, so it is nice to be able to get rid of the monitor
resync time when you run in full screen mode. This is also useful on LCD
displays with a fixed resolution. The default is ON (-switchres). This
option requires -ddraw.

* -[no]switchbpp
Enables color depth switching. This option is required for the -resolution
option to switch color depths in full screen mode. This option is useful if
you normally run at 16, 24, or 32 bit color depth on your desktop, and want
to keep that color depth when you run MAME. The default is ON (-switchbpp).
This option requires -ddraw.

* -[no]maximize / -[no]max
Controls initial window size in windowed mode. If it is set on, the window
will initially stretch to the maximum supported size when you start MAME.
If it is turned off, the window will start out at the smallest supported
size. The default is ON (-maximize). This option requires -window.

* -[no]keepaspect / -[no]ka
Enables aspect ratio enforcement. When this option is on, the game's proper
aspect ratio (generally 4:3 or 3:4) is enforced, so you get the game looking
like it should. When running in a window with this option on, you can only
resize the window to the proper aspect ratio, unless you are holding down
the CONTROL key. By turning the option off, the aspect ratio is allowed to
float. In full screen mode, this means that all games will stretch to the
full screen size (even vertical games). In window mode, it means that you
can freely resize the window without any constraints. The default is ON
(-keepaspect).

* -[no]matchrefresh
Enables refresh rate matching. When enabled, MAME will try to find the
closest refresh rate match that is greater than the game's refresh rate. For
example, if the game runs at 57fps, and you have 60, 70, 75Hz refresh rates,
MAME will choose 60Hz. If the game runs at 61fps, then it will choose 70Hz.
This is intended mainly for those who have tweaked their video card's
settings to provide carefully matched refresh rate options. The default is
OFF (-nomatchrefresh). This option requires -ddraw and -nowindow.

* -[no]syncrefresh
Enables speed throttling only to the refresh of your monitor. This means
that the game's actual refresh rate is ignored; however, the sound code
still attempts to keep up with the game's original refresh rate, so you may
encounter sound problems. Again, this is intended mainly for those who have
tweaked their video card's settings to provide carefully matched refresh
rate options. The default is OFF (-nosyncrefresh). This option
requires -ddraw.

* -[no]throttle
Configures the default thottling setting. When throttling is on, MAME
attempts to keep the game running at the game's intended speed. When
throttling is off, MAME runs the game as fast as it can. The default is ON
(-throttle).

* -full_screen_brightness / -fsb
Some video cards adjust the brightness/gamma when they switch into full
screen mode. To counteract this, you can specify the -full_screen_brightness
value, which is a number between 0.1 and 2. 0.1 means 1/10th as bright as
the default, and 2 means twice as bright. Note that the hardware support for
this option is not present on all video cards. If you set a non-zero value,
you may get a warning if MAME was unable to set the brightness on your
card. The default is 0, which means that MAME will not attempt to adjust
the brightness on your video card at all. This option requires -ddraw
and -nowindow.

* -frames_to_run / -ftr
This option can be used for benchmarking. It tells MAME to stop execution
after a fixed number of frames. By combining this with a fixed set of other
command line options, you can set up a consistent environment for
benchmarking MAME performance.

* -effect
Apply various blitting effects to emulate the look of Arcade monitors. Using
these modes comes at the cost of reduced emulation speed, which is inherent to
these modes. The current implementation is already as fast as possible, using
self-modifying assembly code. For some of these, MMX is required. Possible
values:
  none         no effect (this is the default)
  sharp        no effect, but gives a sharper image than the default
  scan25       25% scanlines
  scan50       50% scanlines
  scan75       75% scanlines
  rgb3         a certain "monitor mask"
  rgb4         another one
  rgb6         another one
  rgb16        another one. Choose the one you like best.

* -screen_aspect
Give a screen aspect ration in the form X:Y where X is the horizontal and Y
the vertical part. Examples are 4:3 for most resolution settings on computer
monitors, 5:4 for the 1280x1024 resolution or 3:4 for turnable LCD's in the
turned position. The default is 4:3.

* -[no]sleep
Since MAME is running in a multitasking environment, it should be nice to
its fellow processes. Therefore, if MAME does not need all processing power
to emulate a game, it gives back already granted processor time to the
operating system. This may not work in every case, so it can be disabled
and MAME turned once again into a CPU hog. The default is ON (-sleep).

Input device options
--------------------

* -[no]mouse
Controls whether or not MAME looks for a mouse controller to use. When this
is enabled, you will not be able to use your mouse in Windows while playing
a game. If you want to get control of your computer back, you will need to
pause the game, or quit. The default is OFF (-nomouse).

* -[no]joystick / -[no]joy
Controls whether or not MAME looks for joystick/gamepad controllers. When
this is enabled, MAME will ask DirectInput about which controllers are
connected. The default is OFF (-nojoystick).

* -[no]steadykey / -[no]steady
Some games require two or more buttons to be pressed at exactly the same time
to make special moves. Due to limitations in the PC keyboard hardware, it can
be difficult or even impossible to accomplish that using the standard keyboard
handling. This option selects a different handling that makes it easier to
register simultaneous button presses, but has the disadvantage of making
controls less responsive. The default is OFF (-nosteadykey)

* - [no]keyboard_leds / -[no]leds
Since MAME uses an input device (keyboard) for output, this sort of belongs
here.  Using this option enabes/disables simulation of the game LEDs by the
keyboard LEDs. This works fine, but can lead to problems after exiting MAME
(i.e.  CAPS LOCK remains ON), so you can disable it here.  The default is
ON (-keyboard_leds).

* -ctrlr <controller>
Enables support for special controllers. Configuration files are provided for:
  hotrod    HotRod
  hotrodse  HotRod SE
  slikstik  SlikStik
  xarcade   X-Arcade
There is extra documentation available about this in the file ctrlr.txt.

* -a2d_deadzone / -a2d
If you play with an analog joystick, but the game requires digital input,
MAME needs to convert the signals. Here you can give the ratio of movement
along an axis that accounts for a digital signal. This option expects a
float in the range of 0.0 to 1.0. The default is 0.3.
Note: the current handling is not precise, as it does also implicitely set
the size of the arc which is interpreted as diagonal movement. This is a
known problem but it requires some major rework of the input handling code
to fix it.

MAME core video options
-----------------------

* -[no]norotate
* -[no]ror
* -[no]rol
* -[no]flipx
* -[no]flipy
These are the standard MAME rotation options. They are all OFF by default.

* -debug_resolution wxh / -dr wxh
Specifies the resolution of the debugger bitmap in the debug build. This
controls how big the debugger window will be, and therefore, how many
rows/columns it will display. The default value is 0x0, which sets the
automatic 640x480 default debugger size. Note that the debugger is only
available when running in a window.

* -gamma
This controls the global gamma correction in the game. It is the same gamma
that is applied when you bring up the on-screen-display within MAME. The
default is 1.0.

* -brightness / -bright
This controls the global brightness  correction in the game. It is the same
brightness that is applied when you bring up the on-screen-display within
MAME. The default is 1.0.

MAME core vector options
------------------------

* -[no]antialias / -[no]aa
Antialiasing for vector games. The default is ON (-antialias).

* -[no]translucency / -[no]tl
Enables or disables vector translucency. Colors of crossing vector beams
will be merged. The default is ON (-translucency).

* -beam
Sets the width in pixels of the vectors. This option expects a float in the
range of 1.00 through 16.00 as argument. The default is 1 (1 pixel wide).

* -flicker
Makes the vectors flicker. This option requires a float argument in the
range of 0.00 - 100.00 (0=none, 100=maximum). The default is 0.

* -intensity
Sets the intensity correction for the beam. Higher values give a
brighter beam. This option expects a float in the range of 0.5 through
3.0 as argument.  The default is 1.5.

MAME core sound options
-----------------------

* -samplerate / -sr
Sets the audio sample rate. Smaller values (e.g. 11025) cause lower audio
quality but faster emulation speed.  Higher values (e.g. 44100) cause
higher audio quality but slower emulation speed. The default is 44100.

* -[no]samples
Use samples if available. The default is ON (-samples).

* -[no]resamplefilter
If the samplerate of the original hardware does not match the samplerate
actually used by an integer factor, apply a filter. This is more faithful to
the original sound, however, the sound may not be as crisp. The default is ON
(-resamplefilter).

* -[no]sound
Enable or disable sound alltogether. The default is ON (-sound).

* -volume / -vol
Sets the startup volume. It can later be changed with the On Screen Display
(see Keys section). The volume is an attenuation in dB: e.g., "-volume -12"
will start with -12dB attenuation. The default is 0.

MAME core misc options
----------------------
* -[no]artwork / -[no]art
Enable or disable usage of additional artwork (backdrops, overlays, etc.).
The default is ON (-artwork).

* -[no]use_backdrops / -[no]backdrop
Enables/disables the display of backdrops. The default is ON (-use_backdrops).

* -[no]use_overlays / -[no]overlay
Enables/disables the display of overlays. The default is ON (-use_overlays).

* -[no]use_bezels / -[no]bezel
Enables/disables the display of bezels. The default is ON (-use_bezels).

* -[no]artwork_crop / -[no]artcrop
This will crop the artwork to the game screen area only. The default is OFF
(-noartwork_crop).

* -artworkresolution / -artres
Scale the game by this factor to accommodate for higher resolution artwork.
The default is 0 (auto).

* -[no]cheat / -[no]c
Cheats, like the speedup in Pac Man or the level-skip in many other games, are
disabled by default. Use this switch to turn them on. The default is OFF
(-nocheat).

* -[no]debug
Activates the integrated debugger.  During emulation, press the Tilde key
(~) to activate the debugger. This is available only if the program is
compiled with MAME_DEBUG defined. The default is OFF (-nodebug).

* -playback / -pb
Expects a filename as parameter. Play back all game inputs from from file
INP/filename.inp. The gamename is contained in this file, therefore a
gamename needs not be given on the commandline.

* -record / -rec
Expects a filename as parameter. All game inputs are written to the file
INP/filename.inp.

* -[no]log
Creates a log of illegal memory accesses in ERROR.LOG. The default is OFF
(-nolog).

Other MAME frontend options
----------------------------

Note: By default, all the '-list' commands below write info to the screen. If
you wish to write the info to a textfile instead, add this to the end of your
command:

  > filename

...where 'filename' is the textfile's path and name (e.g., c:\mame\list.txt).

 - - -

* -list / -ls
Displays a list of currently supported games.

* -listfull / -ll
Displays a list of game directory names + descriptions.

* -listgames
List the supported games, year, manufacturer.

* -listdetails
Displays a detailed list of drivers and the hardware they use.

* -gamelist
Used internally to produce gamelist.txt

* -listsourcefile
Displays the source file (in the drivers directory) containing the driver
for the specified game.  Useful for finding which driver a game runs on in
order to fix bugs.

* -listinfo / -li
List comprehensive details for all of the supported games.
The output is quite long, so better redirect this into a file.

* -listclones / -lc
Lists clones of the specified game. When no game is specified, this
generates a list of all MAME-supported clones.

* -listsamdir
List directory names for samples. Some clones can share their samples with
their parents (no pun intended).

* -listcrc
List CRC32 checksums of rom files

* -listdupcrc
Find romfiles with same CRC32 (for developers).

* -listwrongmerge / -lwm
An attempt to catch careless developers.

* -listromsize / -lrs
Some statistical data.

* -listpalettesize / -lps
More statistical data.

* -listcpu
Even more statistical data.

* -wrongorientation
Another attempt to catch careless developers.

* -wrongfps
And the next attempt to catch careless developers.

* -[no]clones
Used together with the list commands, enables/disables listing of alternate
("cloned") versions of the same game. The default is ON.

* -listroms
Displays ROMs required by the specified game.

* -listsamples
Displays samples required by the specified game.

* -verifyroms
Checks specified game(s) for missing and invalid ROMs.  Adding "*" checks all
available games.

* -verifysets
Checks specified game(s) and reports its status.  Adding "*" checks all
available games. Terse output.

* -vset
Checks specified game(s) and reports its status.  Adding "*" checks all
available games. Slightly more verbose output.

* -verifysamples
Check selected game for missing samples.  Adding "*" checks all available
samples.

* -vsam
Check selected game for missing samples.  Adding "*" checks all available
samples.

* -romident
Attempts to identify ROM files, if they are known to MAME, in the specified
.zip file.  Can be used to try and identify Romsets taken from unknown
boards.

* -isknown
Very terse romident.

* -sortname
* -sortdriver
Used internally for creating gamelist.txt

Keys
----
Tab          Toggles the configuration menu
Tilde        Toggles the On Screen Display
             Use the up and down arrow keys to select the parameter (global
             volume, mixing level, gamma correction etc.), left and right to
             arrow keys to modify it.
P            Pauses the game
Shift+P      While paused, advances to next frame
F1           toggle raster effects in some games
F2           Service Mode
F3           Resets the game
F4           Shows the game palette, decoded GFX, and any tilemaps
             Cursor left/right changes between palette, GFX and tilemaps
             Curser up/down cycle through valid palettes
             Page up/down scroll through the palette and GFX
             Page up/down, D, G scroll the tilemap display
             Ctrl & Shift are modifiers to change movement speed.
             F4 or Esc returns to the emulation.
             Note: Not all games have decoded graphics and/or tilemaps.
F5           Toggle debugeer (only in debug build)
F6           Toggle cheat mode (if started with "-cheat")
F7           Load a 'Save State'
             You will be requested to press a key to determine which
             Save State you wish to load.
             Note that the 'Save State' feature is for developing drivers and
             not intended for users. It is incomplete and works only on a
             number of drivers. Use at own risk.
Shift+F7     Create a 'Save State'
             Requires an additional keypress to identify the state. You must
             have a STA directory or MAME may crash.
F8           Decrease frame skip on the fly
F9           Increase frame skip on the fly
F10          Toggles speed throttling
F11          Toggles speed display
Shift+F11    Toggles profiler display (debug builds only)
F12          Saves a screen snapshot. The default target directory is SNAP. You
             must create this directory yourself; the program will not create
             it if it doesn't exist.
ESC          Exits emulator


0.61

These drivers have improved GRAPHICS:
-------------------------------------

- Fixed tilemaps in Sotsugyo Shousho. [Nicola Salmoria]

- Fixed graphics in Pinbo. [Zsolt Vasvari]

- Improved raster effects handling in NeoGeo games. [Razoola]

- Improved gfx in HAL21. [Acho A. Tang]

- Preliminary support for raster effects in CPS2 games. [Barry Rodewald]

- Added alpha blending to Psikyo games. [Paul Priest]

These drivers have improved SOUND:
----------------------------------

- Fixed Y8950 confincting with YM3812/YM3526 in some SNK games.
  [Jarek Burczynski]

- Fixed sound in Spinal Breakers. [Nicola Salmoria]

- Sound in HAL21. [Acho A. Tang]

Other drivers changes:
----------------------

- Fixed controls & gfx in Outrun and Space Harrier. [Bryan McPhail]

- Simulated protection in S.P.Y. [Acho A. Tang]

- Fixed Rip Cord. [Acho A. Tang]

- Fixed collision detection in Labyrinth Runner and Fast Lane. [Acho A. Tang]

- Fixed protection in Funky Jet [Bryan mcPhail, Stephane Humbert]

- Several fixes to the F3 games. [Shiriru, Bryan McPhail]

Changes to the main program:
----------------------------

- Light gun support. [Bryan McPhail]

Source:
-------

- Important for porters: major redesign of the OS interface for display update.
  - VIDEO_SUPPORTS_DIRTY flag removed
  - osd_mark_dirty() removed
  - osd_create_display() now takes an extra parameter rgb_components
  - osd_set_visible_area() removed
  - osd_allocate_colors() removed
  - osd_modify_pen() removed
  - osd_update_video_and_audio() now takes a mame_display pointer
  - osd_debugger_focus() removed
  - osd_set/get_gamma() removed
  - osd_set/get_brightness() removed
  [Aaron Giles]

- Completely redesigned the artwork handling. Any game can now use artwork,
  with no specific support in the driver. Configuration is done with external
  .art files. [Aaron Giles]
  -[no]artcrop -- crops artwork to the game screen area only
  -[no]backdrop -- enables/disables backdrop art
  -[no]overlay -- enables/disables overlay art
  -[no]bezel -- enables/disables bezel art

- The Windows version now rotates the screen at blit time instead of requiring
  the core to do so. Since the new code is usually faster than the old one, and
  it allows for great simplifications in the core, rotation at blit time will
  probably be a requirement in next release. Porters are advised to begin
  implementing it now. [Aaron Giles]

- New YM-2413 emulator. [Fabio R. Schmidlin, Charles Mac Donald]

MAME Testers bugs fixed (there are probably more)
-----------------------

mk3060gre
ozmawars055gra
alpine057gra     [Stephane Humbert]
elevator057gra   [Stephane Humbert]
tinstar36b4gra   [Stephane Humbert]
kof94057gre      [RYO]
tokib059red      [David Graves]
dogyuun058yel    [Quench]
battleg37B10gre  [Quench]
batrider058gre   [Quench]
cchasm1059red    [Paul Priest]
dspirit37b6gre   [Acho A. Tang]
rompers36rc2gre  [Acho A. Tang]
rompers37b4gre   [Acho A. Tang]
splatter336b6gre [Acho A. Tang]
splatter336b9yel [Acho A. Tang]
splatter137b5gre [Acho A. Tang]
splatter237b5gre [Acho A. Tang]
splatter057gre   [Acho A. Tang]
dangseed060yel (needs checking)
bjourney37b16gre [Acho A. Tang]
ncombat36b3yel   [Acho A. Tang]
ncommand37b2gre  [Acho A. Tang]
overtop37b13red
sdodgeb37b13yel (needs checking)
iganinju37b14yel [Kale]
iganinju37b1yel  [Kale]
iganinju055yel   [Kale]
scudhamm058gre   [Mike Herrin]
adstick37b16gre  [Robin Merrill]
pedal055yel      [Robin Merrill]
toobin058yel     [Robin Merrill]

New games supported:
--------------------

Super Slams [David Haywood]
Macross Plus [David Haywood]
Quiz Bisyoujo Senshi Sailor Moon - Chiryoku Tairyoku Toki no Un [David Haywood]
Jump Kids [David Haywood]
Toffy [David Haywood]
Super Toffy [David Haywood]
Battle Cross [David Haywood]
Gulf War II [David Haywood]
Bubble 2000 [David Haywood]
4 Fun in 1 [David Haywood]
Kick Goal [David Haywood, Nicola Salmoria]
U.S. Games collections [David Haywood, Nicola Salmoria]
Wily Tower [Nicola Salmoria]
Lethal Crash Race [Nicola Salmoria]
F-1 Grand Prix [Nicola Salmoria]
Dog-Fight [Nicola Salmoria]
Find Out [Nicola Salmoria]
Golfing Greats [Nicola Salmoria]
Sankokushi [Nicola Salmoria]
Super Shanghai Dragon's Eye [Bryan McPhail]
Mechanized Attack [Bryan McPhail]
Beast Busters [Bryan McPhail]
Thunder Zone / Desert Assault [Bryan McPhail]
The Next Space [Bryan McPhail, Acho A. Tang]
Bakutotsu Kijuutei [Acho A. Tang]
Equites [Acho A. Tang]
Bull Fighter [Acho A. Tang]
The Koukouyakyuh [Acho A. Tang]
Splendor Blast [Acho A. Tang]
High Voltage [Acho A. Tang]
Red Robin [Zsolt Vasvari]
Net Wars [Zsolt Vasvari]
Clay Shoot [Zsolt Vasvari]
Mr. Kougar [Zsolt Vasvari]
Car Polo [Zsolt Vasvari]
Dingo [M*A*S*H, Zsolt Vasvari]
Birdie King [M*A*S*H]
Inferno [Juergen Buchmueller, Aaron Giles]
Dribbling [Aaron Giles]
Triple Hunt [Stefan Jokish]
Orbit [Stefan Jokish]
Monte Carlo [Stefan Jokish]
Tube Panic [Jarek Burczynski]
Roller Jammer [Jarek Burczynski]
Kikiippatsu Mayumi-chan [Uki]
Knights of Valour / Sango [ElSemi]
Battle Bakraider [Quench]

New clones supported:
---------------------

ESP Ra.De (International Ver 1998 4/22)
ESP Ra. De. (Japan Ver 1998 4/21)
The Outfoxies (Japan)
Tactician (set 2)
Battles (=Xevious)
Power Spikes (World)
Condor (= Phoenix)
Grind Stormer (set 2)
Battle Garegga (set 2)
Hell Fire (1 player)
Same! Same! Same! (2 players)
Gravitar (prototype)
Lunar Battle (= Gravitar)
Super Cobra (Sega)
S.P.Y. (World)
Air Buster (English)
Baraduke (set 2)
Metro-Cross (set 2)
Red Hawk (= Stagger I)
Bagman (bootleg on Galaxian hardware)

==========================================================================

0.60

These drivers have improved GRAPHICS:
-------------------------------------

- Fixed disappearing enemies in later levels of Batsugun. [Kale]

- Fixed colors in Wec Le Mans and wrong graphics in Hot Chase. [Acho A. Tang]

These drivers have improved SOUND:
----------------------------------

- Improved Irem GA20 emulation, used by M92 games. [Acho A. Tang]

Other drivers changes:
----------------------

- Fixed several problems in Kiki KaiKai. [Acho A. Tang]

- Several fixes to Psikyo games. [Paul Priest, David Haywood]

- Several fixes to nemesis.c. [Hau]

Changes to the main program:
----------------------------

- Support for external configuration files for special controllers; this
  replaces the -hotrod and -hotrodse options. See ctrl.txt for the detailed
  explanation. [Ron Fries]

- Complete rewrite of the cheat engine. [Ian Patterson]

Source:
-------

- New function memory_set_unmap_value(), to specify the value returned when an
  unmapped memory address is read. [Aaron Giles]

- Fixes to Y8950 sample playback. [Acho A. Tang]

- Complete rewrite of YM3812/YM3526/Y8950 emulation, verified on the real chip.
  [Jarek Burczynski]

- osd_opl_control() and osd_opl_write() removed; direct access to the
  SoundBlaster OPL chip is no longer useful.

MAME Testers bugs fixed (there are probably more)
-----------------------

blmbycar059red
uopoko059red
gcpinbal059red
jitsupro059red
metroc059red
phelios059red
paclandc059red
ncv1058red
av2mj059red
fromancec058red
neogeoc37b15gre
fround056red
bioatack37b6gre
crush057gre
driverc056ora
batsugun37b6gre

New games supported:
--------------------

Judge Dredd [Aaron Giles]
Primal Rage [Aaron Giles]
Road Riot's Revenge [Aaron Giles]
World Class Bowling [Aaron Giles]
Tactician [Nicola Salmoria, Stephane Humbert]
The Masters of Kin [Nicola Salmoria]
IQ Block [Nicola Salmoria, Ernesto Corvi]
Taxi Driver [Nicola Salmoria]
Block Gal [Angelo Salese]
Drag Race [Stefan Jokisch]
Pool Shark [Stefan Jokisch]
The Outfoxies [Phil Stroffolino]
Oriental Legend [ElSemi, David Haywood]
News [David Haywood]
Shadow Force [David Haywood]
The Legend of Silk Road [David Haywood, Stephane Humbert, R.Belmont]
Miss Bubble 2 [David Haywood]
Black Heart [from Raine]
Mustang [from Raine]
Many Bloc [David Haywood, Stephan Humbert]
Xyonix [David Haywood, Stephan Humbert, Nicola Salmoria]
Hyper Pacman [David Haywood, Stephan Humbert]
Mille Miglia 2: Great 1000 Miles Rally [David Haywood, Stephan Humbert]
Formation Z [Acho A. Tang]
Tank Busters [Jarek Burczynski]
Hyper Duel [E. Watanabe]

New clones supported:
---------------------

Pengo (bootleg)
Bone Crusher (= Knuckle Joe)
Fighter & Attacker (= F/A)
Knuckle Heads (World)
Hero in the Castle of Doom (Donkey Kong conversion)
Blood Storm (v1.10)
Fighting Golf (set 2)
Clowns (rev 1)
Magic Worm (= Centipede)
Hot Shots Tennis (V1.0)
Strata Bowling (V1)
Pirate Pete (= Jungle King)
Street Fighter (prototype)
Nebulas Ray (World)
Gun Bird (World)
Bubble Symphony (Europe)
Space Invaders '95 (US)
C.O.W. Boys of Moo Mesa (World)
R-Type Leo (World)
Dragon Punch (= Sports Match)

==========================================================================

0.59

Other drivers changes:
----------------------

- Loads of fixes to input ports etc. in several drivers. [Stephane Humbert]

- Fixed Rainbow Islands and Rainbow Islands Extra c-chip emulation
  [Robert Gallagher, Tormod Tjaberg]

- Fixed Super Stingray and Kyros, and most problems in Gold Medalist.
  [Acho A. Tang]

Changes to the main program:
----------------------------

- [Windows] Some changes to use less CPU time when it's not needed.
  Use -nosleep to disable this behaviour during gameplay. [Aaron Giles]

- [Windows] MMX implementation of the tilemap drawing code, providing a 5-10%
  speed increase with some games. [Andrea Mazzoleni]

Source:
-------

- Rewritten the UPD7759 emulator (used by TMNT etc). [Olivier Galibert]

- Support for compressed hard disk images. [Aaron Giles]

- New function tilemap_set_palette_offset() to set a global palette offset
  without having to use tilemap_mark_all_tiles_dirty(). [Aaron Giles]

MAME Testers bugs fixed (there are probably more)
-----------------------

eto37b9gre
captaven058gre_2
captaven058gre_5
thndrx2058red
punchoutc37b15gre
skyadvnt136b8gre
gangwars37b15gre

New games supported:
--------------------

Police Trainer [Aaron Giles]
Pass [David Haywood, Stephan Humbert]
Super Pinball Action [David Haywood, Stephan Humbert]
Sol Divide [David Haywood]
Strikers 1945 II [David Haywood]
Space Bomber [David Haywood]
Daraku Tenshi - The Fallen Angels [David Haywood]
Gunbird 2 [David Haywood]
Mahjong Sisters [Uki]
Quiz Gakuen Paradise [Uki]
Quiz DNA no Hanran [Uki]
Quiz Gekiretsu Scramble [Uki]
Wild West C.O.W.boys of Moo Mesa [R.Belmont]
Bucky O'Hare [R.Belmont]
Super Bug [Stefan Jokisch]
Paddle Mania [Acho A. Tang]
Scorpion [Stephane Humbert]

New clones supported:
---------------------

Dynasty Wars (World)
Captain America (Japan)
Gradius 3 (World?)
Magical Crystals (World)
Crystal Castles (version 4)
Moon Cresta (Nichibutsu set 2)
Galaxian (Midway, old rev)
Pisces (original)
Haunted Castle (Japan version N)
Beraboh Man (Japan version B)

==========================================================================

0.58

Other drivers changes:
----------------------

- Fixed (?) collision detection in Thunder Cross. [Eddie Edwards]

- Fixed the VLM5030 emulation (Punch Out, Track & Field, Yie-Ar Kung Fu etc.).
  [Tatsuyuki Satoj]

Changes to the main program:
----------------------------

- [windows] New blitting effect "-effect sharp". This gives a sharper image
  than the default. [John IV]

Source:
-------

- New macros have been added to declare common callback functions and enforce
  naming conventions. All drivers have been converted to the new macros:

      void init_drivername()            -> DRIVER_INIT( name )
      int generate_int()                -> INTERRUPT_GEN( func )
      void name_init_machine()          -> MACHINE_INIT( name )
      void nvram_handler()              -> NVRAM_HANDLER( name )
      void name_vh_convert_color_prom() -> PALETTE_INIT( name )
      int name_vh_start()               -> VIDEO_START( name )
      void name_vh_stop()               -> VIDEO_STOP( name )
      void name_vh_eof()                -> VIDEO_EOF( name )
      void name_vh_screenrefresh()      -> VIDEO_UPDATE( name )

- Major change to the way machine drivers are set up. A series of macros is
  now available (defined in driver.h) to "build up" a machine driver. The
  ordering of items in the machine driver is arbitrary, apart from CPU-specific
  data, which is tied to the most-recently referenced CPU. With this new format,
  machine drivers can now be built by modifying another machine driver,
  providing a primitive inheritance mechanism. See any driver for an example
  of the new format. See mcr.c for a more complex example of inheritance.

- New functions auto_bitmap_alloc() and auto_bitmap_alloc_depth() are now
  available to create automatically managed bitmaps. Combined with auto_malloc(),
  there is no need for a video_stop function in most cases. All existing
  drivers have been modified to take advantage of these features.

- The old interrupt system has now been made officially obsolete. This means
  that the function cpu_cause_interrupt() is no longer available; you must use
  cpu_set_irq_line() or cpu_set_irq_line_and_vector() instead. It also means
  that a number of old/conflicting constants have been removed. In addition,
  interrupt generation callbacks for CPUs no longer return an IRQ line or
  vector. Instead, the interrupt callback must actively cause the interrupt
  via cpu_set_irq_line(). All existing drivers have been updated to these
  changes.

- New interrupt callback functions: nmi_line_pulse(), nmi_line_assert(),
  irqn_line_hold(), irqn_line_pulse(), irqn_line_assert(). These functions
  replace the old interrupt() and nmi_interrupt() callbacks and can be used
  directly as interrupt callbacks.

- The function tilemap_set_clip() has been removed. In its place, there is a
  new 'cliprect' parameter to tilemap_draw(). All existing drivers have been
  updated to support this change.

- In preparation for partial updating support, the parameters to video_update
  have changed. A new parameter 'cliprect' has been added, which should be
  honored. In the future, the parameter will contain the subset of the screen
  to render; for now, it just contains Machine->visible_area. In addition,
  the 'full_refresh' parameter is gone; update functions must always redraw
  the requested portion of the bitmap. Some drivers have been updated to fully
  support the cliprect; others still need to be updated.

- Two new functions have been added to the timer system. timer_create() creates
  a new "permanent" timer, and timer_adjust() adjusts the scheduling of that
  timer. This is now the only way to dynamically manipulate a timer. The old
  functions timer_set() and timer_pulse() are still around, but they no longer
  return a handle to the timer they create. Timers created with timer_create()
  should be created at initialization time, not dynamically. Timers also now
  participate in the automatic resource tracking, so there is no need to
  explicitly dispose of them. All existing drivers have been updated with the
  necessary changes.

- Basic generic NVRAM handlers have been added. For a number of games, it is
  sufficient to point the global variables 'generic_nvram' and
  'generic_nvram_size' to the location and size of the NVRAM area. In the
  machine driver, you can now specify 'generic_0fill' or 'generic_1fill' to
  request a generic NVRAM handler. The 0fill and 1fill refer to how the memory
  is initialized in the absence of an .nv file.

- The following old functions and macros have now been fully deprecated:

     cpu_get_pc()           -> activecpu_get_pc()
     cpu_get_sp()           -> activecpu_get_sp()
     cpu_getpreviouspc()    -> activecpu_get_previouspc()
     cpu_get_reg()          -> activecpu_get_reg()
     cpu_set_reg()          -> activecpu_set_reg()
     cpu_set_op_base()      -> activecpu_set_op_base()
     cpu_get_pc_byte()      -> activecpu_get_pc_byte()
     READ_WORD              -> (no equivalent)
     WRITE_WORD             -> (no equivalent)

- New function force_partial_update(), call this to force a partial update to
  occur up to and including the specified scanline. [Aaron Giles]

- ARM CPU emulation [Bryan McPhail, Phil Stroffolino]

MAME Testers bugs fixed (there are probably more)
-----------------------

rampart057yel
artwork057gre
mrgoemon36b16gre
pigout37b4gre

New games supported:
--------------------

Gun Force 2 [Chris Hardy]
Angel Kids [David Haywood]
Noboranka [Stephane Humbert]
Steel Force [David Haywood, Stephan Humbert]
Mug Smashers [David Haywood, Stephan Humbert]
Captain America [Bryan McPhail]
Lemmings [Bryan McPhail]
Flyball [Stefan Jokisch]
Grand Cross [David Graves]

New clones supported:
---------------------

Mayday (set 3)
Alpha One (prototype of Major Havoc)
Blaster (kit)
Buck Rogers (encrypted)


.topic 0x809d04fe
Analog joystick deadzone
.topic 0x809f0425
Anti-alias vectors
.topic 0x809e040d
Crop artwork to game dimensions
.topic 0x809e04fc
Artwork resolution [higher = slower]
.topic 0x809e0479
Use background artwork
.topic 0x809c04f5
Set aspect ratio, 4:3, 5:4
.topic 0x809c04f4
Set aspect ratio, 4:3, 5:4
.topic 0x809c0480
Skip frames as needed to maintain full speed
.topic 0x809e040c
Use backdrop artwork if available
.topic 0x809f0426
Set the beam width in pixels for vector games
.topic 0x809e0410
Use bezel artwork if available
.topic 0x809c047a
Adjust the DDraw brightness of full-screen game
.topic 0x809a0415
Adjust brightness of game screen
.topic 0x80ad04f8
Allow other programs to see game played
.topic 0x809e0409
Enable built in game cheats
.topic 0x809c0411
Use Direct Draw for graphic routines
.topic 0x809d04d0
Set game key control mapping method
.topic 0x809a04ee
Use effects to simulate original monitor resolution
.topic 0x80a9049a
Hide Clones and show Original games
.topic 0x80a904d5
Display games based on text input
.topic 0x80a9049b
Hide Neo-Geo games in the current folder
.topic 0x80a90499
Hide Non-Working and show Working games
.topic 0x80a904a3
Hide Original games and show Clones
.topic 0x80a90496
Hide Raster games and show Vector games
.topic 0x80a90498
Hide Available game
.topic 0x80a90495
Hide Vector games and show Raster game
.topic 0x80a904a4
Hide Working games and show Non-Working games
.topic 0x809f0427
Adjust the amount of flicker in vector games
.topic 0x809a0428
Flip the display sideways
.topic 0x809a0429
Flip the display upside down
.topic 0x809c03f4
Allows skipping frames
.topic 0x809a0414
Adjust gamma correction in games
.topic 0x806504cb
Display contents of history.dat if present
.topic 0x809c04dc
Enable hardware stretch if supported by videocard [use 16bpp, or 32bpp]
.topic 0x809f0428
Adjust the intensity/brightness of vectors
.topic 0x809d03ed
Use direct joystick as input device
.topic 0x80ad04f7
Allows navigating the UI with the joystick
.topic 0x809a04e0
Enforce set aspect ratio when sizing windowed game
.topic 0x80b204d1
Notes language used for in-game menus
.topic 0x80b204d4
Select and choose language for in-game menus
.topic 0x809e040f
Use keyboard LEDs as game indicators
.topic 0x809e040a
Turn on error logging
.topic 0x809c04e1
Adjust monitor refresh to match original game's refresh
.topic 0x809a04df
Start game at maximum size in windowed mode
.topic 0x809a04e3
Use internal rotation setting
.topic 0x809e040e
Use overlay artwork if available
.topic 0x809c0486
Reset all properties to the original values
.topic 0x809c04ec
Set monitor refresh rate
.topic 0x809c04e8
Set video color depth
.topic 0x80aa04a2
Reset default game options to installation defaults
.topic 0x80aa049f
Remove custom filters from all game folders
.topic 0x80aa049d
Reset all games to use default options
.topic 0x80aa049e
Reset the User Interface to its default state for fonts, colors, window position, and splitter position
.topic 0x809a03f6
Rotate the game screen
.topic 0x809b041e
Sample rate: 11025, 22050 or 44100
.topic 0x809b04cc
Use sound samples
.topic 0x809a0402
Horizontal Scan Lines [cannot use with hardware stretch]
.topic 0x809c03ef
Available screen resolutions in full screen mode
.topic 0x809e040b
Use less CPU time slices when possible
.topic 0x80ad04b9
Search for new games
.topic 0x80ad04ba
Warn if configuration data is from a different version of MAME32
.topic 0x809d04f3
Enable multiple key presses at the expense of more sluggish control
.topic 0x809c04de
Allow changing from Windows desktop color depth
.topic 0x809c04dd
Allow changing from Windows desktop resolution
.topic 0x809c04e2
Sync game to monitor's refresh rate
.topic 0x809a04e5
Throttle games to original FPS speed
.topic 0x809f0476
Enable vector game translucency
.topic 0x809c04ce
Enable triplebuffering to potentially alleviate tearing in scrolling games
.topic 0x809c041b
Restore all properties to default option values
.topic 0x809b04d8
Resample sounds if not an integer match
.topic 0x809d04e4
Allow mouse use for analog control based games
.topic 0x809b04d9
Enable sound in games
.topic 0x809b04c9
Adjust initial sound volume
.topic 0x809c04da
Wait for monitors vertical sync before drawing frame
.topic 0x809a0484
Play game in a window
.topic 0x809d04f3
Allow use of lightgun for analog shooting games