MameUI Overview & History

MameUI 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 2003+. Combined with the original ROMs from these arcade machines, MameUI will display and play the games on a PC. The software thinks it’s still running on its original box. MameUI 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 many, it’s easier to click the icon of the game.

1997.02.05 - In the beginning, Italian programmer and arcade 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. Michael then coordinated, maintained the source, and produced the releases. Mike Haaland and John Hardy IV joined the project in late 1997. Mike would wholly revamp the user interface to its current state and continue collaborating on core development. John provided testing, WIP updates, artwork, and served as the external point of contact for the team. 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, displays a message, then closes].

2001.07.24 - Mame32 was re-positioned, with the familiar GUI grafted onto the new Mame Windows engine. Mame32 is currently maintained by Kirmse, Haaland, and Hardy and is now released by John IV shortly after Mame on the MameUI site.

2007.11.11 - Mame32 was rebranded as MameUI to avoid confusion of the 64bit build and the core version. It is compiled as MameUI32 and MameUI64 for the different target platforms.

2007-11-12 01:57 PM -0800 / john iv


MameUI Whatsnew

Changes to MameUI

v.122.1

  • Fixed long standing issue where icons would corrupt and return to their defaults if scrolled through entire game list [René Single / John IV]

v.120.2

  • Rebranded Mame32 to MameUI32 and MameUI64 to avoid confusion with the baseline builds that are now being released as 64bit native apps. [Mike Haaland / John IV]

v.120.2

  • Added support for a 'nonworking.png' which will appear for non-working games in the art panes if the specific game *.png doesn't exist and the game is flagged as non-working in the core. [Mike Haaland / John IV]

v.118.6

  • Added game search/filter to the toolbar. Works similarly to the Ctrl-F filter but doesn't search on manufacturer, driver name, or shortname. Added PCB art pane view. [René Single / John IV]

v.118.5

  • Per MameDEV request; removed the ROMs view customization item, and reworked auditing to not show an icon change state for unavailable sets in all games folder view. This was to bring MameUI into compliance w/ the section of the Mame terms of usage which states 'Do not provide a means of generating a list of games that specifically identifies those games for which the user does not have image files'. Audit functionality and game search on start is still present to populate the 'Available' folder view. [Mike Haaland]
  • Promoted screen orientation folder view to 'horizontal' and 'vertical' top level views and added them to the Ctrl-F filter dialogue. [Mike Haaland]

v.118.2

  • Fixed all recent options related bugs as well as expanding the functionality of the audit control so it doesn't cut off anymore. [Mike Haaland]

v.110.2

  • Re-arranged UI elements in Options menus. [Radius]

v.107.1

  • Updated the help file to include the new UI support for the core's latest video changes. [John IV]

v.107

  • Added UI support for the large amount of core changes made by Aaron Giles for the new video renderer. [René Single / John IV]
  • Created the new scanline *.png files in \artwork for use with the new -effect switch. [John IV]

v.105.2

  • Added BIOS folder view on the left pane. This folder lists all the BIOSes supported by MameUI and allows launching them as if turning on a machine without a cartridge etc. in it, like the Neo-Geo. [René Single]

v.104.7

  • Added properties for driver.c and vector on secondary click shortcut menu. This is the same as altering the properties on the vector folder and the \source\driver folder on the left pane. [René Single / John IV]

v.104.4

  • Added support for priority switch, now a slider. Note: there may be system related issues going to setting 1 (lagging keyboard, joystick controls), default is 0. [René Single]
  • Removed multi-screen folder view on left pane as that flag has been removed in the core. [René Single]
  • Added mngwrite option to launch a game and immediately begin recording a MNG movie file. [René Single]

v.101.1

  • Added support for savestate game folder view on left. Added switch for autosave. [René Single]

v.100

  • New Galaxian homage about.bmp. [John IV]

v.99.3

  • Re-implemented history.dat for MameUI which had its support removed from core. [René Single]

v.98.3

  • UI dialogues realignment. [Radius]
  • Added ability to type in Mame shortname in the Ctrl-F text filter, i.e. 'ddonpach'. [John IV / Mash]

v.96.4

  • First pass at adding support for the analogue and digital controller section of the core. [René Single]

v.95.5

  • Added core's -screen switch to UI to allow playing games on secondary/tertiary monitors in multi-head setups. [René Single]

v.90.3

  • More UI dialogues realignment. [Radius]

v.89.3

  • Re-aligned UI elements in Options menus and added some XP-style icons. [Radius]

v.88.1

  • Added switch to toggle validity checking in the binary. [René Single]

v.87.1

  • Increased start up speed via driver info caching. [Sauro Puccini / Chris Kirmse]

v.86.1

  • Reworked MameUI folder properties and their initial memory allocation. Results in halving MameUI’s memory footprint on most systems. [René Single]

v.86

  • Reworked MameUI multisession behaviour. When launching a game, MameUI will now dynamically resize itself in memory rather than spawning a separate core process, saving some memory (this new feature impacts the icons on windowed mode playing and the show caption option). [Chris Kirmse]
  • Re-added support for custom controller selection again in the controller tab. [Chris Kirmse]

v.84.5

  • Cleaned up the Options • Interface Options menu, adding sliders. [René Single]
  • Internal clean-ups to provide support for the new core changes. [Chris Kirmse / Nathan Woods]

v.84.2

  • Added feature request to place a border around the artwork in the art pane, user selectable size and color (0=no border). [René Single / John IV]
  • Added dump status folder view, an easy reference for un-dumped and badly dumped ROMs for folks who may be in a position to update them. [René Single]
  • Expanded game list font control to go beyond the original 16 color choices allowing access to a greater UI customization (see last color on drop down list ‘custom’). [René Single]
  • Added wave output option to match the core. File menu / Play and Record Wave output. [Chris Kirmse]

v.84

  • Various internal treeview fixes [year / manufacturer] and cleanups. [Nathan Woods / René Single / Mamesick / Chris Kirmse]
  • Factored out list view handling into its own module, picker.c. Auto_malloc() now used and appears to result in a speed up of the GUI game list scrolling, however at the moment it does cause slight pauses moving from one ‘view’ to another. [Nathan Woods]
  • Added ability to display games in windowed mode without their titlebar caption. Not fully functioning w/ GCC compile. [René Single / John IV]

v.82

  • Brought game ‘not working’ status messages in-line with core [status bar, general properties, etc.] and rearranged status area on properties tab. [Mamesick]
  • Added sample folder view. [Mamesick]
  • Renamed Hard Disk folder view to CHD due to newly supported CD CHDs. [John IV / Nathan Woods]

v.81

  • Moved placement of bkground.png to \bkground folder instead of \snap folder. [René Single]
  • Fixed erroneous behaviour for Imperfect folder view. [René Single]
  • Corrected audio latency slider movement and setting past notch 4. [René Single]
  • Added customizable quit key [default Alt-Q] for the mappable keyboard solution option. [René Single]
  • Added new History.dat option to allow display under any or all of the art views in Options • Interface Options. [René Single]

v.79

  • Added an ‘Imperfect’ folder view on the left pane, this categorizes the various problems flagged in games. [René Single]
  • Reworked handling of the BIOS option, now that there are multiple drivers that support different BIOSes [neogeo.c, stv.c] the global setting is not appropriate. Select the driver from the source folder view on the left pane and change its BIOS settings, this will alter it for all games in that driver. The functionality remains the same for altering individual games settings in all games view or anywhere else. [René Single]
  • Added the ability to control the MameUI GUI via mappable keyboard solutions. This feature is intended to compliment the GUI control via joystick option first offered in version .70 below. It is designed to allow users of Mame cabinets with keyboard encoders the same functionality and is controlled in the mameUI32/64.ini file [mapping the enter key to button 1 to launch a game for example], using the same syntax as the \ctrlr files. [Jarek Burczynski / Chris Kirmse]
  • Added support for the new core switches for lightgun modifications; reload to allow mapping reload to keys, and dual gun setups. [Chris Kirmse]
  • Added accelerator key for folder level ‘mini-audits’, Alt-U [René Single / John IV].
  • Added accelerator key support for scrolling up and down through history.dat text window. CTRL-Page Up / CTRL-Page Down. [René Single]
  • Added toggle in Grouped view to allow clones missing a parent to display non-indented. [René Single]
  • Added support for the core’s new save state loading on game start. [René Single]
  • Added support for the core’s new keyboard LED choices, USB or PS/2. [René Single]

v.78

  • Added the ability to do ‘mini-audits’ on each of the folders on the left pane. Secondary click on the folders to see audit as a choice. [René Single]
  • Changed behaviour of MameUI when displaying games that have the protection not emulated flag, previously it would flag these games as non-working and display the warning.ico. Now warning.ico and non-working status will only occur if the game has the non-working flag attached in the driver. [René Single / Mamesick / John IV / Chris Kirmse]
  • Increased CPU and sound area on games’ properties page to accommodate 5 lines now that tceptor and tmnt utilise it. [René Single / Chris Kirmse]
  • Altered behaviour of properties titlebar on driver.ini to show the driver name instead of ‘folder’ properties. [René Single / Chris Kirmse]
  • No longer UPX compressing the MameUI .exe. This saves 20 Megs when MameUI is loaded into memory, will allow for better dynamic loading, and won’t trip off virus detectors that have trouble w/ UPX compression. As a result, MameUI.exe is now 20 Megs in size on the hard drive. The distribution package is also being changed and compressed with 7-Zip as a self-extracting archive, this actually makes the distribution package about 1 Meg smaller than previous releases. [John IV]
  • Switched default settings in MameUI to disable auto frameskipping and to use draw every frame per discussion on MameDEV list. [John IV]
  • Added 48000 as a sample rate option, works well with modern soundcards and chips. [John IV]

v.77

  • Fulfilling the longstanding feature req. added the ability to globally alter vector.ini and driver.ini to match the core. Secondary click on the vector folder • properties in the folder pane to set options for that group of games. To alter global settings for game families, drill down into the source folder in the folder pane, and secondary click on a driver's properties i.e. 1942.c. This will change options for all games based on that driver. The different levels of alteration are color coded, vector.ini changes are red, driver.ini changes are green, and individual game settings are blue. Thus there is the possibility to have four color/levels of alterations when a game's individual properties are viewed in All Games or any folder. The changes can be backed out of hierarchically with reset to default on each respective properties, the reset to default global option, or by deleting the .ini files in the \ini directory. Note: Currently the color alterations do not display properly with XP in themed mode, but the functionality works [bug 462]. Coded solutions to this issue via DIFF are welcomed. [René Single / Chris Kirmse / John IV]

v.76

  • Added programmatically populated lightgun and multi-monitor folders. [René Single]
  • Added reset play count and play time for individual games, and globally. [Secondary click on game, & Options • Interface Options. [René Single]
  • Allowed filter propagation downward from parent folders, toggle this feature in Options • Interface Options. [René Single]
  • Changed behavior of vertical scrollbar in history pane, will not show if there is less text than available room. [René Single]
  • Extended game not working status support to show more flags in status bar and game properties. [René Single]
  • Added tool tip text to status bar if longer than displayable name is selected. [René Single]
  • Increased history.dat buffer to prevent cut-off and overflow. [René Single]
  • Re-implemented ability to show game's icon on title bar in windowed mode. [René Single]

v.72

  • Added the ability to scale the right side art pane contents upwards as the window size increases, toggle on Options • Interface Options. [René Single / Chris Kirmse]
  • Expanded the reach of the CTRL-F text filter, it can now act on name, driver name e.g. 'cps2.c', and manufacturer. This is a quick method for immediately seeing a driver family instead of drilling down through the source folder on the left. [René Single / Chris Kirmse]

v.71

  • Added the ability to selectively disable built in folder views on the left pane, secondary click in the window area for the dialogue box. [Chris Kirmse]
  • Added control panel art tab. [Chris Kirmse]
  • Fixed audit control overflow issue. [René Single]
  • Designed art tab state toggles to be more readable in MameUI32/64.ini. [Chris Kirmse]
  • Added the ability to have MameUI automatically cycle the selected art views at an interval, in seconds. Accessible in Options • Interface Options. [René Single / Chris Kirmse]
  • Added the ability to track the amount of time spent playing each game in minutes and seconds. Displays in details or grouped view. Add the column in View • Customize fields. [René Single / Chris Kirmse]
  • Added the ability to view game's icon on title bar in windowed mode. [René Single / Chris Kirmse]

v.70.1

  • Removed saturate slider from D3D tab. [Chris Kirmse]
  • Fixed cleanstretch and prescale settings not holding. [Chris Kirmse]
  • Implemented BIOS selection on per game basis [only Neo Geo games currently] and allowed temporary global settings for BIOS via number. [Chris Kirmse]

v.70

  • Added art tab with only history.dat. If this tab is enabled and history.dat is present history text will no longer appear beneath the screenshot. [Tor Arne Vestbø / Chris Kirmse]
  • Added option to hide the mouse cursor on launch in full screen on Options • Interface Options. [Tor Arne Vestbø]
  • Addressed some long standing bugs dealing with icon decimation and windows title bar size, and details/grouped view not holding the column size on return from large icon view post-session restart. [René Single]
  • Added option to expand MameUI to full screen kiosk mode without any windows controls [F11]. [Tor Arne Vestbø / Chris Kirmse]
  • Created new Berzerk homage about.bmp. [John IV]
  • Reworked drop down for D3D prescale effect, now allowing various levels of sharpness to be used. [Chris Kirmse]
  • Updated win32ui.c to pull certain information more appropriately out of layout.c. [Nathan Woods/MESS32]
  • Removed obsoleted version mismatch toggle. [Chris Kirmse]
  • Added a built in orientation folder view for displaying vertical and horizontal games. [René Single]
  • Added support for the new cleanstretch options. [Chris Kirmse]
  • Added ability to map joystick
     actions in MameUI32/64.ini to control GUI navigation instead of being hard
     coded:
Format: joystick_number, stick_type, axis_or_button, direction

#define JOYCODE_STICK_BTN 0
#define JOYCODE_STICK_AXIS 1
#define JOYCODE_STICK_POV 2
#define JOYCODE_DIR_BTN 0
#define JOYCODE_DIR_NEG 1
#define JOYCODE_DIR_POS 2

So, pressing button 3 on joystick one would be: 1,0,3,0

ui_joy_up 1,1,2,1
ui_joy_down 1,1,2,2
ui_joy_left 1,1,1,1
ui_joy_right 1,1,1,2
ui_joy_start 1,0,1,0
ui_joy_pgup 2,1,2,1
ui_joy_pgdwn 2,1,2,2
ui_joy_home 0,0,0,0
ui_joy_end 0,0,0,0
ui_joy_ss_change 2,0,3,0
ui_joy_history_up 2,0,4,0
ui_joy_history_down 2,0,1,0
ui_joy_exec 0,0,0,0

For stick type POV there are no directions, only four axes (0-3) [Tor Arne Vestbø]

v.69

  • Added support for the new D3D filter and effects options in Options • Default Game Options • Direct3D, see help menu contents for further descriptions of the new features. [John IV / Chris Kirmse]
  • Added support for the new core toggle -bios to allow selection of the various supported Neo Geo BIOSes. [Chris Kirmse]

v.68

  • Added code to allow clicking anywhere in the screenshot window to toggle the art views. No longer necessary to click directly on the default image. [K&K]
  • Added code to allow disabling / toggling individual art views on the view menu and the context menu of the art window. [Chris Kirmse]
  • Added support for the new core D3D items, accessible on the Options • Default Game Options • Direct3D. [Chris Kirmse]
  • Added support for the new core audio latency settings. [Chris Kirmse]

v.67

  • Re-worked the rotation options to a drop down, and included the new switches for auto-clockwise / auto-anti-clockwise for pivot monitors. [Chris Kirmse]

v.66

  • Moved towards an *.ini based settings storage scheme to more closely match the Mame.exe core, individual game *.inis whose settings are altered are stored in the \ini directory. The MameUI GUI settings are stored in MameUI32/64.ini in the root w/ MameUI.exe, and MameUI.ini is stored in the \ini directory and should be interchangeable with a regular Mame.ini. Purge these two items to return to baseline, the registry is no longer used for MameUI. [Chris Kirmse]
  • Provided an additional 'migration' version of MameUI which will copy the contents of the registry key and write it out to the new *.ini scheme when exiting. Useful for people who have a large number of individual game customizations. [John IV / Chris Kirmse]
  • Added toggle for high thread priority in Options • Interface Options to match the core's new -high_priority switch. This will devote more system resources and time to MameUI at the expense of other already running programs. [Chris Kirmse]

v.65

  • Updated columnedit.c to allow for MESS32 usage in software view. [Nathan Woods/MESS32]
  • Reworked F5/refresh routines to utilise more audit code and logic. [Chris Kirmse]
  • Reworked -lightgun handling, enabling independently selectable mouse control for those games. [Chris Kirmse]
  • Custom icons are included in the distribution \icons directory to show what the control/tree icons are without having to go through the source. [John IV]

v.63.1

  • Fixed analogue dead-zone not being maintained, and pre-0.63 timing not being maintained. [Chris Kirmse]
  • Added folder view for hard drive based games. [Chris Kirmse]
  • Addressed missing/blank custom icon display indexing issue on F5/refresh. [Chris Kirmse]
  • Sped up MameUI launch / folder reading routine. [Chris Kirmse]
  • Fixed screenshot area decimation when resizing images larger than the viewable area. [John IV / Chris Kirmse]
  • Added additional help topic IDs and tool tips. [Chris Kirmse]

v.63

  • Added code to ROM loading dialogue to visually indicate user intervention when the game being launched may not work due to 'no good dump' this will match the baseline Mame [press ok to continue]. Examples include the game Astyanax, 64th Street etc. [Chris Kirmse]
  • Return to baseline non-I686 compile as it prevented MameUI working on a variety of machines. [John IV]
  • Made numerous code changes to allow MameUI to be compiled with the new MinGW 2.0 package. [Chris Kirmse / Mike Haaland]
  • Distribution compiles are now done using above mentioned MinGW 2.0 package. [John IV]
  • Added code to allow for a tool tip to appear showing the full name of a game whose description is cut-off by column width in details/grouped view. Hover cursor over game to activate. [Andrew Kirmse / Chris Kirmse]
  • The default \folders\Favorites.ini has been cleaned out. Now that it is easy to drag and drop or secondary click to add games from the main list to the custom folders, it no longer needs to serve as an example using personal favorites. Be sure to backup existing \folders\Favorites.ini if using the built in installer version of the MameUI distribution. [John IV]
  • Tweaked code for drag & drop of games into custom folders. In a custom folder to drag an item out for deletion, it must go out of the game list pane either left, right, up, or down beneath the last item in the pane or further out of the GUI. [Chris Kirmse]
  • Reworked internal file handling code to interface with Aaron's substantial core updates. [Chris Kirmse]
  • Submitted code suggestion to allow for more granular sorting and display of items in the Manufacturers view, so companies will no longer be grouped with others incorrectly. [René Single]
  • Created new main icon and about.bmp 'Ladybug Homage'. [John IV]
  • Fixed ascending/descending toggle via View • Arrange Icons for columns other than Game. Added some logic to the -listsourcefile column display. Prevented color depth and refresh rate settings from being displayed if games are played in windowed mode. [René Single / Chris Kirmse]
  • Made Misc. art option gray properly when its parent control was deselected. [Chris Kirmse]
  • Submitted code to clean up some issues with the list and small icons view and icons squishing in details view upon return from another view like large icons. [René Single / Chris Kirmse]
  • Upgraded MameUI to utilize the new common controls from Windows XP, allowing the proper look of an XP application without the need for an external manifest file. [Chris Kirmse]
  • Added ability to rename custom folders from the tree view, secondary click on them and choose rename folder from the context menu, or click the name of the folder three times quickly. [Chris Kirmse]
  • Added the 'Source' folder view, this will display all the driver.c files and all the games within each family. [Mike Haaland]
  • Removed the \folders\BIOS.ini as it is now obviated by the built-in Source folder view. [John IV]
  • Added -sourcefileinfo information to the general tab for each games' properties, to easily and quickly see what driver family a game belongs to. [Chris Kirmse]
  • Added the long requested clone offset aka 'Grouped' view. This will display the parent games flush left, with all their clones alphabetized beneath them indented inward. Excellent for grouping the clones whose names may be considerably different than their parents, and allowing typing the name of the game to go to the parent set immediately. [John IV / Chris Kirmse]
  • Reworked the Startup Options to now be Interface Options, and added checkboxes to support Aaron's new disclaimer / info screen toggle. [Chris Kirmse]
  • Added new switches -rdtsc / -pause_brightness to match the core. [Chris Kirmse]

v.62

  • Internalized the code for rotate.exe, MameUI can now choose its background images from Options • Background Image, and choose a random one on startup. Options • Startup Options • Select Random Background Image. [K&K]
  • Added tabs for the screenshot art area, toggle with Alt-b. [K&K]
  • Added code to increase speed of audit. [K&K]
  • Added secondary click menu pop-up for screenshot area. [Sword]
  • Allowed bkground.png to be displayed in history.dat area under screenshot, font color changed to match GUI font color. [K&K]
  • Created new icons for the various tabs in Default Options / Game Properties dialogue boxes. [John IV]
  • Updated the ColumnEdit and Properties code to make them both more extensible. [Nathan Woods/MESS32]
  • Included index fixes to speed load time in treeview.c, particularly with extra \folders *.inis. [Jeff Miller]
  • Fixed an issue where the startup focus in the details list would jump to the top of the list before returning to the prior selection. [Chris Kirmse]
  • Main distribution now compiled with I686=1 for Pentium Pro optimization. Doesn't impact high end AMD chips at all but provides speed increases to lower range PII, P3 machines. [John IV]
  • Created new *.ini files for the \folders directory. Replace the old ones with these (except any user-modified of course). [John IV]
  • Created a new MameUI MSI installer package. This should be easier for beginners. [John IV]
  • Added the ability to drag and drop games into the custom *.ini folders. [Chris Kirmse]
  • Added the ability to secondary click on a game to add or remove it from an *.ini file in the \folders directory. [Patrick Jones / Chris Kirmse]

v.61

  • Fixed a nasty crasher where MameUI 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 MameUI, 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 MameUI icon and About graphic. [John IV]

v.60

  • Created and added the new MameUI HTML Help File. [John IV]
  • Updated context sensitive help support to MameUI, 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, MameUI 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 common arcade controllers and provides the ability to create user defined mappings for home built solutions. See Options • Default Options • Controllers. Also see the controller mapping document in the Mame Documents help section. [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 MameUI. It can be used to hook into applications like LED reader boards, or instant message clients, etc. [Chris Kirmse]

2007-12-24 10:12 AM -0800/ john iv


MameUI System Requirements

System Requirements

MameUI runs on Microsoft Windows 98SE, Windows ME, Windows 2000, Windows XP, Windows 2003 Server, and Windows Vista.

Because of the wide range of arcade hardware supported by MameUI, system requirements vary considerably. The more complex the original arcade hardware, the more CPU power is needed to emulate it. Mame strives for accuracy in its emulation; as such, over time, the performance point shifts as the underlying engine has been reworked and refined. Early games now require a bit more PC processing power to run than they did in earlier versions of Mame. This is typically not a great concern as modern PCs can run these early games easily at thousands of times their original speed. 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; MameUI benefits most from adding more CPU power, using a 64bit build on a 64bit OS, and then memory and upgraded video card.

Currently there are some games supported in MameUI which are not playable at full frame rate on today's PC hardware. Many of these are mid to late 90's and beyond advanced 3D games which MameUI renders in software for accuracy sake. Recent developments in Mame [.120] have allowed some of these games to get close to 100% playable on high-end overclocked [3.6Ghz+] Intel Core2Duo and Quad Core cpus. Additionally the fastest combination for MameUI is one of the previously mentioned CPUs plus the 64bit version of MameUI combined with a 64bit Operating System like Vista Ultimate 64.

2007-11-14 12:42 AM -0800 / john iv


MameUI Download Locations

Download Locations

The official site for MameUI downloads:

The MameUI Homepage

2007-11-12 02:03 PM -0800 / john iv


MameUI Installation Procedures

Install Procedures

To Install MameUI Manually

* Download the latest MameUI binary distribution [not the source] self-extracting archive available at MameUI.

* Double-click the self-extracting archive .exe, and point the directory install location to the root of the c:\ drive, or just type in the box "c:\" [no quotes]. This will create a c:\MameUI directory with the program and all its support files within it.

* MameUI requires ROMs to play games; if attempting to play a game the ROMs of which are not present it will fail and list the files missing. Download the freely available public domain ROMs [Robby Roto, Gridlee, Alien Arena, and others] from Mamedev.org. Place these files still zipped, into the \MameUI\ROMs folder. Again, do not unzip them.

* Double-click the MameUI icon to launch the program. MameUI will go through its initial diagnostics and search for available games in the c:\MameUI\ROMs directory, and then display the GUI. If the games do not appear on the available game list, hit F5 to force a game search or do a File menu / Audit.

* To activate mouse control or attached gamepads to use within games, it is necessary to toggle those options on in the Options • Default Options • Controllers tab.

* Once a game has been selected and double-clicked, MameUI will produce two information screens and then it will run the game. Since MameUI 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].

* MameUI’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 MameUI, the internal configuration menu system can be activated by pressing the [TAB] key. This will bring up the control options. These options allow remapping MameUI controls to whatever keyboard keys or gamepad buttons 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. Note: If there are multiple mouse devices attached to the system they can be individually configured by selecting their control in the [TAB] menu and moving the mouse or trackball left or right, up or down to map it.

* Other keys of interest while playing a game are :

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

[~ TILDE] the onscreen display.

[Shift-p] advance paused screen one frame at a time
[p] for the pause button.

[F3] resets the game.

[F4] displays the tile manager and the game’s color palette.

[Shift-F7] save current game state [a-z, 1-0] (See save state folder view for supported games)

[F7] load game state [a-z, 1-0] (See save state folder view on left for supported games)

[F9] changes the frameskip on the fly.

[F10] toggles throttling.

[F11] toggles the speed display display.
[Shift-F12] toggles MNG recording, once starts, second finishes.

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

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

[Left-Alt + Enter] toggle from fullscreen mode to windowed mode.

[Insert] fast forwards with full unthrottle and highest frameskip, convenient for speeding through slow start-up of certain games.

2007-11-12 02:02 PM -0800 / john iv


MameUI Art & Support Files

Art & Support Files

MameUI's flexible GUI framework allows for some beautiful customization; including font color, icons, screenshot art, and background images. The official site for the snaps and icons is MameUI. The following files are used for this customization.

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

* Snap.zip : These are a series of files that contain in-game screenshots of every parent game in MameUI. Download the packs and extract their contents into the \MameUI\snap directory or combine their *.png contents into one large snap.zip file.

* Titles.zip : This file can provide support for screenshots showing the titles of the game in MameUI, place in \titles directory.

* Marquees.zip : This file can provide support for the marquee images that appear on the top of arcade machines, place in \marquees directory..

* Cpanel.zip : This file can provide support for the images of arcade control panels, place in \cpanel directory..

* PCB.zip : This file can provide support for the images of arcade printed circuit boards, place in \pcb directory..

* Bkground.zip : This file contains numerous images that are used as the background for the MameUI GUI [beneath the game list, behind the screenshot/folder areas]. Download this file and extract its contents into the \MameUI\bkground directory. Choose a background image in the Options menu. To have it rotated randomly on MameUI launch, toggle the checkbox in the Options • Interface Options menu.

* Flyers.zip : This file can provide support for the original flyers sent to arcade operators, exhorting them to buy the games, place in \flyers directory.

* Cabinets.zip : These are a series of files that contain images of the actual physical arcade machines themselves. Download the packs and extract their contents into the \MameUI\cabinets directory or combine their *.png contents into one large cabinets.zip.

* History.dat : This file contains the original game’s designer’s names, and assorted trivia. Place this file in the \MameUI folder alongside MameUI.exe. It will display if the history art tab is toggled, or if the history tab is not selected, it will display beneath snapshots.

2007-11-12 02:05 PM -0800 / john iv


MameUI Settings

Suggested MameUI Default Settings

* Advanced / Triple Buffering ensures there should be no 'tearing' of screen images if the frame rate doesn't exactly match the monitor screen refresh in full-screen mode. Particularly evident in vertical scrolling games. This however can lead to sound stuttering on games that are above 60Hz [early Namco games like Pac-Man, etc.] if the user's monitor is not capable of being driven at a higher refresh rate, like modern LCDs. If a modern LCD fixed at 60Hz is in use, toggle on the Advanced • Refresh game speed.

* Simulated monitor effects are now handled via *.png files in the \artwork directory. They are accessed in Advanced / Select Effect. Scanlines75x4 provides a 75% black line every four pixel rows.

* Bitmap prescaling in Display is the new control for determining how fuzzy or sharp the bilinear filtering of D3D is. Increasing this number sharpens the game pixels.

2007-11-10 01:41 AM -0800 / john iv


MameUI Playing a Game & Internal Controls

Playing a Game & Internal Controls

* To activate mouse control or attached gamepads to use within games, it is necessary to toggle those options on in the Options • Default Options • Controllers tab.

* Once a game has been selected and double-clicked, MameUI will produce two information screens and then it will run the game. Since MameUI 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].

* MameUI’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 MameUI, the internal configuration menu system can be activated by pressing the [TAB] key. This will bring up the control options. These options allow remapping MameUI controls to whatever keyboard keys or gamepad buttons 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. Note: If there are multiple mouse devices attached to the system they can be individually configured by selecting their control in the [TAB] menu and moving the mouse or trackball left or right, up or down to map it.

* Other keys of interest while playing a game are :

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

[~ TILDE] the onscreen display.

[Shift-p] advance paused screen one frame at a time
[p] for the pause button.

[F3] resets the game.

[F4] displays the tile manager and the game’s color palette.

[Shift-F7] save current game state [a-z, 1-0] (See save state folder view for supported games)

[F7] load game state [a-z, 1-0] (See save state folder view on left for supported games)

[F9] changes the frameskip on the fly.

[F10] toggles throttling.

[F11] toggles the speed display display.
[Shift-F12] toggles MNG recording, once starts, second finishes.

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

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

[Left-Alt + Enter] toggle from fullscreen mode to windowed mode.

[Insert] fast forwards with full unthrottle and highest frameskip, convenient for speeding through slow start-up of certain games.

2007-11-10 01:41 AM -0800 / john iv


MameUI Toolbar / Status Bar / Windows

The MameUI 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 toolbar also contains the game search box, typing into this text box will filter out games. It is similar in function to the Ctrl-F filter but only filters on game descriptive name.

The MameUI 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.

MameUI 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, MameUI will display the games that meet that criterion. For example: selecting year / 1978, MameUI will display all the supported games manufactured in 1978.

  • MameUI will display user created folders based on *.ini files located in the \MameUI\folders directory. See files in that location for examples. This location also houses the favorites.ini, where favorite games can be added to the text file and easily moved to other computers.

  • MameUI supports dragging and dropping games from the middle section game list into a custom folder in the left pane. MameUI supports the same procedure by secondary clicking on the game in the game list and choosing the 'add to custom folder' option.

  • MameUI also supports secondary clicking on a custom folder and renaming it, editing the custom folder name can also be accomplished by clicking the name of the folder three times quickly.

  • Secondary clicking on any of the folders also allows selectively displaying or hiding them in the tree.

  • Secondary clicking the vector folders and the \source\gamedriver folder allows for customizing away from default the games in that folder. Secondary click on the vector folder • properties in the folder pane to set options for that group of games. To alter global settings for game families select the properties for it, e.g. dkong.c for the Donkey Kong family of games This will change options for all games based on that driver. Thus there is the possibility to have four levels of alterations when a game's individual properties are viewed in All Games or any folder. The changes can be backed out of hierarchically with reset to default on each respective properties, or by deleting the .ini files in the \ini directory.

The second, middle section of MameUI is the game list, always toggled on. This is where MameUI lists all of the games chosen in the left folder view. MameUI has the option to display the games as large icons, small icons, a list icons view, or details. Choosing details allows MameUI 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-P 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 area. The modes are: screenshot, flyer, cabinet, marquees, title shots, control panels, and history. Alt-B will toggle the screenshot tabs which give a visual selection method besides clicking the artwork area. Secondary clicking on the screenshot area will also bring up a shortcut dialogue with the file types available and allow toggling on or off individual tabs. The area under the screenshot mode will also display the history.dat information if that file is present [it will not display in the screenshot area if the history tab is enabled]. Each of the tabs can be navigated to by their accelerator keys, Alt-1, Alt-2, Alt-3, etc. Further information about these files is in Art and Support Files.

2007-11-11 01:10 AM -0800 / john iv


MameUI 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 MameUI 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.

* Play and Record Wave Output : Selecting this option from the file menu will allow the recording of a sound file while playing a game. The *.wav file is placed in the \inp directory by default.

* Play and Record MNG Output : Selecting this option from the file menu will allow the recording of a MNG video file while playing a game. The *.mng file is placed in the \inp directory by default.

* Load Savestate : Selecting this option from the file menu will allow the loading and playing of a previously saved machine state, the state being loaded must match the highlighted game.

* Select Random Game : Selecting this option from the file menu will cause MameUI to randomly highlight a game in the game list shortcut key is Ctrl-R.

* 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 MameUI’s expected results.

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

2007-11-10 01:41 AM -0800 / john iv


MameUI Properties

Default Options & Game Properties

The default options and game properties tabs of MameUI 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 MameUI 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 : MameUI will launch the game selected in a window on the 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 Screen 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 MameUI 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 MameUI to rotate the video output by 90 degrees in either direction. This setting is useful if used in conjunction with a pivoting monitor [the auto options], or playing games with a monitor on its side. Doing so allows vertical orientated games to be played full screen. The additional 'auto clockwise' and 'auto anti-clockwise' settings are particularly useful for rotating LCD monitors, these settings will force vertical games to one 90 degree angle or the other depending on which way the LCD pivots.
Flip screen upside down : This option mirrors the image vertically.

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

Direct3D : Use Bilinear Filtering : This option enables bilinear filtering on game screen graphics. 'Fuzziness' of image can be controlled by the bitmap prescaling option, increasing it sharpens the image. Leaving this unchecked produces the crispest output but does point filtering leading to scaling artifacts.

Direct3D : Version : This option allows toggling between version 9 and version 8 of D3D. It's almost always preferable to stay with 9.

DirectDraw : Stretch using hardware : Used in conjunction with DDraw as the video mode, this toggle if turned off scales upwards the size of the games original native resolution at the same aspect ratio.

Bitmap prescaling : This option works in conjunction with bilinear filtering. The higher up the slider, the sharper the screen output.

Gamma correction : This option controls the gamma, which produces a potentially nonlinear black to white ramp, for the game screens. This option does not affect the artwork or other parts of the display. Using MameUI's in-game tilde menu [~], one can individually set the gamma for each game screen; this option controls the initial value for all visible game screens. The standard value is 1.0, which gives a linear ramp from black to white. Selecting lower values (down to 0.1) will increase the nonlinearity toward black, while selecting higher values (up to 3.0) will push the nonlinearity toward white. The default is 1.0.

Brightness correction : This option controls the default brightness, or black level, of the game screens. This option does not affect the artwork or other parts of the display. Using MameUI's in-game tilde menu [~], one can individually set the brightness for each game screen; this option controls the initial value for all visible game screens. The standard value is 1.0. Selecting lower values (down to 0.1) will produce a darkened display, while selecting higher values (up to 2.0) will give a brighter display. The default is 1.0.

Contrast correction : Controls the contrast, or white level, of the game screens. This option does not affect the artwork or other parts of the display. Using MameUI's in-game tilde menu [~], one can individually set the contrast for each game screen; this option controls the initial value for all visible game screens. The standard value is 1.0. Selecting lower values (down to 0.1) will produce a dimmer display, while selecting higher values (up to 2.0) will give a more saturated display. The default is 1.0.

Pause Brightness : This option controls the screen brightness when a game is paused.

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

Triple buffering : This option controls how MameUI 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.

Sync to monitor refresh : This option tells MameUI 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. This option is preferable if MameUI is used with authentic arcade monitor hardware and video card modes that are tweaked appropriately.

Wait for vertical sync : This option tells MameUI to wait for the refresh period on the output monitor to finish before starting to draw video to the screen, this works functionally similarly to triple buffer but is better suited for running games in a window to alleviate tearing.

Refresh speed : This option tells MameUI to alter the speed of the emulation for games that run at a higher speed than the host monitor. For example this should be checked if running Pac-Man on a fixed 60Hz LCD since Pac-Man runs at 60.60Hz. This alleviates sound hiccups as well in the previous situation.

Emulation speed : This slider allows for the altering of the emulation speed, it can be dropped down or increased by three [or to 100 in the \ini.]

Frame skipping : These settings allow MameUI to skip frames of animation when playing games, if the host CPU is not fast enough to run the game. Optimally this should be toggled off and 'draw every frame' selected.

Full screen gamma : This option is similar to the gamma correction in the display tab but works on all graphic elements of the screen including the UI.

Full screen brightness : This option is similar to the brightness correction in the display tab but works on all graphic elements of the screen including the UI.

Full screen contrast : This option is similar to the contrast correction in the display tab but works on all graphic elements of the screen including the UI.

Effect : Starting with version .107 simulated arcade monitor effects are handled by the overlay of *.png masks on the game. The *.png files reside in the \artwork directory and are simple patterns creatable and editable in applications like Photoshop. If scan lines are desired and a very high resolution is being used [1280x1024 or above] the Scanlines75x4 item is suggested. For games with artwork whose playfields are smaller on screen as the results of bezels, it's recommended to use Scanlines75x3 or Scanlines75x2.

* Screen Tab : This tab allows the alteration of the various screen output settings.

Number of screens : This slider controls the number of screens MameUI will draw. In windowed mode up to four different output windows can be created of varying sizes, shapes, etc. In full screen mode the number of screens can match the physical number of monitors connected to the host system. This allows playing multi-monitor arcade games like Punch-Out or similar on 2 physical computer monitors in dual head mode.

Screen : This option allows the choice of the physical monitor to use in conjunction with number of screens and screennumber. The drop down is populated by the \\.\DISPLAY1 and/or \\.\DISPLAY2 and so forth. Leaving this toggle to Auto will have MameUI attempt to order the game screens as it sees fit, for Punch-Out for example it will place the main fighting screen on \\.\DISPLAY1 and the status/display screen on secondary monitor \\.\DISPLAY2.

Aspect Ratio : Allows control over the physical aspect ratio of the physical monitor for each screen. If running full screen and auto aspect ratio is off, then switch resolutions to fit must be toggled on to work. Typically this should be set to autoselect unless weird shaped windows for game play are desired.

View : This drop down allows the selection of the default view of the in-game display. This can be auto which is effectively 4:3 for horizontal games or 3:4 for vertical games, native, which is the game's original native resolution, or cocktail which is duplicated view for 2 people playing the game on opposite sides of a cocktail cabinet.

Screennumber : This drop down is populated based on the slider setting of number of screens to its left. Each item in the screennumber drop down can be individually tailored with screen, resolution, aspect ratio, and view. Thus it is possible to have elaborate combinations for game play, for example. Number of screens 3, run in windowed mode, have screen0 go to the secondary \\.\DISPLAY2, running in 320x240 resolution at a color depth of 16bpp with a refresh of 75Hz, screen1 go to primary display \\.\DISPLAY1, run at 640x480x32@60 and use the cocktail view, etc. Each item in the Screennumber drop down will populate its own settings and maintain those settings until returned to a default.

Resolution : These options control the size and refresh rate of the screennumbers. In windowed mode only the resolution is selectable.

Switch resolutions to fit : This toggle must be on if any of the resolution choices are altered away from auto in full screen mode. It does not impact windowed mode.

* 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 MameUI to utilize samples for games which do not have their sound hardware emulated, or were using analogue circuitry.

Sample Rate : This setting tells MameUI 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 MameUI to set the initial volume level, the default is 0dB.

Audio latency : This slider allows the adjustment of the amount of latency built into the audio streaming. Increasing the slider to the right on faster machines can help alleviate some desync and scratchiness in the sound on some configurations.

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

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

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

Enable lightgun input : This setting tells MameUI to utilize a lightgun for target/shooting games that require analogue control, like Crossbow, Police Trainer, Rev X, etc. and will only be available on non-XP based systems. If using XP then mouse input should be toggled on to allow mapping of the lightgun functions in the in-game [TAB] menu.

Offscreen shots reload : This option if checked will internally remap the second mouse button and allow it to be used for simulated 'reloading' in gun games that require it.

Dual lightguns : This is a legacy switch for non-XP systems which activates code to handle internal mapping of the second light gun connected to the system. If WinXP is used this is not required and is grayed out, the second gun is mapped like a joystick or mouse in the in-game [TAB] menu.

Enable mouse input : This setting tells MameUI to utilize the mouse in games that require analogue control methods. On XP systems the mouse toggle should be on if a lightgun is to be utilised.

Enable steadykey support : This option tells MameUI to use a different keyboard handling routine that makes it easier to register simultaneous key presses for games that require it for special moves [Street Fighter II, etc.]. However it can produce more sluggish results in other games.

Default input layout : This drop down menu allows MameUI to choose between multiple key mappings, including keyboard mapping for various third-party control panels. It will also display user defined controller mappings, if created in the \ctrlr directory. Various arcade game controller companies produce custom made configuration files for their setups; these *.cfg files need to go in the \MameUI\ctrlr folder to be recognized in the MameUI controllers tab. These files are the responsibility of the controller companies themselves and are not included or endorsed by MameUI, they can typically be found at the companies’ web sites.

Multiple keyboards : Enabling this checkbox tells MameUI to allow mapping to different physical keyboards that may be attached to the host system, this allows rather esoteric options like multiple keyboards for games like 2 player Keyboard Mania or Typing of the Dead etc. If left off MameUI maps all keyboard controls to all keyboard devices.

Multiple mice : Enabling this checkbox tells MameUI to allow mapping to different physical mice devices. Useful for systems that have spinners, trackballs, main system mice etc. If left off MameUI maps all mice controls to all mouse devices.

* Controller Mapping Tab : This tab allows choosing which analogue device connected to the system for MameUI to map a game's internal analogue controls to. These options should be used in lieu of the global 'mouse' setting which can conflict with attached joysticks/gamepads.

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

Enable game cheats : This setting if toggled on allows MameUI to use external cheat.dat files.

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

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

Skip game info : If this options is on, MameUI will immediately launch a game without information screens. However screens regarding problems in the drivers will still be shown [missing sound, unemulated protection, problems with video etc.].

Save game state on exit : This toggle will allow MameUI to automatically save the current machine state when the game is exited with the ESC key. As a result when the game is re-launched it's like the machine was never turned off. This feature allows older games to maintain their hi-scores indefinitely where it wasn't originally supported. The files are stored in the MameUI\sta directory. The list of games that support save states is present in the left hand folder view pane of the UI as 'Save State'.

Thread Priority slider : Increasing the Windows thread priority for MameUI giving it more CPU and resources slices, can negatively impact other running processes. Using setting 1 sets it to real-time which interferes with keyboard and joystick controls as well as other running apps. Setting 1 is not recommended as a result. Some Dells and other laptop computers may require setting slider to -15 to get keyboard control working properly.

Multi-threaded rendering : This toggle allows multi-core or multi-chip or HyperThreaded machines to pass the final video blit off to a second thread. This can lead up to a 40% increase in unthrottled FPS using D3D in GPU limited games. However it does not have a real world effect on games that are CPU bound, like the heavy seattle.c, or vegas.c games. Unless in possession of one of these types of machines, this should be toggled off to avoid potential slowdowns.

Use additional game artwork : This setting if toggled on allows MameUI 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.

BIOS : This drop down allows the use of a variety of different supported NeoGeo or Sega BIOS files. The option will only be available when altering the driver family via the source folder view on the left pane, or individual games in the driver family.

* 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 MameUI to draw vector lines with an additional pleasing antialiased look.

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

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

2007-11-10 01:41 AM -0800 / john iv


MameUI 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.

* Screenshot Tab : Selecting this option from the view menu will toggle the screenshot area tabs, allowing to choose between the multiple different art types. Note that history.dat information is only displayed in the snapshot view.

* Fullscreen : Selecting this option from the view menu will switch the GUI into full screen mode. This will expand to fill the current desktop resolution, it will hide the menu bar, and it will hide the windows taskbar. Toggle in and out of it with F11, other alt shortcut keys are still active.

* Show Pictures : Selecting this option from the view menu will allow toggling the display of the individual art tabs in the screenshot area.

* 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.

* Grouped : 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, however the clone games will be displayed indented and alphabetized under their parents..

* 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 MameUI 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 [note valid input for the description filter are, game name, driver name e.g. 'cps2.c', and manufacturer].

* 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.

2007-11-11 01:11 AM -0800 / john iv


MameUI Options Menu

Options Menu

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

* Game List Clone Color : Selecting this option from the options menu will change the font color used for the GUI display of clones in the 'Grouped' game list view.

* Directories : Selecting this option from the options menu will allow for choosing a different directory for a number of MameUI 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 MameUI 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 MameUI to their defaults. MameUI will prompt before resetting, giving the option to cancel.

* Interface 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 ability to use a game pad to navigate the GUI (see mame32ui.ini for examples).
Toggling on or off the ability to use a keyboard encoder solution to navigate the GUI and launch games [helpful in Mame cabs] (see mame32ui.ini for examples).
Selecting a random image from the \bkground directory on startup.
Toggling on or off MameUI broadcasting the selected game programmatically to other listening applications like message clients, or an LED message bar,
The cursor to be hidden [helpful in Mame cabs].
Selecting inheritable filters, this allows parent folders to set the filters for their children sub-folders.
No offset for clones missing parent in view toggle will cause clones not be indented if the parent game is not present due to current folder view, missing ROMs, or filtering.
Allow history.dat file to be displayed under any, all, or none of the art views.
Show game caption toggles the titlebar and controls in windowed mode, if off, only a single frame will surround the playing game. If on, the full titlebar will appear complete with icon and name of the game being played.
Globally clear the play time and number of times played counters.
Stretch screenshot to larger size, this will enlarge the items in the art pane scaling them upwards depending on the size of the GUI.
Screenshot border size and color creates a user defined border around the art work in the art pane on the right, set to zero to remove borders completely.

* Background Image : Selecting this option from the options menu allows the choosing of a background image from the \bkground directory. This image will be displayed beneath the three window panes in the GUI.

2007-11-10 01:41 AM -0800 / john iv


MameUI Help Menu

Help Menu

* Help Topics : Selecting this option from the help menu will launch the MameUI 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 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 MameUI and its contributors.

2007-11-10 01:41 AM -0800 / john iv


MameUI Troubleshooting [& Tips]

MameUI has been in development since 1997. 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 MameUI. When problems do occur with a specific game in a specific version of MameUI, a previous version of MameUI may be used.

MameUI is now an integrated GUI front end which passes user input from the GUI to the Mame engine/core. Thus, any problems that occur in the Mame engine will be inherited by MameUI. Prior to reporting problems against MameUI, verify that the issue is not a known, core defect in Mame. The Mametesters.org site is designed to track and report bugs in the baseline Mame version. To find if a problem plagues the game in question, do an alt-enter on the game and note its driver/source name at the bottom of the general properties tab; then search the Mametesters’ bug database and search their message board. The current list of known MameUI specific issues and defect tracking is available at MameUI.

ROMs and CHDs Related Topics

· Utilization of an external ROMs management utility like Clrmame is recommended for repair and identification of damaged sets.

· If receiving missing ROMs 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. MameUI 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 MameUI, will not work with newer versions of MameUI because they are now read as incomplete or wrong. MameUI will not play the game in question until the updated ROMs are utilized.

· MameUI utilizes the idea of a parent / clone relationship for its games. If trying to play a clone or a bootleg of a game, MameUI will need the ROMs for the clone game, and the parent set. MameUI indicates the parent set of a clone at the bottom of the game’s properties tab, or more easily in grouped view, View \ Grouped.

· MameUI 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 upwards of ten BIOS files in every game. Mame will look to neogeo.zip as the BIOS zip, if this file is freestanding along with the other NeoGeo games, it will use it. Otherwise, MameUI expects all the BIOS files in every NeoGeo game’s zip file. DECO cassette, PGM, and Playchoice are some examples of other BIOS games. An error message will occur if the BIOS files are not present and those games are run. Occasionally, new ROMs will need to be added to the BIOS packages themselves, this occurred recently with the ‘ng-lo.rom’ and then 6 new regional BIOSes in the neogeo.zip. MameUI will not audit a game as correct without all the BIOS files with the correct CRC, while it may however be possible to play the game after an error message.

· Games that support .CHD [compressed hunks of data] images [Max Force, Killer Instinct I & II, Area 51, Vicious Circle, War Gods, beatmania games, and items in the CHD folder view on the left pane] have to have their ROMs and .CHD files in a very specific directory structure. The single large .CHD file needs to go in the \ROMs\gamename\ directory, and have the *.CHD extension, e.g. \ROMs\area51\area51.chd. These games also have ROMs, these go one level up in the \ROMs folder proper like any other game. So in the end two files should exist for these games one *.zip in the \ROMs folder and the *.chd in a sub-directory named for the game.

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

· If games are not displaying in the game list, ensure the appropriate folder view on the far left 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 MameUI.

· Final option, manually delete the MameUI32/64.ini and the Mame.ini file in the \ini directory.

Crash Related Topics

· Delete the \cfg\*.CFG, \diff\*.DIF, \ini\*.INI, or \nv\*.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.

· Verify the presence of the \ini directory under MameUI.exe’s location.

· If versions of MameUI prior to .66 had been installed on the system, verify that the old registry key has been deleted with regedit.exe. HKEY_CURRENT_USER/Software/Freeware/Mame32

· 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. Utilization of an external ROMs management utility like Clrmame is recommended for repair and identification of damaged sets.

· If seeing crashes or weird screen coloration, try disabling running background apps [in Win98, use msconfig.exe], Norton Crashguard, PnP programs like Kaaza, eDonkey, LimeWire, popup killers, viruscans, MS Office Fast Find, the Microsoft Office Bar, Intellimouse, even IE subscription updates, etc. Try moving MameUI 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.

· If MameUI crashes with an access violation it may be the DEP (Data Execution Prevention) setting on that machine. Add MameUI to the exception list in Control Panel / System / Advanced / DEP.

· In some instances games may fail to start if the installed directory path contains a large number of characters and spaces, to alleviate this, install MameUI and its support directory structure into a shorter path name, i.e. c:\MameUI\.

· MameUI may fail to launch its games in situations where an errant, non-DX compliant, or badly written gamepad USB adapter driver/software is used. This includes some cheap Playstation, SNES, U64 converters.

· Games may fail to start if a video cards DirectX driver is flakey, utilise an earlier one to test or re-install DirectX.

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

· Odd behaviour may be exhibited in NT based systems if attempting to run games while security/permissions settings do not allow it or the user is not an administrator or member of the administrator’s group.

· Some anti-virus packages may slow down navigation within the MameUI directory. These are false positives and the anti-virus vendors should update their virus dat signatures. It may also be possible to exclude the MameUI.exe from real-time scanning as a workaround.

· In the event of MameUI not launching a game and just sitting there, try placing the entire MameUI directory and its sub-directories including \ROMs into a more simple path, like c:\MameUI instead of "c:\Games for Fun\MameUI Goes Here\". Simplify the path.

· On rare occasions malformed or damaged *.dat files [history.dat, mameinfo.dat, cheat.dat] can cause MameUI to error on startup when it tries to read them. Remove those files individually to check for the one causing the crash.

· With the move to XML based Controller *.cfg files in the .8x era it is necessary to remove the old \Ctrlr\*.ini files and use their new *.cfg counterparts, otherwise MameUI may launch games then immediately return to the GUI.

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

· Final option, manually delete the MameUI32/64.ini and the Mame.ini file in the \ini directory.

Performance Related Topics [incl. sound scratchiness and stuttering]

· MameUI will start to crackle, scratch, or echo if the game running is too taxing for the processor in use. 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. If upgrading machine components, provide MameUI with as much hardware as possible; a faster CPU makes the most difference, followed by video card, and RAM.

· MameUI will start to 'skip' sound on games that run slightly over the host monitor refresh rate in full-screen mode with triplebuffer. For example, Pac-Man and other early Namco games run at 60.60Hz and if they are run on a fixed 60Hz LCD monitor using triplebuffer they will skip since the emulation is outpacing the monitor. In this instance it is necessary to toggle on the 'Refresh Speed' switch in the Options • Default Options • Advanced tab. This issue can also be overcome by running the game in windowed mode.

· With the advent of MameUI .120 some historically hardware punishing games become playable on high end overclocked [3.6Ghz+] Intel Core2Duo and Quad Cores. These processors combined with 64bit operating systems and native 64bit MameUI provide almost 100% playability in namcos21.c / namcos22.c / seattle.c and midvunit.c games.

· Some of the largest games supported by MameUI [NeoGeo mainly] can run into the hundreds of megabyte range when they are uncompressed into memory, this combined with MameUI 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. 512M to 1G of memory is recommended for all current games [.118].

· As Mame has continued development, infrastructure and accuracy has improved. As such, the optimization point of the games has shifted so that older games may be slower unthrottled overall than when run on earlier versions. For example, in version .36 Donkey Kong may have run unthrottled at 1900 FPS, but in .77 it runs 1500 FPS. Regardless, modern machines should have no problem running these earlier games at their intended 60 FPS rate.

· Periodically, speed-up hacks in the core code will be removed to provide more accurate emulation of the games. This can result in a drop in FPS for that particular family of games, but can be offset by upgrading the machine Mame is used on.

· AMD’s Cool ‘n Quiet technology on certain setups has been known to cause slowdowns and lags while working in the MameUI GUI as well as causing some in-game sound and graphic stuttering. Disable the feature in the BIOS to verify.

· On certain system setups (older), DirectDraw may be a faster option than the D3D settings. Choose Ddraw as the video mode in Default Options • Display.

· If seeing a severe slowdown in games that previously didn't, toggle the Use less CPU time if possible menu item in Options • Default Options • Miscellaneous. This happens to laptop users particularly.

· Certain games in MameUI perform better on machines that cannot handle them 100% if auto-frame skipping is turned off.

· Certain games if run with D3D settings will perform better if Triplebuffering is set to off. D3D will double buffer if triple is turned off.

· There may be certain sound anomalies in games if the *.cfg files have become damaged, delete all the files in \cfg to remedy.

· If games are running too fast, verify in the Options • Default Game Options menu that the throttle option is turned on, that sync to monitor refresh is turned off and Wait for Vertical Sync is turned off in the Options • Default Game Options • Advanced menu.

· MameUI video performance can be greatly enhanced if running in 32bpp mode by ensuring AGP Fast Writes are toggled on in the motherboard BIOS. The videocard drivers also need to support this setting, the switch for this may be in the advanced tab of the Windows display control panel applet.

· There are some soundcards like early PCI Soundblasters 128 that will cause scratchiness if their hardware acceleration is turned up too high. Move the slider down various steps to troubleshoot in Control Panel • Sound • Advanced Audio.

· There are some older video card/video driver combinations that can do hardware stretching, but are slower than running with hardware stretch off. If games are too sluggish with the hw stretch on, toggle it off if possible. Some PCI graphic cards have been seen to have this problem.

· If a large number of icons are being used in the GUI, it is typically quicker to unzip them into the \icons folder instead of leaving them zipped as icons.zip.

Joysticks / Mice / Gamepad / Lightgun Related Topics

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

· MameUI relies on DirectX’s 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.

· If seeing keys ‘stick’ while playing, verify that the operating systems’ accessibility options and their shortcut keys are turned off, things like ‘sticky keys’, and verify that Popup killers or other resident programs are not mapped to the sticking key. Also keys can stick on some KVM switch boxes if their hotkey switches are set to [Ctrl] etc.

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

· Lightguns and mice are treated like mappable joysticks in current versions of Mame. If multiple mice are in use it is necessary to enter the in-game [TAB] menu and map their axes in the ‘Input General’ section.

Settings Topics

· With the advent of version 0.66 MameUI no longer stores its configuration information in the Windows registry, it stores it in \MameUI32/64.ini and \ini\Mame.ini. To remove vestiges of the old versions, run regedit.exe and delete the following key: HKEY_CURRENT_USER\Software\Freeware\MameUI.

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

· If GUI settings and/or audit results aren’t being maintained, verify the existence of a writeable MameUI32/64.ini and that the \ini directory is present and writeable [not read only] under the MameUI.exe location.

· If baseline Mame settings like directories and game options are not being maintained, verify the existence of a writeable Mame.ini [not read-only] in the \ini directory and that the \ini directory itself is writeable.

· If experiencing odd behavior with MameUI saving files or not appearing to clear its settings, verify that there are not multiple shortcuts pointing to different versions, that an .exe is not being used by itself instead of a shortcut to the .exe, or a shortcut pointing to an old version of the .exe. Also verify that there are not multiple versions of MameUI running in memory as the last one out will save the settings.

· If seeing MameUI folders being created on the desktop, verify that the .exe itself is not sitting on the desktop and being launched which is not correct. Verify that a short-cut to the original is being properly utilised. This means setting the properties on the shortcut to ‘start in’ the appropriate directory that the original .exe resides in.

· If the in-game [TAB] menu is no longer working or can’t be accessed, it has been mapped to another key; delete the default.cfg file in the \MameUI\cfg directory.

· If in-game [TAB] settings need to be completely reset due to bad mappings, delete the default.cfg file in the \MameUI\cfg directory.

· To remove the mappings on an individual game from the [TAB] menu, delete its *.cfg file in the \MameUI\cfg directory, i.e. dkong.cfg, asteroid.cfg.

· If having trouble mapping keys with the [TAB] menu, verify the game is not paused while mapping.

· MameUI inherits a limit from baseline Mame on the amount of characters that can be used for the ROM paths. If directory settings are not being maintained, pare down the number and names of the directories being added or simply use a single \ROMs directory which MameUI expects.

· If having trouble getting games to display in the proper orientation [they will not rotate] verify that rotation is set to default, and that there are no video-card specific hot-keys set in Windows’ advanced display settings tab that could impact rotation, ATI and NVIDIA both now include the ability to rotate the Windows screen to portrait orientation.

· If games are appearing sideways regardless of rotation settings, an onboard Intel graphic chipset or similar may be in use. Disable the auto rotation capabilities of the Intel graphic chip.

· MameUI now supports the core’s –mt switch. This allows multi-threading of the final video blit during games. Dual core chips [X2, C2D, etc.] can take advantage of this feature to offload the work to the second thread and make MameUI more efficient. Speed gains are seen on the unthrottled GPU bound games like dkong, invaders, etc.

· MameUI now stores its settings in external *.ini files instead of the registry. If it is necessary to return MameUI to baseline, simply delete the MameUI32/64.ini file and the Mame.ini file in the \ini directory. The next time MameUI runs it will recreate those files with the default settings.

GUI Related Topics & Miscellaneous Tips

· MameUI will read freestanding icons in the \icons directory first, then icons in the icons.zip file.

· 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.

· Sometimes icons in large icon view may appear to be missing their white color or have portions transparent, this is the result of having white chosen as the windows desktop window setting in Control Panel / Display. Change the window setting to slightly off-white or another color to return the icons to their appropriate look.

· To toggle the MameUI UI fullscreen [no Windows titlebar and potentially no toolbar or status bar] and back use the [F11] key.

· 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 or if it is a large enough font [or bold] to anti-alias.

· MameUI no longer supports *.bmp format and may show a blank or empty background if a *.bmp is erroneously renamed and used for bkground.png, or if the bkground directory is marked as read only and MameUI cannot create the bkground.png file when run.

· To return to a blank gray background in the GUI, delete the bkground.png file in the \MameUI\bkground directory.

· Quickly navigate through games in the details view by simply typing the first few letters in 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].

· Audit an individual game with [Alt-A].

· Various arcade game controller companies produce custom made configuration files for their setups; these *.cfg files need to go in the \MameUI\ctrlr folder to be recognized in the MameUI controllers tab. These files are the responsibility of the controller companies themselves and are not included or endorsed by MameUI, they can typically be found at the companies’ web sites.

· In grouped view, clones are indented regardless of whether their parents are visible; in a non-All Games folder this means that there is not a direct relationship of a clone to the game item above it if that games’ parent is not shown. This behaviour can be changed by the setting Interface Options • No offset for clones missing parent in view.

· Certain items in the GUI may be missing if MameUI is run on a Win2K/XP box and the user is not an admin or member of the admin group.

· The unavailable folder and the available filter are disabled in MameUI due to a direct request from Nicola.

Keyboard Shortcuts

· Type letters of game name to jump directly to its first instance. Alt-1 through Alt-7: Toggle art views. Alt-A: Audit selected game. Alt-B: Toggle art tabs. Alt-D: Toggle folder pane. Alt-P: Toggle screenshot area. Alt-S: Toggle status bar. Alt-T: Toggle toolbar. Alt-U: Audit selected folder. Alt-Enter: Show games’ properties. Ctrl-F: Text filter. Ctrl-R: Choose random game from GUI. Ctrl-Page Up: Scroll up in history.dat text window. Ctrl-Page Down: Scroll down in history.dat text window. F11: Fullscreen mode toggle.

Refresh Restart Instructions

· a. Re-download the binary dist package from MameUI. b. Disable running anti-virus packages before extracting the files. c. Double-click the self-extracting archive. d. When prompted, enter “c:\” [no quotes] as the destination folder. e. Launch MameUI by double-clicking its .exe, allow the audit/refresh to finish, it should go quick as there are no ROMs. f. Put a couple of zipped ROMs from mamedev.org in the c:\MameUI\ROMs directory. g. Launch MameUI, audit the two games individually with [Alt-A]. h. Launch Robby or Gridlee. i. Quit the game, then quit MameUI. j. Add more ROMs and try again.

8/17/2007 1:17:01 AM / john iv


MameUI Credits

MameUI Credits & Resources

Credits

The current MameUI DEV team:

* Chris Kirmse

* Mike Haaland

* René Single

* John L. Hardy IV

Special thanks to Michael Soderstrom for project co-ordination and source maintenance from 1997-2001.

Additional appreciated code contributions by : Jeff Miller, Dan Miller, Andrew Kirmse, Mohammad Rezaei, René Single, John Zissopoulos, Nathan Woods, Robert Schlabbach, Sword, Emuman, BUT, 'Mamesick', Sauro Puccini, Tor Arne Vestbø, R. J. Sheppard, Visk, K&K, Patrick Jones, and ‘Ren Höek’.

Resources

* The MameUI Homepage : Home to the MameUI binary/source, icons, screenshots, testing, work in progress updates, bug reporting/tracking, message board, and benchmarking.

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

* MameUI Defect Tracking and Bug Reports : Excel spreadsheet which displays information about current MameUI feature requests and issues. Check before reporting potential bugs.

* MameDEV.org : Home of baseline MAME.

* MameTesters.org : Reporting and tracking baseline Mamebugs.

MameUI © 2007 C. Kirmse, M. Haaland, & the MameUI team

this help file authored by john iv

2007-11-12 10:17 PM -0800


 +|wcbwl13   "World Class Bowling (v1.3)"
 c|buggyb1   "Buggy Boy (Single Monitor)"
 C|buggybjr  "Buggy Boy Junior/Speed Buggy (Upright)"
 c|buggyboy  "Buggy Boy"
 C|buggyboy  "Buggy Boy/Speed Buggy (Cockpit)"
 C|tx1a      "TX-1 (Atari/Namco/Taito license)"
 c|tx1a      "TX-1 (Atari/Namco/Taito License)"


Copyright © 1997-2007, Nicola Salmoria and the MAME team
All rights reserved.

Redistribution and use of this code or any derivative works are permitted provided that the following conditions are met:

  • Redistributions may not be sold, nor may they be used in a commercial product or activity.
  • Redistributions that are modified from the original source must include the complete source code, including the source code for all components used by a binary built from the modified sources. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
  • Redistributions must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


MAME, the Multiple Arcade Machine Emulator
Copyright © 1997-2007 by Nicola Salmoria and the MAME team

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 both for educational purposes and for preservation purposes, in order to prevent many historical games from disappearing forever once the hardware they run on stops working. Of course, in order to preserve the games and demonstrate that the emulated behavior matches the original, you must also be able to actually play the games. This is considered a nice side effect, and is not MAME's primary focus.

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, CDs, or hard disks from the arcade machines, which must be provided by the user. No portions of the original game code are included in the executable.

II. Cost

MAME is free. Its source code is free. Selling either is not allowed.

III. Image Files

ROM, CD, and hard disk images are all copyrighted material. They cannot be distributed without the explicit permission of the copyright owner. They are not "abandonware", nor have any of the games supported by MAME passed out of copyright.

MAME is not intended to be used as a tool for mass copyright infringement. Therefore, it is strongly against the authors' wishes to sell, advertise, or link to resources that provide illegal copies of ROM, CD, or hard disk images.

IV. Derivative Works

Derivative works are allowed under the MAME license. However, you are discouraged from providing specific functionality that goes against the philosophy of the MAME team. Specifically:

  • Do not add games which are more recent than 3 years old, or which are still being sold new by the company that produced them. MAME is not intended to be a platform that competes with arcade games that are still being actively sold.
  • Do not provide a means of generating a list of games that specifically identifies those games for which the user does not have image files. This only encourages users to seek out sources for illegal ROM, CD, and hard disk images in order to "complete" their collection.
  • Do not remove the startup screen that contains information about why certain non-working games don't work. This only serves to generate a bunch of useless email traffic to the developers asking why the games don't work.

Because the name MAME is trademarked, you must abide by the rules of the trademark usage if you wish to use "MAME" as part of the name your derivative work. In general, this means you must request permission, which requires that you follow the guidelines above.

The version number of any derivative work should reflect the version number of the MAME release it was derived from.

V. Official Contact Information

For questions regarding the MAME license, trademark, or other usage, go to http://www.mamedev.com/.


0.122u1
-------

MAMETesters Bugs Fixed
----------------------
ym2610_0119u2gre [Philip Bennett]

Source Changes
--------------
Zeus updates: [Aaron Giles]
 * Figured out data format of 2 matrix form.
 * Extracted data for lights.
 * Added backface culling which mostly works but fails sometimes, so
    it is disabled.
 * Started on some initial lighting calculations.
 * Cleaned up zeus wave RAM accessors.
 * Changed rendering code to allow for greater parallelism on multicore
    systems.
 * Removed some vestigial zeus 2 hacks.
 * Reduced visible area to remove artifacts.
 * Made right/bottom vertices inclusive to fix some gapping issues.
 * Fixed invasn lightgun offset.

Zeus 2 hardware:
 * Fixed ROM loading, added banking support.
 * Separated zeus 2 video implementation from zeus implementation.
 * Implemented direct pixel accesses; enough to get startup screens
    to show.
 * Hooked up ZPRAM.
 * Fixed digital inputs for crusnexo.
 * Fixed default screen parameters to match the games.

Afega/nmk16 cleanups: [David Haywood, Tomasz Slanina]
 * Merged afega.c and nmk16.c drivers
 * Removed many hacks from both.
 * Fixed a number of games

Fixed C219 sample read order and implemented sign+magnitude format.
Removed GAME_IMPERFECT_SOUND flag from all Namco NA-1 games.
[Philip Bennett]

Fixed ROM-based DCS2 system to ignore HLE transfers. (Fixes broken
sound in invasn.) Properly reduced internal memory on the ADSP-2104
variants. [Aaron Giles]

Fixed bug that would cause events to leak through to the game when the
debugger was up. [Aaron Giles]

Verified some cpu clocks of original boards using a frequency counter:
[Corrado Tomaselli]
 * Changed Success Joe Ym2203 clock from 3mhz to 4mhz
 * Changed Pang M6295 clock from 990khz to 1Mhz
 * Changed Halley Comet main cpu clock to 1.664mhz (it's not a
    mistake, the clock is very low)
 * Besides confirming clocks on some games, I modified:
 * Aerofighters and Turbo Force sound z80 to 5mhz
 * Midnight Resitance 68k cpu to 10mhz (20mhz crystal) and modified
    m6295 clock to 1mhz. Also confirmed pin 7 is high.
    (Midnight resistance has a lot of slow downs on the pcb too)

Minor "code quality" improvements: [Atari Ace]
 * fixed some remaining static/const qualifier missed cases
 * fixed some missing #include "foo.h"
 * a few global names were modified to make them less generic/more
    consistent (voodoo.c, vrender0.c, lethal.c, rungun.c, zac2650.c)
 * some dead/useless code was removed (i8051.c,model1.c,romcmp.c)

New games added or promoted from NOT_WORKING status
---------------------------------------------------
Invasion [Aaron Giles]
Buggy Boy Junior/Speed Buggy (Upright) [Philip Bennett]
Task Force Harrier [David Haywood, Tomasz Slanina]
US AAF Mustang [David Haywood, Tomasz Slanina]
Black Heart [David Haywood, Tomasz Slanina]
Red Hawk [David Haywood, Tomasz Slanina]
Stagger I [David Haywood, Tomasz Slanina]
Sen Jin - Guardian Storm [David Haywood, Tomasz Slanina]
Spectrum 2000 [David Haywood, Tomasz Slanina]
Fire Hawk [David Haywood, Tomasz Slanina]

New clones added
----------------
World Class Bowling (v1.3) [Brian Troha]


 This file describes general usage information about MAME. It is intended
to cover aspects of using and configuring the program that are common
across operating systems. For additional OS-specific options, please see
the separate documentation for your particular version of MAME.

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

The usual way to run MAME is by telling it to run a particular game:

mame <gamename> [options]

For example:

mame robby -nosound

...will run Robby Roto without sound. There are many, many options
available. All commonly supported options are listed below. Options that
are specific to one operating system or version of MAME will be listed
in a separate document.

An alternative way to run MAME is to give it a command:

mame <command> [parameters]

For example:

mame -listsource gridlee

...will print the name of the source file where the gridlee driver lives
to the screen. There are just a handful of these commands in MAME. They
are all listed below, just before the options list.

Default Keys
------------

All the keys below are fully configurable in the user interface. This list
shows the standard keyboard configuration.

Tab Toggles the configuration menu.

~ Toggles the On Screen Display. When the on-screen display is
visible, you can use the following keys to control it:

Up - select previous parameter to modify
Down - select next parameter to modify
Enter - reset parameter value to its default

Left - decrease the value of the selected parameter
Control+Left - decrease the value by 10x
Shift+Left - decrease the value by 0.1x
Alt+Left - decrease the value by the smallest amount

Right - increase the value of the selected parameter
Control+Right - increase the value by 10x
Shift+Right - increase the value by 0.1x
Alt+Right - increase the value by the smallest amount

P Pauses the game.

Shift+P While paused, advances to next frame.

F1 Toggle crosshairs for games that use them. Each subsequent
press will enable crosshairs for one more player.

F2 Service Mode for games that support it.

F3 Resets the game.

Shift+F3 Performs a "hard reset", which tears everything down and re-
creates it from scratch. This is a more thorough and complete
reset than an F3.

F4 Shows the game palette, decoded GFX, and any tilemaps. Use the
Enter key to switch between the three modes (palette, graphics,
and tilemaps). Press F4 again to turn off the display. The key
controls in each mode vary slightly:

* Palette/colortable mode:
[ ] - switch between palette and colortable modes
Up/Down - scroll up/down one line at a time
Page Up/Page Down - scroll up/down one page at a time
Home/End - move to top/bottom of list
-/+ - increase/decrease the number of colors per row
Enter - switch to graphics viewer

* Graphics mode:
[ ] - switch between different graphics sets
Up/Down - scroll up/down one line at a time
Page Up/Page Down - scroll up/down one page at a time
Home/End - move to top/bottom of list
Left/Right - change color displayed
R - rotate tiles 90 degrees clockwise
-/+ - increase/decrease the number of tiles per row
Enter - switch to tilemap viewer

* Tilemap mode:
[ ] - switch between different tilemaps
Up/Down/Left/Right - scroll 8 pixels at a time
Shift+Up/Down/Left/Right - scroll 1 pixel at a time
Control+Up/Down/Left/Right - scroll 64 pixels at a time
R - rotate tilemap view 90 degrees clockwise
-/+ - increase/decrease the zoom factor
Enter - switch to palette/colortable mode

Note: Not all games have decoded graphics and/or tilemaps.

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 not supported for a large number of drivers. If
support is not enabled for a given driver, you will receive a
warning when attempting to save or load.

Shift+F7 Create a save state. Requires an additional keypress to identify
the state, similar to the load option above.

F8 Decrease frame skip on the fly.

F9 Increase frame skip on the fly.

F10 Toggle speed throttling.

F11 Toggles speed display.

Shift+F11 Toggles profiler display (debug builds only).

F12 Saves a screen snapshot.

Insert Fast forward. While held, runs the game with throttling disabled
and with the maximum frameskip.

Escape Exits emulator.

Core commands
-------------

-help / -h / -?

Displays current MAME version and copyright notice.

-validate / -valid

Performs internal validation on every driver in the system. Run this
before submitting changes to ensure that you haven't violated any of
the core system rules.

Configuration commands
----------------------

-createconfig / -cc

Creates the default mame.ini file. All the configuration options
(not commands) described below 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.

Frontend commands
-----------------

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).

-listxml / -lx [<gamename|wildcard>]

List comprehensive details for all of the supported games. The output
is quite long, so it is usually better to redirect this into a file.
The output is in XML format. By default all games are listed; however,
you can limit this list by specifying a driver name or wildcard after
the -listxml command.

-listfull / -ll [<gamename|wildcard>]

Displays a list of game driver names and descriptions. By default all
games are listed; however, you can limit this list by specifying a
driver name or wildcard after the -listfull command.

 -listsource / -ls [<gamename|wildcard>]

Displays a list of drivers and the names of the source files their
game drivers live in. Useful for finding which driver a game runs on
in order to fix bugs. By default all games are listed; however, you
can limit this list by specifying a driver name or wildcard after
the -listsource command.

-listclones / -lc [<gamename|wildcard>]

Displays a list of clones. By default all clones are listed; however,
you can limit this list by specifying a driver name or wildcard after
the -listsource command.

 -listcrc

Displays a full list of CRCs of all ROM images referenced by all
drivers within MAME.

-listroms <gamename>

Displays a list of ROM images referenced by the specified game.

-listsamples <gamename>

Displays a list of samples referenced by the specified game.

-verifyroms [<gamename|wildcard>]

Checks for invalid or missing ROM images. By default all drivers that
have valid ZIP files or directories in the rompath are verified;
however, you can limit this list by specifying a driver name or
wildcard after the -verifyroms command.

-verifysamples [<gamename|wildcard>]

Checks for invalid or missing samples. By default all drivers that
have valid ZIP files or directories in the samplepath are verified;
however, you can limit this list by specifying a driver name or
wildcard after the -verifyroms command.

 -romident

Attempts to identify ROM files, if they are known to MAME, in the
specified .zip file or directory. This command can be used to try and
identify ROM sets taken from unknown boards. On exit, the errorlevel
is returned as one of the following:

0: means all files were identified
7: means all files were identified except for 1 or more "non-ROM"
files
8: means some files were identified
9: means no files were identified

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

-[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
- <mymame>.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 overlay effects in the
vector games, you can create a vector.ini with the "effect none" line
in it, and it will override whatever effect value you have in your
mame.ini. The default is ON (-readconfig).

Core search path options
------------------------

-rompath / -rp <path>

Specifies a list of paths within which to find ROM or hard disk images.
Multiple paths can be specified by separating them with semicolons.
The default is 'roms' (that is, a directory "roms" in the same directory
as the MAME executable).

 -samplepath / -sp <path>

Specifies a list of paths within which to find sample files. Multiple
paths can be specified by separating them with semicolons. The default
is 'samples' (that is, a directory "samples" in the same directory as
the MAME executable).

 -artpath / -artwork_directory <path>

Specifies a list of paths within which to find artwork files. Multiple
paths can be specified by separating them with semicolons. The default
is 'artwork' (that is, a directory "artwork" in the same directory as
the MAME executable).

 -ctrlrpath / -ctrlr_directory <path>

Specifies a list of paths within which to find controller-specific
configuration files. Multiple paths can be specified by separating
them with semicolons. The default is 'ctrlr' (that is, a directory
"ctrlr" in the same directory as the MAME executable).

 -inipath <path>

Specifies a list of paths within which to find .INI files. Multiple
paths can be specified by separating them with semicolons. The default
is '.;ini' (that is, search in the current directory first, and then
in the directory "ini" in the same directory as the MAME executable).

 -fontpath <path>

Specifies a list of paths within which to find .BDF font files. Multiple
paths can be specified by separating them with semicolons. The default
is '.' (that is, search in the same directory as the MAME executable).

Core Output Directory Options
-----------------------------

 -cfg_directory <path>

Specifies a single directory where configuration files are stored.
Configuration files store user configurable settings that are read at
startup and written when MAME exits. The default is 'cfg' (that is,
a directory "cfg" in the same directory as the MAME executable). If
this directory does not exist, it will be automatically created.

 -nvram_directory <path>

Specifies a single directory where NVRAM files are stored. NVRAM files
store the contents of EEPROM and non-volatile RAM (NVRAM) for games
which used this type of hardware. This data is read at startup and
written when MAME exits. The default is 'nvram' (that is, a directory
"nvram" in the same directory as the MAME executable). If this
directory does not exist, it will be automatically created.

 -memcard_directory <path>

Specifies a single directory where memory card files are stored.
Memory card files store the contents of removable memory cards for
games which used this type of hardware. This data is read and written
under control of the user via the "Memory Card" menu in the user
interface. The default is 'memcard' (that is, a directory "memcard"
in the same directory as the MAME executable). If this directory does
not exist, it will be automatically created.

 -input_directory <path>

Specifies a single directory where input recording files are stored.
Input recordings are created via the -record option and played back
via the -playback option. The default is 'inp' (that is, a directory
"inp" in the same directory as the MAME executable). If this directory
does not exist, it will be automatically created.

 -state_directory <path>

Specifies a single directory where save state files are stored. Save
state files are read and written either upon user request, or when
using the -autosave option. The default is 'sta' (that is, a directory
"sta" in the same directory as the MAME executable). If this directory
does not exist, it will be automatically created.

 -snapshot_directory <path>

Specifies a single directory where screen snapshots are stored, when
requested by the user. The default is 'snap' (that is, a directory
"snap" in the same directory as the MAME executable). If this
directory does not exist, it will be automatically created.

-diff_directory <path>

Specifies a single directory where hard drive differencing files are
stored. Hard drive differencing files store any data that is written
back to a hard disk image, in order to preserve the original image.
The differencing files are created at startup when a game with a hard
disk image. The default is 'diff' (that is, a directory "diff" in the
same directory as the MAME executable). If this directory does not
exist, it will be automatically created.

 -comment_directory <path>

Specifies a single directory where debugger comment files are stored.
Debugger comment files are written by the debugger when comments are
added to the disassembly for a game. The default is 'comments' (that
is, a directory "comments" in the same directory as the MAME
executable). If this directory does not exist, it will be
automatically created.

Core Filename Options
---------------------

 -cheat_file <filename>

Specifies the name of the cheat database file. The default is
'cheat.dat'.

Core state/playback options
---------------------------

-state <slot>

Immediately after starting the specified game, will cause the save
state in the specified <slot> to be loaded.

-[no]autosave

When enabled, automatically creates a save state file when exiting
MAME and automatically attempts to reload it when later starting MAME
with the same game. This only works for games that have explicitly
enabled save state support in their driver. The default is OFF
(-noautosave).

-playback / -pb <filename>

Specifies a file from which to play back a series of game inputs. This
feature does not work reliably for all games, but can be used to watch
a previously recorded game session from start to finish. In order to
make things consistent, you should only record and playback with all
configuration (.cfg), NVRAM (.nv), and memory card files deleted. The
default is NULL (no playback).

-record / -rec <filename>

Specifies a file to record all input from a game session. This can be
used to record a game session for later playback. This feature does
not work reliably for all games, but can be used to watch a previously
recorded game session from start to finish. In order to make things
consistent, you should only record and playback with all configuration
(.cfg), NVRAM (.nv), and memory card files deleted. The default is
NULL (no recording).

 -mngwrite <filename>

Writes each video frame to the given <filename> in MNG format,
producing an animation of the game session. Note that -mngwrite only
writes video frames; it does not save any audio data. Use -wavwrite
for that, and reassemble the audio/video using offline tools. The
default is NULL (no recording).

 -wavwrite <filename>

Writes the final mixer output to the given <filename> in WAV format,
producing an audio recording of the game session. The default is
NULL (no recording).

Core performance 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 below. The default is OFF (-noautoframeskip).

-frameskip / -fs <level>

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.

 -seconds_to_run / -str <seconds>

This option can be used for benchmarking and automated testing. It tells
MAME to stop execution after a fixed number of seconds. By combining
this with a fixed set of other command line options, you can set up a
consistent environment for benchmarking MAME performance. In addition,
upon exit, the -str option will write a screenshot called final.png
to the game's snapshot directory.

-[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. Note that the
fastest speed is more often than not limited by your graphics card,
especially for older games. The default is ON (-throttle).

-[no]sleep

Allows MAME to give time back to the system when running with -throttle.
This allows other programs to have some CPU time, assuming that the
game isn't taxing 100% of your CPU resources. This option can
potentially cause hiccups in performance if other demanding programs
are running. The default is ON (-sleep).

Core rotation options
---------------------

-[no]rotate

Rotate the game to match its normal state (horizontal/vertical). This
ensures that both vertically and horizontally oriented games show up
correctly without the need to rotate your monitor. If you want to keep
the game displaying 'raw' on the screen the way it would have in the
arcade, turn this option OFF. The default is ON (-rotate).

-[no]ror
-[no]rol

Rotate the game screen to the right (clockwise) or left (counter-
clockwise) relative to either its normal state (if -rotate is
specified) or its native state (if -norotate is specified). The
default for both of these options is OFF (-noror -norol).

-[no]flipx
-[no]flipy

Flip (mirror) the game screen either horizontally (-flipx) or
vertically (-flipy). The flips are applied after the -rotate and
-ror/-rol options are applied. The default for both of these options
is OFF (-noflipx -noflipy).

-[no]autoror
-[no]autorol

These options are designed for use with pivoting screens that only
pivot in a single direction. If your screen only pivots clockwise,
use -autorol to ensure that the game will fill the screen either
horizontally or vertically in one of the directions you can handle.
If your screen only pivots counter-clockwise, use -autoror.

Core artwork options
--------------------

-[no]artwork_crop / -[no]artcrop

Enable cropping of artwork to the game screen area only. This works
best with -video gdi or -video d3d, and means that vertically oriented
games running full screen can display their artwork to the left and
right sides of the screen. This does not work with -video ddraw
because of the way the game screens are rendered and scaled after the
fact. This option can also be controlled via the Video Options menu in
the user interface. The default is OFF (-noartwork_crop).

-[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).

Core screen options
-------------------

-brightness <value>

Controls the default brightness, or black level, of the game screens.
This option does not affect the artwork or other parts of the display.
Using the MAME UI, you can individually set the brightness for each
game screen; this option controls the initial value for all visible
game screens. The standard value is 1.0. Selecting lower values (down
to 0.1) will produce a darkened display, while selecting higher values
(up to 2.0) will give a brighter display. The default is 1.0.

-contrast <value>

Controls the contrast, or white level, of the game screens. This
option does not affect the artwork or other parts of the display.
Using the MAME UI, you can individually set the contrast for each
game screen; this option controls the initial value for all visible
game screens. The standard value is 1.0. Selecting lower values (down
to 0.1) will produce a dimmer display, while selecting higher values
(up to 2.0) will give a more saturated display. The default is 1.0.

-gamma <value>

Controls the gamma, which produces a potentially nonlinear black to
white ramp, for the game screens. This option does not affect the
artwork or other parts of the display. Using the MAME UI, you can
individually set the gamma for each game screen; this option controls
the initial value for all visible game screens. The standard value is
1.0, which gives a linear ramp from black to white. Selecting lower
values (down to 0.1) will increase the nonlinearity toward black,
while selecting higher values (up to 3.0) will push the nonlinearity
toward white. The default is 1.0.

-pause_brightness <value>

This controls the brightness level when MAME is paused. The default
value is 0.65.

Core vector options
-------------------

-[no]antialias / -[no]aa

Enables antialiased line rendering for vector games. The default is ON
(-antialias).

-beam <width>

Sets the width of the vectors. This is a scaling factor against the
standard vector width. A value of 1.0 will keep the default vector
line width. Smaller values will reduce the width, and larger values
will increase the width. The default is 1.0.

-flicker <value>

Simulates a vector "flicker" effect, similar to a vector monitor that
needs adjustment. This option requires a float argument in the range
of 0.00 - 100.00 (0=none, 100=maximum). The default is 0.

Core sound options
------------------

-[no]sound

Enable or disable sound altogether. The default is ON (-sound).

-samplerate <value> / -sr <value>

Sets the audio sample rate. Smaller values (e.g. 11025) cause lower
audio quality but faster emulation speed. Higher values (e.g. 48000)
cause higher audio quality but slower emulation speed. The default is
48000.

-[no]samples

Use samples if available. The default is ON (-samples).

-volume / -vol <value>

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

Core input options
------------------

-ctrlr <controller>

Enables support for special controllers. Configuration files are
loaded from the ctrlrpath. They are in the same format as the .cfg
files that are saved, but only control configuration data is read
from the file. The default is NULL (no controller file).

-[no]mouse

Controls whether or not MAME makes use of mouse controllers. When
this is enabled, you will likely be unable to use your mouse for other
purposes until you exit or pause the game. The default is OFF
(-nomouse).

-[no]joystick / -[no]joy

Controls whether or not MAME makes use of joystick/gamepad controllers.
When this is enabled, MAME will ask DirectInput about which
controllers are connected. The default is OFF (-nojoystick).

-[no]lightgun / -[no]gun

Controls whether or not MAME makes use of lightgun controllers.
Note that most lightguns map to the mouse, so using -lightgun and
-mouse together may produce strange results. The default is OFF
(-nolightgun).

-[no]multikeyboard / -[no]multikey

Determines whether MAME differentiates between multiple keyboards.
Some systems may report more than one keyboard; by default, the data
from all of these keyboards is combined so that it looks like a single
keyboard. Turning this option on will enable MAME to report keypresses
on different keyboards independently. The default is OFF
(-nomultikeyboard).

-[no]multimouse

Determines whether MAME differentiates between multiple mice. Some
systems may report more than one mouse device; by default, the data
from all of these mice is combined so that it looks like a single
mouse. Turning this option on will enable MAME to report mouse
movement and button presses on different mice independently. The
default is OFF (-nomultimouse).

-[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 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]offscreen_reload / -[no]reload

Controls whether or not MAME treats a second button input from a
lightgun as a reload signal. In this case, MAME will report the gun's
position as (0,MAX) with the trigger held, which is equivalent to an
offscreen reload. This is only needed for games that required you to
shoot offscreen to reload, and then only if your gun does not support
off screen reloads. The default is OFF (-nooffscreen_reload).

 -joystick_map <map> / -joymap <map>

Controls how joystick values map to digital joystick controls. MAME
accepts all joystick input from the system as analog data. For true
analog joysticks, this needs to be mapped down to the usual 4-way or
8-way digital joystick values. To do this, MAME divides the analog
range into a 9x9 grid. It then takes the joystick axis position (for
X and Y axes only), maps it to this grid, and then looks up a
translation from a joystick map. This parameter allows you to specify
the map. The default is 'auto', which means that a standard 8-way,
4-way, or 4-way diagonal map is selected automatically based on the
input port configuration of the current game.

Maps are defined as a string of numbers and characters. Since the grid
is 9x9, there are a total of 81 characters necessary to define a
complete map. Below is an example map for an 8-way joystick:

777888999 Note that the numeric digits correspond to the keys
777888999 on a numeric keypad. So '7' maps to up+left, '4' maps
777888999 to left, '5' maps to neutral, etc. In addition to the
444555666 numeric values, you can specify the character 's',
444555666 which means "sticky". In this case, the value of the
444555666 map is the same as it was the last time a non-sticky
111222333 value was read.
111222333
111222333

To specify the map for this parameter, you can specify a string of
rows separated by a '.' (which indicates the end of a row), like so:

777888999.777888999.777888999.444555666.444555666.444555666.
111222333.111222333.111222333

However, this can be reduced using several shorthands supported by the
<map> parameter. If information about a row is missing, then it is
assumed that any missing data in columns 5-9 are left/right symmetric
with data in columns 0-4; and any missing data in colums 0-4 is
assumed to be copies of the previous data. The same logic applies to
missing rows, except that up/down symmetry is assumed.

By using these shorthands, the 81 character map can be simply
specified by this 11 character string: 7778...4445

Looking at the first row, 7778 is only 4 characters long. The 5th
entry can't use symmetry, so it is assumed to be equal to the previous
character '8'. The 6th character is left/right symmetric with the 4th
character, giving an '8'. The 7th character is left/right symmetric
with the 3rd character, giving a '9' (which is '7' with left/right
flipped). Eventually this gives the full 777888999 string of the row.

The second and third rows are missing, so they are assumed to be
identical to the first row. The fourth row decodes similarly to the
first row, producing 444555666. The fifth row is missing so it is
assumed to be the same as the fourth.

The remaining three rows are also missing, so they are assumed to be
the up/down mirrors of the first three rows, giving three final rows
of 111222333.

 -joystick_deadzone <value> / -joy_deadzone <value> / -jdz <value>

If you play with an analog joystick, the center can drift a little.
joystick_deadzone tells how far along an axis you must move before the
axis starts to change. This option expects a float in the range of
0.0 to 1.0. Where 0 is the center of the joystick and 1 is the outer
limit. The default is 0.3.

 -joystick_saturation <value> / joy_saturation <value> / -jsat <value>

If you play with an analog joystick, the ends can drift a little,
and may not match in the +/- directions. joystick_saturation tells how
far along an axis movement change will be accepted before it reaches
the maximum range. This option expects a float in the range of 0.0 to
1.0, where 0 is the center of the joystick and 1 is the outer limit.
The default is 0.85.

Core input automatic enable options
-----------------------------------

 -paddle_device <keyboard|mouse|joystick|lightgun|none> / -paddle
 -adstick_device <keyboard|mouse|joystick|lightgun|none> / -adstick
 -pedal_device <keyboard|mouse|joystick|lightgun|none> / -pedal
 -dial_device <keyboard|mouse|joystick|lightgun|none> / -dial
 -trackball_device <keyboard|mouse|joystick|lightgun|none> / -trackball
 -lightgun_device <keyboard|mouse|joystick|lightgun|none>
 -positional_device <keyboard|mouse|joystick|lightgun|none>

Each of these options controls autoenabling the mouse, joystick, or
lightgun depending on the presence of a particular class of analog
control for a particular game. For example, if you specify the option
-paddle mouse, then any game that has a paddle control will
automatically enable mouse controls just as if you had explicitly
specified -mouse. Note that these controls override the values of
-[no]mouse, -[no]joystick, etc.

Debugging options
-----------------

-[no]log

Creates a file called error.log which contains all of the internal
log messages generated by the MAME core and game drivers. The default
is OFF (-nolog).

-[no]verbose / -[no]v

Displays internal diagnostic information. This information is very
useful for debugging problems with your configuration. IMPORTANT: when
reporting bugs, please run with mame -verbose and include the
resulting information. The default is OFF (-noverbose).

-[no]debug

Activates the integrated debugger. This is available only if the
program is compiled with MAME_DEBUG defined. By default, the debugger
is entered by pressing the tilde (~) key during emulation. It is also
entered immediately at startup. The default is ON (-debug).

 -debugscript <filename>

Specifies a file that contains a list of debugger commands to execute
immediately upon startup. The default is NULL (no commands).

Core misc options
-----------------

-bios <biosname>

Specifies the specific BIOS to use with the current game, for game
systems that make use of a BIOS. The -listxml output will list all of
the possible BIOS names for a game. The default is 'default'.

-[no]cheat / -[no]c

Enables the reading of the cheat database, if present, and the Cheat
menu in the user interface. The default is OFF (-nocheat).

-[no]skip_gameinfo

Forces MAME to skip displaying the game info screen. The default is
OFF (-noskip_gameinfo).

This file describes Windows-specific usage information about MAME. It is
intended to cover aspects of using and configuring the program that are
specific to running MAME from the command line on a Windows-based system.
For common options that apply to all systems, please see config.txt.

Default Keys
------------

In addition to the keys described in config.txt, the following additional
keys are defined for Windows versions of MAME:

Alt+Enter Toggles between full-screen and windowed mode.

Windows debugging options
-------------------------

-[no]oslog

Outputs the error.log data to the Windows debugger. This can be used at
the same time as -log to output the log data to both targets as well.
Default is OFF (-nooslog).

Windows performance options
---------------------------

-priority <priority>

Sets the thread priority for the MAME threads. By default the priority
is left alone to guarantee proper cooperation with other applications.
The valid range is -15 to 1, with 1 being the highest priority. The
default is 0 (NORMAL priority).

-[no]multithreading / -[no]mt

Enables multithreading within MAME. At the moment, this causes the
window and all DirectDraw/Direct3D code to execute on a second thread,
which can improve performance on hyperthreaded and multicore systems.
The default is OFF (-nomultithreading).

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

-video <gdi|ddraw|d3d|none>

Specifies which video subsystem to use for drawing. By specifying 'gdi'
here, you tell MAME to render video using standard Windows graphics
drawing calls. This is the slowest but most compatible option.
Specifying 'ddraw' instructs MAME to use DirectDraw for rendering.
This causes MAME to render everything at a lower resolution and then
upscale the results at the end. This produces high performance,
especially on older or low-power video cards, but has a noticeably
lower output quality. Specifying 'd3d' tells MAME to use Direct3D for
rendering. This produces the highest quality output and enables all
rendering options. It is recommended if you have a recent (2002+)
video card. The final option 'none' displays no windows and does no
drawing. This is primarily present for doing CPU benchmarks without
the overhead of the video system. The default is d3d.

-numscreens <count>

Tells MAME how many output windows to create. For most games, a single
output window is all you need, but some games originally used multiple
screens. Each screen (up to 4) has its own independent settings for
physical monitor, aspect ratio, resolution, and view, which can be
set using the options below. The default is 1.

-[no]window

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

-[no]maximize / -[no]max

Controls initial window size in windowed mode. If it is set on, the
window will initially be set to the maximum supported size when you
start MAME. If it is turned off, the window will start out at the
smallest supported size. This option only has an effect when the
-window option is used. The default is ON (-maximize).

-[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).

-prescale <amount>

Controls the size of the screen images when they are passed off to the
graphics system for scaling. At the minimum setting of 1, the screen
is rendered at its original resolution before being scaled. At higher
settings, the screen is expanded by a factor of <amount> before being
scaled. With -video ddraw or -video d3d, this produces a less blurry
image at the expense of some speed. In -video ddraw mode, this also
increases the effective resolution of non-screen elements such as
artwork and fonts. The default is 1.

-effect <filename>

Specifies a single PNG file that is used as an overlay over any game
screens in the video display. This PNG file is assumed to live in the
root of one of the artpath directories. The pattern in the PNG file is
repeated both horizontally and vertically to cover the entire game
screen areas (but not any external artwork), and is rendered at
the target resolution of the game image. For -video gdi and -video d3d
modes, this means that one pixel in the PNG will map to one pixel on
your output display. For -video ddraw, this means that one pixel in the
PNG will map to one pixel in the prescaled game screen. If you wish to
use an effect that requires mapping n PNG pixels to each game screen
pixel with -video ddraw, you need to specify a -prescale factor of n as
well. The RGB values of each pixel in the PNG are multiplied against the
RGB values of the target screen. The default is 'none', meaning no
effect.

-[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. You should only need to turn this on in windowed mode.
In full screen mode, it is only needed if -triplebuffer does not
remove the tearing, in which case you should use -notriplebuffer
-waitvsync. Note that this option does not work with -video gdi mode.
The default is OFF (-nowaitvsync).

-[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. This option is intended
mainly for those who have tweaked their video card's settings to
provide carefully matched refresh rate options. Note that this option
does not work with -video gdi mode.The default is OFF (-nosyncrefresh).

DirectDraw-specific options
---------------------------

-[no]hwstretch / -[no]hws

When enabled, MAME uses the hardware stretching abilities of your
video card to scale the game image and associated artwork to the
target 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 which case you might want
to disable this option. In addition, if you have configured specific
arcade-like video modes for MAME and don't want MAME to perform any
non-integral scaling of the image, you should also disable this option.
The default is ON (-hwstretch).

Direct3D-specific options
-------------------------

-d3dversion <version>

MAME supports both Direct3D 9 and Direct3D 8 for maximum compatibility.
By default, it will automatically detect which one it can use and use
that version exclusively. You can override MAME's selection with this
option. It is primarily intended as a means for the MAME developers to
test compatibility with older hardware; for the most part, there is no
reason to alter this setting. The default is 9.

-[no]filter / -[no]d3dfilter / -[no]flt

Enable bilinear filtering on the game screen graphics. When disabled,
point filtering is applied, which is crisper but leads to scaling
artifacts. If you don't like the filtered look, you are probably better
off increasing the -prescale value rather than turning off filtering
altogether. The default is ON (-filter).

Per-window options
------------------

-screen <display>
-screen0 <display>
-screen1 <display>
-screen2 <display>
-screen3 <display>

Specifies which physical monitor on your system you wish to have each
window use by default. In order to use multiple windows, you must have
increased the value of the -numscreens option. The name of each
display in your system can be determined by running MAME with the
-verbose option. The display names are typically in the format of:
\\.\DISPLAYn, where 'n' is a number from 1 to the number of connected
monitors. The default value for these options is 'auto', which means
that the first window is placed on the first display, the second
window on the second display, etc.

The -screen0, -screen1, -screen2, -screen3 parameters apply to the
specific window. The -screen parameter applies to all windows. The
window-specific options override values from the all window option.

-aspect <width:height> / -screen_aspect <num:den>
-aspect0 <width:height>
-aspect1 <width:height>
-aspect2 <width:height>
-aspect3 <width:height>

Specifies the physical aspect ratio of the physical monitor for each
window. In order to use multiple windows, you must have increased the
value of the -numscreens option. The physical aspect ratio can be
determined by measuring the width and height of the visible screen
image and specifying them separated by a colon. The default value for
these options is 'auto', which means that MAME assumes the aspect
ratio is proportional to the number of pixels in the desktop video
mode for each monitor.

The -aspect0, -aspect1, -aspect2, -aspect3 parameters apply to the
specific window. The -aspect parameter applies to all windows. The
window-specific options override values from the all window option.

-resolution <widthxheight[@refresh]> / -r <widthxheight[@refresh]>
-resolution0 <widthxheight[@refresh]> / -r0 <widthxheight[@refresh]>
-resolution1 <widthxheight[@refresh]> / -r1 <widthxheight[@refresh]>
-resolution2 <widthxheight[@refresh]> / -r2 <widthxheight[@refresh]>
-resolution3 <widthxheight[@refresh]> / -r3 <widthxheight[@refresh]>

Specifies an exact resolution to run in. In full screen mode, MAME
will try to use the specific resolution you request. The width and
height are required; the refresh rate 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 refresh rate. Similarly, -resolution 0x0@60 will force a
60Hz refresh rate, but allows MAME to choose the resolution. The
string "auto" is also supported, and is equivalent to 0x0@0. In window
mode, this resolution is used as a maximum size for the window. This
option requires the -switchres option as well in order to actually
enable resolution switching with -video ddraw or -video d3d. The
default value for these options is 'auto'.

The -resolution0, -resolution1, -resolution2, -resolution3 parameters
apply to the specific window. The -resolution parameter applies to all
windows. The window-specific options override values from the all
window option.

-view <viewname>
-view0 <viewname>
-view1 <viewname>
-view2 <viewname>
-view3 <viewname>

Specifies the initial view setting for each window. The <viewname>
does not need to be a perfect match; rather, it will select the first
view whose name matches all the characters specified by <viewname>.
For example, -view native will match the "Native (15:14)" view even
though it is not a perfect match. The value 'auto' is also supported,
and requests that MAME perform a default selection. The default value
for these options is 'auto'.

The -view0, -view1, -view2, -view3 parameters apply to the
specific window. The -view parameter applies to all windows. The
window-specific options override values from the all window option.

Full screen options
-------------------

-[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. -triplebuffer will
override -waitvsync, if the buffer is sucessfully created. This option
does not work with -video gdi. The default is OFF (-notriplebuffer).

-[no]switchres

Enables resolution switching. This option is required for the
-resolution* options to switch resolutions in full screen mode. On
modern video cards, there is little reason to switch resolutions unless
you are trying to achieve the "exact" pixel resolutions of the original
games, which requires significant tweaking. This option is also useful
on LCD displays, since they run with a fixed resolution and switching
resolutions on them is just silly. This option does not work with
-video gdi. The default is OFF (-noswitchres).

 -full_screen_brightness / -fsb <value>

Controls the brightness, or black level, of the entire display. The
standard value is 1.0. Selecting lower values (down to 0.1) will produce
a darkened display, while selecting higher values (up to 2.0) will
give a brighter display. Note that not all video cards have hardware to
support this option. This option does not work with -video gdi. The
default is 1.0.

 -full_screen_contrast / -fsc <value>

Controls the contrast, or white level, of the entire display. The
standard value is 1.0. Selecting lower values (down to 0.1) will produce
a dimmer display, while selecting higher values (up to 2.0) will
give a more saturated display. Note that not all video cards have
hardware to support this option. This option does not work with
-video gdi. The default is 1.0.

 -full_screen_gamma / -fsg <value>

Controls the gamma, which produces a potentially nonlinear black to
white ramp, for the entire display. The standard value is 1.0, which
gives a linear ramp from black to white. Selecting lower values (down
to 0.1) will increase the nonlinearity toward black, while selecting
higher values (up to 3.0) will push the nonlinearity toward white. Note
that not all video cards have hardware to support this option. This
option does not work with -video gdi. The default is 1.0.

Windows sound options
---------------------

 -audio_latency <value>

This controls the amount of latency built into the audio streaming. By
default MAME tries to keep the DirectSound audio buffer between 1/5 and
2/5 full. On some systems, this is pushing it too close to the edge,
and you get poor sound sometimes. The latency parameter controls the
lower threshold. The default is 1 (meaning lower=1/5 and upper=2/5).
Set it to 2 (-audio_latency 2) to keep the sound buffer between 2/5 and
3/5 full. If you crank it up to 4, you can definitely notice the lag.

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

-[no]dual_lightgun / -[no]dual

Controls whether or not MAME attempts to track two lightguns connected
at the same time. This option requires -lightgun. This option is a hack
for supporting older dual lightgun setups. If you have multiple
lightguns connected, you will probably just need to enable -mouse and
configure each lightgun independently. The default is OFF
(-nodual_lightgun).


.topic 0x80b904b9
Selects appropriate host controller for emulated controls.
.topic 0x809f0405
Enables anti-aliasing of vector lines providing a smoother look.
.topic 0x809e03fa
Enables cropping external artwork down to selected window or resolution
.topic 0x80bb04c4
Enables manual override of Mame32's 4:3 or 3:4 aspect ratio calculation.  Rarely used.
.topic 0x80bb0483
Enables manual override of Mame32's 4:3 or 3:4 aspect ratio calculation.  Rarely used.
.topic 0x80bb0482
Enables manual override of Mame32's 4:3 or 3:4 aspect ratio calculation.  Rarely used.
.topic 0x809b04a2
Selects the level of audio latency, adjusting this can often eliminate desync of the sound and associated scratchiness.
.topic 0x809c0449
Enables automatic frame skipping during emulation attempting to keep at 100%.
.topic 0x809e040a
Enables the backdrops of artwork in supported games.
.topic 0x809f0406
Selects the width of the vector lines in vector games.
.topic 0x809e03fd
Enables the bezel artwork in supported games.
.topic 0x809e04b1
Selects a particular BIOS in a driver family or individual games e.g. NeoGeo.
.topic 0x809a0400
Selects the brightness level of the screen [but not artwork or UI].
.topic 0x80ad0486
Enables programmatically broadcasting the game being played to attached devices.
.topic 0x809e03f8
Enables cheat capability using the in-game [tab] menu.
.topic 0x809a0402
Selects the contrast level of the screen [but not artwork or UI].
.topic 0x80ad04bb
.topic 0x809a04a0
Enables bilinear filtering during image stretch.
.topic 0x809a04a3
Selects the version of Direct3D to use, 9 by default.
.topic 0x809e04cf
.topic 0x809d0469
Selects .\ctrlr\*.cfg files to use for custom controller mappings.
.topic 0x80b904bb
Selects appropriate host controller for emulated controls.
.topic 0x809d04af
Enables support for dual light guns.
.topic 0x809e0499
Enables Mame32 to use the contents of the \sav directory to restart a game at last quit.
.topic 0x80a90455
Enables filtering out clones, leaving only parent games showing.
.topic 0x80a9046d
Allows typing in text to filter, including: gamename, description, driver, and manufacturer.
.topic 0x80a9049c
Enables filtering out horizontal games, leaving only vertical games showing.
.topic 0x80a90454
Enables filtering out non-working games, leaving only working games showing.
.topic 0x80a9045b
Enables filtering out parent games, leaving only clones showing.
.topic 0x80a90452
Enables filtering out raster games, leaving only vector games showing.
.topic 0x80a90453
Enables filtering out unavailable games, leaving only available games showing.
.topic 0x80a90451
Enables filtering out vector games, leaving only raster games showing.
.topic 0x80a90460
Enables filtering out vertical games, leaving only horizontal games showing.
.topic 0x80a9045c
Enables filtering out working games, leaving only non-working games showing.
.topic 0x809f0407
Selects the flicker level for vector lines.
.topic 0x809a0408
Enables flipping the screen horizontally.
.topic 0x809a0409
Enables flipping the screen vertically.
.topic 0x809c03f1
Selects the number of frames skipped during emulation.
.topic 0x809c0444
Selects the level of the full-screen brightness including artwork and UI.
.topic 0x809c040e
Selects the level of the full-screen contrast including artwork and UI.
.topic 0x809c0442
Selects the level of the full-screen gamma including artwork and UI.
.topic 0x80ad04c8
.topic 0x809a03ff
Selects the gamma level of the screen [but not artwork or UI].
.topic 0x80ad04b5
Enables hiding the mouse cursor on launch, useful for fullscreen UI w/ keyboard controlled cabinets, etc.
.topic 0x809e049f
Selects Mame32's thread priority, default is 0.  Running at real-time 1 is not recommended for potential control lag and sound desync.
.topic 0x806504cb
Enables display of the history.dat file if present in the root directory.
.topic 0x809a046c
Enables hardware stretch for DirectDraw.
.topic 0x809d0487
Selects the level for an analogue joystick's deadzone.
.topic 0x80ad0485
Enables controlling the Mame32 GUI with a gamepad.
.topic 0x809d03eb
Enables gamepad control within games.
.topic 0x809d048b
Selects the level for an analogue joystick's saturation.
.topic 0x809a0474
Enables creating windows for games that are way out of proportion e.g. thick, or tall.
.topic 0x80b204d1
.topic 0x80b204d4
.topic 0x809d048f
Enables lightgun devices.
.topic 0x80b904bd
Selects appropriate host controller for emulated controls.
.topic 0x809e03f9
Enables programmatic logging as a game is played, saved out to file.
.topic 0x809a046e
Enables maximizing the game window or creating a very small window.
.topic 0x80b904be
Enables mouse support within games.
.topic 0x809e04c3
Enables handing off the final video blit to a second thread.  Still experimental [.118] and may cause issues.
.topic 0x80bb0404
Selects number of screens for Mame32 to produce, windowed or multi-head physical monitors.
.topic 0x809e03fb
Enables art overlays in supported games.
.topic 0x80b904b8
Selects appropriate host controller for emulated controls.
.topic 0x809a049c
Selects level of brightness for screen when paused.
.topic 0x80b904ba
Selects appropriate host controller for emulated controls.
.topic 0x80b904bf
Selects appropriate host controller for emulated controls.
.topic 0x809a041f
Selects level of prescaling, the higher the number, the sharper the stretched filtered image.
.topic 0x809c044d
Enables resetting recent changes to the open tab.
.topic 0x80ad0491
Enables random GUI background selection on restart, *.png files in \bkground directory.
.topic 0x80bb047c
Selects host monitor refresh rate.
.topic 0x809c04d0
Enables altering the speed of gameplay to keep the refresh rate lower than the screen.
.topic 0x809d04ae
Enables reload functionality for second button on lightguns.
.topic 0x80aa04a2
Enables resetting of games to default settings.
.topic 0x809c0459
Enables resetting and clearing out the *.png effect chosen.
.topic 0x80aa049f
Enables resetting and clearing filters applied to folders.
.topic 0x80aa049d
Enables resetting games to use default options.
.topic 0x80aa049e
Enables resetting the options to fresh Mame32 install settings.
.topic 0x809a03f2
Selects rotation setting for game display.  Use the Auto options for pivot LCDs.
.topic 0x809b0403
Selects the output samplerate for games.
.topic 0x809b0461
Enables the use of external samples.
.topic 0x80bb03f4
Selects screenX depends on the number of screens setting.  Allows different settings for each screen.
.topic 0x80bb03f7
Selects the physical monitor to display window or full-screen multi-head output.
.topic 0x809c04c2
Selects a *.png file in the \artwork directory for creating monitor-like effects.
.topic 0x80bb03ed
Selects from DirectX interrogated resolutions.
.topic 0x809e049a
Enables skipping game info screen when games started.
.topic 0x809c04d2
Selects the speed of gameplay, relative to realtime; smaller numbers are slower.
.topic 0x809e03fe
Enables giving more timeslices back to the system, allowing Mame32 to 'play nicer' with other apps.
.topic 0x80ad045b
Enables running a mini-audit on application launch.
.topic 0x809d0480
Enables the steadykey hack.
.topic 0x80ad04bd
Enables increasing the size of the art pane items if the window is expanded.
.topic 0x80bb046d
Enables the switching of resolutions in fullscreen gaming.
.topic 0x809c0476
Enables syncing the game internal speed to the host monitor.
.topic 0x809a0478
Enables throttling games to run at 100%.
.topic 0x80b904bc
Selects appropriate host controller for emulated controls.
.topic 0x809c0467
Enables the use of triple buffering during fullscreen gaming.
.topic 0x809c0401
.topic 0x809d0477
Selects appropriate host controller for emulated controls.
.topic 0x809b046d
Enables sound within games.
.topic 0x809a04ca
Selects the default rendering method.
.topic 0x80bb03f6
Selects the view in use in games.
.topic 0x809b045d
Selects the volume level in games.
.topic 0x809c0471
Enables waiting for vertical sync.
.topic 0x809a0497
Enables running games in a window.