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 146.1k 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.
    • 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
                            • recompileR
                              recompile @Hex
                              last edited by

                              @hex It's not looking likely. I have per-game configs working and sound almost done, so I was trying to decide on licensing. I'm just about settled on GPL3, which wouldn't be compatible with Anbu's terms.

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

                                Are you adding Non-Commercial ?

                                The licence was added till it was in development. Once done I will switch to GPL3

                                EDIT : Since I have finished Rotation, Scaling, 60fps limiter, background color and image, I think Anbu is complete. So might as well do it now.

                                I have updated Make file, Anbu source and License in the dropbox folder so you can try it out. I have added a make file too in which you can add the java compilation instructions and any modifications needed.

                                With this I would like to shift to binary being called 'anbu' from J, as updated in Make file.

                                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 recompile

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

                                  Are you adding Non-Commercial ?

                                  Of course. This is, after all, supposed to be for fun. The whole point is to let people have fun, playing games.

                                  When I saw your license, I wanted to vomit. I almost abandoned the entire project in disgust. That sort of thing isn't about working on a fun project, made to let other people have fun.

                                  That was actually my primary motivation for selecting a GLP license. I had initially intended to just release it in the public domain, or something more permissive like MIT. It's a defense against people turning my efforts in to something decidedly not purely about enabling others to have fun.

                                  The fact that I had to think about this at all is upsetting to me.

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

                                    Dude sorry, I didnt mean to offend you. I didnt even know what licence to use. I have moved it to GPL3. How do you add a non-commercial to this?

                                    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 Any updates?

                                      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
                                      • A
                                        Allanbuzzy
                                        last edited by

                                        Is development still going on? It seems a bit quiet now.

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

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

                                          Since @recompile is taking a break I can't say much. On the ui interface side it is mostly complete. The backend is a continuous process

                                          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 @Allanbuzzy
                                            last edited by

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

                                            Is development still going on? It seems a bit quiet now.

                                            Yes, but rather slowly. I've been a bit busy, and haven't had much time to work on it lately. Things should slow down in a couple of months, so don't expect too much in the near-term.

                                            Still, I guess an update wouldn't hurt. There's a lot of new stuff on the front-end and some neat additions to the back-end that open up games like X-Men Origins: Wolverine across all builds and like Doom II RPG to the Libretro build.

                                            The latest Libretro build:
                                            http://drichardson-shared.s3.amazonaws.com/freej2me_libretro_2017-09-19.zip

                                            Among the more important additions are per-game configs, accessible by pressing ESC or L+R+Start on the controller. This lets you change resolutions, toggle Sound and Nokia keys, rotate the display, or quickly quit.

                                            Mouse support is also enabled for games that require you to touch the display. For joypad users, the left analog stick will let you move the pointer. Clicking is activated by the "Y" button when the pointer is visible. ("Y" behaves normally when the pointer is not visible, or when made visible by using a mouse.) The pointer automatically hides after a "click" and will vanish on its own in about a second when it's not being moved.

                                            Controls are mostly the same. Changes include the addition of the menu key (ESC) and it's joypad equivalent (L+R+Start), mouse support, the pretend joypad mouse described earlier, and the d-pad defaulting to Nokia nav keys. (That last change seems crazy, but Nokia keys seem to be near-universally supported. Don't worry, this can be quickly switched to the previous 2,4,6,8 per-game from the menu).

                                            Installation is a bit different than before, but I don't think they'll need to change again going forward. Installation instructions should also be correct this time. I had a mistake in the previous build, so if you had trouble getting it working before, that's probably why. Instructions are included in the zip, but I'll post 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:
                                            Create the necessary directories:

                                            sudo mkdir /home/pi/Retropie/roms/j2me
                                            sudo mkdir /opt/retropie/configs/j2me
                                            sudo mkdir /opt/retropie/BIOS/freej2me
                                            sudo mkdir /opt/retropie/libretrocores/lr-freej2me

                                            Step 3:
                                            Copy the file:
                                            freej2me_libretro.so
                                            to:
                                            /opt/retropie/libretrocores/lr-freej2me

                                            Be sure to set permissions to 755:

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

                                            Step 4:
                                            Copy the file:
                                            freej2me-lr.jar
                                            to:
                                            /home/pi/Retropie/BIOS/freej2me

                                            Step 5:
                                            Add the files:

                                            emulators.cfg
                                            retroarch.cfg
                                            to:
                                            /opt/retropie/configs/j2me

                                            Step 6:
                                            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>
                                            

                                            There's still a lot to be done on the UI side of things, but it's serviceable for now. The additions here will, at least, let you play many more games on your pi3 than the previous version.

                                            1 Reply Last reply Reply Quote 4
                                            • 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.