Skip to content

About

🎮 RetroArch Homebrew for the PS5 that supports 33 cores & 44 systems.

Resources

Stars

320 stars

Watchers

7 watching

Forks

Latest commit

 

History

401 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RetroArch for PS5

Your games on the TV. Your library in your hands.

33 native cores · RetroArch & EmulationStation · A local WebUI

Download · Get started · Supported systems · What’s new

Important warning

PS5 RetroArch is a passion project, not a piracy project.

It exists so you can play the games you own on the console you own.

  • Piracy is not condoned.
  • No games, BIOS files, console firmware or decryption keys are included, and they never will be.
  • Use only legally obtained backups of games you own, made yourself from your own discs, cartridges or digital purchases.
  • Use only BIOS and firmware files dumped from hardware you own.
  • Requests for, or links to, games, BIOS files, firmware or keys are not welcome in this project's issues or discussions.

RetroArch for PlayStation 5 — a violet starfield and magenta horizon grid

WebUI Games library with SNK Neo Geo selected and the B filter active, in a galaxy frame

Your collection, beautifully organized.
Browse, add games, and manage artwork from your phone or computer.

A native RetroArch homebrew title for jailbroken PlayStation 5 consoles, made by Mihawk. Play through RetroArch or EmulationStation, with Vulkan graphics and up to four controllers.

Latest release: v1.0.0-beta.1. Read what’s new or download the package.

Warning

Designed around ShadowMountPlus 1.7beta4 or later. Use ShadowMountPlus 1.7beta4 or newer for supported USB and extended-storage access.


Choose your frontend

RetroArch or EmulationStation. Pick your preferred way to browse and play.

Frontend picker offering RetroArch and EmulationStation, in a galaxy frame

Press Square to remember your choice. Hold L1 during startup to return to the picker, or change it in WebUI Settings → Start with.

At a glance

Made for your collection
33 cores. From NES and Mega Drive to Dreamcast, GameCube, PSP, and more.
One shared library. Artwork and game details across RetroArch, EmulationStation, and the WebUI.
Easy game setup. Add a game, find its details, and download missing artwork.
DualSense stylus. Use the touchpad for Nintendo DS and 3DS touchscreen controls.

Explore: Get started · WebUI · Systems · Controls · Graphics · Your files · Known limits · Build

Get started

  1. Install the complete title folder. Extract a release and copy PPSA99169 to your homebrew launcher’s location, usually /data/homebrew/PPSA99169/. A compatible jailbreak and launcher must already be set up.
  2. Choose your frontend. Start RetroArch or EmulationStation from the picker. Press Square to remember your choice; hold L1 during startup to return to the picker. XMB and RGUI are available in RetroArch.
  3. Open the WebUI. Scan its QR code or visit http://<PS5-IP>:6769 from a device on the same network.
  4. Add your games. Use Games → + Add Game for one game backup, or Content for folders and multi-file games. Install any required BIOS files in the system folders, then load your game on the console.

No games, BIOS files, firmware or decryption keys are included. Use your own legally obtained backups and system files dumped from hardware you own. Piracy is not condoned; requests for these files are not welcome in issues or discussions.

Scan to connect

Menu Open the WebUI QR code
Picker Press Triangle; Triangle again or Circle closes it
RetroArch XMB WebUI tab to the left of Settings
RetroArch RGUI WebUI at the top of the main menu
EmulationStation WebUI in the main menu


Your browser companion

Stay connected while switching between the picker, RetroArch, and EmulationStation. A supported ELF loader or homebrew launcher keeps the WebUI running across menus; without one, it is available while RetroArch runs.

Page What you can do
Overview Check updates, alerts, recent transfers, and quick settings.
Games Browse cover art, search, filter by system or letter, and sort your collection.
Download Media Download artwork and game details for a few games or your whole library.
Content Browse folders, create subfolders, and upload or download files.
Transfers Follow uploads and their results. Downloads appear in your browser’s download manager.
Settings Adjust global preferences, core options, controller mappings, and the startup frontend.

The WebUI is a local HTTP service without a login. Use a trusted network and do not forward port 6769 to the internet.


Supported systems

33 native cores, grouped below by family. Compatibility and performance vary by game.

Vulkan (GPU) cores render on the GPU. Software cores render on the CPU, with Vulkan displaying the result.

Family Systems Core Renderer
Nintendo NES / Famicom FCEUmm Software
Game Boy
Game Boy Color
Game Boy Advance
mGBA Software
SNES / Super Famicom Snes9x Software
Nintendo 64 Mupen64Plus-Next Vulkan (GPU)
GameCube
Wii
Dolphin Vulkan (GPU)
Nintendo DS DeSmuME Software
Nintendo 3DS Azahar Vulkan (GPU)
Virtual Boy Beetle VB Software
Pokémon Mini PokeMini Software
Sony PlayStation Beetle PSX HW Vulkan (GPU)
PlayStation 2 PS5SX2 Vulkan (GPU)
PlayStation Portable PPSSPP Vulkan (GPU)
Sega Mega Drive / Genesis
Master System
Game Gear
SG-1000
Sega CD
Genesis Plus GX Software
Sega 32X PicoDrive Software
Sega Saturn Beetle Saturn Software
Dreamcast
NAOMI / NAOMI 2
Atomiswave
Flycast Vulkan (GPU)
Arcade & SNK Arcade
Neo Geo
FinalBurn Neo Software
Arcade MAME Software
Neo Geo Pocket / Color Beetle NeoPop Software
Neo Geo CD NeoCD Software
NEC PC Engine / TurboGrafx-16 / CD
SuperGrafx
Beetle PCE Software
PC-FX Beetle PC-FX Software
Atari Atari 2600 Stella Software
Atari 5200 a5200 Software
Atari 7800 ProSystem Software
Atari Lynx Handy Software
Atari Jaguar Virtual Jaguar Software
Computers & adventures Commodore 64 VICE x64sc Software
Commodore Amiga PUAE Software
MS-DOS DOSBox Pure Software
Point-and-click adventures ScummVM Software
More consoles 3DO Opera Software
WonderSwan / Color Beetle Cygne Software

PicoDrive also supports Mega Drive, Mega-CD, Master System, and Pico. FinalBurn Neo includes Sega System 16/32; ScummVM supports many LucasArts, Sierra, and other adventures.

Use matching arcade sets: MAME targets 0.289, and FBNeo needs sets compatible with its version. Azahar requires decrypted content. Only native cores built for this port are compatible; desktop cores and other PS5 distributions’ cores are not interchangeable. No games or BIOS files are bundled.

None of the games I tested with is provided. Use only legally obtained backups of games you own, and BIOS files dumped from your own hardware: piracy is not condoned.

A stylus in your DualSense

In DeSmuME and Azahar, slide a finger on the touchpad to move the stylus. Press to touch the screen; hold the press while sliding to drag. Release to lift the stylus. A light tap does not click.

Up to four controllers are supported. Save controller mappings for each game or core.

Graphics for your display

RetroArch presents at the display resolution. Internal rendering is chosen to leave room for emulation and memory use; it need not reach native 4K. Saved core, folder and game options take priority over these compiled defaults.

Core Default internal resolution Anti-aliasing
PPSSPP 6× · 2880 × 1632 8× MSAA
Dolphin 4× No MSAA
PS5SX2 4× · approximately 1440p (up to 8×; 6× is 4K) Core default
Beetle PSX HW 8× MSAA off
Mupen64Plus-Next 4× Core default
Azahar 6× · 2400 × 1440 top screen Core default
DeSmuME 4× · 1024 × 768 per screen Core default
Flycast 4.5× · 2880 × 2160 Per-pixel transparency

Other cores retain native rendering, scaled for the display. MAME uses a 4K target for vector output; that path still needs console acceptance.

Higher resolutions and anti-aliasing use more memory. If a game struggles, lower its internal resolution or disable MSAA.

To adopt these defaults on an existing installation, change the listed options in the WebUI or Quick Menu → Core Options. Reset Core Options resets every option for that core, so use individual controls if you want to keep other choices.

Shaders, filters and bezels

Release builds bundle offline Slang shaders, Mega Bezel, koko-aio and standard overlays. Load GPU presets through Quick Menu → Shaders, choose a CPU filter in Settings → Video, or choose artwork in Settings → On-Screen Display → On-Screen Overlay. CPU filters apply to software-rendered cores; hardware-rendered cores use GPU shaders.

Presets and overlays are included for offline use. Compatibility varies by core and preset; original notices are retained.


Your files

/app0 is the running title’s mount. Over FTP, use your installed title folder, usually /data/homebrew/PPSA99169/.

Folder or file Purpose
content/ Your content; available to WebUI uploads and downloads
content/Saturn/ Saturn disc images; created automatically
system/ General BIOS and system data
system/Saturn/ Saturn BIOS files; created automatically
system/pcsx2/bios/ PlayStation 2 BIOS (your own dump)
system/fbneo/ FinalBurn Neo system files
cores/ and info/ Native cores and their metadata
config/retroarch.cfg Live RetroArch configuration
config/webui.cfg Saved global WebUI preferences
config/<core>/ Core options and RetroArch overrides, per core and per game
config/remaps/<core>/ Controller remaps, per core and per game
library/<system>/ Scraped box art, screenshots and details, shared by every frontend
savefiles/ and savestates/ Save RAM and save states
shaders/shaders_slang/ GPU presets, including Mega Bezel and koko-aio
filters/ Built-in CPU filter configurations
overlays/ Standard overlay artwork and configurations
radv-shader-cache/ Reusable compiled graphics pipelines

Saturn setup: place your own BIOS dump, mpr-17933.bin (US/Europe) or sega_101.bin (Japan), in system/Saturn/. Keep a disc’s .cue and all referenced tracks together, then load the .cue. The default system path is routed to the Saturn folder; an explicitly selected custom system directory remains unchanged.

Genesis Plus GX’s Sega CD BIOS files and Beetle PSX HW’s optional BIOS files belong in the general system folder, with the filenames listed by their metadata. BIOS uploads use FTP; the WebUI only exposes content/.

Everything you put in content/ and system/ must be your own legally obtained backups: games you own, and BIOS or firmware dumped from hardware you own. Piracy is not condoned.

Ordinary scripted updates preserve content and saved settings. Back up your files before replacing or removing a title. The file browser opens on INTERNAL, the title folder. With ShadowMountPlus 1.7beta4 or later running, it also lists each USB drive (USB 0 to USB 7, /mnt/usb0 onward) and extended storage (EXTENDED 0 and 1, /mnt/ext0 and /mnt/ext1), only when a drive is mounted there. Without it, the sandbox hides them and EXTERNAL (/mnt) may be empty.

Compatibility and known limits

Startup, controller input, audio, saved settings, and representative games have been tested on PS5. Compatibility and long-session testing are ongoing.

  • Azahar: a crash when closing content, switching to Azahar, and starting a game remains under investigation.
  • RetroAchievements and NetPlay: RetroArch starts its bundled Lapy service automatically through the console's local ELF loader, then reuses it on later launches. No Payload Manager autoload entry is needed. Files stay in their installation folder; existing /app0 settings continue to work. Without the local loader or verified elevation, outgoing online features remain unavailable. See service setup and online verification.
  • Shader presets, disc swapping, and rumble still need broader testing.

Recorded evidence accompanies verified changes. For a bug report, include the core, file format, settings and reproduction steps. Preserve retroarch.log and trace.txt before reopening RetroArch: the frontend log is replaced on each launch. Remove private paths, addresses and credentials before sharing captures.


Build from source

Build requirements and commands

The current build uses Linux host tools and the project's cached public PS5 SDK. Start with bash tools/doctor.sh for host-tool checks. You also need curl, patch, pkg-config, ELF utilities such as readelf, and working host C/C++ compilers with sanitizer support for the tests. The target scripts currently use /usr/bin/clang through the SDK wrappers.

Prepare and build PS5_Vulkan following its own instructions, normally as a sibling directory:

workspace/
├── PS5_RetroArch/
├── PS5_Vulkan/       # The RADV release archive, its link recipe and dependencies
├── PS5_Mesa/         # My Mesa fork, which PS5_Vulkan builds RADV from
└── PS5_PayloadSDK/   # My payload SDK fork and its platform layer, at a pinned revision

The cores that needed changes for the console build from my forks of them (Libretro_PS5SX2, PS5_BeetlePSX, PS5_Mupen64Plus, PS5_BeetleSaturn, PS5_VICE, PS5_MAME, PS5_DeSmuME, PS5_Azahar with PS5_Dynarmic, PS5_Flycast, PS5_PicoDrive, PS5_BeetlePCE, PS5_BeetlePCFX, PS5_BeetleVB, PS5_BeetleNGP, PS5_BeetleWSwan, PS5_PokeMini, PS5_Handy, PS5_VirtualJaguar, PS5_Stella, PS5_A5200, PS5_ProSystem, PS5_DOSBoxPure, PS5_Opera, PS5_PUAE, PS5_NeoCD, PS5_ScummVM), each pinned by revision in its build script. The script uses the sibling checkout when there is one, and github.com/mihawk-99/<fork> otherwise.

The title build consumes PS5_Vulkan's RADV release archive (tools/build-radv.sh release there, built from PS5_Mesa at the revision it pins) and links it with that project's tools/radv-link.sh; it does not build the driver for you. PS5_VULKAN_DRIVER=ps5vk links ps5vk's driver, Vulkan runtime and shader-compiler archives instead, and RADV_ARCHIVE names another RADV archive. PS5_VULKAN_DIR can select an alternative checkout for the build; some host tests currently require the sibling layout above. Driver dependencies and setup requirements are documented in the driver repository.

From the RetroArch repository root:

make deps
export PS5_PAYLOAD_SDK="$PWD/.deps/native/ps5-payload-sdk"
export PS5_CLANG=/usr/bin/clang
bash tools/fetch-retroarch.sh
bash tools/build-title.sh     # Create the artifacts inspected by the host tests
bash tools/verify.sh

The five gates are format → unit → build → integration → evidence. The build pins RetroArch 1.22.2, fetches core sources/metadata with checked hashes, builds the frontend and thirty-three cores, and stages the native title in dist/PPSA99169/. The initial dependency/source fetch requires network access.

For an already configured checkout:

bash tools/build-title.sh     # Build/stage the frontend and all shipped cores
make genesis-plus-gx         # Build and ABI-check one core only
# Other core targets: fceumm, mgba, snes9x, fbneo
bash tools/build-ppsspp.sh   # The larger cores have scripts of their own:
                             # build-ppsspp.sh, build-dolphin.sh, build-ps5sx2.sh,
                             # build-beetle-psx.sh, build-mupen64plus.sh,
                             # build-beetle-saturn.sh, build-vice.sh,
                             # build-mame.sh, build-desmume.sh, build-azahar.sh,
                             # build-flycast.sh, build-picodrive.sh,
                             # build-beetle-pce.sh, build-beetle-pcfx.sh,
                             # build-beetle-vb.sh, build-beetle-ngp.sh,
                             # build-beetle-wswan.sh, build-pokemini.sh,
                             # build-handy.sh, build-virtualjaguar.sh,
                             # build-stella.sh, build-a5200.sh, build-prosystem.sh,
                             # build-dosbox-pure.sh, build-opera.sh, build-puae.sh,
                             # build-neocd.sh, build-scummvm.sh

When adding or updating a core, rebuild the title too: the frontend's native import table and build identity depend on the shipped core binaries. Source patches live in patches/; fetched and generated trees stay in ignored vendor/, .deps/, build/ and dist/ directories.

Authors and acknowledgements

This port builds on substantial upstream and PS5 homebrew work. Credits below identify project authors and teams; their repositories retain the full contributor lists and original notices.

Frontend, platform and graphics

Project / author Contribution
Mihawk — PS5_RetroArch, PS5_Vulkan, PS5_Mesa, PS5_PayloadSDK This native RetroArch port and core integration; the PS5 Vulkan drivers (the RADV port and ps5vk); the Mesa fork with the PS5 winsys; the payload SDK fork and its platform layer; the PS5 forks of the cores below
RetroArch / libretro contributors Frontend, libretro API, menus, video pipeline and shared libraries
BlackBearReloaded — ProsperoLight Project starting point and reference for native PS5 input and audio integration
BlackBearReloaded — PS5 Native App Boilerplate Underlying native title tooling, ELF/FSELF conversion and runtime-shim foundation
John Törnblom and ps5-payload-dev contributors Public PS5 Payload SDK, toolchain and API stubs; PacBrew ports infrastructure
John Törnblom / ps5-payload-dev — websrv Reference for per-core fetch/build/stage scripts; this port uses a separate native title pipeline
BlackBearReloaded — ps5-opengl Shader-compiler and graphics foundations consumed by PS5_Vulkan; not the active RetroArch video backend
Mesa contributors RADV, the Vulkan driver the title renders through, with its ACO compiler, NIR, the Vulkan runtime and utilities
Khronos Group Vulkan API headers and specification
RetroArch assets contributors and the M+ Fonts project Packaged XMB assets and font; original notices retained
LLVM / Clang contributors, zlib authors Jean-loup Gailly and Mark Adler Compilation and compression tooling

Frontends and interface artwork

EmulationStation uses ES-DE and the Alekfull NX theme. Touchpad handling builds on PS5_Proton; the picker uses PS5_VulkanTemplate’s UI foundation.

Color icons: Microsoft Fluent Color. System artwork: Linear ES-DE. Region flags: flag-icons. Utility icons: Lucide. Full attribution and licences are in artwork credits.

Emulator cores

Core Authors / maintainers credited by upstream
FCEUmm FCEU Team, CaH4e3 and contributors
mGBA endrift and contributors
Snes9x Snes9x Team and contributors
FinalBurn Neo Team FBNeo and contributors
Genesis Plus GX Charles MacDonald, Eke-Eke and contributors
PPSSPP Henrik Rydgård and contributors
Dolphin, libretro/dolphin Dolphin Emulator Project and contributors; libretro core maintainers
PCSX2, PS5SX2 PCSX2 Dev Team and contributors; Swordpdf (PS5SX2)
Beetle PSX HW, Beetle Saturn The Mednafen authors and contributors; libretro Beetle maintainers
Mupen64Plus-Next Mupen64Plus team and contributors; libretro core maintainers; ParaLLEl-RDP and ParaLLEl-RSP by Hans-Kristian Arntzen (Themaister) and contributors
VICE The VICE Team and contributors; libretro core maintainers
MAME MAMEdev and contributors
DeSmuME DeSmuME team and contributors
Azahar, Dynarmic Azahar contributors, building on Citra; Dynarmic by merryhime and contributors
Flycast flyinghead and contributors, building on reicast and nullDC; PS5 port begun by rpf16rj
PicoDrive notaz, fDave and the PicoDrive contributors
Beetle PCE, Beetle PC-FX, Beetle VB, Beetle NeoPop, Beetle Cygne The Mednafen authors and contributors; libretro Beetle maintainers
PokeMini JustBurn and contributors
Handy K. Wilkins and contributors
Virtual Jaguar James Hammons and the Virtual Jaguar contributors
Stella Bradford W. Mott, Stephen Anthony and the Stella Team
a5200 The Atari800 team and the a5200 contributors
ProSystem Greg Stanton and contributors
DOSBox Pure Bernhard Schelling, building on DOSBox by the DOSBox Team
Opera The FreeDO authors, the 4DO and Opera contributors
PUAE The UAE, WinUAE and PUAE authors and contributors
NeoCD Laurent Cayrol and contributors
ScummVM The ScummVM Team and contributors
libretro core-info Metadata maintainers and contributors

License and third-party terms

This repository's own code is GPL-3.0-or-later (LICENSE). Most source files carry a copyright and SPDX notice; the ones that do not (for example src/memory_ps5.cpp and the build scripts in tools/) are under the same licence. Code inherited from BlackBearReloaded's ps5-native-app-boilerplate and ProsperoLight is Copyright (C) 2026 BlackBearReloaded, GPL-3.0-or-later. The title's sce_module/libc.prx is generated by this repository (runtime/).

Every built title folder carries LEGAL.txt (the legal notice above) and licenses/: the licence texts each part requires, and components.json, which ties every executable file to the source revision it was built from (tooling/notices/components.json). The package records public source links and exact revisions for every component. The release tag contains the build scripts and patches; tools/source-bundle.py can assemble the corresponding source archives from a prepared build checkout. Releases up to v0.5.0-alpha.5 were published without licenses/.

The cores keep their own licences, and they differ:

Licence Cores
GPL-2.0-or-later FCEUmm, PPSSPP, Dolphin, Beetle PSX HW, Beetle Saturn, Mupen64Plus-Next (with MIT and LGPL parts), VICE, DeSmuME, Azahar (Dynarmic is 0BSD), Flycast, Beetle PCE, Beetle PC-FX, Beetle VB, Beetle NeoPop, Beetle Cygne, Stella, a5200, ProSystem, DOSBox Pure, PUAE, MAME (as a whole; many files BSD-3-Clause)
GPL-3.0-or-later PS5SX2 (PCSX2), PokeMini, Virtual Jaguar, ScummVM
LGPL-3.0-or-later NeoCD
Zlib Handy
MPL-2.0 mGBA
Non-commercial licences Snes9x, FinalBurn Neo, Genesis Plus GX, PicoDrive, Opera (FreeDO's modified LGPL): they may not be sold or used commercially, and FBNeo's forbids asking for donations for a project that uses its code

The Alekfull NX theme also carries non-commercial restrictions. Artwork credits and licence texts for the WebUI’s icons, flags, and system images are in ICON-CREDITS.txt.

Assets and fonts keep their licences too: the XMB theme is CC-BY-4.0 with the M+ font licence, PPSSPP's fonts are OFL-1.1, and Dolphin's Sys files carry theirs. The launcher backgrounds (sce_sys/pic0.dds, pic1.dds) are drawn by tools/make-title-art.py, under this repository's licence.

No games, BIOS files, firmware or keys are included, and piracy is not condoned. Use only legally obtained backups of games you own and system files dumped from hardware you own.

This is an independent homebrew project, not affiliated with or endorsed by Sony Interactive Entertainment, the Khronos Group or the libretro project. PlayStation and PS5 are Sony trademarks. Vulkan is a registered trademark of the Khronos Group Inc.; the RADV port this title uses is not a Khronos-conformant product (see PS5_Vulkan). RetroArch is the libretro project's name and logo, used here to name the frontend this port is built from.

made by Mihawk · Built on the work of the RetroArch, libretro and PS5 homebrew communities.

About

🎮 RetroArch Homebrew for the PS5 that supports 33 cores & 44 systems.

Resources

Stars

320 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages