HNHacker News
TopNewBestAskShowJobs

sqshi

16 karma · joined July 26, 2026

submissionscomments
sqshi··on W4ME Station – a WASM-4 runtime for Java ME phones
Thanks. A proper writeup would make sense. The README documents the individual parts, but it does not really explain how they fit together or cover the stranger Java ME issues that came up along the way.

The project has three main layers. At the top there is the MIDP interface and cartridge management. Below that is the WASM-4 implementation for graphics, audio, and input. At the bottom is a small WebAssembly interpreter. A writeup could cover memory limits, bytecode preverification, differences between Java ME implementations, and the parts that had to be tested on real devices.

The SIM card idea is more complicated. Programmable SIM cards usually run Java Card rather than CLDC/MIDP. Java Card does not provide the usual display, audio, or input APIs, so W4ME Station could not be ported directly.

A small command-based WebAssembly experiment on Java Card may be possible. A playable WASM-4 runtime would need a separate implementation.

sqshi··on W4ME Station – a WASM-4 runtime for Java ME phones
I built W4ME Station, a WASM-4 runtime for old Java ME phones.

It runs standard WASM-4 cartridges on devices that support CLDC 1.1 and MIDP 2.0. The runtime includes a WebAssembly interpreter, graphics, audio, input, persistent storage, and support for loading external cartridges.

The full application, including 13 bundled cartridges, fits into a JAR of about 275 KB.

I started this to see whether an unchanged WASM-4 cartridge could run on memory-constrained Java ME hardware. I’d be interested in feedback on the interpreter, cartridge compatibility, and real devices worth testing.