diff --git a/README.md b/README.md index e7ef4be..63afe5d 100644 --- a/README.md +++ b/README.md @@ -1,79 +1,253 @@ -
![]()
+Unofficial RPCS3 Port for PlayStation 5.
+ +
+
+
+
+
+
+
+
+
Original KB-RPCS3 icon (alpha 0.1.0). Not a screenshot of gameplay.
+ +## System requirements + +**To run a build (on the console):** + +| Requirement | Notes | |---|---| -| [INSTALL.md](INSTALL.md) | What you need on the console, and how a build is installed | -| [BUILDING.md](BUILDING.md) | Building from source, applying the RPCS3 patch series | -| [COMPATIBILITY.md](COMPATIBILITY.md) | Tested games and requirements | -| [KNOWN_ISSUES.md](KNOWN_ISSUES.md) | Known problems and limitations | -| [RELEASE_NOTES-0.1.0.md](RELEASE_NOTES-0.1.0.md) | What this release contains | -| [LICENSING_STATUS.md](LICENSING_STATUS.md) | Licences, and why there is no binary yet | -| [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) | Credits and licences of everything KB-RPCS3 builds on | +| Jailbroken PS5 | Developed and tested on a PS5 Slim, firmware 13.60 | +| Homebrew enabler | etaHEN (FTP on port 1337, ELF loader on port 9021) | +| Kernel extension | kstuff lite — load **once** per console boot | +| Folder-title loader | [ShadowMountPlus](https://github.com/drakmor/ShadowMountPlus) for titles under `/data/homebrew/` | +| Your own PS3 firmware | `PS3UPDAT.PUP` from Sony's PS3 update page | +| Your own games | PS3 discs as `.iso`/folders; PSN titles as `.pkg` + `.rap` | + +KB-RPCS3 includes none of the above. Other firmware versions and loaders may work but +are untested. + +**To build from source:** a Linux/arm64 host with the PS5 toolchain — see +[Building from source](#building-from-source). + +## Installation + +**Alpha 0.1.0 has no downloadable build.** Installation today means building it +yourself from source, for your own use, then deploying the title folder. The full +procedure is in [INSTALL.md](INSTALL.md); in short: + +1. Build the title (see [Building from source](#building-from-source)). +2. Copy the built `dist/PPSA99303/` folder to `/data/homebrew/PPSA99303/` on the + console (for example over etaHEN's FTP server). +3. Let ShadowMountPlus register it — **KB-RPCS3** appears on the home screen. +4. Put `PS3UPDAT.PUP` in `rpcs3/` inside the title folder and use **Install → PS3 + firmware**. +5. Add games to `rpcs3/games/` (disc images) or `packages/` + `exdata/` (PSN), then + **Install → Packages**. + +Do not redistribute a build you make: a combined binary cannot be distributed today +([why](#licensing)). + +## Performance and known limitations + +- **CPU-bound, not GPU-bound.** Demanding games are limited by how fast the PS5 runs + emulated SPU code. GTA IV runs at roughly **13–27 FPS while driving**. +- **First-visit stutter.** Entering a new area compiles SPU code and shaders; both are + cached, so later visits are smoother. +- **Normal speed needs Clocks scale 100 and Frame limit Auto.** Per-game configs live + in `rpcs3/custom_configs/`; other values change how fast games run. +- **Native TLS does not work on the PS5 yet** — KB-RPCS3 uses emulated TLS. Do not + build with `-fno-emulated-tls`. +- **It is an alpha:** expect crashes. Keep a known-good build to fall back to + ([ROLLBACK.md](ROLLBACK.md)). + +The complete list is in [KNOWN_ISSUES.md](KNOWN_ISSUES.md). + +## Building from source + +KB-RPCS3 has two separately licensed parts, combined only at build time on your own +machine: + +| Part | Folder | Licence | +|---|---|---| +| **RPCS3 + the KB-RPCS3 core patches** | `port/rpcs3-patches/`, applied to upstream RPCS3 | GPL-2.0-only (RPCS3's licence) | +| **The PS5 title shell** (home screen, settings, installers, platform glue) | `app/` | mixed — MIT base, GPL-3.0-or-later UI and title code (`app/LICENSING.md`) | + +```bash +# 1. Fetch and patch upstream RPCS3 (revision 46aee28f8, 47 patches) +port/apply-rpcs3-patches.sh /path/to/rpcs3 + +# 2. Build the emulator core (about two hours on 8 cores) +SRC_DIR=/path/to/rpcs3 BUILD_DIR=/path/to/rpcs3-build JOBS=8 port/rpcs3-build.sh rpcs3_ps5 + +# 3. Build the PS5 title +APP_DIR=/path/to/app-build-copy RPCS3_BUILD_DIR=/path/to/rpcs3-build tools/vm-build-app.sh +``` + +The build scripts currently expect the PS5 toolchain and dependencies at fixed paths +inside a build VM; [BUILDING.md](BUILDING.md) documents the exact layout, the +dependencies and their licences, and the off-by-default experimental options. Read +[Licensing status](LICENSING_STATUS.md) before distributing anything you build. ## Credits -KB-RPCS3 exists because of **RPCS3** — the PlayStation 3 emulator by the RPCS3 team and its many -contributors (https://github.com/RPCS3/rpcs3). It is built on the PS5 homebrew work of **Mihawk** -(PS5_Vulkan, the PS5 Vulkan Template, the PS5 platform layer), **BlackBearReloaded** (ps5-homebrew-ui), -the **ps5-payload-dev** SDK authors, **Sascha Willems** (Vulkan examples) and the Mesa/RADV developers. -Full credits: [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). +KB-RPCS3 stands entirely on other people's work: -## Licence +- **[RPCS3](https://github.com/RPCS3/rpcs3)** — the PlayStation 3 emulator, by the + RPCS3 team and its many contributors. KB-RPCS3 is a port of it and does not exist + without it. +- **Mihawk** — PS5_Vulkan (RADV/Mesa for PS5, the link recipe and `libc.prx`), the PS5 + Vulkan Template and the PS5 platform layer. +- **BlackBearReloaded** — the `ps5-homebrew-ui` kit the home screen is drawn with. +- **ps5-payload-dev** — the PS5 payload SDK. +- **Sascha Willems** — the Vulkan example base the template builds on. +- **The Mesa/RADV developers** — the Vulkan driver. -This repository contains separately licensed parts: the RPCS3 patch series is GPL-2.0-only, like RPCS3; -the PS5 title shell in `app/` is MIT and GPL-3.0-or-later per file. See -[LICENSING_STATUS.md](LICENSING_STATUS.md), `app/LICENSING.md` and `LICENSES/`. +Full authorship and licence details are in +[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). -No PS3 or PS5 firmware, games, keys or other Sony files are included. Use your own legally obtained -firmware and games. +## Licensing + +KB-RPCS3 is made of **separately licensed parts**: + +- The RPCS3 patch series (`port/rpcs3-patches/`) is **GPL-2.0-only**, like RPCS3. +- The PS5 title shell in `app/` is **MIT** and **GPL-3.0-or-later** per file. +- KB's own scripts are GPL-3.0-or-later unless a file says otherwise. + +Because GPL-2.0-only and GPL-3.0 code cannot be combined in a distributed program, +**this release ships source only and no binary**. The reasoning, the component +inventory and the route to a lawful binary are in +[LICENSING_STATUS.md](LICENSING_STATUS.md); the licence texts are in +[`LICENSES/`](LICENSES/) and [`COPYING`](COPYING); per-file details are in +[`app/LICENSING.md`](app/LICENSING.md) and +[`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). + +No PS3 or PS5 firmware, games, keys, system files or other Sony content is included. +Use your own legally obtained firmware and games. + +## Contributing + +Contributions are welcome once there is something concrete to work on. Read +[CONTRIBUTING.md](CONTRIBUTING.md) first, then use the issue templates for +[bug reports](.github/ISSUE_TEMPLATE/bug_report.yml) and +[feature requests](.github/ISSUE_TEMPLATE/feature_request.yml), or open a pull request +with the [template](.github/PULL_REQUEST_TEMPLATE.md). Please report vulnerabilities +privately as described in [SECURITY.md](SECURITY.md), and follow the +[Code of Conduct](CODE_OF_CONDUCT.md). Planned work is in [ROADMAP.md](ROADMAP.md). + +## Disclaimer + +KB-RPCS3 is an **unofficial, non-commercial** project. It is **not** affiliated with, +authorised by, endorsed by or sponsored by Sony Interactive Entertainment Inc. or the +RPCS3 project. "PlayStation", "PlayStation 3", "PS3" and "PS5" are trade marks of Sony +Interactive Entertainment Inc.; "RPCS3" is the name of the RPCS3 project. No Sony +logo, firmware, key or system file is included, and no endorsement by any party is +implied. KB-RPCS3 does not provide, condone or support piracy — use your own legally +obtained games and firmware. diff --git a/RELEASE_NOTES-0.1.0.md b/RELEASE_NOTES-0.1.0.md index 82a60a8..b21e970 100644 --- a/RELEASE_NOTES-0.1.0.md +++ b/RELEASE_NOTES-0.1.0.md @@ -1,48 +1,127 @@ -# KB-RPCS3 Alpha 0.1.0 — release notes (2026-10-09) +# KB-RPCS3 Alpha 0.1.0 -The first public release of KB-RPCS3, an unofficial port of the RPCS3 PlayStation 3 emulator to -jailbroken PS5 consoles. +[](https://github.com/kamb205/KB-RPCS3/releases/tag/v0.1.0-alpha) +[](https://github.com/kamb205/KB-RPCS3) +[](https://github.com/kamb205/KB-RPCS3) + +KB-RPCS3 runs [RPCS3](https://rpcs3.net), the open-source PlayStation 3 emulator, as a +native PS5 homebrew title. This is its **first public release**: the complete source of +the port, the RPCS3 patch series, the PS5 title shell and the build instructions. + +**This is a source release. There is no downloadable PS5 package yet** — a binary that +combines RPCS3's GPL-2.0-only core with GPL-3.0 PS5 components cannot be distributed, +and the current combined executable has not passed final PS5 testing. See +[Licensing](#licensing) and `LICENSING_STATUS.md` in the source. + +> **Unofficial.** Not made, endorsed or supported by the RPCS3 project or by Sony +> Interactive Entertainment. "PlayStation", "PS3" and "PS5" are trade marks of Sony +> Interactive Entertainment Inc. ## Downloads -| File | What it is | +| Asset | What it is | |---|---| -| `KB-RPCS3-0.1.0-Source.tar.gz` | The complete source release: RPCS3 patch series, PS5 title shell, tools, documentation, licences | -| PS5 package | **Not available yet.** Distribution of a PS5 binary is pending a licence resolution; see `LICENSING_STATUS.md`. | +| `KB-RPCS3-0.1.0-Source.tar.gz` | The repository at tag `v0.1.0-alpha` — RPCS3 patch series, PS5 title shell, tools, licences and documentation | +| `SHA256SUMS` | SHA-256 checksums for the assets above | +| PS5 package | **Not available.** No binary is published, tested or promised | -## What KB-RPCS3 can do +## Key features -- Run RPCS3's emulator core as a native PS5 homebrew title (`PPSA99303`, shown as **KB-RPCS3**). -- Home screen with Games, Install, Settings and System tabs; global and per-game settings; recommended - settings for games in RPCS3's database; PS5 home-screen tiles for games. -- Install PS3 firmware, PKG games and RAP licences on the console. -- Tested on one PS5 (firmware 13.60): LIMBO and WWE 12 playable; GTA IV playable at roughly - 13–27 FPS when driving, at normal game speed. +- **RPCS3 on the console** — the emulator core built for the PS5, rendering through + Mesa/RADV Vulkan directly on the hardware. +- **Native home screen** (title `PPSA99303`, shown as **KB-RPCS3**) with **Games**, + **Install**, **Settings** and **System** tabs. +- **Global and per-game settings**, with recommended settings from RPCS3's public + configuration database when available. +- **Installers** for PS3 firmware (`PS3UPDAT.PUP`), PSN packages (`.pkg`) and licences + (`.rap`). +- **PS5 home-screen tiles** that launch a game directly. +- **DualSense** controls, vibration, save data and trophy notifications. +- **Benchmark tooling** that records the effective game speed, so results can be shown + to have been taken at normal speed. -## New in this release +## What works -- KB-RPCS3 name, version and an original icon. -- The emulator logs the effective game speed at boot (`PS5 SPEED`) and the measured emulated-time ratio - and vblank rate while a game runs (`PS5 TIMING`), so recorded results show they were taken at normal - speed. -- Benchmark scripts use normal speed by default; the uncapped 300 % mode needs an explicit opt-in. -- Experimental SPU options, all **off by default** and not yet measured: LLVM insert-select, hot-SPU - CPU pinning, narrow local-store stores, plus LLVM IR verification and a narrow-store equivalence check. -- Build fixes for LLVM 22 and for clang 18 with `-Werror=return-type`. +Everything in the feature list above was working in the development build this release +is based on. The Alpha 0.1.0 source adds speed/timing logging and off-by-default +experimental options on top of that build; that exact source and the new branding have +**not** yet been run on a console. -## Not in this release +## Tested games -- No PS5 binary (licensing). -- No performance improvement is claimed: the experimental options are untested at normal speed. -- Native TLS: it does not work on the PS5 yet; the release uses emulated TLS. +Verified on **one PS5 Slim** (firmware 13.60, etaHEN, kstuff lite, ShadowMountPlus) at +**normal game speed** (Clocks scale 100, Frame limit Auto): -## Testing status +| Game | Serial | Result | +|---|---|---| +| **LIMBO** | `HPEB00564` | Playable — picture, sound and controls. | +| **WWE '12** | `BLES01439` | Playable — menus near 60 FPS; matches slow down during big moves (CPU-limited). | +| **Grand Theft Auto IV** | `BLES01128` | Boots and plays, with substantial performance limitations — roughly 13–27 FPS when driving, occasional audio stutter. Needs "SPU XFloat Accuracy: Accurate" or cars fall through the road. | -The games above were tested with the development build this release is based on. The Alpha 0.1.0 -source adds logging and off-by-default options on top of it; that exact source and the new branding -have **not** yet been run on a console. +Every other PS3 game is **untested**. GTA IV results recorded with **Clocks scale 300** +(around 20–22 FPS) count as benchmarks only — in that mode the game runs about three +times too fast and they are **not** normal-speed performance. + +## Important limitations + +- **No PS5 binary.** Licence conflict; see below. +- **Alpha 0.1.0 has not finished console regression testing.** +- **No performance improvement is claimed** — the experimental SPU options are off by + default and unmeasured at normal speed. +- **CPU-limited.** Demanding games are bound by emulated SPU performance, not the GPU. +- **First-visit stutter** while SPU code and shaders compile; both are cached afterwards. +- **Native TLS does not work on the PS5 yet** — emulated TLS is used. + +## Installation and build + +There is nothing to install from this release on the console. Build it yourself, for +your own use: + +```bash +port/apply-rpcs3-patches.sh /path/to/rpcs3 +SRC_DIR=/path/to/rpcs3 BUILD_DIR=/path/to/rpcs3-build JOBS=8 port/rpcs3-build.sh rpcs3_ps5 +APP_DIR=/path/to/app-build-copy RPCS3_BUILD_DIR=/path/to/rpcs3-build tools/vm-build-app.sh +``` + +Then deploy `dist/PPSA99303/` to the console as described in `INSTALL.md`. Do not +redistribute a build you make: a combined binary cannot be distributed today. Full +details, dependencies and the toolchain layout are in `BUILDING.md`. + +## Requirements + +- A **jailbroken PS5** (developed on a PS5 Slim, firmware 13.60) with a homebrew + enabler (etaHEN), **kstuff lite** and [ShadowMountPlus](https://github.com/drakmor/ShadowMountPlus). +- Your own legally obtained **PS3 firmware** and **games**. +- A **Linux/arm64 build host** with the PS5 toolchain for building from source. + +KB-RPCS3 includes none of the firmware, games, keys or tools above. + +## Known issues + +See `KNOWN_ISSUES.md` in the source for the full list, including: + +- The build is tied to the development machine's fixed toolchain paths. +- Native TLS is broken on the PS5; do not build with `-fno-emulated-tls`. +- The console's own screenshot feature captures black while KB-RPCS3 is open; L3 + R3 on + the home screen saves a screenshot to `rpcs3/screenshots/` instead. +- This is an alpha: expect crashes. Keep a known-good build to fall back to + (`ROLLBACK.md`). ## Credits -RPCS3 by the RPCS3 team and contributors; PS5 homebrew stack by Mihawk, BlackBearReloaded, -ps5-payload-dev and the Mesa/RADV developers. See `THIRD_PARTY_NOTICES.md`. +KB-RPCS3 is a port and would not exist without **[RPCS3](https://github.com/RPCS3/rpcs3)** +by the RPCS3 team and contributors, **Mihawk** (PS5_Vulkan, the PS5 Vulkan Template and +the PS5 platform layer), **BlackBearReloaded** (`ps5-homebrew-ui`), **ps5-payload-dev** +(the PS5 payload SDK), **Sascha Willems** (Vulkan example base) and the **Mesa/RADV +developers**. Full authorship and licence details are in `THIRD_PARTY_NOTICES.md`. + +## Licensing + +This release is made of **separately licensed parts**: the RPCS3 patch series +(`port/rpcs3-patches/`) under RPCS3's **GPL-2.0-only**; the PS5 title shell (`app/`) +under **MIT** and **GPL-3.0-or-later** per file. GPL-2.0-only and GPL-3.0 code cannot +be combined in one distributed program, which is why this release is source only. +See `LICENSING_STATUS.md`, `app/LICENSING.md`, `LICENSES/` and `COPYING`. + +No PS3 or PS5 firmware, games, keys, system files or other Sony content is included. +Use your own legally obtained firmware and games. diff --git a/SOURCE_RELEASE.md b/SOURCE_RELEASE.md index 5252aa6..7c90780 100644 --- a/SOURCE_RELEASE.md +++ b/SOURCE_RELEASE.md @@ -11,7 +11,10 @@ | `port/*.sh`, `port/*.py` | build helper scripts | GPL-3.0-or-later | | `app/` | the PS5 title shell | see `app/LICENSING.md` | | `tools/` | console helper payloads and scripts, standalone TLS probes | per file header | +| `assets/branding/` | original KB-RPCS3 logo, banner, social-preview and release artwork, with SVG sources and render script | GPL-3.0-or-later | +| `.github/` | issue and pull-request templates | — | | `LICENSES/`, `COPYING` | licence texts | — | +| root `*.md` | documentation (`README`, `BUILDING`, `INSTALL`, `LICENSING_STATUS`, `KNOWN_ISSUES`, `COMPATIBILITY`, `THIRD_PARTY_NOTICES`, `CONTRIBUTING`, `SECURITY`, `CODE_OF_CONDUCT`, `ROADMAP`, `PERMISSION_REQUESTS`, `ROLLBACK`, release notes, this file) | — | ## The RPCS3 patch series @@ -33,3 +36,12 @@ command and builds cleanly. The complete Alpha 0.1.0 source has **not** been rebuilt end to end. - No patch or file contains personal names, e-mail addresses, home-directory paths or private network addresses. Archive entries carry neutral owner names. + +## Presentation update (2026-10-09) + +Repository presentation was added on top of the source release: the README, the community files +(`CONTRIBUTING.md`, `SECURITY.md`, `CODE_OF_CONDUCT.md`, `ROADMAP.md`), the `.github/` templates and the +original `assets/branding/` artwork. These are documentation, configuration and graphics only — **no +patch, source or build input changed**, so the patch-series verification above still holds. The +distribution archive is regenerated from the `v0.1.0-alpha` tag after these changes, and its SHA-256 is +published with the release.