Skip to content

V21 (pre-release): Cheaper frames from nxnative main

Pre-release
Pre-release

Choose a tag to compare

@cheemu21 cheemu21 released this 09 Nov 17:39

Pre-release: source code only. No IPA and nothing from the game are attached or in the repository. Build your own from your own dump of the game (the v1 dump: base game + update v131072) with the steps in docs/games/kid-with-sword-remake.md, with an env file holding the lines under "Build settings" below.

The Legend of Zelda: Ocarina of Time (Switch 2) as a native iPhone and Mac app, on top of nxnative.

In this build (V21)

  • Vector loads in the shader translator (from nxnative main, seedds): the game's 128-bit memory reads become one load instead of four; measured on an M4 Pro, Ocarina's GPU time from 16.3 to 12.6 ms. The shaders take about 1 GB less.
  • Native float atomic adds (nxnative PR seedds#1930): the two costliest compute shaders in the iPhone's profile no longer retry.
  • Frame step (nxnative PR seedds#1942): no more getting stuck at 20 fps after a long shader preparation.
  • Smaller command buffers (from nxnative main): they no longer grow to 36-80 MB each in scenes of about 150 passes.
  • Includes V18-V20. The first start takes longer while the new shaders are prepared.

Build settings

DM_UPSCALER=metalfx
DM_FPS_HOLD=off
DM_THERMAL_CAP=0
DM_QOS_MAP=1
DM_QOS_EDGES=45,59
DM_NVN_GPUPROF=every:600
DM_METAL_HUD=0

Status

  • Not yet tested on an iPhone.
  • Known: the game closes at the first ocarina note (Impa, Zelda's Lullaby), which blocks the main quest. Fixed in nxnative main; the fix is not in this build yet.
  • Keep at least 15 GB free on the phone: the game stops itself under 5 GB free.
  • At 60 fps the phone heats up within one to two minutes and iOS lowers the clocks; 30 fps holds for long sessions.

Not affiliated with Nintendo.