From bc43e7d42e7cf4394d9f00662e4ce910ae51e009 Mon Sep 17 00:00:00 2001 From: Logan Date: Sun, 21 Nov 2021 10:44:26 -0700 Subject: [PATCH] Snap (#225) * wip * raw input * add nvidia drivers * more * add snap workflow * more --- .github/workflows/snap.yml | 27 +++++++++++++++++++ .gitignore | 1 + snap/snapcraft.yaml | 55 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 .github/workflows/snap.yml create mode 100644 snap/snapcraft.yaml diff --git a/.github/workflows/snap.yml b/.github/workflows/snap.yml new file mode 100644 index 0000000..e1a2f29 --- /dev/null +++ b/.github/workflows/snap.yml @@ -0,0 +1,27 @@ +name: Upload snap + +on: + workflow_dispatch: + release: + types: [published] + +jobs: + build-snap: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + + - name: Get snapcraft login + run: echo "$SNAPCRAFT_LOGIN" > $GITHUB_WORKSPACE/SNAPCRAFT_LOGIN.txt + env: + SNAPCRAFT_LOGIN: ${{ secrets.SNAPCRAFT_LOGIN }} + + - name: Install snapcraft and login + run: | + sudo snap install snapcraft --classic + snapcraft login --with $GITHUB_WORKSPACE/SNAPCRAFT_LOGIN.txt + + - name: Run snapcraft + run: | + snapcraft --enable-experimental-extensions + snapcraft upload --release=stable *.snap diff --git a/.gitignore b/.gitignore index 6a4ee4f..eb69536 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ mupen64plus/ *zip *.dylib .DS_Store +*.snap diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 0000000..8148c6e --- /dev/null +++ b/snap/snapcraft.yaml @@ -0,0 +1,55 @@ +name: m64p +base: core20 +version: "v2021.11.21" +summary: An easy to use N64 emulator. Available for Windows and Linux +description: | + m64p uses mupen64plus-gui, a brand new mupen64plus frontend written in Qt5. It supports all of the things you’d expect from a frontend (savestate management, pausing, screenshots, etc.). + + m64p comes bundled with paraLLEl-RDP for graphics. It should give you the best out-of-the-box experience available for N64 gaming. +grade: stable +confinement: strict + +layout: + /usr/share/vulkan: + symlink: $SNAP/usr/share/vulkan + /usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libvulkan_intel.so: + symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libvulkan_intel.so + /usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libvulkan_radeon.so: + symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libvulkan_radeon.so + /usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libGLX_nvidia.so.0: + symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libGLX_nvidia.so.0 + +apps: + m64p: + command: mupen64plus/mupen64plus-gui + extensions: + - kde-neon + plugs: + - home + - opengl + - network + - network-bind + - audio-playback + - screen-inhibit-control + - joystick + - raw-input + environment: + DISABLE_WAYLAND: 1 + M64P_DISABLE_UPDATER: 1 + VK_ICD_FILENAMES: "/var/lib/snapd/lib/vulkan/icd.d/nvidia_icd.json:$SNAP/usr/share/vulkan/icd.d/radeon.x86_64.json:$SNAP/usr/share/vulkan/icd.d/intel_icd.x86_64.json" + +parts: + m64p: + stage-packages: + - libsdl2-2.0-0 + - libsdl2-net-2.0-0 + - libhidapi-hidraw0 + - libminizip1 + - p7zip-full + - libatomic1 + - libglu1-mesa + - libvulkan1 + - mesa-vulkan-drivers + - libvulkan-dev + source: https://github.com/loganmc10/m64p/releases/download/v2021.11.21/m64p-linux64-latest.zip + plugin: dump