HAL Laboratory's engine on NintendoWare, SDK 11.4.0, NVN. Plays on the Mac at 30 fps, as on the Switch: online and difficulty prompts, the 1080p opening movie, Point of Arrival with its guide movies, the city reveal, the Sword ability and fights, title and Continue; a 15-minute soak with no crash. No game code is cut; the profile is the memory layout and the shader groups. All 27,297 shaders build for Mac and iOS; the IPA (6.4 GB) is untested on a device. - Threads (general): a guest thread waiting for a host lock that HLE code holds while it runs guest code is blocked, not runnable (dm_host_lock, a native HLE wait). The movie decoder held its decode lock across SignalEvent; the signal's same-core handoff waited for the movie input thread, which waited for that lock, and the game froze at its first guide movie. t_preempt has the case. Docs: the game note, games table, README gallery, threads.md, shaders.md, symptom index; AGENTS count 73 -> 74. Checked: host tests, preempt, tool tests (253, 15 skips), docs tests; a Mac run on chain 5cddc47253ab through the first guide movie.
2.0 KiB
2.0 KiB
| 1 | # Game profile of Kirby and the Forgotten Land (Switch, update 1.1.0 = v65536). Plays on the Mac | |||||
|---|---|---|---|---|---|---|
| 2 | # Format: see dm/games/README.md | |||||
| 3 | # HAL Laboratory's own engine on NintendoWare (G3d, Font, Fxt) and nn::atk2 sound, SDK 11.4.0, NVN; subsdk0 is the movie module (VP9 / Vorbis WebM cinematics and guide movies). | |||||
| 4 | # The shaders are BNSH archives inside HAL's .cmp containers under gfx/, ptcl/ and lyt/, in the loose shader/ files and embedded in main (shader_split.py); no run met a shader missing from the map. | |||||
| 5 | # The game asks for present interval 1 and paces itself at 30 fps, as on the Switch | |||||
| 6 | # ---- Identity ---- | |||||
| 7 | title_id | 01004D300C5AE000 | ||||
| 8 | program_id | 01004D300C5AE000 | ||||
| 9 | # ---- App ---- | |||||
| 10 | # 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) | |||||
| 11 | name | Kirby and the Forgotten Land | ||||
| 12 | ipa | KirbyAndTheForgottenLand.ipa | ||||
| 13 | app_category | public.app-category.games | ||||
| 14 | # ---- Versions ---- | |||||
| 15 | build | v65536 | 1.1.0 | main=a6ce40dc3aedb1becacd2f1ff4515307 | subsdk0=535249a546887cac875a099e9c8ef367 | sdk=b39add63421be525d352e576dab438d3 |
| 16 | package | v65536 | ||||
| 17 | shader_versions | v65536 | ||||
| 18 | # ---- Files ---- | |||||
| 19 | # load order as on Horizon: main, subsdk*, sdk (subsdk0 = NintendoSDK_movie 11.4.0) | |||||
| 20 | modules | main subsdk0 sdk | ||||
| 21 | romfs_marker | mov/EventMovie/Ending.webm | ||||
| 22 | zip_store | .bfstm:.cmpbin:.opus:.webm:.metallib | ||||
| 23 | # ---- Memory ---- | |||||
| 24 | # The NPDM declares no system resource, so there is no virtual address memory: the game sets a heap of the pool less 64 MB of used memory (3.14 GB, measured), which fits the | |||||
| 25 | # 3.25 GB heap region of this 4 GB block (256 MB in front + 256 MB alias region + 256 MB stack region + heap region). The application pool is the Switch's 3285 MB | |||||
| 26 | mem_reserve | 0x100000000 | ||||
| 27 | mem_alias | 0x10000000 | ||||
| 28 | mem_stack | 0x10000000 | ||||
| 29 | app_pool | 0xCD500000 | ||||
| 30 | sys_resource | 0x0 | ||||
| 31 | # ---- Shader split (shader_split.py; BNSH in HAL's .cmp containers, the loose shader/ files and main) ---- | |||||
| 32 | shader_groups | /gfx/=gfx /ptcl/=ptcl /lyt/=lyt /shader/=shader | ||||
| 33 | shader_note | Kirby and the Forgotten Land shaders |