Project Vekta

Project Vekta is a static recompilation of Killzone HD for PC that runs the game at higher frame rates and resolutions.

README

Project Vekta. Killzone HD: unofficial PC port (static recompilation), built on your PC from your own game

Project Vekta (work in progress)

Killzone HD: unofficial PC port (static recompilation)

License: MIT Status: playable, testing Linux x64 Windows x64 Vulkan

Status · Features · Screenshots · Requirements · Getting your files · Building · How it works · Known issues · Roadmap · Glossary · AI use · Contributing · Forking

Vekta is the ISA colony world where the first Killzone is fought. Project Vekta is a fan project, not official and not affiliated with or endorsed by Sony Interactive Entertainment or Guerrilla Games.

What this is: a static recompilation of Killzone HD, the PS3 remaster of the first Killzone (title NPUA80856, the package on the Killzone Trilogy disc). The game's PowerPC (PPU) and Cell SPU code is translated to C++ ahead of time with ps3recomp (pinned at v0.19.0, plus this project's patches in port/patches/) and compiled into a native Linux or Windows x64 program. It is not an emulator (no CPU emulator runs at play time) and not a rewrite (the game's logic is the game's own code). Around that code, the PS3's system libraries and hardware behaviour are reimplemented on PC APIs, and the game's graphics commands are replayed on Vulkan.

You need your own copy of the game. This repository contains only the port: source code, patches to the recompiler, tools and documentation. It contains no game code, data, assets, keys or firmware, and it never will. Each player translates and builds the game's code on their own machine, from their own files.

Status

As of 2026-10-30, on Linux x64 with an NVIDIA RTX 3070 Ti, the maintainer's machine:

Code translationthe whole EBOOT is translated (about 23,400 PPU functions) plus the SPU programs, job modules and the firmware pieces the game loads; this repository's scripts rebuild it byte for byte from the player's files
Boot, menus, movieswork: intro movies, front end, options, pause menu, saves and Continue
CampaignLevel 1 played by hand from start to end; all 11 levels load and reach gameplay; parts of the campaign played by hand on 2026-10-20; levels 2 to 11 not yet each played to their end
Frame ratea steady 60 frames per second by default (the game logic runs at 60 Hz instead of the PS3's 30); an optional 144 Hz mode reaches about 131 to 134 frames per second in Level 1 and Level 7
Soundstereo, 5.1 and 7.1 output (the game's own mixer fills the extra channels); music through the firmware's MP3 decoder
Windowsthe Windows exe is cross-built on Linux and runs under Wine, Proton and on a real Windows; the full campaign on Windows is not checked yet, and speed under Wine and Proton is lower (about 100 frames per second in Level 7)
Distributionyou build the port from your own files: on Windows the setup program or folder builds it on your PC (since 0.2.0); on Linux from source, or (since 0.3.0) a Linux folder with its own toolchain (no compiler or packages needed)

What works and what does not, item by item: docs/FEATURES.md. Open problems: docs/KNOWN_ISSUES.md.

PC features

All optional, set in a PC page inside the game's own Options and Pause menus and kept in kz1hd_pc.ini:

  • display mode (window, borderless, fullscreen), output resolution, internal resolution scale, V-Sync (on, off, adaptive), VRR, frame-rate limit (30, 60, 144), NVIDIA Reflex
  • AMD FSR 1 upscaling and RCAS sharpening, anisotropic filtering (the game's own or 2x to 16x)
  • temporal upscaling on Linux and Windows: AMD FSR 3.1 in every build, and NVIDIA DLSS (Super Resolution and DLAA) when you choose to download it at install (docs/dev/upscalers.md)
  • widescreen (Hor+ for 21:9, 32:9 and wider, with the menus and movies kept 16:9), field of view for the world and, apart, the first-person weapon (70 to 120 degrees at 16:9), HUD size and position
  • presets: Original (PS3), Performance, Balanced, Quality
  • keyboard and mouse (direct mouse look, mouse in menus, remappable keys), Xbox, PlayStation, Nintendo and generic controllers through SDL, with button prompts that follow the device in use
  • stereo, 5.1 or 7.1 sound; game language; skip the opening movie; local trophies from the game's own trophy set

What goes online

Nothing, unless you choose it. The port and its scripts make no network connection of their own. The downloads are the ones you start: cloning this repository with its ps3recomp submodule, your system's packages, the build tools' Python packages, and these, only when you choose them:

  • NVIDIA DLSS: only if you accept NVIDIA's DLSS SDK licence when tools/install.sh or run.cmd asks, or tick the Windows setup's DLSS box (unticked by default), or pass --dlss accept, the build downloads the DLSS SDK's files from NVIDIA's repository on GitHub (raw.githubusercontent.com/NVIDIA/DLSS, pinned to v310.9.16 and checked by SHA-256) into work/toolchain-cache/dlss-sdk/. The question first downloads the licence's text from there, for you to read. Declined, nothing is downloaded and the build has no DLSS.

Where your data goes

Everything stays in the folder the game runs from, work/vfs/ (made by tools/setup-vfs.sh): the PC settings in kz1hd_pc.ini, the key map in kz1hd_keys.ini, saves under gamedata/dev_hdd0/home/00000001/savedata/, and the local trophy log in gamedata/trophies/. The log of a run goes to work/play.log. Nothing is written outside the repository's work/ folder, and nothing is written into your game files. The Windows setup program is the one exception: unless you pick its "Portable" option, the settings and saves go to %APPDATA%\Project Vekta instead.

Getting it

Latest release: v0.4.0, a pre-release. Each release carries the Windows setup program and the same folder as a zip, a Linux folder with its own toolchain, and a source archive (this tree with ps3recomp at its pinned commit), each checked by SHA-256; either way the port is built on your machine from your own game (docs/BUILDING.md). You need:

  • the Killzone HD package from your own Killzone Trilogy disc, installed, plus its decrypted EBOOT and data archive, and the decrypted libsre from your own PS3 firmware: what each must be, and how the scripts check them, is in docs/GETTING-FILES.md;
  • Linux x64 with clang, CMake, Ninja, Python 3, SDL2, zlib, glslang and the Vulkan headers; for the Windows exe, the MinGW-w64 sysroot as well;
  • a CPU with AVX2 (x86-64-v3) and a Vulkan GPU (docs/requirements.md).

The short way, from a release's archive or a clone: one command asks where your files are, checks them, and builds with one progress bar; it remembers the paths, so afterwards tools/play.sh is all you need.

tools/install.sh
tools/play.sh

Step by step (what tools/install.sh runs):

git clone --recurse-submodules https://github.com/gustavomorinaga/project-vekta
cd project-vekta
tools/ps3recomp-patched.sh   # ps3recomp v0.19.0 with port/patches applied, in work/
tools/lift.sh                # translates your EBOOT, SPU code and firmware pieces, in work/lift
tools/setup-vfs.sh           # the folder the game runs from, in work/vfs
tools/build.sh               # work/build/KZ1HD
tools/play.sh                # plays in a window

How it works, briefly

  • PPU: the game's PowerPC functions are lifted to C++ by ps3recomp's lifter and compiled with clang; a few hot functions are reimplemented natively (port/kz1hd/native_ppu/).
  • SPU: the SPU programs and the WWS job modules are lifted the same way; SPURS runs on host threads; some SPU jobs run as native C (port/kz1hd/native/).
  • Graphics: the game's RSX command stream is replayed on Vulkan, with PC options (scaling, FSR 1, widescreen) applied around it.
  • Data: the game reads its own archive through its own file system code; movies are decoded with FFmpeg.

More: docs/HOW-IT-WORKS.md. General fixes are offered to ps3recomp upstream.

How AI was used

This project is developed by one person with AI coding agents (Claude Code). The agents did most of the work of reading the game's binary and reference material, writing and testing patches, tools and documentation, and running the builds, with the maintainer setting the goals, playing and checking the game, reviewing what they produced and deciding what is published. Findings are dated; an ASSUMPTION: in the code or the docs is not fact. If you find a statement here that was not verified, please open an issue.

Related projects

Official channels

Project Vekta is made by Gustavo Morinaga: GitHub @gustavomorinaga, and the project site https://gustavomorinaga.github.io/project-vekta/. Code and, when there are any, builds come only from this repository. We never ask anyone to paste a command they were sent into a terminal or PowerShell. Anyone else offering builds, "fixes" or donations in this project's name is not us.

Contributing

Tests on other hardware, reports with logs, and fixes are welcome: CONTRIBUTING.md. The rules for everyone, people and AI coding agents alike, are in AGENTS.md. Security problems and rights holders' reports go privately through the Security tab (SECURITY.md).

Repository layout

PathWhat it holds
port/kz1hd/the program: boot, game clock, window, HLE overrides, the PC menu, native SPU and PPU code
port/patches/numbered patches to ps3recomp and series, the order they apply in
third_party/ps3recomp/the recompiler, a pinned submodule (never edited in place)
tools/patch, lift, build, run and check scripts; data and profiling tools
re/tables the tools read; numbers only
docs/the public documentation; docs/dev/ holds engineering notes
site/, assets/the project page and its images

Licence

The port is MIT (LICENSE): that licence covers the port only, its code, patches, tools and documentation. Third-party parts and credits are in NOTICE.md. Killzone and Killzone HD are (c) Sony Interactive Entertainment; nothing of the game is licensed or included here.