From Emulation General Wiki
Revision as of 23:46, 6 April 2024 by Rtim (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Developer(s) Sleepper, M@x, Anweifeng, AJ Milne
Latest version 0.5.5 Final Edition
Active No
Platform(s) PlayStation Portable
Emulates J2ME
Website SourceForge
License GNU GPLv2

PSPKVM is an open-source J2ME emulator for PlayStation Portable.


PSPKVM is in a project to enable JavaME applications such as mobile games, to run on PSP. Originally developed by sleeper, the project was merged with pspMe on February 12 2008. The two developers decided to continue by keeping the better advantage from both projects. On March 31, before April Fools, they updated the KVM to version 0.3.0 slightly increasing the interface and playable applications. PSPKVM is a PSP port of Sun's open-source JavaME implementation phoneMEFeature. The objective of the phoneME project is to further expand the usage of Java Platform, Micro Edition (JavaME) technology in the mobile handset market. The project scope includes a focus on the mainstream feature phone segment with phoneME Feature software, and the emerging advanced phone segment with phoneME Advanced software.

Compatibility list[edit]


↑,↓, ← , → Analog Joystick
L + 〇 NUM5
L + □ NUM7
L + △ NUM9
SELECT Left menu key at the bottom of the screen (Left Soft)
START Right menu key at the bottom of the screen (Right Soft)
L + R + △ Minimize the application / Run the current program/game in the background
L + R + X Exist the application / Red-key (terminate the current game)
L + R + □ Connection Status
L / R Doesn't matter, they are interchangeable.

Supported devices[edit]

Devices Resolution
Nokia 240x320 / 320x240 / 352x416 / 480x272 / S30 (96x65) / S40 (128x128) / 6101 (128x160) / S60 (176x208) / 8801 (208x208) / N73 (240x320) / 320x240 (CW90) / 352x416 (CW90) 480x272 (CW90)
Motorola 240x320 / 320x240 / 352x416 / 480x272 / C650 (128x116) / Triplets (176x204) / E398 (176x204) / V600 (176x204) / E1000 (240x320) / 320x240 (CW90) / 352x416 (CW90) / 480x272 (CW90)
Sony Ericsson 240x320 / 320x240 / 352x416 / 480x272 / K300 (128x128) / K500 (128x160) / K700 (176x240) / K800 (240x320) / 320x240 (CW90) / 352x416 (CW90) / 480x272 (CW90)
Samsung E700 (128x143) / A620 (128x146) / E360 (128x160) / D500 (176x220) / D600 (240x320)
Siemens C65 (130x130) / CX65 (132x176)
Sagem myV55 (128x142) / my600 (176x196)
Sanyo 8100 (120x112) / 2300 (128x96) / 5400 (132x144) / 7400 (176x220)
Sharp GX10 (120x130) / GX15 (120x147) / 705 (240x294) / 905 (400x240)
LG C2000 (128x160) / CU400 (176x220) / VX8100 (176x203)
Audiovox CDM-8450 (128x96) / CDM-8615 (128x132) / CDM-8900 (128x132) / CDM-8910 (128x145)
Kyocera K10 (104x68) / K24 (128x148) / KX21 (160x116) / KX5 (176x204)
HTC Star Trek (240x266)


PSP Final Releases

Games sites[edit]


  • Nokia UI APIs (partial)
  • WMA1.1 (JSR120) stub
  • Networking (via the PSP's WiFi connection)
  • Java AMS with MVM support
  • 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. You can choose a device type to emulate for different screen sizes and key codes,

either at MIDlet installation time or from the "Select device" menu

  • Custom key assignment per application
  • JSR75(File Connection)
  • Virtual Keyboard Input
  • Chinese Input (Pinyin, Stroke)
  • JSR179 (GPS)
  • FreeType2 font support
  • JSR 226 (SVG)
  • JSR 172 (Web Service)
  • MP3 playback
  • Ability to install jar/jad files from Memory stick/via Wifi
  • Internet Connection for J2ME apps
  • Various keyboard options even internal OSK
  • Ability to use various profiles in order to get the best experience on your device
  • Easy to use application launcher
  • Compatible with a whole variety of J2ME applications


  • Graphic optimization (High)
  • JSR184 (Low)
  • MIPS JIT compiler and Interpreter generator (Low)

Known issues[edit]

  • 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.