New Hypseus with overlays and Singe support
-
@DirtBagXon
@lmerckx
Could an analogue joypad be "fooled" into operating as a mouse as a work around ? -
@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.
-
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
-
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
-
@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.
-
Great ! Thanks @DirtBagXon .
I will test that ... -
@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 FuryYep 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...
-
-
@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.
-
@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......
-
For any Windows users out there, there is now a Windows Port of Hypseus Singe:
https://github.com/DirtBagXon/hypseus-singe/tree/master/win32
-
@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.
-
@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.
-
I have read elsewhere that this is now working reliably with lots more laserdisc games.
-
Indeed, I've seen that you go on improving the emulator. Thanks.
-
@carolynperry said in New Hypseus with overlays and Singe support:
Indeed, I've seen that you go on improving the emulator. Thanks.
I try
https://www.youtube.com/watch?v=tprqS8bUDkI&list=PLRLuhkf2c3OeRoXydn0upKyIBUXNMK13x
-
Further features in line with Daphne.
CRT, Laserdisc artifacts - Scanlines and Blanking Searches:
https://www.youtube.com/watch?v=LoFPJxeQI3Y&list=PLRLuhkf2c3OeRoXydn0upKyIBUXNMK13x&index=1
-
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.
-
I have a little question about your core as I'm testing it on next future release.
On ActionMax games, once the ActionMax intro finished to play, Hypseus refuses to play other m2v files and exits with the error
Could not RenderTarget in get_pixel
. What could be the cause to have this error? The called .m2v is bad?Thanks
Edit: it seems you edited the function with this error message on v2.5.4, and we are testing v2.4.8. My error could come from this
-
The way the YUV is rendered in a SDL2 texture within Hypseus made the function that reads the pixels far more difficult than it should be. I made some comments in the README of this repo:
https://github.com/DirtBagXon/hypseus_singetwo_data/tree/master/actionmax
You can try using the
-nohwaccel
option but on the Pi but this will probably lower your framerate to unacceptable levels. At this point I don't have a solution on the Pi until, I currently believe, X11 and SDL2 support is improved. ActionMax works fine on the Linux desktops, Windows and Mac ports.However, as you mention versions, from v2.6.1 (very recent) adding Singe support to emulation stations will become vastly simplified using the
-retropath
argument. This performs on-the-fly LUA path rewrites for singe peripheral data, which removes the need for thesinge
sub-directory completely. I posted some early data above (which I can no longer edit), but the latest details are commented here:https://github.com/DirtBagXon/hypseus-singe/blob/master/src/3rdparty/retropie/RETROPIE.md
You may want, if you forgive the link, look here too: https://retropie.org.uk/forum/post/263036