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

    New Hypseus and lr-Daphne to add on Retropie-Setup

    Scheduled Pinned Locked Moved Ideas and Development
    daphnelaserdischypseusdaphne confighypseus config
    501 Posts 33 Posters 227.4k 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.
    • DirtBagXonD
      DirtBagXon @mitu
      last edited by DirtBagXon

      @mitu

      Ok, so I have located the commit that causes the issue, it was from 2.0.15:

      https://github.com/libsdl-org/SDL/commit/e87c7940f59db12670089a4ed79c91dfbca92b33

      If I revert out this "fix" on SDL 2.0.21, i.e. HEAD of libsdl-org/SDL, it all stills works as expected.

      Executing: /opt/retropie/emulators/hypseus/hypseus.sh "/home/pi/RetroPie/roms/daphne/dle21.daphne"
      [version] Hypseus Singe: v2.8.1-RPi - SDL(LD): 2.0.21
      [console] Setting alternate home dir: /opt/retropie/emulators/hypseus
      [console] Forcing 4:3 aspect ratio.
      2022-02-13 18:12:06.278 INFO  [27986] [reset_logfile@324] Version v2.8.1-RPi
      2022-02-13 18:12:06.279 INFO  [27986] [reset_logfile@328] Command line: /opt/retropie/emulators/hypseus/hypseus.bin dle21 vldp -framefile /home/pi/RetroPie/roms/daphne/dle21.daphne/dle21.txt -homedir /opt/retropie/emulators/hypseus -fullscreen -volume_nonvldp 5 -min_seek_delay 600 -blank_searches -blank_skips -force_aspect_ratio 
      

      So this detection is obviously not optimal in the the 32bit RetroPie environment. Are you guys able to offer a correction ?

      I am no dev of SDL, but I see you guys have some experience on the local patches of SDL.

      Wondering how to proceed on this ?

       

      Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
      Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
      Hypseus Discord: https://discord.gg/dgCsCfmRfJ

      1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator
        last edited by mitu

        @dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:

        So this detection is obviously not optimal in the the 32bit RetroPie environment. Are you guys able to offer a correction ?

        Not sure what correction could we add - the RetroPie environment is just a plain Raspbian Lite (Buster), using the default GL libraries/drivers provided by the OS. Is there any test - from one of the ones provided by SDL - that would help reproduce the bug ?

        For now we rolled back the 2.0.20 upgrade (due also to https://retropie.org.uk/forum/topic/32209/), so this issue will not affect any more user for now.

        DirtBagXonD 1 Reply Last reply Reply Quote 0
        • DirtBagXonD
          DirtBagXon @mitu
          last edited by DirtBagXon

          @mitu said in New Hypseus and lr-Daphne to add on Retropie-Setup:

          @dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:

          So this detection is obviously not optimal in the the 32bit RetroPie environment. Are you guys able to offer a correction ?

          Not sure what correction could we add - the RetroPie environment is just a plain Raspbian Lite (Buster), using the default GL libraries/drivers provided by the OS.

          Yeah, I was hoping you wouldn't say that :)

          I'm not sure where to go from here. The aarch64 version works obviously with this "fix" and doesn't see the CPU utilisation or video stuttering. So maybe this is a 32bit SDL bug. I am nowhere near the pay-grade to talk to the SDL guys on this topic,

          Is there any test - from one of the ones provided by SDL - that would help reproduce the bug ?

          Nothing that looks relevant to me unfortunately...

          For now we rolled back the 2.0.20 upgrade (due also to https://retropie.org.uk/forum/topic/32209/), so this issue will not affect any more user for now.

          Ok, but I'm sure this will come up again. I guess we may just need to pull back the package at that time until RetroPie makes the jump to aarch64.

          The "alternatives", one of which is full 64bit, aren't seeing the issue. The other is 32bit, but using a different drivers I believe, is stating they are not seeing the issue, but I am continuing to investigate on that side too.

          Edit: From an old SDL dev - "SDL people won't do a fix for 32bit" - guess I'm screwed...... lol

           

          Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
          Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
          Hypseus Discord: https://discord.gg/dgCsCfmRfJ

          1 Reply Last reply Reply Quote 0
          • mituM
            mitu Global Moderator
            last edited by mitu

            @dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:

            I'm not sure where to go from here. The aarch64 version works obviously with this "fix" and doesn't see the CPU utilisation or video stuttering.

            The difference between 32/64 is that there are no legacy BRCM drivers for 64bit, regardless of platform (Pi3/Pi4). I don't think it's a 32bit vs 64bit thing, more likely a legacy GLES vs Mesa (mainline) GLES driver thing.

            The other is 32bit, but using a different drivers I believe, is stating they are not seeing the issue, but I am continuing to investigate on that side too.

            Yes, it's the legacy Broadcom drivers vs the Mesa driver (enabled with the kms overlay). The Mesa drivers are the default in Bullseye, so that may explain why some users may not see the issue, even on 32bit.

            EDIT: since the bisected commit points to changes in SDL_CreateTexture, is there a specific code path in Hypseus where this gets used and causes the issue ? I haven't checked the code, so I don't know wether there's multiple uses of SDL_CreateTexture.

            DirtBagXonD 1 Reply Last reply Reply Quote 0
            • DirtBagXonD
              DirtBagXon @mitu
              last edited by DirtBagXon

              Yes, it's the legacy Broadcom drivers vs the Mesa driver (enabled with the kms overlay). The Mesa drivers are the default in Bullseye, so that may explain why some users may not see the issue, even on 32bit.

              Ok, that makes sense. See you do know more about SDL than I.

              So RetroPie uses the Legacy drivers ?

              Are there any public intentions on a move from this ?

              EDIT: since the bisected commit points to changes in SDL_CreateTexture, is there a specific code path in Hypseus where this gets used and causes the issue ? I haven't checked the code, so I don't know wether there's multiple uses of SDL_CreateTexture.

              I can explore that, but there are two pixel formats that are tied into the Daphne VLDP codebase and overlays, YUV and 8-bit.

              SDL_PIXELFORMAT_YV12
              SDL_PIXELFORMAT_RGBA8888

              I have looked at these in the past and they appear fairly ingrained to the legacy codebase.

              Fairly basic as far as pixel formats go...

               

              Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
              Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
              Hypseus Discord: https://discord.gg/dgCsCfmRfJ

              mituM 1 Reply Last reply Reply Quote 0
              • mituM
                mitu Global Moderator @DirtBagXon
                last edited by

                @dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                Ok, that makes sense. See you do know more about SDL than I.
                So RetroPie uses the Legacy drivers ?

                It uses the RaspiOS's Buster default - on Pi3 and earlier it's the 'legacy' drivers, on Pi4 is the MESA drivers. In RaspiOS Bullseye, the default is MESA drivers only.

                Are there any public intentions on a move from this ?

                We'll add support for RaspiOS Bullseye, but we'll see why the pixel format detection doesn't work with the legacy driver.

                DirtBagXonD 1 Reply Last reply Reply Quote 0
                • DirtBagXonD
                  DirtBagXon @mitu
                  last edited by

                  @mitu said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                  We'll add support for RaspiOS Bullseye, but we'll see why the pixel format detection doesn't work with the legacy driver.

                  Thanks for looking into this.

                  There is definitely a huge CPU utilisation jump with that commit. I'm not certain what interest the SDL devs are gonna have in fixing legacy driver issues in mainline, if the overall performance is beneficial elsewhere...

                  Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
                  Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
                  Hypseus Discord: https://discord.gg/dgCsCfmRfJ

                  mituM 1 Reply Last reply Reply Quote 0
                  • mituM
                    mitu Global Moderator @DirtBagXon
                    last edited by

                    @dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                    Thanks for looking into this.

                    I've run some tests and added my info in an issue. We can discuss it there, without hijacking the main topic.

                    DirtBagXonD 1 Reply Last reply Reply Quote 0
                    • DirtBagXonD
                      DirtBagXon @mitu
                      last edited by DirtBagXon

                      @mitu said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                      I've run some tests and added my info in an issue. We can discuss it there, without hijacking the main topic.

                      Ok, gottit.

                      Ok, now seen the correct #issue, not the one in libsdl-org.

                      So is this issue relating to Aleph One Marathon and eduke32 also ?

                       

                      Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
                      Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
                      Hypseus Discord: https://discord.gg/dgCsCfmRfJ

                      mituM 1 Reply Last reply Reply Quote 0
                      • mituM
                        mitu Global Moderator @DirtBagXon
                        last edited by

                        @dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                        So is this issue relating to Aleph One Marathon and eduke32 also ?

                        No, that's a different problem related to the GL renderer chosen by default (https://github.com/libsdl-org/SDL/issues/5348).

                        DirtBagXonD 1 Reply Last reply Reply Quote 0
                        • DirtBagXonD
                          DirtBagXon @mitu
                          last edited by DirtBagXon

                          @mitu said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                          @dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                          So is this issue relating to Aleph One Marathon and eduke32 also ?

                          No, that's a different problem related to the GL renderer chosen by default

                          Thanks @mitu for all the help in tracking down the SDL2 regression. I will try and commit the "work-a-round" shortly to the main branches.

                          As this regression has pretty much reduced the chances of getting ActionMax working effectively with SDL2 on the Pi, I have been working on a little side project.

                          An "unofficial" RetroPie scriptmodule that uses the SDL1 version of Singe packaged up specifically for ActionMax. SDL1 had better native YUV support so there is less overhead in handling this pixel format. This emulator also supports ABS mouse input , and integrated Sinden borders, for all the lightgun enthusiasts out there.

                          I have been running this on RPi3 RetroPie with no issues. Although this is SDL1 and has all the inherent issues of this version.

                          Users with 4:3 monitors may find -ignore_aspect_ratio will provide help in using the full screen real estate.

                          The intention was to use this Daphne system actionmax emulator as a ROM specific choice in ES. It also uses the standard <game>.commands files for individual customization and has an independent config file, using SDL1 keycodes, as does the original Daphne.

                           
                          https://github.com/DirtBagXon/actionmax-pi

                           

                          ActionMax

                          I know a few users who have asked for this, so enjoy.
                           

                          Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
                          Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
                          Hypseus Discord: https://discord.gg/dgCsCfmRfJ

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            G30FF @DirtBagXon
                            last edited by G30FF

                            @dirtbagxon I tried installing the actionmax emulator, and I can boot games just fine. However I'm having a little trouble with the controls. The default singeinput.cfg does not work with my controller, but when I copied the config from my hypinput.cfg file in, the trigger buttons, quit button, and confirm buttons worked, but the direction buttons do not work so I am unable to move the cursor. This is my singeinput.ini (copied from hypinput.ini):

                            [KEYBOARD]
                            KEY_UP = SDLK_UP 0 0 -002
                            KEY_DOWN = SDLK_DOWN 0 0 +002
                            KEY_LEFT = SDLK_LEFT 0 0 -001
                            KEY_RIGHT = SDLK_RIGHT 0 0 +001
                            KEY_COIN1 = SDLK_5 0 9  #SELECT
                            KEY_COIN2 = SDLK_6 0 0
                            KEY_START1 = SDLK_1 0 10  #START
                            KEY_START2 = SDLK_2 0 0
                            KEY_BUTTON1 = SDLK_LCTRL 0 1  #B
                            KEY_BUTTON2 = SDLK_LALT 0 3  #Y
                            KEY_BUTTON3 = SDLK_SPACE 0 2  #A
                            KEY_SKILL1 = SDLK_LSHIFT 0 4  #X
                            KEY_SKILL2 = SDLK_z 0 5  #L
                            KEY_SKILL3 = SDLK_x 0 6  #R
                            KEY_SERVICE = SDLK_9 0 12  #L3
                            KEY_TEST = SDLK_F2 0 0
                            KEY_RESET = SDLK_0 0 13  #R3
                            KEY_SCREENSHOT = SDLK_F12 0 0
                            KEY_QUIT = SDLK_ESCAPE 0 0
                            KEY_PAUSE = SDLK_p 0 0
                            KEY_CONSOLE = SDLK_BACKSLASH 0 0
                            KEY_TILT = SDLK_t 0 0
                            END
                            

                            Unless I'm misunderstanding and this emulator is meant for mouse support only, in which case I apologize in advance.

                            DirtBagXonD 2 Replies Last reply Reply Quote 0
                            • DirtBagXonD
                              DirtBagXon @G30FF
                              last edited by DirtBagXon

                              @g30ff said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                              @dirtbagxon I tried installing the actionmax emulator, and I can boot games just fine. However I'm having a little trouble with the controls. The default singeinput.cfg does not work with my controller, but when I copied the config from my hypinput.cfg file in, the trigger buttons, quit button, and confirm buttons worked, but the direction buttons do not work so I am unable to move the cursor. This is my singeinput.ini (copied from hypinput.ini):

                              Unless I'm misunderstanding and this emulator is meant for mouse support only, in which case I apologize in advance.

                              Good to hear the installation went well.

                              This is old SDL1 tech - what the Pi likes it would seem :)

                              The game was mouse (or lightgun) only I'm afraid. On Hypseus I added the ability to use the joystick as a mouse. If was fun but was never really a playable option (Anyone disagree?). If enough people really think it's worth while I can take a look at porting these changes in, but this is a different, and much simplified version of the INPUT system in SDL1, and the original Daphne code.

                              https://www.daphne-emu.com:9443/mediawiki/index.php/Input
                              https://www.daphne-emu.com:9443/mediawiki/index.php/KeyList

                              In referring to that, your singeinput.ini won't work. It needs to use the simplified (original Daphne style) SDL1 config. MACROS and direction etc were all additions I made to Hypseus (and SDL2) . I have added your js buttons to what I think should work for you:

                              [KEYBOARD]
                              KEY_UP = 273 0 0
                              KEY_DOWN = 274 0 0
                              KEY_LEFT = 276 0 0
                              KEY_RIGHT = 275 0 0
                              KEY_BUTTON1 = 306 0 1
                              KEY_BUTTON2 = 308 0 3
                              KEY_BUTTON3 = 32 0 2
                              KEY_START1 = 49 0 10
                              KEY_START2 = 50 0 0
                              KEY_COIN1 = 53 0 9
                              KEY_COIN2 = 54 0 0
                              KEY_SKILL1 = 304 0 4
                              KEY_SKILL2 = 122 0 0
                              KEY_SKILL3 = 120 0 0
                              KEY_SERVICE = 57 0 12
                              KEY_TEST = 283 0 0
                              KEY_RESET = 284 0 13
                              KEY_SCREENSHOT = 293 0 0
                              KEY_QUIT = 27 0 0
                              END
                              

                              Note: The keycode values between SDL1 and SDL2 are vastly different, however the js buttons numbering remains the same. So you can take the 3rd field value and copy them between configs, as indeed you did here. But not the others.

                               

                              Edit: Adding this information page: https://github.com/DirtBagXon/actionmax-pi/discussions/1

                               

                              Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
                              Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
                              Hypseus Discord: https://discord.gg/dgCsCfmRfJ

                              1 Reply Last reply Reply Quote 0
                              • DirtBagXonD
                                DirtBagXon @G30FF
                                last edited by

                                @g30ff said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                                Unless I'm misunderstanding and this emulator is meant for mouse support only, in which case I apologize in advance.

                                Joystick support has now been added for the target cursor.

                                If you update via RetroPie-Setup, it should start working :)

                                Trying to direct conversation on this emulator now to: https://retropie.org.uk/forum/topic/32241/actionmax-vhs-lightgun-emulator

                                 

                                Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
                                Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
                                Hypseus Discord: https://discord.gg/dgCsCfmRfJ

                                G 1 Reply Last reply Reply Quote 0
                                • G
                                  G30FF @DirtBagXon
                                  last edited by G30FF

                                  @dirtbagxon Thank you for the quick fix! Much appreciated!

                                  I was able to get the five ActionMax games working on my Pi 4 (I had to tweak your instructions for running them because I have my roms loaded from an attached SSD and thus symlinks don't work, but I'm happy with my solution). They work fine in your new actionmax emulator, but in hypseus (latest source version), I have a minor issue. All five games have no score display. No matter what I do, the overlay shows "Targets Disabled" and never changes to the score display. The games run perfectly fine otherwise, and at full speed.

                                  DirtBagXonD 1 Reply Last reply Reply Quote 0
                                  • DirtBagXonD
                                    DirtBagXon @G30FF
                                    last edited by

                                    @g30ff said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                                    @dirtbagxon Thank you for the quick fix! Much appreciated!

                                    All five games have no score display. No matter what I do, the overlay shows "Targets Disabled" and never changes to the score display. The games run perfectly fine otherwise, and at full speed.

                                    Yep, that's a demonstration of the issue with SDL2 on the Pi, the "Targets Disabled" message appears when SDL2 won't allow the YUV pixels on the Renderer to be read. It's just a courteous message I put there rather than erroring out. Perhaps I should now change it to say: "Use actionmax emulator" - lol

                                    Note: ActionMax works fine with Hypseus on Desktop Linux, Pi aarm64 (KMS/DRM + MESA) and Windows. This is an issue with the Pi SDL2 libraries on 32bit and other mixes of Pi display drivers.

                                    Hence the reason for this new "companion actionmax" emulator using old SDL1 :)

                                    As we all adopt the new Pi5 - this will all go away..... hopefully.....

                                     

                                    Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
                                    Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
                                    Hypseus Discord: https://discord.gg/dgCsCfmRfJ

                                    G 2 2 Replies Last reply Reply Quote 0
                                    • G
                                      G30FF @DirtBagXon
                                      last edited by

                                      @dirtbagxon Understood. Thanks for the explanation!

                                      1 Reply Last reply Reply Quote 0
                                      • pjftP pjft referenced this topic on
                                      • 2
                                        22marco77 @DirtBagXon
                                        last edited by

                                        @DirtBagXon
                                        problem horizontal axis right and left inverted

                                        Re: New Hypseus and lr-Daphne to add on Retropie-Setup

                                        I apologize if I re-open a topic that is perhaps clear to many but not to me. I state that I am using the Hypseus emulator on a raspberry pi 3 modB + with retropie 4.8.x. I have configured the keys in the hypinput.ini file in both / home / pi / RetroPie-Setup / scriptmodules / emulators / hypseus and in / opt / retropie / configs / daphne.
                                        Everything works for me except that I have the right and left axis reversed, by physically turning the joystick up and down I have it in axis while right and left reverse. I changed the parameters as listed below I use DragonRise Inc. Generic USB Joystick input_device = "DragonRise Inc. Generic USB Joystick" input_driver = "udev"
                                        input_vendor_id = "121"
                                        input_product_id = "6"

                                        [KEYBOARD]
                                        KEY_UP = SDLK_UP SDLK_r 5 -2
                                        KEY_DOWN = SDLK_DOWN SDLK_f 7 +2
                                        KEY_LEFT = SDLK_LEFT SDLK_d 8 -1
                                        KEY_RIGHT = SDLK_RIGHT SDLK_g 6 1
                                        KEY_COIN1 = SDLK_5 0 9
                                        KEY_COIN2 = SDLK_6 0 0
                                        KEY_START1 = SDLK_1 0 10
                                        KEY_START2 = SDLK_2 0 0
                                        KEY_BUTTON1 = SDLK_LCTRL SDLK_a 2
                                        KEY_BUTTON2 = SDLK_LALT SDLK_s 1
                                        KEY_BUTTON3 = SDLK_SPACE SDLK_d 4
                                        KEY_SKILL1 = SDLK_LSHIFT SDLK_w 0
                                        KEY_SKILL2 = SDLK_z SDLK_i 0
                                        KEY_SKILL3 = SDLK_x SDLK_k 0
                                        KEY_SERVICE = SDLK_9 0 0
                                        KEY_TEST = SDLK_F2 0 0
                                        KEY_RESET = SDLK_0 0 0
                                        KEY_SCREENSHOT = SDLK_F12 0 0
                                        KEY_QUIT = SDLK_ESCAPE SDLK_q 3
                                        KEY_PAUSE = SDLK_p 0 0
                                        KEY_CONSOLE = SDLK_BACKSLASH 0 0
                                        KEY_TILT = SDLK_t 0 0
                                        END
                                        I ask you experts for a way to fix this problem that is stressing me out because it doesn't allow me to play my favorite games. Thank you all and sorry if I steal some of your time.

                                        DirtBagXonD 1 Reply Last reply Reply Quote 0
                                        • DirtBagXonD
                                          DirtBagXon @22marco77
                                          last edited by DirtBagXon

                                          @22marco77

                                          If left and right are switched, just change the + and - signs on these two axis arguments:

                                          From:

                                          KEY_LEFT = SDLK_LEFT SDLK_d 8 -1
                                          KEY_RIGHT = SDLK_RIGHT SDLK_g 6 1
                                          

                                          To:

                                          KEY_LEFT = SDLK_LEFT SDLK_d 8 +001
                                          KEY_RIGHT = SDLK_RIGHT SDLK_g 6 -001
                                          

                                          I use 001 but you could just use 1 as it's the first joystick axis.

                                           

                                          Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
                                          Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
                                          Hypseus Discord: https://discord.gg/dgCsCfmRfJ

                                          2 1 Reply Last reply Reply Quote 0
                                          • 2
                                            22marco77
                                            last edited by

                                            This post is deleted!
                                            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.