RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Would you like to play Nokia (J2ME) games on Retropie?

    Scheduled Pinned Locked Moved Ideas and Development
    sdlemulatorawesome
    304 Posts 22 Posters 145.9k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • HexH
      Hex
      last edited by

      @recompile Can you share the build files and sources. I wanted to see how the events are handled on J's end

      Sent from 20,000 leagues under the sea.

      Powersaver Emulation station : https://github.com/hex007/EmulationStation
      ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

      1 Reply Last reply Reply Quote 0
      • recompileR
        recompile
        last edited by recompile

        Here's a libretro build:
        http://drichardson-shared.s3.amazonaws.com/freej2me_libretro_2017-08-25.zip

        For the moment, you're stuck in 240x320 mode, but you'll find quite a few games work just fine or were specifically designed for that mode (from what I can tell, it's the most common). Once I add per-game configs, you'll be able to play more.

        I have some instructions in the zip, but I'll put them here for convenience.

        Step 1: Install Oracle's JDK:

        sudo apt-get update
        sudo apt-get install oracle-java8-jdk
        sudo update-alternatives --config javac
        sudo update-alternatives --config java

        Step 2:
        Add the files: emulators.cfg and retroarch.cfg
        to: /opt/retropie/configs/j2me

        Be sure to set permissions to 666:
        sudo chmod 666 /opt/retropie/configs/j2me/*

        Step 3: Add the following to:
        /etc/emulationstation/es_systems.cfg

          <system>
            <name>J2ME</name>
            <fullname>Java 2 MicroEdition</fullname>
            <path>/home/pi/RetroPie/roms/j2me</path>
            <extension>.jar</extension>
            <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ j2me %ROM%</command>
            <platform>j2me</platform>
            <theme>j2me</theme>
          </system>
        

        Step 4:
        Copy the files: freej2me_libretro.so and freej2me-lr.jar
        to: /opt/retropie/libretrocores/lr-freej2me

        Be sure to set permissions to 755:

        sudo chmod 755 /opt/retropie/libretrocores/lr-freej2me/*

        Step 5: Have fun
        Add a j2me directory to your roms directory and copy over your game jars. Restart EmulationStation and play some games.

        RetroPad mappings are as follows (hard-coded for the moment):

        D-Pad (UDLR): 2, 8, 4, 6
        A: 9
        B: 7
        X : 0
        Y: 5
        Start: Soft2
        Select: Soft1
        L1: 1
        R1: 3
        L2: *
        R2: #

        On the keyboard, arrows work as expected, numbers are numbers, and the numpad has 123 and 789 inverted. Additional mappings: q: soft1, w: soft2, e: *, r: #

        Sorry for the delay, but I had to not look at this project for a while or I'd have lost my interest.

        pjftP 1 Reply Last reply Reply Quote 2
        • pjftP
          pjft @recompile
          last edited by

          @recompile Wow. Congrats on the launch, well done! What's the performance like on this in terms of libretro vs non-libretro, and any particular games you - or others - would recommend for the platform?

          I don't have my Pi for a few weeks, but this deserves a proper celebration!

          recompileR 1 Reply Last reply Reply Quote 0
          • HexH
            Hex
            last edited by

            @recompile I was under the impression that we were not doing one for libretro

            Does the libretro make sdl_interface obsolete?

            Sent from 20,000 leagues under the sea.

            Powersaver Emulation station : https://github.com/hex007/EmulationStation
            ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

            recompileR 1 Reply Last reply Reply Quote 0
            • HexH
              Hex
              last edited by

              @pjft Non lobretro supports custom resolutions and rotation support but not custom keybindings. It is great to use on PC with numpad. Libretro version is mostly targeted towards Pi.

              Sent from 20,000 leagues under the sea.

              Powersaver Emulation station : https://github.com/hex007/EmulationStation
              ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

              1 Reply Last reply Reply Quote 0
              • recompileR
                recompile @pjft
                last edited by

                @pjft Thanks, though I wouldn't call it a launch until the per-game configs are done. It's a solid preview, however, which I'm pretty satisfied with for the moment.

                Performance is great on my pi3, though I haven't done a side-by-side with the older attempts so I can't say with any certainty if it's better or worse.

                For games you can play on it now, I can recommend Doom RPG, Orcs and Elves, ShadoWalker, Soul of Darkness, and Asphalt 6, Assassins Creed, and Castle of Magic off the top of my head.

                1 Reply Last reply Reply Quote 0
                • recompileR
                  recompile @Hex
                  last edited by

                  @hex said in Would you like to play Nokia (J2ME) games on Retropie?:

                  I was under the impression that we were not doing one for libretro

                  So was I, which is why I didn't bother you with it. I didn't think you were interested.

                  @hex said in Would you like to play Nokia (J2ME) games on Retropie?:

                  Does the libretro make sdl_interface obsolete?

                  That's up to you. If you find value in that project, then I don't see any reason not to keep going.

                  Speaking of, I still owe you a build that passes all the parameters. I'll try to get that to you in the next couple of days.

                  1 Reply Last reply Reply Quote 0
                  • HexH
                    Hex
                    last edited by

                    @recompile Great work.

                    @recompile said in Would you like to play Nokia (J2ME) games on Retropie?:

                    So was I, which is why I didn't bother you with it. I didn't think you were interested.

                    I was ok with not working on it as you were more interested in maintaining a single version. Looks like we both has some miscommunication.


                    • I liked the Icon.

                    • The main idea of having passed parameters is that the UI updates and features can be added later without disturbing the Jar file.

                    • Does this version have m3g support ?

                    • Libretro support is fantastic.

                    • Once you think it is ready upto a level or if you would like my help with java stuff then I would be glad to help. Possibly host it on github?

                    Sent from 20,000 leagues under the sea.

                    Powersaver Emulation station : https://github.com/hex007/EmulationStation
                    ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

                    recompileR 1 Reply Last reply Reply Quote 1
                    • recompileR
                      recompile @Hex
                      last edited by

                      @hex It happens.

                      No m3g support yet. That's a surprisingly big project that is very likely to take longer than everything else so far. That is, if I do a complete implementation.

                      I'll probably stub it out and add flesh it out as I find games that use various parts over time. Just a fun fact, that's what I did for javax.microedition.lcdui.game.TiledLayer, as I haven't found a game yet that uses it. Sprite, in the same package, is also anemic for that reason. I'll bet that'll get quite a few things working, even with a minimal implementation. I stubbed out javax.microedition.wireless because a game uses it, just to make it play, even though no actual communication ever happens. The game didn't seem to mind.

                      Sins of the lazy.

                      1 Reply Last reply Reply Quote 0
                      • HexH
                        Hex
                        last edited by

                        @recompile does it print out the class is not implemented yet if a game uses it?

                        Sent from 20,000 leagues under the sea.

                        Powersaver Emulation station : https://github.com/hex007/EmulationStation
                        ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

                        1 Reply Last reply Reply Quote 0
                        • Stuart2773S
                          Stuart2773
                          last edited by

                          can this be download/installed via the RetroPie Setup/Manage Packages menu?

                          HexH 1 Reply Last reply Reply Quote 0
                          • A
                            Allanbuzzy
                            last edited by

                            Will you put this in the Experimental section of the RetroPie Setup?

                            "What do you play games on?"
                            "A LEGO brick."
                            "LEGO What?

                            1 Reply Last reply Reply Quote 0
                            • HexH
                              Hex @Stuart2773
                              last edited by

                              @stuart2773 said in Would you like to play Nokia (J2ME) games on Retropie?:

                              can this be download/installed via the RetroPie Setup/Manage Packages menu?

                              Not yet. It is still in development

                              Sent from 20,000 leagues under the sea.

                              Powersaver Emulation station : https://github.com/hex007/EmulationStation
                              ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

                              1 Reply Last reply Reply Quote 0
                              • HexH
                                Hex
                                last edited by Hex

                                @recompile A few questions:

                                • Have you got the sound to work?

                                • Is J capturing stderr from C. I was use stderr as a log for debugging and I can never get any output from C.stderr. This is a Java issue. I tried with a java broadcaster and stderr was not displayed. I shall look for a workaround.

                                • Have you tried the Anbu source. I fixed the issue with your Logitec gamepad and would like to know if it works as expected.

                                • Do you think I should add support for all rotation angles {0, 90, 180, 270}? If yes then the parameter would be changed to [-r angle] with angle in degrees

                                • Would you like image background support? Currently I have added Coloured Background support (Blue gray here)

                                0_1503709898318_Screenshot from 2017-08-25 18-11-12.png

                                I would like to make something like this
                                0_1503711689484_j2mepaper.jpg

                                Sent from 20,000 leagues under the sea.

                                Powersaver Emulation station : https://github.com/hex007/EmulationStation
                                ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

                                recompileR 1 Reply Last reply Reply Quote 0
                                • recompileR
                                  recompile @Hex
                                  last edited by

                                  @hex I didn't do anything with the j2me project at all until a few days ago. All I did then was knock-out the libretro core and respective java build.

                                  Needless to say, I haven't played with sound, or tried the latest Anbu. Things are hectic here, so it might be a few days before I can try out my controller.

                                  I did look in to stderr for you. I haven't tested this, but it should forward stderr from C to J and write out stderr on J's process. Also, as promised, it should pass along all the parameters, with the exception of the first, passed to J.

                                  http://drichardson-shared.s3.amazonaws.com/freej2me-rpi.jar

                                  Backgrounds are neat. The AWT and JavaFx builds both use a background similar to your first example, the Libretro build just has whatever RetroArch can add. I don't seem to have any control over the background color from the core.

                                  @Stuart2773 @allanbuzzy said in Would you like to play Nokia (J2ME) games on Retropie?:

                                  Will you put this in the Experimental section of the RetroPie Setup?

                                  I don't have any control over that. I'm not even sure who you'd ask.

                                  The setup process might look overwhelming, but it's not really that complicated. I can help if you have any questions about installation.

                                  1 Reply Last reply Reply Quote 0
                                  • HexH
                                    Hex
                                    last edited by

                                    @recompile I just updated my comment when I found out about stderr being java issue and not J's

                                    The backgrounds are only drawn once so it will make no rendering speed difference.

                                    Thanks for the updated binary.

                                    Let me know if you would like any help in J's development. If you are busy, take your time. The project has reached a good level. Your contributions were a cornerstone in its development.

                                    Moving forward, when you can, please switch to Anbu source and the binary should be called anbu rather than sdl_interface from J. I would like to keep the binary's name different from sdl_*

                                    Sent from 20,000 leagues under the sea.

                                    Powersaver Emulation station : https://github.com/hex007/EmulationStation
                                    ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

                                    1 Reply Last reply Reply Quote 0
                                    • HexH
                                      Hex
                                      last edited by

                                      @recompile I think the latest Jar file has broken event handling. It does not recognize any keyboard keys other than F4 to exit. For now I am reverting to using the previous version.

                                      I am ok with the stderr hidden. The amount of errors spewed is just too much for some of the games. I shall find a different way to get logs considering it is not J's fault this is happening.

                                      I really liked the parameter passing and it works as expected.

                                      Sent from 20,000 leagues under the sea.

                                      Powersaver Emulation station : https://github.com/hex007/EmulationStation
                                      ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

                                      1 Reply Last reply Reply Quote 0
                                      • HexH
                                        Hex
                                        last edited by

                                        @recompile Can you test why this doesnt work on J while it works on microemu

                                        https://github.com/turbanoff/j2me-2048/

                                        Sent from 20,000 leagues under the sea.

                                        Powersaver Emulation station : https://github.com/hex007/EmulationStation
                                        ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

                                        recompileR 1 Reply Last reply Reply Quote 0
                                        • recompileR
                                          recompile @Hex
                                          last edited by

                                          @hex It uses Command and CommandListener, which I haven't completely implemented.

                                          Why? Because this would be the second game I've seen that uses it. The first also uses mascotcapsule's micro3d (which I can't implement, due to lack of documentation), so it didn't seem worth the effort to do anything but stub it out for the time being.

                                          1 Reply Last reply Reply Quote 0
                                          • HexH
                                            Hex
                                            last edited by Hex

                                            Thats fine. I just wanted to bring it to your notice.

                                            Can you provide me a binary with parameter passing without the stderr passing fix ? I tried the last JAR and I think that broke the keyboard input. No keys are recognised other than F4

                                            Sent from 20,000 leagues under the sea.

                                            Powersaver Emulation station : https://github.com/hex007/EmulationStation
                                            ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

                                            recompileR 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.