Repository navigation
Port Nintendo Switch Sports Resort (04008E001F098000, Switch 2): its profile, note, games-table row and README line; on the Mac it plays its menus, motion calibration and matches with a Joy-Con 2 or a DualSense - #2387
bymaxmarc wants to merge 2 commits into
Conversation
…001F098000, Switch 2) Nintendo Switch Sports Resort, update v65536 (the whole game, packed from a NUP), SDK 22.2.10 built for the Switch 2, Nintendo EPD's sead / agl / gsys with Havok, NVN2. On an Apple-silicon Mac (M2 Max, 32 GB), macOS 27.2, as a Mac app with its full offline pipeline archive (710.7 MB), it boots, goes through the menus and the motion calibration, and plays matches with motion from a right Joy-Con 2 or a DualSense, with the host changes its note lists under Depends on (each its own pull request). The profile is the NSP script's provisional one (its heap and address-region checks: sys_resource, mem_reserve, mem_alias, mem_stack, app_pool) plus depth_mode zero and render_cond on, the shader tables the script generates (shader_map, shader_facts, shader_pairs, pso_pairs, bf_want, the map's conflicts) and a prewarm list of the 31 task / mesh pipelines the offline archive cannot hold. No patch, no rewriter cut. The note records what each key is for, the pipelines, frame rate and scene loads, the motion controls, the Mac route and what is open: the DM_ROMFS_OVERLAY stopgap for model heaps sized from the resource size table, the MiiResource system data 0400000000000849 the host does not have, six AnnaSea mesh shaders whose task payloads are over Metal's 16 KB, the court's first frame (about 225 ms), iPhone and iPad not built. Its row in the games table, its line in README's Switch 2 list; the Home button protection entry links the note. Checked: test_game_profile, test_docs: OK; the tool tests (1,469, 27 skipped) pass; make -k -C dm/gfx/tests GAME=04008E001F098000 run passes. The game: sessions on the user's Mac on the fork's work branch (an earlier main with the dependencies), the latest a 37-minute session on 2026-11-11 with a Joy-Con 2 (R) over Bluetooth LE: no error, no compute pipeline built at run time, frame time p50 33.3 ms; tennis earlier at 60 fps (p50 16.67 ms). On main alone the game does not run: it needs the PRs its note lists. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
How does this differ from #2107? Looks like you went and did a bunch of stuff I already did. |
…ts its profile, note, games table row and README line: it boots from a dump folder through the safety and strap screens, the title, Select User and the sport menu into a doubles tennis match at 60 fps on the M6 (frame time p50 16.67 / p95 17.3-17.9 ms, CPU about 92% of one core), and starts again from its save; bymaxmarc played matches with motion from a Joy-Con 2 and a DualSense in a 37-minute Mac session (PR #2387). The profile is the NSP script's provisional one (heap check: a 7.47 GB heap, mem_reserve, depth_mode zero; address regions alias +2.82 GB of 4.38 GB in the first 15 s) with render_cond on: the game wraps draws in render conditions, and drawn anyway, Select User's background is grey instead of the court and the outfits black (in the menus only; FifteenPen measured the outfit material reading 0 from R and A of a shadow target the menu blurs under a channel mask of G and B). With the key both are right on the same route from the same save (A/B on the M6), so PR #2273 (a clear under a partial channel mask keeps the other channels) is not needed: what a console does there is not in the game's files, its nvnCommandBufferClearColor (sdk+0x652380) jumps through a pointer the system's NVN driver fills. The shader tables are the build's, byte for byte both port PRs'; pso_manifest.tsv is this Mac's own recording (3,474 shaders, 1,868 render, 41 compute and 22 task / mesh pipelines over a first start, the menus and a match), since none of the PRs' render or mesh pipeline keys matches the current host's. No game patch and no rewriter cut. The reference entries that name the game link its note; the conditional rendering entry lists it. Checked: test_docs, test_nsp_chain, test_env_switches, test_patches; the host test suite (make -k -C dm/host/tests run, 50 programs, 0 failed), check_t_pfv under Metal validation, test_dmsh_ampere_mem with the committed translator (86); lint_python (nothing new) and lint_c tidy on the changed C files (at the baseline after the fixes folded into their commits); regress.py check against 96259d4 (one run per side, headless, M6): Bastion 59.7 / 58.3 fps, its 70 s shot's purple border an old flake of both sides (the same colour in 10 of 19 earlier runs, origin/main's included), Obra Dinn 59.5 / 59.8 fps, CHANGED by animation phase, 0 changed MSL and no new red line on either. Not run: a point played on this Mac (the keyboard cannot serve: Shake and the ten scripted moves of PR #2386 move the racket but do not serve), sports other than tennis, the iPhone. Co-authored-by: FifteenPen <354289956+FifteenPen@users.noreply.github.com> Co-authored-by: bymaxmarc <354601562+bymaxmarc@users.noreply.github.com>
|
Landed on main as f4b7e77 (profile, note, games table row and README line), with you credited as co-author: game.tsv keeps your comments and render_cond, and the note cites your 37-minute session with real controllers. Taken from your set: #2376, #2377, #2380, #2384, #2385 and #2375. The shading-rate fix landed from FifteenPen's #2103 instead of #2373 (the same value in EmitSReg, which both instruction sets reach). DM_ROMFS_OVERLAY was not needed on current main: a doubles match loaded with its NPCs. pso_manifest.tsv is a list recorded on the current host, since the earlier lists' pipeline keys no longer match it. #2386 is answered on its own page; #2371, #2372, #2374, #2378, #2379 and #2381 are still to be judged on their own. Thank you! |
To be taken after the host PRs it depends on (listed in the note's "Depends on" and below); the branch itself is off main and touches only the profile and docs.
What and why
Nintendo Switch Sports Resort, update v65536 (the whole game, packed from a NUP with no base game), SDK 22.2.10 built for the Switch 2 (Ounce), Nintendo EPD's sead / agl / gsys with Havok, NVN2.
dm/games/04008E001F098000/: the NSP script's provisionalgame.tsv(its heap and address-region checks:sys_resource,mem_reserve,mem_alias,mem_stack,app_pool) plusdepth_mode zeroandrender_cond on; the shader tables the script generates (shader_map.tsv,shader_facts.tsv,shader_pairs.tsv,pso_pairs.tsv,bf_want.tsv,shader_map.tsv.conflicts.tsv: the same kinds of file as PRAGMATA's profile, no extracted game data); andpso_manifest.tsvwith the 31 task / mesh pipelines the offline archive cannot hold (22 from the device list over boot, menus and sports, 9 more from a 37-minute session that built them at their first draw for up to 0.8 s each). No patch, no rewriter cut.dm/games/04008E001F098000/README.md: the tested build and device, what each key is for, the pipelines, frame rate and scene loads, motion controls, the Mac route, what is open, and the PRs it depends on.services.md, which already named the game, links the note.Depends on: #2376, #2377, #2380 (boot and saves); #2384, #2385, #2386 (controllers and motion); #2373, #2375, #2372 (pictures); #2371, #2374, #2378, #2379 (pipelines and frame time); #2381 (diagnostics). Their reference entries name the game without a link while it has no note on main; once both are in, the links and the note's "Found on this game" lines can be added (I can send that as a follow-up).
Remaining limitations, as the note records them: the model heaps the game sizes from its resource size table are overrun by the host's command records, and the sessions still ran with the
DM_ROMFS_OVERLAYstopgap (patched resource size tables in the player'senv.txt, outside the repository); the system data0400000000000849the game mounts asMiiResourceis not present on the host (a red line; nothing visibly missing noticed); sixAnnaSeamesh shaders are refused (task payloads over Metal's 16 KB); the court's first frame takes about 225 ms (scene loads); iPhone and iPad not built.Checked
dm/tools/tests/test_game_profile.py: 7 tests OK;test_docs.py: 6 tests OK.python -m unittest discover -s dm/tools/tests: 1,469 tests OK (27 skipped).make -k -C dm/gfx/tests GAME=04008E001F098000 -j8 run: every test passes (the CPU and Metal tests, with this profile's header).DM_SW2=1) and from a DualSense, confirmed by the user. The latest, a 37-minute session on 2026-11-11 with the Joy-Con 2: no error, no compute pipeline built at run time, frame time p50 33.3 ms (the game presented at 30 fps there); earlier, the tennis match at 60 fps (p50 16.67 ms, p95 17.2 ms). Red lines in the latest session log of 2026-11-11: theMiiResourcemount, twotexture type mismatchlines (noted as open) and one audio device stall of 213 ms (the silent sink stood in).scripts/regress.py(no host change here), iPhone / iPad (no IPA built), sports other than tennis in a scripted route.Docs
python3 dm/tools/docs_symptoms.pywas run (no change)