Play console games from NES, SNES, GBA etc on your Apple TV


Provenance Apple TV

The full potential of set-top boxes and similar devices is always hindered by the rules their manufacturers impose or simply because of the default experiences that are supposed to appeal to as many people as possible without being overly complicated. The thing is, that sweet spot varies for different people.  Those who want to get more bang for their buck need to follow side-stepping methods that will allow them to introduce additional features that would not normally be available to them. Today I will show you how to sideload apps into your Apple TV in order to install an emulator and start playing classic games from the SNES and GBA era with Apple’s device.

What you’ll need

Apple TV and iPhones use different operating systems (tvOS and iOS respectively) but Apple has kept them pretty similar for the most part. Some time ago, I showed you how to sideload open-source apps into iOS and the process detailed in that guide is very similar to what you must do here. You will need to have a free Apple Developer account, the latest version of Xcode and a USB Type C cable to connect your Apple TV to your computer. The whole thing might seem a bit intimidating at first but trust me when I say that the results are very much worth your trouble.

As for the ROMs themselves, I will not tell you how to get them. Owners of existing copies of the games they want to emulate can, in certain regions, download ROMs as they are merely considered digital copies of the physical product. You are solely responsible for learning about the laws of your own country and how to acquire ROMs. However, I will point you in the direction of Retrode, a USB device that can create digital copies of your physical cartridges with your save files.

Emulate the classics

Now that you hopefully have everything ready, it is time to get an emulator called Provenance and start loading it up with your favorite games of old.

1. Connect your Apple TV to your computer. This is what you need the USB Type C cable for so grab it and use it. Afterwards, make sure that your Apple TV is connected to power.

2. Go to Provenance’s GitHub and copy the “HTTPS clone URL”. You will find it right above the “Clone in Desktop” and “Download ZIP” buttons on the right side.

3. Open Xcode and go to Source Control > Check Out. Paste the clone URL that you copied before in the “Repository” field and click on Next.

4. Select the Master branch and click Next again.

5. Click on “Download” and select “Provenance”.

6. Select “ProvenanceTV-release” from the dropdown menu and choose your Apple TV to start the file processing process.

7. Once that is done, click on the Play button to build the actual app. This is where the Developer account will come in handy as you may be asked to log in with one.

8. When the app is built you should see a message confirming that Provenance is running on Apple TV. At this point you have to disconnect your Apple TV from your computer and connect it back to your actual TV.

9. Open the Provenance app in your Apple TV and click on the “Import ROMs” option.

10. Provenance will give you an IP address which will let you access its web interface on your computer where you can upload all your ROMs. Anything you upload should automatically show up on your Apple TV and you can play all titles immediately. To delete ROMs once they are on Apple TV, use the Siri Remote’s trackpad and long-press on the items you want to delete.

11. Do not worry if the only controller you have is a Siri Remote because you can actually play the games with it. However, the control scheme will most likely be quiet weird so a physical MFi controller is a much better option. Check out our guide on connecting game controllers to your Apple TV for more information.


During the seventh step the above method, some of you will run into an error that will read “No provisioning profiles found: No Non-expired provisioning profiles were found” as well as an error about the ID string of the app. That happens because Xcode is using another developer’s account to build the app and the conflict breaks the process. There are two things you can try to fix that.

A) Use another method

1. Create an Xcode project from Provenance’s source code. To do that, open a Terminal window and run this command:

sudo gem install cocoapods; git clone; cd provenance; pod install

2. Let the process finish and then open Xcode. Go to File > Open, find the provenance folder and open it.

3. Go to the Bundle Identifier field and enter whatever you want. You can use the com.myname.Provenance format if you want.

4. You will get the error anyway but ignore it and instead see that your own name is selected in the “Team field”.

5. Click on the “fix issue” button, wait for a bit and then click on “Play”.

6. If you get an error, make sure that your Apple TV is selected in the Product > Destination field.

B) Work around the error

1. Click on the dropdown menu on the top left corner and change the selection from “Provenance” to “Provenance-TV”.

2. Change the Bundle Identifier with this format com.yourname.Provenance.

3. Click on “Fix” and then Play the build again.