
27 Switch games are ported to Android, all of them in the current release. Check your GPU first: Adreno and Xclipse work, Mali and PowerVR do not. If yours passes, a desktop app — Windows, or an Apple-silicon Mac — turns your own game files into an APK. No Mac required, no Xcode.
The short answer
Yes, and it is the least Apple-dependent route in this category. A desktop app — Windows, or an Apple-silicon Mac since v0.2.0 — takes your own game files and produces an APK plus its data folder. You pick the game's folder, click Port, and install. No Mac required, no Xcode, no $1,000 phone.
27 Switch games are ported, and all 27 work on the current release. Every frame rate below was measured on a Lenovo Legion Y700 (Snapdragon 8 Elite, Adreno 830) — a 2023 tablet, not a flagship phone from next year.
Two things decide whether you can join them: your GPU (Adreno or Xclipse, not Mali or PowerVR), and your own game dump plus prod.keys. Neither is negotiable, and neither is something we will help you obtain.
The GPU wall — check this before anything else
Switch games store their textures in BC-compressed formats. A GPU without a path for those formats cannot run the game, whatever you install. This single fact rules out most of the Android market.
| GPU family | Works? | Usually found in |
|---|---|---|
| Adreno (700 series and up) | Yes | Qualcomm Snapdragon phones and tablets — most flagship and upper mid-range devices |
| Adreno 619 and similar (Vulkan 1.1 drivers) | Yes, since v0.2.0 | Older and budget Snapdragon chips — slower, but the release added a path for drivers without timeline semaphores or BC textures |
| Xclipse | Yes | Samsung Exynos chips with AMD RDNA graphics (Galaxy S series in some regions) |
| Mali | No | Most MediaTek / Dimensity phones, many Exynos and Kirin devices |
| PowerVR | No | Older and budget chipsets |
A 2026 MediaTek flagship can cost more than a Snapdragon mid-ranger and still be unable to run a single game. The limit is the texture format, not the benchmark score.
The 27 ported games, with what each needs and how it runs
All 27 are in the download you can get today — the two that were tagged for "the next release" through October, Tears of the Kingdom and Pokémon Legends: Z-A, shipped in v0.3.0 on 5 November. Every frame rate is the project's own measurement on that Legion Y700, not ours. "Update" is the game version the port expects — the update NSP's display version has to match, or the build says so.
Playable on the current release (v0.3.0) — 27 games
| Game | Update needed | Frame rate | Notes |
|---|---|---|---|
| 13 Sentinels: Aegis Rim | 1.10 | 60 fps | — |
| Advance Wars 1+2: Re-Boot Camp | base 1.0.0 | 60 fps | The Switch itself runs battles at 30 |
| Blasphemous 2 | 1.0.8 | 60 fps | — |
| Captain Toad: Treasure Tracker | 1.4.2 | 60 fps | — |
| Castlevania: Belmont's Curse | 1.1.0 | 60 fps | New in v0.2.0 |
| Celeste | 1.4.1.1 | 60 fps | — |
| Donkey Kong Country Returns HD | 1.1.0 | 60 fps | — |
| Graveyard Keeper 2 | 1.0.4 + DLC | 60 fps | The Switch runs it at 30 |
| Hades II | 1.0 | 60 fps | — |
| Hollow Knight: Silksong | 1.0.30000 | 60 fps | — |
| Mario vs. Donkey Kong | 1.0.1 | 60 fps | — |
| Metroid Dread | 2.1.0 | 60 fps | New in v0.2.0 |
| NEO: The World Ends with You | 1.03 + 2 DLC | playable | No frame rate published |
| Paper Mario: The Origami King | 1.0.1 | 60 fps | The Switch runs it at 30 |
| Paper Mario: The Thousand-Year Door | 1.0.1 | 60 fps | Work in progress: the lighting flickers — walls go black for single frames after a fall |
| Pokémon Legends: Arceus | 1.1.1 | 60 fps | The Switch runs it at 30 |
| Pokémon Legends: Z-A | 2.0.2 | 30 fps | 30 fps, as on the Switch. Tested to Lumiose station — the city and battles are not checked yet |
| Super Mario Bros. Wonder | 1.2.1 | 60 fps, dips to 40 | — |
| Super Mario Odyssey | 1.4.1 | 60 fps | Shake the device to throw Cappy |
| Tales of Eternia Remastered | 2.0.0 | 60 fps | — |
| The Legend of Zelda: Tears of the Kingdom | 1.4.3 | 30 fps, 60 in caves and shrines | Smoothest with a Turnip Vulkan driver. Work in progress towards 60 fps in the open world |
| UNDER NIGHT IN-BIRTH Exe:Late[cl-r] | 1.0.3 | 60 fps | — |
| UNDER NIGHT IN-BIRTH II Sys:Celes | 1.42 | 60 fps | — |
| Unicorn Overlord | 1.05 | 60 fps | Boots only: saving and a full battle are not tested yet |
| Unpacking | 2.01 | 60 fps | Played by touch. It also has an official Android release |
| Viractal: Will You Trust Your Party? | 1.4.5 | playable | No frame rate published |
| Xenoblade Chronicles 3 | 2.2.0 + 4 DLC | 30 fps | Work in progress: some effects and models do not draw yet |
Tears of the Kingdom on a 2023 Snapdragon tablet is the headline here, and it is worth being precise about what it means: 30 fps in the open world, 60 in caves and shrines, and it wants a custom Vulkan driver. That is a genuine result and it is not a Switch.
11 games you should not port at all
The project keeps a list of Switch games it deliberately leaves out because an official Android version already exists. For those, the port has nothing to add: buy the real thing, get the real support.
Balatro · Raging Loop · Baba Is You · BALL x PIT · Blasphemous · Final Fantasy Crystal Chronicles Remastered · Ghost Trick: Phantom Detective · Sea of Stars · Stardew Valley · Unpacking · Absolum (the last of these reached Android on 5 November 2026).
Three more are worth knowing about in the other direction: Hades and Cult of the Lamb exist on iPhone through Netflix, and Bastion on iPhone only — the project marks them that way rather than pretending the Android route is the only one.
What you need
| Item | Requirement | If you do not have it |
|---|---|---|
| Build machine | Windows x64, or an Apple-silicon Mac (M1 or later) — both zips ship with every release. You do not need Xcode | There is no cloud or phone-only route. |
| Free disk | About 30 GB: the toolchain takes ~4 GB, and a port takes roughly twice the game's size while it works | A port fails mid-way on a full disk. |
| Phone or tablet | Android 12 or later, ARM64, and an Adreno or Xclipse GPU (see the table above) | Mali and PowerVR devices cannot run these games at all. |
| Your own dump | The base game, its update and DLC, in one folder — NSP, XCI, NSZ or XCZ | Nothing to port. NSZ and XCZ are decompressed during the port, which needs extra room for a while. |
prod.keys | Your own, from the same console | The port cannot decrypt anything without it. |
The port, step by step
Start the app
Unzip nx2android-<version>-windows-x64.zip to a short path such as C:
x2android and run nx2android.exe. Windows will warn about an unknown app — More info → Run anyway.
On a Mac, unzip the macos-arm64 build and clear the quarantine flag once in Terminal, because the app is not signed by Apple:
xattr -dr com.apple.quarantine ~/Downloads/nx2android
~/Downloads/nx2android/nx2android
Setup tab — once
Click Download missing tools. It fetches the Android NDK, the .NET SDK and platform-tools from Google and Microsoft — about 1 GB — into the app's own folder. Then point prod.keys at your file and click Save and check. Every line should turn green before you go on.
Port tab — the part that takes time
Choose the folder holding the game's files. The card underneath tells you which game it found and whether it can be ported; the Games tab lists everything supported. Click Port.
The first port does three jobs: extract the game, rewrite its code, and translate every shader. On a fast 20-thread PC with an SSD that is 2 to 6 minutes; on a slow machine or a spinning disk it is much longer. Later ports reuse what has not changed. The APK and a <Game>-data folder appear next to the game.
Put it on the device
Turn on USB debugging (Settings → About → tap Build number seven times, then Developer options → USB debugging), plug the device in, and either tick Install on the device when done before porting or click Install on device afterwards. Allow the computer when the phone asks. No cable? Copy the APK and the data folder across and install normally.
Five switches that decide whether a game is pleasant
| Option | What it does | When you want it |
|---|---|---|
Touch game--touch | The on-screen gamepad starts hidden, and every touch except one on the menu button goes to the game | A game you play by touch — the gamepad otherwise eats touches near the screen edges |
Multithread replay--mt-replay | Records the game's Vulkan commands on a thread of their own | A game that slows down in busy scenes because of its draw calls. It stays on until you port again without it |
Extra address space--alias-headroom <GB> | Reserves more address space for the game's memory regions. Costs no memory on the device and does not change speed | When the game crashes with AllocateAddressRegion … refused (0x1803) — usually a game version the profile was not tested with. Auto already gives 8 GB in that case; try 16, then 24 |
Vulkan driver--vulkan-driver <file> | Packs a driver such as Mesa's Turnip into the APK itself, loaded through libadrenotools. If the driver will not load, the system one is used | Tears of the Kingdom — the project says it is smoothest with Turnip. New in v0.3.0 |
| versionCode offset | Lets a rebuild install over an earlier port instead of replacing it outright | You keep the old install's saves while testing a new port |
Controls: the gamepad is editable
Open the pause menu (the button at the top centre) and go to the Gamepad tab → Edit layout. Drag a control to move it, pinch or use − / + to resize it. Save keeps the layout for the next launch; Cancel throws your edits away. Snap to grid starts off, is remembered, and snaps each control's centre to a square grid as you drag.
If a touch game ignores some touches, open the pause menu and turn the gamepad off — then everything but the menu button goes to the game. If it still ignores them, switch to handheld mode in the pause menu: some games only read touch input in handheld mode, exactly as on the Switch.
Saves, and the one way people lose them
The game's pause menu has a Game tab with Export save and Import save. An export is a plain folder under Android/data/<package>/files/saves/, in the same layout a console's save tools produce — so a save taken from a Switch imports the same way, and a save you export can go back.
The app's Saves tab moves saves between the phone and the PC. An import replaces the save the game already has, and the app backs that one up first in a folder ending -before-import.
The trap: uninstalling the app deletes its saves and its exports. Copy them to the PC before you reinstall — this is the single most common way people lose progress in this category, on both Android and iOS.
When something goes wrong
The log at the bottom of the Port tab says why, and errors are in red. Ask on the project's issue tracker with the game's title ID, your device and those red lines — and never post your keys or game files.
- Antivirus flags the app. Three of 69 engines on VirusTotal flagged v0.1.1 with generic labels; Microsoft, Kaspersky, ESET and BitDefender did not. It is a PyInstaller-packed Python program, which heuristic scanners read as a packed trojan, and the app is not code-signed. The source is on GitHub, and you can build the same bundle yourself with
python packaging/build_bundle.py. - The game dies with
0x1803. Port it again with a larger Extra address space, above. - A port fails with no obvious error. Check free space first — 30 GB is the realistic figure, and NSZ/XCZ sources need more while they decompress.
- Frame rate sags in busy scenes. Try Multithread replay before you assume the device is too slow.
What this route still cannot do
- Per-title work, not a compatibility layer with a switch. 27 games out of 94 the engine knows about are ported here. A title outside the list needs someone to do the bring-up.
- Two of the 27 are not downloadable yet. Pokémon Legends: Z-A and Tears of the Kingdom are tagged for the next release; today they need a build from source.
- Some ports are not finished. Paper Mario: The Thousand-Year Door flickers, Xenoblade 3 is missing effects and models, Unicorn Overlord has only been booted.
- No online play. This route is offline, like the iPhone one.
- Your own files, your own risk. A ported APK contains the game. It is not something to share, and the project says so.
The line we hold
Nothing here is an endorsement or a how-to for obtaining games. The project ships no keys, no game files and nothing extracted from them; you dump both from hardware you own, and Nintendo's takedowns so far have gone to the people hosting projects rather than to players. Whether decrypting your own games for your own use is legal depends on where you live — that is your call, not ours, and we do not host, link or explain how to get the files.
The 27-game table, every frame rate, the update versions, the two unreleased titles and the work-in-progress notes are from the project's README and its docs/PORT_CHECKLIST.md, checked 2026-11-04 — the frame rates are the project's own measurements on a Lenovo Legion Y700 (Snapdragon 8 Elite, Adreno 830), not ours. The install steps, disk figures, port options, save behaviour, the antivirus note and the 0x1803 remedy are from its packaging/INSTALL.md and README, same date. The list of games deliberately left out because an official Android version exists is the project's. The GPU table, the "skip the port" advice and the ordering are our editorial judgement. We have not ported or played anything ourselves.