lr-mame2003

Please check the MAME documentation for for basic information about controls and managing ROMs - this page is for specific information about the mame2003 emulator's features.

WARNING: As of 2016-05-03 (2016-05-05 for binary installs), the directory structure that lr-mame2003 uses has been updated to better match MAME norms. Thus, if you upgrade from a previous version, various directories will need moving/updating to ensure existing MAME configurations and save files are used. Please see this github PR for full details on what has changed.

lr-mame2003 is a popular choice for the Raspberry Pi 2 and up, as it combines a large romset (MAME 0.78) playing host to most 2D-era arcade games that people would be interested in, and a broad set of features. It also is still a relatively old MAME core, which is actually a good thing for lower-end hardware such as the Raspberry Pis, as later MAME cores feature increasingly accurate emulation which requires greater CPU power. Also, it is a libretro core, so enjoys all the benefits of that: centralised controller configurations, many customisation options, netplay, shader/overlay support, etc.

MAME menu

To access the MAME internal menu, press the 'TAB' key or R2.

Whilst lr-mame2003 is a libretro emulator and benefits from automatic controller configuration, sometimes you may still want to rebind how it internally deals with inputs. For example, the default control setup might make sense in one game, but in another they don't. In which case, you can use the 'Input (this game)' option to rebind keys for a single game, generating a .cfg file in:

/home/pi/RetroPie/roms/mame-libretro/mame2003/cfg/

or, if you're using the arcade folder:

/home/pi/RetroPie/roms/arcade/mame2003/cfg/

If you rebind global inputs ('Input (general)'), it will update a file in the same directory called default.cfg.

These files are not human-readable, but can be safely deleted if you get into a mess and wish to return to the default configuration.

Service menu

To access the MAME service, press the 'F2' key.

lr-mame2003 has the useful ability to access games' internal service menus to set permanent game options. This allows you to, for example, configure a game to be 'free play' (no need to insert coins). After changing options in the service mode, the game's internal memory will be stored to an .nv file in:

/home/pi/RetroPie/roms/mame-libretro/mame2003/nvram/

or, if you're using the arcade folder:

/home/pi/RetroPie/roms/arcade/mame2003/nvram/

Dip-switches

Similarly to the Service menu, many arcade games had hardware switches for arcade owners to modify certain parameters. These can be adjust by pressing the 'TAB' key to access the MAME menu, and select the 'Dip Switches' option. Here you can turn them on/off.

High scores

Note As of January 29, 2017 it is no longer necessary to manually add hiscore.dat to your installation as it is automatically included by RetroPie-Setup

lr-mame2003 will attempt to keep a permanent record of any high scores you set, but some games will not save these by default. A supplementary file called hiscore.dat is required for these ROMs to save scores. This file can be downloaded from the MAME 2003 'metadata' repository. Save and transfer 'hiscore.dat' to:

/home/pi/RetroPie/BIOS/mame2003/

When high scores are saved, they are kept in:

/home/pi/RetroPie/roms/mame-libretro/mame2003/hi/

or, if you're using the arcade folder:

/home/pi/RetroPie/roms/arcade/mame2003/hi/

Cheats

Note As RetroPie 4.2 it is no longer necessary to manually add cheat.dat to your installation as it is automatically included by RetroPie-Setup.

lr-mame2003 supports the MAME cheat engine, allowing you to use the 'TAB' menu to enable various in-game cheats. To active these, there is a supplementary file that you need to transfer to your Pi, called cheat.dat. This file can be downloaded from https://github.com/libretro/mame2003-libretro/tree/master/metadata. Place cheat.dat in:

/home/pi/RetroPie/BIOS/mame2003/

Further to this, the 'enabled cheats' core option needs to be turned on via a setting in the retroarch-core-options.cfg file, found in:

/opt/retropie/configs/all/

The option is:

mame2003-cheats = "enabled"

Samples

Some sound effects in a few older (typically pre-1986) arcade games are difficult/impossible to emulate. Instead, audio clips of these effects can be downloaded and automatically played at the appropriate times. To do this, download the sample files you require and place the .zip files into:

/home/pi/RetroPie/BIOS/mame2003/samples/

Sample rate

You can adjust the sample rate for all audio. Lowering it from the default of 48000 KHz may increase performance, at the cost of audio fidelity. It can be controlled via a setting in the retroarch-core-options.cfg file, found in:

/opt/retropie/configs/all/

The option is:

mame2003-sample_rate = "48000"

The valid possibilities are 8000, 11025, 22050, 44100 and 48000.

Nag-screen

The copyright warning should be hidden by default, but can be controlled via a setting in the retroarch-core-options.cfg file, found in:

/opt/retropie/configs/all/

The option is:

mame2003-skip_disclaimer = "enabled"

Skip warnings screen

Games that feature incomplete emulation, or other side-effects will have a warning screen detailing these flaws similar to the 'nag screen' mentioned above. It is recommended to leave this screen visible to understand why a game may have such issues, but it can be controlled via a setting in the retroarch-core-options.cfg file, found in:

/opt/retropie/configs/all/

The option is:

mame2003-skip_warnings = "enabled"

Mouse/Trackball/Analog Controller support

By default, mice/trackballs and analog sticks (the left one, for controllers with 2) are supported in games that would have them, or equivalents. For example, Centipede supports the mouse/trackball, and Afterburner supports the stick. Lightgun games are supported by either. The left and right mouse buttons can be bound to fire/etc using the MAME menu.

Pointer/Trackpad/Touchscreen support

Absolute pointer devices are supported, but need to be turned on via a setting in the retroarch-core-options.cfg file, found in:

/opt/retropie/configs/all/

The option is:

mame2003-mouse_device = "pointer"

NOTE: This will disable Mouse support.

2 player dial/spinner devices

Some (all?) 2 player spinner/dial devices are represented as 1 device with 2 axes. lr-mame2003 can be configured to share this device across both players: Player 1 = X axis, Player 2 = Y axis. This can be enabled via a setting in the retroarch-core-options.cfg file, found in:

/opt/retropie/configs/all/

The option is:

mame2003-dialsharexy = "enabled"

Dual stick games

The right analog stick can now be used a second joystick. This is enabled by default, via a setting in the retroarch-core-options.cfg file, found in:

/opt/retropie/configs/all/

The option is:

mame2003-rstick_to_btns = "enabled"

TATE mode

For users who have a rotatable display, this mode shows vertical games (e.g. Pac-Man, Centipede, Galaga, etc) at their original aspect ratio, and will display along the length of the screen with the right configuration. This is disabled by default, but can be enabled via a setting in the retroarch-core-options.cfg file, found in:

/opt/retropie/configs/all/

The option is:

mame2003-tate_mode = "enabled"

In addition to this, you will want to stop rotating the games and instead show them in along the length of the screen, video_allow_rotate in mame-libretro/arcade to false via the [[Configuration Editor]].

Save states

Beyond High scores, lr-mame2003 supports save states through the usual Retroarch hotkeys. However, save state support has to be implemented per-driver, so they won't work with all games.

Feature requests

Please use the forum for all support issues, but feature requests can be made on the GitHub page.