Skip to content

Releases: modhollow/KytyPS5

KytyPS5-v20261013

Choose a tag to compare

@modhollow modhollow released this 13 Oct 15:34

Windows x64 build of 446b9f60 for Demon's Souls (PPSA01341, version 01.007.000). Unzip it and double-click launcher.cmd; the INSTALL-AND-BOOT.md inside explains the rest. Shader caches from earlier builds are prepared again on the first start, and an earlier precompile has to be run again.

New in this build

  • A shader precompile you can stop after 15 minutes: precompile-windows.ps1 -Minutes 15 stops starting new work after 15 minutes and keeps what it finished; the next run continues where it stopped. The shaders recorded play uses most come first, so a short run covers the places you visit most first. (Correction, 2026-10-13: an earlier version of these notes claimed a 15-minute run was as smooth as the whole precompile in the Nexus. That test never reached the Nexus, so the claim is withdrawn until it is measured again.)
  • The whole precompile is about twice as fast: more, smaller compile processes on all cores but one, and very large compute shaders compile in about half the time. Test PC: about 3½ h -> 1 h 27 min. -RecordedOnly (about 24 min) compiles only what recorded play uses.
  • Finish the precompile while you play (opt-in): run-windows.ps1 -BackgroundPrecompile continues a partial precompile at idle priority while the game runs, and what it finished is merged before the next start (a few seconds). In a 20-minute session it finished 67 compile batches. Its effect on frame times during gameplay has not been measured yet.
  • Faster fog loads: during a load, the pipelines the next frames need are built on several workers instead of one at a time (fog load after Continue: about 175 s -> 55 s in development measurements).
  • Precompiling after playing works: in a cache folder the game had already played in, the precompile could drop every compile and fail. It now works.
  • Launcher:
    • launcher.exe now applies the package's launch.json like launcher.cmd does (KYTY_LAUNCH_PROFILE=0 turns this off), and keeps settings it does not know when it saves.
    • launcher.cmd started from a PowerShell 7 window no longer fails with "Get-FileHash is not recognized".
  • Precompile power saving is now opt-in (-EcoQoS), because it lengthened the wait before the game starts.
  • Diagnostics: KYTY_PIPELINE_ATTEMPT_TRACE=1 also reports whether the driver found each pipeline in its cache.

本版本的变化

  • 着色器预编译可以只跑 15 分钟:precompile-windows.ps1 -Minutes 15 在 15 分钟后不再开始新的编译,并保留已完成的结果;下次运行会从停下的地方继续。录制的游玩中用得最多的着色器排在最前面,所以短时间的预编译会先覆盖最常去的地方。(2026-10-13 更正:之前版本称 15 分钟预编译在 Nexus 与完整预编译一样流畅,但该测试并未真正进入 Nexus,此说法已撤回,待重新测量。)
  • 完整预编译快了约一倍:改为在除一个核心外的所有核心上运行更多、更小的编译进程,特别大的计算着色器编译时间约减半。测试电脑:约 3.5 小时 -> 1 小时 27 分。-RecordedOnly(约 24 分钟)只编译录制的游玩用到的部分。
  • 边玩边完成预编译(需手动开启):run-windows.ps1 -BackgroundPrecompile 会在游戏运行时以空闲优先级继续未完成的预编译,完成的部分在下次启动前合并(几秒钟)。在一次 20 分钟的会话中完成了 67 批编译;对游戏中帧时间的影响尚未测量。
  • 雾门读取更快:读取时,接下来几帧需要的管线改为由多个工作线程同时创建,不再逐个创建(选择继续游戏后的雾门读取:开发测量中约 175 秒 -> 55 秒)。
  • 玩过之后再预编译也能正常完成:在游戏已经运行过的缓存文件夹里,预编译之前可能丢弃所有编译任务并失败,现在已修复。
  • 启动器:
    • launcher.exe 现在和 launcher.cmd 一样应用包里的 launch.json(设置 KYTY_LAUNCH_PROFILE=0 可关闭),保存时也会保留它不认识的设置。
    • 从 PowerShell 7 窗口启动 launcher.cmd 时不再出现 “Get-FileHash is not recognized” 错误。
  • 预编译的节能模式改为需手动开启(-EcoQoS),因为它延长了游戏启动前的等待时间。
  • 诊断:KYTY_PIPELINE_ATTEMPT_TRACE=1 现在也会报告驱动是否在缓存中找到了每条管线。

Tested on this build

Correction (2026-10-13): an earlier version of this section showed a six-area table. Those runs never reached the areas. The scripted route pressed its buttons during the logos, and every run measured the game's opening cinematic. The table has been removed. A corrected area test, with cutscenes skipped and each area verified from screenshots, will be posted when it has run.

What was verified on this build (Ryzen 7 7800X3D, RTX 5080, NVIDIA 591.86, Windows 11):

  • 15-minute precompile: -Minutes 15 finished in about 17 minutes including the first-start preparation and stored 1,869 MB.
  • Game start: the game started from the release ZIP and played its intro with no crash.
  • Background precompile: it continued during a session and stopped when the game closed.
  • Windows build: all 28 tests passed.
  • Linux build (without the Qt launcher): its 23 tests passed. No Linux binary is supplied.

SHA256SUMS.txt covers the ZIP and the corresponding-source archive.

Known problems:

  • Places the precompiled part does not cover still compile when first visited and can stall.
  • A folder whose name contains [ or ] stops the scripts; extract to a folder without brackets.
  • Windowed 1920×1080 on a 1920×1080 desktop can stay black (fullscreen is fine).
  • Full playthroughs and other GPUs are untested.

Based on KytyPS5/KytyPS5, with Demon's Souls work from chenxiao07/KytyPS5 through the revisions listed in SOURCE-PROVENANCE.md.

KytyPS5 0.3.0 — Demon's Souls preview 2

Choose a tag to compare

Windows x64 experimental build of b3266317 for Demon’s Souls PPSA01341, version 01.007.000. Extract the complete Windows ZIP, open launcher.cmd, select your own game and press Play. INSTALL-AND-BOOT.md explains prerequisites, settings and cache reuse. Preview 1 remains available.

New in this build

  • Optional precompile runs cooler. By default the offline precompile now uses the physical cores less one, without counting SMT siblings, and asks Windows to run the compile processes at reduced power. On the test PC (Ryzen 7 7800X3D, 8 cores / 16 threads) the same precompile sample peaked at 50 W instead of 71 W of CPU package power. Busy-time average power fell from 49 W to 38 W, and total energy stayed about the same (17.8 kJ against 18.5 kJ). The cost is time: a full precompile should take roughly twice as long, as an estimate rather than a measured full run. The launcher's time estimate accounts for this. -FullSpeed restores the previous every-CPU, full-power behaviour, and -PlanOnly prints the plan without compiling.
  • Precompile and pipeline-binary stores work past the Windows 260-character path limit. Pipeline-binary files are now saved and opened with the same native long-path handling as the rest of the cache. Before this fix, a cache folder whose full file paths exceeded 260 characters made every precompile shard fail.
  • Opt-in pipeline-creation trace for stall reports. Setting KYTY_PIPELINE_ATTEMPT_TRACE=1 logs each pipeline creation attempt with its shader, thread, duration and outcome. It is off by default. It shows which compiles cause a hitch.
  • Background shader optimisation requests reduced power. The emulator's background optimisation workers use Windows reduced-power mode (EcoQoS); workers the game waits on keep full power. KYTY_COMPILE_EFFICIENCY=0 turns this off. On the desktop Ryzen test PC Windows did not lower clocks for this work, so in-game power was unchanged. The effect on laptops and hybrid CPUs is untested.

The shader cache producer is unchanged from the previous build: compatible caches from it are reused with the same GPU and driver.

Real game test on this build

Test PC: Ryzen 7 7800X3D (8 cores / 16 threads), RTX 5080, NVIDIA 591.86, Windows. One run as an upgrading user:

  • the release ZIP extracted to a new folder;
  • a compatible cache recorded with the previous build's source: 888 shader inputs, 803 pipeline recipes and 87.6 MB of driver caches;
  • a Boletarian Palace save;
  • started by double-clicking launcher.cmd at the package defaults (1920×1080 fullscreen).
Stage Result
First start Shader list and static-input preparation took about 80 s before the game window opened (first use only)
Previous cache Reused: both driver caches and all 888 inputs / 803 recipes loaded, nothing regenerated
Title screen 60 FPS
Fog load after Continue About 5½ minutes, the same as earlier builds
Play Mostly 56–60 FPS standing; dips to 30–48 FPS and severe hitches when walking into new areas and when fights start
Pipeline creation the game waited on 738 creations of 100 ms or more, about 350 s in a 640 s session; the longest stalled frame was 76.6 s
Exit Normal (code 0); the cache grew to 2,300 inputs / 2,142 pipelines and 194 MB of driver caches
CPU package power Average 57.7 W, 95th percentile 65.4 W, maximum 67.9 W

The tester's verdict: loading and play felt the same as the earlier builds, with large spikes when fighting enemies. This build does not shorten loads or in-game hitches.

The Qt launcher (launcher.exe) starts from the package and loads its modules from it. A game run through it was not measured for this build: it does not apply the package's launch.json profile.

Remaining problems

  • Long loads and hitches come from pipeline compilation on the render thread. A traced run of a development build with these changes, at the same settings, measured how the fog load after Continue and the hitches in new areas or fights are spent:

    • The game waited on one driver pipeline compile at a time: 742 of them, 224.5 s in total over a 350 s session.
    • The slowest single compile took 2.94 s.
    • The CPU was under-used meanwhile.

    Compiling the pipelines a frame needs in parallel is the next planned fix; this build does not change it.

  • Windowed 1920×1080 on a 1920×1080 desktop can stay black while the game keeps running. Fullscreen renders normally.

  • The Qt launcher rewrites the shared settings file. launcher.exe keeps its settings in C:\ProgramData\Kyty\Kyty.ini, which every KytyPS5 build shares. Settings that this preview does not know, such as those from newer builds, are dropped when it saves; back the file up before opening it.

  • Start launcher.cmd from Explorer (double-click). Started from a PowerShell 7 window, Play fails with “Get-FileHash is not recognized”, because Windows PowerShell inherits PowerShell 7's module path. This also affected preview 1.

  • Full campaign playability has not been established. Higher resolutions and other GPU/driver combinations need real game tests.

  • This release contains no GPU shader compiler. A prototype that ran shader translation on the GPU did not reduce CPU time, because the driver's own pipeline compilation dominates.

Build and test checks

  • Windows. A clang-cl Release build with IPO, x86-64-v3 and the Qt launcher passed, as did installation and --help. All 19 workflow-selected tests passed, including the new compile-power, precompile-plan and long-path tests.
  • Linux. A clang Release build with IPO in an Ubuntu 24.04 container, without Qt, passed all 19 workflow-selected tests, installation and --help, with all six SDL audio and video backends enabled. This validates the source on Linux; no Linux binary is supplied.
  • Not covered. macOS was not run, and no Linux or macOS binary is supplied.

The Windows runtime ZIP contains the exact tested executables, required DLLs and plugins, product scripts, clean settings and notices. The corresponding-source asset includes the emulator, the pinned component sources, the Qt and FFmpeg implementation sources and the release-profile files. SHA256SUMS.txt verifies the two assets.

Sources and follow-up testing

Based on KytyPS5/KytyPS5, with Demon’s Souls integration and preparation work from chenxiao07/KytyPS5 through the revisions listed in SOURCE-PROVENANCE.md.

See Demon’s Souls status, known issues and reporting and source credits. When reporting, share:

  • the tag and game version;
  • your hardware and settings;
  • a minimal reviewed log excerpt.

Keep game files, shader code, saves, keys and complete caches private.

KytyPS5 0.3.0 — Demon's Souls preview 1

Choose a tag to compare

KytyPS5 0.3.0 — Demon’s Souls preview 1

This first preview includes the complete Chen Demon’s Souls runtime and tooling integration with general controller, cache, memory and build corrections. Demon’s Souls development and testing are the current focus.

Installation

Download the complete Windows x64 ZIP below, compare its SHA256 with SHA256SUMS, and extract it into a short, writable folder. Follow the installation and boot guide to add your own legally obtained game copy and launch it. The corresponding-source archive includes the pinned dependency sources and license notices.

The supplied profile requests a 1280×720 bordered window, on-demand recording, prefetch disabled and vibration intensity 100, with fog_enable=false and doIndexBufferCulling=false. Choose the resolution before launch: the tested game window remained fixed at 1280×720 when maximization was requested. Fog settings change the image; no performance benefit is established.

On-demand play can still require first-use shader listing, seed and static-input preparation, followed by compilation pauses during loading and play. Full offline pipeline preparation is optional. The complete first-use script route was not exercised by the direct game test.

Verified progress and remaining issues

Source 635289e8 passed local Windows and Linux build-and-test checks and five GPU regression groups. Demon’s Souls PPSA01341 version 01.007.000 reached the title, main menu and Nexus on an RTX 5080 with driver 591.86. Screenshot comparisons verified player movement and camera response. The 604.662-second test ended through a normal close request at its planned limit, with exit 0 and no device loss.

Cold startup and Continue took minutes while pipelines compiled. Shader-table binding and image-set refusal messages remain unresolved. This preview has no verified stable gameplay frame rate, complete rendering correctness, combat or campaign coverage, warm-restart improvement or new physical-vibration observation. The vibration setting and controller regression tests do not establish new physical feedback in this build.

The Windows package passed isolated CLI and Qt module startup checks with Windows system folders on PATH. The hidden Qt check used a controlled process stop; normal interactive Qt quit was not tested.

See Testing and Known Issues for compatibility details. Report problems using this fork’s issue chooser, including the release version, game version, hardware and driver, settings and reproduction steps.

Source and credits

This project is a fork of KytyPS5/KytyPS5, derived from InoriRus/Kyty. Chen’s KytyPS5 fork supplies the primary Demon’s Souls integration: the complete 75aa4b9e implementation and eight later commits through e019e72d. Original GPL, Kyty MIT, inherited shadPS4 and dependency notices are retained. See Sources and Credits and the corresponding-source package for the source inventory and licenses.

Platform scope

This release provides a Windows x64 build. The GitHub-hosted macOS build failed in a page-manager test because MAP_FIXED_NOREPLACE is a Linux-only flag; no macOS build is included or verified. The separate local Linux build-and-test results passed. Hosted build results are listed on the repository's Actions page.