Emulation on a jailbroken console, running Vulkan through RADV and desktop OpenGL 4.6 through zink. 114 cores, built for this hardware.
.prx files. For a console with no network: unzip and copy them across over FTP.148 MBDownload coresQuit from inside the application, not from the console. Use RetroArch's own
Quit RetroArch entry, or the Quit combo on the pad. It returns to the console's menu with
no dialog. Earlier versions showed CE-34878-0 here; they ended by returning from
main(), which takes the process down outside the path the system expects.
Closing it the console's way instead — the PS button, then Close Application — still
shows CE-34878-0. The console returns to its menu and nothing needs restarting, but the
application is killed outright there and never gets to shut itself down, so Quit is the better
habit.
Install the package like every port here: copy it to the console and use the Package Installer, then launch RetroArchV.
It installs under its own title id, RTRV00001, so it sits beside any
RetroArch already on the console rather than replacing it — the system decides collisions by
title id, not by the name on screen.
Online Updater → Update Core Info Files. Do this before browsing the core list.
Core metadata is not shipped inside the package, so until those files arrive the downloader
lists .prx filenames instead of names like “Nintendo 64 (Mupen64Plus-Next)”.
Everything works either way; only the labels are missing.
Download the archive above on another machine, unzip it, and copy the .prx files
into /data/retroarch/cores over FTP. Nothing else is needed — the core list is read
from that directory at startup.
Copy them, do not extract them on the console. A file arriving over FTP is created executable, which is what the module loader requires. Files unpacked by other routes may not be, and a core without that bit fails to load with no explanation beyond “Failed to open libretro core”.
Core metadata works the same way offline: the .info files live in
/data/retroarch/info and can be copied across from
libretro's bundle.
All of it sits under /data/retroarch/, which is writable and survives
reinstalling the package. Put files there over FTP and RetroArch finds them at startup — there is
no import step.
| Directory | What goes in it |
|---|---|
| /data/retroarch/cores | Cores, as .prx files |
| /data/retroarch/info | Core metadata — names, supported extensions, required BIOS files |
| /data/retroarch/system | BIOS and firmware. A core that needs one looks here and nowhere else |
| /data/retroarch/roms | Content. Only a convention — games can sit anywhere the console can read |
| /data/retroarch/savefiles | Battery saves, memory cards |
| /data/retroarch/savestates | Save states |
| /data/retroarch/config | Per-core configuration overrides, and config/remaps for input remaps |
| /data/retroarch/playlists | Playlists built by the scanner |
| /data/retroarch/thumbnails | Box art and screenshots |
| /data/retroarch/shaders | Shader presets and passes |
| /data/retroarch/shader-cache | The OpenGL driver's compiled shaders, read back on the next run |
| /data/retroarch/overlays | Overlays, and overlays/keyboards for on-screen keyboards |
| /data/retroarch/assets | Menu assets — icons, fonts, the XMB and Ozone themes |
| /data/retroarch/database/rdb | Content databases the scanner matches against |
| /data/retroarch/cheats | Cheat files |
| /data/retroarch/logs | Logs |
| /data/retroarch/retroarch.cfg | The main configuration file |
Edit the configuration with RetroArch closed. It keeps its settings in memory and writes the whole file out when it exits, so a change made over FTP while it is running is overwritten on quit — not merged, replaced.
The package itself is mounted read-only at /app0 and holds only the executable,
the icon and the certificate bundle. Nothing there needs editing, and nothing there can be.
Once the cores are in place, this is ordinary RetroArch. Controller mapping, shaders, overlays, per-core options, save states, rewind, netplay's absence, the scanner, playlists — all of it behaves as it does everywhere else, with the same menus in the same places. The libretro documentation applies unchanged, and so does any guide written for another platform.
Two habits worth having early: Load Content scans a directory for anything a core claims, and per-core settings live under Quick Menu → Options while the game is running, saved with Manage Core Options.
RetroArch is licensed under the GNU General Public License, version 3, and most cores here are GPL of one vintage or another. Distributing these binaries obliges us to hand you the source they were built from — not the project in general, but the exact commit. That is what the last column of the table below is: each core's version links to the tree it was compiled from, and a core built with patches of this port's own also links those patches.
The frontend and the platform work:
v0.1.8 — the frontend, GPLv3, forked from
libretro/RetroArch22 of these cores carry non-commercial terms and are marked in the table. They may not be redistributed commercially, and neither may this collection as a whole while they are part of it. Nothing here is sold, and nothing here should be.
CE-34878-0.
It is cosmetic — the console recovers on its own. Quit from inside RetroArch does not.Most cores run well on their defaults. These are the exceptions: options whose default was chosen for a desktop computer and is wrong on this console, or that a game here was found to need. Change them under Quick Menu → Options while a game is running, and keep them with Manage Core Options → Save Core Options.
| Option | Set to | Why |
|---|---|---|
| CPU Dynarec | Max Performance | The interpreter runs Spyro 3 at about 38% of full speed here. The default on this console, but an options file saved by an older build can still hold the interpreter. |
| PGXP Operation Mode | OFF | Any PGXP mode turns every main-RAM access into a function call, and it was the largest single cost on this console. Off by default. |
| Software Framebuffer | OFF | Saves host time; a few games use framebuffer effects that need it. On by default. |
| Dynarec Code Invalidation | DMA Only (Slightly Faster) | Part of the set that made Spyro 3 smooth. |
| Dynarec DMA/GPU/MDEC/Timer Event Cycles | 512 | Part of the set that made Spyro 3 smooth. |
| Dynarec SP GP Hit RAM Optimization | ON | Part of the set that made Spyro 3 smooth. |
| Internal GPU Resolution | 2x | The GPU sat idle in every measurement, so upscaling is nearly free; 2x was played at full speed. |
| Option | Set to | Why |
|---|---|---|
| RDP Plugin | GLideN64 | Angrylion also reaches 60 fps here but draws at native resolution only; GLideN64 ran Shadows of the Empire at 60 fps and can upscale. GLideN64 is the default from 2026-09-15; earlier installs got Angrylion. |
| RSP Plugin | HLE | The low-level RSP alone costs more than a whole frame on this CPU. The default. |
| Option | Set to | Why |
|---|---|---|
| Use ubershaders (No stutter, maybe slower) | OFF | The PS4 build draws with the ubershader only while the faster shader compiles in the background; left on, every frame takes the slow path. Off by default from 2026-09-15; an options file saved earlier may still say ON. |
| Hash textures (Better graphics, maybe slower) | ON | Without it Ocarina of Time 3D shows garbled text (upstream Panda3DS issue #800). On by default; the cost was not measurable. |
| Run 3DS shaders on the GPU | ON | Off moves vertex shading to the CPU, and the game hung on this console. On by default. |
Every file the console's own Core Downloader offers, and where each came from.
37 of the 114 have been run on a real PlayStation 4, and the On a PS4 column says what happened. Everything else has only been built: it compiles, links and loads as a module, and nobody has yet written down what it does with a game. A report either way is useful.
A result describes the build that was on the console that day. Cores are rebuilt from upstream on every run, so the file here can be newer than the one that was tested.
| Core | On a PS4 | System | Licence | Size | Built from |
|---|---|---|---|---|---|
| 2048 | PlaysGame and menu both fine | 2048 Game Clone | Public Domain | 736K | 39333f7 |
| Atari - 5200 (a5200) | untested | Atari 5200 | GPLv2 | 1000K | 40c6f2f |
| Arduboy (Arduous) | untested | Arduboy | GPLv3 | 1.5M | 798e395 |
| Atari - 400/800/600XL/800XL/130XE/5200 (Atari800) | Plays | Atari 8-bit Family | GPLv2 | 1.8M | 4e7fbc7 |
| Elektronika - BK-0010/BK-0011(M) | untested | BK-0010/BK-0011(M) | HPND | 880K | 92042a7 |
| Nintendo - SNES / SFC (bsnes C++98 (v085)) | Plays | Super Nintendo Entertainment System | GPLv3 | 1.9M | baec09a |
| bsnes_mercury | untested | — | 3.1M | 79d7f9d | |
| Cannonball | PlaysOutRun | Outrun Game Engine | Non-commercialnon-commercial | 1.1M | 0d83575 |
| Amstrad - CPC/GX4000 (Caprice32) | BootsTakes every key from a USB keyboard; no game recorded | CPC/GX4000 | GPLv2 | 2.2M | e9ad182 |
| Sega - MD/CD (ClownMDEmu) | Plays | Sega Genesis | AGPLv3 | 1.6M | f839503 |
| Amstrad - CPC (CrocoDS) | untested | CPC | MIT | 1.3M | a9c63b2 |
| Nintendo - DS (DeSmuME 2015) | untested | Nintendo DS | GPLv2 | 5.3M | 422b688 |
| Arcade (DICE) | untested | Arcade (various) | GPLv3 | 8.5M | b11714f |
| Dinothawr | PlaysDinothawr, with the data from the core's repository | Dinothawr Game Engine | Non-commercialnon-commercial | 1.1M | 62d3e1e |
| Laserdisc arcade game (DirkSimple) | untested | Laserdisc arcade game | zlib | 2.2M | d5d75f9 +1 patch |
| DOS (DOSBox-Pure) | BootsBoots to a DOS prompt with the USB keyboard working | DOS | GPLv2 | 4.3M | 73e03aa |
| doublecherrygb | untested | — | 2.2M | c0f70ce | |
| Wolfenstein 3D (ECWolf) | untested | Wolfenstein 3D Game Engine | BSD|LGPL | 2.7M | 0cccd9a |
| EPOCH/YENO Super Cassette Vision | untested | Super Cassette Vision | GPLv3 | 5.4M | 6b7db95 |
| Arcade (FB Alpha 2012 CPS-1) | untested | CP System I | Non-commercialnon-commercial | 4.3M | 5542c18 |
| Arcade (FB Alpha 2012 CPS-2) | untested | CP System II | Non-commercialnon-commercial | 3.9M | e3f3ae4 |
| Arcade (FB Alpha 2012 CPS-3) | untested | CP System III | Non-commercialnon-commercial | 1.1M | 57f8015 |
| Arcade (FB Alpha 2012) | untested | Arcade (various) | Non-commercialnon-commercial | 28M | 0ce3153 |
| Arcade (FB Alpha 2012 Neo Geo) | PlaysMetal Slug, with neogeo.zip beside it | Neo Geo | Non-commercialnon-commercial | 3.3M | e092097 |
| Nintendo - NES / Famicom (FCEUmm) | PlaysZelda | Nintendo Entertainment System | GPLv2 | 5.5M | 236ccdf |
| Sega - Dreamcast/Naomi (Flycast) | untested | Sega Dreamcast | GPLv2 | 24M | 215a5af +3 patches |
| Microsoft - MSX (fMSX) | untested | MSX | Non-commercialnon-commercial | 908K | ee14f0d |
| Fairchild - ChannelF (FreeChaF) | untested | Channel F | GPLv3 | 756K | 76c7a84 |
| Mattel - Intellivision (FreeIntv) | untested | Intellivision | GPLv2+ | 1.4M | ef3e0fe |
| Commodore - C64 (Frodo) | untested | C64 | GPLv2 | 1.2M | 9fb971b |
| Sinclair - ZX Spectrum (Fuse) | Plays | ZX Spectrum (various) | GPLv3 | 2.4M | 958105a |
| Nintendo - Game Boy / Color (Gambatte) | untested | Game Boy/Game Boy Color | GPLv2 | 6.3M | d9d6cd0 |
| Nintendo - Game Boy / Color (Gearboy) | untested | Game Boy/Game Boy Color | GPLv3 | 1.7M | 437e103 |
| Sega - MS/GG/SG-1000 (Gearsystem) | untested | Sega 8-bit (MS/GG/SG-1000) | GPLv3 | 1.7M | 0e35ec6 |
| Sega - MS/GG/MD/CD (Genesis Plus GX) | Plays | Sega 8/16-bit (Various) | Non-commercialnon-commercial | 18M | c2838c7 |
| Sega - MS/GG/MD/CD (Genesis Plus GX Wide) | PlaysDraws the picture twice side by side; cause not investigated | Sega 8/16-bit (Various) | Non-commercialnon-commercial | 17M | b7ad005 |
| SNK - Neo Geo AES/MVS/CD (Geolith) | untested | Neo Geo | BSD-3-Clause, MIT | 1.6M | 1940249 |
| Game Music Emu | untested | Music | GPLv3 | 1.4M | 1562f62 |
| Gong | Plays | Pong Game Clone | GPL v3 | 524K | 69ef0b6 |
| Nintendo - Game Boy Advance (gpSP) | Plays | Game Boy Advance | GPLv2 | 1.4M | 8d268a6 |
| Handheld Electronic (GW) | untested | Handheld Electronic | zlib | 1.3M | 91d599b |
| Atari - Lynx (Handy) | untested | Lynx | Zlib | 1.6M | bc55d46 |
| ColecoVision/CreatiVision/My Vision (JollyCV) | untested | ColecoVision/CreatiVision/My Vision | BSD-3-Clause, MIT | 788K | 2790d59 |
| Jump 'n Bump | untested | GPLv2 | 716K | 2cc8401 | |
| LowRes NX | untested | LowRes NX | zlib | 664K | 12aeb16 |
| Lua Engine (Lutro) | untested | Lutro | MIT | 4.4M | 6224157 |
| Arcade (MAME 2000) | untested | Arcade (various) | MAMEnon-commercial | 20M | 181b42e |
| Arcade (MAME 2003) | untested | Arcade (various) | MAMEnon-commercial | 46M | 259339e |
| Arcade (MAME 2003-Plus) | untested | Arcade (various) | MAME Noncommercialnon-commercial | 50M | 5da0428 |
| Nintendo - Game Boy Advance (Beetle GBA) | Plays | Game Boy Advance | GPLv2 | 1.2M | b158166 |
| Atari - Lynx (Beetle Lynx) | untested | Lynx | Zlib|GPLv2 | 868K | fcdefcf |
| SNK - Neo Geo Pocket / Color (Beetle NeoPop) | untested | Neo Geo Pocket (Color) | GPLv2 | 1.1M | a50d5ac |
| NEC - PC Engine / CD (Beetle PCE FAST) | untested | PC Engine/PCE-CD | GPLv2 | 5.4M | eed8075 |
| NEC - PC Engine / SuperGrafx / CD (Beetle PCE) | untested | PC Engine/SuperGrafx/CD | GPLv2 | 6.3M | 6d6a35e |
| NEC - PC-FX (Beetle PC-FX) | untested | PC-FX | GPLv2 | 2.8M | c1650ba |
| Sony - PlayStation (Beetle PSX HW) | PlaysSpyro 3 (PAL) at full speed, 50 fps, Vulkan renderer at 2x internalRecommended settings | PlayStation | GPLv2 | 1657e2f | |
| Sega - Saturn (Beetle Saturn) | untested | Saturn | GPLv2 | 13M | 1382b85 |
| NEC - PC Engine SuperGrafx (Beetle SuperGrafx) | untested | PC Engine SuperGrafx | GPLv2 | 4.6M | 3c6fcd3 |
| Nintendo - Virtual Boy (Beetle VB) | untested | Virtual Boy | GPLv2 | 880K | 83ed426 |
| Bandai - WonderSwan/Color (Beetle Wonderswan) | untested | WonderSwan/Color | GPLv2 | 1.9M | 4b01295 |
| Nintendo - DS (melonDS DS) | PlaysA game ran and saved; frame rate not recorded | Nintendo DS | GPLv3+ | 6.4M | bc4e4b6 +4 patches |
| Nintendo - SNES / SFC / Game Boy / Color (Mesen-S) | Plays | Super Nintendo Entertainment System / Game Boy / Game Boy Color | GPLv3 | 4.3M | 9e4fdeb |
| Nintendo - NES / Famicom (Mesen) | Plays | Nintendo Entertainment System | GPLv3 | 5.2M | 0102910 |
| Mr.Boom (Bomberman) | Plays | Mr.Boom | MIT | 9.2M | 40ac320 |
| Palm OS (Mu) | Plays | Palm OS | CC BY-NC 3.0 US (Non-commercial)non-commercial | 1.4M | 63f7f08 |
| Nintendo - Nintendo 64 (Mupen64Plus-Next) | PlaysShadows of the Empire at 60 fps with GLideN64, measured on the earlier OpenGL ES buildRecommended settings | Nintendo 64 | GPLv2 | 5.7M | 6752836 +8 patches |
| NEC - PC-98 (Neko Project II) | untested | PC-98 | MIT | 2.1M | 5fdbb21 |
| SNK - Neo Geo CD (NeoCD) | untested | SNK Neo Geo CD | LGPLv3 | 2.8M | 3118c69 |
| Nintendo - NES / Famicom (Nestopia) | BrokenRuns and exits cleanly, but draws a green screen | Nintendo Entertainment System | GPLv2 | 8.1M | 224713b |
| Texas Instruments TI-83 (Numero) | untested | TI83 | GPLv2 | 1.5M | c0b07a3 |
| Cave Story (NXEngine) | PlaysCave Story, freeware data | Cave Story Game Engine | GPLv3 | 1.7M | fd1c068 |
| Magnavox - Odyssey2 / Philips Videopac+ (O2EM) | untested | Magnavox Odyssey2 / Philips Videopac+ | Artistic License | 1.1M | 679d6fe |
| Oberon RISC Emulator | untested | Oberon RISC machine | ISC | 656K | 5be71d8 |
| The 3DO Company - 3DO (Opera) | untested | 3DO | LGPL/Non-commercialnon-commercial | 1.3M | a501a27 |
| Sony - PlayStation (PCSX ReARMed) | untested | PlayStation | GPLv2 | 3.5M | 8625c39 +1 patch |
| PocketCDG | untested | Music | MIT | 852K | c6fc08d |
| Nintendo - Pokemon Mini (PokeMini) | untested | Pokemon Mini | GPLv3 | 1.1M | 132111b |
| Watara - Supervision (Potator) | untested | Supervision | Public Domain | 560K | 227c5f6 |
| Doom (PrBoom) | PlaysFreedoom; a crash after Load State is still open | DOOM Game Engine | GPLv2 | 4.6M | d20300d |
| Atari - 7800 (ProSystem) | untested | Atari 7800 | GPLv2 | 880K | 8a88014 |
| Commodore - Amiga (PUAE) | untested | Amiga | GPLv2 | 24M | 6536174 |
| Sharp - X68000 (PX68k) | untested | Sharp X68000 | Custom Non-Commercialnon-commercial | 1.6M | 0ad84d7 |
| NEC - PC-88 series (QUASI88) | untested | PC-88 series | BSD 3-Clause and MAME non-commercialnon-commercial | 3.1M | 459bbc6 |
| Nintendo - NES / Famicom (QuickNES) | Plays | Nintendo Entertainment System | LGPLv2.1+ | 2.3M | 26bb785 |
| SNK - Neo Geo Pocket / Color (RACE) | untested | Neo Geo Pocket (Color) | GPLv2 | 1.3M | c7810dd |
| Flashback (REminiscence) | untested | Flashback Game Engine | GPLv3 | 1.2M | e6c0b00 |
| PICO-8 (Retro8) | untested | PICO-8 | GPLv3 | 1.7M | ddc06a1 |
| Philips - CDi (SAME CDi) | untested | CD-i | GPLv2+ | 14M | 9a589f6 |
| Nintendo - Game Boy / Color (SameBoy) | untested | Game Boy/Game Boy Color | MIT | 1.1M | aa158a8 |
| ScummVM | untested | ScummVM Game Engine | GPLv3 | 41M | 430653b9 |
| Sega - MS/GG (SMS Plus GX) | untested | Sega 8-bit | GPLv2 | 876K | 3844b46 |
| Nintendo - SNES / SFC (Snes9x 2002) | Plays | Super Nintendo Entertainment System | Non-commercialnon-commercial | 1.6M | 24b3489 |
| Nintendo - SNES / SFC (Snes9x 2005) | Plays | Super Nintendo Entertainment System | Non-commercialnon-commercial | 1.5M | deb49d8 |
| Nintendo - SNES / SFC (Snes9x 2005 Plus) | Plays | Super Nintendo Entertainment System | Non-commercialnon-commercial | 1.5M | deb49d8 |
| Nintendo - SNES / SFC (Snes9x 2010) | Plays | Super Nintendo Entertainment System | Non-commercialnon-commercial | 3.7M | f81b694 |
| Nintendo - SNES / SFC (Snes9x) | Plays | Super Nintendo Entertainment System | Non-commercialnon-commercial | 4.5M | 890b5d4 |
| Atari - 2600 (Stella 2014) | untested | Atari 2600 | GPLv2 | 5.9M | 7d1361e |
| Sony - PlayStation (SwanStation) | PlaysA level played through at 2x upscale with 2xMLAA, 30-90 fps | PlayStation | GPLv3 | 6.3M | b6c30a7 +7 patches |
| Bandai - Tamagotchi P1 (TamaLIBretro) | untested | Tamagotchi P1 | GPL-2.0 | 860K | ea8dd61 |
| Test | untested | MIT | 524K | 7c2ad11 | |
| Nintendo - Game Boy / Color (TGB Dual) | untested | Game Boy/Game Boy Color | GPLv2 | 764K | 0392c9c |
| Thomson - MO/TO (Theodore) | untested | Thomson MO/TO | GPLv3 | 2.9M | 4d469ce |
| The Powder Toy | untested | Physics Toy | GPLv3 | 4.3M | bb2d9f6 |
| TIC-80 | untested | TIC-80 | MIT | 1.5M | e4c6557 +1 patch |
| Nintendo - 3DS (Trident) | PlaysA Link Between Worlds at 60 fps with correct 3D; Ocarina of Time 3D runs. Brief stutter while new shaders compile. Keep Hash textures onRecommended settings | 3DS | GPLv3 | 26M | 402316c |
| Quake (TyrQuake) | untested | Quake Game Engine | GPLv2 | 1.8M | e57bb11 |
| Uzebox (Uzem) | untested | Uzebox | MIT | 776K | d991ee9 |
| Nintendo - Game Boy Advance (VBA Next) | Plays | Game Boy Advance | GPLv2 | 1.7M | 788192f |
| Nintendo - Game Boy Advance (VBA-M) | Plays | Game Boy/Game Boy Color/Game Boy Advance | GPLv2 | 2.1M | 115defb |
| VeMUlator | untested | SEGA Visual Memory Unit | GPL v3 | 776K | 27a062f |
| Atari - Jaguar (Virtual Jaguar) | untested | Jaguar | GPLv3 | 3.1M | f9a3c89 |
| Quake II (vitaQuake 2) | untested | Quake II Game Engine | GPLv2 | 3.3M | 1a1f424 |
| Sharp X1 (X Millennium) | untested | Sharp X1 | BSD | 1.1M | 3106aa5 |
| Rick Dangerous (XRick) | PlaysRick Dangerous, straight out of data.zip | Rick Dangerous Game Engine | GPLv3 | 1.1M | fcfde36 |