
FreeJ2ME is an open-source Java ME emulator that allows users to play classic mobile Java games (J2ME) on modern devices. It supports a wide range of JAR files and offers two emulation methods: the standard emulator and RetroArch's libretro core. Both provide customizable controls and graphics options.
This package includes all necessary resources for full compatibility with Batocera out of the box.
FreeJ2ME can be installed via Batocera Unofficial Add-Ons (BUA) or directly through a terminal script.
Alternatively, run the following in a terminal:
curl -L bit.ly/drl-j2me | bash
This will install both:
After installation, a special launcher called -Update_j2me will appear in the Ports menu.
This feature ensures a flexible and smooth experience across different game types.
FreeJ2ME supports a wide variety of Java ME games from old Nokia, Sony Ericsson, and Motorola phones.
Java games will automatically appear in the Java menu when placed in:
/userdata/roms/j2me
.jar files to /userdata/roms/j2meMost common gamepads are auto-detected; you can remap buttons in the emulator options if needed.

| Gamepad Input | Key | Emulates |
|---|---|---|
| Start | Esc | FreeJ2ME Options |
| 🔺/X or L1 | Q | Options/Select |
| ⭕/A or R1 | W | Back |
| L2 | E | * |
| R2 | R | # |
| D-PAD or L-Analog | 1–9 | Number Pad |
| □ / Y | A | (Configurable / unused) |
| ✖️ / B | Enter | OK / Action Key |
| Input | Key | Emulates |
|---|---|---|
| D-PAD UP / L-Analog UP | Up Arrow | 2 |
| D-PAD DOWN / L-Analog DOWN | Down Arrow | 8 |
| D-PAD LEFT / L-Analog LEFT | Left Arrow | 4 |
| D-PAD RIGHT / L-Analog RIGHT | Right Arrow | 6 |
| R-Analog LEFT | Diagonal Top-Left | 1 |
| R-Analog UP | Diagonal Bottom-Left | 3 |
| R-Analog DOWN | Diagonal Bottom-Right | 7 |
| R-Analog RIGHT | Diagonal Top-Right | 9 |
| Input | Key | Emulates |
|---|---|---|
| D-PAD UP / L-Analog UP | Up Arrow | Navigate Up |
| D-PAD DOWN / L-Analog DOWN | Down Arrow | Navigate Down |
| D-PAD LEFT / L-Analog LEFT | Left Arrow | Navigate Left |
| D-PAD RIGHT / L-Analog RIGHT | Right Arrow | Navigate Right |
| □ / Y | A | (Configurable / unused) |
| ✖️ / B | Enter | Action Key (OK button) |
| Issue | Solution |
|---|---|
| Game won't launch | Ensure .jar file is valid and in the correct folder. |
| Controls unresponsive | Use the emulator's input menu to remap. |
| Laggy performance | Enable JIT and lower resolution settings. |
| No sound | Try enabling compatibility mode in audio settings. |
Enjoy your favorite Java ME classics on Batocera! 😄
Need help or want to contribute? Visit the GitHub project page for updates and support.