ResidualVM logo Forum Index - ResidualVM website - Contact us - Rules Login    Register     Search curved edge
It is currently Sat Dec 07, 2019 6:59 am

All times are UTC




Post new topic Reply to topic  [ 10 posts ] 
Author Message
PostPosted: Wed Nov 13, 2019 6:23 pm 
Offline
User avatar

Joined: Wed Nov 13, 2019 4:50 pm
Posts: 6
Location: Toronto, Canada.
Hi all,
I've been trying to get The Longest Journey (using my copy from GOG) with the HD mod using the latest source build of ResidualVM for RetroPie (https://github.com/retropie/retropie-setup/wiki/ResidualVM) without much luck. I cannot make it past the main menu screen, as soon as I start the game, ResidualVM exits to the RetroPie graphical frontend (EmulationStation in this case).
I know it's not officially supported yet, but the daily build works in my Windows 10 setup, so I thought I would give this a try on the Pi.

The latest ResidualVM built from source I used is 0.4.0git (Nov 12, 2019), see the script below:

Code:
rp_module_id="residualvm"
rp_module_desc="ResidualVM - A 3D Game Interpreter"
rp_module_help="Copy your ResidualVM games to $romdir/residualvm"
rp_module_licence="GPL2 https://raw.githubusercontent.com/residualvm/residualvm/master/COPYING"
rp_module_section="exp"
rp_module_flags="dispmanx !mali !kms"

function depends_residualvm() {
    local depends=(
        libsdl2-dev libmpeg2-4-dev libogg-dev libvorbis-dev libflac-dev libmad0-dev
        libpng-dev libtheora-dev libfaad-dev libfluidsynth-dev libfreetype6-dev
        zlib1g-dev libjpeg-dev
    )
    isPlatform "x11" && depends+=(libglew-dev)
    isPlatform "rpi" && depends+=(libraspberrypi-dev)
    getDepends "${depends[@]}"
}

function sources_residualvm() {
    gitPullOrClone "$md_build" https://github.com/ResidualVM/ResidualVM.git
}

function build_residualvm() {
    local params=(
        --enable-opengl-shaders
        --enable-vkeybd
        --enable-release
        --disable-debug
        --enable-keymapper
        --prefix="$md_inst"
    )
    ! isPlatform "x11" && params+=(--force-opengles2)
    if isPlatform "rpi"; then
        CXXFLAGS+=" -I/opt/vc/include" LDFLAGS+=" -L/opt/vc/lib" ./configure "${params[@]}"
    else
        ./configure "${params[@]}"
    fi

    make clean
    make
    strip "$md_build/residualvm"
    md_ret_require="$md_build/residualvm"
}

function install_residualvm() {
    make install
    mkdir -p "$md_inst/extra"
    cp -v backends/vkeybd/packs/vkeybd_*.zip "$md_inst/extra"
}

function configure_residualvm() {
    mkRomDir "residualvm"

    moveConfigDir "$home/.config/residualvm" "$md_conf_root/residualvm"

    # Create startup script
    cat > "$romdir/residualvm/+Start ResidualVM.sh" << _EOF_
#!/bin/bash
renderer="\$1"
[[ -z "\$renderer" ]] && renderer="software"
game="\$2"
[[ "\$game" =~ ^\+ ]] && game=""
pushd "$romdir/residualvm" >/dev/null
$md_inst/bin/residualvm --renderer=\$renderer --fullscreen --joystick=0 --extrapath="$md_inst/extra" \$game
while read id desc; do
    echo "\$desc" > "$romdir/residualvm/\$id.rvm"
done < <($md_inst/bin/residualvm --list-targets | tail -n +3)
popd >/dev/null
_EOF_
    chown $user:$user "$romdir/residualvm/+Start ResidualVM.sh"
    chmod u+x "$romdir/residualvm/+Start ResidualVM.sh"

    addEmulator 0 "$md_id" "residualvm" "bash $romdir/residualvm/+Start\ ResidualVM.sh opengl_shaders %BASENAME%"
    addEmulator 1 "$md_id-software" "residualvm" "bash $romdir/residualvm/+Start\ ResidualVM.sh software %BASENAME%"
    addSystem "residualvm" "ResidualVM" ".sh .rvm"

Does anyone have any tips on what things to try to make this work?

Thanks


Top
 Profile  
 
PostPosted: Wed Nov 13, 2019 8:10 pm 
Offline
ResidualVM Developer

Joined: Thu Feb 28, 2013 5:48 pm
Posts: 204
This issue was already reported previously but we cannot debug it without access to a Raspberry Pi. If you are able to do either of the following, we might make progress on this front:
  • run ResidualVM in a debugger and capture a stack trace, or
  • let it generate a core dump and provide us with said core dump + the executable (with debug symbols)


Top
 Profile  
 
PostPosted: Thu Nov 14, 2019 6:20 pm 
Offline
User avatar

Joined: Wed Nov 13, 2019 4:50 pm
Posts: 6
Location: Toronto, Canada.
Unfortunately, the debug process ends up with an empty stack. When looking at the error logs from EmulationStation, this is what I see:
Code:
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'!


Does this help in any way?
I'll continue to work on the debug/core dump, will post my progress here.


Top
 Profile  
 
PostPosted: Thu Nov 14, 2019 8:12 pm 
Offline
ResidualVM Developer

Joined: Thu Feb 28, 2013 5:48 pm
Posts: 204
It shows that some shader failed to compile properly but not much more.


Top
 Profile  
 
PostPosted: Thu Nov 14, 2019 8:36 pm 
Offline
User avatar

Joined: Wed Nov 13, 2019 4:50 pm
Posts: 6
Location: Toronto, Canada.
Maybe that's all I need to fix?
I also had to disable the HD Mod as they didn't display at all, I would see a black screen and the mouse pointer, only the descriptions of the main menu options would show when I hovered over them.

If you tell me how to modify the script in the original post above I can compile from source and test again.


Top
 Profile  
 
PostPosted: Fri Nov 15, 2019 5:00 pm 
Offline
ResidualVM Developer

Joined: Thu Feb 28, 2013 5:48 pm
Posts: 204
At a guess: first, change
Code:
--disable-debug
to
Code:
--enable-debug
in the
Code:
build_residualvm
function, recompile ResidualVM. Then, modify the "+Start ResidualVM.sh" script to call
Code:
ulimit -c unlimited
so that it produces a core dump on crash.


Top
 Profile  
 
PostPosted: Fri Nov 15, 2019 9:00 pm 
Offline
User avatar

Joined: Wed Nov 13, 2019 4:50 pm
Posts: 6
Location: Toronto, Canada.
Hi @botje,
I tried running ResidualVM from the debugger, still no stack and this is the output:
Image

UPDATE: I just noticed you left some instructions above, I'll commit the changes, recompile and let you know how it goes.
Thank you


Top
 Profile  
 
PostPosted: Sat Nov 16, 2019 3:59 pm 
Offline
User avatar

Joined: Wed Nov 13, 2019 4:50 pm
Posts: 6
Location: Toronto, Canada.
Hi @botje, the recompiled from source version is still not giving any dump or stack.

I've checked with the RetroPie dev team and they say the app is not crashing, just exiting, is that possible?
Any hints on what's the component that may not be functioning?

Thanks


Top
 Profile  
 
PostPosted: Sun Nov 17, 2019 11:52 am 
Offline
ResidualVM Developer

Joined: Thu Feb 28, 2013 5:48 pm
Posts: 204
From a bit of googling, I found that 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
Code:
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.


Top
 Profile  
 
PostPosted: Fri Nov 29, 2019 2:15 pm 
Offline
User avatar

Joined: Wed Nov 13, 2019 4:50 pm
Posts: 6
Location: Toronto, Canada.
Thanks Botje, but that didn't work.
Any other suggestions or tips?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 10 posts ] 

All times are UTC


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Forum design by ScummVM team, icons by raina, adopted for ResidualVM
curved edge   curved edge