MAME Menus

Introduction

To show the main menu while running an emulated system in MAME, press the Show/Hide Menu key or button (Tab by default). If the emulated system has keyboard inputs, you may need to press the Toggle UI Controls key or button (Scroll Lock, or Forward Delete on macOS, by default) to enable user interface controls first. You can dismiss a menu by pressing the UI Back key or button (Escape by default). Dismissing a menu will return to its parent menu, or to the running system in the case of the main menu.

You can hide a menu and return to the running system by pressing the Show/Hide Menu key or button. Pressing the Show/Hide Menu key or button again will jump back to the same menu. This is useful when testing changes to settings.

Emulated system inputs are ignored while menus are displayed. You can still pause or resume the running system while most menus are displayed by pressing the Pause key or button (F5 on the keyboard by default).

If you start MAME without specifying a system on the command line, the system selection menu will be shown (assuming the ui option is set to cabinet). The system selection menu is also shown if you select Select New System from the main menu during emulation.

For more information on navigating menus, see the relevant section.

Input Settings menu

The Input Settings provides options for assigning controls to emulated inputs, adjusting analog control settings, controlling toggle inputs, and testing input devices. You can reach the Input Settings menu by selecting Input Settings from the main menu. The items shown on this menu depend on available emulated inputs for the running system. Available emulated inputs may depend on slot options, machine configuration settings and DIP switch settings.

Input Assignments (this system)

Lets you select assign controls to emulated inputs for the running system. See the section on configuring inputs for more details. This item is not shown if the running system has no enabled inputs that can be assigned controls.

Analog Input Adjustments

Shows the Analog Input Adjustments menu, where you can adjust sensitivity, auto-centring speed and inversion settings for emulated analog inputs, and see how the emulated analog inputs respond to controls with your settings. For more details, see the analog input settings section for more details. This item is not shown if the running system has no enabled analog inputs.

Keyboard Selection

Shows the Keyboard Selection menu, where you can select between emulated and natural keyboard modes, and enable and disable keyboard and keypad inputs for individual emulated devices. This item is not shown if the running system has no keyboard or keypad inputs.

Toggle Inputs

Shows the Toggle Inputs menu, where you can view and adjust the state of multi-position or toggle inputs. This item is not shown if the running system has no enabled toggle inputs.

Input Assignments (general)

Lets you select assign user interface controls, or assign default controls for all emulated systems. See the section on configuring inputs for more details.

Input Devices

Shows the Input Devices menu, which lists the input devices recognised by MAME.

Toggle Inputs menu

The Toggle Inputs menu shows the current state of multi-position or toggle inputs. Common examples include mechanically locking Caps Lock keys on computers, and two-position gear shit levers on driving games. You can reach the Toggle Inputs menu by selecting Toggle Inputs from the Input Settings menu. Note that available emulated inputs may depend on slot options, machine configuration settings and DIP switch settings.

Inputs are grouped by the emulated device they belong to. You can move between devices using the Next Group and Previous Group keys or buttons. Names of inputs are shown on the left, and the current settings are shown on the right.

To change the state of an input, highlight it and use the UI Left and UI Right keys or buttons, or click the arrows beside the current setting.

Keyboard Selection menu

The Keyboard Selection menu lets your switch between emulated and natural keyboard modes, and enable or disable keyboard inputs for individual emulated devices. You can reach the Keyboard Selection menu by selecting Keyboard Selection from the Input Settings menu.

In emulated keyboard mode, keyboard and keypad inputs behave like any other digital inputs, responding to their assigned controls. In natural keyboard mode, MAME attempts to translate typed characters to emulated keystrokes. The initial keyboard mode is set using the natural option.

There are a number of unavoidable limitations in natural keyboard mode:

  • The emulated system must to support it.

  • The selected keyboard must match the keyboard layout selected in the emulated software.

  • Keystrokes that don’t produce characters can’t be translated. (e.g. pressing a modifier key on its own, such as Shift or Control).

  • Holding a key until the character repeats will cause the emulated key to be pressed repeatedly as opposed to being held down.

  • Dead key sequences are cumbersome to use at best.

  • Complex input methods will not work at all (e.g. for Chinese/Japanese/Korean).

Each emulated device in the system that has keyboard and/or keypad inputs is listed on the menu, allowing keyboard/keypad inputs to be enabled or disabled for individual devices. By default, keyboard/keypad inputs are enabled for the first device with keyboard inputs (if any), and for all other devices that have keypad inputs but no keyboard inputs. The enabled keyboard/keypad inputs are automatically saved to the configuration file for the system when the emulation session ends.

Input Devices menu

The Input Devices menu lists input devices recognised by MAME and enabled with your current settings. Recognised input devices depend on the keyboardprovider, mouseprovider, lightgunprovider and joystickprovider options. Classes of input devices can be enabled or disabled using the mouse, lightgun and joystick options. You can reach the Input Devices menu by selecting Input Devices from the Input Settings menu or the General Settings menu.

Input devices are grouped by device class (for example keyboards or light guns). You can move between device classes using the Next Group and Previous Group keys or buttons. For each device, the device number (within its class) is shown on the left, and the name is shown on the right.

Select a device to show the supported controls for the device. The name of each control is displayed on the left and its current state is shown on the right. When an analog axis control is highlighted, its state is also shown in graphical form below the menu. Digital control states are either zero (inactive) or one (active). Analog axis input states range from -65,536 to 65,536 with the neutral position at zero. You can also select Copy Device ID to copy the device’s ID to the clipboard. This is useful for setting up stable controller IDs in controller configuration files.

Audio Mixer menu

The Audio Mixer menu allows you to configure how MAME routes sound from emulated speakers to system sound outputs, and from system sound inputs to emulated microphones. There are two kinds of routes: full routes, and channel routes:

  • A full output route sends sound from all channels of an emulated sound output device to a host sound output. MAME automatically decides how to assign emulated channels (typically speakers) to output channels, based on speaker position information.

  • Similarly, a full input route sends sound from a host sound input to all channels of an emulated sound input device. MAME automatically decides how to assign input channels to emulated channels (typically microphones), based on microphone position information.

  • A channel route sends sound from a single emulated sound output channel to a single host sound output channel, or from a single host sound input channel to a single emulated sound input channel.

Only one full route is allowed for each combination of an emulated sound output or input device and host sound output or input. Only one channel route is allowed between an individual emulated channel and an individual host sound channel.

Routes are grouped by emulated device. For each device, full routes are listed before channel routes. For each route, you can select the system sound output or input and adjust the volume from -96 dB (quietest) to +12 dB (loudest). For channel routes, you can also select the individual emulated channel and host channel. Select Delete route to delete a route.

Select Add new full route to add a new full route to that group. If possible, it will be added and the menu highlight will move to the newly added route. If routes between the highlighted device and every host output/input already exist, no route will be added.

Select **Add new channel route* to add a new channel route to that group. If possible, it will be added and the menu highlight will move to the newly added route. If routes between all channels for the highlighted device and every host output/input channel already exist, no route will be added.

Some sound modules allow channel assignments and volumes to be controlled using an external mixer interface (for example the PipeWire module for Linux has this capability). In these cases, MAME does its best to follow the changes you make in the external mixer interface and save changes in its configuration.

The audio routes are saved in the system configuration file.

Audio Effects menu

The Audio Effects menu allows you to configure audio effects that are applied to emulated sound output before it’s routed to host sound outputs. An independent effect chain is applied for each emulated sound output device.

The effect chain itself is not configurable. It always consists of these four effects, in this order:

  • Filter

  • Compressor

  • Reverb

  • Parametric equaliser

When editing parameters for an output device’s effect chain, inherited default parameter values are showing dimmed, while parameter values set for that chain are shown in the normal text colour. Press the UI Clear key (Del/Delete/Forward Delete on the keyboard by default) to reset a parameter to use the inherited default value.

Edit the Default chain to set default parameter value that can be inherited by output device chains. When editing the Default chain, you can restore the built-in default value for a parameter by pressing the UI Clear key (Del/Delete/Forward Delete on the keyboard by default).

The Audio Events menu also allows you to configure the algorithm used for audio sample rate conversion. The default LoFi algorithm has modest CPU requirements. The HQ algorithm provides higher quality sample rate conversion at the expense of requiring substantially higher CPU performance. The HQ algorithm has additional parameters. Increasing the latency can improve quality. Increasing the filter length or phases can improve quality at the expense of higher CPU performance requirements.

Filter effect

This effect implements a second-order high-pass filter and a second-order low-pass filter. The high-pass filter allows DC offsets to be removed. The low-pass filter can simulate the poor high-frequency response typical of many arcade cabinets and television sets.

The Q factor controls how sharp the transition from the stop band to the passband is. Higher factors provide a sharper transition. Values over 0.7 cause the filter to amplify frequencies close to the cutoff frequency, which may be surprising or undesirable.

Compressor effect

This effect provides dynamic range compression (it is based on a reimplementation of Alain Paul’s Versatile Compressor). Dynamic range compression reduces the difference in volume between the softest and loudest sounds. It’s useful in a variety of situations, for example it can help make quiet sounds more audible over background noise.

The parameters are:

Attack

The reaction time to loud sounds to reduce the amplification.

Release

The reaction time to allow the amplification to go back up.

Ratio

The maximum amplification.

Input gain

The amplification level at the input.

Output gain

The amplification level at the output.

Convexity

The shape of the relationship between distance to the threshold and ratio value. Higher values give a steeper shape.

Threshold

The level at which the amplification fully stops.

Channel link

At 100%, all channels of an output device are amplified identically, while at 0% they are fully independent. Intermediate values give intermediate behaviour.

Feedback

Allows some of the output to be fed back to the input.

Inertia

Higher values make the ratio change more slowly.

Inertia decay

Tweaks the impact of the Inertia.

Ceiling

The maximum level allowed just before the output amplification. Causes soft clipping at that level.

Reverb effect

Not implemented yet.

Equaliser effect

A five-band parametric equalizer, allowing to amplify or attenuate specific frequency bands.

The three middle filters are bandpass/bandreject filters, meaning they amplify or attenuate frequencies around the configured centre frequency. The first and last filters can also be configured as bandpass/bandreject filter by setting the mode to Peak. Setting the mode to Shelf causes the filter to amplify or attenuate all frequencies below (for the first filter) or above (for the last filter) the configured cutoff frequency.

The Q factor controls the sharpness of the peak or trough in frequency response for bandpass/bandreject filters (the Q factor is not adjustable for Shelf mode). Higher Q factors give a sharper shape, affecting a narrower range of frequencies.