mirror of
https://github.com/RetroPie/RetroPie-Setup.git
synced 2025-04-02 10:51:41 -04:00
* for the libretro core, removed a couple of packages which are not needed for the libretro core. * for the standalone, removed `libglew` which is only used on Windows for one of the plugins and make the GLU libraries mandatory since the core doesn't build without it.
99 lines
3.3 KiB
Bash
99 lines
3.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="lr-mupen64plus-next"
|
|
rp_module_desc="N64 emulator - Mupen64Plus + GLideN64 for libretro (next version)"
|
|
rp_module_help="ROM Extensions: .z64 .n64 .v64\n\nCopy your N64 roms to $romdir/n64"
|
|
rp_module_licence="GPL2 https://raw.githubusercontent.com/libretro/mupen64plus-libretro-nx/master/LICENSE"
|
|
rp_module_repo="git https://github.com/libretro/mupen64plus-libretro-nx.git develop"
|
|
rp_module_section="opt kms=main"
|
|
rp_module_flags=""
|
|
|
|
function depends_lr-mupen64plus-next() {
|
|
local depends=()
|
|
isPlatform "x86" && depends+=(nasm)
|
|
isPlatform "videocore" && depends+=(libraspberrypi-dev)
|
|
isPlatform "mesa" && depends+=(libgles2-mesa-dev)
|
|
getDepends "${depends[@]}"
|
|
}
|
|
|
|
function sources_lr-mupen64plus-next() {
|
|
gitPullOrClone
|
|
}
|
|
|
|
function build_lr-mupen64plus-next() {
|
|
local params=()
|
|
if isPlatform "arm"; then
|
|
if isPlatform "videocore"; then
|
|
params+=(platform="$__platform")
|
|
elif isPlatform "mesa"; then
|
|
params+=(platform="$__platform-mesa")
|
|
elif isPlatform "mali"; then
|
|
params+=(platform="odroid")
|
|
fi
|
|
if isPlatform "neon"; then
|
|
params+=(HAVE_NEON=1)
|
|
else
|
|
# force disabling HAVE_NEON on armv6 as makefile sets it for all rpi targets
|
|
params+=(HAVE_NEON=0)
|
|
fi
|
|
fi
|
|
if isPlatform "gles3"; then
|
|
params+=(FORCE_GLES3=1)
|
|
elif isPlatform "gles"; then
|
|
params+=(FORCE_GLES=1)
|
|
fi
|
|
|
|
# force ARCH=armv7 on arm platforms to fix building with 32bit arm userland on aarch64 kernel
|
|
isPlatform "arm" && params+=(ARCH=armv7l)
|
|
|
|
local add_cflags=()
|
|
|
|
# workaround for linkage_arm.S including some armv7 instructions without this
|
|
isPlatform "armv6" && add_cflags+=(-DARMv5_ONLY)
|
|
|
|
# fix building on armv8.2 (rpi5) on 32bit arm bookworm.
|
|
isPlatform "armv8" && add_cflags+=(-mfp16-format=ieee)
|
|
|
|
# use a custom core name to avoid core option name clashes with lr-mupen64plus
|
|
params+=(CORE_NAME=mupen64plus-next)
|
|
make "${params[@]}" clean
|
|
|
|
CFLAGS="$CFLAGS ${add_cflags[*]}" make "${params[@]}"
|
|
|
|
md_ret_require="$md_build/mupen64plus_next_libretro.so"
|
|
}
|
|
|
|
function install_lr-mupen64plus-next() {
|
|
md_ret_files=(
|
|
'mupen64plus_next_libretro.so'
|
|
'LICENSE'
|
|
'README.md'
|
|
)
|
|
}
|
|
|
|
function configure_lr-mupen64plus-next() {
|
|
mkRomDir "n64"
|
|
defaultRAConfig "n64"
|
|
|
|
if isPlatform "rpi"; then
|
|
# Disable hybrid upscaling filter (needs better GPU)
|
|
setRetroArchCoreOption "mupen64plus-next-HybridFilter" "False"
|
|
# Disable overscan/VI emulation (slight performance drain)
|
|
setRetroArchCoreOption "mupen64plus-next-EnableOverscan" "Disabled"
|
|
# Enable Threaded GL calls
|
|
setRetroArchCoreOption "mupen64plus-next-ThreadedRenderer" "True"
|
|
fi
|
|
setRetroArchCoreOption "mupen64plus-next-EnableNativeResFactor" "1"
|
|
|
|
addEmulator 1 "$md_id" "n64" "$md_inst/mupen64plus_next_libretro.so"
|
|
addSystem "n64"
|
|
}
|