Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    New Hypseus with overlays and Singe support

    Your recalbox
    hypseus overlays singe
    10
    51
    13864
    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.
    • RustyMG
      RustyMG last edited by

      This is excellent news!
      A start, but a great start.

      I believe the following games work on Singe?

      Crime Patrol
      Crime Patrol 2: Drug Wars
      Mad Dog McCree
      Mad Dog McCree 2: The Lost Gold
      Ninja Hayate
      Space Pirates
      Time Gal
      Time Traveler
      The Last Bounty Hunter
      Who Shot Johnny Rock
      38 Ambush Alley
      Blue Thunder
      HydroSub 2021
      Pops Ghostly
      Sonic Fury

      Sinclair ZX Spectrum 48k "dead flesh" keyboard, Commodore 64, Amiga A500, Amiga A1200, CD32, PC Engine, PS1, PS2, PSP, Nintendo DS, Dreamcast, Wii, XBox 360, Xbox One-X, Pi2, Pi3, Pi4 owner, ARRM contributor ( http://jujuvincebros.fr/wiki/arrm/doku.php ).

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

        @lmerckx said in New Hypseus with overlays and Singe support:

        Hello @DirtBagXon,

        Mad Dog McCree is playable (memories, memories ... ๐Ÿ™‚ ). But does Singe support the joystick ?
        ย 
        For me, I can only move the target with the mouse but perhaps I broke something with my patch ...

        Aha, the infamous Daphne joystick support.

        Singe has never supported joystick axis movement as far as the codebase says, button yes, but axis no.

        The LUA game script interface for mouse movement is fairly simplistic:

        void sep_do_mouse_move(Uint16 x, Uint16 y, Sint16 xrel, Sint16 yrel)
        {
                static bool debounced = false;
                int x1 = (int)x;
                int y1 = (int)y;
                int xr = (int)xrel;
                int yr = (int)yrel;
        
                // Not sure what's wrong here.  I think things are getting started before Singe is ready.
                if (!debounced) {
                        debounced = true;
                        return;
                }
        
                x1 *= g_sep_overlay_scale_x;
                y1 *= g_sep_overlay_scale_y;
                xr *= g_sep_overlay_scale_x;
                yr *= g_sep_overlay_scale_y;
        
                sep_call_lua("onMouseMoved", "iiii", x1, y1, xr, yr);
        }
        

        Whereas the joystick is referenced in Daphne I/O based on SDL events:

        // processes movements of the joystick
        void process_joystick_motion(SDL_Event *event)
        

        I believe in the past people may have used joystick to mouse movement wrappers as a work-a-round.

        I will take a look to see if I can link these differing elements of the codebase, but suspect it's not as easy as it looks or sounds.... inherited issue.....

        ย 

        Hypseus Singe: https://github.com/DirtBagXon/hypseus-singe/
        Hypseus Singe 2 conversion Documentation: https://github.com/DirtBagXon/hypseus_singe_data

        1 Reply Last reply Reply Quote 1
        • RustyMG
          RustyMG last edited by

          @DirtBagXon
          @lmerckx
          Could an analogue joypad be "fooled" into operating as a mouse as a work around ?

          Sinclair ZX Spectrum 48k "dead flesh" keyboard, Commodore 64, Amiga A500, Amiga A1200, CD32, PC Engine, PS1, PS2, PSP, Nintendo DS, Dreamcast, Wii, XBox 360, Xbox One-X, Pi2, Pi3, Pi4 owner, ARRM contributor ( http://jujuvincebros.fr/wiki/arrm/doku.php ).

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

            @RustyMG said in New Hypseus with overlays and Singe support:

            @DirtBagXon
            @lmerckx
            Could an analogue joypad be "fooled" into operating as a mouse as a work around ?

            I think the package 'xserver-xorg-input-joystick' might be worth playing around with.

            DESCRIPTION
            joystick is an Xorg input driver for controlling the pointer with a joystick device.
            Use this driver, if you want to
            - generate cursor movement, perform button or key events to control desktop and applications
            - generate cursor key events for playing legacy games, that have no native joystick support
            
            Do not use, if you want to
            - play games, that have native joystick support
            - use XI2 applications. The evdev(4) driver will suffice for those in most cases.
            
            You may mix above scenarios by setting the device floating. The driver reports relative cursor movement, button and key events, as well as raw axis values through valuators.
            

            Hypseus Singe: https://github.com/DirtBagXon/hypseus-singe/
            Hypseus Singe 2 conversion Documentation: https://github.com/DirtBagXon/hypseus_singe_data

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

              Ok,

              I have this working fairly simply, although I have to say playing Maddog with a joystick is a whole different experience.

              Firstly, you need to set the joystick buttons, details are in hypinput.ini file supplied in repo, but I will outline here:

              Remember hypseus uses SDL2 keycodes, so porting previous Daphne configs won't work:

              SDL2 keycodes are here: https://github.com/DirtBagXon/hypseus-singe/blob/master/doc/keylist.txt

              To figure what joystick button to program:

              jstest /dev/input/js0
              

              Minimal config for Maddog:

              [KEYBOARD]
              ...
              KEY_COIN1 = 53 0 7
              KEY_START1 = 49 0 8
              KEY_BUTTON1 = 1073742048 0 3 <- Reload
              KEY_BUTTON3 = 32 0 1         <- Shoot
              KEY_QUIT = 27 0 4
              ...
              END
              

              Joystick config:

              # The third number is the joystick button code (or 0 for "none")
              # Since 0 is reserved for special meaning, joystick button 0 is
              # identified as 1 here.  Button 1 is identified as 2, and so on.
              

              That deals with the buttons, so to the axis:

              There are a few routes but this was most simplistic, using qJoypad:

              apt-get install qjoypad
              

              Then a simple config to map joystick movement to mouse movement:

              cat .qjoypad3/SINGE.lyt 
              
              Joystick 1 {
                      Axis 1: gradient, maxSpeed 10, mouse+h
                      Axis 2: gradient, maxSpeed 10, mouse+v
              }
              

              Load and daemon'ize on game startup with:

              qjoypad -t SINGE
              

              Hypseus Singe: https://github.com/DirtBagXon/hypseus-singe/
              Hypseus Singe 2 conversion Documentation: https://github.com/DirtBagXon/hypseus_singe_data

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

                @lmerckx

                Ok, so I have added joystick support to Singe...

                Could I ask you to test this out ?

                git clone --single-branch --branch singe-joystick https://github.com/DirtBagXon/hypseus-singe.git
                

                It takes additional arguments of: ย ย  -js_range <1-15> ย ย to alter joystick sensitivity: defaults to '5' currently.

                BTW: Maddog will look optimal with the following argument too: ย ย -blend_singe_sprites

                Hypseus Singe: https://github.com/DirtBagXon/hypseus-singe/
                Hypseus Singe 2 conversion Documentation: https://github.com/DirtBagXon/hypseus_singe_data

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

                  @DirtBagXon said in New Hypseus with overlays and Singe support:

                  BTW: Maddog will look optimal with the following argument too: ย ย -blend_singe_sprites

                  -blend_singe_sprites now changed to -blend_sprites

                  Option has become game (singe) specific....

                  ย 

                  Also just to clarify, joystick support is now within Hypseus Singe in the branch link above.

                  It does not need the wrapper options discussed above.

                  Hypseus Singe: https://github.com/DirtBagXon/hypseus-singe/
                  Hypseus Singe 2 conversion Documentation: https://github.com/DirtBagXon/hypseus_singe_data

                  1 Reply Last reply Reply Quote 2
                  • lmerckx
                    lmerckx last edited by

                    Great ! Thanks @DirtBagXon .
                    I will test that ...

                    Recalbox 9.1 on RPI 4, SSD 250Gb, 2 Logitech F710, Nespi4case
                    Contributions for DosBox, ScummVM, ResidualVM, Daphne (Hypseus)

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

                      @RustyMG said in New Hypseus with overlays and Singe support:

                      Could an analogue joypad be "fooled" into operating as a mouse as a work around ?

                      If the joystick is supported by linux, and you can see axis movement with jstest: -

                      Yes it should now work in the main repo from v2.4.2

                      ย 

                      I believe the following games work on Singe?

                      Crime Patrol
                      Crime Patrol 2: Drug Wars
                      Mad Dog McCree
                      Mad Dog McCree 2: The Lost Gold
                      Ninja Hayate
                      Space Pirates
                      Time Gal
                      Time Traveler
                      The Last Bounty Hunter
                      Who Shot Johnny Rock
                      38 Ambush Alley
                      Blue Thunder
                      HydroSub 2021
                      Pops Ghostly
                      Sonic Fury

                      Yep all these work.... plus....

                      TimeGal (Singe 1 and 2 versions)
                      Ninja Hayate
                      Starblazers
                      Platoon (Singe 2)
                      Freedom Fighter
                      Fire and Ice (Singe 2)
                      Dragon's Lair 2 Enhanced Edition (Singe 2)

                      Not to forget all the Daphne games...

                      ย 

                      Hypseus Singe: https://github.com/DirtBagXon/hypseus-singe/
                      Hypseus Singe 2 conversion Documentation: https://github.com/DirtBagXon/hypseus_singe_data

                      1 Reply Last reply Reply Quote 0
                      • RustyMG
                        RustyMG last edited by

                        ๐Ÿ˜๐Ÿ˜๐Ÿ˜๐Ÿ˜๐Ÿ˜๐Ÿ˜๐Ÿ˜๐Ÿ˜

                        Sinclair ZX Spectrum 48k "dead flesh" keyboard, Commodore 64, Amiga A500, Amiga A1200, CD32, PC Engine, PS1, PS2, PSP, Nintendo DS, Dreamcast, Wii, XBox 360, Xbox One-X, Pi2, Pi3, Pi4 owner, ARRM contributor ( http://jujuvincebros.fr/wiki/arrm/doku.php ).

                        1 Reply Last reply Reply Quote 0
                        • lmerckx
                          lmerckx last edited by

                          @DirtBagXon I've tested the joystick patch.

                          It works but, indeed, targeting with the joystick is really hard !
                          The mouse (touchpad for me) is really simplier.

                          But anyway, I will post a merge request to integrate your project in Recalbox.

                          Recalbox 9.1 on RPI 4, SSD 250Gb, 2 Logitech F710, Nespi4case
                          Contributions for DosBox, ScummVM, ResidualVM, Daphne (Hypseus)

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

                            @lmerckx said in New Hypseus with overlays and Singe support:

                            @DirtBagXon I've tested the joystick patch.

                            It works but, indeed, targeting with the joystick is really hard !
                            The mouse (touchpad for me) is really simplier.

                            But anyway, I will post a merge request to integrate your project in Recalbox.

                            Many thanks,

                            I have been told that it works well with lightguns and trackball setups, but I don't have the ability to test these.

                            It basically uses SDL2 LEFT, RIGHT, UP and DOWN keycodes, so provided the connected device send these (joysticks, trackb***s, lightguns and indeed keyboards) all do so technically it should work.

                            The patch is now in the main master and RetroPie branches, so no need to use the sub-branch above.

                            A few others have now tested with good responses, so thank you for the idea of adding it ๐Ÿ˜

                            It does add a new element of difficulty to the games, but a few of the testers have added it to arcade cabinet conversions (which obviously don't have mice), and are giving very positive feedback......

                            ย 

                            Hypseus Singe: https://github.com/DirtBagXon/hypseus-singe/
                            Hypseus Singe 2 conversion Documentation: https://github.com/DirtBagXon/hypseus_singe_data

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

                              For any Windows users out there, there is now a Windows Port of Hypseus Singe:

                              https://github.com/DirtBagXon/hypseus-singe/tree/master/win32

                              Hypseus Singe: https://github.com/DirtBagXon/hypseus-singe/
                              Hypseus Singe 2 conversion Documentation: https://github.com/DirtBagXon/hypseus_singe_data

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

                                @dirtbagxon
                                Indeed, I've seen that you go on improving the emulator. Thanks.
                                I will b*mp the version in Recalbox.

                                Just for information, the patch you imported from "Batocera" to support multiple joysticks and improve them is mine. It has been created for Recalbox and copied by Batocera. ๐Ÿ˜‰

                                Recalbox 9.1 on RPI 4, SSD 250Gb, 2 Logitech F710, Nespi4case
                                Contributions for DosBox, ScummVM, ResidualVM, Daphne (Hypseus)

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

                                  @lmerckx said in New Hypseus with overlays and Singe support:

                                  @dirtbagxon
                                  ย 
                                  Just for information, the patch you imported from "Batocera" to support multiple joysticks and improve them is mine. It has been created for Recalbox and copied by Batocera. ๐Ÿ˜‰

                                  Arggh, sorry about that, I didn't see them link it back.

                                  As I said before, many thanks for all the previous improvements before I took a look at hypseus. It would not be what it is today without all the developer input.

                                  Hypseus Singe: https://github.com/DirtBagXon/hypseus-singe/
                                  Hypseus Singe 2 conversion Documentation: https://github.com/DirtBagXon/hypseus_singe_data

                                  1 Reply Last reply Reply Quote 0
                                  • carolynperry
                                    carolynperry last edited by

                                    I have read elsewhere that this is now working reliably with lots more laserdisc games.

                                    1 Reply Last reply Reply Quote 0
                                    • carolynperry
                                      carolynperry last edited by Pitch64

                                      Indeed, I've seen that you go on improving the emulator. Thanks.

                                      DirtBagXon 1 Reply Last reply Reply Quote 1
                                      • DirtBagXon
                                        DirtBagXon @carolynperry last edited by DirtBagXon

                                        @carolynperry said in New Hypseus with overlays and Singe support:

                                        Indeed, I've seen that you go on improving the emulator. Thanks.

                                        I try ๐Ÿ™‚

                                        Software Scoreboard

                                        https://www.youtube.com/watch?v=tprqS8bUDkI&list=PLRLuhkf2c3OeRoXydn0upKyIBUXNMK13x

                                        ย 

                                        Hypseus Singe: https://github.com/DirtBagXon/hypseus-singe/
                                        Hypseus Singe 2 conversion Documentation: https://github.com/DirtBagXon/hypseus_singe_data

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

                                          Further features in line with Daphne.

                                          CRT, Laserdisc artifacts - Scanlines and Blanking Searches:

                                          https://www.youtube.com/watch?v=LoFPJxeQI3Y&list=PLRLuhkf2c3OeRoXydn0upKyIBUXNMK13x&index=1

                                          lair scanlines

                                          badlands scanlines

                                          Hypseus Singe: https://github.com/DirtBagXon/hypseus-singe/
                                          Hypseus Singe 2 conversion Documentation: https://github.com/DirtBagXon/hypseus_singe_data

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

                                            Singe integration should now be significantly easier in emulation console environments as of version 2.6.1.

                                            I have added a new argument (-retropath) to Singe games that will rewrite the LUA data paths, on the fly, to match the standard Daphne folder structure:

                                            singe/timegal/
                                            

                                            to

                                            singe/../timegal.daphne/
                                            

                                            Which, although still requires the โ€˜singeโ€™ subdirectory, the directory can, and should, remain empty.

                                            This removes the need for sym linking peripheral data in the subdirectory.

                                            Further details are in latest RetroPie documentation and implementation is in daphne.sh script.

                                            Hypseus Singe: https://github.com/DirtBagXon/hypseus-singe/
                                            Hypseus Singe 2 conversion Documentation: https://github.com/DirtBagXon/hypseus_singe_data

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

                                            Want to support us ?

                                            86
                                            Online

                                            99.7k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright ยฉ 2021 recalbox.com