RAA! PRODUCTIONS
Homebrew Mupen64Plus PS5 – Native N64 Emulator - Printable Version

+- RAA! PRODUCTIONS (https://raaproductions.ca/forum)
+-- Forum: Home Console Scene (https://raaproductions.ca/forum/forumdisplay.php?fid=7)
+--- Forum: PlayStation 5 (https://raaproductions.ca/forum/forumdisplay.php?fid=73)
+--- Thread: Homebrew Mupen64Plus PS5 – Native N64 Emulator (/showthread.php?tid=20)



Mupen64Plus PS5 – Native N64 Emulator - RETRO™ - 10-06-2026

[Image: mupen64.png]

Mupen64Plus
A Nintendo 64 emulator as a native PS5 home-screen app

■ ■ ■ ■

mupen64plus-core 2.6.0, ported to the PS5 • eboot.bin • no payload to send



▌ What is it?

Mupen64Plus PS5 is a port of mupen64plus-core 2.6.0 to the PS5 as a real native app (title ID PPSA99064). It sits on your home screen like any other game: open it, pick a game from the cover shelf (or grid, or list), and play with your DualSense.

Since v0.6 it's just an app folder: copy it to the console and ShadowMountPlus puts it on the home screen. The app unlocks itself when it starts, so there's no .elf to send.



▌ Features
  • GPU renderer: paraLLEl-RDP at up to 8x internal resolution (4x by default), with its shaders included, so most scenes don't pause the first time they appear
  • Accurate CPU renderer: angrylion-rdp-plus, pixel-accurate at the N64's own resolution, using up to 12 CPU threads
  • x86-64 dynamic recompiler: the core's dynarec runs on the PS5, so even demanding games run at full speed
  • RSP: fast HLE for sound, low-level cxd4 for graphics (games run their own graphics microcode)
  • Low-latency audio (~67 ms), with rate control that keeps the sound in step with the 60 Hz picture
  • Game list with box art, downloaded automatically: a 3D shelf, a grid of covers or a list of titles
  • Save states: 10 slots per game
  • Continue where you left off: leaving a game saves your spot, and starting it again offers to continue there
  • CPU overclock (2x, 4x) for games that slowed down on the N64
  • In-game saves: EEPROM, SRAM, FlashRAM and Controller Pak
  • Rumble Pak support through the DualSense
  • Fast forward from the pause menu
  • Display options: 4:3, integer scale or 16:9 stretch; smooth or sharp scaling; the N64's own video filter; hiding the overscan border
  • Adjustable stick dead zone, and either stick can be inverted (X, Y or both)
  • ROM formats: .z64 / .n64 / .v64 / .rom files, zipped or not, from internal storage or USB; ROM hacks up to 252 MB



▌ Tested at full speed (GPU renderer, 4x)
  • ✔ GoldenEye 007
  • ✔ Perfect Dark
  • ✔ Conker's Bad Fur Day
  • ✔ The Legend of Zelda: Majora's Mask
  • ✔ Donkey Kong 64
  • ✔ Mario Kart 64 (ghosts and records save)
  • ✔ Resident Evil 2
  • ✔ Pokémon Stadium 2
  • ✔ Indiana Jones and the Infernal Machine
  • ✔ Star Wars: Rogue Squadron
  • ✔ Super Mario 64
Earlier versions (CPU renderer) also ran F-Zero X, Star Fox 64 (with rumble) and Paper Mario (FlashRAM saves) at full speed.



▌ Compatibility
  • Compatibility list: how each tested game runs (public, view-only).
  • Report a game: tested one? A short form, no account needed. Reports go straight into the list.



▌ Requirements
  • ► A jailbroken PS5 with kstuff or kstuff-lite
  • ► ShadowMountPlus (to put the app on the home screen)
  • ► An ELF loader running (elfldr, etaHEN or PS5 Payload Manager's). You already have one if you load kstuff and ShadowMountPlus. You don't send anything to it yourself: the app uses it to unlock itself when it starts.
  • ► Your own legally dumped N64 ROMs. No games are included.



▌ Installation

1. Download Mupen64PlusPS5.zip and extract it.

2. Copy the whole PPSA99064 folder (the folder itself, not just what's inside it) to one of these places:
  • On the console: /data/homebrew/PPSA99064
  • On an exFAT USB drive: homebrew/PPSA99064
3. Within about 15 seconds, ShadowMountPlus adds Mupen64Plus PS5 to your home screen.

4. Copy your ROMs to /data/mupen64plus/roms or to mupen64plus/roms on a USB drive. Subfolders work.

5. Open the app and play!

⟳ Updating: from 0.6.3 on, the app offers new versions when it starts and installs them itself (it closes, then a notification says when to reopen it). To update by hand, close the app and copy the new PPSA99064 folder over the old one. Your saves, save states, covers and settings are kept in /data/mupen64plus.

⚠ On 0.6.0, 0.6.1 or 0.6.2? Their in-app updater was broken (the updated app wouldn't start), so install by hand once: delete /data/homebrew/PPSA99064, then copy the new PPSA99064 folder.

⟳ Coming from an older version? Versions before 0.6 installed through Mupen64PS5.elf. They used the same folder, so just copy the new one over it. You don't need to delete anything.



▌ Controls

In a game (buttons in the same positions as on the N64 controller)
  • Left stick ➜ analog stick
  • D-pad ➜ D-pad
  • ✕ Cross / □ Square ➜ A / B
  • L2 or R2 ➜ Z
  • L1 / R1 ➜ L / R
  • Right stick ➜ C buttons
  • △ Triangle / ○ Circle ➜ C-up / C-down
  • OPTIONS ➜ Start
  • Touchpad click or L3 + R3 ➜ pause menu (save/load state, fast forward, settings, reset, back to the game list)

On the game list
  • D-pad / left stick ➜ choose a game (Left / Right on the shelf, all four directions in the grid, Up / Down in the list)
  • L1 / R1 ➜ skip 10 games on the shelf, a page in the grid or list
  • ✕ ➜ play (a game you left from the pause menu asks whether to continue where you left off)
  • △ ➜ settings
  • □ ➜ download the cover again
  • Touchpad ➜ switch between shelf, grid and list
  • OPTIONS ➜ quit



▌ Folders
  • /data/mupen64plus/roms ➜ your games
  • /data/mupen64plus/saves ➜ in-game saves
  • /data/mupen64plus/states ➜ save states, and where you left each game (.resume)
  • /data/mupen64plus/covers ➜ box art (add your own .png or .jpg named after the ROM file)
  • /data/mupen64plus/logs ➜ boot.log, plus boot.prev.log to boot.prev4.log from earlier sessions (please attach it when reporting a problem)



▌ Known limitations
  • ⚠ No 64DD, Transfer Pak, cheats or netplay yet
  • ⚠ PAL games run slightly less smoothly than NTSC games
  • ⚠ If a game looks wrong, try Settings ➜ Renderer ➜ CPU; if it sounds wrong, Audio processing ➜ Accurate (LLE)
  • ⚠ If a game misbehaves otherwise, try Settings ➜ CPU core ➜ Interpreter (slower, but useful for checking whether the dynarec is the cause)
  • ⚠ If a game misbehaves with CPU overclock on, set it back to Off
  • ⚠ Scenes whose shaders aren't among the ones included may pause briefly the first time they appear, while the GPU prepares them. They are saved, so it won't pause there again.






▌ Credits
  • mupen64plus team: mupen64plus-core and mupen64plus-rsp-hle (GPL-2.0)
  • Themaister: paraLLEl-RDP, the GPU renderer
  • mihawk-99: PS5_Vulkan, and the Mesa RADV developers: the Vulkan driver
  • angrylion and the angrylion-rdp-plus contributors: the software RDP renderer (MAME license)
  • Iconoclast: mupen64plus-rsp-cxd4
  • ps5-payload-dev: the PS5 payload SDK
  • ps5-native-app-boilerplate: native app tooling
  • drakmor: ShadowMountPlus
  • EchoStretch: kstuff-lite
  • libretro-thumbnails: box art

■ ■ ■ ■

For homebrew use only. Please only use ROMs you dumped from cartridges you own.