Files
seeddsandv0lumehi 92fc2f2711 Build and ship offline Metal pipeline archives (#226)
Compile eligible shader-pair bases on the Mac with metal-tt, package one
archive per selected iPhone GPU, and use a matching bundle before falling
back to on-device preparation. Carry the profile depth mode through packing
and include the pulling libraries required by the bundled bases.

Integrate PR #226 with four confirmed fixes: validate archive container
bounds before invoking Metal; require at least one actual successful bundle
probe; hash consumed library bytes into offline cache keys; and emit device
remainder lists for constant-only plans instead of aborting packaging.
Keep game measurements in the game note and document the general findings.

Validation on current main: 52 real Metal bundle checks, 57 archive checks,
79 prewarm checks on each pipeline path, 73 Python regressions covering
offline tools, packaging, documentation and chain checks, and compilation
of all 133 iOS source files. No new iPhone gameplay validation. The archive guard validates
container structure, not private Metal payloads.

Co-authored-by: v0lumehi <aljic.zijad@gmail.com>
2026-10-26 10:52:50 +08:00

1.6 KiB

1# Game profile of 13 Sentinels: Aegis Rim, Asian release (Japanese, Korean, Chinese), base game 1.00 (v0), SDK 11.4.3: the same engine and subsdk0 / sdk builds as the western release 01003FC01670C000, whose note explains the memory keys
2# Generated by scripts/build_ipa_from_nsp.py (dm/games/profile_guess.py) with the western profile's alloc_big_align, then played on the Mac
3# ---- Identity ----
4title_id01008D7016438000
5program_id01008D7016438000
6# ---- App ----
7name13 Sentinels: Aegis Rim (Asia)
8ipa13SentinelsAsia.ipa
9app_categorypublic.app-category.role-playing-games
10# ---- Versions ----
11buildv01.00main=311947020f64f5742ce3c16162c4d87fsubsdk0=507f19d1240d09d00992248e8a0fd77esdk=2d369d9999e3e10e665106f840ffff9b
12packagev0
13shader_versionsv0
14# ---- Files ----
15# every module main imports from
16modulesmain subsdk0 sdk
17romfs_markerROBO_CN.CPK
18zip_store.cpk:.metallib
19# ---- Memory ----
20# main sets a heap of at most the pool − 64 MB: a 3328 MB heap region
21mem_reserve0x100000000
22mem_alias0x10000000
23mem_stack0x10000000
24app_pool0xCD500000
25# the NPDM declares 0 MB of system resource: IsVirtualAddressMemoryEnabled is false, as on Horizon (Big Brain Academy: Brain vs. Brain sets a heap only then)
26sys_resource0x0
27# ---- Shader split ----
28shader_groups/=romfs
29shader_note13 Sentinels: Aegis Rim (Asia) shaders
30# from the western 13 Sentinels profile: Vanillaware engine needs 64 KB aligned big allocations
31alloc_big_alignon
32# the NVN depth mode the game sets (nvnDeviceSetDepthMode near = 0): the pipeline archive made offline holds the main0_z vertex entries (dm/gfx/tools/pso_offline.py)
33depth_modezero