/Pineapple-Linux

A Yuzu compiler and updater for Linux

Primary LanguageShellGNU General Public License v2.0GPL-2.0

Attention

This repo is basically abandoned. It probably doesn't work anymore and if it did it probably wouldn't work with the source code in the pineapple-src repo, only the source zip in the windows releases. Don't bother trying to fix this, just use the AppImages provided in the pineapple-src releases.

Pineapple-Linux

A yuzu compiler and updater for Linux

What does it do

This script downloads the latest yuzu Early Access (or an older version if you wish) from PinEApple, extracts it, compiles it and optionally installs it creating a launcher entry and a terminal command. The script also provides an uninstall option in case something goes wrong

Dependencies

The installer requires the same dependencies as yuzu for building plus tar for extraction and cURL for downloading.

Arch

sudo pacman -S --needed base-devel cmake git glslang ninja python2 python-pip qt5-base qt5-tools && yay -S conan or get conan from aur manually. Installing it via pip is not recommended on Arch.

Debian (incl. Ubuntu,Mint,pop os etc.)

sudo apt install build-essential cmake g++-10 gcc-10 git glslang-tools libavcodec-dev libavutil-dev libboost-context-dev libboost-dev liblz4-dev libmbedtls-dev libopus-dev libqt5opengl5-dev libsdl2-dev libssl-dev libswscale-dev libx11-xcb-dev libxcb-dri3-dev libzip-dev libzstd-dev make ninja-build python python3-pip qtbase5-dev qtbase5-private-dev qttools5-dev xorg-dev zipcmp zipmerge ziptool zlib1g-dev autoconf Either get conan manually from here or use sudo pip3 install conan Make sure GCC and G++ 10 is used, look at the Notes section bellow for more info.

Fedora

sudo dnf install alsa-lib-devel boost-devel cmake ffmpeg-devel fmt-devel gcc jack-audio-connection-kit-devel libzip-devel libzip-tools libzstd-devel lz4-devel make mbedtls-devel ninja-build openssl-devel opus-devel pulseaudio-libs-devel python2 python-pip qt5-linguist qt5-qtbase-devel qt5-qtbase-private-devel SDL2-devel zlib-devel

Gentoo

emerge dev-vcs/git =sys-devel/gcc-7.1.0 dev-util/ninja dev-util/cmake media-libs/libsdl2 dev-qt/linguist-tools dev-qt/qtcore dev-qt/qtopengl && sudo pip install conan

Clear Linux

sudo swupd bundle-add dev-utils qt5-dev curl git c-basic devpkg-libva nasm yasm os-clr-on-clr-dev

pip install conan

sudo ln -s ~/.local/bin/conan /usr/bin/conan

For ffmpeg on Clear Linux

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

cd ffmpeg

./configure --prefix=/usr/local --enable-shared && make && sudo make install

sudo sh -c 'echo /usr/local/lib >>/etc/ld.so.conf'

sudo ldconfig

Usage

Run the script using

curl -s https://raw.githubusercontent.com/pineappleEA/Pineapple-Linux/master/pineapple.sh | sh -s -- You can append any arguments after --. If you wanna call the updater using a command, you can append an alias to your .bash_rc/.zshrc. For example, adding

alias pineapple="curl -s https://raw.githubusercontent.com/pineappleEA/Pineapple-Linux/master/pineapple.sh | sh -s --" will run the script when you type in the command pineapple.

Alternatively, download the script using curl -sO https://raw.githubusercontent.com/pineappleEA/Pineapple-Linux/master/pineapple.sh and run it using sh pineapple.sh.

This is not recommended, since we need to update the script from time to time to fix yuzu's compilation process, but can be useful to install older versions.

Magic Number

NVIDIA users only! This fixes the issue where vulkan outright crashes when starting a game which is cause by a bug on the nvidia drivers that require allocable_size to be more than 4 MiB. This has been fixed in EA 995. If you want to test vulkan on an earlier build, you can manually invoke it with the -n option.

Notes

  • The script needs cURL to work, it is the only option for various functions. For downloading the latest build wget will be used if found, cURL is the fallback. For downloading legacy builds that are not on github (older than 1255) aria2 is recommended as a partial workaround, if that isn't found wget then cURL will be used instead. Using so old builds is not advised.

  • Debuntu and based distro (Mint, PopOs, etc.) users need to make sure they have g++ ≥ 10 using g++ -v (the version is at the bottom). If you have 9 or less, switch to 10 using sudo apt install gcc-10 g++-10 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 10 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 10

Tips

  • Use ccache to make compilation way faster. Just install the ccache package and add append the path. For arch you can add export PATH="/usr/lib/ccache/bin/:$PATH" (for Fedora and SUSE this would be export PATH="/usr/lib64/ccache/:$PATH") at the bottom of the file .zshrc/.bash_rc found on your home folder (Use ctrl+H to view hidden files), for debian based distros like ubuntu and mint you can follow the first answer here.

  • If you have an Nvidia gpu you can boost performance by adding env LD_PRELOAD="libpthread.so.0 libGL.so.1" __GL_THREADED_OPTIMIZATIONS=1 after Exec= on the yuzu.desktop file located in /usr/share/applications (you'll need sudo to edit it) or copy it to ~/.local/share/applications.

  • For AMD/Intel GPUs that would be glsl_zero_init=true MESA_EXTENSION_OVERRIDE="-GL_KHR_texture_compression_astc_ldr -GL_KHR_texture_compression_astc_sliced_3d"