mirror of
https://github.com/RetroPie/RetroPie-Setup.git
synced 2025-04-02 10:51:41 -04:00
91 lines
3 KiB
Bash
91 lines
3 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# This file is part of The RetroPie Project
|
|
#
|
|
# The RetroPie Project is the legal property of its developers, whose names are
|
|
# too numerous to list here. Please refer to the COPYRIGHT.md file distributed with this source.
|
|
#
|
|
# See the LICENSE.md file at the top-level directory of this distribution and
|
|
# at https://raw.githubusercontent.com/RetroPie/RetroPie-Setup/master/LICENSE.md
|
|
#
|
|
|
|
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_repo="git https://github.com/ResidualVM/ResidualVM.git master"
|
|
rp_module_section="exp"
|
|
rp_module_flags="sdl2 !mali"
|
|
|
|
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 "videocore" && depends+=(libraspberrypi-dev)
|
|
getDepends "${depends[@]}"
|
|
}
|
|
|
|
function sources_residualvm() {
|
|
gitPullOrClone
|
|
}
|
|
|
|
function build_residualvm() {
|
|
local params=(
|
|
--enable-opengl-shaders
|
|
--enable-vkeybd
|
|
--enable-release
|
|
--disable-debug
|
|
--prefix="$md_inst"
|
|
)
|
|
if isPlatform "gles"; then
|
|
params+=(--force-opengles2)
|
|
# wintermute fails to build on rpi/opegles - disable for now
|
|
params+=(--disable-engine=wintermute)
|
|
fi
|
|
if isPlatform "videocore"; 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":"$__group" "$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"
|
|
}
|