Files
seedds 2e655b79bf Port SHIN MEGAMI TENSEI V: Vengeance 1.0.3 at 60 fps
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.
2026-10-26 19:35:03 +08:00

1.7 KiB

1# SHIN MEGAMI TENSEI V: Vengeance 1.0.3, Atlus / Unreal Engine 4.27, SDK 15.3.2, NVN.
2# ---- Identity ----
3title_id010069C01AB82000
4program_id010069C01AB82000
5nameSHIN MEGAMI TENSEI V: Vengeance
6ipaShinMegamiTenseiVVengeance.ipa
7app_categorypublic.app-category.games
8# ---- Versions ----
9buildv1966081.0.3main=0a4f14a5c12f470a4d3168a8f2ae6005subsdk0=368f01d5cb42f06cd125dc739d036719sdk=8618895246b420329b77746b960a66ab
10packagev196608
11shader_versionsv196608
12# ---- Files ----
13# subsdk0 is NintendoSDK_movie, the same build as Paper Mario: The Thousand-Year Door.
14modulesmain subsdk0 sdk
15romfs_markerProject/Content/Paks/pakchunk0-Switch.pak
16zip_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.
22game_args-SwitchVirtualAddressSpaceSize=2048
23mem_reserve0xF0000000
24mem_alias0xC8000000
25mem_stack0x10000000
26app_pool0xCD500000
27sys_resource0x2800000
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.
31fps_target60
32# ---- Input ----
33pad_layoutfull
34# ---- Shaders ----
35# Shaders are inline in cooked packages in the six Unreal paks (Oodle / Zlib blocks, inline shader records).
36shader_groupsShaderArchive-Global-=global ShaderArchive-=game
37shader_noteSHIN MEGAMI TENSEI V: Vengeance shaders