2.9 KiB
2.9 KiB
| 1 | # Game profile of Digimon Story Cyber Sleuth: Complete Edition (Switch, update 1.0.3 = v196608). Plays on the iPhone; on the Mac from the logos through the EDEN opening and character creation into EDEN, under control | |||||
|---|---|---|---|---|---|---|
| 2 | # Format: see dm/games/README.md | |||||
| 3 | # Media.Vision's MVGL engine (the PC version's), SDK 6.4.0, on NVIDIA's desktop OpenGL 4.5 core driver through EGL (subsdk0, not loaded): main gets its GL functions from a glad loader | |||||
| 4 | # (eglGetProcAddress) and calls 79 of them, which the host's GL layer implements on Metal (dm/gfx/gl/hle_gl.m). Its NVN device serves only a helper beside the movie | |||||
| 5 | # player (a memory pool and four textures). Every game file is in nine MVGL archives (DSDB*.nx64.mvgl: MDB1, doboz-compressed entries, dm/gfx/tools/mvgl.py; four of them are CRI AFS2 | |||||
| 6 | # sound banks under the same extension) but the movies, loose CRI USM files (H.264 through the SDK's movie library, subsdk1, into NV12 buffers the game uploads into GL textures) | |||||
| 7 | # The shaders are GLSL ES 3.20 sources the game compiles at run time: 1,682 .shad files in the archives (615 distinct) and 37 built-in strings in main; dm/gfx/tools/gl_shaders.py | |||||
| 8 | # translates them offline (glslang → SPIR-V → spirv-cross), and the host finds each by the hash of its text | |||||
| 9 | # ---- Identity ---- | |||||
| 10 | title_id | 010014E00DB56000 | ||||
| 11 | program_id | 010014E00DB56000 | ||||
| 12 | # ---- App ---- | |||||
| 13 | # 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) | |||||
| 14 | name | Digimon Story Cyber Sleuth: Complete Edition | ||||
| 15 | ipa | DigimonStoryCyberSleuthCompleteEdition.ipa | ||||
| 16 | app_category | public.app-category.role-playing-games | ||||
| 17 | # ---- Versions ---- | |||||
| 18 | # only the merged 1.0.3 copy is extracted | |||||
| 19 | build | v196608 | 1.0.3 | main=bedae701dd8565cdc494ca8dc3c840e8 | subsdk1=31ed558beb51f9e273a569dab4f7db82 | sdk=e29be8ad6778527aa248310d0c71a8a5 |
| 20 | package | v196608 | ||||
| 21 | shader_versions | v196608 | ||||
| 22 | # ---- Files ---- | |||||
| 23 | # load order as on Horizon: main, subsdk*, sdk (subsdk1 = NintendoSDK_movie). subsdk0 is NVIDIA's OpenGL driver, which programs the GPU through NvRm: never loaded, the GL layer answers main's EGL imports | |||||
| 24 | modules | main subsdk1 sdk | ||||
| 25 | romfs_marker | DSDB.nx64.mvgl | ||||
| 26 | zip_store | .mvgl:.otf:.ttf:.usm:.metallib | ||||
| 27 | # ---- Memory ---- | |||||
| 28 | # The NPDM declares no system resource, so the game has no virtual address memory: nninitStartup gives its malloc a heap of the pool − used memory (3.13 GB of the 3.25 GB heap region), | |||||
| 29 | # which it maps only as it touches it | |||||
| 30 | mem_reserve | 0x100000000 | ||||
| 31 | mem_alias | 0x10000000 | ||||
| 32 | mem_stack | 0x10000000 | ||||
| 33 | app_pool | 0xCD500000 | ||||
| 34 | sys_resource | 0x0 | ||||
| 35 | # the rewritten modules are larger than the default 64 MB of used memory (Age of Calamity: 66.6 MB → 72 MB) | |||||
| 36 | mem_used | 0x4a00000 | ||||
| 37 | # ---- Shader split ---- | |||||
| 38 | # no NVN shaders: the NVN tables stay empty (gl_shaders.py writes the GL library and its table, not the profile) | |||||
| 39 | shader_note | Digimon Story Cyber Sleuth: Complete Edition has no NVN shaders (its GLSL shaders go through the GL layer) |