Depending on which version of MAME you are using, there are different ways to configure MAME. If you are using regular command line driven MAME, you operate on the mame.ini file that lives in the same directory as mame.exe. If you are instead using the official Windows GUI version, MAMEUI (previously MAME32; no longer officially released on the MAME website), you will configure MAME through the Options -> Default Game Options menu selection which opens up the Default Game Properties dialog. All the settings contained in this dialog have an equivalent setting in the mame.ini file. Therefore, this guide will focus on the Game Properties dialog and leave it to the reader to locate and set the equivalent setting in mame.ini. If you are having trouble locating the correct setting in mame.ini, you should probably be using the MAMEUI version or a front-end.
Notes before continuing:
- If you are using a command line version of MAME, and wish to
operate on the mame.ini and can not find it, please go to the MAME
directory in a command prompt and type:
MAME -createconfigwhich will force MAME to create and populate the mame.ini file for you to work on.
- Although MAMEUI's settings are typically manipulated through the Default Game Properties dialog, MAMEUI has an equivalent to the mame.ini file, called mame32.ini that lives in the ini folder. MAMEUI has a separate ini file called mameui32.ini (or mameui64.ini for 64-bit users) which governs properties about the GUI of MAMEUI, not the configuration of MAME during play.
- MAMEUI is a constantly evolving program, and the Game Properties dialog typically undergoes a little revision with each release. Therefore, the picture of the Game Properties dialog contained here may or may not accurately reflect the settings of which ever version you happen to be using. The pictures contained in this guide as of this revision reflect MAME32 v0.108; MAME32 changed its name to MAMEUI at v0.121.
- In previous versions, the controller needed to be picked, Standard, HotRod, X-Arcade, etc. Leave that setting alone! eave it at standard and you'll be fine. Some games might need configuring under Player 1 Settings. Standard is all you need.
- Lastly, there are far too many settings to cover than this guide intends to cover. Only the most important settings, or most unintuitive settings, will be covered in any detail. Feel free to add descriptions for any setting that you do not see covered in adequate detail.
The Display page is where you change the settings that affect how MAME displays a game on your monitor or screen.
- Run in a window: First and foremost, you control whether a game should be displayed in full screen mode, or in a window. You can change this setting on the fly while you are playing a game by pressing Alt+Enter together to toggle between full screen and a window.
- Start out maximized: If Run in a window is not checked, the Start out maximized check box makes no difference. It only affects whether the game starts out in a window that is as large as your monitor allows, or in as small a window as possible. Note that while MAME runs your game in a window, you are allowed to resize it to your liking.
- Enforce aspect ratio: This setting has two different
effects depending on whether you are running in a window or full
- If you are running your game in full screen mode, this setting ensures that the game is displayed in the proper ratio that it was originally designed for. If it is not checked, MAME will display the game across the entire length of your screen, resulting in a very stretched out picture for vertically oriented arcade games.
- If you are running your game in a window, you will be unable to resize the window to any ratio other than the ratio that the game ran in originally. If it is not checked, you will be free to resize the window to any aspect ratio that you desire.
- Throttle: This check box gives you control over whether or not MAME starts the game at the speed that the game is intended to run at (typically 60 frames per second) or at the fastest speed possible that your processor can run the game. If it is checked, the game will play at the proper speed. You can change this setting on the fly while you are playing a game by pressing F10 to toggle between regular speed and full speed. (Note that if your computer can not play a game as the proper speed, due to insufficient processing power, this setting will make no difference.)
- Rotation: The rotation control group give you the power to orient your play screen in any direction that you like. A majority of users will leave these setting alone, leaving the drop down box set to Default. One reason one might wish to change this setting is if you have a monitor that is oriented vertically, in order to display vertical games in full screen properly, or if you have a screen that can turn on a pivot in the back. Another reason would be for cocktail table cabinets. Almost all games will need to be rotated 90 degrees for proper orientation. Beyond that, there's very few other reasons to change these settings since MAME will do it's best to display the game properly for you.
- Videomode: This setting has an effect on which other settings are available on the page. You can currently choose between GDI, DirectDraw, and Direct3D. Those choices are in order from least powerful to most powerful. GDI is the slowest method for MAME to render a screen as it takes no advantage of any graphics hardware acceleration. DirectDraw is a much better choice, available to all Windows users, and provides hardware acceleration without requiring any 3D graphics acceleration. Direct3D is a step up from DirectDraw that can take advantage of 3D graphics acceleration to render a game screen in any size in very little time. Support for Direct3D does not imply that MAME is programmed to play Arcade games that use a 3D Engine any better on a system with a 3D accelerator than on a system that does not have one.
- Direct3D: By using Direct3D, MAME can offload a lot of
work rendering the game screen in the desired perspective to your
graphics card, saving your processor a lot of work. Currently, MAME
only supports Direct3D versions 8 and 9, and you should change the
default setting from 9 to 8 if you know for a fact that you only
have version 8 installed on your system.
- The Use Bilinear filtering checkbox allows you to take advantage of your hardwares ability to filter or soften the look of the game on your screen. Typically, you will be running the game in a higher resolution than the game was originally intended to run in, and bilinear filtering can remove the graininess of the picture created by scaling it to a different resolution.
- DirectDraw: If you choose the DirectDraw setting under Videomode, you can toggle the Stretch using hardware setting. There is no reason not to use it if your graphics card can provide the acceleration, since it offloads some of the burdon from your processor.
- Remaining Sliders: The Bitmap prescale is an attempt to make your stretched image look less blurry. Without going in to the mechanics behind it, if you are enlarging your game screen, and do not like the blurry look of it, try increasing the bitmap prescale until you're satisfied. Depending on your resolution, it won't make a huge difference beyond a certain setting. The various correction sliders are intended to help you attain a satisfactory picture brightness if you feel that your picture is too dark, or if blacks look too washed out. And lastly, the Pause Brightness is simply a dimming effect that get employed when you pause MAME in the middle of playing a game, and has no effect on the display when you are actually playing. (Set it to zero if you like to take windows screen captures while paused through some other method than the F12 key.)
The Advanced page is where you change the some of the more technical settings that govern how MAME renders an image to the screen.
- Triple buffering, Sync to monitor refresh, and
Wait for vertical sync: Each of these settings control, in
various ways, how MAME decides when to begin drawing the next frame
of the game. These are all intended to prevent an effect known as
"tearing." Tearing happens when a screen is scrolling, and you see
half of the previous screen and half of the next screen together.
This creates a tear in the screen. If you are experiencing tearing,
try changing one, or a combination of these settings. The quality
of the change is largely dependent on the video hardware (card and
monitor) that you use, so you may need to experiment. In general,
Wait for vertical sync should be sufficient.
- If you ever experience audio problems, such as grainy sound that comes and goes, changing these settings can sometimes have a positive effect on that as well. Oftentimes, audio can fall out of sync with video and create noise if the video isn't synced to a regular timing.
- Frame skipping: If you are unable to play a game
properly at full speed, frame skipping is a setting that you can
play with in order to achieve full speed.
- Check the Automatic box if you would like MAME to determine what the best speed for the game should be. Although this is an easy setting to use, it is not as effective as choosing a particular frame skip, since time must be taken away from the processor to evaluate the speed of the game using whatever frameskip it has automatically chosen. It will however dynamically increase or lower the frameskip as the game demands.
- If you do not check the Automatic box, you can manually choose a particular frameskip (X out of 12 frames) or force the matter and Draw every frame. If you know for a fact that your system is powerful enough to play a game full speed, you should choose Draw every frame instead of using Automatic so that no time is taken up by the processor to determine that it can in fact draw every frame.
- Full screen sliders: These sliders are just like the sliders on the Display page, however they only affect the display of the picture when MAME is running in full screen mode. Moreover, these effects are applied in addition to the effects on the Display page, not instead of them.
- Effects: Effects are ways for MAME to mimmick the
"imperfections" found in authentic arcade monitors, and replicate
those effects on your presumably flawless monitor. Users apply
these effects when they want to make the game screen look closer to
the way they remember seeing it in an actual arcade. Of course,
these effects are only imitations, and may or may not capture the
essence of how a game looked on a real arcade monitor. You are
encouraged to experiment with each one until you find the one that
works best for you. Earlier variations of MAME that supported
screen effects had a locked in selection of effects, but newer
versions support a user implemented effect selection that allows
users to create their own effects to try out instead of the ones
that come packaged with the MAME archive. (User created effects
must be saved in the PNG file format and use an alpha channel.)
- Select Effect: Click this to bring up a file selection dialog where you can choose an effect to use. The dialog defaults to the artwork folder in your MAME directory.
- Reset Effect: If you have an effect selected and no longer wish to use any effects, click this button to set the effect selection to none.
The Screens page is a relatively new page to the properties dialog, where a few older settings have been moved to. The primary function of the settings on this page is to configure how MAME determines what size your final game screen should be and how many screens to occupy (only in the case of games that use more than one screen, like the Nintendo Playchoice-10 games.)
- Number of Screens: Your only going to change this setting from 1 to something else if you are actually using multiple video outputs or monitors on your system. If you are, you can set this number accordingly and MAME will attempt to make use of as many screens as are available for multi-screen games instead of smooshing every screen on to one monitor. MAME currently supports up to 4 screens.
- Screennumber: This setting is only applicable if you change the Number of Screens to anything other than 1. If you have multiple screens, MAME allows you to configure each one individually. Use this drop down box to dictate which screen you would like to set the properties for. By changing this setting, the configuration you choose will only affect the screen whose screennumber is currently selected.
- Screen: The dropdown box under Screen indicates all of the displays that are available for your system to use. Use this setting to configure which display is mapped to the screen whose screennumber is currently selected. Leaving the setting on Auto will ensure that MAME uses the same output ordering (primary, secondary, etc.) as Windows does.
- Aspect ratio: It is now common for monitors to be able to display a variety of resolutions, from the standard 4:3 (low-def TV) ratio to the increasingly popular 16:9 (widescreen) ratio. If you leave the Autoselect aspect checkbox checked, MAME will determine what ratio to use based on what hardware information Windows has on your display. You can manually configure it to whatever you want by unchecking the checkbox, and entering in your desired horizontal:vertical aspect ratio. When playing in full screen mode, you must check the Switch resolutions to fit checkbox in order for your manual aspect ratio selection to be applied. Remember that the ratio you set only applies to the screen whose screennumber is currently selected.
- View: The View setting is another way to dictate to MAME which aspect ratio you would like to use. You can choose between the standard 4:3 ratio, (or 3:4 ratio for vertical games), pixel aspect which is whatever the native aspect for the game is, or cocktail mode which duplicates the screen for another player who is playing on the opposite side of the screen.
- Resolution: These settings can only be modified if you
do not choose Auto in the Screen drop down box. You
must specify a particular display in order to make changes to the
Resolution. These settings work differently than they used to in
older MAME versions, where they simply dictated what resolution you
wanted your game to run in full screen. Now due to the popularity
of LCD monitors (which can display many resolutions, but unlike
traditional CRT monitors, they have only one true native
resolution,) they are only meant to be changed They also behave
differently depending on whether you're running a game in windowed
or full screen mode.
- In windowed mode, only the Size is configurable, not the Refresh rate, since MAME will always use your desktop's assigned refresh rate. If you select a Size other than Auto, than MAME will run the game in a window sized according to your settings. Additionally, you will only be able to resize the window if you do not have Enforce aspect ratio checked on the Display page. The Switch resolutions to fit checkbox has no effect in windowed mode.
- In full screen mode, both the Size and Refresh rate are configurable. In order for your changes to occur in full screen mode however, you must check the Switch resolutions to fit checkbox, or MAME will assume that your requested Size is only intended to affect the windowed mode.
The Sound page is very straightforward.
- Enable sound and sound CPUs: Simply put, if you don't check this checkbox, you will not hear any sound from your games. Clearly, if you want the games to be muted while you perhaps listen to MP3s instead, this is one reason why you would uncheck this box. Another more practical reason is if you are having trouble achieving a full frame rate. If you are willing to sacrifice the sound, you might gain a few more cycles for your processor to achieve a full frame rate.
- Use samples: For games that do not have complete sound emulation, or used analog sound circuits, samples must be used in place of proper sound emulation. If you want to hear the sample wave files that you downloaded and placed inside the samples folder, you must check this box. Refer to Twisty's MAME Samples Collection for examples of sound files.
- Sample rate: Changing this number affects the quality of the sound that you hear, as well as the amount of work that the processor must do to generate that sound. The higher the number, the better the sound and the more work your processor must do. If you are having trouble achieving a full frame rate, you might try lowering the sample rate before turning off sound all together.
- Volume attenuation: You can lower the volume that MAME produces sound at in case you would prefer to have the sound as more of a background noise to other sound applications that you run at the same time. Since you can control your volume through a variety of other means (Windows sound volume, or the physical amplification on your speakers), this is only to control the volume of the sound in relation to anything else playing on your system.
- Audio latency: This setting tells MAME how accurately it must play sound in accordance to what's taking place on the screen. By raising the number, you are telling MAME to take it's time generating the sound and that it doesn't necessarily have to sync up with the picture if syncing would slow the game down. This is another setting you can play with if you would prefer not to sacrifice the quality of the sound to achieve a full frame rate. But raising this setting increases the likelihood of you seeing an action occur on the screen and hearing it a split moment later.
There are a variety of controller configurations that MAME can take advantage of. You will let MAME know what your controller set up is like on this page. Please note that regardless of the settings you choose here, they can be overridden by the choices you make for control devices on the Controller Mapping page
- Enable joystick input: If you use any gamepad or joystick that is recognized by the Game Controllers setting on the Windows Control Panel, and you wish to use them with MAME, check this checkbox.
- Analog deadzone: While you may choose to use an analog stick while you play, many early games had only digital joysticks. Therefore, it is necessary for MAME to know the deadzone of your analog stick. The deadzone refers to the amount that you need to move an analog stick before MAME will interpret the input as a digital input. This isn't necessary so much for horizontal or vertical directions, as much as it is helpful for identifying diagonal directions. If your deadzone is too small, you might end up going diagonally when you meant to go straight. If your deadzone is too large, you might not be able to enter diagonal motions at all. The default setting of 0.30 should be sufficient for most controller.
- Enable mouse input: If you want to play a game that uses any kind of non-joystick analog support, such as a trackball, a paddle, or even a lightgun, and you don't actually possess any of those particular controller, a mouse is your next best bet (and is available just about 99% of the time.) Check this checkbox to tell MAME that your mouse is an acceptable controller. Even if you choose not to check this box, you can map mouse input to a device on the Controller Mapping page.
- Enable steadykey input: This setting is only useful if you traditionally use a keyboard to play games that require a lot of simultaneous button and joystick input, such as fighting games like Street Fighter II. Enabling this feature tells MAME to take more time to read input from the keyboard in order to see everything that you are inputting, but at the cost of responsiveness, since MAME must read input from the keyboard across several frames. This setting should ONLY be enabled if you are having trouble playing a game properly with a keyboard due to multiple key presses, and should probably only be activated on a per-game basis, not in general.
- Default input layout: Standard will fine for a majority of players. Due to the popularity of certain commercially available controllers that were designed specifically to play with emulators like MAME, this option has been added not only to allow you to choose one of the many predefined popular controller configurations, but also to taylor a configuration for yourself if your controller set up differs drastically from the standard one. If you use any type of Hot Rod, Slikstik, or X-Arcade product, select the appropriate configuration from the drop down menu. If you would like to create your own, have a look at the .CFG files in the ctrlr folder that lives in the MAME directory to gain a understanding of how they are supposed to be set up.
- Lightgun input: If you are one of the fortunate owners
of a PC compatible lightgun (or two,) MAME is programmed to allow
you to use them while you play.
- If you would like to use your lightgun, you may check the Enable lightgun input checkbox. Even if you do not check this box, you can map your lightgun to the lightgun device on the Controller Mapping page.
- Many later lightgun arcade games popularized the function of shooting offscreen to reload your ammunition. If you would like to use this technique, you must check the Offscreen shots reload checkbox so that MAME knows how to interpret a shot that doesn't hit the screen.
- Finally, some games employed two lightguns (typically one for each player, although the use of two lightguns by one player was also popularized by games like Area 51.) If you own and intend to use two lightguns, you must check the "Dual lightguns" checkbox.
- Digital joystick axes: It is common these days for joysticks and gamepads to have multiple axes on them. Even just one analog stick has two axes, an X axis for left and right, and a Y axis for up and down. Occasionally, Windows will even interpret a digital pad as having two axes. It is in this combo box that you can inform MAME of any axes that you are aware of that should be considered digital instead of analog. It is not necessary for you to do this in order to control your game properly, but it does help MAME avoid any confusion over how joystick input should be interpreted in ambiguous situations. In general, you only need to play with these settings if you are having difficulty controlling your game properly with a particular joystick.
The Controller Mapping page is a relatively simple page to configure. The six device options presented here (Paddle, Dial, ADStick, Trackball, Pedal, and Lightgun) represent commonly found alternative arcade controls. The fact is, you may never play a game in MAME that uses one or many of these six devices. But if you do, this page allows you to quickly assign which controller you would like MAME to read from for each of these devices. Your choices are Keyboard, Mouse, Joystick, and Lightgun. Common settings for these devices are as follows:
- Paddle device: Mouse. Most PC compatible paddles map to Window's mouse input.
- Dial device: Mouse. The distinguishment between a paddle and a dial is small.
- ADStick device: Joystick. An ADStick is a type of analog controller like the ones found on the Star Wars or Paperboy arcade games.
- Trackball device: Mouse. Most PC compatible trackballs map to Window's mouse input.
- Pedal device: Joystick or Mouse. This is a pedal as in a gas pedal. If you actually have a fairly sophisticated driving controller (steering wheel and foot pedal,) you need to refer to your controller's documentation to determine whether your controller is a mouse or a joystick. In the absence of a steering controller, you could substitute a gamepad with two analog sticks and play Gran Turismo style, where the left stick steers the car left and right, and the right stick controls the acceleration (up for gas and down for brake.) In this case, put the setting on Joystick.
- Lightgun device: Lightgun or Mouse. Obviously a lightgun is the preferred controller for this device, but in the absence of a lightgun, a mouse should suffice, and will be immediately more reactive than a joystick.
Please note that your choice of settings here override the settings that you chose in the Controllers page. In other words if you did not check Enable mouse input and you choose mouse for one of your devices, you will be able to use a mouse for that device.
Quite obviously, anything that didn't fit in the other pages can be configured here. Among other things, you can control MAME's priority for your processor, and add enhanced artwork to your game display.
- Enable game cheats: Through the use of the cheat.dat MAME support file, you can use cheats that provide you with infinite lives, or invulnerability, provided such cheats exist for the game you are playing. Check this checkbox if you wish to use them. You can change this setting on the fly while you are playing a game by pressing F6, toggling the use of cheats on and off.
- Error log (for developers): As the description indicates, check this checkbox to ask MAME to produce an error.log of illegal memory access violations. This is only of any use to developers.
- Sleep when possible: If you perhaps run on a battery operated system like a laptop and wish to conserve battery like, or run a lot of applications in the background that you want to ensure get some processor time, check this checkbox. If neither of those apply, leave this checkbox unchecked to ensure that there's no slowdown when you play.
- Use RDTSC timing system: This setting is not of tremendous importance, but should be set correctly once to ensure the best performance. Check this box if you have a relatively new desktop. Uncheck it if you use a laptop, or older generation AMD processors, or AMD processor that use power stepping technology like "Cool n' Quiet."
- Skip game info: MAME usually provides a splash screen with info about the game, prompting you to press a button before continuing. Check this box if you would like to skip this screen and go straight to the game.
- Save game state on exit: A relatively new option, if this setting is checked, then the next time you start a game that you've played previously, the will start at the exact point that you exited from. This can be very useful if you need to take a break in the middle of a long game. However, if you like to quit in the middle of your games and start over the next time you play, you may prefer to leave this box unchecked.
- Thread Priority: Simply put, this slider controls how much priority MAME has over any other application running on your system. Not only can this impact other Windows applications, it impacts your system's ability to query input from the keyboard or joystick. The default setting is 0 and is quite sufficient for most users. Bumping the setting up to 1 will allow MAME to run with no interruptions, but at the cost of sluggish input. Bumping the setting down will allow other applications to get more processor time, at the cost of MAME's performance. Leaving this setting at 0 is highly recommended.
- Artwork options: These options provide visual
enhancements while you play your game. In order to take advantage
of these settings, you need to download the artwork files that
correspond to a game that you would like to use them with. Unlike
samples, any game can take advantage of artwork.
- Backdrops are images that appear behind the game screen. For example, in the case of Space Invaders, the screen was projected on a backdrop that depicted the surface of a moon.
- Bezels are the artwork that occurred around the edge of the screen. While displaying these does nothing for gameplay (in fact, it shrinks the available on-screen space for the game to be displayed,) it does enhance the feeling of playing on the original arcade machine.
- Overlays are the opposite of backdrops. In early arcade machines, they were see through images (usually cellophane) that were laid over the top of the screen to give the appearance of color when games could only display graphics in black & white.
- Crop artwork is a selection that allows you to continue to use artwork, while at the same time restricting the view of the scene to just the game screen's original dimensions. This allows only those pieces of the bezel which poke in front of the scene to be displayed.
- BIOS: Cerain arcade systems, most notably the Neo Geo, used a BIOS. In order to play a Neo Geo game, you need the Neo Geo BIOS (neogeo.zip in the roms folder.) However, it's not uncommon for there to be multiple revisions of a BIOS, or versions for multiple geographic regions. By default, MAME chooses the original or most compatible BIOS. If for some reason, you have a preference for a particular BIOS, you can change it here in the drop down box. This setting must be changed on a per game basis instead of in the Default Game Properties.
The Vector page is another very straightforward page, affecting only those games which relied upon vector graphics to display their image, as opposed to raster graphics which is the norm. Vector graphics consists of point-to-point plotted lines as opposed to an image that is display across the entire screen. Examples of such games are Asteroids, Tempest, and Battlezone (all of which are Atari games, who pioneered many advances in vector monitor technology.)
- Draw antialiased vectors: MAME will do it's best to simulate Vector graphics by rasterizing only those lines which the Vector monitor would have drawn. But even at a high resolution, the lines that MAME draws on a monitor will look blocky. Antialiasing is a technique to smooth out the edges of those lines so that they blend and fade away at the edges more smoothly, and don't appear to look like staircases. Any medium powered processor can handle this effect with ease.
- Beam width: MAME must know how thick to draw a vector line, and this is where you configure that width. If you are having trouble seeing the vector lines that MAME draws, you should increase the width. If you think the lines look a little too thick, you should decrease the width.
- Flicker: Vector monitors sometimes struggled to keep up with the drawing demand that a game placed on it. If the vector scan was forced to draw numerous objects in one pass, it would slow down, causing the phosphors that lit up on the tube to die out before the vector scan could refresh the line on the next pass. MAME can imitate this effect to various degrees, and you can play with that setting until you achieve a flicker that reminds you most of how you remember a game looking when you played it in the arcade.