Navigation

    Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Download
    • Gitlab repository
    • Documentation
    • Discord
    1. Home
    2. DirtBagXon
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    DirtBagXon

    @DirtBagXon

    3
    Reputation
    12
    Posts
    1
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    DirtBagXon Follow

    Best posts made by DirtBagXon

    • RE: New Hypseus with overlays and Singe support

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

      posted in Your recalbox
      DirtBagXon
      DirtBagXon
    • RE: New Hypseus with overlays and Singe support

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

       

      posted in Your recalbox
      DirtBagXon
      DirtBagXon

    Latest posts made by DirtBagXon

    • RE: New Hypseus with overlays and Singe support

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

       

      posted in Your recalbox
      DirtBagXon
      DirtBagXon
    • RE: New Hypseus with overlays and Singe support

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

      posted in Your recalbox
      DirtBagXon
      DirtBagXon
    • RE: New Hypseus with overlays and Singe support

      @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

      posted in Your recalbox
      DirtBagXon
      DirtBagXon
    • RE: New Hypseus with overlays and Singe support

      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
      
      posted in Your recalbox
      DirtBagXon
      DirtBagXon
    • RE: New Hypseus with overlays and Singe support

      @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.
      
      posted in Your recalbox
      DirtBagXon
      DirtBagXon
    • RE: New Hypseus with overlays and Singe support

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

       

      posted in Your recalbox
      DirtBagXon
      DirtBagXon
    • RE: New Hypseus with overlays and Singe support

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

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

      posted in Your recalbox
      DirtBagXon
      DirtBagXon
    • RE: New Hypseus with overlays and Singe support

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

      posted in Your recalbox
      DirtBagXon
      DirtBagXon
    • RE: New Hypseus with overlays and Singe support

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

      posted in Your recalbox
      DirtBagXon
      DirtBagXon
    • RE: New Hypseus with overlays and Singe support

      @RustyMG

      LibRetro feature request from 2018:

      Get Singe part of Daphne working #15

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

      posted in Your recalbox
      DirtBagXon
      DirtBagXon