MAME 2003 is an arcade system emulator that can be used as a libretro core. MAME 2003 is based on MAME 0.78 with backported patches for performance and compatibility improvements. This core is a popular choice for the Raspberry Pi family and other low-powered hardware because it supports most 2D-era arcade games and a broad set of features without requiring as much processor and memory resources as later MAME cores.
These are libretro features, not frontend or standalone emulator features.
|Saves||Save states||Rewind||Netplay||Cheats||Controllers API||Rumble||Sensors||Camera||Location||Subsystem API|
MAME 2003 generates directories as it requires them:
User-generated content are in sub-directories within /libretro savefile dir/mame2003/ e.g.: ``` /libretro savefile dir/mame2003/diff/ /libretro savefile dir/mame2003/nvram/ /libretro savefile dir/mame2003/hi/ /libretro savefile dir/mame2003/cfg/ /libretro savefile dir/mame2003/inp/ /libretro savefile dir/mame2003/memcard/ /libretro savefile dir/mame2003/snap/ ``` .dat files should be placed within /libretro system dir/mame2003/ e.g.: ``` /libretro system dir/mame2003/hiscore.dat /libretro system dir/mame2003/cheat.dat /libretro system dir/mame2003/history.dat ``` Static data should be placed in subdirectories within /libretro system dir/mame2003/ e.g.: ``` /libretro system dir/mame2003/samples/ ``` .chd images should be placed in subdirectories within the /libretro content dir/ ROM directory e.g.: ``` /libretro content dir/blitz/blitz.chd ```
To access the MAME internal menu, press the 'TAB' key.
MAME 2003 can 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). To access the MAME service, press the 'F2' key. After changing options in the service mode, the game's internal memory will be stored to an .nv file in: ``` /libretro savefile dir/mame2003/nvram/ ```
Similarly to the [Service menu](#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.
MAME 2003 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](https://github.com/libretro/mame2003-libretro/tree/master/metadata). Place 'hiscore.dat' in: ``` libretro system dir/mame2003/ ``` When high scores are saved, they are kept in: ``` libretro system dir/mame2003/hi/ ```
MAME 2003 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 the MAME 2003 'metadata' repository](https://github.com/libretro/mame2003-libretro/tree/master/metadata). Place `cheat.dat` in: ``` libretro system dir/mame2003/ ``` Additionally, the 'enabled cheats' core option needs to be turned on. This option is is called: ``` mame2003-cheats = "enabled" ```
Some sound effects in a few older 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 individual audio files into a .zip file matching the ROM's title (eg `invaders.zip`) or into a folder matching the filename of the ROM (eg `/invaders/`) into the following location: ``` /libretro BIOS dir/mame2003/samples/ ```
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 called: ``` mame2003-sample_rate = "48000" ``` The valid possibilities are 8000, 11025, 22050, 44100 and 48000.
- Nag-screen and warning screen
The copyright warning is controlled via a setting called ``` mame2003-skip_disclaimer = "enabled" ```
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 called: ``` 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](#mame-menu).
Has support for a single mouse (or touch device) in games that support trackpads, etc (via the "Mouse Device" core option) Supports one or two spinners/dials (via the "Share 2 player dial controls across one X/Y device" core option). Absolute pointer devices are supported, but need to be turned on via a setting called: ``` mame2003-mouse_device = "pointer" ```
NOTE: This will disable standard 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 called: ``` mame2003-dialsharexy = "enabled" ```
Dual stick games
The right analog stick can be used a second joystick. This is enabled by default, via a setting in the called: ``` mame2003-rstick_to_btns = "enabled" ```
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 called: ``` mame2003-tate_mode = "enabled" ```
This core has a few options that can be tweaked from the core options menu. The default setting is highlighted and in italics:
- mame2003-frameskip (0/1/2/3/4/5): Toggle frameskip
- mame2003-dcs-speedhack (disabled/enabled): Speedhack for Mortal Kombat II and III at the cost of audio quality.
Compatibility List/General Issues
Save states: MAME 2003 supports save states, however, save state support has to be implemented per-driver, so they won't work with all games.