PSCapture

PSCapture

Turn a jailbroken PlayStation 5 into a real capture card for your PC.
The console screen is streamed over your LAN and shows up in Discord, OBS or ffmpeg
as a virtual camera called PS5 Capture.

No capture card. No Remote Play. No cloud. Just your console and your network.
by fstat13

๐Ÿ“– How to use it โ€” step-by-step guide  ยท  ๐Ÿ‡ฎ๐Ÿ‡น Guida passo-passo in italiano  ยท  ๐Ÿ”ง Build from source  ยท  ๐Ÿ‡ฎ๐Ÿ‡น Build dai sorgenti

๐ŸŒ Illustrated guide: English  ยท  Italiano

Release Stars License Platform

--- ## โœจ What you get - **One executable** โ€” `PSCapture.exe` carries the console payload inside itself: it installs the virtual capture driver, pushes the payload to the PS5, registers it in the autoloader and starts the stream. One window, one button. - **A real camera device** โ€” a DirectShow source filter named *PS5 Capture*: pick it in Discord calls, record it in OBS at 1920x1080, open it from ffmpeg. - **Low latency** โ€” frames are read straight from the console's display engine (NV12 over TCP); nothing is re-encoded on the console. - **Live tuning** โ€” chroma `gain` and horizontal `shift` knobs, saved in `pscapture.ini`, applied without restarts. ## ๐Ÿš€ Quick start 1. **Jailbreak your PS5** โ€” you need the standard setup: a payload loader on TCP `9021` (`elfldr`-style), anonymous FTP on TCP `2121`, and optionally `pldmgr` so the payload starts on every boot. 2. **Double-click `PSCapture.exe`** (one file โ€” the console payload and the Windows driver travel inside it). Accept the UAC prompt. If your PS5 isn't at `192.168.0.36`, type its IP in the *PS5 IP* field and press *Apply*. 3. **Watch the log pane** โ€” the app installs the capture driver (first run only), sends the payload to the console and connects by itself. The status pill turns green: `STREAMING`. The console shows the system toast **PSCapture is streaming on:PORT**. 4. In Discord (*Settings โ†’ Voice & Video โ†’ Camera*) or OBS pick the camera **PS5 Capture**. Stuck on *โ€œIN ATTESA DELLA PS5โ€*? Console off, not jailbroken yet, or wrong IP โ€” the app retries by itself every 2 seconds. ๐Ÿ“– Step-by-step with every log line explained: [`docs/GUIDE.md`](docs/GUIDE.md) โ€” or the [illustrated HTML guide](docs/index.html). ๐Ÿ”ง What the app does under the hood when you press Start: [`docs/INSTALLER.md`](docs/INSTALLER.md). ## ๐Ÿ”’ Verify the download The release binaries are built from this repository's sources. Every release carries a `SHA256SUMS.txt` โ€” check it before running the exe: ``` certutil -hashfile pscapture.exe SHA256 (Windows) sha256sum -c SHA256SUMS.txt (Linux/macOS) ``` And you never have to trust any binary: the whole toolchain is documented in [`docs/BUILD.md`](docs/BUILD.md) โ€” rebuild `pscapture.exe` from the sources yourself and compare. ## ๐Ÿ“ฆ Repository layout ``` payload/ PS5 side: display-engine reader + NV12 streamer (pscapture.elf) pc/ PSCapture.exe โ€” GUI + installer + payload deployer + feeder pc/ps5cam.c the virtual capture-card driver (DirectShow source filter) pc/shm.h shared-memory contract between feeder and driver docs/ guides: HTML, step-by-step, build, installer, RE, log ``` ## ๐Ÿ”ง Build Full walk-through (toolchain install, verification, gotchas): **[`docs/BUILD.md`](docs/BUILD.md)**. The short version, in the **mandatory order** (the `.res` embeds the driver and the payload as they are on disk): **Console payload** โ†’ `payload/pscapture.elf` (needs Docker + the PS5 payload SDK image; any tag works, here `ps5sdk:18`): ```bash docker run --rm -v "$PWD/payload:/payload" -w /payload ps5sdk:18 make ``` **PC side** โ†’ `pscapture.exe` + `pscapture.dll` (needs MinGW-w64 with `gcc` + `windres`): ```bash cd pc cp ../payload/pscapture.elf . # gets embedded as-is # 1) the capture-card driver (-static is mandatory, see BUILD.md) gcc -O2 -shared -static -static-libgcc -o pscapture.dll ps5cam.c \ -lole32 -loleaut32 -luser32 -ladvapi32 -lws2_32 # 2) resources = icon + payload + driver windres pscapture.rc -O coff -o pscapture.res # 3) the app (one self-contained executable) gcc -O2 -mwindows -o pscapture.exe pscapture.c pscapture.res \ -lws2_32 -lshell32 -ladvapi32 -luxtheme ``` Rebuild rule: **DLL โ†’ windres โ†’ exe, every time** โ€” rebuilding only the exe ships the old driver inside it. ## โ“ FAQ **Does it work on firmwares older than 13.60?** The PC side works everywhere. The console payload was built and tuned on **13.60**; other firmwares may need a small porting pass (re-finding the same display-engine anchors). Open an issue with your firmware version. **720p in Discord but 1080p in OBS?** That's Discord's voice engine โ€” it requests 1280x720 from every camera (capture cards included). Use OBS for full quality, or Discord screen-share (up to 1080p60 with Nitro). **Remote Play involved?** Never. The payload reads the display engine on the console itself. ## ๐Ÿ”ฌ Reverse engineering The whole story of how the console's display engine was mapped โ€” the scan-out ring, the pan, the chroma plane, the kernel-side notes and the delivery format for kernel payloads โ€” lives in [`docs/REVERSE_ENGINEERING.md`](docs/REVERSE_ENGINEERING.md). The bench used to get there is in [`tools/`](tools/): the library dumper payload, the disassembly hunters, the deterministic frame renderers. > No Sony binaries are distributed with this project: `tools/dumplib/` extracts > what you need **from your own console** to reproduce every finding. ## ๐Ÿ“„ License **Source-available**, copyright ยฉ 2026 **fstat13**. You may read and study the code and use the official binaries for personal projects; redistribution, reuse in other projects and commercial use are not allowed without permission. See [LICENSE](LICENSE) for the full terms.