PSP.js
PSP.js is a free, open-source PlayStation Portable emulator for the web, written in TypeScript.
What PSP.js is
PSP.js is a free, open-source PlayStation Portable emulator for the web, written in TypeScript. Its high-level emulation recreates PSP system calls in TypeScript, so it does not require a BIOS ROM. It loads ISO and PBP games, including KIRK-encrypted EBOOTs, and runs the MIPS Allegrex CPU and VFPU. Graphics are rendered through WebGL; the project also describes decoding ATRAC3+ audio and MPEG/PSMF video. Game data is saved in browser storage, and keyboard controls can be configured in the app. The project remains a work in progress: it reports that several commercial games boot to menus and render, and links to a per-game compatibility list. Running the graphics worker requires SharedArrayBuffer, so a plain static file server will not work. The documented local setup uses Git submodules, npm install, and npm run dev, with a development server that sends the required COOP/COEP headers. Project documentation covers the user guide, architecture, and subsystem and HLE module references.
Good
- Free and open source.
- Does not require a BIOS ROM.
- Loads ISO and PBP games.
- Saves game data in browser storage.
- Keyboard controls are configurable in the app.
Watch out
- Project is a work in progress.
- Several commercial games only reach menus and render.
- Graphics worker requires SharedArrayBuffer.
- A plain static file server will not work.
Who it suits
PSP.js suits people looking for a free browser-based PSP emulator who are comfortable with work-in-progress compatibility. It may also interest developers who want access to the project's technical documentation.
Verdict
PSP.js offers browser-based PSP emulation without a BIOS ROM, but compatibility remains in progress. Check the per-game compatibility list and account for the SharedArrayBuffer server requirement.
The facts
Each one read from PSP.js's own pages, with the date it was checked.
What it does
- Audio and video
- The project says it decodes ATRAC3+ audio and MPEG/PSMF video.checked 4 Oct 2026
- Compatibility information
- The repository links to a per-game compatibility list for status details.checked 4 Oct 2026
- Compatibility status
- The project says several commercial games boot to menus and render, and directs users to a per-game compatibility list.checked 4 Oct 2026
- CPU and graphics
- It runs the MIPS Allegrex CPU and VFPU and renders the PSP Graphics Engine using WebGL.checked 4 Oct 2026
- Development status
- The project describes itself as a work in progress; several commercial games boot to menus and render.checked 4 Oct 2026
- Documentation
- The README says project documentation covers the user guide, architecture, and subsystem and HLE module references.checked 4 Oct 2026
- Emulation
- It runs the MIPS Allegrex CPU and VFPU and renders graphics through WebGL.checked 4 Oct 2026
- Game formats
- It loads ISO and PBP games, including KIRK-encrypted EBOOTs.checked 4 Oct 2026
- Input
- Keyboard controls are available in the in-app input settings.checked 4 Oct 2026
- Product
- PSP.js is a work-in-progress PlayStation Portable emulator written in TypeScript that runs in a browser using high-level emulation.checked 4 Oct 2026
- Run locally
- The repository’s quick start uses Git submodules, npm install, and npm run dev, then opens a local URL in a browser.checked 4 Oct 2026
- Saved data
- Game data is saved in browser storage.checked 4 Oct 2026
- 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.checked 4 Oct 2026
- Testing
- The repository reports that its pspautotests CPU and kernel suite passes.checked 4 Oct 2026
- 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.checked 4 Oct 2026
- Work in progress
- The repository describes PSP.js as a work in progress.checked 4 Oct 2026
Where it runs
- Browser APIs
- The implementation uses WebGL, AudioWorklet, and WebCodecs for graphics, audio, and video paths.checked 4 Oct 2026
- Browser requirement
- The README says the graphics worker requires SharedArrayBuffer and that a plain static file server will not work.checked 4 Oct 2026
- No BIOS required
- Its high-level emulation reimplements PSP system calls in TypeScript, so it does not require a BIOS ROM.checked 4 Oct 2026
Alternatives to PSP.js
- 1

PPSSPP
Free planOpen sourceAndroidiOSAPILinux8.6$4.99 one-time - 2

N-EMU
Free planOpen sourceAndroidiOS8.0Free plan - 3

GamePod Emu
Free planAndroidiOS6.9Free plan - 4
Manic EMU
AndroidiOSWebLinux6.5 - 5
JPCSP
Free planLinuxmacOSWindows6.0Free plan - 6
PSP Emulator Web
WebSelf-hosted5.6
