Repository navigation
V22 (pre-release): GPU savings from the oot2 branch
Pre-release
Pre-release
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 (V22)
- Mesh shader byte stores as one store instead of a retry loop (from the oot2 branch): Ocarina's foliage mesh shaders spent 8.3-8.6 ms of GPU a frame in that loop on an M3 Pro.
- Raw reads keep their last pool range (oot2): most of the game's memory reads skip the pool table; about 7 ms of a frame in Hyrule Castle Town's skinned characters.
- Occlusion checks read once their result is in (oot2): hidden objects are skipped; GPU 13.3 to 12.2 ms on an M4 Pro.
- Includes V18-V21. 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 by the owner on an iPhone; a member's first minute on an iPhone 15 Pro with Potato mode on held 30 fps.
- 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.