MAME Logo
+
RetroArch Logo
ArcadeRetroArchFree & Open Source

MAME via RetroArch

Arcade Emulation Through the RetroArch Frontend

Run MAME games through RetroArch's libretro core system β€” combining MAME's arcade accuracy with RetroArch's shader pipeline, overlay system, controller mapping, and unified frontend. The right choice when you're already running RetroArch for other systems.

πŸ”€

Building a dedicated MAME cabinet? The standalone mame.exe approach gives you the full mame.ini hierarchy and direct hardware access.

Platform
Arcade
Frontend
RetroArch
Best Core
MAME 2003-Plus
ROM Set
Core-Specific
Shaders
CRT-Geom / Royale
OS
Windows / Linux
Achievements
2003-Plus / FBNeo
Kiosk Mode
Via RA Config

Overview

Running MAME through RetroArch means using a libretro core β€” a shared library that wraps MAME's emulation engine and exposes it to RetroArch's unified frontend. You get MAME's arcade accuracy combined with RetroArch's shader pipeline, overlay system, controller remapping, and save state management.

The key difference from standalone MAME is that configuration happens through RetroArch's menu system and .cfg override files rather than mame.ini. This approach is ideal if you're already using RetroArch for other systems (PS1, SNES, N64) and want a single unified frontend for your entire cabinet.

πŸ’‘ If You Only Remember One Thing

Each MAME core requires a specific ROM set version. Using the wrong ROM set version is the #1 cause of games failing to load. Match your ROMs to your core version β€” not to the latest MAME release.

Choosing Your Core

RetroArch offers multiple MAME cores, each frozen at a different MAME version. The core version determines which ROM set you need, what games are supported, and how much CPU power is required. There is no single "best" core β€” the right choice depends on your hardware and game library.

CoreROM SetGamesPerformanceRA AchievementsBest For
MAME 2003-PlusMAME 0.78 (2003)~4,000 gamesExcellentβœ“ YesOlder hardware, Pi, low-spec PCs, RA achievements
MAME 2010MAME 0.139 (2010)~8,000 gamesGoodβ€”Mid-era titles, better accuracy than 2003
MAME 2016MAME 0.174 (2016)~30,000 gamesModerateβ€”Broad compatibility, newer titles, full-power PCs
MAME (current)Latest MAME32,000+ gamesHeavyβ€”Maximum accuracy, matches standalone MAME
FBNeoFBNeo (own set)~7,000 gamesExcellentβœ“ YesFighting games, Neo Geo, CPS1/2/3, best playability

βœ… Recommended for Arcade Cabinets

MAME 2003-Plus is the sweet spot for most arcade cabinet builds. It covers the golden age of arcade (1980s–early 2000s), supports RetroAchievements, runs well on modest hardware, and has the most active community support for core options and bug fixes.

πŸ₯Š Fighting Game Cabinets: Use FBNeo

If your cabinet focuses on fighting games (Street Fighter, King of Fighters, Mortal Kombat, Neo Geo), FBNeo is the better choice. It has superior CPS1/CPS2/CPS3 and Neo Geo compatibility, supports RetroAchievements, and is actively maintained for playability.

β–ΆHow to Map Arcade Joysticks to RetroArch & MAME LibretroUltimarc I-PAC demo

Demonstrates mapping arcade controls (Ultimarc I-PAC-4) to RetroArch with the MAME libretro core β€” directly applicable to any arcade panel encoder including Zero Delay, Brook UFB, and J-PAC.

ROM Set Matching

This is the most critical concept in MAME via RetroArch. Every MAME core is frozen at a specific MAME version, and it requires ROMs built for that exact version. A ROM that works in standalone MAME 0.281 will often fail in MAME 2003-Plus because the internal file structure changed between versions.

CRITICAL

MAME 2003-Plus β†’ MAME 0.78 ROM set

The '2003-Plus' suffix means the core has been extended beyond the original 0.78 freeze with community patches, but it still requires the 0.78-based ROM set as its foundation. Do not use a current MAME ROM set with this core.

HIGH

Parent/Clone ROM structure must be preserved

MAME uses a parent/clone ROM set structure. Many games are 'clones' of a parent ROM (e.g., Street Fighter II has dozens of regional variants). You must have the parent ROM present even if you only want to play a clone. Do not delete parent ROMs to save space.

HIGH

BIOS ROMs go in the same folder as game ROMs

Some arcade boards require a BIOS ROM (e.g., neogeo.zip for Neo Geo games, pgm.zip for PolyGame Master). These BIOS files must be in the same directory as your game ROMs, not in a separate BIOS folder. RetroArch does not have a separate BIOS path for MAME cores.

MEDIUM

CHD files go in a subfolder named after the game

Games that use CHD (Compressed Hunks of Data) disk images require the CHD file in a subfolder matching the game's ROM name. Example: if the game ROM is 'mktrio.zip', the CHD goes in 'mktrio/mktrio.chd' relative to your ROM directory.

Installation & Setup

Step 1: Install the Core

  1. Open RetroArch β†’ Main Menu β†’ Load Core β†’ Download a Core
  2. Navigate to Arcade in the core browser
  3. Select your target core (e.g., MAME 2003-Plus) and download it
  4. The core installs to RetroArch/cores/mame2003_plus_libretro.dll (Windows)

Step 2: Set Up Your ROM Directory

# Recommended folder structure

ROMs/

arcade/ ← all .zip ROM files here

neogeo.zip ← BIOS ROMs in same folder

sf2.zip

sf2ce.zip ← clone of sf2

mktrio/

mktrio.chd ← CHD in subfolder named after game

In RetroArch, go to Settings β†’ Directory β†’ File Browser and point it to your arcade ROM folder.

Step 3: Load a Game

  1. Main Menu β†’ Load Content β†’ navigate to your arcade ROM folder
  2. Select a .zip file
  3. When prompted to select a core, choose your MAME core
  4. To make this core the default for arcade ROMs: after loading, go to Quick Menu β†’ Core Options β†’ Save Content Directory Core Override

Step 4: Add to Playlist (LaunchBox / BigBox)

For arcade cabinet use, you'll want your games in a playlist for the frontend to display. In RetroArch:

  1. Go to Import Content β†’ Scan Directory
  2. Point it to your arcade ROM folder
  3. RetroArch creates an Arcade.lpl playlist automatically
  4. In LaunchBox, add RetroArch as an emulator and point it to the MAME core for arcade games
β–ΆRetroArch MAME 2003 Plus Configuration GuideCore options deep-dive

Detailed walkthrough of MAME 2003-Plus core options inside RetroArch β€” covers controller support, core-specific settings, and configuration that goes beyond the basic setup.

Controller Mapping

RetroArch uses a universal controller abstraction called RetroPad. All arcade inputs are mapped through RetroPad first, then the MAME core translates RetroPad buttons to arcade inputs. This two-layer system is different from standalone MAME's direct input mapping.

Standard 6-Button Arcade Panel

Button 1 (LP)B (South)
Button 2 (MP)A (East)
Button 3 (HP)Y (West)
Button 4 (LK)X (North)
Button 5 (MK)L (L1)
Button 6 (HK)R (R1)
StartStart
Coin / SelectSelect

Mapping Workflow

  1. Connect your arcade panel encoder (I-PAC, Zero Delay, Brook UFB) β€” it registers as an XInput or DInput device
  2. In RetroArch: Settings β†’ Input β†’ Port 1 Controls
  3. Map each physical button to the corresponding RetroPad button
  4. Save: Quick Menu β†’ Controls β†’ Save Core Remap File (applies to all arcade games)
  5. For game-specific overrides: Save Game Remap File instead

Tip: Map your encoder in the encoder's own software first (e.g., WinIPAC for I-PAC), then map in RetroArch. This gives you two layers of remapping flexibility.

Shaders & Overlays

One of the main reasons to use MAME via RetroArch over standalone is access to RetroArch's shader pipeline. CRT shaders simulate the scanline and phosphor glow of original arcade monitors, which significantly improves the visual authenticity of low-resolution arcade games on modern displays.

Recommended CRT Shaders for Arcade

CRT-GeomGeneral arcade

Classic CRT simulation with curvature and scanlines. The standard starting point for arcade CRT emulation. Moderate performance cost.

shaders/crt/crt-geom.glslp
CRT-RoyaleHigh-end builds

High-quality multi-pass CRT shader with accurate phosphor simulation, bloom, and halation. Requires a capable GPU.

shaders/crt/crt-royale.slangp
CRT-EasymodeLow-spec / Pi

Lightweight CRT shader with good scanline quality. Best for lower-spec hardware where CRT-Geom is too heavy.

shaders/crt/crt-easymode.glslp
Mega BezelShowcase cabinets

Full cabinet bezel overlay + CRT simulation in one shader pack. Creates a complete arcade monitor-in-cabinet look.

shaders/bezel/Mega_Bezel/

How to apply: Load a game β†’ Quick Menu β†’ Shaders β†’ Load Shader Preset β†’ navigate to your shader β†’ Apply Shader. To make it permanent: Save Shader Preset As β†’ Core Preset (applies to all arcade games) or Game Preset (game-specific).

Bezels & Overlays

Overlays add artwork borders around the game image, simulating the cabinet bezel artwork. For arcade cabinets with a monitor that's smaller than the screen area, overlays fill the unused screen space with game-appropriate artwork.

  1. Download arcade bezel packs from the Libretro forums or Orionsangel's overlay pack
  2. Place .cfg and .png files in RetroArch/overlays/arcade/
  3. Quick Menu β†’ On-Screen Overlay β†’ Overlay Preset β†’ select your overlay file
  4. Save as Game Overlay to apply per-game, or Core Overlay for all arcade games
β–ΆSetting Up MAME with RetroArch Emulation + Mega BezelsMAME 2016 core + bezel setup

Full walkthrough of MAME 2016 core setup in RetroArch including Mega Bezel shader installation β€” shows exactly how the shader + overlay pipeline works for arcade cabinet displays.

Core & Game Overrides

RetroArch's override system is the equivalent of standalone MAME's mame.ini hierarchy. Overrides let you save different settings at different levels β€” global, per-core, per-content-directory, or per-game β€” without affecting other systems.

# RetroArch override hierarchy (highest priority wins)

Game Override ← [gamename].cfg (highest priority)

Content Dir Override ← [foldername].cfg

Core Override ← [corename].cfg

Global Config ← retroarch.cfg (lowest priority)

Save Core Override

Quick Menu β†’ Overrides β†’ Save Core Overrides

Settings that should apply to all MAME games (e.g., your controller mapping, shader preset)

Save Content Dir Override

Quick Menu β†’ Overrides β†’ Save Content Directory Overrides

Settings for a specific ROM folder (e.g., a dedicated Neo Geo folder with different aspect ratio)

Save Game Override

Quick Menu β†’ Overrides β†’ Save Game Overrides

Per-game settings (e.g., a specific game needs a different shader or aspect ratio)

Arcade Cabinet Setup

Kiosk Mode Configuration

Hide RetroArch UI

In retroarch.cfg, set menu_driver = "rgui" and configure pause_nonactive = "false". For full kiosk lockdown, use RetroArch's built-in Kiosk Mode: Settings β†’ User Interface β†’ Kiosk Mode.

LaunchBox / BigBox Integration

Add RetroArch as an emulator in LaunchBox. Set the command line to: retroarch.exe -L cores\mame2003_plus_libretro.dll "%ROM%". BigBox handles the frontend β€” RetroArch launches games directly without showing its menu.

Fullscreen Autostart

Set video_fullscreen = "true" in retroarch.cfg. Combine with Windows startup scripts to launch BigBox on boot for a true kiosk experience.

G&G Arcade Cabinet Notes

Pre-Configured Setup

All G&G Arcade cabinets ship with RetroArch pre-configured with MAME 2003-Plus and FBNeo cores, optimized core options, CRT shader presets, and arcade panel controller mappings already in place.

Arcade Assistant Integration

The Arcade Assistant AI can answer questions about MAME core selection, ROM compatibility, and controller mapping in real time β€” accessible directly from the cabinet's interface.

Vertical Game Rotation

For vertical arcade games (Galaga, Pac-Man, Donkey Kong), use RetroArch's Quick Menu β†’ Video β†’ Rotation to rotate 90Β°. Save as a Game Override so only that game rotates.

Troubleshooting

CRITICAL

Game fails to load / "No game" error

Cause: Wrong ROM set version for the core

Fix: Verify your ROM set matches the core version. MAME 2003-Plus requires MAME 0.78-based ROMs. Use a ROM set auditing tool (CLRMamePro, RomVault) to verify against the core's DAT file.

CRITICAL

Game loads but shows missing ROMs

Cause: Missing parent ROM or BIOS file

Fix: Ensure the parent ROM is present in the same directory as the clone. BIOS files (neogeo.zip, pgm.zip, etc.) must also be in the ROM directory, not a separate BIOS folder.

HIGH

Controls not working in game

Cause: RetroPad mapping not saved, or encoder not recognized

Fix: Go to Settings β†’ Input β†’ Port 1 Controls and remap. Ensure your encoder is connected before launching RetroArch. Save the remap file via Quick Menu β†’ Controls β†’ Save Core Remap File.

HIGH

Black screen after loading game

Cause: Video driver incompatibility or shader crash

Fix: Disable shaders first (Quick Menu β†’ Shaders β†’ Unload). If the game loads without shaders, the shader is the issue. Try a different video driver: Settings β†’ Drivers β†’ Video (try d3d11, d3d12, or vulkan).

MEDIUM

Game runs too slow

Cause: Core too heavy for hardware, or shader overhead

Fix: Switch to a lighter core (MAME 2003-Plus instead of MAME 2016/current). Disable or simplify shaders. Check Settings β†’ Frame Throttle β†’ Fast-Forward Rate is not accidentally enabled.

MEDIUM

Vertical game not rotating

Cause: Rotation not set or not saved as override

Fix: Quick Menu β†’ Video β†’ Rotation β†’ 90Β°. Then Quick Menu β†’ Overrides β†’ Save Game Overrides. The rotation must be saved as a game override or it resets on next load.

Standalone MAME vs MAME via RetroArch

Both approaches run MAME games, but they serve different use cases. Here's a direct comparison to help you decide which is right for your build.

FeatureMAME via RetroArchStandalone MAME
ROM set requiredCore-specific (e.g., 0.78)Latest MAME
Shader pipelineβœ“ Full RetroArch shadersLimited (HLSL/BGFX)
Overlay / bezelsβœ“ Native overlay systemArtwork packs only
RetroAchievementsβœ“ (2003-Plus, FBNeo)βœ— Not supported
Multi-system frontendβœ“ One frontend for all systemsβœ— MAME only
Game compatibilityCore-limited (~4K–30K games)32,000+ games
Configuration methodRetroArch menus + .cfg filesmame.ini hierarchy
Hardware accuracyGood (frozen core version)Best (always current)
Vertical game rotationQuick Menu β†’ Videomame.ini / vertical.ini
Best forMulti-system cabinets, achievementsDedicated MAME cabinets, preservation

Choose MAME via RetroArch if…

  • β€’ You're already using RetroArch for other systems
  • β€’ You want CRT shaders and bezel overlays
  • β€’ You want RetroAchievements support
  • β€’ Your cabinet covers multiple platforms (PS1, SNES, N64, Arcade)
  • β€’ You prefer a unified menu system

Choose Standalone MAME if…

  • β€’ Your cabinet is dedicated to arcade games only
  • β€’ You need the latest MAME ROM set (32,000+ games)
  • β€’ You need maximum hardware accuracy
  • β€’ You want the full mame.ini configuration hierarchy
  • β€’ You're running GroovyMAME on a CRT monitor

Explore More Emulator Guides