RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    New Hypseus and lr-Daphne to add on Retropie-Setup

    Scheduled Pinned Locked Moved Ideas and Development
    daphnelaserdischypseusdaphne confighypseus config
    501 Posts 33 Posters 228.0k Views
    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.
    • roslofR
      roslof
      last edited by roslof

      @SaturnX posted:

      Has anyone had any luck with getting hypseus running on a pi4?

      FWIW: I just installed the latest Hypseus on a Pi4B/32-bit/KMS using the directions found in the OP, and it is 'working' but with the same freezing and video being unable to keep up with gameplay.

      Spot-checked a few games:

      Framerate issues:
      Dragon's Lair (framerate/freezing issues)
      Space Ace (framerate/freezing issues)
      Astron Belt (some freezing, but only during LaserDisc seeks)

      Runs fine:
      Cliff Hanger (working fine)
      M.A.C.H. 3: (working fine)

      So... Mixed.

      B 1 Reply Last reply Reply Quote 0
      • B
        bluestang @roslof
        last edited by bluestang

        @roslof 64-bit RPiOS does not seem to suffer the same problems for me in hypseus.

        I tried lr-daphne but wasn’t getting any sound output. I’ll need to try it again with your directory structure you posted.

        roslofR 1 Reply Last reply Reply Quote 0
        • roslofR
          roslof @bluestang
          last edited by roslof

          @bluestang said in New Hypseus and lr-Daphne to add on Retropie-Setup:

          @roslof 64-bit RPiOS does not seem to suffer the same problems for me in hypseus.

          I tried lr-daphne but wasn’t getting any sound output. I’ll need to try it again with your directory structure you posted.

          Hmm. Hypseus crashes for me while in 64-bit. Did you have to compile it differently to support 64-bit?

          B 1 Reply Last reply Reply Quote 0
          • B
            bluestang @roslof
            last edited by bluestang

            @roslof said in New Hypseus and lr-Daphne to add on Retropie-Setup:

            @bluestang said in New Hypseus and lr-Daphne to add on Retropie-Setup:

            @roslof 64-bit RPiOS does not seem to suffer the same problems for me in hypseus.

            I tried lr-daphne but wasn’t getting any sound output. I’ll need to try it again with your directory structure you posted.

            Hmm. Hypseus crashes for me while in 64-bit. Did you have to compile it differently to support 64-but?

            I just add this -DCMAKE_BUILD_TYPE=Release but that should already be set in the CMake file as default IIRC.

            I do remember having to delete the dat files so they could be re-generated for a few of the roms...

            I’d also try just running the roms with a very vanilla cmd line.

            Any hypseus logs?

            B 1 Reply Last reply Reply Quote 0
            • B
              bluestang @bluestang
              last edited by bluestang

              @roslof

              It appears that in 32-bit KMS you have to use libmpeg2-4 from apt instead of building from the btolab repo and a few files need to be patched. This method also works for 64-bit as well.

              Build script here - hypseus.sh

              Patch is here - hypseus.diff

              You can put the build script in ~/RetroPie-Setup/ext/REPOSITORY_NAME/scriptmodules/emulators/
              The patch will need to go in ~/RetroPie-Setup/ext/REPOSITORY_NAME/scriptmodules/emulators/hypseus

              Note: You will also need to copy the sound folder as well. I am still fiddling with this script so it is a WIP.

              1 Reply Last reply Reply Quote 1
              • roslofR
                roslof
                last edited by roslof

                @bluestang said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                @roslof

                It appears that in 32-bit KMS you have to use libmpeg2-4 from apt instead of building from the btolab repo and a few files need to be patched. This method also works for 64-bit as well.

                Ahh, this is fantastic! Great work on the script. Works beautifully. Framerate is clean now. No more crashes. Loads REALLY fast, compared to the original Daphne. Yeah, I'm still green with the compiling and never would have figured out those changes.

                The only bit of weirdness is with the actual rom files location. They are currently at ~/RetroPie/roms/daphne, instead of ~/RetroPie/roms/daphne/roms -- Which is not major, but if they were at the same location as the original Daphne, will be much easier for folks to simply run the script, change the default emulator, and off they go.

                Cheers!!

                roslofR B 2 Replies Last reply Reply Quote 0
                • roslofR
                  roslof @roslof
                  last edited by roslof

                  After running @bluestang's hypseus script, I tested all of the primary games and this is looking like a pretty good substitute for Daphne. Best to nuke the generated DAT files and let hypseus regenerate them, or you might have some funny issues with videos not matching with what was intended.

                  WORKING:
                  Astron Belt
                  Cliff Hanger
                  Cobra Command
                  Dragon's Lair
                  Dragon's Lair (Enhanced)
                  Dragon's Lair II Time Warp
                  Esh's Aurunmilla
                  Galaxy Ranger
                  GP World (only video sound)
                  Interstellar
                  M.A.C.H. 3 (only video sound)
                  Space Ace
                  Super Don Quiote
                  Us vs. Them

                  NOT WORKING:
                  Badlands

                  2021-03-14 22:49:12.639 WARN  [23072] [badlands::cpu_mem_write@292] Write to ffff with 0
                  <repeats>
                  

                  Bega's Battle

                  2021-03-14 22:47:16.156 WARN  [21937] [bega::cpu_mem_write@549] Error! write to main rom at e0df
                  

                  Road Blaster

                  2021-03-14 22:50:40.866 WARN  [24058] [bega::cpu_mem_write@520] write to main rom at a80f
                  2021-03-14 22:50:40.866 WARN  [24058] [bega::cpu_mem_write@520] write to main rom at f8ec
                  

                  Not sure, but I thought the 3 non-working games may have been fixed in Daphne (over the last year or so) by a change from @pjft -- but I could be mistaken. Might be unrelated... Or perhaps a similar change can me made to Hypseus to fix these, but for now, the major games seem to be working perfectly.

                  pjftP 1 Reply Last reply Reply Quote 0
                  • pjftP
                    pjft @roslof
                    last edited by

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

                    https://stackoverflow.com/questions/46463064/what-causes-a-char-to-be-signed-or-unsigned-when-using-gcc

                    If I recall correctly, we want these to be... signed?

                    DirtBagXonD 1 Reply Last reply Reply Quote 1
                    • B
                      bluestang @roslof
                      last edited by

                      @roslof said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                      @bluestang said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                      @roslof

                      The only bit of weirdness is with the actual rom files location. They are currently at ~/RetroPie/roms/daphne, instead of ~/RetroPie/roms/daphne/roms -- Which is not major, but if they were at the same location as the original Daphne, will be much easier for folks to simply run the script, change the default emulator, and off they go.

                      This should be fixed now to ~/RetroPie/roms/daphne/roms

                      I'll need to look into the 3 roms you mentioned that are not working. They all are failing at the same function of their code - ::cpu_mem_write

                      roslofR 1 Reply Last reply Reply Quote 1
                      • roslofR
                        roslof @bluestang
                        last edited by roslof

                        @bluestang said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                        This should be fixed now to ~/RetroPie/roms/daphne/roms

                        Will check this out right away.
                        EDIT: Works perfectly!

                        I'll need to look into the 3 roms you mentioned that are not working. They all are failing at the same function of their code - ::cpu_mem_write

                        Regarding the Daphne stand-alone fix from @pjft, here is the information and it does seem relevant:

                        Commit/Change:
                        https://github.com/RetroPie/daphne-emu/commit/40ce24dd136356d903eb6476ff9dfcef12e7d8bd

                        Forum Posts regarding change:
                        https://retropie.org.uk/forum/topic/27426/request-add-daphne-singe-emulator/36

                        roslofR 1 Reply Last reply Reply Quote 0
                        • roslofR
                          roslof @roslof
                          last edited by roslof

                          @bluestang just a heads-up that the sound folder isn't being built and the script fails.

                          '/home/pi/RetroPie-Setup/tmp/build/hypseus/pics/obsolete/ldp1450.bmp' -> '/opt/retropie/emulators/hypseus/pics/obsolete/ldp1450.bmp'
                          Could not successfully install Hypseus - Laserdisc Emulator (/home/pi/RetroPie-Setup/tmp/build/hypseus/../sound not found).
                          /home/pi/RetroPie-Setup
                          Errors:
                          Could not successfully install Hypseus - Laserdisc Emulator (/home/pi/RetroPie-Setup/tmp/build/hypseus/../sound not found).
                          

                          You probably already knew this, but looking upstream at the btolab repo, sound folder is missing.. No issue for me personally, since I'll just copy the Daphne sound folder, but will probably need to get a copy of the folder upstream for this to work for others. -Cheers!

                          B 1 Reply Last reply Reply Quote 0
                          • B
                            bluestang @roslof
                            last edited by bluestang

                            @roslof said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                            @bluestang just a heads-up that the sound folder isn't being built and the script fails.

                            Fixed again. I didn't upload my latest changes last night. Be sure to replace both files.

                            DirtBagXonD 1 Reply Last reply Reply Quote 1
                            • DirtBagXonD
                              DirtBagXon @bluestang
                              last edited by DirtBagXon

                              @bluestang said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                              @roslof said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                              @bluestang just a heads-up that the sound folder isn't being built and the script fails.

                              Fixed again. I didn't upload my latest changes last night. Be sure to replace both files.

                              Hey @bluestang, @SaturnX

                              Have been playing with Daphne/Singe repos for some time, started getting interested in the hypseus  revival, so.....

                              I forked it and have been playing. Managed to improve some scoreboard overlays and fixed fonts and a few other bits. Have been developing on 64bit Ubuntu (libsdl2 2.0.10 ), so would be interested to hear what this runs like on the RPi and SDL2 and all your various configurations.
                              Note: (It has the recent @pjft Daphne RPi fixes for Badlands, Road Blaster and Bega's Battle merged):

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

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

                              I should add that there is now a requirement to load the TTF fonts in this build.
                              The repos 'fonts' directory, with the two .ttf  files, should be within your 'daphne/hypseus' home dir.
                              i.e. alongside 'roms', 'pics', 'sound', 'framefile' and 'vldp' etc.

                              This should allow you to play around with custom fonts within the overlays, although sizing and positioning may require tweaking.

                              One thing this has bought to attention: SDL2 documentation is severely lacking.
                              My changes may only benefit a desktop with hardware acceleration, but curious what reflection they have had on the RPi setups.

                              I don't have the HD videos so have been working with the original 640x480 (720x480) .m2v  files. One thing I noticed in Dragon's Lair was that a single file, dl-slates.m2v, was larger resolution than the others. This confused the hell out of SDL2 window render resizing, worked fine on original Daphne. I bought the file in line with the following commands:

                              mv dl-slates.m2v dl-slates-orig.m2v
                              ffmpeg -i dl-slates-orig.m2v -vf scale=640:480 -codec:v mpeg2video -b 4182k dl-slates.m2v
                              

                              Hypseus .dat  file generation should pick up the change.

                               
                              Let me know if you get a chance.

                              Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
                              Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
                              Hypseus Discord: https://discord.gg/dgCsCfmRfJ

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

                                @dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                                Let me know if you get a chance.

                                Cool to see you in the mix @DirtBagXon. The structure here looks closer to Singe than original Daphne? Beyond your instructions, I had to rearrange a lot of things to get a single game (lair) to be properly referenced with ES:

                                1. Renamed hypseus --> hypseus.bin
                                2. Modified es_settings for Daphne, adding .sh and .SH
                                3. Created a lair.sh file in roms/Daphne (just switches to /user/local/bin and launches run.sh)
                                4. Renamed lair.daphne to just lair
                                5. Created a simlink in ~/.daphne: vldp_dl -> /home/pi/RetroPie/roms/daphne
                                6. Created a simlink in ~/.daphne: roms -> /home/pi/RetroPie/roms/daphne/roms
                                7. Set executable permissions for run.sh

                                So effectively I'm running: run.sh lair with everything in place.

                                The game is identified. ROMS loaded, etc. etc. (yay)

                                I see a render of the overlay with the new fonts. It starts to parse the video files and creates the first .dat file from the first video in the framefile.

                                Then it crashes before finishing moving to the next video file (so at this point, only one .dat is created).

                                /dev/shm/runcommand.log (tail)

                                ./run.sh: line 163: 31265 Bus error               $HYPSEUS_BIN $1 vldp $FASTBOOT $FULLSCREEN $KEYINPUT $BANKS -framefile $DAPHNE_SHARE/$VLDP_DIR/$1/$1.txt -homedir $DAPHNE_SHARE -datadir $$
                                HypseusLoader failed with an unknown exit code : 135.
                                

                                hypseus_log.csv (tail)

                                2021/03/16;07:30:27.198;INFO;31265;0;ldp_vldp::read_frame_conversions@1038;"Framefile parse succeeded. Video/Audio directory is: /home/pi/.daphne/vldp_dl/lair/./"
                                2021/03/16;07:30:27.198;ERROR;31265;0;printnotice@69;"Press any key to parse your video file(s). This may take a while. Press ESC if you'd rather quit."
                                

                                For for a moment, I got to see your overlay layout.

                                EDIT: I see you edited your post above with this information. FWIW, I am using the hires m2v files (720x480). I reduced the size of the dl-slates.m2v file per your instructions and removed the previously generated .dat. Still crashing, but this time, I don't actually see your overlay at all. Would have thought it would have made it to the second m2v, but it didn't. Let me know if there is anything else you would like tested.

                                EDIT #2: Tried Bega's Battle. Same issue. It built the single .dat file then exited. No significant information in runcommand or the hypseus_log.csv.

                                I do wish the file structure here was similar to the original Hypseus version instead of Singe. You pretty much just need to swap the emulator and you're done. For people using Daphne, this will be a pretty significant process.

                                Still, love to know that there is progress here. Cheers!

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

                                  Forget all the symlinking at this point. If you just edit the top line of run.sh to point to the path of your Daphne home:

                                  HYPSEUS_SHARE=~/.daphne
                                  

                                  to

                                  HYPSEUS_SHARE=/home/pi/RetroPie/roms/daphne
                                  

                                  This appears to be where all your Daphne data sits: 'roms', 'pics', 'sound', 'framefile' and 'vldp'

                                  Copy the 'fonts' directory there also:

                                  cp -R fonts /home/pi/RetroPie/roms/daphne
                                  

                                  Move compiled hypseus to hypseus.bin somewhere in your system $PATH (I used /usr/local/bin) .

                                  In an open Terminal (F4).

                                  • Type 'hypseus.bin' to make sure the binary is found. Show output.
                                  • Then execute 'run.sh' from this terminal. Show output.
                                  • Then try 'run.sh lair' from the same terminal and show full output.

                                  The .dat  file generation is listed as a bug on the original repo, I couldn't replicate this on X64, so may be ARM specific.
                                  You can try recreating the .dat files with original Daphne which seems to be the current work-a-round.
                                  Or try another game with .dat  files existing.

                                  I have not changed anything with the code to make hypseus run in any different manner from the original.
                                  I just included a wrapper script to make running it easier, and it gives all the required arguments by default.

                                  You should see the full command args given to hypseus in the first lines of running the wrapper script. Something like:

                                  hypseus.bin lair vldp -fastboot -bank 1 00110111 -bank 0 10011000 -framefile /home/user/.daphne/vldp_dl/lair/lair.txt -homedir /home/user/.daphne -datadir /home/user/.daphne -useoverlaysb 2 -sound_buffer 2048 -nojoystick -volume_nonvldp 5 -volume_vldp 20
                                  

                                  Any of this can be changed by editing the run.sh wrapper script.
                                  Once it works you can move this wrapper and rename to whatever you like...

                                   

                                  Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
                                  Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
                                  Hypseus Discord: https://discord.gg/dgCsCfmRfJ

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

                                    @dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                                    Any of this can be changed by editing the run.sh wrapper script.
                                    Once it works you can move this wrapper and rename to whatever you like...

                                    Makes sense. Everything is setup properly.

                                    I just tried Badlands and did not rebuild the .dat files. It sits for a bit, then outputs this at the end:

                                    Command line: hypseus.bin badlands vldp -bank 1 10000001 -bank 0 00000000 -framefile /home/pi/RetroPie/roms/daphne/vldp/badlands/badlands.txt -homedir /home/pi/RetroPie/roms/daphne -datadir /home/pi/RetroPie/roms/daphne -useoverlaysb 2 -sound_buffer 2048 -nojoystick -volume_nonvldp 5 -volume_vldp 20
                                    
                                    2021-03-16 08:35:41.955 WARN  [24525] [ldv1000::pre_display_disable@451] Display disable received (unsupported)
                                    /usr/local/bin/run.sh: line 163: 25707 Bus error               $HYPSEUS_BIN $1 vldp $FASTBOOT $FULLSCREEN $KEYINPUT $BANKS -framefile $DAPHNE_SHARE/$VLDP_DIR/$1/$1.txt -homedir $DAPHNE_SHARE -datadir $DAPHNE_SHARE -useoverlaysb 2 -sound_buffer 2048 -nojoystick -volume_nonvldp 5 -volume_vldp 20
                                    HypseusLoader failed with an unknown exit code : 135.
                                    

                                    Hope this is useful. Cheers!

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

                                      @roslof said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                                      Ok, just so I am on the same page, can you pull the latest run.sh from github:

                                      git checkout run.sh
                                      git pull origin master
                                      

                                      Then make the change to HYPSEUS_SHARE=~/.daphne as above, the old wrapper would not have worked with that single edit.

                                      Bus error

                                      Interesting.....

                                      This is possibly due to change in the overlay rendering to Surface from Renderer - will need to get hold of a RPi dev unit to pursue this.....
                                      But you said you saw the new overlay briefly.

                                      Try the new wrapper, with edit, so we are sure....

                                      Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
                                      Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
                                      Hypseus Discord: https://discord.gg/dgCsCfmRfJ

                                      DirtBagXonD roslofR 2 Replies Last reply Reply Quote 0
                                      • DirtBagXonD
                                        DirtBagXon @DirtBagXon
                                        last edited by DirtBagXon

                                        Could you also try in the terminal:

                                        Edited for 'lair':

                                        gdb -args hypseus.bin lair vldp -framefile /home/pi/RetroPie/roms/daphne/vldp_dl/lair/lair.txt -homedir /home/pi/RetroPie/roms/daphne -datadir /home/pi/RetroPie/roms/daphne -useoverlaysb 2 
                                        

                                        Type 'run' at the prompt:

                                        Reading symbols from hypseus.bin...
                                        (gdb) run
                                        

                                        Wait for it to crash and then type 'bt' and give me the output.

                                        (gdb) bt
                                        

                                        Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
                                        Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
                                        Hypseus Discord: https://discord.gg/dgCsCfmRfJ

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

                                          @dirtbagxon said in New Hypseus and lr-Daphne to add on Retropie-Setup:

                                          But you said you saw the new overly briefly.

                                          Yes. If the DAT files pre-exist (generated from a different version of Daphne) I can see the overlay for lair for a few seconds before Hypseus exits with the bus error.

                                          I also ran the gdb command... Interesting that behaved a bit differently. I was able to see the overlay, and hear the lair "click" sound effect. Player 1 displays "2" and Player 2 displays 15P2. Credits show "0"... After several seconds the overlay clears (default with nothing lit) then Hypseus freezes (with overlay still on screen) and wouldn't allow exit. Used an external console to send a kill...

                                          Wait for it to crash and then type 'bt' and give me the output.

                                          While it's not crashing, after the kill, was able to spot:

                                          [New Thread 0xf0aad450 (LWP 1451)]
                                          
                                          Thread 4 "vldp" received signal SIGBUS, Bus error.
                                          [Switching to Thread 0xf0aad450 (LWP 1451)]
                                          mpeg2_idct_copy_c (clock=0xf01045c0, dest=0xeff2b040 "", stride=-269308740) at idct.c:169
                                          169           idct_row (block * 8 * i);
                                          (gdb) 1405 Killed
                                          
                                          DirtBagXonD 1 Reply Last reply Reply Quote 0
                                          • DirtBagXonD
                                            DirtBagXon @roslof
                                            last edited by DirtBagXon

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

                                            While it's not crashing, after the kill, was able to spot:

                                            [New Thread 0xf0aad450 (LWP 1451)]
                                            
                                            Thread 4 "vldp" received signal SIGBUS, Bus error.
                                            [Switching to Thread 0xf0aad450 (LWP 1451)]
                                            mpeg2_idct_copy_c (clock=0xf01045c0, dest=0xeff2b040 "", stride=-269308740) at idct.c:169
                                            169           idct_row (block * 8 * i);
                                            (gdb) 1405 Killed
                                            

                                            Edit:
                                            Ok, I have grabbed the original Hypseus repo code and ran it on a RPI 3b then switched to my changes. Apart from the overlay I see no difference in the video shown at this point, just incredibly slow at rendering. I don't believe my changes have degraded the vanilla status of hypseus, maybe someone who has this running reasonably well on their setup could expand.

                                             
                                            Screenshot from 2021-03-16 18-09-21.png
                                             
                                            Confirmation that Badlands et al also work in this port.
                                             
                                            Screenshot from 2021-03-16 18-52-09.png

                                             
                                            I also deleted the .dat  files for lair and badlands on Raspian 32bit and they were ALL recreated on both repos, so still unable to replicate this.

                                            What kinda setup are you using? Software , kernel and SDL2 versions etc ?

                                             

                                            Hypseus Singe for RetroPie: https://github.com/DirtBagXon/hypseus-singe
                                            Hypseus Singe Games: https://github.com/DirtBagXon/hypseus_singe_data
                                            Hypseus Discord: https://discord.gg/dgCsCfmRfJ

                                            roslofR 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.