RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    The Longest Journey

    Scheduled Pinned Locked Moved Help and Support
    residualvmlongestjourney
    25 Posts 2 Posters 2.5k 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.
    • GeekOBG
      GeekOB
      last edited by GeekOB

      I've been trying to get The Longest Journey (I'm using my copy from GOG) with the HD mod using the latest source build of ResidualVM without much luck. I cannot make it past the main menu screen, as soon as I start the game, ResidualVM exits to EmulationStation. I've only found this thread here, but it's quite old and the game wasn't working then even without the HD mod.
      Has anyone had success?
      Thanks

      1 Reply Last reply Reply Quote 0
      • GeekOBG
        GeekOB
        last edited by

        I did reach out to the ResidualVM team to get help for resolving this and they would need either:

        • run ResidualVM in a debugger and capture a stack trace, or

        • let it generate a core dump and provide said core dump + the executable (with debug symbols)

        Sorry to quote you here for this @mitu and @BuZz but can you tell me how I can do these things?

        Thanks in advance!

        mituM 1 Reply Last reply Reply Quote 0
        • mituM
          mitu Global Moderator @GeekOB
          last edited by

          @GeekOB That's easy.

          • install the gdb debugger (sudo apt install gdb)
          • start the game, but don't get to the point where it crashes
          • login via SSH to your system, then run gdb and attach it to the process
          gdb -p `pidof residualvm`
          
          • come back to the game and make it crash
          • return to the gdb session and run bt full. You should get a full stack trace from the crashed program.
          1 Reply Last reply Reply Quote 0
          • GeekOBG
            GeekOB
            last edited by

            Thanks for the very quick reply @mitu,
            Interestingly enough, the game freezes the moment I enter gdb -p `pidof residualvm`
            It goes back to normal as soon as I exit gdb.
            Thoughts?

            mituM 1 Reply Last reply Reply Quote 0
            • mituM
              mitu Global Moderator @GeekOB
              last edited by

              @GeekOB Type continue in the gdb prompt to resume the program execution.

              GeekOBG 1 Reply Last reply Reply Quote 0
              • GeekOBG
                GeekOB @mitu
                last edited by

                @mitu this is what I get:

                Attaching to process 7989
                [New LWP 7990]
                [New LWP 7991]
                [New LWP 7992]
                [New LWP 7993]
                [New LWP 7994]
                [New LWP 7995]
                [New LWP 7996]
                [Thread debugging using libthread_db enabled]
                Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
                0x0022a598 in Video::BinkDecoder::BinkVideoTrack::decodePlane(Video::BinkDecoder::VideoFrame&, int, bool)
                    ()
                (gdb) continue
                Continuing.
                [Thread 0x738ff450 (LWP 7995) exited]
                [Thread 0x742fc450 (LWP 7994) exited]
                [Thread 0x72eff450 (LWP 7996) exited]
                [Thread 0x74afd450 (LWP 7993) exited]
                [Thread 0x75aff450 (LWP 7991) exited]
                [Thread 0x76483450 (LWP 7990) exited]
                [Thread 0x76fa7000 (LWP 7989) exited]
                [Inferior 1 (process 7989) exited with code 01]
                (gdb) bt full
                No stack.
                

                I tried again wihout the HD Mod:

                Attaching to process 9385
                [New LWP 9386]
                [New LWP 9387]
                [New LWP 9388]
                [New LWP 9389]
                [New LWP 9390]
                [New LWP 9391]
                [New LWP 9392]
                [Thread debugging using libthread_db enabled]
                Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
                0x768ea030 in nanosleep () at ../sysdeps/unix/syscall-template.S:84
                84      ../sysdeps/unix/syscall-template.S: No such file or directory.
                (gdb) continue
                Continuing.
                [Thread 0x738ff450 (LWP 9391) exited]
                [Thread 0x742fc450 (LWP 9390) exited]
                [Thread 0x730fe450 (LWP 9392) exited]
                [Thread 0x74afd450 (LWP 9389) exited]
                [Thread 0x752fe450 (LWP 9388) exited]
                [Thread 0x75aff450 (LWP 9387) exited]
                [Thread 0x764a3450 (LWP 9386) exited]
                [Inferior 1 (process 9385) exited with code 01]
                (gdb) bt full
                No stack.
                

                I'm not sure why there's no trace, did I miss a step?
                Thanks

                mituM 1 Reply Last reply Reply Quote 0
                • mituM
                  mitu Global Moderator @GeekOB
                  last edited by

                  @GeekOB said in The Longest Journey:

                  I'm not sure why there's no trace, did I miss a step?

                  Maybe there's no crash and residualvm just exits. What's the content of /dev/shm/runcommand.log ?

                  GeekOBG 1 Reply Last reply Reply Quote 0
                  • GeekOBG
                    GeekOB @mitu
                    last edited by

                    This is the content of the runcommand.log file @mitu ...

                    Parameters: 
                    Executing: bash "/home/pi/RetroPie/roms/residualvm/+Start ResidualVM.sh"
                    WARNING: Invalid joystick: 0!
                    Virtual keyboard pack 'vkeybd_default' loaded successfully
                    WARNING: No hardware input were defined, using defaults!
                    User picked target 'tlj-win' (gameid 'stark')...
                      Looking for a plugin supporting this gameid... Stark Engine
                      Starting 'Stark Game'
                    INFO: OpenGL Vendor: Broadcom
                    INFO: OpenGL Renderer: VideoCore IV HW
                    INFO: OpenGL Version: OpenGL ES 2.0
                    INFO: OpenGL Red bits: 8
                    INFO: OpenGL Green bits: 8
                    INFO: OpenGL Blue bits: 8
                    INFO: OpenGL Alpha bits: 8
                    INFO: OpenGL Z buffer depth bits: 24
                    INFO: OpenGL Double Buffer: 1
                    INFO: OpenGL Stencil buffer bits: 8
                    INFO: GLSL version: OpenGL ES GLSL ES 1.00
                    WARNING: Stem darkening is not available with this version of FreeType!
                    WARNING: Stem darkening is not available with this version of FreeType!
                    WARNING: Stem darkening is not available with this version of FreeType!
                    WARNING: Stem darkening is not available with this version of FreeType!
                    WARNING: Stem darkening is not available with this version of FreeType!
                    WARNING: Stem darkening is not available with this version of FreeType!
                    WARNING: Stem darkening is not available with this version of FreeType!
                    WARNING: Stem darkening is not available with this version of FreeType!
                    WARNING: Stem darkening is not available with this version of FreeType!
                    WARNING: Stem darkening is not available with this version of FreeType!
                    ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
                    ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
                    WARNING: Stark::XARC Member: "map inv.xmg" has unknown=2 with unknown meaning!
                    WARNING: Stark::XARC Member: "map cursor.xmg" has unknown=2 with unknown meaning!
                    WARNING: Stark::XARC Member: "april_crouch_pickup.ani" has unknown=2 with unknown meaning!
                    WARNING: Stark::XARC Member: "april_run.ani" has unknown=2 with unknown meaning!
                    WARNING: Stark::XARC Member: "april_swimming_idle.ani" has unknown=2 with unknown meaning!
                    WARNING: Stark::XARC Member: "april.xmg" has unknown=3 with unknown meaning!
                    WARNING: Stark::XARC Member: "arkadianmale_sitting.ani" has unknown=2 with unknown meaning!
                    WARNING: Stark::XARC Member: "arkadiafemale_sitting.ani" has unknown=2 with unknown meaning!
                    No uniform named 'boneRotation'!
                    No uniform named 'boneRotation'!
                    
                    mituM 1 Reply Last reply Reply Quote 0
                    • mituM
                      mitu Global Moderator @GeekOB
                      last edited by mitu

                      @GeekOB There doesn't seem to be a crash logged in there, maybe that's why gdb doesn't show anything. You can try starting residualvm directly from the debugger, outside of Emulationstation, it may be easier to capture the crash. Just run

                      gdb 
                      (gdb) file /opt/retropie/emulators/residualvm/bin/residualvm
                      (gdb) run --fullscreen --joystick=0 --extrapath="/opt/retropie/emulators/residualvm/extra"
                      

                      then reproduce the crash and try to get a backtrace.

                      1 Reply Last reply Reply Quote 0
                      • GeekOBG
                        GeekOB
                        last edited by

                        thanks @mitu , I had to run the gdb without the extra flag as it was giving me a different error, this is the output I received when I "crashed" the game:
                        Clipboard.jpg

                        1 Reply Last reply Reply Quote 0
                        • GeekOBG
                          GeekOB
                          last edited by GeekOB

                          The ResidualVM team has recommended the following changes to the script to build from source:

                          first, change

                          --disable-debug
                          

                          to

                          --enable-debug
                          

                          in the

                          build_residualvm
                          

                          function, recompile ResidualVM. Then, modify the +Start ResidualVM.sh script to call

                          ulimit -c unlimited
                          

                          so that it produces a core dump on crash.

                          Do you have anything to add, @mitu ?
                          I tried the instructions above, the game quits as expected, where would I find the core dump? I checked /var/lib/systemd/coredump but it's not there.

                          Thanks

                          mituM 1 Reply Last reply Reply Quote 0
                          • mituM
                            mitu Global Moderator @GeekOB
                            last edited by mitu

                            @GeekOB A core dump is created if the game crashes. From the gdb output you posted (just like the previous time) I see the game does not crash, just exits:

                            [...]
                            Inferior 1 (process 817) exited with code 01
                            [...]
                            

                            So there's no crash, hence no backtrace or core dump.

                            GeekOBG 1 Reply Last reply Reply Quote 0
                            • GeekOBG
                              GeekOB @mitu
                              last edited by

                              Thank you very much @mitu
                              A bit more from the ResidualVM dev team:

                              This can be caused by too many uniform slots used in the shader.
                              The Raspberry PI GPU has a max of GL_MAX_VERTEX_UNIFORM_VECTORS = 136.
                              The vertex shader for actors blows through that budget with just the bone uniforms (140 vec4 uniforms).

                              As a quick test, can you try editing the stark_actor.vertex file and lowering the number to 30 in the line

                              const int maxBones = 70;
                              

                              If that works, it will very probably glitch some actors pretty badly but the game should play.
                              You can try ramping that number back up, but the real solution is to rework the bone uniform passing, I'm afraid.

                              Can you help me find where this file would be located in RetroPie?

                              mituM 1 Reply Last reply Reply Quote 0
                              • mituM
                                mitu Global Moderator @GeekOB
                                last edited by

                                @GeekOB said in The Longest Journey:

                                Can you help me find where this file would be located in RetroPie?

                                Maybe in /opt/retropie/emulators/residualvm/share/residualvm/shaders/stark_actor.vertex ?

                                GeekOBG 1 Reply Last reply Reply Quote 0
                                • GeekOBG
                                  GeekOB @mitu
                                  last edited by

                                  I tried these changes @mitu but it still doesn't work.
                                  Now I'm just wondering if the Raspberry Pi 3b, which is the model I'm using for this testing, is actually capable of handling this port properly. Escape from Monkey Island also has some issues when I try to run it at full screen.
                                  I'm not sure if you are going to test ResidualVM with the Pi 4 model.
                                  I'm happy to continue trying to test but, as my knowledge with compiling from source is limited I might as well be shooting in the dark here.

                                  What do you guys think?

                                  mituM 1 Reply Last reply Reply Quote 0
                                  • mituM
                                    mitu Global Moderator @GeekOB
                                    last edited by

                                    @GeekOB said in The Longest Journey:

                                    I'm not sure if you are going to test ResidualVM with the Pi 4 model.

                                    ResidualVM works on the PI4 model, alas I don't have the game in my GOG library and didn't have the time to test this game in particular.
                                    Is the normal game (i.e. non-HD remake) working ?

                                    GeekOBG 1 Reply Last reply Reply Quote 0
                                    • GeekOBG
                                      GeekOB @mitu
                                      last edited by

                                      No @mitu, it is not. If I disable the HD mod, the main menu:
                                      56490ebb-fe2d-433d-92cd-825046c3df7e-image.png
                                      will display properly but the game will not run and exit back to the ResidualVM launcher.
                                      If the HD mod is enabled the main menu screen is all black with only the mouse pointer, ©1999 Funcom, and the names of the options showing up when hovered over. Same behavior when trying to run the game.

                                      1 Reply Last reply Reply Quote 0
                                      • mituM
                                        mitu Global Moderator
                                        last edited by

                                        I tried TLJ on the PI4, but it exits right when initialising the game. I'll try to get more info and maybe submit an issue to the residualVM project directly.

                                        1 Reply Last reply Reply Quote 0
                                        • GeekOBG
                                          GeekOB
                                          last edited by GeekOB

                                          Thanks @mitu, that's probably the exact same issue I'm experiencing.
                                          Let me know if there's anything I can do to help test/troubleshoot. I'll keep the game in my SD card just in case.

                                          mituM 1 Reply Last reply Reply Quote 0
                                          • mituM
                                            mitu Global Moderator @GeekOB
                                            last edited by

                                            @GeekOB said in The Longest Journey:

                                            Thanks @mitu, that's probably the exact same issue I'm experiencing.

                                            Not quite the same issue, but it's quite similar in that's still a shader error.
                                            While scouring for information on the project's Github repository, I stumbled upon this new addition which might help to run the game on a RPi3. You might want to keep an eye on it and - when the changes are merged - to update residualvm from source.

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