FreeJ2ME-Plus is a fork of FreeJ2ME aimed at compatibility. It adds a Mascot Capsule v3 and an M3G (JSR-184) renderer for 3D games, DoJa support, per-game compatibility switches for titles that misbehave on a strict implementation, and speed hacks for slower hardware. Like the original, it emulates J2ME (Java 2 Micro Edition), the platform on which pre-smartphone mobile games were written.
The core is a front end rather than a reimplementation. It starts FreeJ2ME-Plus's own Java application and exchanges video, input, and settings with it. Because of this architecture, a Java runtime must be installed on the machine, and the file freej2me_plus-lr.jar must be in the frontend's system directory. The core cannot supply either of these.
Prerequisites
Both prerequisites are mandatory before the core can launch a game, and neither can be provided by the core itself.
- - Install a Java runtime on the machine where RetroArch runs.
- - Place freej2me_plus-lr.jar in the frontend's system directory.
Core options
- - Phone Resolution (Core Restart may be required) — sets the emulated phone screen size. The documented default is 240x320; the full list includes sizes such as 128x128, 176x208, 240x320, 320x240, and 480x800.
- - DoJa API Version — selects the DoJa API level. Documented values range from 20 to 200, with 200 shown as the default.
- - Rotate Screen — rotates the screen by 0, 90, 180, or 270 degrees; 0 is the documented default.
- - Phone Key Layout — selects the key mapping layout. Documented values are Default, KDDI, LG, Motorola/SoftBank/Sharp, Motorola Triplets, Motorola V8, Motorola A1000, Nokia Full Keyboard, Sagem, Siemens, and SKT; Default is the default.
The core reports 60 FPS, a base width of 320 and a base height of 240, and a maximum width and height of 800. The size in use follows the Phone Resolution core option, which defaults to 240x320. The supported pixel format is XRGB8888. Sound is produced by the Java application itself rather than sent through the frontend, so the frontend's audio settings do not apply to it.
Unsupported features
Saves are written by the Java application into its own directory under the frontend's save directory, so they survive, but they do not go through the frontend's save handling. Consequently, the core does not support save states, rewind, or netplay.
Reference table · Scroll horizontally to see all columns.
| Feature | Supported | Notes |
|---|---|---|
| Save files | Yes, outside frontend handling | Written by the Java application into its own directory under the frontend's save directory; they survive, but they are not managed by the frontend. |
| Save states | No | Not supported. |
| Rewind | No | Not supported. |
| Netplay | No | Not supported. |
Sources & references
Content responsibility: FrameTinker editorial desk. Source authors and software maintainers are credited separately below; this is not a claim of hands-on testing.
Published .
RetroArch: freej2me plus — official gaming software documentation https://raw.githubusercontent.com/libretro/docs/master/docs/library/freej2me_plus.mdRetrieved Oct 13, 2026Something doesn’t match your setup?
Suggest a correction
