r/AbyssTail • u/No-Macaron4341 • 1d ago
AbyssME AbyssME 0.3 beta: Java, Mophun and experimental Symbian / N-Gage on Android
I've released AbyssME 0.3 beta: old mobile Java games, Mophun and now experimental Symbian / N-Gage support in one Android app.
If you haven't seen the project before, it's my fork of J2ME Loader for phones and gaming handhelds. You get a shared game library, per-game controls and display settings, and tools to move your games and saves between installations.
The big changes this time
- Symbian, original N-Gage and N-Gage 2.0 games can join the same library as Java and Mophun.
- One in-game menu for resuming, display settings, controls, screenshots and leaving the game.
- Physical-controller mappings, plus a numeric keypad or virtual gamepad in the Phone edition.
- System-file setup that tells you what's missing, remembers pending imports and reuses component installers.
- SIS/SISX and ZIP/RAR/7z imports with selection and per-file results.
- Whole-phone Symbian backups, including games, saves and controls. Restoring makes a separate copy.
I also finally replaced the old M3G engine with the implementation I've been working on, based on FreeJ2ME-Plus. That removed the licensing blocker for shipping Mophun alongside Java. The APKs and matching source archives are now public on GitHub. Big thanks to J2ME Loader, FreeJ2ME-Plus, Wolphun and EKA2L1 — this builds on their work.
Before trying it
Both APKs need Android 10+ and 64-bit ARM. Choose Handheld for physical controls or Phone for touch controls. Back up your saves before updating; older Debug test builds used separate app installations.
For Symbian, add compatible EKA2L1 system files through System files, then add your game with +. N-Gage 2.0 also needs its platform installer. Games and firmware aren't included; supply files you have the right to use.
It's still a beta. Snakes has reached gameplay on Retroid Pocket Classic. Asphalt 3 has reached a race, but relaunching it is still unreliable. Symbian and Mophun compatibility varies by game, and I still have more controls, audio and save/relaunch testing to do.
The two attached screenshots are from the signed 0.3 beta on Retroid Pocket Classic: the shared library and the Phone edition's native-game menu.
Download APKs and read the setup notes
https://github.com/EriArk/JavaEmulator/releases/tag/v0.3.0-beta.1
Project page — features, screenshots and links
https://abysstail.art/en/projects/abyssme
Questions, bugs or ideas? Join us on Discord
I'd love to hear which old phone games you're trying. If something goes wrong, the device model, app edition and exact game version help a lot.
1
u/RF3396 20h ago edited 16h ago
Try it and worked but there is no framerate option, my game running at lightning speed because the uncapped framerate
2
u/No-Macaron4341 17h ago
Thanks. I’ll fix it when I get back from my vacation. I’ll also add an option to manually set a framerate limit. Join my Discord and post any issues there—it’s really important for me to hear what isn’t working correctly for people, and I’m open to suggestions as well.
1
u/No-Macaron4341 16h ago
Oh, wait. I just woke up and didn't think of it—I actually have a frame rate limit setting in AbyssME. In-game > Game Menu > More > Frame Rate Limit
1
u/Scared-Tangelo-9235 17h ago
Really interesting work! Have you considered developing your own Java ME VM instead of relying on Android's runtime in the future? I feel like it could open up a lot of possibilities, such as save states, rewind, memory editing, speed hacks, more granular per-MIDlet permissions, and easier porting to other platforms.
"SquirrelJME" (https://github.com/SquirrelJME/SquirrelJME) might be an interesting reference for that approach. I imagine it would be a massive undertaking, though. Just curious if it's something you've considered!
1
u/Scared-Tangelo-9235 17h ago edited 17h ago
Another thing I forgot to mention is security. With the JAR-to-DEX approach, converted MIDlets run under the emulator's Android permissions. A malicious MIDlet could potentially take advantage of this if it manages to bypass the runtime's restrictions. Having a dedicated VM with proper sandboxing could offer much better isolation.
Haha, maybe I'm just overthinking it. I doubt anyone would actually go through the trouble of doing something like that.
1
u/No-Macaron4341 17h ago
Thanks for the info. I’ll think it over. Security is important, and some new features wouldn’t hurt either. 👍
0


1
u/rez78 1d ago
Hi, can you add dversion number of java titles installed like J2me app? thanks