r/NativePortsOniOS • u/hello_humen • 17m ago
Zelda: Breath of the Wild running natively on a non-Pro iPhone 15 (A16), nxnative + my BC→ASTC patch
nxnative officially needs a 15 Pro or newer; my patch gets it running on the A16.
My patch converts those textures to ASTC on the GPU as they load, so they take about the same memory as on a Pro. It got Metroid Dread running on my phone earlier, and BotW works now too.
Settings (baked into the app when building):
- Handheld mode (
DM_OPMODE=0) - 3D render scale 0.5 (
DM_RENDER_SCALE=0.5) - 30 fps (
DM_FPS_TARGET=30), BotW’s original Switch frame rate
Results:
- ~10 minutes of play, no crashes (I closed it myself)
- Steady 30 fps
- Phone stayed cool, no thermal throttling
Honest caveats:
- Memory is right at the limit. It peaked around 3.04 GB, and iOS allows about 3.07 GB on this phone without the Increased Memory Limit entitlement. Busier areas or long sessions might get it killed. I’m working on further savings: fixing some shader tables that aren’t being applied, and compressing normal-map textures (BC4/BC5) too.
- Needs update 1.9.0; other versions build but without the game-specific fixes. I included both DLC packs.
- The IPA is ~16 GB, and you need ~35 GB free on the phone while installing.
- One tiny GPU-generated texture can’t be drawn on A16, so a minor effect may be missing. I haven’t spotted it yet.
Code: https://github.com/mianmuhammadse/nxnative/tree/no-bc. This patch is for non-Pro iPhones.
Previous post (Metroid Dread on the same phone): https://www.reddit.com/r/NativePortsOniOS/s/BNbAZLj2Pp
Played with my own dumped copies. Please don’t ask for game files.