Your own Switch games, running natively on iPhone, iPad and Mac. Game code is rewritten to native ARM64 and runs directly on the device's processor, with graphics going straight to Metal. Your whole library lives in one app, and a few clicks in the Mac or Windows launcher take a game from import to play.
Platforms: iPhone / iPad (iOS / iPadOS 18 and later) · Mac (Apple silicon, macOS 15 and later) · Build on Mac or Windows · Android / HarmonyOS coming soon · License: Apache-2.0 · Bring your own games
简体中文 · Download the launcher · All releases · Evidence
The game's own ARM64 code is rewritten at build time and then runs directly on the processor in your iPhone, iPad or Mac. There is no CPU emulator in between. Graphics calls are translated straight to Metal, and system services come from a native host. That is where the speed, the low heat and the battery life come from. Evidence
Every game you import goes into the same S2Arm app; open it and pick what to play. The whole library takes a single App slot on your developer account, so adding a game never means installing another app or spending another signing slot. Evidence
There is a graphical launcher for Mac and one for Windows. On first launch the welcome page boils everything down to three steps: get this computer ready, add your keys, add your games, with a single primary button at any moment. Everything else is either bundled or fetched in one click, and you never touch a command line.
After you click Build, every stage shows its progress, elapsed and remaining time, and disk use. Several games can queue up and build one after another. Evidence
Both the Mac and Windows launchers expose a control interface, s2armctl. An AI assistant can import games, build, install, follow progress and read errors, and every step shows up in the launcher window. A companion self-check, self-fix and feedback toolkit lets the AI find a problem, apply the documented fix, and, when it cannot, package a diagnostic bundle for you to file. Watch an AI diagnose and fix a real problem end to end: Evidence
Send this to your AI assistant (it needs to be able to run commands on your computer):
Please read https://github.com/jhaizhou-ops/S2Arm/blob/main/launchers/macos/skill/s2arm-operator/SKILL.md and then help me install my Switch game on my iPhone.
It moves forward with a few commands, and you can watch every step in the launcher window:
/Applications/S2Arm.app/Contents/Resources/s2armctl start # open and connect to the launcher
/Applications/S2Arm.app/Contents/Resources/s2armctl next # what to do now, who does it, and why
/Applications/S2Arm.app/Contents/Resources/s2armctl diag export ~/Desktop/S2Arm-diagnostics.zip # export a diagnostic bundle if it cannot fix a problemAnything only you can do (system permission prompts, signing in with your Apple ID, tapping Trust on your phone), the AI stops and asks you to do. On Windows, use s2armctl.cmd in the launcher folder with the same commands; exporting a diagnostic bundle is currently Mac-only.
211 games surveyed with a 95% first-try build success rate. 4,700+ test runs on real iOS devices and 1,000+ on macOS. Evidence
On a 16 GB MacBook Air (M3), from importing a game to a finished iPhone build, completely cold:
| Game | Game files | Shaders | Build time |
|---|---|---|---|
| A 23.5 GB action RPG | 23.5 GB | 1,222 | 6.4 min |
| A 12.0 GB life-sim game | 12.0 GB | 9,315 | 8.6 min |
| A 17.5 GB open-world game | 17.5 GB | 26,999 | 34 min |
A Switch 2 game, measured on an iPhone 17 Pro Max: a full 60 fps while the phone is cool, 37–43 fps once sustained load has heated it up, at about 0.15 J per frame. Evidence
| Platform | Support |
|---|---|
| iPhone / iPad | iOS / iPadOS 18 and later; every game is chosen inside one app |
| Mac | Apple silicon, macOS 15 and later; builds locally and plays games right on the Mac |
| Windows | Graphical launcher that builds and installs games for iPhone / iPad |
| Android / HarmonyOS | Coming soon |
- Download the Mac or Windows launcher from the download page and open it. Building for iPhone on a Mac needs the free Xcode from the App Store, signed in with your Apple ID; the launcher walks you through it.
- Import your own keys and games. Put the base game, updates and DLC in one folder and import them together.
- Choose iPhone / iPad or this Mac, then click Build.
- Follow the launcher to sign and install with your own Apple ID (the Windows launcher ships with the Impactor signing tool), open S2Arm, and pick a game from the library.
Back up your saves before updating the app. The release uses the new app identifier io.s2arm.*, which the system treats as a new app: saves from the beta builds do not carry over automatically.
S2Arm runs 64-bit (AArch64) games. Apple silicon cannot execute 32-bit ARM code, so 32-bit games are outside what S2Arm supports, as are games that need a 36-bit address space.
Contributing · AI collaboration policy · Diagnosis and root-fix skills for AI · Report a problem · Third-party licenses
S2Arm stands on the shoulders of its community.
- Co-developers: thank you to everyone who has opened a pull request or issue in this project. Your code, device testing and bug reports shaped S2Arm (in order of first contribution): @biglawine, @yyan160, @DanielZhangyc, @vickwv, @Xc1Ym, @fjack, @ha7rock, @yourmoonlight, @qidian99, @n06ody, @YTwsy, @wdjwxh, @realskyrin, @wwmogu, @quancunlau, @moongrant, @imyinyx, @s-leeq, @Zhangbu, @retX0, @zh0ngtian, @fengbird, @zsakvo, @1500256797, @BossaMelon, @GayoZhao, @sovaly, @ruterfu, @fyn1320068837-source, @InTheManXG.
- Ryujinx (Ryujinx Team and Contributors, MIT): upstream for system services and shader translation; S2Arm's compatibility layer is built on it.
- NX2Apple (LNPANDY, MIT): upstream of the launcher interface.
- nxnative (seedds, MIT, Copyright (c) 2026 seedds): the original work behind the direct graphics layer that connects game graphics straight to Metal. That generous release is what made the direct path possible.
- d2r-mobile (MIT): pioneered this technical path, bringing your own Switch game natively to iPhone, iPad, Mac, Android and HarmonyOS for the first time.
- Impactor (Samara M, MIT) and apple-codesign (MPL-2.0): signing and installing from Windows.
- LNPANDY and the original authors and contributors of the iOS library shell: the shell and its RomFS archive subsystem.
- ns2pro-bridge (DanielZhangyc, MIT), MacNativeGames (MIT), LumaDock (MIT), deko3d (fincs, zlib), nvn.h (h1k421, MIT), bcdec (Sergii Kudlai, MIT / Unlicense), SPIRV-Cross and Vulkan-Headers (The Khronos Group), SMAA (Jorge Jimenez et al., MIT), the Mesa tessellator (Microsoft, MIT), Capstone, LZ4, .NET, libvpx, libopus, dav1d, and the Noto fonts.
Versions, full license texts and what each component does are in NOTICE and the third-party license list.
S2Arm is open source under the Apache License 2.0. The project ships no games and no keys; obtain your own game files legally. S2Arm is not affiliated with or endorsed by Nintendo, and game titles and trademarks belong to their respective owners.





