Build From Source (Linux) - gonetz/GLideN64 GitHub Wiki
Building From Source (Linux)
Overview
This is a quick guide on how to successfully build GLideN64 on "Linux". As long as you have an understanding of basic terminal commands and you are familiar with your distros package manager you should be all set!
Dependencies
I can only list the Fedora and Ubuntu packages names, but a quick search on the net or the package manager should be able to point out the equivalent packages in your distro. Take names as approximations, not literal names.
Fedora
git
gcc
gcc-c++
cmake
libstdc++-static
libX11-devel
mesa-libGL-devel
freetype-devel
Ubuntu
git
gcc
g++
cmake
build-essential
libpthread-stubs0-dev
libgl1-mesa-dev
libx11-dev
libfreetype6-dev
zlib1g-dev
libpng16-dev
Search examples for APT
apt-cache search libfreetype | grep -i dev
apt-cache search libpng | grep -i dev
apt list -a libx11-dev
apt show -a libgl1-mesa-dev
Build in a nutshell
git clone https://github.com/gonetz/GLideN64.git
cd GLideN64/src
./getRevision.sh
cd ../projects/cmake
cmake -DMUPENPLUSAPI=On ../../src/
make
cd plugin/Release
chmod 644 *.so
cp *.so "your/emu/libs"
cp ../../../../ini/GLideN64.custom.ini "your/emu/libs"
Variant steps
cd ../projects/cmake
rm -rf ../../src/GLideNHQ/inc
export CC=clang-8
export CXX=clang++-8
cmake -DUSE_SYSTEM_LIBS=On -DVEC4_OPT=On -DCRC_OPT=On -DMUPENPLUSAPI=On ../../src/
make -j4
cd plugin/Release
Buffet?
cat Readme.txt
grep -i option ../../src/CMakeLists.txt
find ../../* | grep CMake
System installation
cd plugin/Release
chmod 644 *.so
cp mupen64plus-video-GLideN64.so /usr/local/lib/mupen64plus
cp ../../../../ini/GLideN64.custom.ini /usr/local/share/mupen64plus
Note: You will need root privileges to copy to a system path. Use su or sudo to write with root privileges. Some distros will also need to manually run ldconfig
to load the new installed libraries into the system cache without using the package managers.
Examples of use
Normal
mupen64plus --gfx mupen64plus-video-GLideN64.so ../rute/rom.bin
Scripted
echo "#!/bin/bash" > m64p_script
echo "set -e" >> m64p_script
echo "mupen64plus --gfx mupen64plus-video-GLideN64.so \"\${@}\"" >> m64p_script
chmod 755 m64p_script
./m64p_script ../rute/rom.bin
More stuff...
export FTW="--set Video-GLideN64"
./m64p_script --windowed --resolution 960x720 $FTW[bilinearMode]=False $FTW[EnableClipping]=False $FTW[EnableNativeResTexrects]=1 $FTW[EnableCopyColorToRDRAM]=1 $FTW[EnableCopyColorFromRDRAM]=False ../rute/rom.bin
export MYUSERSPACE=$(pwd)
export PATH="$MYUSERSPACE:$PATH"
export MYCROP="$FTW[EnableOverscan]=True $FTW[OverscanNtscLeft]=15 $FTW[OverscanNtscRight]=15 $FTW[OverscanNtscTop]=9 $FTW[OverscanNtscBottom]=11"
export MYDITHER="$FTW[UseNativeResolutionFactor]=4 $FTW[EnableDitheringPattern]=True $FTW[EnableHiresNoiseDithering]=True $FTW[DitheringQuantization]=True $FTW[RDRAMImageDitheringMode]=1 $FTW[EnableCopyColorFromRDRAM]=True"
m64p_script $MYDITHER $MYCROP ../rute/rom.bin
For humans?
Text editors (doubtful), frontends and multi-system emulators