3.1 KiB
3.1 KiB
| 1 | # Game profile of Advance Wars 1+2: Re-Boot Camp (Switch, base game v0 = 1.0.0, the only version). Plays on the Mac and on the iPhone | |||||
|---|---|---|---|---|---|---|
| 2 | # Format: see dm/games/README.md | |||||
| 3 | # Unity 2020.2.1f3 IL2CPP on SDK 10.4.1 (the sdk and movie module builds of The Great Ace Attorney Chronicles), NVN, FMOD (sound through AudioOut), Bink 2 movies (.bk2) decoded by Bink's own | |||||
| 4 | # Unity plugin in main, Pia / NEX for online play. Everything is in Addressables bundles under Data/StreamingAssets/aa/Switch, read as Engage's (unityfs.py). | |||||
| 5 | # Shaders: 20,392 from the bundles and Unity's 11 GLSLC outputs in main, and the Bink plugin's 32 (2 vertex, 22 pixel, 8 compute), whose control sections and code areas lie loose in main | |||||
| 6 | # (shader_split.py raw_shaders); without them the opening movie and every other movie drew white | |||||
| 7 | # ---- Identity ---- | |||||
| 8 | title_id | 0100300012F2A000 | ||||
| 9 | program_id | 0100300012F2A000 | ||||
| 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) | |||||
| 12 | name | Advance Wars 1+2: Re-Boot Camp | ||||
| 13 | ipa | AdvanceWars12ReBootCamp.ipa | ||||
| 14 | app_category | public.app-category.strategy-games | ||||
| 15 | # ---- Versions ---- | |||||
| 16 | build | v0 | 1.0.0 | main=320a17744aefd67fec5738ca0c629795 | subsdk0=84e50460493a12f26100e5150fbff271 | sdk=d9add76fc264863d85fbbd1d70076c76 |
| 17 | package | v0 | ||||
| 18 | shader_versions | v0 | ||||
| 19 | # ---- Files ---- | |||||
| 20 | # load order as on Horizon: main, subsdk*, sdk (subsdk0 = NintendoSDK_movie, which main imports from; the movies seen so far, the opening among them, are Bink's) | |||||
| 21 | modules | main subsdk0 sdk | ||||
| 22 | romfs_marker | Data/StreamingAssets/music.bank | ||||
| 23 | zip_store | .assets:.bank:.bk2:.bundle:.dat:.ress:.metallib | ||||
| 24 | # ---- Memory ---- | |||||
| 25 | # The NPDM declares 16 MB of system resource (virtual address memory): nninitStartup (main+0x365310) hands pool − used to StandardAllocator as one address region, and main sets no heap; | |||||
| 26 | # Unity reserves its own regions beside it. Engage's 5 GB block (4.375 GB alias region), with the SDK's address-region node area cut and regions of 1 GB and more aligned to 32 MB on the | |||||
| 27 | # SDK 10.4.1 sdk build (dm/tools/sdk_patches.py). The NSP script's heap check (the hardware pool used the alias region up to +4.25 GB within seconds) set a 1 GB pool, as for the other | |||||
| 28 | # Unity games with virtual address memory, but this game's malloc then failed at the first loading screen: Unity's GPU pool allocation (main+0x96f430) halves its request after each failed | |||||
| 29 | # aligned_alloc down to a size of 0 and spins there for good (frames stopped 17 s in). With 2 GB: 2.26 GB of the alias region mapped and its high-water mark +3.27 GB through 15 minutes of | |||||
| 30 | # the title, the opening movie, the menus and the first training battle; the process holds about 2.5 GB on the Mac, 1.6–1.9 GB of it Metal allocations | |||||
| 31 | mem_reserve | 0x140000000 | ||||
| 32 | mem_alias | 0x118000000 | ||||
| 33 | mem_stack | 0x10000000 | ||||
| 34 | app_pool | 0x80000000 | ||||
| 35 | sys_resource | 0x1000000 | ||||
| 36 | # ---- Input ---- | |||||
| 37 | # The map cursor moves with the D-pad (the tutorial battle was played with it on the Mac); the 3D layout has one | |||||
| 38 | pad_layout | full | ||||
| 39 | # ---- Shader split ---- | |||||
| 40 | shader_groups | /Data/=data | ||||
| 41 | shader_note | Advance Wars 1+2: Re-Boot Camp shaders |