New Hypseus and lr-Daphne to add on Retropie-Setup
-
Ok, so I have released current (so far known ) working commits as Hypseus Singe v2.0.2 .
Made the jump to v2 as I think the addition of Singe warrants it.
Attempted to correspond with the original author (h0tw1r3 ) of Hypseus, but haven't had an answer. Guess he didn't like my hacky code, but also hasn't done much with it in a while - big thanks to him for all the SDL2 groundwork.
Also big thanks to @SaturnX for getting me onto the idea of playing with hypseus for SDL2 port. I hope you can pickup on getting some documentation sorted.
And massive thanks to @roslof for all the testing and feedback.
For the moment putting this to bed, dunno where I found the time, but was fun....
Enjoy guys.
-
Hypseus-Singe is now a drop-in replacement for the standard Daphne plugin on RetroPie:
Instructions here:https://github.com/DirtBagXon/hypseus-singe/blob/master/src/3rdparty/retropie/RETROPIE.md
(One last small commit [2.0.2.1 ] for this, which ignores obsolete arguments in the original RetroPie plugin scripts - ensure you grab it!)
As @SaturnX asked for a drop-in replacement thought I would enable that.
I'll let you guys figure the best RetroPie scripting to utilise the Singe extension, but should be straightforward from here.... -
@dirtbagxon Great work! Some questions:
How do I remove the scoreboard? It pops up in space ace and dragons lair 1 . If this is a dipswitch setting then I'll take a look at that later.
How do I get singe games working? I tried the daphne rom config../roms/daphne/timegal.daphne
but that doesn't seem to work:[console] ERROR: Unknown game type specified : [console] timegal
Btw, the pi2 and newer are quad core so most people can usemake -j 4
-
@darksavior said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@dirtbagxon Great work! Some questions:
How do I remove the scoreboard?
You can't turn it off on startup, due to the way the overlays are setup in SDL2, otherwise the underlying video will not appear.
However see below...It pops up in space ace and dragons lair 1 .
Scoreboard toggle on/off via 'spacebar' or 'button 3' (SDLK_SPACE).
How do I get singe games working? I tried the daphne rom config
../roms/daphne/timegal.daphne
but that doesn't seem to work:[console] ERROR: Unknown game type specified : [console] timegal
This I didn't tackle, I hope someone who has written RetroPie scripts can elaborate. For Singe the game type will always be
singe
and an extra argument of-script
is needed to specify the main .singe file. Apart from that its the same.So an example for timegal would be:
/opt/retropie/emulators/daphne/daphne.bin singe vldp -nohwaccel -framefile /home/pi/RetroPie/roms/daphne/timegal.daphne/timegal.txt -script /home/pi/RetroPie/roms/daphne/timegal.daphne/timegal.singe -homedir /opt/retropie/emulators/daphne -fullscreen
You can check the command that is called in:
cat /dev/shm/runcommand.log
Just a matter of getting the script to call the correct arguments. Go for it RetroPie'ers...
Btw, the pi2 and newer are quad core so most people can use
make -j 4
No harm in using a few less cores, just takes a few seconds longer and generates less heat ;)
-
I suppose an edit to:
/opt/retropie/emulators/daphne/daphne.sh
Which looks if a .singe file exists in the target directory, then alters the config accordingly might work. I will take a look at that route.
-
OK,
Seems easy enough.
First backup your exisiting script:
cp /opt/retropie/emulators/daphne/daphne.sh /opt/retropie/emulators/daphne/daphne.sh.orig
Then alter the original file daphne.sh so it's like this:
/opt/retropie/emulators/daphne/daphne.sh
#!/bin/bash dir="$1" name="${dir##*/}" name="${name%.*}" if [[ -f "$dir/$name.commands" ]]; then params=$(<"$dir/$name.commands") fi if [[ -f "$dir/$name.singe" ]]; then "/opt/retropie/emulators/daphne/daphne.bin" singe vldp -framefile "$dir/$name.txt" -script "$dir/$name.singe" -homedir "/opt/retropie/emulators/daphne" -fullscreen $params else "/opt/retropie/emulators/daphne/daphne.bin" "$name" vldp -framefile "$dir/$name.txt" -homedir "/opt/retropie/emulators/daphne" -fullscreen $params fi
Edit: I removed -nohwaccel as it's no longer needed.
-
@dirtbagxon Got a bit further but now it's looking for the fonts and audio stuff . This is the last line:
SINGE: Could not open singe/timegal/teedo.wav: Couldn't open singe/timegal/teedo.wav
I don't have those folders but I have the files in my timegal folder. I'll move them but where would I make those folders? -
@darksavior said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@dirtbagxon Got a bit further but now it's looking for the fonts and audio stuff . This is the last line:
SINGE: Could not open singe/timegal/teedo.wav: Couldn't open singe/timegal/teedo.wav
I don't have those folders but I have the files in my timegal folder. I'll move them but where would I make those folders?Mmmm, this is following the path in the .singe file, which is looking for:
/opt/retropie/emulators/daphne/singe/timegal
i.e. the -homedir + singe + gamename
All the singe game files will have the same path, as this is where it has traditional been and coded. Let me think about clean way to do that.....
Messy way:
cd /opt/retropie/emulators/daphne/ mkdir singe cd singe ln -s ../timegal.daphne timegal
I think.... ^ more correct ?
Does that work firstly ?
-
@darksavior said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@dirtbagxon Got a bit further but now it's looking for the fonts and audio stuff . This is the last line:
SINGE: Could not open singe/timegal/teedo.wav: Couldn't open singe/timegal/teedo.wav
I don't have those folders but I have the files in my timegal folder. I'll move them but where would I make those folders?Hey @Darksavior. FWIW, I had the same issues and had to jump through a couple of mini-hoops. As it stands, I believe the ../roms/daphne folder is always "root" for any of the
<game>.singe
scripts regardless of its location.If helpful, for Singe games only, this is what I'm currently doing to solve:
-
Create a simlink within roms/daphne:
ln -s /home/pi/RetroPie/roms/daphne singe
RESULT SHOULD BE: singe -> /home/pi/RetroPie/roms/daphne -
For each Singe game, create simlinks that are the name of the rom that map to each .daphne game within roms/daphne:
Examples:
ln -s /home/pi/RetroPie/roms/daphne/hayate.daphne hayate
ln -s /home/pi/RetroPie/roms/daphne/maddog.daphne maddog
ln -s /home/pi/RetroPie/roms/daphne/maddog2.daphne maddog2
ln -s /home/pi/RetroPie/roms/daphne/timegal.daphne timegal
ln -s /home/pi/RetroPie/roms/daphne/timetraveler.daphne timetraveler
SAMPLE RESULTS:
hayate -> hayate.daphne/
maddog -> maddog.daphne/
maddog2 -> maddog2.daphne/
timegal -> timegal.daphne/
timetraveler -> timetraveler.daphne/
So it's not pretty, and I fought with -homedir and -datadir settings to no avail. -- but this is best solution I could find based on the way code currently works that allows the standard naming convention and a clean launch from EmulationStation without extra files/folders visible.
IDEALLY, the -script command-line directory would be the root directory for any game instead of -homedir or -datadir.
-
-
This post is deleted! -
@roslof said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@darksavior said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@dirtbagxon Got a bit further but now it's looking for the fonts and audio stuff . This is the last line:
SINGE: Could not open singe/timegal/teedo.wav: Couldn't open singe/timegal/teedo.wav
I don't have those folders but I have the files in my timegal folder. I'll move them but where would I make those folders?Hey @Darksavior. FWIW, I had the same issues and had to jump through a couple of mini-hoops. As it stands, I believe the ../roms/daphne folder is always "root" for any of the
<game>.singe
scripts regardless of its location.If helpful, for Singe games only, this is what I'm currently doing to solve:
-
Create a simlink within roms/daphne:
ln -s /home/pi/RetroPie/roms/daphne singe
RESULT SHOULD BE: singe -> /home/pi/RetroPie/roms/daphne -
For each Singe game, create simlinks that are the name of the rom that map to each .daphne game within roms/daphne:
Examples:
ln -s /home/pi/RetroPie/roms/daphne/hayate.daphne hayate
ln -s /home/pi/RetroPie/roms/daphne/maddog.daphne maddog
ln -s /home/pi/RetroPie/roms/daphne/maddog2.daphne maddog2
ln -s /home/pi/RetroPie/roms/daphne/timegal.daphne timegal
ln -s /home/pi/RetroPie/roms/daphne/timetraveler.daphne timetraveler
SAMPLE RESULTS:
hayate -> hayate.daphne/
maddog -> maddog.daphne/
maddog2 -> maddog2.daphne/
timegal -> timegal.daphne/
timetraveler -> timetraveler.daphne/
So it's not pretty, and I fought with -homedir and -datadir settings to no avail. -- but this is best solution I could find based on the way code currently works that allows the standard naming convention and a clean launch from EmulationStation without extra files/folders visible
Same thing, but putting them in a subdir, as I did, might be a little neater.
This is due to paths hardcoded into the .singe files themselves, which we really don't want to be editing.
In my suggestion it would be:
roms |-- daphne | | | | | |-- timegal.daphne | | |-- timegal.commands (Optional) | | | | | |-- timegal.txt | | |-- timegal.m2v | | |-- timegal.ogg | | |-- timegal.singe | | | | | +-- singe | +-- timegal <<- link to ../timegal.daphne (ln -s ../timegal.daphne timegal) | | | | | +-- roms | +-- lair.zip
With the new daphne.sh as above of course.
-
-
@dirtbagxon No change. Same error messages.
@roslof Got further with your simlink which gets different errors now:2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/ring01.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/credit.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/select.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/ring02.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/right.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/wrong.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/blip.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/teedo.wav: Could not find RIFF or WAVE identifiers (not a Waveform file)
-
@darksavior said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@dirtbagxon No change. Same error messages.
Ok, maybe it needs
--datadir
argument, I have edited the daphne.sh above with that argument for the singe games - replace it with the new content - does that work ?--homedir
and--datadir
I have always specified previously, so let's stick with that.... -
@darksavior said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@dirtbagxon No change. Same error messages.
@roslof Got further with your simlink which gets different errors now:2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/ring01.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/credit.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/select.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/ring02.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/right.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/wrong.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/blip.wav: Could not find RIFF or WAVE identifiers (not a Waveform file) 2021-03-28 00:19:01.945 INFO [21016] [printline@95] SINGE: Could not open singe/timegal/teedo.wav: Could not find RIFF or WAVE identifiers (not a Waveform file)
Be sure ALL game-related files are pulled out of subfolders and placed into the main <gamename>.daphne folder. The subfolders should be empty and discarded. Feel free to backup first, just in case.
EDIT see note below from @DirtBagXon that this will be case-by-case, depending on the game.
-
@dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@darksavior said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@dirtbagxon No change. Same error messages.
Ok, maybe it needs
--datadir
argument, I have edited the daphne.sh above with that argument for the singe games - replace it with the new content - does that work ?--homedir
and--datadir
I have always specified previously, so let's stick with that....I thought I tried that and appended the $dir or something, but I recall it didn't work correctly. Will play around with this in a bit.
-
@roslof said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@darksavior said in New Hypseus and lr-Daphne to add on Retropie-Setup:
Be sure ALL game-related files are pulled out of subfolders and placed into the main <gamename>.daphne folder. The subfolders should be empty and discarded. Feel free to backup first, just in case.
Agreed, in this case of
timegal
but subdirectories can be there in other games, again dictated by the.singe
file. -
@roslof 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:
@darksavior said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@dirtbagxon No change. Same error messages.
Ok, maybe it needs
--datadir
argument, I have edited the daphne.sh above with that argument for the singe games - replace it with the new content - does that work ?--homedir
and--datadir
I have always specified previously, so let's stick with that....I thought I tried that and appended the $dir or something, but I recall it didn't work correctly. Will play around with this in a bit.
No
--homedir
and--datadir
are the root of daphne, so roms, singe etc are subdirs from there.You shouldn't append game names to those arguments.
-
@dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:
No --homedir and --datadir are the root of daphne, so roms, singe etc are subdirs from there.
You shouldn't append game names to those arguments.Right with you. This is my current setting, but still need to use the symlinks.
I believe in order for this to work, there needs to be a dynamic argument that moves with the folder name you select from EmulationStation. So using Time Gal as an example:
timegal.daphne is the folder
The script parses this into $name as timegal and $dir as timegal.daphne (I believe).
The script resides in timegal.daphne -- but -homedir and -datadir are a level higher.
So everything in timegal.daphne is ignored by the script, as it's using the directory one level higher.If $dir can be used to dynamically move with your selection, I think this will work without symlinks. But I'm still pretty junior here, so might be missing something.
-
Also guys, might be useful to see the full output of the commands:
cat /dev/shm/runcommand.log
after any failures.
-
@roslof 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:
No --homedir and --datadir are the root of daphne, so roms, singe etc are subdirs from there.
You shouldn't append game names to those arguments.Right with you. This is my current setting, but still need to use the simlinks.
I believe in order for this to work, there needs to be a dynamic argument that moves with the folder name you select from EmulationStation. So using Time Gal as an example:
timegal.daphne is the folder
The script parses this into $name as timegal and $dir as timegal.daphne (I believe).
The script resides in timegal.daphne -- but the --homedir and --datadir are a level higher.
So everything in timegal.daphne is ignored by the script, as it's using the directory one level higher.If $dir can be used to dynamically move with your selection, I think this will work without symlinks. But I'm still pretty junior here, so might be missing something.
Let me try and replicate this, and see what is happening.....
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.