From GameBrew - a wiki dedicated to Video Game Homebrew.

AuthorGid15, Hlide, Hykem, Orphis, Shadow

Jpcsp is the most advanced PlayStation Portable emulator, allowing you to play your PSP games on a PC. Jpcsp has been started in July 2008 and is developed by a small but active team.

Even though Jpcsp is written in Java, it can already reach 100% PSP speed on a lot of commercial games... and the emulator performance is constantly increasing.

Jpcsp takes full advantage of dual-core processors, matching the PSP dual-core architecture. Even a quad-core can give a small performance improvement by leaving free CPU cores for the Java JIT Compiler and the graphics cache.

NVIDIA graphic cards are fully supported and Jpcsp can take advantage of powerful GPUs. Problems have been reported with ATI/AMD graphic cards: keep you Catalyst driver up-to-date as new releases might fix issues.

The project is still a beta release, but currently more than 300 games are already playable.

Video and Atrac3 sound are supported, but only on Windows 32bit systems. Atrac3+ sound is not directly supported as there is currently no free codec available for this format. However, Atrac3+ can be decoded automatically on Windows 32bit when installing SonicStage.


JPCSP v0.6 (September 18, 2010):

-> Included compilation of several "Allegrex" instructions in dynarec for a much better performance;

-> Performed major code cleanups and reorganization;

-> Fixed and improved module loading: - Corrected import and export's mapping; - Implemented newly discovered loading methods.

-> Updated all modules with the most recent findings;

-> Added all new save/load (savedata) modes;

-> Reviewed and improved all kernel object managers: - Implemented each kernel object manager's attributes; - Added full LwMutex support in a dedicated kernel object manager - Provided corrections for mutex, semaphore and event flag managers; - Properly implemented VPL and FPL handling.

-> Improved graphics' handling: - Splitted rendering into a new RE (rendering engine); - Cleaned up and optimized VideoEngine; - Fully implemented, corrected and organized main GE commands; - Improved shaders' usage and stability; - Introduced a geometry shader for increased speed in rendering; - Fixed display list processing; - Improved the performance of several GE commands. - Implemented the VideoEngine processing in a parallel thread, to take advantage of dual-core processors and match the PSP dual-core architecture.

-> Implemented a MediaEngine for video and audio playback (based on FFMPEG): - Added video playback support in sceMpeg and scePsmfPlayer; - Added ATRAC3 audio playback support in sceAtrac3plus; - Improved "UMD Browser" to display images, load videos and play sounds from the UMD data.

-> Improved main GUI and debug tools: - Added a "Cheats" menu with CWCheat support; - Provided a cleaner organization and display of settings; - Removed "Emulation" menu; - Improved the "Logger" tool; - Added a new "Image Viewer" tool.

JPCSP v0.5 (March 09, 2010):

-> Lots of code cleanups;

-> Graphical improvements: - Shader improvements; - VideoEngine optimizations; - Textures handling fixes;

-> Implementation of interrupts' management: - Implemented Alarm, VTimer and VBlank interrupts;

-> Saving/Loading improvements: - Implemented LIST_LOAD and LIST_SAVE modes; - Improved mode 8 (MODE_TRY);

-> Improvements for faked MPEG functionalities: - Implemented partial YCbCr mode support; - Implemented partial PSMFPlayer faking;

-> Inclusion of multi-language packs: - Added English, French, German, Spanish, Catalan and Lithuanian packs;

-> Beggining of threaded IOAsync operations implementation;

-> General fixes for module loading;

-> Small improvements of HLE functions.


1. Getting started:

Be sure to have JRE (Java Runtime Environement) installed in your computer before attempting to run JPCSP.

NOTE: It is strongly advised that even on a 64-bit OS, you should install the 32-bit JRE release and use JPCSP's 32-bit version, for compatiblity reasons.

If you've downloaded the Windows version, use the batch (.bat) files located inside JPCSP's main folder (start-windows-x86.bat or start-windows-amd64.bat).

If you've downloaded the Linux version, use the shell script (.sh) files located inside JPCSP's main folder ( or

If you've downloaded the MacOSX version, just double click the application bundle to start JPCSP.

2. Loading/Running applications:

To load an ISO/CSO image, you need to place it under the "umdimages" folder (this folder can be changed under Options > Configuration > General). For homebrew, place the application's main folder (which should contain the EBOOT file) under ms0 > PSP > GAME.

To know which games are currently compatible with the emulator, you can check JPCSP's forum for the latest news and an updated compatibility list post.

The games tagged as "Encrypted" cannot be loaded by regular means. The only legal option is to own a PSP and use it to decrypt your own games' boot file.

3. Usage:

The "File" menu allows you to load UMD images (Load UMD), homebrew applications (Load MemStick), and any other file such as demos (Load File). It also allows to capture and load the current RAM memory and GPR registers' state to a file, so it can be used as an additional save option (Save/Load Snapshot).

The "Options" menu contains dedicated settings for "Video" (Rotate and Screenshot), "Audio" (Mute) and "Controls" features, as well as the "Configuration" menu.

The "Debug" menu contains all the advanced features of the emulator such as the logger, the debugger and the memory viewer (see section 5. Advanced features).

The "Cheats" menu allows you to apply cheats to the current application.

The "Language" menu allows you to change the language of the emulator.

The "Help" menu contains the "About" window.

3. Command-Line options:

Usage: java -Xmx512m -jar jpcsp.jar <OPTIONS>

 -d, --debugger             Open debugger at start.
 -f, --loadfile FILE        Load a file.
                            Example: ms0/PSP/GAME/pspsolitaire/EBOOT.PBP
 -u, --loadumd FILE         Load a UMD. Example: umdimages/cube.iso
 -r, --run                  Run loaded file or umd. Use with -f or -u option.

4. System Requirements:


Windows 32bit or 64bit / Linux 32bit or 64bit / Mac OSX CPU: Pentium 4 and up GPU: Any graphic card supporting OpenGL 2.0 and up 1GB RAM


Windows Vista / Windows 7 (use Jpcsp 32bit even on 64bit OS to have sound and video support) CPU: Dual core @ 2.5 GHz GPU: Always install the latest drivers 2GB RAM or more

5. Advanced features:

- Font Override: It is possible to override the font used in the log window by editing the file. You can specify a system font name, such as Arial or a TTF file name. We suggest Mona for partial Japanese character support. Alternatively you can install extended language support in Windows from the Regional Settings in Windows Control Panel, you will need a Windows CD and around 300mb disk space.

Please note if a font does not work it is a limitation of Java, not JPCSP.

- Game Pads: We don't support game pads in JPCSP yet, but you may use 3rd party software that maps your pad's buttons to the keyboard.

- Patch files: To avoid repeatedly editing the settings each time you want to play a different game you can save them in a patch file that will get automatically loaded with the game. Patch files go in the "patches" directory and are named after the game's Disc ID.

Please note when a game is using a patch file all compatibility settings in the user interface will be overridden regardless of their state.

- Media Engine: NOTE: Currently, only supported in 32-bit Windows. The "Media Engine" can be enabled under "Options" > "Configuration" > "Misc". You also need to unpack a folder called ffmpeg-natives.7z located under lib > windows-x86. This allows JPCSP to use the FFMPEG's wrapper Xuggler to decode and playback ingame videos (instead of faked MPEG data) and audio (ATRAC3 only, ATRAC3+ is not supported yet).

- Debug Tools (under "Debug" > "Tools"):

  • Logger:

The logger is a tool that can be enabled under "Debug" > "Tools" > "Logger" > "Show Logger". This opens an additional window that keeps track of the internal functioning of the current application in the log4j style. With this tool you can check which syscalls are called by the application, which code blocks are being compiled by the compiler and so on.

You can also customize it's usage by going to "Debug" > "Tools" > "Logger" > "Customize...". There you can specify general settings like opening this window at startup, preview the current log4j settings' file (LogSettings.xml), output the logging information into one file (formatted HTML or plain TXT) or several splitted files and even change the logging method in use (GPU log only, for example).

Note: After these modifications are applied, you must press the "Generate new settings file" button to update the external log settings' file. The changes in "Settings" and "Advanced" tabs are not saved by the emulator so the user can easily regenerate the original file.

  • Debugger:

The debugger allows you to view the disassembly, place, export and import breakpoints, step through instructions and override the program counter. The contents of the GPR and FPR are present in the side bar. Raw memory and VFPU registers are available in separate windows.

There are some other miscellaneous features in the side bar: -> GPI switches and GPO indicators; -> GE Capture: The GE is the graphics unit. We allow you to capture and replay 1 display list. All textures used in the display list will be saved to the tmp directory.

For best results run replays in the same game the capture was taken in.

  • Memory Viewer:

Displays the current's application raw RAM memory.

  • Image Viewer:

Displays images directly loaded from the VRAM.

  • VFPU Registers:

Contains internal information on VFPU oprations.

  • Instruction Counter:

Lists all instructions and their frequency for the currently loaded program.

  • File IO Logger:

Shows all IO activity. Useful for developers to make sure they are reading files once only and as quickly as possible. It can also tell you if you have forgotten to close a file handle.

  • ELF Header Information:

Shows ELF section and program headers parsed from the application's main boot file.

- Profiler: The profiler is a method used by JPCSP to analyse repeated code sequences in order to allow further optimization. If you wish, you can turn this feature on under "Options" > "Configuration" > "General". The data will be saved for a certain application after closing the emulator. Use "Reset Profiler Information" under "Debug" to clear the saved data.

- ISO contents: You can dump the current ISO/CSO image's contents into an illustrative .txt file. In order to do this, go to "Debug">"Dump ISO to ISO-index.txt".