Key takeaways
- A USB cartridge reader turns a cartridge you own into a game file and, separately, a save file.
- Bitfold imports .gb, .gbc, .sgb, .cgb and .zip files from the + button, AirDrop or its own folder in Files.
- Saves go in one game at a time, through Import Battery Save in that game’s Details.
- Bitfold 1.1 skips hidden files in zips, keeps non-games off the shelf and says when a file fails.
- Deleting a game removes its battery save and save states, so export the save first.
To play retro cartridges on iPhone or iPad, you need each cartridge as a file and an app that runs it. A USB cartridge reader copies a cartridge you own into a game file and, if the game saves, a separate save file. Move them to the phone with AirDrop, iCloud Drive or a cable, import the game into Bitfold, our free retro console app, and add the save from the game’s Details.
Bitfold turns the whole screen into a pocket console, as our launch post shows. It comes with twelve original games, includes and downloads no commercial ones and never goes online, so every other game on its shelf is a file you bring. You can try three of the Originals in your browser first, five minutes a day with no sign-up, but importing your own games needs the app.
This guide follows a cartridge from the reader to the shelf in Bitfold 1.1, on the App Store since 6 November 2026, and says what the app’s code does at each step. It ends with a troubleshooting table and a checklist.
What you need to play retro cartridges on iPhone
- A cartridge you own. Bitfold’s shelf says the app includes and downloads no commercial games, and asks you to play only cartridge images you own. Laws on copying games differ by country, so check the rules where you live. This guide isn’t legal advice.
- A USB cartridge reader, and a computer to run its software.
- An iPhone or iPad on iOS 17 or later.
Bitfold’s help screen also suggests homebrew and freely licensed games from independent developers, which import the same way as a backup.
Make a cartridge backup with a USB cartridge reader
A cartridge reader, also called a cartridge dumper, is a small device with a cartridge slot and a USB cable. Its software, on your computer, copies the cartridge into files. The game comes from the cartridge’s read-only memory and your progress, if the game saves, from its battery-backed memory. So a full backup is two files, and they reach Bitfold by different routes.
| File | Usual extension | What it holds | How it gets into Bitfold |
|---|---|---|---|
| The game | .gb for the classic 8-bit handheld, usually .gbc for its colour successor; .sgb and .cgb also work | The game’s code, graphics and music | The + button, AirDrop, Bitfold’s folder in Files, or inside a .zip |
| The save | .sav | Your in-game progress | Import Battery Save, in that game’s Details |
Bitfold reads the header inside the game file to tell monochrome games from colour ones, so any accepted extension will do. It refuses game files over 8 MB, the most the header’s size code can describe. The cartridge types it knows keep 512 bytes to 128 KB of save memory, and its save import takes files of up to 256 KB.
Keep both files on your computer as well. Bitfold’s privacy policy says removing the app removes your saves, and that iCloud and Finder backups of the device include them.1
Get the files onto your iPhone or iPad
Bitfold registers with iOS as an app that opens .gb, .gbc, .sgb and .cgb files and zips, so iOS can offer it when you open one. There are five ways in.
| Route | What you do | What Bitfold does |
|---|---|---|
| AirDrop from a Mac | Send the game, and open it in Bitfold if iOS offers | Imports it and starts the game |
| iCloud Drive, or anywhere in Files | Save the files to iCloud Drive on your computer, then tap + on the shelf and pick them | Imports them and says what it added |
| Bitfold’s folder in Files | Copy or move files into On My iPhone › Bitfold (On My iPad on iPad) | Picks them up at launch and each time you return to the app |
| A cable and the Finder | Connect the phone to a Mac, open its Files tab in the Finder and drag the files onto Bitfold | They land in Bitfold’s folder and are picked up the same way |
| Drag and drop on iPad | Drag game files from another app onto the shelf | Imports them |
Apple says AirDrop accepts and saves items on its own between devices on the same Apple Account, and that some items land in the Files app.2 Import those with +. The Finder’s Files tab lists apps that support file sharing, which Bitfold does, and Apple points Windows users to its Apple Devices app.3
Bitfold scans only the top level of its folder, for game files and zips. It moves each file into a subfolder called Imported before reading it, so a file that fails isn’t retried at every launch, and a repeated name gets a number, as in Game 2.gb. Since 1.1, a game you tap in the folder opens straight away, and a file there that can’t be imported gets an alert. The shelf keeps its own copy of each game, so you can empty Imported whenever you like.
Import ROM files on iPhone and what the shelf does with them
Tap + at the top right of the shelf and pick one or more files. The picker accepts .gb, .gbc, .sgb, .cgb and .zip. For each file, Bitfold does four things.
- It checks that the file is a game, as described further down.
- It identifies the game by the CRC-32 checksum and size of the image, so a second copy gets “… is already on your shelf”.
- It copies the game into its own storage, so you can delete the file you picked.
- It names the game after the file, dropping anything in brackets and turning underscores into spaces. My_Game (backup 2).gb becomes My Game. If nothing is left, it uses the title in the header.
An alert confirms the import (“Added My Game.”), and the game joins Your Cartridges, sorted A to Z. Touch and hold a cartridge for Play, Details, Add to Favorites and Delete. Details has Rename in its ⋯ menu and shows the header title, the hardware the game was made for and your play time.
Monochrome games get grey cartridges, games with extra colour get charcoal ones, and colour-only games get see-through purple. Monochrome games play in the green Pea Soup palette until you pick another in Settings.
Until you play, the label shows a controller icon and the title’s initials. After about 25 seconds of play in one go, Bitfold keeps the frame on screen as the label art, once, with no button to retake it. The code counts 1,500 frames, so fast-forward gets there sooner, and the power-on animation, the pause menu and rewinding don’t count.
Zips, including ones made on a Mac
Bitfold opens a .zip and takes the first game file inside, ignoring the rest. A zip of several games adds one, and a .sav packed beside a game stays behind. Unzip such a zip first. Apple says tapping a ZIP file in the Files app creates a folder with its contents.4 Then pick all the games at once.
Bitfold 1.1 fixed “zips with hidden files in them, like ones made on a Mac”, as its release notes put it. A hidden file’s name starts with a dot, as in ._Game.gbc, and can end in a game’s extension. 1.0 took the first file with a game’s extension, so a hidden one listed first could be read instead, and the import failed. 1.1 skips names that start with a dot, as it already skipped folders and anything under __MACOSX.
Entries must be stored or compressed with deflate. Bitfold refuses password-protected zips, other compression methods, zips over 64 MB and games inside over 8 MB.
Saves: import a battery save and keep your progress
Bitfold takes your cartridge’s save separately, one game at a time. The + picker takes only games and zips, a zip gives up only its first game, and Bitfold’s folder ignores .sav files. To bring a save in:
- Import the game.
- Touch and hold its cartridge on the shelf and tap Details.
- Under Saves, tap Import Battery Save and pick the .sav file.
- Start the game and continue from its own menu, as you would on the cartridge.
Bitfold accepts any file that isn’t empty and is 256 KB or smaller, whatever its extension, and doesn’t check that it belongs to the game. It replaces the game’s battery save without asking, so export the old one first if it matters. It also deletes the game’s automatic save, so the next start can’t resume over the save you brought. An empty or bigger file gets “That file isn’t a battery save.”
If the file runs past the game’s save memory, the emulation core reads the extra bytes as the cartridge clock when it knows their layout. Otherwise it resets the clock and flags the reset to the game. A cartridge clock then runs in step with the phone’s clock, even while Bitfold is closed.
Once a game has a battery save, an Export button beside Import Battery Save hands battery.sav to the share sheet, for AirDrop or Files. From your computer, the reader’s software can write it back to the cartridge, if it supports that.
From then on, Bitfold writes battery.sav within about 2 seconds of the game saving. It writes it again, with an automatic save state, when you leave the game or switch apps. The next start resumes on the same frame, unless Resume Where You Left Off is off in Settings or the battery save is newer, as after a crash.
The four save-state slots, under Save and Load in the console’s Menu, can’t be imported or exported. The battery save is the only progress that moves between the app and a cartridge. Our post on save states, rewind and fast-forward explains each kind of save.
A file that differs by a single byte is a different game with its own saves. If a fresh read of a cartridge gives a different file, export the old copy’s battery save and import it into the new one.
Delete a game from the shelf
Since 1.1, Delete is in the long-press menu. Touch and hold an imported cartridge, tap Delete and confirm with Delete Cartridge and Saves. Delete in the ⋯ menu in Details does the same. The dialog says it “removes the cartridge image, its battery save and all save states from Bitfold”. The label art and any cheat codes go too, because Bitfold removes the game’s whole folder.
There’s no undo, so export the battery save first. Importing the file again brings the game back with no saves and a new label. The twelve Originals have no Delete. A file in Bitfold › Imported stays until you remove it in Files.
When a file isn’t a game
Bitfold checks every image before it reaches the shelf. It must be at least 336 bytes, enough for the whole header, and no more than 8 MB. The header can’t be all zero or all FF bytes. If its checksum is wrong, its two size codes must be ones real cartridges use, since homebrew sometimes leaves the checksum unset but has real size codes.
That last check is new in 1.1, and it keeps files that aren’t games off the shelf. For random bytes, the checksum matches by chance 1 time in 256, and both size codes land on real values 54 times in 65,536. So about 1 random file in 210 still gets through. Bitfold doesn’t compare a file’s length with its header, so a read that stopped early can still import.
Every failure shows the same line with the file’s name, such as “Game.gbc isn’t a cartridge image Bitfold can read.” The alert is titled Nothing Imported after + or a drag onto the shelf, and Couldn’t Import for files from Bitfold’s folder or other apps. Several failures read “3 files couldn’t be read.”
Troubleshooting a Bitfold import
Each row comes from a case in Bitfold 1.1’s import and save code.
| Symptom | Cause | Fix |
|---|---|---|
| A file is greyed out in the + picker | Its extension isn’t .gb, .gbc, .sgb, .cgb or .zip (a .sav, .7z or .rar, say) | Unpack other archives on a computer, and add a .sav with Import Battery Save |
| ”… isn’t a cartridge image Bitfold can read” for a game file | Under 336 bytes, over 8 MB, a blank header, or a wrong checksum with impossible size codes | Reseat the cartridge, clean its contacts and read it again |
| The same line for a .zip | Damaged, password-protected, over 64 MB, an unsupported compression method, or no game inside | Unzip it in Files and import the game |
| A zip of several games adds one | Bitfold takes the first game in a zip | Unzip it and pick all the games |
| ”… is already on your shelf” | The identical image is there, perhaps renamed | Look through Your Cartridges, sorted A to Z |
| A file in Bitfold’s folder never appears | It’s in a subfolder, its name starts with a dot, or you haven’t switched back to Bitfold since | Move it to the top of the folder and switch back to Bitfold |
| A file has gone from Bitfold’s folder | Bitfold moved it into Imported, whether or not it imported | Look in Bitfold › Imported |
| The game imports but freezes or shows garbage | Possibly a damaged or short read, since Bitfold checks only the header and size | Read the cartridge again |
| “That file isn’t a battery save.” | The file is empty or over 256 KB | Pick the .sav for that game |
| After a save import, the game starts from power-on | The import deleted the automatic save | Continue from the game’s own menu |
| A game’s clock is wrong after a save import | No clock data in a layout the core reads, so the clock was reset | Set the time in the game, if it has a setting |
Where these details come from
The limits, messages and behaviour come from Bitfold 1.1’s source code and its App Store release notes, and the iOS steps from Apple’s support pages. We haven’t tested any particular cartridge reader for this post.
A checklist for each cartridge
- Clean the contacts, read the cartridge and keep both files on your computer.
- Send the game over by AirDrop, by iCloud Drive and +, or through On My iPhone › Bitfold.
- Check that the alert says Added.
- Import the .sav from Details before you play, then continue from the game’s menu.
- Spend your first half minute on a screen you’d like as the label.
- Export the battery save before you delete a game or import a new read of it.
Bitfold also comes with twelve games of its own: see the guide to all twelve Bitfold Originals and what Bitfold 1.1 added.
-
Bitfold, “Bitfold privacy policy” (last updated October 2026), https://bitfold.9io.ai/privacy/ ↩
-
Apple, iPhone User Guide, “Use AirDrop to send items to nearby Apple devices”, https://support.apple.com/guide/iphone/use-airdrop-to-send-items-to-nearby-devices-iphcd8b9f0af/ios ↩
-
Apple Support, “Use the Finder to share files between your Mac and your iPhone, iPad, iPod touch” (published 6 October 2026), https://support.apple.com/en-us/119585 ↩
-
Apple Support, “Create or open ZIP files on your iPhone, iPad, or Apple Vision Pro” (published 29 October 2026), https://support.apple.com/en-us/102532 ↩
Frequently asked questions
How do I play retro cartridges on iPhone?
Back up each cartridge you own with a USB cartridge reader, move the game file to the phone with AirDrop, iCloud Drive or a cable, and import it into an emulator. Bitfold, our free retro console app, imports .gb, .gbc, .sgb, .cgb and .zip files and takes the save file from the game’s Details.
How do I open a .gbc file on iPhone?
You need an app that plays it. In Bitfold, tap + on the shelf and pick the file, open it in Bitfold from AirDrop, or put it in On My iPhone › Bitfold in the Files app. Bitfold copies the game onto its shelf, and a file you open from AirDrop or tap in its folder starts straight away.
Can I import my save file into Bitfold?
Yes, one game at a time. Touch and hold the game on the shelf, tap Details and use Import Battery Save. Bitfold takes any file up to 256 KB, replaces the game’s battery save with it and loads it the next time you start the game.
What is a cartridge reader?
A small device with a cartridge slot and a USB connection. With its software on a computer, it copies a cartridge you own into a game file and, if the cartridge keeps saves and the reader supports it, a separate save file.
Why does Bitfold say my file isn’t a cartridge image?
It shows that line for every file it can’t import. The file may be under 336 bytes or over 8 MB, its header may be blank or not a game’s, or a zip may be damaged, password-protected or hold no game. Read the cartridge again, or unzip the file and import the game itself.
Is it legal to play backups of my own cartridges?
That depends on where you live, because laws on copying games differ by country, and this isn’t legal advice. Bitfold includes and downloads no commercial games and asks you to play only cartridge images you own.
Building something like this?
9io is a small team of senior engineers with a fractional CTO. We work by the hour, and plans start at $5,000. Send us a note about your product. The reply comes from the person who'd do the work.