Unity 2022.3.54f1 IL2CPP on Super Mario Galaxy's sdk build, with Ace Attorney Investigations
Collection's memory layout (1 GB pool, 5 GB block). Three general changes made it play:
- svcGetInfo type 24 (FreeThreadCount): the host answered 0, and Unity creates a thread only when
nn::os::GetFreeThreadCount is at least 1, so its main thread waited at boot for a thread it never
asked for. The host answers 96 (pm's application limit) less the game's live threads, as the
kernel does.
- Movie audio decoders keep 64 outputs (32 since DRAGON QUEST XI S): Unity's movie player starts
only once it holds about half a second of audio, measured at 27 outputs with a peak of 30. Trace
lines (DM_MOVIE_TRACE) name the decoder.
- shader_split.py reads Unity ComputeShader objects (unity_compute), with Unity 2022.3.54f1's layout
in unityfs.py: the post-processing stack's 85 kernels, the colour grading LUT baker among them, so
the battle scene is no longer black. Files whose ComputeShader has no known tree are reported and
skipped: Cuphead's and Engage's tables split byte-identical.
Also nvnSyncSetDebugLabel (a no-op). The game reads no touch, so it stays docked with the 3D pad
layout. README games table, AGENTS.md game list, development notes and the bring-up / graphics
catalogues.