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 151.5k 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 Hex

      @recompile I have updated the source code to have separate threads for Streaming (frames) and Capturing (keys).

      C communicates all keyboard events over stdout as an (int) key code followed by \n
      Key codes can be found here : https://wiki.libsdl.org/SDLKeycodeLookup

      If F4 is received, C terminates cleanly. C also communicates that it received F4 by sending -1 as key code.

      Another way to terminate C is to close its stdin. This tells C to terminate cleanly.

      Is this sufficient?

      To compile : g++ -lSDL2 -lpthread -o sdl_interface sdl_interface.cpp

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

        This post is deleted!
        1 Reply Last reply Reply Quote 0
        • recompileR
          recompile @Hex
          last edited by

          @hex We'll need both keydown and keyup events.

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

            @recompile Missed that. Will make changes and updoad new file.

            Also how do you want the key up down difference? Your choice.

            KEY 1 <-- Pressed
            KEY 0 <-- lifted

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

              @hex It doesn't really matter as long as I can tell the difference. A flag like that before the code should be just fine.

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

                @recompile I have updated the code. Syntax is

                KEY CODE\n

                KEY = 1 : Down / 0 : Up
                CODE -> As provided in url above

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

                  I guess back to you.
                  http://drichardson-shared.s3.amazonaws.com/freej2me-rpi.jar

                  I get a black screen and a mouse pointer.

                  1 Reply Last reply Reply Quote 0
                  • Z
                    Zigurana
                    last edited by

                    This is great!
                    It's like witnessing the birth of a new emulator (not exactly, but close enough).

                    Keep up the momentum guys!

                    If tetris has thought me anything, it's that errors pile up and that accomplishments dissappear.

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

                      @recompile is there a syntax for that? I am getting an Array out of bounds exception

                      Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
                      	at org.recompile.freej2me.RetroPie.<init>(RetroPie.java:64)
                      	at org.recompile.freej2me.RetroPie.main(RetroPie.java:22)
                      
                      
                      recompileR 1 Reply Last reply Reply Quote 0
                      • A
                        Allanbuzzy
                        last edited by

                        Yes, I'd love to play these mobile games on my RetroPie. And you probably know what my next splash screen might be...
                        wink

                        alt text

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

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

                          @hex You need to pass a jar.

                          java -jar freej2me-rpi.jar file:/home/pi/RetroPie/roms/j2me/ShadoWalker.jar 240 320

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

                            @recompile I have created a sample Java file in the dropbox folder. I have it working with "Broadcaster.java". Can you test it. That might point to the error. Let me know if this is sufficient.

                            Please download and recompile sdl_interface.cpp too

                            javac Broadcaster.java && java -classpath . Broadcaster 16 9

                            16 x 9 Grid size

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

                              @hex Again, just a black screen and a mouse pointer.

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

                                @recompile Shouldnt be happening. Let me post a video. Then you can compare.

                                recompileR 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?:

                                  Shouldnt be happening.

                                  I know. I can't see anything wrong with your example, and it works for you.

                                  The only difference I can see is that I'm running it on a pi3 and, iirc, you're running it on a pi0. Though I don't see why that would make a difference here.

                                  Do you get any output when you run freej2me-rpi?

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

                                    @recompile Here is the video of things that should be happening. Grid changes for every key press.

                                    Are you by any chance running on Wayland?

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

                                      @recompile I am running it on Linux. Probably that might be a difference. I am heading out so I will test in on Pi3 in an hour or so. Since I know that it is working, the rest is platform dependent and should work out well.

                                      As you can see from the Java code i am sending over 4 bytes (ARGB) per pixel over stream Scalling is excellent and as expected. There is also a smooth scaling version. Can try that out too.

                                      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?:

                                        Are you by any chance running on Wayland?

                                        No, I'm running it on RetroPie 4.2 on my pi3. No X11, Xorg, Mir, or Wayland

                                        I compiled sdl_interface.cpp on there as well, copying it to /usr/bin. I ran freej2me-rpi and your example on that same setup, and got the same result both times -- a black screen and a mouse pointer.

                                        From what I can see, J is sending to C. I can even capture an error trying to write to the stream after I kill C with F4.

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

                                          @recompile Yea I saw your comment after I typed mine. Let me check what might be an issue.

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

                                            @recompile I have found the error. Apparently SDL2 uses OpenGLES which freaks out if not drawing from main thread. I have fixed it, tested it and updated the new code.

                                            Edit : Key events are not read. Let me check I was typing on my ssh machine rather than the keyboard connected to the Pi :|

                                            All in all its working as expected. I tried raw streaming the image, Python, and Java solutions. All are working on Pi3 as of now.

                                            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.