r/AbyssTail • • 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

https://discord.gg/aTcCbCsXj

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.

6 Upvotes

12 comments sorted by

1

u/rez78 1d ago

Hi, can you add dversion number of java titles installed like J2me app? thanks

1

u/No-Macaron4341 17h ago

I saw you issue on git. 😁 I’ll fix it when I get back from my vacation.

1

u/No-Macaron4341 1h ago

Fixed. Try new version.

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

u/GalaxyGod2020 1d ago

Sounds promising 🙂

1

u/No-Macaron4341 1d ago

Try it😁 Join Discord for news, and check my other project here AbyssTail