J2ME emulators

From Emulation General Wiki
Revision as of 03:07, 3 August 2026 by Shinovon (talk | contribs)
Jump to navigation Jump to search
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 and Bemobi Apps Club. More info on them can be found in this article.

Comparison

Before editing, review the getting involved and recommended pages. See system requirements page for performance demand of the emulators.
See tables for enhancements and hardware features & peripherals.
For more details such as licensing, programming language, emulation method, visit each emulator’s dedicated page.

Standalone emulators

Name Platform(s) Active? Latest version License Compatibility Accuracy VM Mascot Capsule 3D Recommended
PC
FreeJ2ME-based FreeJ2ME-Plus Java Windows Linux macOS Web 1.52

Nightly

GPLv3
BSD-3-Clause
94.93%
730 out of 769 reported titles
High Host JVM
FreeJ2ME (fork) Java Windows Linux macOS Releases GPLv3
BSD-3-Clause
Mid Host JVM ✓ (impl. from JL-Mod)
FreeJ2ME Java Windows Linux Linux ARM git GPLv2
BSD-3-Clause
Mid Host JVM ~[note 1]
KEmulator KEmulator nnmod / nnx64 Java Windows Linux macOS 2.21.4

git

Proprietary
The decompiled code used in KEmulator nnmod/nnx64 is available.
High Host JVM [note 1]
KEmulator Java Windows 0.9.3

1.0.3

Proprietary Mid Host JVM ~[note 1] ~
MicroEmulator Java Windows macOS Linux 2.0.4 Apache 2.0 (Permissive) Mid Host JVM ~
EKA2L1 Windows macOS Linux Automatic CI builds GPLv3 (Copyleft) Mid KVM (Symbian)
(Only MIDP 1.0 - S60v1)
GameMagic S60 Windows 1.2.1 Proprietary Low
Jademula Windows 0.23

git

GPLv2 (Copyleft) Mid Host JVM
MahoLator Windows Linux 2024.324.0 Proprietary
Only the JVM source is available.
Mid Custom
ME4SE Java 2.2.0 ? Mid Host JVM
Midp-Emulator Windows 1.31 Proprietary Low
MidpX (NHAL Win32 Emulator) Windows 1.0.1

midp2exe

Proprietary Low
Minisoyo Windows 0.0.2 Proprietary Low
MPowerPlayer

MPowerPlayer SDK

Windows Linux macOS 2.0

Build 1185

Proprietary Low
Pstros Java 1.5.2

1.6.1

Proprietary Mid Host JVM
SquirrelJME Java Windows Linux macOS 0.3.0

libretro core

MPL 2.0 (Copyleft) Aims for 100% Custom
SJ Boy Windows Beta 4

Special Edition

Mid-Low
midp-emulator Java git ? Low Host JVM ?
Mobile
J2ME Loader-based J2ME Loader Android 1.8.2

dev

Apache 2.0 (Permissive) High Host JVM

(Dalvik dynarec)

JL-Mod (JL fork) Android 0.87.1

Development build

Apache 2.0 (Permissive) High Host JVM

(Dalvik dynarec)

Zhixiaoyou (JL fork) Android 1.2 Proprietary Mid Host JVM

(Dalvik dynarec)

Java by @shifat100 KaiOS ~ KaiStore Proprietary Low ~
KarinME (Based on MicroEmu) Maemo 3.0.1 Proprietary Mid ~
Coretek Delta java manager Windows Mobile 2006d Proprietary ?
CrEme JVM Windows Mobile 4.12 Proprietary ?
Esmertec Java (jeodek) Windows Mobile 20070425 build Proprietary ?
IBM J9 Windows Mobile 6.1.0 Proprietary ? J9 VM
J2ME Runner Android 2.0.3.7

Netmite.com midp2apk

Proprietary Low
J2meJS-based J2meJS KaiOS FirefoxOS git Proprietary Low
Project Kava KaiOS git Proprietary Low
Jbed Android Windows Mobile 2.3.1 (Android)

2010 (WinMobile)

Proprietary Low
Jblend Android Windows Mobile 0.1 (Android)

Full-screen (WinMobile)

Proprietary Low
Micro Emulator (Converter) Android Maemo Android

Maemo

Apache 2.0 (Permissive) Low Host JVM
midp4palm PalmOS 1.0 ? ?
midpath4dingoo Dingoo 3.0 GPLv2 (Copyleft) ?
Mitac JVM Windows Mobile Build Proprietary ?
PhoneME Advanced-based (unofficial) phoneME (unofficial) Android Maemo MeeGo Windows Mobile Windows CE git

b168 rev20547

GPLv2 (Copyleft) Low PhoneME
phoneME Feature-based phoneME-feature devices (unofficial) Symbian Windows CE git GPLv2 (Copyleft) Low phoneME CLDC
Reference Implementation-based SVN Dump GPLv2 (Copyleft) Reference

Implementation

KVM (Reference

Implementation)

Vendor Specific
TAO Intent Java MIDlet manager Windows Mobile 1.1 build Proprietary ?
JarPlay iOS iPadOS ? App Store ? ? ?
Manic EMU iOS iPadOS 2.0.0 AGPLv3 (Copyleft) ? ? ? ? ?
phoneME ? ? ? ?
Console
Midpath RetroFW git GPLv2 (Copyleft) Mid ~
phoneME Advanced-based Bittboy-J2ME Bitt-Boy Pocket-Go (Miyoo) git GPLv2 (Copyleft) Mid phoneME CLDC ~
phoneME Feature-based phoneME (unofficial) GP2X GP2X Wiz Caanoo git GPLv2 (Copyleft) Mid phoneME CLDC ~
PSPKVM PlayStation Portable 0.5.5 Final Edition

git

GPLv2 (Copyleft) Mid phoneME CLDC ~
Pstros-nds Nintendo DS 0.7.2 r6

git

? Low KVM
Browser
FreeJ2ME-Plus Web Website GPLv3
BSD-3-Clause
High-Mid CheerpJ ? ~
phoneME-based web-j2me Web Website ? ? phoneME CLDC ? ~
JS2ME FirefoxOS git MIT (Permissive) ? ?
Pluotsorbet FirefoxOS git GPLv2 (Copyleft) ? ?

SDKs

Name Platform(s) Active? Latest version License Compatibility Accuracy VM Mascot Capsule 3D Recommended
LG SDK Windows 1.5 Mirror Proprietary Mid ~
Motorola SDKs Windows 4.1

5.2.1

Proprietary Mid ~
Motorola iDEN SDK Windows Mirror Proprietary Mid ~
Nokia SDKs Windows Part 1

Part 2

Part 3

Proprietary Mid ~
Oracle Java ME SDK-based Oracle Java ME SDK Windows macOS 3.0 Proprietary Mid KVM ~
Samsung Java SDK Windows 1.2.2 Mirror Proprietary Mid KVM ~
Sony Ericsson SDK Windows 2.5.0.6

Mirror

Proprietary Mid KVM ~
Siemens SDKs Windows Site 1

Site 2

Proprietary Mid ~
Zucotto Wireless Whiteboard SDK Windows 2.0 Proprietary Low

Running emulators on emulators

Name Platform(s) Through Active? Latest version License Compatibility Accuracy VM Mascot Capsule 3D Recommended
J2ME Loader-based J2ME Loader Switch Windows Linux Windows/Linux:

Android emulators Nintendo Switch: Switchroot

Template:J2ME LoaderVer [+]

git

dev

Apache 2.0 (Permissive) High Host JVM

(Dalvik dynarec)

JL-Mod (JL fork) Switch Windows Linux Windows/Linux:

Android emulators Nintendo Switch: Switchroot

This page is a candidate for deletion. The reason is:

"duplicate template"

If you disagree with the candidate, explain why at the talk page or improve the page and remove the {{delete}} tag.

Remember to check for any active links to the page and its history before deleting.

git [+]

Development build

Apache 2.0 (Permissive) High Host JVM

(Dalvik dynarec)

phoneME Feature-based PSPKVM Android iOS Windows macOS Linux Linux ARM PlayStation Vita Switch Symbian BlackBerry MeeGo Pandora Dragonbox Pyra

Run J2ME apps on BlackBerry 10 - J2ME loader (and possibly PlayBook through PPSSPP)

Vita: Adrenaline

Others: PPSSPP

0.5.5 Final Edition

git

GPLv2 (Copyleft) Mid phoneME CLDC ~

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 MIDP, DoJa and Java ME 8, as well as numerous vendor-specific APIs such as 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 KEmulator nnmod / nnx64
Automatic DRM soft-patching ✓ (vServ, Flexion)
Choosing APIs to enable
Custom screen resolutions ~ (Via config file)
Custom soundbanks/soundfonts ✓ (SF2, GM) ✓ (SF2)
Disabling sleep calls (FPS unlock)
Media ripping
Performance limit ✓ (1-60 FPS or uncapped) ✓ (1-120 FPS or uncapped)

Hardware features

Name FreeJ2ME-Plus KEmulator nnmod / nnx64
Nokia monophonic tone (.ota/.rng) playback support ~
Siemens monophonic tone playback support
SMAF (.mmf) playback support ~
Pseudo playback using MIDI. The playback quality depends on the type of SMAF.
✓ (Win32 only)
You need to copy M7_EmuSmw7.dll and M7_EmuHw.dll from the MEXA emulator.
Standard MIDI file (.mid) playback support

Additional APIs

Name FreeJ2ME-Plus KEmulator nnmod / nnx64
CJSP API (com.gcjsp.v10)

This is a derivative of Vodafone VSCL 1.0/1.1 API used on some devices.

?
FarEasTone FSCL API (tw.com.fareastone.v10)

This is a derivative of Vodafone VSCL 1.0/1.1 API used on some devices.

?
j_phone SoftBank JSCL API (com.j_phone / com.jblend) ? ~
SoftBank MEXA API (com.mexa / com.j_phone / com.jblend) ? ~
KDDI KDDI EZ Appli (J) API (com.kddi.oap)
KDDI ezplus API (com.kddi / com.jblend)
KTF KTF WIPI API (org.kwis.msf / com.ktf.kfc / wec)
LG MMPP API (mmpp / com.velox)
Mascot Capsule V3 API (com.mascotcapsule.micro3d.v3)
Microedition JSR184 - Mobile 3D Graphics (M3G) API (javax.microedition.m3g) ~
JSR211 - Content Handler API (javax.microedition.content) ~ ~
JSR256 - Mobile Sensor API (javax.microedition.sensor)
NEC API (com.nec) ~
Nokia Nokia In-App Payment API (com.nokia.mid.payment / com.nokia.payment) ~ ~
Nokia UI API (com.nokia)
Project Capuchin API (com.sonyericsson.capuchin)
Samsung API (com.samsung.util)
Siemens Siemens API (com.siemens) ~ ~
Siemens S60 Game API (com.siemens.s60.lcdui.game) ?
Sprint API (com.sprintpcs)
Vodafone Vodafone EnhancedGraphics API (com.vodafone.extension) ? ?
Vodafone VSCL 1.0/1.1 API (com.vodafone.v10)
Vodafone VSCL 2.0 API (com.vodafone) ? ?

See also

Notes

  1. 1.0 1.1 1.2 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

References