Skip to content
AbadXDevPublic

About

Run classic Java ME (J2ME) games natively on iPhone & iPad — embedded OpenJDK Mobile + FreeJ2ME + SwiftUI

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

CoreJ2

Run classic Java ME (J2ME) games natively on iPhone & iPad.

Embedded OpenJDK Mobile · FreeJ2ME · SwiftUI · Open Source

Miami Nights gameplay on CoreJ2

Miami Nights: Singles in the City — gameplay on a physical iPhone

Alpha Version License Docs CI

Swift iOS OpenJDK FreeJ2ME Documentation

Documentation · Compatibility · Architecture · Roadmap · Source


Current Status

Feature Status
Embedded OpenJDK Mobile ✅
FreeJ2ME Runtime ✅
Commercial MIDlets ✅
LCD Rendering ✅
Touch Input ✅
Virtual Keypad ✅
Save / Load (RMS) ✅
Multiple Launch Cycles ✅
Gameplay ✅
Silent Audio Compatibility ✅
Native Audio Playback 🚧 In Progress
Compatibility Expansion 🚧 In Progress

Reference Game

Miami Nights: Singles in the City

Validated on:

  • Physical iPhone
  • Embedded OpenJDK Mobile
  • FreeJ2ME
  • SwiftUI frontend

Current validation

Check Result
Launch ✓
Menus ✓
Gameplay ✓
Save ✓
Load ✓
Dialogs ✓
Stable gameplay ✓
No crashes during manual play session ✓

Remaining work

  • Native MMAPI audio backend
  • Compatibility expansion

Miami Nights gameplay with virtual keypad   Miami Nights menu on CoreJ2

Gameplay and menu — Miami Nights on device


Showcase

Preview Caption
Miami Nights GIF Miami Nights — commercial title, playable session on physical iPhone
Tetris GIF Tetris — LCD rendering and virtual keypad
Astroids GIF Astroids — touch + keypad input path
Screenshot Caption
CoreJ2 library Library — SwiftUI game list and import
Tetris on CoreJ2 Tetris — FreeJ2ME LCD surface
Astroids on CoreJ2 Astroids — device capture
Gryzzles on CoreJ2 Gryzzles — RMS / save path validation

More captures: Screenshots


Gameplay Videos

Full device recordings (MP4):

Title Video
Miami Nights miami-nights.MP4
Tetris tetris.mp4
Astroids astroids.MP4

HTML5 playback is available on the documentation site.


Architecture

SwiftUI
  ↓
Bridge
  ↓
Runtime Host
  ↓
Embedded OpenJDK Mobile
  ↓
FreeJ2ME
  ↓
Commercial MIDlet

Details: Architecture


Roadmap

Completed Milestones

  • Embedded JVM (OpenJDK Mobile Zero)
  • FreeJ2ME Integration
  • AWT
  • ImageIO
  • JPEG
  • FontManager
  • RMS
  • Commercial MIDlets
  • Miami Nights gameplay

Current Work

  • Native MMAPI Audio
  • Compatibility Database

Future Work

  • Controller support
  • Per-game settings
  • Save States
  • Performance optimization
  • Shader pipeline

Full plan: Roadmap


Documentation

Guide Description
Getting Started Install and launch a MIDlet
Why CoreJ2? Vision and technical rationale
Architecture Layer ownership
Compatibility Device-validated matrix
Roadmap Milestones and next steps
FAQ Common questions
python3 -m venv .venv-docs && source .venv-docs/bin/activate
pip install -r requirements-docs.txt
mkdocs serve

Brand

Official assets: assets/branding/ · Guidelines

Palette: #2563EB · #60A5FA · #0B1220 · #FFFFFF · #94A3B8


Status

🚧 Alpha · v0.9.0-alpha — commercial J2ME titles run on physical iPhone with embedded OpenJDK Mobile. Native audio playback and broader compatibility are in progress.


Contributing

See CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md.


License

Application licensing: see repository terms when published.
Vendor FreeJ2ME: GPL-3.0 (Vendor/FreeJ2ME).
Brand assets: original CoreJ2 identity (see branding guidelines).


GitHub · Documentation · Roadmap · Compatibility

Copyright © CoreJ2 contributors

About

Run classic Java ME (J2ME) games natively on iPhone & iPad — embedded OpenJDK Mobile + FreeJ2ME + SwiftUI

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages