From GameBrew

AuthorSleepper, [email protected], Anweifeng, AJ Milne
Last Updated2011/01/10
TypeOther Emulators
Version0.5.5 final

PSPKVM is a Java ME Emulator, porting from the SUN's phoneMEFeature project to enable MIDP/JavaME applications running on PSP.

Note: You can also find phoneMEAdvanced PSP porting from another project pspME.


  • MIDP 2.0.
  • Nokia UI APIs (partial).
  • WMA1.1(JSR120) stub.
  • Networking (By PSP's WIFI).
  • Java AMS with MVM supporting.
  • Several input methods: QWERTY/Abc/Symbol/.
  • Directly browse and run from local JAD/JAR file, and auto-install without interrupting.
  • JPEG support.
  • MIDI & Wave audio playback support.
  • Device emulation (for different screen sizes and key codes at installation time/Selectdevice menu).
  • Change default key assignment for specific application.
  • JSR75 (File Connection).
  • Virtual Keyboard Input + Chinese Input Method.
  • Sony OSK Input (OE version only).
  • JSR179 (GPS) (OE version only).
  • Freetype2 font rendering.
  • JSR226 (SVG).
  • JSR172 (Web Service).
  • MP3 playback.


The release contains 3 versions:

  • 0.5.5-cfw-allinone - Use this if you have not installed any previous versions.
  • 0.5.5-cfw-upgrade - Use this if you have previously installed 0.5.4 or a 0.5.5 test version.
  • 0.5.5-cfw-allinone-minimal - This package do not contain TTF or MIDI files. They are appropriate if you expect to install your own fonts, or do not intend to use TTF fonts, and do not intend to use MIDI.

To install, copy the folder PSPKVM to ms0:/PSP/GAME/.

User guide

How to install and run a MIDlet

To install and run a MIDlet from the Memory Stick:

  • Select Find Application in the AMS (the item on the top).
  • Select Install from memory stick (ms0:/).
  • Browse the file system of your Memory Stick, and select the jad or jar to run.
  • After that, the jad/jar will be automatically installed and run. You can choose the installed application from the AMS the next time you want to run it.

To install and run a MIDlet from the web:

  • Select Find Application in the AMS (the item on the top).
  • Select Install from http.
  • Enter the address of the jad or jar file to run.
  • After that, the jad/jar will be automatically installed and run. You can choose the installed application from the AMS the next time you want to run it.

Text input and virtual keyboard

  • It uses phone keypad mapping as default settings for text input. You can pop up a menu by pressing Right Soft-button to change to other input methods.
  • In addition, most MIDlets will invoke your selected virtual keyboard for involved text entry tasks, as these provide for much easier text input. You can enable them in the VM Config midlet in the System Midlets folder.
    • AWF virtual keyboard (Default).
    • Danzeff virtual keyboard.
    • Semichordal virtual keyboard.


  • In any application, you can use the combination keys to send the currently running MIDlet to the background, and the AMS screen will be shown.
  • The backgrounded MIDlet is shown highlighted, and you can choose another MIDlet to run without stopping the previous MIDlet.
  • To bring a midlet running in the background to the foreground, just click the MIDlet item from AMS.

Connecting to the network

  • Before a Java MIDlet can use the network, you need to connect your PSP to a WiFi hub. To do this, select Network Setup in the AMS (the second item in the AMS MIDlets list).
  • All the WiFi connections you've set up on your PSP will be listed. Select one and wait for an alert popup telling you the connection attempt has been successful.
  • Once the message "Successfully connected by profile xxx" appears, your network is ready, and you can go back to the AMS and run MIDlets that use the network.
    • For 3.xx OE users, you don't have to set up network in the Network Setup menu.
    • When the first MIDlet want to access the network, a PSP network setup dialog will popup and prompt you to start a connection.
    • And also, you can call up the network setup dialog at any time with the combination keys.

Selecting a device to emulate

  • When the user installs a Midlet, a Device Select menu will appear. Choose your preferred device size and model here, and press the Circle key to select it.
  • If you want to change the preferred device setting, go back to the AMS and move the highlight onto the MIDlet whose setting you want to change, then select Select Device from the menu.

Compatibility List


Text input:

R/L - Shift (Combo key)

Cross - NUM0

Square - NUM1

Up - NUM2

Triangle - NUM3

Left - NUM4

Shift+Circle - NUM5

Right - NUM6

Shift+Square - NUM7

Down - NUM8

Shift+Triangle - NUM9

Shift+Select - *

Shift+Start - #

Shift+Cross - Clear

Circle - Select

Select - Left Soft

Start - Right Soft

Analog - Up/Down/Left/Right


L+R+Triangle - Multi-tasking key (click to return AMS and put MIDlet to background)

L+R+Cross - Exit current running MIDlet

L+R+Square - Call up the network setup dialog

Circle - Accept, Select

Cross - Cancel, Go back

Accept/Cancel can be changed in System midlets > Configure VM > Keymap settings.







Known issues

  • Not running on 5.02 Gen-A firmware.
  • javacall_file_truncate isn't ported, so some file truncating operations, including some RMS operations, may not work as expected.
  • Multimedia temporary files may be left on your memory stick occasionally, especially after a VM crash. They're usually not big, but if you want to delete them manually, go to your PSP's /PSP/GAME/pspkvm/ directory, find the files whose names look like xxxxxxxx_tmp_mus.mid, and delete them.
  • Fileconnection rmdir operation may fail for unknown reasons.
  • LocationProvider.getState() will always return AVAILABLE once the GPS is initialized, so LocationListener.providerStateChanged() doesn't work as expected.


v0.5.5 2011/01/10

  • MP3 support.
  • AMS UI enhancement.
  • Improved i18n support.
  • Truetype font bug fixes.
  • Network optimization. Resolve the randomly network drop issue.
  • Fix platformRequest and HttpInstaller problem, now can handle HTTP 302 response.
  • Enlarge HTTP buffer for better downloading speed.
  • Graphics optimization.
  • Some minor bug fixes (Please refer to SVN log).

External links