The Definitive Guide to iOS emulation
As of April 2024, Apple has allowed emulation as long as they don't use JIT. This has opened up the floodgates to a technology that virtually every other modern platform in existence allows. Emulation can be used for many things, but gaming is the most popular use case for average users, and thus, this guide will focus entirely on gaming.
This guide is a living guide and is in the process of being built out. The goal is to demystify iOS emulation and make it accessible.
Also available in video!
If you prefer a video version of this guide, I've made a video version that covers everything you need to get started with iOS emulation.
- Glossary
- Getting Started / Requirements
- File Management
- Legal Considerations for ROMs and BIOS Files
- iOS vs Android
- Emulators
- Controllers and iOS
- Version History

Does this guide seem familiar? Perhaps you've seen my The Definitive Classic Mac Pro (2006-2012) Upgrade Guide, The Definitive Trashcan Mac Pro 6.1 (Late 2013) Upgrade Guide or The Definitive Mac Pro 2019 7,1 Upgrade Guide. These are all free of charge, free of advertisements and annoying trackers, labors of love. You can find me on YouTube and patreon.
Glossary
Emulation has a lot of jargon that comes with it. As a quick refresher, here's a list of terms that will be used throughout this guide.
- BIOS (Basic Input/Output System) – A small program essential for some emulators to replicate the original hardware's startup process and functionality. Required for systems like PlayStation and Game Boy Advance.
- Core – A specific emulator module within a front-end system (like RetroArch) designed to emulate a particular console. It is an application within an application.
- Emulator - software or hardware system that mimics the behavior of another system, allowing one device or platform to run software or applications designed for a different environment. It replicates the original system's functionality, including hardware and software interactions, without requiring the original hardware.
- Firmware – Low-level software stored in a device's ROM or flash memory that controls hardware functions. Some consoles require firmware files for proper emulation.
- JIT (Just-In-Time compilation) - A method that dynamically compiles code during execution, improving emulation performance but restricted by Apple's policies
- ISO (International Standards Organization file) – A disk image file that contains a complete copy of a CD/DVD game commonly used for PlayStation, Dreamcast, and other disc-based consoles.
- Native Resolution - the original display resolution of the emulated console
- ROM - (Read-Only Memory) is a type of non-volatile memory that stores firmware or software permanently and cannot be easily modified or erased. In emulation, a ROM refers to a digital copy of a game's software extracted from a physical cartridge or disc, allowing it to be played on an emulator.
- Save State – A snapshot of a game's current state that can be saved and loaded at any time, allowing players to resume gameplay from that point.
- Side Loaded – Side loading is the process of installing apps on iOS devices from sources other than the official App Store, typically by using tools like AltStore, which allows access to emulators that use JIT compilation and other features restricted by Apple's App Store policies..
Getting Started /Requirements
Requirements:
- A device running iOS 17, iPad OS 17 or later
- Free space on your device
- Optional but recommended: A gamepad
- A bit of patience
Modern iPhones and iPads are powerful machines; the iPhone 16 Pro in raw CPU computing bests an 8-Core Mac Pro 2019. Any device capable of running modern iOS has enough processing power to emulate many different platforms. In the late 1990s, an iMac G3 233 MHz could emulate a NES and do reasonably well at SNES emulation. The biggest impediment for most devices will be storage as 32-bit era consoles like the Sony Playstation, Sega Saturn, or PPSSPP games can easily eat 600 MB per game, and in the case of the PSP, over 1 GB.
An emulator cannot understand interactions the console was not programmed for, such as touching menu items in an SNES game. While emulators feature touch controls, gamepads are highly recommended as console games are designed specifically for controllers; thus, all touch controls are mapped to key presses. Touch controls are either unable or very difficult to use for some interactions, such as analog triggers.
Legal Considerations for ROMs and BIOS Files
Understanding the Legal Landscape
The legal status of game ROMs and console BIOS files exists in a complex gray area that varies by country and jurisdiction. While emulators themselves are generally legal software, the content they run often raises copyright concerns.
ROM Files
ROMs (Read-Only Memory) are digital copies of game cartridges, discs, or other media. From a legal standpoint:
- Personal Backups: In many jurisdictions, making personal backup copies of games you legitimately own is considered legal under fair use doctrines.
- Downloaded ROMs: Downloading ROMs of games you don't physically own is generally considered copyright infringement, even if you previously owned the game but no longer do.
- Time Limitations: There is a common misconception that games become "abandonware" after a certain period. However, copyright protection typically lasts for decades (in the US, copyright extends 95 years for corporate works), and most classic games are still under copyright protection.
BIOS Files
BIOS files are even more legally sensitive than ROMs:
- Copyright Protection: Console BIOS files are protected by copyright and are generally not intended for distribution.
- No Abandonment Provisions: Even for discontinued consoles, the BIOS copyright remains in effect.
- Reverse-Engineered Alternatives: This is why many emulators (like those mentioned in this guide) offer reverse-engineered open-source BIOS alternatives that don't infringe on copyrights.
Best Practices
To stay on the safer side of the legal spectrum:
- Only create backups of games you legally own.
- Don't distribute ROMs or BIOS files to others.
- Support developers by purchasing games when they're available on modern platforms.
- Consider using legal alternatives like official re-releases or subscription services that offer classic games.
Legal Alternatives
Many companies now offer legal ways to play classic games:
- Nintendo Switch Online (NES, SNES, N64, Game Boy games)
- PlayStation Plus (PlayStation classics)
- Virtual Console and classic collections
- GOG.com and other digital stores that sell classic games
This guide is not intended to encourage copyright infringement. The technical information provided is for educational purposes and for those who wish to play games they legally own on modern devices.
Note: This section provides general information, not legal advice. Laws vary by location and interpretation. When in doubt, consult legal resources specific to your region.
iOS vs Android
This guide will likely never feature a comprehensive breakdown comparing iOS vs Android, but Android has a considerable advantage compared to iOS.
Due to its more open nature, Android has a decisive advantage. While iOS emulation dates back to the jailbreaking era of iOS, Android app stores have officially allowed emulation from virtually the beginning, meaning there are many more mature emulators. Android also places fewer restrictions on emulation; thus, emulators exist for more modern consoles, like the Sony PlayStation 2, Sega Dreamcast, GameCube, Wii, and even the Swìtch.
The diversity of the Android ecosystem has spawned full-blown console-like Android devices such as the Odin 2, a high-end device that features a built-in gamepad akin to a portable videogame console. Devices like the Odin 2 feature memory cards, allowing for a relatively inexpensive way to store game collections.
Android is also more forgiving about 3rd party controller mapping whereas iOS has a much more limited ability to map 3rd party controllers. This gives Android an accessibility edge as less-conventional layouts and input devices can be mapped according to user preference.
Mainstream iOS emulation, while relatively young by comparison, still offers a great experience. Android does not make the setup easier in my experience, but rather, it offers a lot more options. This guide will help you get the most out of your iOS or iPadOS device.
Android is the superior option if emulation is your primary concern.
File Management
iOS has a very locked-down file system, but it does provide multiple ways to transfer data to and from your device. The most common methods are:
- USB File Transfer - USB File Transfer is the most reliable and recommended method, but it requires a computer.
- iCloud Drive - iCloud Drive allows for dynamic file management but requires a subscription for more than 5 GB of storage
- AirDrop - Airdrop is the most convenient but is limited to Apple devices.
Transferring via USB
Transferring files via USB, as stated, is the preferred method due to speed, reliability, and accessibility.
- Connect your iPhone or iPad to your computer via cable. You may need to authorize the device on your computer and/or device.
- Open Finder on your Mac or File Explorer on your Windows PC.
- Your device should appear in the sidebar or as a drive in the finder. Click on it to bring up the iPhone pane.
- Click on the Files tab to access the file system. You should see a list of installed applications that support file transfers, including your emulators. Due to the limitations of Apple, you cannot access any files within a folder
- Drag and drop files to your device on the Application icon. You can drag and drop entire folders.
Regardless of file transfer type, file management is almost entirely handled on the device using the Files app. For detailed instructions, see Organize files and folders in Files on iPhone. Files can be accessed between applications. This is very useful for sharing ROM libraries between emulations such as RetroArch and Delta, which can both emulate a subset of the same consoles (NES, SNES, GameBoy, Gameboy Advance, DS, and N64). They can share files rather than storing duplicate copies of the same game.
To select all, tap a file, and then from the lower left corner, click select all.
To move a folder or file, long press it, and then select move.
Third Party File Management
Dude to the arbitrary limitations Apple places on file management, there is a cottage economy of phone management applications, the most prominent being iMazing. These applications allow for viewing and editing the contents of directories that exist on an iPhone. Unfortunately, these applications do cost money but are easier to use than Apple's Files app.
Adding games to Emulators
Once games have been transferred, adding games to the emulator in question is relatively easy.
Every emulator follows the same pattern for adding ROMs to its library by clicking some sort of add + or Add games button, then locating the files and selecting all or pointing a scan function to the directory. A few emulators have default locations like PPSSPP that will autoscan. Only DolphiniOS requires the ROMs to be located in an exact directory.
Emulators
Emulators on iOS exist in two camps: App Store and Sideloaded (see lists below). iOS's emulation selection is slim, but fortunately, pretty much all of the major consoles are covered up to the 32-bit era. Here is the list of consoles supported, all of which have RetroArch support. Emulators like Delta use the same cores that are found in RetroArch.
- Amstrad - CPC
- Arcade - MAME / NeoGeo / CPS 1-2-3
- Atari - 2600, 5200, 7800, Jaguar, Lynx
- Bandai - WonderSwan
- ColecoVision
- Commodore - C64,C128, Plus4, Vic20, Amiga
- DOS - DOSBox
- GCE - Vectrex
- Magnavox - Odyssey 2 / Phillips Videopac+ (O2EM)
- Microsoft - MSX+
- MNec - PC Engine / TurboGrafx-16 / CD, PC-98, PC-FX
- NIntendo - NES, SNES, N64, DS, Gameboy, Gameboy Color, Game Boy Advance, Virtual Boy
- Palm OS
- Sega - MasterSystem, Game Gear, SG-1000, Genesis / MegaDrive, Saturn
- Sharp - X68000
- Sinclair - ZX 81, ZX Spectrum
- SNK - NeoGeo Pocket / Color
- Sony - PlayStation, PSP
- 3DO
- Thomas - MO/TO
- Uzebox
App Store Emulators
There are several emulators available on the App Store that are sanctioned by Apple. These emulators are limited in scope and are generally focused on older consoles.
- Delta - App Store, Official website
- Gamma - App Store, Official website
- PPSSPP - App Store, Official website
- RetroArch - App Store, Official website
Side Loaded Emulators
There several emulators that exist outside of the Apple App Store due the policies Apple imposes, chiefly around the usage of JIT runtimes. The author responsible for porting DolphiniOS has a short blog post that explains the state of JIT and iOS in more depth.
The current roster of non-App Store iOS apps are:
- DolphiniOS - GameCube / Wii -official website
- Flycast - Builds Store, Github
- Play! - Playstation 2 (PS2) - official website
- Provenance - Multi-console - official website
Delta
Links: App Store, Official website
Delta is a multi-emulator that supports a wide range of consoles, including the Nintendo Entertainment System (NES), Super Nintendo Entertainment System (SNES), Nintendo 64 (N64), Nintendo DS, Game Boy, Game Boy Color, and Game Boy Advance and provides a very-iOS native experience for its UI making it the easiest to use emulator in this list. It is free on the App Store. It's a minimalist emulator that focuses on ease-of-use above customization and seems entirely focused on Nintendo consoles.
Adding ROMs
Transfer ROMs to your iPhone; from the main screen, click the + menu and locate your ROMs. Delta will automatically sort them between the supported consoles
Save States
In Delta, save states are triggered by clicking the menu button during gameplay. This will allow you to bring up the load state or save state menus. When saving a state, click the save state option and then click the + button to save a new state. Loading states is even easier; just tap Load State from the menu, locate the save you'd like to load, and tap it. Your game will resume in the exact place depicted in the screenshot.
Optional Nintendo DS BIOS
Delta uses the MelonDS core, which uses, by default, reversed-engineered open-BIOS and does not require Nintendo DS BIOS to function. However, there may be extreme edge cases where this might cause minor issues (likely saving games). You can provide your own BIOS files by transferring the 3 required files to your iPhone. In Settings, locate Core Settings and tap the Nintendo DS. You'll need to provide a bios7.bin
, a bios9.bin
and thefirmware.bin
. Tap and link them.
Nintendo (NES) Games not loading
If you have a problem loading NES cores, quit the emulator and relaunch it. Swipe to your NES collection. Long press and hold on to a game to bring up a preview. You should see the game running in a preview. From there, tap open. NES games should be playable
Gamma
Links: App Store, Official website
Gamma is a semi-paid emulator that offers an advertisement-supported free tier. It has received criticism as it collects some personal data (almost certainly for the advertisements). It is a reasonable one-time $5 purchase and is continually being improved.
Adding ROMs
Transfer ROMs to your iPhone; from the main screen, click the + menu and locate your ROMs. Gamma supports bin/cues and ISOs. The paid version will support compressed files but seems only auto-decompress them.
Save States
In Delta, save states are triggered by clicking the menu button during gameplay. This will allow you to bring up the load state or save state menus. When saving a state, click the save state option and then click the + button to save a new state. Loading states is even easier. Just tap Load State from the menu, locate the save you'd like to load, and tap it. Your game will resume in the exact place depicted in the screenshot.
Optional BIOS
Gamma uses the PCSX-ReARMed core, which uses, by default, reversed-engineered open-BIOS and does not require a BIOS to function. However, there may be extreme edge cases where this might cause minor issues (likely saving games). You can provide your own BIOS files by transferring a BIOS file to your iPhone. In Settings, locate Core Settings and tap the PlayStation. You must provide a bios.bin
file. Tap and link them. It does not need to be named bios.bin
PPSSPP
Links: App Store, App Store (Gold), Official website
PPSSPP is the gold standard for emulation experience as it cannot only play PPSSPP games but also enhance them beyond the original console's ability. Modern iPhones have enough horsepower to greatly enhance the graphics output of the PPSSPP titles.
Adding ROMs
Transfer ROMs to your iPhone; from the main screen, click the refresh menu and locate your ROMs. PPSSPP supports .iso, .cso, .pbp, and .chd.
Save States
In PPSSPP, save states are triggered by clicking the menu button or tapping the screen to bring up touch controls. This will allow you to bring up the load state or save state menus.
Graphics Options
Rendering Mode
- Backend: Determines the graphics API used for rendering; different backends may offer varying performance and compatibility on your device.
- Rendering Resolutions: Controls the internal resolution at which games are rendered; higher values provide sharper visuals but require more processing power.
- Software Rendering (Slow accurate): Uses CPU instead of GPU for rendering, providing better compatibility for problematic games at the cost of significantly lower performance.
- Display Layout and Effects: Controls how the game is displayed on the screen and allows the application of visual effects like shaders or filters.
Framerate Control
- Frame skipping: Skips rendering certain frames to maintain game speed on slower hardware; helps performance but may cause visual stuttering.
- Frame Skipping Type: Determines the method used when skipping frames, affecting how smoothly animations appear during performance optimization.
- Auto frameskip: Automatically adjusts frame skipping based on current performance to maintain target speed; provides dynamic optimization without manual adjustment.
- Alternative speed (in %, 0 - unlimited): Allows custom adjustment of emulation speed as a percentage of normal; useful for speed runs or slowing down challenging sections.
- Alternative speed 2 (in %, 0 - unlimited): Provides a second preset speed option that can be quickly toggled; convenient for switching between different emulation speeds.
Speed Hacks (Can cause rendering errors!)
- Skip buffer effects: Bypasses certain visual effects that require buffer operations; improves performance but may cause visual glitches in some games.
- Disable Culling: Turns off the removal of non-visible polygons; can fix broken visuals in some games but may reduce performance.
- Skip GPU readbacks: Prevents the GPU from sending data back to the CPU; can significantly improve performance but may cause graphical issues or crashes.
- Lazy texture caching (speedup): Delays texture loading until absolutely necessary; reduces memory usage and improves performance but may cause brief texture pop-in.
- Spine/bezier curves quality: Controls the precision of curved surface rendering; lower values improve performance, while higher values enhance the visual quality of curved objects.
Performance
- Render duplicate frames to 60 Hz: Repeats frames as needed to maintain smooth 60Hz output even when the game runs at lower framerates; reduces stutter but doesn't affect actual game speed.
- Buffer graphics commands (faster, input lag): Queues up graphics commands for batch processing to improve performance; may introduce slight input delay as a trade-off.
- Hardware Transform: Uses GPU acceleration for geometry transformations instead of CPU; typically provides significant performance gains but may cause visual glitches in some games.
- Hardware Tessellation (greyed out): Would use GPU to generate additional geometric detail on surfaces; currently unavailable on iOS devices.
Texture Scaling
- Upscale Type: Determines the algorithm used to enhance texture quality; different methods offer varying balances between quality and performance.
- Upscale Level: Controls how much textures are enhanced in resolution; higher values provide sharper textures but require more processing power and memory.
- Deposterize: Reduces the banding effect in textures that have limited color gradients; smooths out color transitions but may slightly blur sharp edges.
- Texture Shader (Greyed out): Would apply custom effects to textures; currently unavailable on iOS devices.
Hack Settings (May cause glitches)
- Lower resolution for effects (reduces artifacts): Renders certain visual effects at a lower resolution than the main game can improve performance and reduce visual artifacts in some games.
RetroArch
Links: App Store, Official website
RetroArch is a powerful front-end for emulation cores. The best way to think of it is as a bunch of separate emulators that a GUI glues together. The advantage of this is that emulators can improve and focus entirely on emulation and not user interfaces. It also means that certain aspects of configuration can be shared, such as user inputs, save-state preferences, and so on.
Adding ROMs
RetroArch can add individual games by using Load Content, but also, from the add menu, can scan entire directories, multiple folders deep. However, it will not monitor the directory; thus, a scan will be required if games are added or removed from a directory.
Changing the user interface
Out of the box, RetroArch is configured to use the GLUI, a user interface that is touch-friendly. If you intend to use a controller, I highly recommend changing the user interface.
Tap "Settings" then "User Interface," scroll to the bottom of the screen, and tap "Menu." Select XMB. You'll need to quit RetroArch and relaunch it before the changes take effect.
After the change, you should see the more visually appealing XMB interface. For a full menu map, see docs.libretro.com: XMB menu map as this contains the full list of where all the menu options live.
This section is a work in progress!
BIOS Files
The consoles that require bios for operation currently for iOS in RetroArch are:
- Gameboy Advance -
gba_bios.bin
- NeoGeo -
neogeo.zip
(Placed in ROMs folder as well) - Nintendo DS -
ios7.bin
,bios9.bin
,firmware.bin
- Sega CD -
bios_CD_E.bin
,bios_CD_J.bin
,bios_CD_U.bin
- Playstation -
scph5501.bin
(you can use many different bios) - TurboGraphix-CD -
syscard1.pce
,syscard2.pce
,syscard3.pce
RetroArch maintains a list for every platform it supports and the BIOS required.
Recommended Cores & Configurations
Retro Arch often has multiple cores performing the same function. In the cases where these exist, I've tried to narrow them down to what I've found to be the "best," in my opinion. Do experiment and read up on the core differences, as your priorities might differ. Some cores are designed for accuracy, some for speed, and some for enhancements.
- Game Boy / Game Boy Color - Gambatte
- Game Boy Advance - mGBA
- NEC PCEngine / TurboGGraphix-16 / PCEngine-CD / TurboGraphix-CD - Beetle PCE
- NES - Nestopia
- Nintendo DS - Melon DS
- Sega Master / System Genesis (Mega Drive)/ Sega CD - Genesis Plus GX / Genesis Plus GX Widescreen (may not work with all games)
- Sega Saturn - Yabause
- SNES - BSNES / BSNES HD Beta (for Mode 7 Games)
- Playstation - Beetle PSX HW
Select A Core and Core Configuration
When you first select a ROM, you'll be presented with a variety of options, and you'll likely need to select a core. You can always change this by using "Set a Core Association" or "Reset Core Association"
Core Options
Core Options in RetroArch are game system-specific settings that allow you to customize how each emulation core functions. Unlike global RetroArch settings that apply to all systems, Core Options are tailored to the specific emulated console or computer system you're using. Every core has its own set of options. From the menu when running a game, go to Core Options.
Some of the emulator options exist outside of the Core Options, for example, BSNES's HD Mode 7 options exist in a menu outside of Core Option as do some settings for Beetle PSX HW.
Each core has its own unique settings, which may include:- Graphics enhancements (resolution scaling, texture filtering)
- Performance adjustments (speed hacks, frameskipping)
- Audio quality settings
- System-specific features (PGXP for PlayStation, HD Mode 7 for SNES)
- Region options (NTSC/PAL)
- Input latency adjustments
Recommended Core Options for BSNES and BSNES HD Beta
BSNES is a cycle-accurate SNES emulator that aims to provide the most accurate emulation possible but also offers the ability to enhance Mode 7 games. Mode 7 titles include Pilot Wings, Mario Kart, and F-Zero. For a complete list, see wikipedia.org: Mode 7, Both BSNES and BSNES HD Beta can enhance Mode 7 rendering, with the HD Beta adding the ability to render games in widescreen during Mode 7 sequences.
Core Options
As of writing this, the HD Mode 7 for BSNES exists in different places depending on the version of BSNES you are using. In BSNES, this is listed in the core menu as HD Mode 7, whereas in BSNES HD Beta, it is in the core options. HD Beta is much more CPU intensive, so you may need to lower the scaling, especially depending on your device.
- Scale - 3x (720p) for HD Beta and older phones, 5x (1200p) for BSNES on newer phones
- Perspective Correction - On
- Super Sampling - On
Recommended Core Options for Beetle PSX HW
Beetle PSX HW is an emulation core that offers quite a bit of customization options to enhance PlayStation graphics, such as increasing the resolution, better polygon processing, anti-aliasing, and more. Here are some recommended settings:
Core Options
- Internal GPU resolution - 2x or 4x
- Texture filtering - SABR
- MSAA - 2x or 4x or 8x
Emulation Hacks
Beetle PSX HW has the ability to manipulate the way the PlayStation renders polygons to help improve visual fidelity. Beetle PSX HW's PGXP (PlayStation Geometry Precision) capabilities correct the polygon jitter and texture warping that occurs in PlayStation games due to the console's limited floating-point precision. This feature enhances 3D rendering by maintaining proper polygon alignment and improving texture mapping accuracy, resulting in a much more stable and visually pleasing image without the "wobbling" effect seen in original PlayStation games. PGXP can be enabled in the core options and offers various levels of correction, from basic coordinate precision to advanced perspective-correct texturing..
Go to the Emulation Hacks menu and select PGXP. Enable the following:
- PGXP Operation Mode - Memory Only
- PGXPPrimitive Culling - On
- PGXP Perspective Correct Texturing - On
Shaders
Shaders in RetroArch are visual filters that can transform the appearance of games by applying post-processing effects, such as CRT scanlines to mimic old TVs, smooth scaling to reduce pixelation, or various color adjustments to enhance visuals. They allow players to either recreate the authentic look of original hardware or dramatically improve and modernize the appearance of retro games without affecting the actual gameplay. They can can be chained together.
- While playing a game, bring up the RetroArch menu
- Navigate to Quick Menu → Shaders
- Enable the Shaders
- Select Load Shader Preset to browse available shader presets
- Choose a shader from the list (e.g., CRT shaders are in the "crt" folder)
- Once loaded, select Apply Changes to see the effect immediately
Chaining Multiple Shaders
- From the Shaders menu, select Prepend Shader or Append Shader
- To save your chain, select Save Shader Preset from the Shaders menu
- Scale2x + CRT-Royale (good balance of sharpness and authenticity)
- SABR + Lottes (excellent for 16-bit era games)
- xBRZ + Dot Matrix (perfect for handheld console emulation)
- ScaleFX + CRT-Geom-Deluxe (for a more realistic CRT look)
Save states
While playing a game, bring up the RetroArch menu by tapping the screen with two fingers simultaneously (or using your configured menu button). In the Quick Menu, scroll down to find "Save States" and tap to enter this section. RetroArch provides 10 save slots (0-9) for each game. In the Save States menu, select "Save Slot" and choose your preferred slot number. To load a save state, from the Load State, select the save state from the slot you'd like to use.
Auto Saves
Auto Saves are a feature that will automatically save your game when you exit it, akin to how an iOS game can resume to where you last were when tabbing between apps. To enable auto saves, go to System Settings and then Saving. Toggle both.
Hide overlay when Control is connected
A default behavior that most users will want to enable is auto-hiding the on-screen overlays when a gamepad is connected.
Tab to settings and select "User Interface," and then to "On-Screen Overlay." Locate "Hide Overlay when the controller is connected" and toggle it on. You can still access the touchscreen overlay by tapping the screen during gameplay.
Controllers and iOS
iOS supports out of the box various styles of controllers such as the Backbone controller or popular repackaged Zike Z331 / EasySMX M15, ATUTEN Phone Gaming Controller
Console Supported controllers include:
- PlayStation DualShock 4 Wireless Controller
- PlayStation 5 DualSense Wireless Controller
- PlayStation 5 DualSense Edge Wireless Controller
- Xbox Wireless Controller with Bluetooth (Model 1708)
- Xbox Wireless Controller Series S
- Xbox Wireless Controller Series X
- Xbox Elite Wireless Controller Series 2
- Xbox Adaptive Controller
- Nintendo Joycon Controllers*
For more information, see: Apple.com: Connect a PlayStation wireless game controller to your Apple device and Apple.com: Connect an Xbox wireless game controller to your Apple device. *The Joycons do not seem to be officially supported, but they work. See TheVerge.com: iOS 16 supports Nintendo's Switch Pro and Joy-Con controllers.
iOS, unfortunately, is limited in its ability to map buttons, and thus, not every button a controller may work.
Controller clips
If you already have a game console controller, one of the least expensive ways to add a hardware controller to your iPhone is via clip mechanisms, like OIVO PS4 Controller Phone Mount Clip, or OIVO PS5 Controller Phone Mount Clip. There are a lot of these on Amazon, like Orzero PS5 Magnetic Controller Phone Mount Clip that makes use of MagSafe or Orzero Magnetic Controller Phone Mount Clip for X box Series X/S, X box One/One S/One X. There are many to pick from; I suggest searching Mobile Gaming CLip and then appending whatever parameters from there.
Version History
- 03/21/2025 - Minor Edits
- 03/20/2025 - Flycast info, started recommended settings for Retro Arch, added Yabause recommendation
- 03/19/2025 - Expanding content (added controllers, more images, more on RetroArch)
- 03/18/2025 - Initial Draft