From b9d9430bf25aa2b66a505c73750120bbcb5eaf70 Mon Sep 17 00:00:00 2001 From: Steam OS User Date: Thu, 14 Apr 2022 20:18:53 +0900 Subject: [PATCH] Added RPCS3 --- com.xargon.retrodeck.yml | 194 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 192 insertions(+), 2 deletions(-) diff --git a/com.xargon.retrodeck.yml b/com.xargon.retrodeck.yml index 871504e1..0749b68c 100644 --- a/com.xargon.retrodeck.yml +++ b/com.xargon.retrodeck.yml @@ -26,6 +26,9 @@ finish-args: # Yuzu - --filesystem=home:ro # - --filesystem=/run/media:ro + # Dolphin + - --allow=bluetooth + #- --env=QT_QPA_PLATFORM=xcb not sure if this will break something cleanup: # ES-DE @@ -579,12 +582,199 @@ modules: # pcsx2 - END + # Dolphin - START + + # needed for the emulate bluetooth adapter feature to work + - name: bluez + config-opts: + - --enable-library + - --disable-manpages + - --disable-udev + - --disable-tools + - --disable-cups + - --disable-monitor + - --disable-client + - --disable-systemd + - --disable-a2dp + - --disable-avrcp + - --disable-network + - --with-dbusconfdir=/app/etc + - --with-dbussessionbusdir=/app/usr/lib/system-services + sources: + - type: archive + url: https://www.kernel.org/pub/linux/bluetooth/bluez-5.64.tar.xz + sha256: ae437e65b6b3070c198bc5b0109fe9cdeb9eaa387380e2072f9de65fe8a1de34 + x-checker-data: + type: anitya + project-id: 10029 + stable-only: true + url-template: https://www.kernel.org/pub/linux/bluetooth/bluez-$version.tar.xz + + # enables motion controls on non-wii controllers (switch, ps4, etc) + # requires a udev rule enabling Motion Sensors access + - name: libevdev + buildsystem: meson + config-opts: + - -Dtests=disabled + - -Ddocumentation=disabled + sources: + - type: archive + url: https://www.freedesktop.org/software/libevdev/libevdev-1.12.1.tar.xz + sha256: 1dbba41bc516d3ca7abc0da5b862efe3ea8a7018fa6e9b97ce9d39401b22426c + x-checker-data: + type: anitya + project-id: 20540 + stable-only: true + url-template: https://www.freedesktop.org/software/libevdev/libevdev-$version.tar.xz + + # needed for screensaver inhibition + - name: xdg-screensaver-shim + buildsystem: meson + sources: + - type: archive + url: https://github.com/Unrud/xdg-screensaver-shim/archive/0.0.2.tar.gz + sha256: 0ed2a69fe6ee6cbffd2fe16f85116db737f17fb1e79bfb812d893cf15c728399 + + - name: dolphin-emu + buildsystem: cmake-ninja + config-opts: + - -DCMAKE_BUILD_TYPE=Release + - -DENABLE_ALSA=OFF + - -DENABLE_SDL=ON + - -DENABLE_EVDEV=ON + - -DDISTRIBUTOR=Flathub + cleanup: + - /share/man + post-install: + - install -D dolphin-emu-wrapper /app/bin/dolphin-emu-wrapper + - install -Dm644 appdata.xml /app/share/appdata/dolphin-emu.appdata.xml + - sed -i -e 's/"2048"/"512"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg + - desktop-file-edit --set-key=Exec --set-value='/app/bin/dolphin-emu-wrapper' + /app/share/applications/dolphin-emu.desktop + sources: + - type: git + url: https://github.com/dolphin-emu/dolphin.git + commit: 8ecfa537a242de74d2e372e30d9d79b14584b2fb + # detects whether dolphin is running in a flatpak sandbox + # and makes it use xdg directories if it is. + # prevents dolphin from attempting to write conf files + # in non-writable paths, typically happens when a user + # has leftover files from a previous non-flatpak install + - type: patch + path: rd-submodules/dolphin/detectflatpak.patch + # version strings must match exactly for online multiplayer + - type: patch + path: rd-submodules/dolphin/nodirtyversion.patch + - type: file + path: rd-submodules/dolphin/appdata.xml + - type: script + commands: + - for i in {0..9}; do + - test -S $XDG_RUNTIME_DIR/discord-ipc-$i || ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i; + - done + - dolphin-emu "$@" + dest-filename: dolphin-emu-wrapper + + # Dolphin - END + + # RPCS3 - START + + - name: rpcs3-llvm + buildsystem: cmake-ninja + builddir: true + build-options: + cflags: &optflags -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong + -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection + -fcf-protection -fno-omit-frame-pointer + cflags-override: true + cxxflags: -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong + -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection + -fcf-protection -fno-omit-frame-pointer -msse -msse2 -mcx16 + cxxflags-override: true + env: + AR: llvm-ar + CC: clang + CXX: clang++ + RANLIB: llvm-ranlib + ldflags: -fuse-ld=lld + prepend-ld-library-path: /usr/lib/sdk/llvm13/lib + prepend-path: /usr/lib/sdk/llvm13/bin + config-opts: + - -DCMAKE_BUILD_TYPE=Release + - -DBUILD_SHARED_LIBS=OFF + - -DLLVM_CCACHE_BUILD=ON + - -DLLVM_TARGETS_TO_BUILD='X86' + - -DLLVM_BUILD_RUNTIME=OFF + - -DLLVM_BUILD_TOOLS=OFF + - -DLLVM_INCLUDE_DOCS=OFF + - -DLLVM_INCLUDE_EXAMPLES=OFF + - -DLLVM_INCLUDE_TESTS=OFF + - -DLLVM_INCLUDE_TOOLS=OFF + - -DLLVM_INCLUDE_UTILS=OFF + - -DLLVM_USE_INTEL_JITEVENTS=ON + - -DLLVM_USE_PERF=ON + - -DLLVM_ENABLE_Z3_SOLVER=OFF + - -DCMAKE_CXX_STANDARD=17 + - -DITTAPI_SOURCE_DIR=/run/build/rpcs3-llvm/ittapi + - -Wno-dev + cleanup: + - '*' + sources: + - type: git + url: https://github.com/RPCS3/llvm-mirror.git + branch: master + commit: 509d31ad89676522f7121b3bb8688f7d29b7ee60 + - type: git + url: https://github.com/intel/ittapi.git + dest: ittapi/ittapi + disable-shallow-clone: true + + - name: rpcs3 + buildsystem: cmake-ninja + builddir: true + build-options: + append-ld-library-path: /usr/lib/sdk/llvm13/lib + append-path: /usr/lib/sdk/llvm13/bin + cflags: *optflags + cflags-override: true + cxxflags: *optflags + cxxflags-override: true + env: + AR: llvm-ar + CC: clang + CXX: clang++ + RANLIB: llvm-ranlib + ldflags: -fuse-ld=lld + config-opts: + - -DCMAKE_BUILD_TYPE=RelWithDebInfo + - -DBUILD_LLVM_SUBMODULE=OFF + - -DUSE_NATIVE_INSTRUCTIONS=OFF + - -DUSE_PRECOMPILED_HEADERS=OFF + - -DUSE_SYSTEM_CURL=ON + - -DUSE_SYSTEM_FFMPEG=ON + - -DUSE_SYSTEM_LIBPNG=ON + - -DUSE_SYSTEM_ZLIB=ON + - -Wno-dev + post-install: + - | + set -eux; + sed -i 's|RPCS3|net.rpcs3.RPCS3|' ${FLATPAK_DEST}/share/metainfo/rpcs3.metainfo.xml; + COMM_TAG="$(awk -F'[\{,]' '/version{.*}/{printf "%d.%d.%d", $2, $3, $4}' ../rpcs3/rpcs3_version.cpp)"; + COMM_COUNT="$(git rev-list --count HEAD)"; + COMM_HASH="$(git rev-parse --short=8 HEAD)"; + sed -i 's|||' ${FLATPAK_DEST}/share/metainfo/rpcs3.metainfo.xml; + sources: + - type: git + url: https://github.com/RPCS3/rpcs3.git + branch: master + commit: d6b026314409980734605e9275950f835f04e8df + + # RPCS3 - END + # Ryujinx # Xemu - # Rpcs3 # vita3k - # dolphin # arduboy # pocket station # cemu - win only: wine