
MAME4iOS Reloaded is developed by David Valdeita (Seleuco), port of MAME 0.139u1 emulator by Nicola Salmoria and TEAM.
MAME4iOS Reloaded emulates arcade games supported by original MAME 0.139u1.
This MAME4iOS version is targeted at 64bit devies (A7 or higher, iPhone 5s or later) , because it is based on a high specs 2010 PC MAME build. Anyway don't expect arcade games of the 90 to work at full speed. Some games are really bad optimized (like outrun or mk series). This is related to MAME build used, since it is targeted to high specs PC's as i said before. This version doesn't have an UML backend ARM dynamic recompiler, which means drivers based on high specs arcade CPUs won't be playable (it has not sense since this games will be slow in any case).
TIP You can try to use speed hacks from the MAME Configure menu to make playables some games like CPS3 ones.
Said that, with a low end device, use at your own risk. I suggest you use iMAME4all (0.37b5) instead. Remember that games that can be emulated on both versions will run much faster on iMAME4all (0.37b5) than on MAME4iOS Reloaded (0.139u1), and will drain less battery.
This version emulates over 8000 different romsets.
Please, try to understand that that with that amount of games, some will run better than others and some might not even run with MAME4iOS Reloaded. Please, don't email me asking for a specific game to run.
After installing, place your MAME-titled zipped roms in the top folder, use iTunes file sharing, Files.app, built in WebServer or AirDrop (select Open in MAME4iOS).
MAME4iOS Reloaded uses only '0.139u1' romset.
Official web page for news, source code & additional information:
To see MAME license, go to the end of this document.
... and more.
The emulator controls are the following ones:
Virtual pad Movement in pad, mouse and analog control of the four players.
Buttons B,X,A,Y,L,R Buttons A,B,C,D,E,F.
Buttons START+COIN (pressed simultaneously) Access to the MAME menu.
Button COIN Insert credits (UP+COIN = 2P credits, RIGHT+COIN = 3P credits, DOWN+COIN = 4P credits).
Button START Start (UP+START = 2P start, RIGHT+START = 3P start, DOWN+START = 4P start).
Button EXIT Exit to selection menu to select another game.
Button MENU Open MAME4iOS menu, global settings.
NOTE To type OK when MAME requires it, press LEFT and then RIGHT.
FIlter the method used to expand the emulator screen.
FatBitsSkin choose the artwork and layout of the onscreen controlls.
Screen Shader effect to apply to the emulator screen.
simpleTron.Vector Shader effect to apply to vector games.
lineTron.Full Screen Uses all available screen or shows the emulator windowed.
Full Screen with Controler automaticly enters Full Screen when a controler, keyboard, iCade is detected.
Keep Aspect Ratio 'Enabled' keeps the aspect ratio; 'Disabled' will use all available screen.
Integer Scaling Only 'Enabled' will only scale image by integer amounts.
Change Current Layout Changes the current touch controller current layout.
Reset Current Layout to Default Restores the current layout.
Animated Animates ON/OFF DPad/Stick. Disable to gain performance.
Touch Type Set the touch stick to works as analog stick, digital stick or dpad.
Stick Type Limits the joystick's range of motion: 8-way,4-way,2-way The most common reason to use a gate in an actual arcade setting is the retrofitting of an older machine that is not compatible with a new 8-way stick. A classic example of this is Pac-Man. The game was originally designed for a 4-way stick, and is programmed to respond only when a new input occurs. If the user is holding the stick in the down position, then suddenly makes a motion to move to the right, what often happens is that the stick first moves into the down-right diagonal, which the game does not recognize as new input since down is still being held. However, right is also now considered held, and when the user completes the motion to move right, it is also not a new input, and Pac-Man will still be moving down.
Full Screen Buttons Show 1-4/6 Buttons: Hide/show B/Y/A/X/L/R buttons if needed.
Button A = B + X Select it to use A button as B and X simultaneous press.
Buttons Size Lets you change the touch buttons size.
Fullscreen Stick Size Lets you change the stick size (not DPAD) on lanscape or portrait fullscreen mode.
Nintendo Button Layout if enabled the ๐ ๐ and ๐ ง ๐ จ buttons will be swapped to match a Nintendo layout. This option has no effect on a physical game controller.
External Controller Enable external controller: iCade, iControlPad as iCade mode or iMpulse.
P4,P3,P2 as P1 Send Player 1 input data to Player2,3,4 so you can use the 2-4 players at the same time. Funny :). It makes some weird problems with some roms like D&D.
Button B as Autofire If enabled, press B to switch autofire on/off.
DPAD Touch DZ Enable/Disable a deadzone on DPAD touch center. It could be better for some games. Disable if you don't like it.
Stick Touch DZ Touch stick deadzone selector. Lower to gets more sensitivity.
Sound Enable or set the default sound rate for games.
Cheats Enables the reading of the cheat database, if present, and the Cheat menu in the user interface.
Save Hiscores If enabled, saves hiscores on some games not saving on NVRAM. It could cause problems with some games or save states.
Show FPS Shows ON/OFF fps.
Force Pixel Aspect Enable it to force pixel aspect ratio bypassing MAME video selection.
Show Info/Warnings Shows Game Info and any warnings when a game is selected.
You can mark (or unmark) your ROMS in the MAME4iOS game selection window as favorites by long pressing to get a context menu.
You can mark (or unmark) your ROMS in the MAME DOS MENU by pressing the X button. A favorite ROM appears in blue in the game list. The favorites are saved to the file: Favorites.ini. This file is compatible with the standard MAME Favorites.ini file format so you can copy this over from your PC version of MAME to the iOS version.
when you make a mistake and need to undo
Settings > Reset to Defaults
Delete all ROMs to also remove all data.context menu, select Delete, then choose Delete Settings.
You can also remove a game totally, context menu Delete, choose Delete All Files
Store your favorite games in the cloud.
When MAME4iOS is built with a CloudKit entitlement you will see a new iCloud section in Settings
Erase iCloud)handle input from a hardware keyboard, the following are examples of hardware keyboards.
below is a list of a small subset of the keys supported by MAME4iOS, for a full list look here.
| ARROW KEYS | emulate a dpad or joystick |
| LEFT CONTROL | ๐ |
| LEFT OPTION/ALT | ๐ |
| SPACE | ๐ จ |
| LEFT SHIFT | ๐ ง |
| Z | L1 |
| X | R1 |
| 1 | Player 1 START |
| 2 | Player 2 START |
| 5 | Player 1 COIN |
| 6 | Player 2 COIN |
| TAB | MAME UI MENU |
| ESC or โ+. | MAME UI EXIT |
| โ+DELETE | MAME toggle UI MODE (aka SCRLOCK) |
| RETURN | MAME UI SELECT (aka ๐ ) |
These keys are specific to MAME4iOS
| โ+ENTER | TOGGLE FULLSCREEN |
| โ+I | TOGGLE INTEGER SCALE |
| โ+Z | TOGGLE FPS DISPLAY |
| โ+U | TOGGLE HUD DISPLAY |
| โ+F | TOGGLE FILTER (Nearest and Linear) |
| โ+P | TOGGLE PAUSE |
| โ+A | TOGGLE Keep Aspect Ratio |
| โ+X | TOGGLE Force Pixel Aspect |
| โ+M | TOGGLE Mouse Capture |
| โ+S | TOGGLE SPEED 2X |
| โ+1 | Player 1 COIN+START |
| โ+2 | Player 2 COIN+START |
Some of the supported game controllers include, but are not limited to:
To start playing a game using a controller, do one of the following.
Coin + Start or 1 Player StartVIEW | SELECT |
GUIDE | MENU (on iOS 14+) |
MENU | START |
VIEW+MENU | MENU |
SHARE | SELECT |
PS Button | MENU (iOS 14+) |
OPTIONS | START |
SHARE+OPTIONS | MENU |
MENU or PAUSE | MENU |
OPTIONS | SELECT |
HOME | MENU (on iOS 14+) |
MENU | START |
OPTIONS+MENU | MENU |
To use a Steam Controller, make sure it is updated to BLE Firmware, and it paired with iOS device, see here.
Steam Controller Buttons
BACK | SELECT |
STEAM Button | MENU |
START | START |
MENU button pressing it will bring up the in-game menu.SELECT and START you can long press either one to bring up the in-game menu, or press both at the same time.SELECT, START, or MENU to perform a menu action, listed below, for example both MENU+X and SELECT+X will exit the game.To perform a menu action do one of the following
MENU or SELECT or START and press the combo button. ie MENU+XMENU or SELECT or START. ie X+MENU| MENU+L1 | Player Coin |
| MENU+R1 | Player Start |
| MENU+L2 | Player 2 Coin |
| MENU+R2 | Player 2 Start |
| MENU+A | Speed 2x |
| MENU+B | Pause MAME |
| MENU+X | Exit Game |
| MENU+Y | Open MAME Configure menu |
| MENU+DOWN | Save State โ |
| MENU+UP | Load State โ |
| MENU+LEFT | Save State โก |
| MENU+RIGHT | Load State โก |
| MENU | Game Context Menu |
| OPTION | MAME4iOS Settings |
| A | Play |
You can start a multiplayer game (1,2,3 or 4) players from the MAME4iOS menu.
If a user inserts a COIN or hits START with a game controller, it will be interpeted as a COIN/START for that player.
You can insert a COIN or do a START for another player from the main Game Controller by pressing one of the following.
| MENU+L2 | Player 2 COIN |
| MENU+R2 | Player 2 SELECT |
You can save or load game states by pressing the MENU button when you are gaming, and select save or load state option. Also you can press button MENU+UP (Load) or MENU+DOWN (Save) on a external controller.
MAME4iOS is now usable on a AppleTV using only the stock Siri Remote. You can only play games that use only the A and B buttons.
to start playing a game, hit MENU and select 1 Player Start from the list.
| TRACKPAD MOVE | emulate a dpad or joystick |
| TRAKPAD CLICK | A button |
| PLAY | B button |
| MENU | bring up the MAME4iOS menu |

The best way to use iCade with MAME4iOS is in fullscreen portrait mode, hit the option button and choose options. The onscreen controls will fade out when you start using the iCade buttons. Tap the screen to get MAME4iOS menu.
If the iCade is off (the fake coin slot light is off) just hit an iCade button or move the joystick.(you must have paired the iCade via bluetooth before)
Thanks to Todd Laney for sending me patches, and Martijn Bosschaart who has supported me to get the iCade HW.
MAME4iOS works correctly out of the box for iMpulse, also has built-in support for local multiplayer (TwiMpulse). Anayway, if you need to redefine second player buttons, you should press coin (left shoulder button) before so MAME4iOS initializes second iMpulse controller.
If you have an XInput compatible controller, use Settings > Accessibility > Switch Control > Switches > Bluetooth Devices to pair controller, then use as normal in MAME4iOS.
To connect an iPad or iPhone to your TV or a projector, you can either use the Apple HDMI, Component AV Cable, Apple Composite AV Cable, Apple Dock Connector to VGA Adapter, or other compatible cable.
When the cable is connected to a TV or projector, MAME4iOS will automatically use it when playing a game.
use Import..., Start Web Server, or Import from iCloud from MAME4iOS Settings
use iTunes file sharing (if your MAME4iOS build has it available) or Files.app, or a 3rd party app like iFunBox or iExplorer to copy ROMs on sandboxed MAME4iOS 'Documents' folder:
Step 1. Downloaded iFunBox (or a similar utility) and plug your iOS device into your computer.
Step 2. Launch iFunBox and select your iOS device on the left hand side.
Step 3. click on apps icon. Now you should see a list of all of your deviceโs applications. Locate MAME4iOS, click it, and select Documents.
Step 4. And thatโs all there is to it. Move your ROMs into this folder, launch MAME4iOS, and start playing!
Some romsets are not compatible between MAME 139 and newer versions, the best way to use both romsets at the same time is to make sure the newer ones are stored in the 7z format and the 139 ones in the zip format. This way both files can co-exist.
artwork/ | Artwork directory |
titles/ | Title images directory |
cfg/ | MAME configuration files directory |
hi/ | Hiscores directory (MAME 139) |
hiscore/ | Hiscores directory |
nvram/ | NVRAM files directory |
roms/ | ROMs directory |
software/ | Software directory |
samples/ | Samples directory |
snap/ | Screen snapshots directory |
sta/ | Save states directory |
The 139 version of MAME4iOS requires '0.139u1' compatible romsets.
The latest version of MAME4iOS requires romsets compatible with the latest MAME version.
You can find MAME version MAME4iOS is using by opening Settings.
Games (zip files) have to be imported into the roms/ folder.
NOTE File and directory names in iOS are case-sensitive. Put all file and directory names using lower case!.
The sound samples are used to get complete sound in some of the oldest games. They are placed into the 'samples' directory compressed into ZIP files. The directory and the ZIP files are named using low case!.
Starting with the release of MAME 0.107 in July 2006, thanks to Aaron Giles, MAME supports hi-resolution artwork for bezels, backdrops, overlays, marquees, control panels, instruction cards, etc., and includes a new file format for the layout (.lay)
Save these files to your MAME4iOS artwork directory, or import via AirDrop.
MAME 0.139u1 original version by Nicola Salmoria and the MAME Team.
Port to iOS by David Valdeita (Seleuco)
-Button mapping problems: Remove cfg files or folder besides rom folder, or do a Settings > Reset.
Retina skin and touch control layout thanks to Bryn Thompson.
Todd Laney for sending me iCade patches, and Martijn Bosschaart for support me with an iCade.
MAME4iOS is released under a dual-license (GPL / MAME license) of your choice. Under the GPL license in addition you have some extra rights granted by a special license exception which allow you to link the MAME4iOS GPL source with the not GPL MAME source. The exception also gives you the rights to eliminate it if you don't like it or if you want to include the MAME4iOS source in another GPL program. So, MAME4iOS is 100% GPL. You can more easily think at it as a sort of double license. A GPL or a GPL + exception. You have all the rights of the GPL, and, if you want, some others. The only limitation is for MAME4iOS. MAME4iOS cannot include external GPL source without the explicit permission of the source copyright holder.
Copyright 1997-2013, Nicola Salmoria and the MAME team. All rights reserved.
Redistribution and use of this code or any derivative works are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.