Delta is an all-in-one classic video game emulator for non-jailbroken iOS devices.
Delta is an all-in-one classic video game emulator for non-jailbroken iOS devices.
Delta is an iOS application that allows you to emulate and play video games for several classic video game systems, including Game Boy Advance, Nintendo 64, and Nintendo DS. Delta is the spiritual successor to GBA4iOS — a Game Boy Advance emulator for iOS devices Paul Thorsen and I made while in high school together — rebuilt from the ground up with modern iOS features and support for more systems.
Mario and Pokémon are properties of Nintendo Co., Ltd. and are not associated with Delta or AltStore LLC.
Delta was originally developed under the impression Apple would allow it into the App Store. Unfortunately Apple later changed their minds, leaving me no choice but to find a new way to distribute Delta. Long story short, this led me to create AltStore, which now serves as the official way to install Delta onto your device.
To install Delta with AltStore:
FREE
button to start installing the app.Once you’ve installed Delta with AltStore, you’ll need to refresh it at least once every 7 days to prevent it from expiring and requiring a re-installation. AltStore will periodically attempt to refresh your apps in the background when on the same WiFi as AltServer, but you can also manually refresh apps by pressing “Refresh All” in AltStore. AltStore will also let you know whenever a new update is released, allowing you to update Delta directly within AltStore.
Alternatively, you are welcome to download the compiled .ipa
’s from Releases and sideload them using whatever sideloading method you prefer, but you will not receive automatic updates and will have to manually update Delta by re-sideloading each new version.
Delta was designed from the beginning to be modular, and for that reason each “Delta Core” has its own GitHub repo and is added as a submodule to the main Delta project. Additionally, Delta uses two of my own private frameworks I use to share common functionality between my apps: Roxas and Harmony.
Delta
Delta is just a regular, sandboxed iOS application. The Delta app repo (aka this one) contains all the code specific to the Delta app itself, such as storyboards, app-specific view controllers, database logic, etc.
DeltaCore
DeltaCore serves as the “middle-man” between the high-level app code and the specific emulation cores. By working with this framework, you have access to all the core Delta features, such as emulation, controller skins, save states, cheat codes, etc. Other potential emulator apps will use this framework extensively.
Roxas
Roxas is my own framework used across my projects, developed to simplify a variety of common tasks used in iOS development.
Harmony
Harmony is my personal syncing framework designed to sync Core Data databases. Harmony listens for changes to an app’s persistent store, then syncs any changes with a remote file service (such as Google Drive or Dropbox).
Delta Cores
Each system in Delta is implemented as its own “Delta Core”, which serves as a standard emulation API Delta can understand regardless of the underlying core. For the most part, you don’t interact directly with specific Delta Cores, but rather indirectly through DeltaCore
.
Delta uses Git LFS to manage large files, so first make sure you have installed Git LFS.
$ git clone https://github.com/rileytestut/Delta.git
$ cd Delta
$ git submodule update --init --recursive
Systems/Systems.xcworkspace
and select the “Systems” project in the project navigator (a.k.a. the left sidebar).Targets
, then click the Signing & Capabilities
tab.Team
from “Yvette Testut” to your own account.Systems/Systems.xcworkspace
, then open Delta.xcworkspace
.Bundle Identifier
to something unique, such as by appending your GitHub username (ex: com.rileytestut.Delta.MyGitHubUsername
).* This will checkout the main
branch by default, which is kept up-to-date with the latest public version. Ongoing development (including Patreon betas) is done on the develop
branch, and is periodically merged into main
whenever a new public version is released. If you’d prefer to compile the develop
version instead, replace the git clone
command in Step #1 with this one:
$ git clone -b develop https://github.com/rileytestut/Delta.git
Due to the licensing of emulator cores used by Delta, I have no choice but to distribute Delta under the AGPLv3 license. That being said, I explicitly give permission for anyone to use, modify, and distribute all my original code for this project in any form, with or without attribution, without fear of legal consequences — unless you plan to submit your app to Apple’s App Store, in which case written permission from me is explicitly required. Dependencies remain under their original licenses.