Files
seedds 98bd33a4ef BALL x PIT (010086A022444000, update 1.293, Unity 6000.0.62f1 on SDK 20.5.19): game profile and the SDK 20.5.19 sdk build's node-area cut, no host change. Plays on the iPhone (IPA 1.1 GB, user). On the Mac from a fresh save through the title, a new game, the intro and the descent into the pit, the first dive and its tutorial (moving, aiming with the right stick and shooting with ZR, gems and XP, the enemy waves that overrun the player and end it), and the base-building tutorial (the sidebar, the build menu, a wheat field and a forest placed, the first harvest): 60 fps (frame time p50 16.66 ms, p95 about 16.8 ms; GPU 1-5 ms a frame), FMOD sound through one stereo AudioOut, about 1.6 GB resident and 0.7 GB of Metal allocations, flat over 10 minutes, no red line. sdk_patches.py: like Hollow Knight: Silksong, Unity 6 takes all its memory through AllocateAddressRegion / AllocateMemoryPages with no heap; this sdk build's AddressRegionManager constructor is the SDK 20.5.22 build's at the same offsets (sdk+0x145cfc; the node area limit +0x145d0c and its occupied length +0x145d78 cut from 0x3fe00000 to 0x3e00000): the alias region's high-water mark +2.00 GB of 4.375 GB, 1.26 GB mapped. The provisional profile was otherwise right as generated (Engage's 5 GB block, sys_resource 16 MB; profile_guess.py --check: ok). Shaders: 38,099 (18,913 vertex, 18,917 pixel, 116 compute, 76 hull and domain, one geometry), 11 of them GLSLC outputs of Unity's player in main; the loose serialized files (resources.assets, sharedassets1.assets, the built-in resources) have no type trees and borrow the Shader tree 10 of the 11 Addressables bundles carry (the same type hash, shader_split.py's deferred pass), so unityfs.py needed no layout; all build for the Mac and iOS. The game draws 1280x720 into 1920x1080 window textures with a window crop (nvnWindowSetCrop 0,0 1280x720), which the present already scales. Profile: pad_layout full (the right stick aims in a dive), a prewarm list recorded on the Mac over the route above (297 lines). Checked: the NSP script packs it from the NSPs alone (Mac and iOS); after the rebase onto ded1cff the 44 tool tests pass. README (games gallery, a Mac picture of the first dive), AGENTS.md (56 -> 57), docs/development.md and docs/agents 03 / 04 say so
2026-10-25 00:24:57 +08:00

2.7 KiB

1# Game profile of BALL x PIT (Switch, update 1.293 = v393216). Plays on the Mac and on the iPhone
2# Format: see dm/games/README.md
3# Unity 6000.0.62f1 (IL2CPP) with FMOD and Addressables, SDK 20.5.19; subsdk0 is the movie module. The Shader objects are in the player's serialized files (resources.assets,
4# sharedassets1.assets, the built-in resources), which have no type trees, and in 10 of the 11 Addressables bundles (StreamingAssets/aa/Switch), which carry the Shader type tree the others borrow
5# (the same type hash), so unityfs.py needs no written-out layout. Needed no host change, as Hollow Knight: Silksong (Unity 6000.0.50f1).
6# Docked: the game draws 1280x720 into 1920x1080 window textures and sets the window crop to 1280x720 (nvnWindowSetCrop), at 60 fps. Reads no touch; the 3D pad layout (Input below)
7# ---- Identity ----
8title_id010086A022444000
9program_id010086A022444000
10# ---- App ----
11# Game name: only a label for profile listings and the Mac window title; the iOS app name is the game name in the base NSP, and the bundle ID comes from the base game title ID (build_ipa.sh / NSP script)
12nameBALL x PIT
13ipaBallXPit.ipa
14app_categorypublic.app-category.games
15# ---- Versions ----
16buildv3932161.293main=ed9090f18ae37a5a0966f5cfe5a07cc2subsdk0=b1b31ebc17b9417164a4f5fea049367esdk=8bfebccd6f5c1392597b364b9ab22a8d
17packagev393216
18shader_versionsv393216
19# ---- Files ----
20# load order as on Horizon: main, subsdk*, sdk (subsdk0 = NintendoSDK_movie)
21modulesmain subsdk0 sdk
22romfs_markerData/sharedassets1.assets
23zip_store.assets:.bank:.bundle:.dat:.ress:.metallib
24# ---- Memory ----
25# The NPDM declares 16 MB of system resource, so IsVirtualAddressMemoryEnabled is true, and main never sets a heap: Unity 6 takes its memory itself through nn::os::AllocateAddressRegion
26# and AllocateMemoryPages in the alias region, as in Hollow Knight: Silksong. The 5 GB block of the other Unity games with virtual address memory, with the node area cut for this sdk build
27# (dm/tools/sdk_patches.py). Measured on the Mac over 10 minutes of the first dive and the base: the alias region's high-water mark +2.00 GB of 4.375 GB, 1.26 GB mapped, resident 1.6 GB and
28# 0.7 GB of GPU memory, flat
29sys_resource0x1000000
30mem_reserve0x140000000
31mem_alias0x118000000
32mem_stack0x10000000
33app_pool0xCD500000
34# ---- Shader split (shader_split.py; Unity Shader and ComputeShader objects, read by unityfs.py) ----
35# everything is under Data/: the player's serialized files and the StreamingAssets bundles (38,099 shaders, 11 of them GLSLC outputs of Unity's player in main)
36shader_groups/Data/=data
37shader_noteBALL x PIT shaders
38# ---- Input ----
39# In a dive the right stick aims (ZR shoots): the 3D pad layout. It plays with the controller, so it stays docked
40pad_layoutfull