Commit Graph
2 Commits
Author SHA1 Message Date
seedds f25ca5e670 Link's Awakening: physics crash at the switch to 30 fps fixed; README screenshots recaptured on the Mac
- Link's Awakening 1.1.0 main: the per-world PhysX completion task destroys
  itself in its release (vtable back to the base, mTm = 0). At 30 fps the
  game steps physics twice per frame; a worker descheduled between the run's
  unlock and the release let the main thread rebuild the task first, and
  the late destructor wiped the new one, so the next completion crashed in
  removeReference (main+0x10ccf28). A per-build cut makes that release a
  ret. Unfixed, every Mac run with the CPU loaded crashed; fixed, runs with
  138-257 switches to 30 fps and walks into and out of the house are clean.
- Crash reports print what each register points at ([dm] *xN), so an
  object's vtable names its class.
- RED_ONCE's flag array was one slot short.
- README gallery: Super Mario Bros. Wonder, Super Mario 3D World, Breath of
  the Wild and Metroid Dread recaptured with the current build; no "(Mac)"
  captions.
- docs: the crash in the bring-up catalogue; debugging recipe for racy
  crashes (CPU load, trace gates, a ring printed at the crash).
2026-10-17 23:27:32 +08:00
seedds 7fdf6dccbe README screenshots of every game; NSP script packs unknown games with a provisional profile; Link's Awakening stencil copy and outdoor shaders
- README: a gallery with one picture per game (docs/images): iPhone shots
  with the virtual gamepad for Mario Wonder, 3D World, BotW and Link's
  Awakening; Mac shots (captioned) for Engage, Metroid Dread and 13
  Sentinels. Link's Awakening is now listed as in testing on an iPhone.
- scripts/build_ipa_from_nsp.py: a game with no profile is surveyed, then
  gets a provisional profile guessed from the survey in
  <NSP folder>/<id>_build/profile/<id>/ (outside the repo, reused on the
  next run) and a best-effort IPA; --survey-only keeps the old behaviour.
  game.py searches DM_GAMES_DIR after dm/games; the host Makefile reaches
  such a profile through a symlink; build_ipa.sh finds it through game.py.
  zip_store also stores files whose headers say they are compressed.
- copy_t2t_draw: depth-stencil copies now carry the stencil ([[stencil]]
  export from an X32_Stencil8 view). Link's Awakening's occlusion pass
  tests stencil bit 1 of its quarter-size depth copy, whose stencil was
  the new texture's undefined content.
- Link's Awakening: four outdoor shaders with the foliage shader's input
  loop failed on the iPhone (Half2 / normalized formats); listed in
  shader_facts_manual.tsv. Chain c4995bb3161c.
2026-10-17 21:04:33 +08:00