Files
nxnative-easy/scripts
seedds 9d941f8604 Rhythm Heaven Groove plays into its first rhythm game on the Mac: SDK 21 calls and audio, pool initial content, NVN block height
New profile 0100D9F01D474000 (base game 1.0.0, SDK 21.4.0, Nintendo's own 2D engine; one BNSH of 35 shaders,
Mario's binding layout). On the Mac it plays from a first boot through the setup, the main menu and Play Solo into
Hoop Trundling at 60 fps with sound and no red line. Not yet run on an iPhone.
- SDK 21 calls: nn::pl::GetSharedFont (every shared font at once; the SDK opened the pl service and aborted in
  sm::Initialize) returns the stand-in TTFs past the BFTTF header, as the service's offsets point there and the game
  hands them straight to ScalableFontEngine::LoadFont; vi::GetDefaultDisplayPanelIdentifier (SIGSEGV through the vi
  service object) answers an all-zero panel.
- Audio: SDK 21's DSP command header has no magic (+0 enabled, +1 command ID, +2 size) and DeviceSink is 0x140
  bytes with its fields 8 bytes earlier. capture() recognizes that layout on the first non-empty command list (the
  walk bounded by the generated list's length); the game was silent.
- Pool initial content (all games): a new texture in a CPU_NO_ACCESS pool whose storage holds data is filled from it
  once, as NVN keeps a pool's storage content at nvnMemoryPoolInitialize (tex_init_fill); it stays a GPU texture
  that can be rendered into. Linear textures are made on the pool buffer in any pool. The game reads each texture
  file into memory and makes a CPU_NO_ACCESS pool on it; every texture read 0 and the screen stayed black.
  COMPRESSIBLE, multisample, depth / stencil and sparse textures and storage of zeros are left out.
- NVN block height (all games): the automatic block height truncates height in blocks x 1.5 / 8 (MacNativeGames'
  finding, confirmed on this game's 40-block-row BC7 textures and by Touchable on 16 of its files); rounding up
  scrambled the calibration screen's beat numbers. Only data a game lays out itself without a packaged layout
  changes (Tears of the Kingdom's flushed and Monster Hunter Rise's sparse textures were not re-checked).
- Profile key perf_mode (follow by default): boost reports Boost whatever the operation mode. This game plays
  handheld with Boost: docked means a TV to it, which asks for a latency calibration, and Boost alone picks its
  1920x1080 draw size.
- The NSP script's survey no longer calls nn::ro missing (hle_ro.c answers it; it now counts the .nro files);
  sdis.py --callers takes imported names and scans to the end of the PLT.
The dm/gfx unit tests give the same results as before; Unicorn Overlord renders the same with the old and new host
(no texture takes the initial-content path there).
2026-10-21 01:21:39 +08:00
..