PSP.js
github.com
What it is
PSP.js is a browser-based PlayStation Portable emulator written in TypeScript and offered free as open-source software. Its high-level emulation implements PSP system calls, so it does not need a BIOS ROM. It loads ISO and PBP games, including KIRK-encrypted EBOOTs, and emulates the MIPS Allegrex CPU and VFPU. Graphics are rendered with WebGL; the project also describes decoding ATRAC3+ audio and MPEG/PSMF video. Game data is kept in browser storage, and keyboard controls can be configured in the app. The project remains a work in progress: it reports that some commercial games reach menus and render, and points users to a per-game compatibility list. The graphics worker requires SharedArrayBuffer, so a plain static file server is not sufficient. For local development, the documented setup uses Git submodules, npm install and npm run dev, with a server that sends COOP/COEP headers. Documentation covers the user guide, architecture, subsystems and HLE modules.
Spec sheet
- Product
- PSP.js is a work-in-progress PlayStation Portable emulator written in TypeScript that runs in a browser using high-level emulation.Read 4 Oct 2026 · github.com
- Audio and video
- The project says it decodes ATRAC3+ audio and MPEG/PSMF video.Read 4 Oct 2026 · github.com
- Browser APIs
- The implementation uses WebGL, AudioWorklet, and WebCodecs for graphics, audio, and video paths.Read 4 Oct 2026 · github.com
- Browser requirement
- The README says the graphics worker requires SharedArrayBuffer and that a plain static file server will not work.Read 4 Oct 2026 · github.com
- Compatibility information
- The repository links to a per-game compatibility list for status details.Read 4 Oct 2026 · github.com
- Compatibility status
- The project says several commercial games boot to menus and render, and directs users to a per-game compatibility list.Read 4 Oct 2026 · github.com
- CPU and graphics
- It runs the MIPS Allegrex CPU and VFPU and renders the PSP Graphics Engine using WebGL.Read 4 Oct 2026 · github.com
- Development status
- The project describes itself as a work in progress; several commercial games boot to menus and render.Read 4 Oct 2026 · github.com
- Documentation
- The README says project documentation covers the user guide, architecture, and subsystem and HLE module references.Read 4 Oct 2026 · github.com
- Emulation
- It runs the MIPS Allegrex CPU and VFPU and renders graphics through WebGL.Read 4 Oct 2026 · github.com
- Game formats
- It loads ISO and PBP games, including KIRK-encrypted EBOOTs.Read 4 Oct 2026 · github.com
- Input
- Keyboard controls are available in the in-app input settings.Read 4 Oct 2026 · github.com
- No BIOS required
- Its high-level emulation reimplements PSP system calls in TypeScript, so it does not require a BIOS ROM.Read 4 Oct 2026 · github.com
- Run locally
- The repository’s quick start uses Git submodules, npm install, and npm run dev, then opens a local URL in a browser.Read 4 Oct 2026 · github.com
- Saved data
- Game data is saved in browser storage.Read 4 Oct 2026 · github.com
- Server requirement
- The documented development server sends COOP/COEP headers for SharedArrayBuffer; the README says a plain static file server will not work for the GE worker.Read 4 Oct 2026 · github.com
- Testing
- The repository reports that its pspautotests CPU and kernel suite passes.Read 4 Oct 2026 · github.com
- Use
- The README directs users to open the browser app, choose a game, and load an ISO or PBP; keyboard controls are configured in the app.Read 4 Oct 2026 · github.com
- Work in progress
- The repository describes PSP.js as a work in progress.Read 4 Oct 2026 · github.com
Strong points and limits
Strong points
- No BIOS ROM is required.
- Loads ISO and PBP games.
- Game data is saved in browser storage.
- Free and open source.
Limits
- The project is a work in progress.
- A plain static file server will not work.
- Compatibility varies by game.
Who it suits
PSP.js suits people who want to run PSP games in a browser and are comfortable checking compatibility by game. Local developers need a server configured for SharedArrayBuffer.
Verdict
PSP.js specifies its game formats, emulation components, storage and browser-server requirement. Its work-in-progress status and per-game compatibility list are important considerations before relying on it.
Where Specifiction places it
- PSP Emulators#8 of 96.6