github Press5elect/PSSwanStation build23
PSSwanStation build 23

2 hours ago

PSSwanStation build 23

A PlayStation (PS1) emulator as a PS5 homebrew title: SwanStation, the libretro fork of DuckStation, with a controller interface of its own, drawing with Vulkan (the RADV driver, linked into the title). It needs a jailbroken console with kstuff running.

Important

Piracy is not condoned. This release contains no games, no BIOS files, no console firmware and no decryption keys, and none will ever be provided or linked to. Use only legally obtained backups of games you own, made yourself from your own discs, and BIOS files dumped from hardware you own. Please don't ask for, or post links to, games, BIOS files, firmware or keys in issues or discussions: they will be removed.

Warning

A work in progress. The videos in ES-DE themes have played on a console; the videos in the title's own views and the new layout of Settings were made last and checked on a PC only. "Tested for this release" below says what has been checked where.

What it does

  • A library for the controller: games from the title's folder, USB drives, network shares (SMB, NFS or FTP) and a disc in a USB CD or DVD drive, with covers, descriptions, search, sorting and filters, favourites, and eight views (shelves, a cover grid, a list, and five that stand the covers in space; Aurora layout files work too), or an ES-DE theme drawing the whole library.
  • Game videos: the game under the cursor plays its video after a moment, in the title's own views and in ES-DE themes.
  • Thirty-one themes for the interface, from the PS5 homebrew UI kit, and a swan that lives in the corner.
  • Every setting of the emulator, for every game or for one game alone, and the title's own: picture presets, scaling filters (sharp bilinear, FSR 1, NIS, CAS), a CRT shader, video signals, colours, 120 Hz output with variable refresh rate, frame generation (the title's own, AMD FSR3's optical flow, or MihawkGen).
  • While playing: save states with pictures, fast forward and rewind, cheats, patches and mods, disc change, memory card manager with backups, button remapping and turbo, up to four players, run-ahead, RetroAchievements, netplay for two (an experiment).
  • No BIOS needed: the built-in OpenBIOS starts most games; an original BIOS dumped from your own console is more compatible.
  • Looks after itself: an updater, a safe start (hold L1 and R1), and your files kept outside the title's folder, on a USB drive or on the network share if you want.

Note

Coming from build 18 to 22? Menu, Update fetches this one. From build 14, 16 or 17, copy this release's PPSA99248 folder over the old one by FTP. Your games, saves, states, covers and settings stay either way. Settings has new sections in this build; every value you set is kept.

New in build 23

  • ES-DE themes. Themes made for ES-DE (es-de.org) can draw the whole library: the theme's game list (text list, grid or carousel), its pictures (PNG, JPEG, SVG), fonts, texts, the game's details, badges, a clock and the help line. Choose one under Square, View ("ES-DE: "). Settings, Library, "ES-DE themes" chooses its variant, colour scheme, font size, aspect ratio and language, and "Get themes" downloads one from the list ES-DE's own downloader reads, from its author's repository. Themes are their authors' work under their own licences and are not in this release.
  • ES-DE's media folders are found wherever they are: covers, screenshots, marquees, mix images and videos in ES-DE's layout (media/, downloaded_media/psx/), in a games folder itself (roms/psx/videos), on the console, a USB drive or a network share, and Batocera's images/ and videos/ names.
  • Game videos. When the cursor stays on a game for a moment, its video plays: in the cover's place in Shelves, List and the game's details, behind the covers in Covers and the views in space, and wherever an ES-DE theme puts it, with its sound under the lowered menu music. Settings, Library, Videos: on or off, the sound, and the wait (1, 2, 3 or 5 seconds). The console refuses a homebrew title its own video player, so PSSwanStation decodes the videos itself with FFmpeg 9.0.2's MP4 demuxer and H.264, AAC and MP3 decoders (LGPL-2.1-or-later; their source is attached).
  • Settings in nine sections instead of sixteen: Library, Look, Sound, Picture, Controls (controllers, shortcuts and rewind), Games and saving (with RetroAchievements), Emulator (all of the emulator's own sections in one list), System and About, with shorter descriptions. L2 and R2 jump between the parts of a long list. Settings is first in the menu, and Square in the library has "Game videos" and "More library settings".
  • Mods: text files in mods/ that change a game a feature at a time without touching its disc image (patches checked against the bytes they expect, GameShark codes, emulator options), each feature switched on and off under Cheats in the game's details. The format is in MANUAL.md.
  • The game's own widescreen (Settings, Picture): with the picture set wide, a game's widescreen patch from the patch database is used instead of the general widescreen hack.
  • Adaptive resolution (Settings, Picture, off at first): while a game cannot keep its speed, the resolution scale is lowered a step at a time, and raised again once it can.
  • PS5 Forwarder support: --rom <path> starts a game, --exit-after-game closes the title with it.
  • RetroAchievements: each request names PSSwanStation and its build (its User-Agent); playback of a recording is refused in hardcore mode; the start message says Hardcore or Softcore; an unlock made while the server cannot be reached is kept and sent after the next sign-in.
  • A LibCrypt-protected disc image without its .sbi says so, names the file it needs and where it goes, and offers to start anyway.
  • A disc in the drive wears its cover in the Disc Drive tab.
  • The title's own HTTPS client also reads Mozilla's root certificates (certifi 2026.07.22) beside the console's list.
  • PRIVACY.md: what leaves the console, where to, and when; what is kept.

Everything new in builds 15 to 22 is in the build 20, build 21 and build 22 releases and in CHANGELOG.txt.

Tested for this release

What On the console Seen with
Starting games from the title's folder and from an SMB share, sound, picture, controller, covers, search, cheats, save states works builds 9 to 22
RetroAchievements; the updater works builds 10 and 18
USB disc drive, playing from it; MihawkGen and FSR3 optical flow frame generation works builds 21 and 22
ES-DE themes: the list of 71 themes fetched over HTTPS, a theme downloaded and drawn works build 23's test builds
ES-DE media on an SMB share: 8,824 files found in the games folder's own videos/, covers/... folders works build 23's test builds
Videos in an ES-DE theme, decoded by FFmpeg works build 23's test build 9
Videos in the title's own views (Shelves, Covers, List, the views in space, the details); the new Settings checked on a PC
Mods, the game's own widescreen, adaptive resolution, the forwarder arguments, the RetroAchievements changes checked on a PC
USB controllers, netplay not tried yet

On a PC (the same frontend on the same Vulkan code paths): the title's whole scripted run (menus, details, cheats, a game, the in-game menu, a save state); ES-DE themes drawn and compared by eye with ES-DE (Art Book Next, Epic Noir Revisited, and test themes for the grid and the carousels), and the theme parser's test suite under AddressSanitizer and UndefinedBehaviorSanitizer; videos decoded by FFmpeg playing in every built-in view, looping and switching as the cursor moves; the new Settings walked section by section.

Known issues

  • The videos in the title's own views have not run on a console yet. Should one not play, the boot log's video: lines say why, and Settings, Library, "Game videos" switches them off.
  • Only MP4 files with 8-bit H.264 pictures play (what scrapers make); a 10-bit or HEVC video leaves the picture in its place.
  • ES-DE themes: ratings are not shown, the system view is not used, and theme animations do not play. Themes are large (some hundreds of megabytes); videos and sounds in them are left out when downloaded.
  • A console turned on with a disc in a USB drive cannot turn itself off afterwards; hold its power button. Start the console with the drive empty.
  • A drive that does not let PSSwanStation send it SCSI commands gives 2048 bytes a sector: games start, but without videos, XA sound and CD music.
  • Compiling a shader preset on the console may take a while and some are too slow at 4K.
  • Frame generation: a thin fringe where something moves across a background that moves another way.
  • Should the screen stay dark after choosing 120 Hz, start PSSwanStation holding L1 and R1, wait ten seconds, close it and start it again.
  • USB controllers have not been seen to work on a console yet. Netplay is an experiment that has only run between two PCs.

Install or update

  1. Unpack the ZIP and copy the complete PPSA99248 folder to /data/homebrew/ on the console (FTP), so that /data/homebrew/PPSA99248/eboot.bin exists, and let your homebrew loader register it.
  2. Copying over an earlier build keeps your games, saves, states, covers and settings: the ZIP holds only the program's files. Menu, "Update" fetches the next one.
  3. Your own legally obtained backups go in games/ (or on a USB drive, or a network share named in network.cfg). A BIOS dumped from your own console may go in bios/. None is included, and none ever will be.
  4. Once, for cheats and patches: Settings, Games and saving, "Fetch the newest cheat database".
  5. Read LEGAL.txt, README.txt and PRIVACY.md in the folder.

Reporting problems

Say what you did, what you saw, which build (top right of the library) and which firmware. logs/ in the title's folder keeps the last runs: copy them before starting the title again. Never attach game files, BIOS files, firmware or keys, and please leave game titles out: "a 30 fps racing game" is enough.

Source

This ZIP was built from PSSwanStation commit 6a78da1acf7de78b4f95e66f0f3acea311dd45f8, which is this release's tag. The title is distributed under the GNU General Public License, version 3, as a whole. The source of every part at the revision it was built from is attached (SOURCES.txt lists the archives, SHA256SUMS their digests); licenses/ in the title's folder holds each part's licence and licenses/components.json the revisions. FFmpeg is linked statically and unmodified, configured by ps5/tools/build-ffmpeg.sh (no GPL or non-free parts); with the title's whole source published, it can be relinked with a changed FFmpeg. The revisions of the RADV driver, PS5_Vulkan and the interface kit used here are not on GitHub: their attached archives are their published source, and SOURCES.txt says which GitHub commit each is built on.

Build

Component Version
PSSwanStation 6a78da1acf7de78b4f95e66f0f3acea311dd45f8 (SwanStation at libretro dd48056, plus the ps5 folder)
PS5_Vulkan (link recipe, libc.prx) b7dad6fefd89 (GitHub's 252bf91 and two commits; in the attached archive)
PS5_PayloadSDK fork (platform layer) b5efad528e0a
RADV, from PS5_Mesa 5e99244a5567: GitHub's 47e9eb61ee7 and two commits, in the attached archive (built against the SDK fork at b83202be73e9)
Interface kit PS5_VKHomebrewUI ea00f4febd38: GitHub's 2188642afbcc and one commit (an image may turn inside its box), in the attached archive
FFmpeg 9.0.2 (946fcce07b6d): libavformat, libavcodec, libavutil
pugixml, nanosvg 1.16; nanosvg vendored (see licenses/)
Mozilla's root certificates certifi 2026.07.22
libsmb2 fc710a3ebd58
libnfs 761323646431
rcheevos v12.5.0
mbedTLS 3.6.7 (068ff080b369)
glslang 16.6.0
Lapy helper PS5-Lapy-JB-Daemon c3bdfe3a3993, built with the payload SDK v0.42
Game database and libretro cheats libretro-database bf825e3ec48d
crt-guest-advanced libretro slang-shaders e1d75632a205
MihawkGen, FSR3 optical flow, NIS, CAS, QR Code generator, USB pad decoder, clock and pacing wait vendored, as in build 22 (see licenses/)

SHA-256 of PSSwanStation-PS5-PPSA99248-build23.zip: 0ecaf7623fa40960bafefd7db8d736d134273b4df6149d6ebf0fade889675eba

PSSwanStation is an unofficial port by Press5elect. It is not affiliated with or endorsed by Sony Interactive Entertainment, the libretro team, the DuckStation project, ES-DE or FFmpeg. "PlayStation" and "PS5" are trademarks of Sony Interactive Entertainment. Vulkan is a registered trademark of the Khronos Group; the RADV port in this title is not a conformant product. FFmpeg is a trademark of Fabrice Bellard.

Don't miss a new PSSwanStation release

NewReleases is sending notifications on new releases.