New Hypseus and lr-Daphne to add on Retropie-Setup
-
@dirtbagxon I confirmed that the 64bit kernel is not compatible with default compile. If @bluestang's patch fixes this (compatible compiler options/includes?) I'll inform.
-
@roslof said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@dirtbagxon I confirmed that the 64bit kernel is not compatible with default compile. If @bluestang's patch fixes this (compatible compiler options/includes?) I'll inform.
But this is 64bit kernel with 32bit userland - correct ?
-
@dirtbagxon forgive, I'm unclear/green on userland. Only know that @bluestang's patch + installer run fine with these settings (KMS/64-bit kernel). Will try his patch with your build shortly.
-
file /usr/local/bin/hypseus.bin
-
@dirtbagxon looks like 32-bit
/usr/local/bin/hypseus.bin: ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=0870fd6f38c57af407124e243bb5b7f06f4319bd, with debug_info, not stripped
-
This may go some way to explain the .dat file creation issues...
-
@dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:
This may go some way to explain the .dat file creation issues...
Maybe, but this was not an issue with @bluestang's compile, and I verified it is also a 32-bit file. All dats I have now were generated with his exe.
-
Looking here: https://retropie.org.uk/forum/post/254740
It appears that patch should cover it with local libmpeg2-4
-
The TLDR: Success! Dragon's Lair runs with 64bit Kernel + KMS
The Output:
wget https://github.com/bluestang2006/hypseus/commit/76bc01fdf09152820fff88c28c61b2bea1b47ecf.patch -O patch.diff
(received)
patch -p1 < patch.diff
patching file src/CMakeLists.txt
patching file src/vldp/vldp.h
patching file src/vldp/vldp_internal.cppsudo apt-get install libmpeg2-4-dev
libmpeg2-4-dev is already the newest version (0.5.1-8).
mkdir build
done, and added
cd build
cmake ../src
good
make
good
then
mv hypseus hypseus.bin
andsudo cp hypseus /usr/local/bin/hypseus.bin
(overwriting previous executable)RESULTS:
Success! Dragon's Lair runs with 64bit Kernel + KMS -
Or just grab this pre-patched branch in future:
git clone --single-branch --branch RetroPie https://github.com/DirtBagXon/hypseus-singe.git
-
@dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:
Or just grab this pre-patched branch in future:
git clone --single-branch --branch RetroPie https://github.com/DirtBagXon/hypseus.git
Hindsight 20/20. Great work on this, man.
-
Well, didn't expect my few days off to be spent like this :)
Great news, thanks for all the testing.
░░░░░░░░░░░░▄▄░░░░░░░░░
░░░░░░░░░░░█░░█░░░░░░░░
░░░░░░░░░░░█░░█░░░░░░░░
░░░░░░░░░░█░░░█░░░░░░░░
░░░░░░░░░█░░░░█░░░░░░░░
███████▄▄█░░░░░██████▄░
▓▓▓▓▓▓█░░░░░░░░░░░░░░█░
▓▓▓▓▓▓█░░░░░░░░░░░░░░█░
▓▓▓▓▓▓█░░░░░░░░░░░░░░█░
▓▓▓▓▓▓█░░░░░░░░░░░░░░█░
▓▓▓▓▓▓█░░░░░░░░░░░░░░█░
▓▓▓▓▓▓█████░░░░░░░░░█░░
██████▀░░░░▀▀██████▀░░░ -
Awesome that another fork is out there for users to try.
My patch should work with both 32-bit and 64-bit RPiOS. The userland for each should be their respective kernel, i.e. armhf (32-bit) or aarch64 (64-bit). It is not a good idea to mix binaries so I have separate thumb drives for both images.
I exclusively use the 64bit though because gcc compiled binaries guarantees NEON optimizations and overall I find the end user experience to be very good.
In addition the KMS driver is in a very stable state in the 5.10.X kernels as well as the KMS audio driver.
-
@pjft said in New Hypseus and lr-Daphne to add on Retropie-Setup:
@roslof They were, and it probably can - but you might even get away with a simple compiler flag. I don't have it at hand, but if you check my last commit on the RetroPie-Setup repo for the daphne installer, as well as the makefiles in Daphne, you might see it.
The issue was related to how the compiler handled the default type for char - as signed or unsigned int.
If I recall correctly, we want these to be... signed?
Hey @pjft,
These are committed to Hypseus here:
https://github.com/DirtBagXon/hypseus/commit/be31cfb503b00e6f493d217287c
-
@dirtbagxon @bluestang between the two of you, I am running things nicely like this:
- Use @DirtBagXon's latest executable code with the additional font and nice overlay tech
- Moved the executable into my ..\emulators\daphne folder
- Paired it with @bluestang's hypseus.sh script (greatly preferred, as it mirrors the current Daphne format)
With all of these little changes (and tweaks to the script and RetroPie emulators.cfg file to support) this is almost perfect... My code is 32-bit and I'm running on 64-bit.
Since KMS and 64-bit will be more and more leveraged by the community, and since Daphne stand-alone will simply not work with this configuration, I would advise this hybrid approach. I think it'll be easier to accept into the RetroPie master branch if:
- Users won't have to move their folders around from default (should remain as <romname>.daphne and not rely on vldp_dl and vldp folders
- Should use a similar launch script to Daphne, so you can literally just swap the emulator
- Uses a RetroPie module script that can build for 32-bit or 64-bit
- That supports @pjft's fixes for Bega, Badlands and Road Blaster (so feature parity with Daphne)
- And with the new, nice overlay support with font
Would the two of you consider this approach? And for what it's worth, I have no say on what get into experimental modules, but as a user, this would make me incredibly happy -- to finally see a supported Daphne/Laserdisc emulator that is basically plug-and-play, but with nice new features for KMS and 32/64-bit support.
Personally, I'm set up pretty good now, but it took a bit of time to get it just right.
-
Happy for that approach, however I have no knowledge of packaging RetroPie plugins, so would be better to leave that to those who know more. The real issue here is the sheer amount of complex argument options that Daphne/Hypseus take. I tackled this with the wrapper script inherited, and repeatedly edited, from DavidGriffith's original Daphne repo. This is the whole reason the original (closed source) Daphne Loader application used to exist, and even that was a bit of a nightmare to use....
Users won't have to move their folders around from default (should remain as <romname>.daphne and not rely on vldp_dl and vldp folders
All this can be easily done by editing the wrapper script to reference whatever directories you want/need. It's all in editable text in run.sh.
Should use a similar launch script to Daphne, so you can literally just swap the emulator
Hypseus is statically linked to the vldp module now, which means it's a monolithic binary that can be installed and run from anywhere. This is a big advantage over the shared library path hassles required to link to libvldp2.so in the older repos. Should, and can, be a straight swap out of the binary.
That supports @pjft's fixes for Bega, Badlands and Road Blaster (so feature parity with Daphne)
And with the new, nice overlay support with fontUse the new repo and fork it.
Uses a RetroPie module script that can build for 32-bit or 64-bit
I have no idea here...
Note:
I have also just pushed another couple of fixes, one removes the need to use --useoverlaysb in the startup arguments.As DL games will no longer display video without it, why make it optional? Passing it as an arg will still work, and can change it from the '2' default.
Note: there are actually only two options, '2' or anything else.....
if (sboverlay_characterset != 2) g_other_bmps[B_OVERLAY_LEDS] = load_one_bmp("pics/overlayleds1.bmp"); else g_other_bmps[B_OVERLAY_LEDS] = load_one_bmp("pics/overlayleds2.bmp");
I may begin to look at getting the Singe v1 plugin into Hypseus. The Singe code appears to have all been stripped out of the codebase so this may be no small task. But if I get some more time to play I may try for my own interest. We always have Singe2 to fall back on....
-
Now have Dragon's Lair II (lair2) overlays working in Hypseus.
I only use lair2 ROM 3.19 (US) - so be interested if anyone uses any other versions, and the results.
It requires another FIXED width font (whitrabt.ttf ).
So ensure you add that to the fonts directory.It should however warn you if it isn't there:
Now with better alignment:
-
@dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:
Now have Dragon's Lair II (lair2) overlays working in Hypseus.
I only use lair2 ROM 3.19 (US) - so be interested if anyone uses any other versions, and the results.
It requires another FIXED width font (whitrabt.ttf ).
So ensure you add that to the fonts directory.It should however warn you if it isn't there
I'll take a look now.
-
@DirtBagXon I tried lair2 and Hypseus. Game launches and if necessary builds dat files. The game exits/crashes immediately after the slates are rendered and before any overlay is displayed. The audible Lair 2 beep plays just before the crash.
Not a lot of information in the console output or from hypseus_log.csv:
2021/03/21;14:59:44.805;WARN;2394;0;lair2::repaint@988;"Surface does not match disc video, re-allocating surface!" 2021/03/21;14:59:53.494;WARN;2394;0;ldp1000::write@455;"Unimplemented Sony LDP command received: 0xC" 2021/03/21;14:59:55.660;INFO;2394;0;ldp_vldp::nonblocking_search@471;"NOTE: converting FPKS from 29970 to 23976. This may be less accurate."
Other games seem to work. Only lair2 isn't working with the update.
Hope this is helpful.
-
@roslof said in New Hypseus and lr-Daphne to add on Retropie-Setup:
Hope this is helpful.
Ok, looks like a malloc() memory corruption on the Pi.
Will investigate.
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.