• Stars
    star
    4,319
  • Rank 9,520 (Top 0.2 %)
  • Language
    Swift
  • Created about 9 years ago
  • Updated 12 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Delta is an all-in-one classic video game emulator for non-jailbroken iOS devices.

Delta

Delta is an all-in-one classic video game emulator for non-jailbroken iOS devices.

Swift Version License: AGPL v3 PRs Welcome

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.

Supported Systems

  • Nintendo Entertainment System (NES)
  • Super Nintendo Entertainment System (SNES)
  • Nintendo 64 (N64)
  • Game Boy / Game Boy Color (GBC)
  • Game Boy Advance (GBA)
  • Nintendo DS (DS)
  • Sega Genesis / Mega Drive (GEN) (in beta)

Features

  • Accurate, full speed emulation thanks to mature underlying emulator cores.
  • Beautiful, native UI.
    • Browse and play your favorite games with a UI designed from the ground up for iOS.
    • Automatically displays appropriate box art for imported games.
    • Change a game’s artwork to anything you want, or select from the built-in game artwork database.
  • Controller Support
    • Supports PS4, PS5, Xbox One S, Xbox Series X, and MFi game controllers.
    • Supports bluetooth (and wired) keyboards, as well as the Apple Smart Keyboard.
    • Completely customize button mappings on a per-system, per-controller basis.
    • Map buttons to special “Quick Save”, “Quick Load,” and “Fast Forward” actions.
  • Custom Controller Skins
    • Beautiful built-in controller skins for all systems.
    • Import controller skins made by others, or even make your own to share with the world!
  • Save States
    • Save and load save states for any game from the pause menu.
    • Lock save states to prevent them from being accidentally overwritten.
    • Automatically makes backup save states to ensure you never lose your progress.
    • Support for “Quick Saves,” save states that can be quickly saved/loaded with a single button press (requires external controller).
  • Fast Forwarding
    • Speed through slower parts of games by running the game much faster than normal.
    • Easily enable or disable from the pause menu, or optionally with a mapped button on an external controller.
  • Delta Sync
    • Sync your games, game saves, save states, cheats, controller skins, and controller mappings between devices.
    • View version histories of everything you sync and optionally restore them to earlier versions.
    • Supports both Google Drive and Dropbox.
  • Hold Button
    • Choose buttons for Delta to hold down on your behalf, freeing up your thumbs to press other buttons instead.
    • Perfect for games that typically require one button be held down constantly (ex: run button in Mario games, or the A button in Mario Kart).
  • 3D/Haptic Touch
    • Use 3D or Haptic Touch to “peek” at games, save states, and cheat codes.
    • App icon shortcuts allow quick access to your most recently played games, or optionally customize the shortcuts to always include certain games.
  • Cheat Codes
    • NES
      • Game Genie
    • SNES:
      • Game Genie
      • Pro Action Replay
    • N64
      • GameShark
    • GBC
      • Game Genie
      • GameShark
    • GBA
      • Action Replay
      • Code Breaker
      • GameShark
    • DS
      • Action Replay
  • Gyroscope support (WarioWare: Twisted! only)
  • Microphone support (DS only)

Installation

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:

  1. Download AltServer for Mac or PC from https://altstore.io
  2. Connect your iOS device to your computer via lightning cable (or USB-C for iPads).
  3. Follow these instructions to install AltStore onto your device with AltServer.
  4. Open AltStore on your device, then navigate to the "Browse" tab.
  5. Find Delta, then press the 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.

Project Overview

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.

Project Requirements

  • Xcode 12
  • Swift 5+
  • iOS 12.2 or later

Why iOS 12.2 or later? Doing so allows me to distribute Delta without embedding Swift libraries inside. This helps me afford bandwidth costs by reducing download sizes by roughly 30%, but also noticeably improves how long it takes to install/refresh Delta with AltStore. If you're compiling Delta yourself, however, you should be able to lower the deployment target to iOS 12.0 without any issues.

Compilation Instructions

Delta uses Git LFS to manage large files, so first make sure you have installed Git LFS.

  1. Clone this repository by running the following command in Terminal*
$ git clone https://github.com/rileytestut/Delta.git
  1. Update Git submodules
$ cd Delta
$ git submodule update --init --recursive
  1. Open Systems/Systems.xcworkspace and select the "Systems" project in the project navigator (a.k.a. the left sidebar).
  2. Select "Systems" under Targets, then click the Signing & Capabilities tab.
  3. Change Team from "Yvette Testut" to your own account.
  4. Close Systems/Systems.xcworkspace, then open Delta.xcworkspace.
  5. Repeat steps 4 & 5 with the "Delta" target.
  6. Change Delta's Bundle Identifier to something unique, such as by appending your GitHub username (ex: com.rileytestut.Delta.MyGitHubUsername).
  7. Build + run app! 🎉

* 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

Licensing

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 (dependencies remain under their original licenses, however).

Contact Me

More Repositories

1

Clip

Clip is a clipboard manager for iOS that can monitor your clipboard indefinitely in the background — no jailbreak required.
Swift
371
star
2

AltSign

Objective-C
283
star
3

SNES4iOS

A modification of SNES--HD- by WoozleWrangler that can now be run on non-jailbroken iPhones, iPod Touches, and iPads! This is possible thanks to Spencer Nielsen and his script removing jailbreak-specfic features (http://www.aorensoftware.com/blog/2011/05/23/play-snes-games-on-your-ipad-without-jailbreaking/)
C++
264
star
4

DeltaCore

Swift
147
star
5

AltServer-Windows

C
140
star
6

Roxas

Objective-C
119
star
7

N64iOS

n64ios
C
54
star
8

GBA4iOS-2.0-Beta

GBA4iOS rewritten from the ground up
C++
47
star
9

NDS4iOS

A Nintendo DS Emulator for iOS. Based off of angelXwind's nds4ios project (https://github.com/angelXwind/nds4ios)
Objective-C
38
star
10

ldid

Fork of saurik's ldid as used in AltStore.
C++
33
star
11

DeltaLite

Swift
30
star
12

GBADeltaCore

C++
24
star
13

SNESDeltaCore

Objective-C++
24
star
14

RSTWebViewController

A simple, yet powerful, in-app web browser for your iOS application
Objective-C
22
star
15

N64DeltaCore

Objective-C
21
star
16

GBCDeltaCore

Objective-C++
20
star
17

NESDeltaCore

C++
17
star
18

Pebble-Communicator

An iOS app that allows two-way communication between an iOS Device and its connected Pebble Watch.
Objective-C
16
star
19

libimobiledevice

C
16
star
20

Harmony

Swift
15
star
21

GBA4vOS

Swift
15
star
22

MelonDSDeltaCore

Objective-C++
14
star
23

GPGXDeltaCore

Swift
12
star
24

DSDeltaCore

Objective-C++
9
star
25

RSTWebViewController-Legacy

iOS 7 Web Browser used in GBA4iOS. Work in progress
Objective-C
8
star
26

Harmony-Dropbox

Swift
6
star
27

GPUImageGlitchSampleApp

A sample app to demonstrate a glitch in GPUImage
Objective-C
5
star
28

Harmony-Drive

Swift
4
star
29

Prime

Swift
4
star
30

Spark-iOS

Swift
3
star
31

swift-proposals

2
star
32

Quark

Project developed for HackSC 2015
Objective-C
2
star
33

RSTToastView

Objective-C
2
star
34

Shoot-Around

My very first iOS app, developed when I was 13.
Objective-C
2
star
35

Test-Git

Testing Git
2
star
36

Feast

Swift
1
star
37

Flint

Swift
1
star
38

Sweeten

Small Swift script to sanitize Xcode's automatically generated Core Data files
Swift
1
star
39

Eats

Swift
1
star
40

Sora

Swift overlay for Roxas Objective-C framework.
Swift
1
star