Profile 010069C01AB82000 (Atlus, Unreal Engine 4.27, SDK 15.3.2, NVN). Opening gameplay tested on the Mac: new game, classroom, saves and reload in a fresh process, Tokyo map, Shinagawa Station and its event. iOS and combat untested. - Memory: the FMallocBinned3 constructor cut (main+0x1f2f63c, gate +0x1f2f644) with the measured UE4 vtable in hle_uemalloc.c; -SwitchVirtualAddressSpaceSize=2048 and a 3.75 GB block. profile_guess.py now leaves 128 MB for the initial heap in provisional Unreal layouts (test_profile_guess.py). - Shaders (general, chain 86c8282f6fb4): returning IGN image atomics keep the old value with bounded access (Ryujinx translator, t_atomic_return.m); buffer-image reflection keeps its Metal texture type (nvn_refl.m, t_refl.m). All 19,746 shaders build for Mac and iOS. - 60 fps: hle_fpslock.c writes the game's own Project.FrameRateLimit (main+0x6d6d5d0, which GameUserSettings applies to t.MaxFPS) and rhi.SyncInterval, gated on main 0a4f14a5... Mac (M4 Pro): 59.2-60.1 fps at the station, frame p95 17.5-20.3 ms; a 1 s walk ends at the same place at 30 and 60 fps. DM_FPS_TARGET=30 keeps 30. Docs: the game note, games table, README gallery, memory.md, shaders.md, symptom index; AGENTS count 68 -> 69. Checked: tool tests (186, 6 skips), docs tests.
1.7 KiB
1.7 KiB
| 1 | # SHIN MEGAMI TENSEI V: Vengeance 1.0.3, Atlus / Unreal Engine 4.27, SDK 15.3.2, NVN. | |||||
|---|---|---|---|---|---|---|
| 2 | # ---- Identity ---- | |||||
| 3 | title_id | 010069C01AB82000 | ||||
| 4 | program_id | 010069C01AB82000 | ||||
| 5 | name | SHIN MEGAMI TENSEI V: Vengeance | ||||
| 6 | ipa | ShinMegamiTenseiVVengeance.ipa | ||||
| 7 | app_category | public.app-category.games | ||||
| 8 | # ---- Versions ---- | |||||
| 9 | build | v196608 | 1.0.3 | main=0a4f14a5c12f470a4d3168a8f2ae6005 | subsdk0=368f01d5cb42f06cd125dc739d036719 | sdk=8618895246b420329b77746b960a66ab |
| 10 | package | v196608 | ||||
| 11 | shader_versions | v196608 | ||||
| 12 | # ---- Files ---- | |||||
| 13 | # subsdk0 is NintendoSDK_movie, the same build as Paper Mario: The Thousand-Year Door. | |||||
| 14 | modules | main subsdk0 sdk | ||||
| 15 | romfs_marker | Project/Content/Paks/pakchunk0-Switch.pak | ||||
| 16 | zip_store | .pak:.metallib | ||||
| 17 | # ---- Memory ---- | |||||
| 18 | # nninitStartup (+0x1b88a10) reads this option in MB and otherwise reserves 62 GB. | |||||
| 19 | # FMallocBinned3's 37 GB pool reservation is replaced by the host's malloc zone | |||||
| 20 | # (patches.py, hle_uemalloc.c). The SDK build already has the 62 MB node-area and | |||||
| 21 | # 32 MB region-alignment cuts in sdk_patches.py. | |||||
| 22 | game_args | -SwitchVirtualAddressSpaceSize=2048 | ||||
| 23 | mem_reserve | 0xF0000000 | ||||
| 24 | mem_alias | 0xC8000000 | ||||
| 25 | mem_stack | 0x10000000 | ||||
| 26 | app_pool | 0xCD500000 | ||||
| 27 | sys_resource | 0x2800000 | ||||
| 28 | # The Switch profile caps Project.FrameRateLimit at 30 and rhi.syncinterval at 2. | |||||
| 29 | # hle_fpslock.c raises the verified 1.0.3 console variables; Unreal applies the | |||||
| 30 | # project limit through GameUserSettings to t.MaxFPS. DM_FPS_TARGET=30 restores 30. | |||||
| 31 | fps_target | 60 | ||||
| 32 | # ---- Input ---- | |||||
| 33 | pad_layout | full | ||||
| 34 | # ---- Shaders ---- | |||||
| 35 | # Shaders are inline in cooked packages in the six Unreal paks (Oodle / Zlib blocks, inline shader records). | |||||
| 36 | shader_groups | ShaderArchive-Global-=global ShaderArchive-=game | ||||
| 37 | shader_note | SHIN MEGAMI TENSEI V: Vengeance shaders |