ZOYKUHot Board

jhaizhou-ops/s2armDocumentación

Run your own Switch games natively on iPhone, iPad and Mac: game code rewritten to ARM64, graphics direct to Metal, one app for the whole library. Bring your own games and keys. 把你自己的 Switch 游戏原生带到 iPhone / iPad / Mac。

Aviso de idioma alternativo:No hay documentación localizada disponible. Mostrando el original en inglés oficial.
Instalación rápida
git clone https://github.com/jhaizhou-ops/s2arm.git

S2Arm

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

S2Arm launcher welcome page

A native port, not an emulator

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

One app, your whole library

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

Graphical launchers, next to zero setup

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

One-click build Build progress

Build finished Game library

Let an AI drive

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

Have an AI do it for you

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 problem

Anything 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.

Tested at scale

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

Fast, smooth, and easy on the battery

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

Platforms

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

Evidence

Getting started

  1. 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.
  2. Import your own keys and games. Put the base game, updates and DLC in one folder and import them together.
  3. Choose iPhone / iPad or this Mac, then click Build.
  4. 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.

Honest boundaries

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.

Development

Contributing · AI collaboration policy · Diagnosis and root-fix skills for AI · Report a problem · Third-party licenses

Thanks

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.

Star History

Star History

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.

Espejo archivado desde el repositorio oficial de GitHub · Visitar en GitHub
Fecha de captura: 2026-11-09