Skip to content

Build From Source (Linux)

Jj0YzL5nvJ edited this page Feb 11, 2021 · 11 revisions

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