The Last Guardian — native PC port

The Last Guardian — native PC port is a native PC port of The Last Guardian for PlayStation 4 that runs the original game code natively and translates the GPU to Vulkan, offering optional 60 FPS and image filters.

README

The Last Guardian — port nativo para PC

English below · Download · YouTube · Discord

Build

The Last Guardian (PS4, CUSA03627, update 01.03) rodando no PC com imagem, som, controle, mouse e teclado e saves, a 30 FPS estáveis (60 FPS e FPS livre opcionais, experimentais) e sem emulador de CPU. O código original do jogo roda nativo no processador. O sistema do PS4 é reimplementado, e a GPU é traduzida para Vulkan.

Nenhum arquivo do jogo vem com este projeto. Para jogar, você precisa da sua própria cópia, tirada do seu PS4.

Por HayatoG · YouTube @hayatog-dev · Discord discord.gg/UMkdMYZh9g

Menu inicialO menino desperta na caverna
O menino e o TricoRuínas

Capturas na resolução nativa (1920×1080), direto da GPU, no Linux com uma RTX 2060.

Novidades

  • 60 FPS e FPS livre (experimental): launcher → Vídeo → "Taxa de quadros (experimental)", ou TLG_FPS=30|60|unlocked. O padrão continua 30 FPS, como no PS4. Detalhes em docs/60fps.md (#5).
  • Filtros de imagem: anti-aliasing SMAA, nitidez RCAS (FSR 1) ou CAS (AMD) e ajustes de cor (brilho, contraste, saturação, gama), no launcher e ao vivo no menu do jogo (Insert → Imagem) (#2).
  • Mouse e teclado: o mouse gira a câmera (sensibilidade e eixo Y invertido no launcher) e as teclas e botões do mouse podem ser remapeados (#8).
  • Sensor de movimento: o giroscópio do DualShock 4/DualSense funciona direto. Em controles sem sensor, um toque em Share (ou L3+R3) liga o "modo sensor": o analógico esquerdo inclina o controle e X/A sacode. No teclado, T/G inclinam e Y sacode.
  • Analógicos: zona morta de 10% contra drift (TLG_STICK_DEADZONE), e o último controle usado é o que vale.
  • Touchpad sem touchpad: segure View/Select (ou Tab) e mova o analógico direito (ou as setas) para deslizar o dedo; um toque rápido continua sendo clique.
  • Desempenho: o FPS não cai mais com o tempo (as variantes de shader agora se repetem), e transições parciais de imagem repetidas são puladas.
  • Cache de shaders automático: fica em user/cache/, junto dos saves (em Linux e Windows; o cache antigo de ~/.local/share/shadPS4 ou user/user/ é trazido sozinho na primeira partida). A pasta leva a versão do tradutor de shaders, e o cache antigo é apagado sozinho depois de uma atualização. Para recompilar tudo, o launcher tem o botão Limpar cache de shaders (ou ./run_tlg.sh --clear-shader-cache); ele apaga só os shaders compilados deste jogo, nunca saves ou configurações.

Status

ÁreaEstado
Boot, menu, intro e gameplay✅ Funciona; sessões de 10+ minutos sem falhas
Imagem✅ Nativa, 1080p, sem tremores; SMAA, RCAS/CAS e ajustes de cor opcionais
Áudio✅ Com o libSceNgs2.sprx do firmware do seu console
Controle✅ DualSense, DualShock 4, Xbox e 8BitDo via SDL3, com hot-plug; sensor de movimento real ou simulado
Mouse e teclado✅ Câmera no mouse e remapeamento no launcher
Saves✅ Autosave e Continuar
Desempenho✅ 30 FPS, como no PS4; 🧪 60 FPS e livre opcionais, em teste (#5)
Linux✅ Testado (Nobara/Fedora 44)
Windows🧪 Build automático, ainda sem teste em jogo
macOS (Apple Silicon)📋 Planejado (#1)

Desempenho de uma sessão de 10 minutos

FPS, pior quadro e draws por quadro a cada 5 s, tirados do log do port (TLG_FRAME_STATS=1). Gerado por scripts/session_chart.py.

Download

A última versão é gerada pelo GitHub Actions a cada mudança; as anteriores ficam em Releases como histórico:

  • Linux x86-64 (glibc 2.39+: Ubuntu 24.04, Fedora 40, SteamOS 3.6 ou mais novos): tlg-linux-x86_64.tar.gz
  • Windows 10/11 64 bits: tlg-windows-x86_64.zip

Arquivos do jogo necessários

Tudo vem do seu PS4 (GoldHEN + Itemzflow). Nada disso vai no download. Use The Last Guardian CUSA03627 (EUA) com o update 01.03, montado numa pasta só, com o jogo base e o update por cima. São ~25 GB.

ArquivoVem deTamanhoPara quê
eboot.binupdate 01.0389 MBo código do jogo (tem que ser o do 1.03)
sce_module/libc.prx, sce_module/libSceFios2.prxupdate 01.031,5 MBbibliotecas do próprio jogo
sce_sys/ (param.sfo, playgo-chunk.dat, icon0.png, pic0.png, pic1.png)jogo base + update~5 MBmetadados, instalação e a arte do launcher
trico_boot.psarc, trico_001.psarc, trico_002.psarc, trico_003.psarcjogo base2,8 + 5,8 + 5,4 + 6,8 GBconteúdo principal
trico_bootp.psarc, trico_001p.psarc, trico_002p.psarc, trico_003p.psarcupdate 01.03~1,6 GBcorreções do update
trico_enu.psarc / trico_ptb.psarc / trico_esl.psarc / trico_frc.psarc (+ os …p.psarc do update)base + update~280 MB cadavozes e textos: inglês, português, espanhol, francês
sce_discmap.plt, sce_discmap_patch.pltbase, updatepequenosmapa de arquivos (recomendado)

Do firmware do console (opcional, para ter som): libSceNgs2.sprx (372 KB), de /system/common/lib/ do seu PS4. Ele vai na pasta system_lib/ ao lado do executável.

Como montar a pasta:

  1. No Itemzflow, faça o dump do jogo (CUSA03627) e do update (CUSA03627-patch) para um pendrive exFAT.
  2. No PC, copie a pasta do jogo base e depois copie o conteúdo do update por cima, substituindo os arquivos (eboot.bin, sce_module/, sce_sys/).
  3. Confira os tamanhos. Arquivos acima de 4 GB vindos pelo FTP do GoldHEN 2.2 chegam cortados, então use o pendrive.

A lista completa, que também vai nas notas de cada Release, está em docs/ARQUIVOS_NECESSARIOS.md.

PC: placa de vídeo com Vulkan 1.3 (6 GB de VRAM recomendados) e ~25 GB livres.

Como jogar

  1. Extraia o pacote e coloque o libSceNgs2.sprx na pasta system_lib/.
  2. Abra o The Last Guardian, escolha a pasta do jogo e o idioma (inglês, português, espanhol ou francês) e, se quiser, a taxa de quadros e os filtros de imagem. Clique em Jogar.
  3. No jogo, F10 liga o contador de FPS, e Insert (ou R3 + L2 no controle) abre o menu do port.
  4. Controle (PS4/PS5, Xbox) ou teclado e mouse: o mouse gira a câmera, Esc solta o mouse e um clique prende de novo. O layout e o remapeamento estão no README-player.md e na caixa Controles do launcher.

O passo a passo completo, com os problemas mais comuns, está em README-player.md, que também vem dentro do pacote.

Compilar do código-fonte

git clone --recursive https://github.com/HayatoG/tlg_pc.git && cd tlg_pc
cd port && TLG_LTO=OFF bash build.sh   # Linux: SDL3, Vulkan, FFmpeg, Boost, fmt, Zydis, glslang
cd .. && ./tlg_launcher.sh             # ou ./run_tlg.sh pelo terminal

No Windows, o build roda no MSYS2 CLANG64 (port/packaging/windows/README.md). O workflow .github/workflows/build.yml mostra o processo completo nas duas plataformas.

Como funciona

CamadaO que fazBase
LoaderCarrega o eboot.bin 1.03 e liga os módulos do jogo (libc.prx, libSceFios2.prx) e o libSceNgs2.sprx do consolebloodborne_pc, gow3_pc
RuntimeReimplementa as bibliotecas do PS4: kernel, threads, arquivos, controle, áudio, savesgow3_pc + 54 funções novas para o TLG
VídeoTraduz os comandos Gnm e os shaders GCN para Vulkan/SPIR-Vnúcleo de vídeo do shadPS4

Os detalhes técnicos (achados no Ghidra, bugs resolvidos, opções TLG_*) estão em docs/TECNICO.md. O histórico do que foi feito e do que falta está em docs/PROGRESSO.md.

Próximos passos

Roadmap gráfico (#7): testar o 60 FPS no jogo todo (#5), efeitos do jogo (#3), resolução interna (#4) e FSR/DLSS (#6). Também estão nas issues o áudio sem o arquivo do firmware (#11), importar o jogo de PKG (#9), o macOS (#1) e as correções que forem aparecendo.

Créditos e aviso legal

Base de código: gow3_pc (FelipePrado0), bloodborne_pc e shadPS4, todos GPL-2.0, assim como este projeto (LICENSE). Áudio ATRAC9 via LibAtrac9.

Este projeto não tem vínculo com a Sony Interactive Entertainment, a SIE Japan Studio ou a genDESIGN. The Last Guardian é marca da Sony Interactive Entertainment. Nenhum código, arquivo ou arte do jogo é distribuído aqui. O ícone é uma arte original do projeto.


The Last Guardian — native PC port

The Last Guardian (PS4, CUSA03627, update 01.03) running on PC with graphics, audio, controller, mouse and keyboard and saves, at a steady 30 FPS (optional, experimental 60 FPS and unlocked modes) and without a CPU emulator. The game's original code runs natively on the processor. The PS4 system is reimplemented, and the GPU is translated to Vulkan.

No game files come with this project. To play, you need your own copy, dumped from your own PS4.

By HayatoG · YouTube @hayatog-dev · Discord discord.gg/UMkdMYZh9g

The screenshots and the performance chart are at the top of this page.

What's new

  • 60 FPS and unlocked frame rate (experimental): launcher → Video → "Frame rate (experimental)", or TLG_FPS=30|60|unlocked. The default is still 30 FPS, as on PS4. Details in docs/60fps.md (in Portuguese, #5).
  • Image filters: SMAA anti-aliasing, RCAS (FSR 1) or CAS (AMD) sharpening and colour adjustments (brightness, contrast, saturation, gamma), in the launcher and live in the in-game menu (Insert → Image) (#2).
  • Mouse and keyboard: the mouse turns the camera (sensitivity and inverted Y in the launcher), and keys and mouse buttons can be remapped (#8).
  • Motion sensor: the DualShock 4/DualSense gyro works as is. On controllers without one, a tap on Share (or L3+R3) toggles "sensor mode": the left stick tilts the controller and cross/A shakes it. On the keyboard, T/G tilt and Y shakes.
  • Sticks: a 10% dead zone against drift (TLG_STICK_DEADZONE), and the last controller used is the one that counts.
  • Touchpad without a touchpad: hold View/Select (or Tab) and move the right stick (or the arrow keys) to swipe; a quick tap still clicks.
  • Performance: FPS no longer drops over time (shader variants are now reused), and repeated partial image transitions are skipped.
  • Automatic shader cache: it lives in user/cache/, next to the saves (Linux and Windows; the old cache in ~/.local/share/shadPS4 or user/user/ is moved over on the first start). The folder is keyed by the shader recompiler version, and the old cache is deleted on its own after an update. To rebuild everything, the launcher has a Clear shader cache button (or ./run_tlg.sh --clear-shader-cache); it deletes only this game's compiled shaders, never saves or settings.

Status

AreaState
Boot, menu, intro and gameplay✅ Works; 10+ minute sessions without failures
Graphics✅ Native 1080p, no shimmering; optional SMAA, RCAS/CAS and colour adjustments
Audio✅ With libSceNgs2.sprx from your console's firmware
Controller✅ DualSense, DualShock 4, Xbox and 8BitDo via SDL3, with hot-plug; real or simulated motion sensor
Mouse and keyboard✅ Mouse camera and remapping in the launcher
Saves✅ Autosave and Continue
Performance✅ 30 FPS, as on PS4; 🧪 optional 60 FPS and unlocked, being tested (#5)
Linux✅ Tested (Nobara/Fedora 44)
Windows🧪 Automatic build, not yet tested in game
macOS (Apple Silicon)📋 Planned (#1)

Download

The latest release is built by GitHub Actions on every change; older ones stay under Releases as history:

  • Linux x86-64 (glibc 2.39+: Ubuntu 24.04, Fedora 40, SteamOS 3.6 or newer): tlg-linux-x86_64.tar.gz
  • Windows 10/11 64-bit: tlg-windows-x86_64.zip

Required game files

Everything comes from your own PS4 (GoldHEN + Itemzflow). None of it is in the download. Use The Last Guardian CUSA03627 (US) with update 01.03, merged into one folder, with the base game and the update on top. About 25 GB.

FileFromSizePurpose
eboot.binupdate 01.0389 MBthe game code (must be the 1.03 one)
sce_module/libc.prx, sce_module/libSceFios2.prxupdate 01.031.5 MBthe game's own libraries
sce_sys/ (param.sfo, playgo-chunk.dat, icon0.png, pic0.png, pic1.png)base + update~5 MBmetadata, install info and the launcher art
trico_boot.psarc, trico_001.psarc, trico_002.psarc, trico_003.psarcbase game2.8 + 5.8 + 5.4 + 6.8 GBmain content
trico_bootp.psarc, trico_001p.psarc, trico_002p.psarc, trico_003p.psarcupdate 01.03~1.6 GBupdate fixes
trico_enu.psarc / trico_ptb.psarc / trico_esl.psarc / trico_frc.psarc (+ the update's …p.psarc)base + update~280 MB eachvoices and text: English, Portuguese, Spanish, French
sce_discmap.plt, sce_discmap_patch.pltbase, updatesmallfile map (recommended)

From the console firmware (optional, for audio): libSceNgs2.sprx (372 KB), from /system/common/lib/ on your PS4. It goes in the system_lib/ folder next to the executable.

How to build the folder:

  1. In Itemzflow, dump the game (CUSA03627) and the update (CUSA03627-patch) to an exFAT USB drive.
  2. On the PC, copy the base game folder, then copy the update's contents over it, replacing files (eboot.bin, sce_module/, sce_sys/).
  3. Check the sizes. Files over 4 GB sent through GoldHEN 2.2's FTP arrive truncated, so use the USB drive.

The full list, which also goes in the notes of every Release, is in docs/ARQUIVOS_NECESSARIOS.md.

PC: a graphics card with Vulkan 1.3 (6 GB of VRAM recommended) and ~25 GB free.

How to play

  1. Extract the package and put libSceNgs2.sprx in the system_lib/ folder.
  2. Open The Last Guardian, pick the game folder, the language (English, Portuguese, Spanish or French) and, if you like, the frame rate and image filters. Click Play.
  3. In game, F10 toggles the FPS counter, and Insert (or R3 + L2 on a controller) opens the port's menu.
  4. Controller (PS4/PS5, Xbox) or keyboard and mouse: the mouse turns the camera, Esc releases the mouse and a click takes it back. The layout and remapping are in README-player.md and in the launcher's Controls box.

The full guide, with common problems, is in README-player.md, which also ships inside the package.

Building from source

git clone --recursive https://github.com/HayatoG/tlg_pc.git && cd tlg_pc
cd port && TLG_LTO=OFF bash build.sh   # Linux: SDL3, Vulkan, FFmpeg, Boost, fmt, Zydis, glslang
cd .. && ./tlg_launcher.sh             # or ./run_tlg.sh from a terminal

On Windows, the build runs in MSYS2 CLANG64 (port/packaging/windows/README.md). The workflow .github/workflows/build.yml shows the full process on both platforms.

How it works

LayerWhat it doesBased on
LoaderLoads eboot.bin 1.03 and links the game's modules (libc.prx, libSceFios2.prx) and the console's libSceNgs2.sprxbloodborne_pc, gow3_pc
RuntimeReimplements the PS4 libraries: kernel, threads, files, controller, audio, savesgow3_pc + 54 new functions for TLG
VideoTranslates Gnm commands and GCN shaders to Vulkan/SPIR-VshadPS4 video core

Technical notes (Ghidra findings, fixed bugs, TLG_* options) are in docs/TECNICO.md, in Portuguese. The history of what was done and what is left is in docs/PROGRESSO.md.

Next steps

Graphics roadmap (#7): testing 60 FPS through the whole game (#5), game effects (#3), internal resolution (#4) and FSR/DLSS (#6). Audio without the firmware file (#11), importing the game from a PKG (#9), macOS (#1) and new fixes are tracked in the issues as well.

Credits and legal notice

Code base: gow3_pc (FelipePrado0), bloodborne_pc and shadPS4, all GPL-2.0, as is this project (LICENSE). ATRAC9 audio via LibAtrac9.

This project is not affiliated with Sony Interactive Entertainment, SIE Japan Studio or genDESIGN. The Last Guardian is a trademark of Sony Interactive Entertainment. No game code, files or art are distributed here. The icon is original artwork made for this project.