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
    11476
    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.
    • DirtBagXon
      DirtBagXon last edited by

      Hi guys,

      I know Recalbox uses Hypseus currently for Daphne game support, but just wanted to point you in the direction of a fork of Hypseus I have been working on recently that has overlays and Singe support.

      I have a RetroPie README up that allows it as a straight drop-in over the native libretro plugin they use. Hoping it might be usuful for you guys too.

      https://github.com/DirtBagXon/hypseus-singe

      https://github.com/DirtBagXon/hypseus-singe/blob/master/RETROPIE.md

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

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

        @DirtBagXon What about lr-daphne instead?
        This supports more games I believe, eg the Mad Dog McCree ones amongst others?

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

          Not sure I understand your question.

          libretro-daphne (lr-daphne) - Doesn't have support for Singe games.

          Singe being support for: https://en.wikipedia.org/wiki/American_Laser_Games etc.

          Mad Dog McCree (1990)
          Who Shot Johnny Rock? (1991)
          Space Pirates (1992)
          Mad Dog II: The Lost Gold (1992)
          Gallagher's Gallery (1992)
          Crime Patrol (1993)
          Crime Patrol 2: Drug Wars (1994)
          The Last Bounty Hunter (1994)
          Time Gal (1985)
          Ninja Hayate (1984)

          In fact I don't believe any of the other cores support Singe games at all, it has been a feature request for many years.

          Hypseus Singe is the only core that currently has support for these games. I have worked with the RetroPie guys in their forum to get this working as a drop-in replacement for the older Daphne plugin (i.e. lr-daphne) and provide Singe support.

          Hypseus Singe also fixes the overlays on Dragon's Lair (1 &2) and Space Ace etc, which are currently missing from the main hypseus repo.

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

            @RustyMG

            LibRetro feature request from 2018:

            Get Singe part of Daphne working #15

            https://github.com/libretro/daphne/issues/15

            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 RustyMG

              @DirtBagXon
              Hi all,
              Been a long day and Im reading the forum posts when meant to be working.
              Yes, I meant Singe!

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

              This, along with a Sinden light gun would be an amazing combination!

              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 1 Reply Last reply Reply Quote 0
              • paradadf
                paradadf Staff @DirtBagXon last edited by

                @DirtBagXon this might be of interest for @lmerckx, who added daphne to recalbox.

                If your question was answered, please mark it as solved: Topic Tools -> Ask a question + Topic Tools -> Mark as Solved

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

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

                  This, along with a Sinden light gun would be an amazing combination!

                  Aha, that would be Singe 2 - which doesn't have Daphne support.

                  A whole different ball game.

                  However, Hypseus Singe does have psuedo support for many of the Singe 2 games too.

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

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

                    @DirtBagXon this might be of interest for @lmerckx, who added daphne to recalbox.

                    Ok, thanks I'll try and ping them.

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

                      Will drop this here, to show development through different stages:

                      https://www.youtube.com/playlist?list=PLRLuhkf2c3OeRoXydn0upKyIBUXNMK13x

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

                        Hello @DirtBagXon,

                        Thanks for your message and your work.
                        I'll have a look at it.

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

                          Hello @DirtBagXon,

                          I've started to test your development and it seems to work.
                          I also adapted my patches to support remapping of joystick axis (as it is done for buttons).

                          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 ...

                          Thank you.

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

                          DirtBagXon 2 Replies Last reply Reply Quote 0
                          • 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
                                            • First post
                                              Last post

                                            Want to support us ?

                                            72
                                            Online

                                            99.3k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com