Retro Game Emulation on an iPhone

Last updated: 27JAN2022 (see Changelog for details)

The iPhone can do a lot of things seamlessly, and it’s a very powerful device. But something as simple as running an NES game can be quite challenging. So let’s set up your iPhone as a retro game emulation device — no jailbreaking required.

Like with my previous video about gaming on an iPhone (which covered standalone games, Apple Arcade, and streaming), the Backbone One is an essential component of gaming on iOS. There are other options available, like the Razer Kishi or GameSir X2 BT controller, but the Backbone One is miles better than these options thanks to its ease of use and helpful app integration.

One final note before we get started: emulation on iOS is a moving target. With each new iOS update, some things may get broken, or (very rarely) things might actually improve. My advice is to be patient with new iOS updates, and give the development teams to catch up. I’ll keep this guide updated with the latest developments going forward.

Find the right controller for you

There are really two main game controller options available for iPhones, the BackBone One and the GameSir X2 Lightning. Watch the video for an in-depth comparison, but long story short: get the BackBone.

GameSir X2 Lightning
BackBone One

Note that the BackBone One link above is a referral link, which will get you a $10 Apple Store coupon to use in the App Store or elsewhere in the Apple ecosystem.


WebRcade is a new browser-based platform that allows you to play your own retro games via cloud storage like DropBox. This will allow you to play your personal library on all sorts of devices — like the iPhone, iPad, Xbox and more. The games all run at full speed and it’s very easy to set up the platform. And it’s 100% open-source and free. In this video I’ll walk you through how it all works!

Supported platforms: Atari 2600, Atari 7200, GB, GBC, GBA, Game Gear, Master System, NES, Genesis, SNES, and more on the way.

Set up AltStore

AltStore is a special app that allows you to sideload other apps, including emulators. To set it up, head over to the AltStore FAQ page and follow along to the steps for your respective computer operating system. In the video above I walk you through the Windows process, which is a bit trickier than the MacOS method. The links to the AltServer app itself are found on the AltStore front page.

Note that when first installing the AltStore app onto your device, you’re going to need to use your App Store login credentials.

Due to the limitations that Apple imposes on free developer accounts, you will be limited to running only three apps at one time on your phone (and one of those apps must be the AltStore app). So you’ll need to decide which two apps you want to have on your phone at any one given time. Luckily, the AltStore app has a nice feature where you can “deactivate” apps you currently aren’t using, and then re-activate them when you’re ready to run the app again. This is a relatively painless way to switch between multiple emulator apps. If you are up for it, you can pay $99/year to enroll in the Apple Developer Program, which will remove these limitations on your phone.

Additionally, the apps must be refreshed every seven days. To do so, open up the AltStore app, go to the “My Apps” tab, and tap the “Refresh All” link. Note that you will need to have AltServer running on your computer, and to be on the same WiFi network as your computer, in order to refresh your apps. Once you do this process a few times, the iPhone will start to attempt background refreshes, so as long as you have AltStore running on your computer you’ll start to refresh your apps automatically, which makes for a seamless experience.

Delta emulator

The easiest emulator to recommend is the Delta emulator, which is made by the same developer as AltStore. To install it, simply go to the “Browse” tab on your AltStore app and install the emulator.

Delta can run Nintendo games up through the N64 flawlessly, and if you sign up as a Patreon you can have beta access to a Sega Genesis emulator, too. This is a great emulator if you just want to play games without having to fuss with settings — but on the flip side, there are no settings available to adjust things like aspect ratio, colorization, and so on. This is a very barebones but effective emulator for playing games.

To load games onto your device, you can either browse for them through your own cloud storage, or you can add them using iTunes’ file sharing function (demonstrated in the video above).

Provenance emulator

Another option for multi-system emulation is Provenance. This emulator can handle all Nintendo systems up to N64 (minus Nintendo DS), as well as a fair amount of other systems, like Sega Genesis and Sony PlayStation. This app is a little old and a somewhat buggy; for example, Atari Jaguar is broken, and the Sega Saturn emulator doesn’t register any Backbone One button presses. And like Delta, your customization options are severely limited — no graphics tinkering, etc.

To get started with Provenance, you will want to download the latest pre-built image (1.5b 2774) and sideload it onto your device using AltStore. To sideload, move the apk file onto a cloud storage solution like iCloud Drive, Google Drive, or Dropbox, and then access that file via the AltStore app. For more information on this process, check out the video above, where I demonstrate it a few times.

To set up the emulator and load games (and BIOS), I recommend checking out the super helpful Provenance wiki page, or consider joining their Discord server for tech troubleshooting and the latest news. Loading up games is a simple process, thanks to its handy web server function.

RetroArch emulator

Of course, RetroArch will provide you the most wide variety of emulators to choose from, and the highest degree of customizability. Everything I’ve tested works wonderfully on this app, with the exception of Nintendo 64, which wouldn’t run in my testing using the latest nightly build of RetroArch. Some of my favorite RetroArch cores, such as Flycast (Dreamcast), Dolphin (Gamecube), and PPSSPP (PSP) aren’t available, but if they ever get added, this single app will be a one-stop-shop in retro game emulation.

To install RetroArch, head over to their download page and grab the latest iOS apk. Their site also has a limited installation guide, and I walk you through the installation process in the video above.

To add your games, you will want to manually add them using iTunes’ file sharing function (demonstrated in the video above). One thing to note is that loading the BIOS files is essential, which is done via file sharing as well. Once you’ve loaded all your BIOS files into a folder, be sure to set that as your BIOS directory in the settings.

If you need to add a single file to a folder you’ve already imported into iTunes, unfortunately it’s not a simple process — you have to delete the entire folder from iTunes, then move the new folder (with the added file) back onto iTunes. So it’s best to move over all of your BIOS files and games at once, so you don’t have to go back and forth all the time.

UPDATE: Thanks to community feedback, I’ve learned that you can load an older version of the app — RetroArch 1.9.0 — which contains a working N64 (Mupen64) core as well as the Flycast (Dreamcast) core. Both work well, but note that the Flycast core will initially play with slow graphics (but normal speed audio), and then when you enter and exit the RetroArch Quick Menu, it will cut off the audio and make the gameplay normal speed. So essentially, in order to play full-speed Dreamcast, you have to play without audio. This version of the app also has some cores not found on the latest version, allowing you to play systems like Daphne and a variety of ports.

Gamecube emulator

There is a Gamecube emulator available for iOS, called DolphiniOS, but it is limited in which iPhones are supported (must have an A9 or higher chip), and will only work on iOS versions 12.0 through 14.4. Unfortunately my phone is running 14.6 so I was not able to test the performance, but I have tested it in years previous and it worked well. I would recommend using an iPhone 8 or above with this emulator.

PSP emulator

The PSP emulator, PPSSPP, works wonderfully on the iPhone. You should be able to play games at 2x to 4x resolution, with only certain games requiring auto frameskip. To install, download the latest PPSSPP apk and sideload it onto your device. Add games via the iTunes file sharing option.

Dreamcast emulator

Flycast is available on iOS, but is a little tricky to find. To find it, head over to this Actions page from the Flycast team, find the line labelled as “ios”, click on it, and then within you will find “flycast-apple-ios” file under the Artifacts heading. Download that file and sideload it onto your device. Here is a link to the latest build as of updating this guide, but this will change often, so grab the latest build from the Actions page.

PS2 emulator

The Play! emulator is available for iOS as well, but I haven’t had a chance to personally test it. Given that the Play! emulator is taken from PCSX2 code without permission, I’m not a fan of their business practices. Download and use at your own risk.

Sega Saturn emulator

The uoYabause emulator has an iOS version, and can be sideloaded like the other apps.

Using the iPhone as a gaming platform

Beyond emulation, the iPhone is a capable gaming platform, and works really well for streaming or cloud gaming as well as their robust App Store catalog (and subscription game service). The video above will walk you through all those aspects.


– added WebRcade information
– added controllers video
– added iPhone as a gaming platform section

– added Dreamcast, PS2, and Saturn emulator information

– added RetroArch 1.9.0 information

– published guide

One thought on “Retro Game Emulation on an iPhone

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s