Would you like to play Nokia (J2ME) games on Retropie?
-
@guicrith You can use whatever JRE you prefer. Like any Java application, it uses whatever is available on the system.
If you're looking to port it to iOS and Android, you could try wrapping it in an Oracle MAF app.
@morrisav10 said in Would you like to play Nokia (J2ME) games on Retropie?:
I used to love Zombie Infection on my old Sony Ericsson!
As luck would have it, Zombie Infection works just fine. The version I have runs in 320x240. You can change the display size per-game from the configuration menu (ESC from the keyboard, L+R+Start from the controller)
-
@recompile Will you be making an updated version for Linux too (non-libretro)?
-
Here it is:
https://sourceforge.net/projects/freej2me/
Alt:
http://drichardson-shared.s3.amazonaws.com/freej2me/freej2me_2017-09-23.zipThe AWT build will run on Windows and most desktop Linux distributions. It should run on MacOS, though I haven't tried it. With any luck, a Mac user will let us know.
To build, you'll want to install Apache Ant Just run
ant
from the directory that contains thebuild.xml
file. Builds are provided in thebuilds
directory, if you don't want to build it yourself.For the libretro core, you'll need
libretro.h
andfreej2me_libretro.c
Runbuild.sh
to producefreej2me_libretro.so
A pre-compiled binary for the pi3 is supplied.With that, I leave it in the capable hands of the community.
-
@recompile Which one of the compiled jar files is the one we have been testing with SDL?
-
@hex You'll need to compile that one yourself. Just add an entry to build.xml and run ant.
-
@recompile Thanks
-
This is very cool, the terminal I/O part will be very useful to run linux games on android if I ever try to set that up again.
I will try to get this on android soon using openjre8 and linux, it wont help most users but should work on any rooted android phones.
-
@recompile I noticed you got the languages to work. Can you guide me how I can fix this? (From ShadowWalker)
Linux OpenJDK8
Using MicroEmu
Using FreeJ2ME
-
You'll need to properly implement javax.microedition.lcdui.Font.stringWidth, javax.microedition.lcdui.Font.subStringWidth and possibly fix anchors for text in org.recompile.mobile.PlatformGraphics.drawString, which implements javax.microedition.lcdui.Graphics.drawString
-
Do you care if I start a github page for the android project, bugreports and so others can contribute.
You would retain full credit for the project and could transfer things to your own github page at any time.
-
@guicrith I am making one with credits to @recompile
-
@guicrith It's okay with me. Remember, you have rights and responsibilities under the GPL. While I appreciate the gesture, you don't need to ask me. It's free software, after all.
Make sure you check license.txt before you distribute the ObjectWeb ASM component.
Besides, the more variety the better, right? A lot of code should be portable between branches, so it's likely that your branch will be able to benefit others as others benefit from your own. The GPL keeps things free as in freedom for everyone.
-
@recompile It is a really nice project we accomplished. Most of the work was done by you. I am really glad we reached so much from the time we almost abandoned it due to awt not working on Rasperry pi and JavaFX problems with externally manipulating frame data. Kudos mate.
EDIT: Let me know if you are on github and I shall provide you write access right away. If you want the repo under your account even that can be done.
-
@hex I'm not on github, which is why I put it on sourceforge. I've found that github can be difficult for casual users to use. (unintentional alliteration)
I looked at your repo though. It looks like I left some junk on there. You can safely remove the config and package directory.
-
@recompile I was able to find out and fix the vertical misalignment. You had size medium in Font.java as zero.
Now I am stuck with the horizontal part. This method in particular:
public int stringWidth(String str) { return str.length() * getPointSize() / 2; }
I know that the
/2
is a hack (removed for the above image). The problem is that the font is not monospaced so plain multiplication is not going to work. So I need a way to get rendered text size. Some searches suggested FontMetrics.stringWidth. I tried to get that from Graphics2D but I am getting NULLPointers.Any ideas?
-
@hex You're on the right track. You can see a working example of FontMetrics.stringWidth in PlatformGraphics.
My solution was going to be to add a PlatformFont class, similar to what I did with Image and Graphics. (The idea being that those can be swapped out, leaving everything in the javax hierarchy the same.) That that's not strictly necessary as you should be able to just just use a PlatformImage and its graphics context and reap the same benefits.
-
@hex said in Would you like to play Nokia (J2ME) games on Retropie?:
You had size medium in Font.java as zero.
That's correct, according to the spec:
http://docs.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/javax/microedition/lcdui/Font.htmlBe care with that sort of thing. I've found that just because something appears to work in one game doesn't mean it's correct -- and it can sometimes break other games.
-
@recompile Thanks for pointing that out. I shall revert the change. I was able to hack up a working solution for the stringWidth problem. I am trying now to implement the PlatformFont as you suggested.
-
Hi all, been having problems with loading games on the emulator, i have Java Runtime Environment 8 update 144,both 64-bit and 32-bit installed (Java 9 didn't work for me for some reason), every time i boot the emulator it prompts me to select a game, i select a game, and... Nothing happens, just nothing happens, i saw a "config" file after i load my game i check it and there's a folder named "null", i check the folder, and there's the "game.conf" file, i attempt to edit it with Notepad++ and see a "nokia" string, its on, put it on "off", i save, try again, still nothing happens, every game i've tried it just goes to a "boot phase", closes the window, but then nothing happens, my OS is Windows 8, build 9200, hope you can fix it. Thanks!
-
Which game are you trying to play? The support is for Linux primarily.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.