MAME4iOS Reloaded

Version $(APP_VERSION) ($(APP_DATE))

MAME (0.139u1 ) by David Valdeita (Seleuco)

INTRODUCTION

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.

Features

... and more.

CONTROLS

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.

GLOBAL OPTIONS

FIlter the method used to expand the emulator screen.

Skin choose the artwork and layout of the onscreen controlls.

Screen Shader effect to apply to the emulator screen.

Vector Shader effect to apply to vector games.

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.

FAVORITES

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.

RESET

when you make a mistake and need to undo

Global Settings Reset (aka Factory Reset)

Settings > Reset to Defaults

Per Game Settings Reset

context menu, select Delete, then choose Delete Settings.

Delete Game

You can also remove a game totally, context menu Delete, choose Delete All Files

iCloud

Store your favorite games in the cloud.

When MAME4iOS is built with a CloudKit entitlement you will see a new iCloud section in Settings

Hardware keyboard

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 KEYSemulate a dpad or joystick
LEFT CONTROL๐Ÿ…
LEFT OPTION/ALT๐Ÿ…‘
SPACE๐Ÿ…จ
LEFT SHIFT๐Ÿ…ง
ZL1
XR1
1Player 1 START
2Player 2 START
5Player 1 COIN
6Player 2 COIN
TABMAME UI MENU
ESC or โŒ˜+.MAME UI EXIT
โŒ˜+DELETEMAME toggle UI MODE (aka SCRLOCK)
RETURNMAME UI SELECT (aka ๐Ÿ…)

These keys are specific to MAME4iOS

โŒ˜+ENTERTOGGLE FULLSCREEN
โŒ˜+ITOGGLE INTEGER SCALE
โŒ˜+ZTOGGLE FPS DISPLAY
โŒ˜+UTOGGLE HUD DISPLAY
โŒ˜+FTOGGLE FILTER (Nearest and Linear)
โŒ˜+PTOGGLE PAUSE
โŒ˜+ATOGGLE Keep Aspect Ratio
โŒ˜+XTOGGLE Force Pixel Aspect
โŒ˜+MTOGGLE Mouse Capture
โŒ˜+STOGGLE SPEED 2X
โŒ˜+1Player 1 COIN+START
โŒ˜+2Player 2 COIN+START

Game Controlers

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.

Xbox Controller

VIEWSELECT
GUIDEMENU (on iOS 14+)
MENUSTART
VIEW+MENUMENU

Playstation Dualshock

SHARESELECT
PS ButtonMENU (iOS 14+)
OPTIONSSTART
SHARE+OPTIONSMENU

SteelSeries Nimbus Controller (MFi)

MENU or PAUSEMENU

Nimbus+ Controller

OPTIONSSELECT
HOMEMENU (on iOS 14+)
MENUSTART
OPTIONS+MENUMENU

Steam Game Controlers

To use a Steam Controller, make sure it is updated to BLE Firmware, and it paired with iOS device, see here.

Steam Controller Buttons

BACKSELECT
STEAM ButtonMENU
STARTSTART

MENU button on game controllers

MENU combination actions

To perform a menu action do one of the following

MENU+L1Player Coin
MENU+R1Player Start
MENU+L2Player 2 Coin
MENU+R2Player 2 Start
MENU+ASpeed 2x
MENU+BPause MAME
MENU+XExit Game
MENU+YOpen MAME Configure menu
MENU+DOWNSave State โ‘ 
MENU+UPLoad State โ‘ 
MENU+LEFTSave State โ‘ก
MENU+RIGHTLoad State โ‘ก

Hotkey combinations (while in choose game UX)

MENUGame Context Menu
OPTIONMAME4iOS Settings
APlay

Multiplayer game start using game controllers

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+L2Player 2 COIN
MENU+R2Player 2 SELECT

SAVE/LOAD STATE

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.

Siri Remote

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 MOVEemulate a dpad or joystick
TRAKPAD CLICKA button
PLAYB button
MENUbring up the MAME4iOS menu

iCADE (or compatible)

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.

iMpulse

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.

XInput 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.

TV-OUT

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.

ROM INSTALLATION

use Import..., Start Web Server, or Import from iCloud from MAME4iOS Settings

MANUAL ROM INSTALLATION

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!

Mixing 139 and 2xx ROMs

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.

DIRECTORIES

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

SUPPORTED GAMES

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.

ROM NAMES

NOTE File and directory names in iOS are case-sensitive. Put all file and directory names using lower case!.

SOUND SAMPLES

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!.

ARTWORK

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.

ORIGINAL CREDITS

MAME 0.139u1 original version by Nicola Salmoria and the MAME Team.

PORT CREDITS

Port to iOS by David Valdeita (Seleuco)

DEVELOPMENT

KNOWN PROBLEMS

-Button mapping problems: Remove cfg files or folder besides rom folder, or do a Settings > Reset.

INTERESTING WEBPAGES ABOUT MAME

ART

Retina skin and touch control layout thanks to Bryn Thompson.

Thanks

Todd Laney for sending me iCade patches, and Martijn Bosschaart for support me with an iCade.

MAME4iOS LICENSE

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.

MAME LICENSE

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.