J2ME emulators

Revision as of 10:37, 11 February 2026 by Oyikegak (talk | contribs) (Emulators)
Java Platform, Micro Edition
Application(s) Embedded systems, mobile devices
Status Inactive
Emulated
For emulators that run on J2ME, see Emulators on J2ME.

Java Platform, Micro Edition, Java ME, Java 2 Platform, Micro Edition, or J2ME is a free cross-platform language capable of working in devices with highly reduced capabilities. It was basically Java stripped down to the bare essentials. While originally not intended for games (until its more advanced game-oriented API came), it became the de-facto market standard for cell phone gaming - due in no small part to the SDK being free and without licensing costs.

Mascot Capsule 3D is a proprietary 3D graphics engine developed by Hi Corporation. It was mostly used in Japanese cellphone devices, but it also made it overseas featured in many Sony Ericsson devices. Many developers made use of this tech to bring higher quality 3D graphics to the Sony Ericsson versions of their J2ME games.

A preservation project called Kahvibreak was focusing on collecting a database of J2ME and Mophun games, as well as on maintaining a launcher with a selection of emulators. However, the project became abandoned upon the disappearance of Kahvibreak's lead maintainer in 2022, with the emulator selection becoming outdated. In addition, the game database has raised quality concerns.

Currently, the Android-exclusive J2ME Loader is able to run most 2D and 3D (including Mascot Capsule 3D) J2ME games. On desktops, FreeJ2ME-Plus is excellent for 2D games, but there's a minority of games making use of obscure vendor-specific APIs supported only on their respective SDK tools. Given the scarcity of such tools, this list aims to comprehensively list the available ones for convenience.

While J2ME phones are not manufactured anymore, various J2ME game/app storefronts are still open and functional, operating on either a store or a subscription basis, with the two major content providers being Gameloft Store (redirects to the applicable version of the store if available and opened on a phone) and Bemobi Apps Club (store list per country). Note that not all versions of the stores continue to have the J2ME sections open.

Emulators

If you don't want to mess with these tools, just use Kahvibreak - preservation effort for J2ME games.
Name Derived from... VM Platform(s) Latest version Active License Compatibility Accuracy Mascot Capsule 3D Recommended
PC / x86 (Emulators)
FreeJ2ME-Plus FreeJ2ME Host JVM         1.51
Nightly
GPLv3
BSD-3-Clause
94.93%
730 out of 769 reported titles
High ~[lower-alpha 1]
KEmulator nnmod / nnx64 KEmulator 1.0.3 Host JVM       win32 2.20
multi-platform 2.20
Proprietary[lower-alpha 2] High [lower-alpha 1]
EKA2L1 KVM       Automatic CI builds GPLv3 (Copyleft) Mid ~
(Only MIDP 1.0 - S60v1)
FreeJ2ME (fork) FreeJ2ME Host JVM       Releases GPLv3
BSD-3-Clause
High-Mid ✓ (impl. from JL-Mod) ~
SquirrelJME Custom   0.3.0
libretro core
MPL 2.0 (Copyleft) Aims for 100%
MahoLator Custom     2024.324.0 Proprietary[lower-alpha 3] Mid
FreeJ2ME Host JVM       git GPLv2
BSD-3-Clause
Mid ~[lower-alpha 1]
KEmulator Host JVM   0.9.7
0.9.3
1.0.3
Proprietary Mid ~[lower-alpha 1]
SJ Boy   Beta 4
Special Edition
Mid-Low
Jademula ? Host JVM   0.23git GPLv2 (Copyleft) Mid
ME4SE ? Host JVM   2.2.0 ? Mid
Pstros ? Host JVM   1.5.2
1.6.1
Proprietary Mid
MicroEmulator Host JVM         2.0.4 Apache 2.0 (Permissive) Mid
Minisoyo ? ?   0.0.2 Proprietary Low
MidpX (NHAL Win32 Emulator) ? ?   1.0.1
midp2exe
Proprietary Low
MPowerPlayer
MPowerPlayer SDK
? ?       2.0
Build 1185
Proprietary Low
Midp-Emulator ? ?   1.31 Proprietary Low
GameMagic S60 ? ?   1.2.1 Proprietary Low
midp-emulator Host JVM   git ? Low ?
PC / x86 (SDKs)
Oracle Java ME SDK Custom     3.0 Proprietary Mid ~
Nokia SDKs ? ?   Part 1
Part 2
Part 3
Proprietary Mid ~
Sony Ericsson SDK Oracle Java ME SDK Custom   2.5.0.6
Mirror
Proprietary Mid ~
Siemens SDKs ? ?   Site 1
Site 2
Proprietary Mid ~
Motorola SDKs ? ?   4.1
5.2.1
Proprietary Mid ~
Motorola iDEN SDK ? ?   Mirror Proprietary Mid ~
LG SDK ? ?   1.5 Mirror Proprietary Mid ~
Samsung Java SDK Oracle Java ME SDK Custom   1.2.2 Mirror Proprietary Mid ~
Zucotto Wireless Whiteboard SDK ? ?   2.0 Proprietary Low
Mobile / ARM
J2ME Loader Host JVM
(Dalvik dynarec)
  [1]

git
dev

Apache 2.0 (Permissive) High
JL-Mod (JL fork) J2ME-Loader Host JVM
(Dalvik dynarec)
  [2]

Development build

Apache 2.0 (Permissive) High
Zhixiaoyou (JL fork) J2ME-Loader Host JVM
(Dalvik dynarec)
  1.2 Proprietary Mid
J2ME Runner ? ?   2.0.3.7
Netmite.com
midp2apk
Proprietary Low
Jbed ? ?     2.3.1 (Android)
2010 (WinMobile)
Proprietary Low
Jblend ? ?     0.1 (Android)
Full-screen (WinMobile)
Proprietary Low
Java by @shifat100 ? ?   KaiStore ~ Proprietary Low ~
Project Kava J2meJS ?   git Proprietary Low
J2meJS ? ?     git Proprietary Low
phoneME
SVN Dump Reference
Implementation
KVM (Reference
Implementation)
GPLv2 (Copyleft) Reference
Implementation
Vendor Specific
phoneME (unofficial) PhoneME Advanced
(unofficial)
PhoneME    
 
   
git
b168 rev20547
GPLv2 (Copyleft) Low
KarinME (Based on MicroEmu) ? ?   3.0.1 Proprietary Mid ~
midpath4dingoo ? ?   3.0 GPLv2 (Copyleft) ?
midp4palm ? ?   1.0 ? ?
Coretek Delta java manager ? ?   2006d Proprietary ?
Esmertec Java (jeodek) ? ?   20070425 build Proprietary ?
TAO Intent Java MIDlet manager ? ?   1.1 build Proprietary ?
IBM J9 ? ?   6.1.0 Proprietary ?
Mitac JVM ? ?   Build Proprietary ?
CrEme JVM ? ?   4.12 Proprietary ?
Micro Emulator (Converter) Host JVM     Android
Maemo
Apache 2.0 (Permissive) Low
phoneME-feature devices (unofficial) phoneME Feature phoneME CLDC     git GPLv2 (Copyleft) Low
JarPlay ? ?     App Store ? ? ?
Consoles
PSPKVM phoneME Feature phoneME CLDC   0.5.5 Final Edition
git
GPLv2 (Copyleft) Mid ~
Bittboy-J2ME phoneME Advanced phoneME CLDC  
  (Miyoo)
git GPLv2 (Copyleft) Mid ~
Midpath ? ?   git GPLv2 (Copyleft) Mid ~
phoneME (unofficial) phoneME Feature phoneME CLDC    
 
git ~ GPLv2 (Copyleft) Mid ~
Pstros-nds ? ?   0.7.2 r6git ? Low
Browser
JS2ME ? ?   git MIT (Permissive) ? ?
Pluotsorbet ? ?   git GPLv2 (Copyleft) ? ?
Name Derived from... VM Platform(s) Latest version Through Active License Compatibility Accuracy Mascot Capsule 3D Recommended
J2ME Loader Host JVM
(Dalvik dynarec)
      [3]

git
dev

Windows/Linux:
Android emulators
Nintendo Switch:
Switchroot
Apache 2.0 (Permissive) High
JL-Mod (JL fork) J2ME-Loader Host JVM
(Dalvik dynarec)
      [4]

Development build

Windows/Linux:
Android emulators
Nintendo Switch:
Switchroot
Apache 2.0 (Permissive) High
PSPKVM phoneME Feature phoneME CLDC          
     
   
      [lower-alpha 4]
0.5.5 Final Edition
git
Vita: Adrenaline
Others: PPSSPP
GPLv2 (Copyleft) Mid ~
  1. 1.0 1.1 1.2 1.3 KEmulator nnmod has the choice between JL-Mod's implementation and iDKDoJa's software renderer, the latter also available as an addon for FreeJ2ME and the original KEmulator: 1.0.3 modded + Mascot Capsule 3D support
  2. The decompiled code used in KEmulator nnmod/nnx64 is available.
  3. Only the JVM source is available.
  4. Run J2ME apps on BlackBerry 10 - J2ME loader (and possibly PlayBook through PPSSPP)

Comparisons

FreeJ2ME
An open-source implementation over Java SE with a libretro core, but with less extra features than KEmulator. While the original FreeJ2ME is effectively abandoned, the fork FreeJ2ME-Plus by a former FreeJ2ME contributor made many improvements and fixes, to the point of possibly bringing 2D game compatibility on par with J2ME Loader. Preliminary M3G (Mobile 3D Graphics API) support has also been introduced as of recently.
J2ME Loader & JL-Mod (Mascot Capsule 3D compatibility list)
This is one of the highest compatibility J2ME emulators available. Converts .JAR files offline using its own resources. Easily launches both 2D & 3D apps. Supports different keyboard layouts and customization. It is highly accurate, with the right frame rate for each game, as well as vibration. Has slightly improved performance through hardware acceleration, but games won't run too fast. Supports various vendor APIs, including its own implementation of Mascot Capsule 3D. JL-Mod is a fork that's updated more frequently, with recent work being done on soundfont support and SoftBank API implementation.
EKA2L1
According to the documentation, supports a very limited number of J2ME games (specifically those released for Nokia s60v1) by running those on the Series 60 JVM. The firmware has to be obtained separately.
SquirrelJME
Unlike most J2ME emulators, which recreate the J2ME APIs on top of the host system’s Java runtime, SquirrelJME is a project that reimplements the Java Virtual Machine itself (aiming for Java ME 8 and MIDP, as well as numerous vendor-specific APIs such as DoJa, JSCL, Nokia UI, WIPI, and more[1]), By taking this approach, SquirrelJME aims to provide deeper emulation with full low-level compatibility, such as accurate memory management and thread behavior, while also enabling portability to environments where no JVM is available. Under heavy development. Note that while the standalone builds are capable of running a few games as of this writing (albeit with various bugs), the libretro core is non-functional.
KEmulator / KEmulator nnmod
Historically has been known for being compatible and versatile compared to others, with certain versions introducing interesting features. Originally a shareware product, the original author sold it to some other entity (possibly Gameloft) in the late 2000s to then quit J2ME development. KEmulator did, however, receive an unofficial modded version (based on a decompilation) in the form of KEmulator nnmod, which has fixed many bugs of the original (including the infamous Doom II RPG save issue) and added various features, such as support for many vendor-specific APIs[2] and the ability to play SMAF (.mmf) files by copying DLLs from the MEXA emulator (Win32 version only)[3]. The latest versions of KEmulator nnmod can boast advanced features for homebrew J2ME app development.
Nokia SDKs
A set of different device simulators released by Nokia along with their J2ME SDKs. Keyboard bindings are not friendly for playing games. Some of them are buggy. The Nokia 3410 SDK emulator is capable of running some ancient black & white J2ME games no other emulator can.
Sony Ericsson SDK
J2ME implementation released by Sony Ericsson along their J2ME SDK. Includes a Mascot Capsule 3D implementation, thus usable as a J2ME Loader alternative in that regard, though the keybinds are likewise not friendly for playing games.
Siemens SDKs
Device simulators released by Siemens along their J2ME SDKs. Can run some older games that depend on old Siemens APIs.
Motorola SDKs
J2ME development kits released by Motorola. Can run some older games that depend on Motorola-specific APIs.
Motorola iDEN SDK
J2ME development kit released by Motorola. Can run some older games that depend on iDEN-specific APIs.
Samsung Java SDK
J2ME development kit released by Samsung. Can run some older games that depend on Samsung-specific APIs (Yamaha SMAF music may or may not be supported depending on version).
LG SDK
J2ME development kit released by LG for their devices.
Zucotto Wireless Whiteboard SDK
J2ME development kit released by Zucotto Wireless, provider of hardware-based Java bytecode execution solutions.
MahoLator
This is a newer project developing a JVM implementation of Java ME (aiming for MIDP 2.1 and below). It has shown fast progress over periods of time, and while compatibility is a mixed bag as of this writing (with no 3D support), the feature set is somewhat comparable already to that of KEmulator. Sadly, progress on the emulator has come to a halt, though it might eventually come back.
Pstros
Appears to have support for some obscure vendor-specific APIs that other emulators don't support.
SJ Boy
While it can run a few games not supported by the original KEmulator, it was made obsolete by modern emulators.
Minisoyo
Experimental emulator from the SJ Boy authors. Appears to properly emulate transparency on older games making use of Nokia APIs. To open a game, drag and drop the .JAR file onto the MiniSoyo window.
MidpX
One of the older emulators. Fixed low resolution (176x220) and compatibility, no handler app support. The installer may contain adware.
MPowerPlayer (MPowerPlayer SDK)
Emulator from a company that used to develop solutions to allow users to try J2ME game demos on their computer before purchasing them. Doesn't have any known advantageous features. Requires: JRE.
GameMagic S60
Early attempt at a commercial J2ME and N-Gage emulator. Has no real benefits over other offerings.
MicroEmulator
It's a pure Java implementation of Java ME.
J2ME Runner
Old tool, launches J2ME Applications on Android using native library. Apps have to be converted first, using Netmite.com. Overall 2D stability is acceptable, but 3D support almost does not work. Different types of keyboard & screen stics are included. Unfortunately, often experiences troubles with .JAR conversion Here and Catalog of games for Java J2ME Runner
Netmite.com
This is a Android J2ME Runner so that any J2ME or MIDP applications can run without modification. Developers can enter the Android Market quickly. You can use your familiar development environment such as J2ME and MIDP or easily port your existing J2ME Application to Android with minimum code change. Users can use java applications directly inside Android. J2ME apps converted found here
PSPKVM
Might be the first one that's open-source. Last update was in 2011. PSPKVM is a J2ME emulator for PlayStation Portable, port of Sun's open-source JavaME implementation phoneME Feature.
phoneME
This is the reference implementation of J2ME made initially by Sun Microsystems, now owned by Oracle Corporation.
phoneME (unofficial ports)
phoneME for Windows CE/Mobile and Android is an implementation of the phoneME open source J2ME application platform for your Windows Mobile phone or Android mobile device. There are two different platforms of the phoneME Virtual machine: phoneME Feature and phoneME Advanced. Beyond precompiled binaries of these VMs for WinCE and Android based operating systems, this website provides information, patches and instructions in order to compile the phoneME sources yourself.

Enhancements

Name FreeJ2ME-Plus J2ME Loader KEmulator nnmod SquirrelJME PSPKVM
Automatic DRM soft-patching ✓ (vServ, Flexion) ✓ (vServ, Flexion)
Choosing APIs to enable ? ?
Custom screen resolutions ~ (Via config file) ? ?
Custom soundbanks/soundfonts ✓ (SF2, GM) ~ (DLS - JL-Mod only) ✓ (SF2) ?
Disabling sleep calls (FPS unlock)
Media ripping ?
Performance limit ✓ (1-60 FPS or uncapped) ✓ (custom FPS or uncapped) ✓ (1-120 FPS or uncapped) ? ?

Hardware features

Name FreeJ2ME-Plus J2ME Loader KEmulator nnmod SquirrelJME PSPKVM
CLDC-1.1 ? ?
MIDP-2.0 ? ?
SMF (.mid) playback support ? ?
SMAF (.mmf) playback support ~ [* 1] ? ✓ (Win32 only[* 2]) ? ?
MFi (.mld) playback support ~ [* 3] ? ? ? ?
CMF (.pmd) playback support ~ [* 4] ? ? ? ?
JSR184 - Mobile 3D Graphics (M3G) API (javax.microedition.m3g) ~ ? ?
JSR211 - Content Handler API (javax.microedition.content) ? ? ~ ? ?
JSR256 - Mobile Sensor API (javax.microedition.sensor) ? ?
CJSP API (com.gcjsp.v10) ? ? ? ?
DoCoMo DoJa API (com.nttdocomo) ~ ? ? ? ?
DoCoMo Star API (com.docomostar) ? ? ? ? ?
FarEasTone FSCL API (tw.com.fareastone.v10) ? ? ? ?
KDDI ezplus API (com.kddi / com.jblend) ? ? ? ?
KDDI EZ Appli (J) API (com.kddi.oap) ? ? ? ? ?
KTF WIPI API (org.kwis.msf / com.ktf.kfc / wec) ? ?
LG MMPP API (mmpp / com.velox) ? ? ?
Mascot Capsule V3 API (com.mascotcapsule.micro3d.v3) ? ?
NEC API (com.nec) ? ? ? ? ?
Nokia UI API (com.nokia) ? ?
Nokia In-App Payment API (com.nokia.mid.payment / com.nokia.payment) ~ ~ ~ ? ?
Project Capuchin API (com.sonyericsson.capuchin) ? ? ? ? ?
Samsung API (com.samsung) ? ? ✓ (Win32 only) ? ?
Siemens API (com.siemens) ~ ? ?
Siemens S60 Game API (com.siemens.s60.lcdui.game) ? ? ? ?
SoftBank MEXA API (com.mexa / com.jblend / com.j_phone) ? ? ~ ? ?
SoftBank JSCL API (com.jblend / com.j_phone) ? ? ~ ? ?
Sprint API (com.sprintpcs) ? ? ? ?
Vodafone VSCL API (com.vodafone) ? ?
Vodafone EnhancedGraphics API (com.vodafone.extension) ? ? ? ? ?
  1. Pseudo playback using MIDI. And the level of completeness is still not very high.
  2. You need to copy M7_EmuSmw7.dll and M7_EmuHw.dll from the MEXA emulator.
  3. Pseudo playback using MIDI. And the level of completeness is still not very high.
  4. Pseudo playback using MIDI.

References

See also