Skip to content

A12 (pre-release): no first-visit pipeline freezes, the game's own touch controls, steady 30 on Standard

Pre-release
Pre-release

Choose a tag to compare

@cheemu21 cheemu21 released this 08 Nov 09:25
· 101 commits to kid-with-sword-remake since this 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 (base game + update v131072) with the steps in docs/games/kid-with-sword-remake-a.md.

The Legend of Zelda: Ocarina of Time (Switch 2) as a native iPhone app, on Aznracer's Mighty Green Kokiri Kid v3 with this fork's touch controls and launcher on top (nxnative). The A builds are on the a6 and a2 branches.

In this build (A12)

  • Fewer first-visit freezes, no RAM cost: the app ships a list of every pipeline the game's playthroughs reached (40,156 lines, from Aznracer's v3). While you play, one low-priority thread builds them only to fill iOS's shader cache, and keeps none. Pipelines never built on the phone cost about 300 ms each (compute 0.5–1.8 s) and froze the game on entering new areas; from the cache they take under a millisecond.
  • Touch controls follow the game's own Basic Controls: Y attacks (the large key), A actions, B put away, X jump, ZL target, ZR use item (new), R quick select. The game has no shield button: holding ZL raises the shield, and a quick tap on ZL locks it held. Earlier A builds had the sword on B and a "shield" on R, which did nothing.
  • Steady 30 fps on Standard (from A10 and A11): with Render scale 1.0 the game's own dynamic resolution runs with the right GPU timings, a 30 fps budget, and headroom (it steps down at about 28 ms, before frames go late). DM_DRS_BUDGET in Documents/env.txt tunes it. The log reports the 3D scale it picks.
  • Potato is locked at render scale 0.5 (1280×720 3D).

Earlier A builds

  • A9–A10: Standard's memory down from 6.85 to 5.43 GB peak on an iPhone with an A20 Pro (the pool cap and large pools by chunk, Potato's memory housekeeping); foliage textures always made (no popping); the game's own upscaler instead of MetalFX (less grass shimmer).
  • A8: grass and leaves no longer move 20× too fast (nxnative PR seedds#1714); the GPU gets new work only when it has run out.
  • A7: Zelda icons, the ZL target lock, a D-pad (← ocarina, → Navi, ↓ boots, ↑ accessory).
  • A4–A6: the launcher's Standard / Potato presets; Potato under 5 GB.

Status

  • A8–A12 are not yet tested on the iPhone. A8 on Potato ran 10.6 minutes at 4.1–4.9 GB (log 45). A10 on Standard at 30 fps held 33 ms except where the GPU needed 29–37 ms, which A11's headroom targets.
  • The first launch after an install builds the pipeline list from scratch in the background; until it has passed an area, that area still builds its pipelines as before.
  • Do not run it with LiveContainer's RAM donor ("Guest memory boost"): it redirects the app's own large allocations and crashed it.

Not affiliated with Nintendo.