diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml new file mode 100644 index 00000000..6a9fa782 --- /dev/null +++ b/net.retrodeck.retrodeck.appdata.xml @@ -0,0 +1,273 @@ + + + + net.retrodeck.retrodeck + net.retrodeck.retrodeck.desktop + RetroDECK + Everything you need for emulation on Steam Deck + Xargon + https://retrodeck.net + https://github.com/XargonWan/RetroDECK/issues + http://discord.gg/Dz3szYsP8g + https://github.com/XargonWan/RetroDECK/wiki/FAQs---Frequently-asked-questions + https://www.patreon.com/RetroDECK + + + + https://github.com/XargonWan/RetroDECK/blob/main/res/logo.png?raw=true + + + https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen02.png?raw=true + + + https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen03.png?raw=true + + + https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen04.png?raw=true + + + https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen05.png?raw=true + + + +

+ RetroDECK brings an environment to catalog and play your retro games directly from SteamOS and it's tailored specifically for the Steam Deck. + It's inspired by embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera.

+

+ Powered by EmulationStation Desktop Edition, which uses RetroArch and other standalone emulators to allow you to import and play your favorite retro (and even not-so-retro) games in a tidy environment without flooding your Steam library. + No other software is needed as everything it's already included!

+

+ NOTE: Albeit RetroDECK could possibily work on every distro, it's supported only on Steam Deck.

+
+ GPL-3.0 + CC0-1.0 + + + + https://github.com/XargonWan/RetroDECK/releases/tag/0.4.2b + +

Emulators:

+
    +
  • Updated all the emulators at the latest available version.
  • +
+ +

Backend:

+
    +
  • Manifest code cleanup.
  • +
+ +

Known Issues:

+
    +
  • PCSX2: due to its limitation, the standalone PCSX2 doesn't have any way to set the hotkeys, so no save and load state, no quit button. In order to quit press: STEAM -> PCSX2 -> (X) CLOSE WINDOW, be aware that the state is not automatically saved
  • +
  • Due to a Steam limitation, external controllers and keyboard seems not to be working, expecially in the desktop mode
  • +
+ +

IMPORTANT NOTE: + At the moment the emulator configs are reset during every update, this was made because every version they may bring new configurations, please back them up if you did some manual configs. +

+
+
+ + + https://github.com/XargonWan/RetroDECK/releases/tag/0.4.2b + +

Emulators:

+
    +
  • Updated all the emulators at the latest available version.
  • +
  • DOLPHIN (SA): Fixed a bug where Dolphin couldn't be properly configured. If it's still misconfigured please run `flatpak run net.retrodeck.retrodeck --reset-sa` in order to reset all the standalone emulators, including Dolphin.
  • +
  • CITRA (SA): Reconfigured controls and hotkeys.
  • +
  • MELONDS (SA): Reconfigured controls.
  • +
  • GAMBATTE (LIBRETRO): Added GB colorization.
  • +
  • RETROARCH (LIBRETRO): Tweaked some configs and fixed some overlapping hotkeys (FPS was same as Show Menu action).
  • +
+ +

Backend:

+
    +
  • Removed some broken tools that will be reintroduced once fixed, including the roms moving tool.
  • +
  • Updated ES-DE configs (es_find_rules, es_settings, es_systems).
  • +
  • Manifest trimmend and general code cleanup.
  • +
+ +

Known Issues:

+
    +
  • PCSX2: due to its limitation, the standalone PCSX2 doesn't have any way to set the hotkeys, so no save and load state, no quit button. In order to quit press: STEAM -> PCSX2 -> (X) CLOSE WINDOW, be aware that the state is not automatically saved
  • +
  • Due to a Steam limitation, external controllers and keyboard seems not to be working, expecially in the desktop mode
  • +
+ +

IMPORTANT NOTE: + At the moment the emulator configs are reset during every update, this was made because every version they may bring new configurations, please back them up if you did some manual configs. +

+
+
+ + + https://github.com/XargonWan/RetroDECK/releases/tag/0.4.1b + +

Emulators:

+
    +
  • Tweaked various emulator configs
  • +
  • The emulators that was showing a small viewport like N64, Wii, GC, and Dreamcast are now showing a more appropriate viewport
  • +
  • Fixed home path in MelonDS (SA)
  • +
+ +

Frontend:

+
    +
  • Updated ES-DE to 1.2.4
  • +
  • RetroDECK doesn't open ES-DE anymore during the first setup, almost everything is now automated: HURRAY!
  • +
  • Now a custom roms path can be selected if SD Card is selected and the SD Card is not found in the default path
  • +
+ +

Backend:

+
    +
  • Fixed a bug where the folders where not symlinked correclty
  • +
+ +

Known Issues:

+
    +
  • PCSX2: due to its limitation, the standalone PCSX2 doesn't have any way to set the hotkeys, so no save and load state, no quit button. In order to quit press: STEAM -> PCSX2 -> (X) CLOSE WINDOW, be aware that the state is not automatically saved
  • +
  • External controllers and keyboard seems not to be working, expecially in the desktop mode
  • +
  • Yuzu makes RetroDECK freeze in some situations, like if the rom is a bad dump
  • +
+ +

IMPORTANT NOTE: + At the moment the emulator configs are reset during every update, this was made because every version they may bring new configurations, please back them up if you did some manual configs. +

+
+
+ + + https://github.com/XargonWan/RetroDECK/releases/tag/0.4.0b + +

Emulators:

+
    +
  • Yuzu was broken: fixed
  • +
  • Dolphin-libretro is now the default emulator as Dolphin (Standalone) seems to be broken
  • +
+

New Standalone emulators:

+
    +
  • RPCS3
  • +
  • PPSSPP
  • +
  • CITRA
  • +
  • MelonDS
  • +
  • PICO-8
  • +
+

Tools:

+
    +
  • Added tools to start each standalone emulator
  • +
  • Added a tool to start PICO-8's SPLORE
  • +
  • Fixed the Move ROMs tool (probably)
  • +
+

Frontend:

+
    +
  • Updated ES-DE to 1.2.4 and redirected to the new repo
  • +
  • Updated Art-Book theme to fix the mising images for n3ds and pico-8
  • +
  • Now The quit button is showing "Quit RetroDECK"
  • +
  • Added RetroDECK version in the ES-DE main menu
  • +
+

Backend:

+
    +
  • Wrapper complete rewrite, now it's faster, tidier, solid
  • +
  • Wrapper: user data is now backup and moved when managing the internal folders
  • +
  • Introduced versioning: now the version is visible by CLI or in the options menu
  • +
  • Rewrote cooker.yml workflow as the old one was no more useful for the scope
  • +
  • Removed the bios/bios folder that in some situations is mistakenly created
  • +
  • Logs are now into ~/retrodeck/.logs however they must be improved
  • +
  • Moved the scraped data folder into ~/retrodeck/.downloaded_data for backup purposes and to avoid data loss when resetting RetroDECK
  • +
  • Moved themes folder in ~/retrodeck/.downloaded_data, same as above
  • +
  • Updated es_find_rules.xml
  • +
  • Updated es_systems.xml: some default emulators are changed, if you cannot load the game is maybe because of that, you can still choose the former emulator from the list
  • +
  • Added post-install scripts, now deleting ~/retrodeck/.log or ~/.var/app/net.retrodeck.retrodeck is no more needed (hopefully)
  • +
  • Added CLI arguments, run flatpak run net.retrodeck.retrodeck -h for more info
  • +
  • Added a CLI option to reset RetroDECK --reset
  • +
  • Replaced Kdialog with Zenity
  • +
  • Added manifest: this should fix the Discover bug
  • +
+

Known Issues:

+
    +
  • Controller is not configured for most of the standalone emulators, I will configure them when I will get my Steam Deck (ETA mid June)
  • +
  • External controllers seems not to be working
  • +
  • Yuzu makes RetroDECK freeze in some situations, like if the rom is a bad dump
  • +
+

+ IMPORTANT NOTE: + At the moment the emulator configs are reset during every update, this was made because every version may bring new configurations, please back them up if you did some manual configs. +

+
+
+ + + https://github.com/XargonWan/RetroDECK/releases/tag/0.3.1b + +
    +
  • Fixed Dolphin: now Dolphin (Standalone) is the default emulator for GC/Wii.
  • +
+
+
+ + https://github.com/XargonWan/RetroDECK/releases/tag/0.3.0b + +
    +
  • Migrated everything from the old domain com.xargon.retrodeck to net.retrodeck.retrodeck to be aligned with flathub standards
  • +
  • Fixed and enhanced all the tools
  • +
  • Added 'Start Yuzu' tool
  • +
  • Swapped a/b buttons on RetroArch
  • +
  • Tweaked some RetroArch configs
  • +
  • Fixed RetroArch Hotkeys
  • +
  • Added standalone PCSX2
  • +
  • Added standalone XEMU
  • +
  • Added standalone DOLPHIN
  • +
  • Reconfigured standalone YUZU
  • +
  • Updated EmulationStation Desktop Edition
  • +
  • Updated the default Art Book DE theme
  • +
  • Updated various backend scripts
  • +
+
+
+ + + https://github.com/XargonWan/RetroDECK/releases/tag/0.2.0b + +
    +
  • Migrated everything from the old building script to a full fledged yaml in order to being published on Discover
  • +
  • Fixed SD Card issues
  • +
  • Improved installer script
  • +
  • Tweaked RetroArch configs
  • +
  • Added tool for relocating ROMs location from/to internal to/from external
  • +
  • Added PCSX2 and Yuzu emulators (but not yet integrated in ES-DE)
  • +
  • Created cooker channel, more info in Discord and on RetroDECK-cooker on GitHub
  • +
  • Cooker will auto build when a change is pushed/PRed
  • +
  • Same as above with main
  • +
+
+
+ + + https://github.com/XargonWan/RetroDECK/releases/tag/0.1.1b + +
    +
  • Removed some debug stuff (press any key to continue)
  • +
  • Fixed ROMs folder
  • +
  • Fixed SD Card logic
  • +
  • Desktop file improved
  • +
  • Improved installer messages
  • +
+
+
+ + + https://github.com/XargonWan/RetroDECK/releases/tag/0.1.0b + +
    +
  • Pick up and play, just put your roms and bios in /retrodeck/roms and /retrodeck/bios folders.
  • +
  • SD Card support
  • +
  • Fancy interface provided by ES-DE and Art-Book-Next-DE
  • +
  • All retro systems available until PS2
  • +
  • Auto load/save states
  • +
  • Scraping
  • +
  • RetroAchievements (must be manually set)
  • +
+
+
+ +
+
\ No newline at end of file diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml new file mode 100644 index 00000000..6ce6a0b1 --- /dev/null +++ b/net.retrodeck.retrodeck.yml @@ -0,0 +1,1193 @@ +app-id: net.retrodeck.retrodeck +runtime: org.kde.Platform +runtime-version: 5.15-21.08 +sdk: org.kde.Sdk +# Needed for rpcs3 +sdk-extensions: + - org.freedesktop.Sdk.Extension.llvm13 +# /Needed for rpcs3 +# Needed for Yuzu +base: io.qt.qtwebengine.BaseApp +base-version: 5.15-21.08 +# /Needed for Yuzu +command: retrodeck.sh + +finish-args: + - --socket=x11 + - --socket=wayland + - --socket=pulseaudio + - --share=ipc + - --share=network + - --device=all + - --filesystem=~/retrodeck:create + - --filesystem=/run/media + - --filesystem=/media + - --allow=multiarch + - --talk-name=org.freedesktop.ScreenSaver + - --talk-name=org.freedesktop.PowerManagement.Inhibit + - --talk-name=org.freedesktop.login1 + - --filesystem=xdg-run/app/com.discordapp.Discord:create + # Yuzu + # - --filesystem=home:ro # This may break Yuzu, let's see + # - --filesystem=/run/media:ro + # Dolphin + - --allow=bluetooth + #- --env=QT_QPA_PLATFORM=xcb #not sure if this will break something + # rpcs3 + - --socket=fallback-x11 + +cleanup: + # ES-DE + - /include + - /share/ffmpeg + - /lib/cmake + #- /lib/debug + - /lib/pkgconfig + # Yuzu + - /include + - /bin/glslangValidator + - /bin/zip* + - /bin/zstd* + - /lib/pkg-config + - /share/doc + - /share/man + - /src + - '*.a' + - '*.la' +cleanup-commands: + # Yuzu + - /app/cleanup-BaseApp.sh + +modules: + + # This module is used to define the RetroDECK version + # If the version is set as cooker it will automatically generate the version tag based on the date + # else it will just put what is written, "v" is not needed + # The version number is stored in /var/conf/retrodeck/version + # + # UPDATE STEPS FOR MAIN: + # [X] Update the VERSION variable + # [X] Update the appdata.xml with the version number and notes + # [X] change branch into main in retrodeck module (last one) + # + - name: version-initialization + buildsystem: simple + build-commands: + - | + git checkout ${GITHUB_REF_NAME} + mkdir -p ${FLATPAK_DEST}/retrodeck/ + VERSION="0.4.3b" + if [[ $VERSION == "cooker" ]]; + then + VERSION=$(git describe --tags | tr - .) + fi + echo $VERSION >> ${FLATPAK_DEST}/retrodeck/version + cat ${FLATPAK_DEST}/retrodeck/version + sources: + - type: git + url: https://github.com/XargonWan/RetroDECK.git + branch: cooker + + - name: xmlstarlet + config-opts: + - --disable-static-libs + - --with-libxml-libs-prefix=/usr/lib + - --with-libxml-include-prefix=/usr/include/libxml2 + sources: + - type: archive + url: https://downloads.sourceforge.net/xmlstar/xmlstarlet-1.6.1.tar.gz + sha256: 15d838c4f3375332fd95554619179b69e4ec91418a3a5296e7c631b7ed19e7ca + - type: shell + commands: + - cp -p /usr/share/automake-*/config.{sub,guess} . + - autoreconf -vfi + post-install: + - ln -s "xml" "${FLATPAK_DEST}/bin/xmlstarlet" ||: + cleanup: ['*'] + + # mesa repo got a double certificate issue and gnutils cannot handle that so GLU download fails, + # this affects even the shared-modules's glu so I have to replace it temporarly + # more info there: https://gitlab.com/gnutls/gnutls/-/issues/1335 + - name: glu + buildsystem: meson + cleanup: + - /include + - /lib/debug + - /lib/pkgconfig + - /lib/*.a + sources: + - type: archive + url: https://ftp.osuosl.org/pub/blfs/conglomeration/glu/glu-9.0.2.tar.xz + sha256: 6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4 + + - name: libgudev + buildsystem: meson + config-opts: + - -Dtests=disabled + - -Dvapi=disabled + - -Dintrospection=disabled + - -Dgtk_doc=false + cleanup: + - /include + - /etc + - /libexec + - /sbin + - /lib/pkgconfig + - /lib/systemd + - /man + - /share/aclocal + - /share/doc + - /share/gtk-doc + - /share/man + - /share/pkgconfig + - '*.la' + - '*.a' + sources: + - type: archive + url: https://ftp.osuosl.org/pub/blfs/conglomeration/libgudev/libgudev-237.tar.xz + sha256: 0d06b21170d20c93e4f0534dbb9b0a8b4f1119ffb00b4031aaeb5b9148b686aa + + # ES-DE - START + # https://gitlab.com/es-de/emulationstation-de + + - name: ffmpeg + config-opts: + - --disable-static + - --disable-programs + - --disable-doc + - --enable-gpl + - --enable-shared + - --enable-libvorbis + - --enable-libopus + - --enable-libvpx + - --enable-postproc + sources: + - type: git + url: https://github.com/FFmpeg/FFmpeg.git + tag: n5.0 + + - name: freeimage + no-autogen: true + build-options: + cxxflags: -std=c++14 + make-args: + - DESTDIR=/app + sources: + - type: archive + url: http://downloads.sourceforge.net/freeimage/FreeImage3180.zip + sha256: f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd + - type: shell + commands: + - sed -i 's|-o root -g root ||' ./Makefile.gnu + - sed -i 's|/usr|/app|' ./Makefile.gnu + + - name: pugixml + buildsystem: cmake-ninja + config-opts: + - -DBUILD_SHARED_LIBS=on . + sources: + - type: archive + url: https://github.com/zeux/pugixml/releases/download/v1.11.4/pugixml-1.11.4.tar.gz + sha256: 8ddf57b65fb860416979a3f0640c2ad45ddddbbafa82508ef0a0af3ce7061716 + + # When updating this module remember to check those: https://gitlab.com/es-de/emulationstation-de/-/tree/stable-1.2.5/resources/systems/unix + # But we don't include them 1:1 as RetroDECK got some specific configs in some cases + - name: emulationstation-de + buildsystem: cmake-ninja + cleanup: + - es-app + - es-core + sources: + - type: git + url: https://gitlab.com/es-de/emulationstation-de + branch: 5a76fef25ffc659f098ee65215281c51a63c3198 + - type: shell + commands: + - sed -i 's/QUIT EMULATIONSTATION/QUIT RETRODECK/g' es-app/src/guis/GuiMenu.cpp + - sed -i 's#"EMULATIONSTATION-DE V" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#"RetroDECK + v'$(cat ${FLATPAK_DEST}/retrodeck/version)', ES-DE v" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#g' + es-app/src/guis/GuiMenu.cpp + + # ES-DE - END + + - name: art-book-next + buildsystem: simple + build-commands: + - mkdir -p ${FLATPAK_DEST}/share/emulationstation/themes/art-book-next-de/ + - mv -f * ${FLATPAK_DEST}/share/emulationstation/themes/art-book-next-de/ + sources: + - type: git + url: https://github.com/anthonycaccese/art-book-next-de.git + commit: 7fb9f567892a357651bbc6a2b6af3d1085a10ffb + + + # External manifests start + + # RetroArch - START + # https://github.com/flathub/org.libretro.RetroArch + + - name: retroarch + config-opts: + - --enable-dbus + make-args: + - GLOBAL_CONFIG_DIR=${FLATPAK_DEST}/etc + sources: + - type: git + url: https://github.com/libretro/RetroArch.git + branch: 9b282aa742b6c3d2f2925ae5a12e2cd7c6b6ad38 + - type: file + path: rd-submodules/retroarch/retroarch.cfg + post-install: + - mkdir -p ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/ + - mv ${FLATPAK_DEST}/share/pixmaps/retroarch.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/ + - rmdir --ignore-fail-on-non-empty ${FLATPAK_DEST}/share/pixmaps/ + - mkdir -p ${FLATPAK_DEST}/etc + - sed s:@prefix@:${FLATPAK_DEST}:g retroarch.cfg > ${FLATPAK_DEST}/etc/retroarch.cfg + modules: + - rd-submodules/retroarch/libpng/libpng-1.6.35.json + #nvidia-cg-toolkit/nvidia-cg-toolkit-3.1.0013.json + - shared-modules/SDL/SDL-1.2.15.json + - shared-modules/SDL/SDL_image-1.2.12.json + - shared-modules/SDL/SDL_mixer-1.2.12.json + - shared-modules/SDL/SDL_net-1.2.8.json + - shared-modules/SDL/SDL_ttf-2.0.11.json + - shared-modules/libusb/libusb.json + # certificate glu issue + #- shared-modules/gudev/gudev.json + - rd-submodules/retroarch/libbz2/libbz2-1.0.8.json + - rd-submodules/retroarch/xrandr/xrandr-1.5.1.json + - rd-submodules/retroarch/libaio/libaio-0.3.112.json + # certificate issue, check libglu module for more info + #- shared-modules/glu/glu-9.json + - rd-submodules/retroarch/libdecor/libdecor-0.1.0.json + - name: retroarch-filers-video + subdir: gfx/video_filters + make-install-args: + - PREFIX=${FLATPAK_DEST} + sources: + - type: git + url: https://github.com/libretro/RetroArch.git + branch: 9b282aa742b6c3d2f2925ae5a12e2cd7c6b6ad38 + - name: retroarch-filers-audio + subdir: libretro-common/audio/dsp_filters + make-install-args: + - PREFIX=${FLATPAK_DEST} + sources: + - type: git + url: https://github.com/libretro/RetroArch.git + branch: 9b282aa742b6c3d2f2925ae5a12e2cd7c6b6ad38 + - name: retroarch-assets + make-install-args: + - PREFIX=${FLATPAK_DEST} + sources: + - type: git + url: https://github.com/libretro/retroarch-assets.git + commit: f45dd1351e6bfb9f01e12bee8d358ad22a2bb8f9 + - name: libretro-database + make-install-args: + - PREFIX=${FLATPAK_DEST} + sources: + - type: git + url: https://github.com/libretro/libretro-database.git + commit: f3b10ec262fcbd78da3473f46d244270d12a327e + - name: libretro-core-info + make-install-args: + - PREFIX=${FLATPAK_DEST} + sources: + - type: git + url: https://github.com/libretro/libretro-core-info.git + commit: 06dac6318c067a6a40e2ea1e1260e74681ada844 + - name: retroarch-joypad-autoconfig + make-install-args: + - PREFIX=${FLATPAK_DEST} + sources: + - type: git + url: https://github.com/libretro/retroarch-joypad-autoconfig.git + commit: 760b057f1865a827762a54a8a32afda2cdd9e170 + # - name: common-shaders + # make-install-args: + # - PREFIX=${FLATPAK_DEST} + # sources: + # - type: git + # url: https://github.com/libretro/common-shaders.git + # commit: 55e401834b732e62c34411321c4ffd82524345d4 + # - name: slang-shaders + # make-install-args: + # - PREFIX=${FLATPAK_DEST} + # sources: + # - type: git + # url: https://github.com/libretro/slang-shaders.git + # commit: 148c57d9747f5db124135501ac280b5ca129a83f + # - name: glsl-shaders + # make-install-args: + # - PREFIX=${FLATPAK_DEST} + # sources: + # - type: git + # url: https://github.com/libretro/glsl-shaders.git + # commit: 8f6b2649489760caea8f36ec6099998854059569 + # - name: common-overlays + # make-install-args: + # - PREFIX=${FLATPAK_DEST} + # sources: + # - type: git + # url: https://github.com/libretro/common-overlays.git + # commit: db9744f4e58a740f0f10b04b62af347cd6f01928 + + # RetroArch - END + + # Not part of the offical RetroArch manifest + - name: retroarch-cores + buildsystem: simple + build-commands: + - mkdir -p /app/share/libretro/cores/ + - mv ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/ + sources: + - type: archive + url: https://buildbot.libretro.com/stable/1.10.3/linux/x86_64/RetroArch_cores.7z + sha256: 33abf39839687f8faba202ed5dcf3a54c06266a49fad35f0521fa445523d009f + + # Yuzu - START + # https://github.com/flathub/org.yuzu_emu.yuzu + # WHEN UPADTING: remember to update rd-submodules/yuzu contents + + - name: libzip + buildsystem: cmake-ninja + config-opts: + - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON + - -DCMAKE_BUILD_TYPE=RelWithDebInfo + sources: + - type: archive + url: https://github.com/nih-at/libzip/archive/v1.9.2.tar.gz + sha256: 7f28eaec7a02ca099ea9dad88fc8023f7f6ddfca54b780040ff7fdb39d9efb3c + x-checker-data: + type: anitya + project-id: 10649 + url-template: https://github.com/nih-at/libzip/archive/v$version.tar.gz + - name: zstd + buildsystem: simple + build-commands: + - make -j $FLATPAK_BUILDER_N_JOBS + - make PREFIX=/ DESTDIR="${FLATPAK_DEST}" install + sources: + - type: archive + url: >- + https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz + sha256: 7c42d56fac126929a6a85dbc73ff1db2411d04f104fae9bdea51305663a83fd0 + x-checker-data: + type: anitya + project-id: 12083 + url-template: >- + https://github.com/facebook/zstd/releases/download/v$version/zstd-$version.tar.gz + - name: fmt + buildsystem: cmake-ninja + config-opts: + - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON + - -DFMT_TEST=OFF + sources: + - type: archive + url: https://github.com/fmtlib/fmt/releases/download/9.0.0/fmt-9.0.0.zip + sha256: fc96dd2d2fdf2bded630787adba892c23cb9e35c6fd3273c136b0c57d4651ad6 + x-checker-data: + type: anitya + project-id: 11526 + url-template: >- + https://github.com/fmtlib/fmt/releases/download/$version/fmt-$version.zip + - name: glslang + buildsystem: cmake-ninja + config-opts: + - -DCMAKE_BUILD_TYPE=Release + sources: + - type: archive + url: https://github.com/KhronosGroup/glslang/archive/11.10.0.tar.gz + sha256: 8ffc19c435232d09299dd2c91e247292b3508c1b826a3497c60682e4bbf2d602 + x-checker-data: + type: anitya + stable-only: true + project-id: 205796 + url-template: https://github.com/KhronosGroup/glslang/archive/$version.tar.gz + - name: catch2 + buildsystem: cmake-ninja + config-opts: + - -DCMAKE_BUILD_TYPE=Release + - -DCATCH_INSTALL_EXTRAS=ON + - -DCATCH_BUILD_TESTING=OFF + builddir: true + sources: + - type: archive + url: https://github.com/catchorg/Catch2/archive/v3.0.1.tar.gz + sha256: 8c4173c68ae7da1b5b505194a0c2d6f1b2aef4ec1e3e7463bde451f26bbaf4e7 + x-checker-data: + type: anitya + stable-only: true + project-id: 7680 + url-template: https://github.com/catchorg/Catch2/archive/v$version.tar.gz + - name: nlohmann-json + buildsystem: cmake-ninja + config-opts: + - -DCMAKE_BUILD_TYPE=Release + - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON + - -DJSON_BuildTests=OFF + sources: + - type: archive + url: https://github.com/nlohmann/json/archive/v3.10.5.tar.gz + sha256: 5daca6ca216495edf89d167f808d1d03c4a4d929cef7da5e10f135ae1540c7e4 + x-checker-data: + type: anitya + project-id: 11152 + url-template: https://github.com/nlohmann/json/archive/v$version.tar.gz + - name: boost + buildsystem: simple + build-commands: + - ./bootstrap.sh --with-libraries=context,container,system,headers + - ./b2 -j $FLATPAK_BUILDER_N_JOBS install --prefix=/app + sources: + - type: archive + url: >- + https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.bz2 + sha256: 475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39 + x-checker-data: + type: anitya + project-id: 6845 + url-template: >- + https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_1_79_0.tar.bz2 + - name: nv-codec-headers + make-install-args: + - PREFIX=/app + no-autogen: true + cleanup: + - '*' + sources: + - type: git + url: https://git.videolan.org/git/ffmpeg/nv-codec-headers.git + tag: n11.1.5.1 + commit: 84483da70d903239d4536763fde8c7e6c4e80784 + x-checker-data: + type: git + tag-pattern: ^n([\d.]+)$ + - name: yuzu + buildsystem: cmake-ninja + builddir: true + config-opts: + - -DCMAKE_BUILD_TYPE=RelWithDebInfo + - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON + - -DENABLE_QT_TRANSLATION=ON + - -DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON + - -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON + - -DYUZU_USE_QT_WEB_ENGINE=ON + - -DYUZU_USE_BUNDLED_FFMPEG=ON + - -DDISPLAY_VERSION=1039 + - -DBUILD_TAG=mainline-1039 + - -DBUILD_REPOSITORY=yuzu-emu/yuzu-mainline + build-options: + env: + TITLEBARFORMATIDLE: yuzu {} + TITLEBARFORMATRUNNING: yuzu {} | {} + LDFLAGS: -L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed + cleanup: + - /share/man + - /share/pixmaps + post-install: + - install -Dm755 ../yuzu-launcher.sh /app/bin/yuzu-launcher + - >- + install -Dm644 ../dist/yuzu.svg + /app/share/icons/hicolor/scalable/apps/yuzu.svg + sources: + - type: git + url: https://github.com/yuzu-emu/yuzu-mainline.git + tag: mainline-0-1079 + commit: 1a4d4f2057abad4fad4d25b2e011fd2ba098a1de + disable-shallow-clone: true + x-checker-data: + type: git + tag-pattern: ^(mainline-0-\d+)$ + - type: file + path: rd-submodules/yuzu/yuzu-launcher.sh + - type: file + path: rd-submodules/yuzu/compatibility_list.json + + # Yuzu - END + + # PCSX2 - START + # https://github.com/flathub/net.pcsx2.PCSX2 + + - name: wxWidgets + buildsystem: cmake-ninja + config-opts: + - -DCMAKE_BUILD_TYPE=Release + cleanup: + - /bin + - /include + - /lib/wx/include + sources: + - type: git + url: https://github.com/wxWidgets/wxWidgets.git + tag: v3.1.7 + commit: 7ad1bffa875f7a38db58b6069ea3ff0c49c211d2 + x-checker-data: + type: git + tag-pattern: ^v([\d.]+)$ + modules: + - name: libaio + no-autogen: true + make-install-args: + - prefix=${FLATPAK_DEST} + sources: + - type: git + url: https://pagure.io/libaio.git + tag: libaio-0.3.113 + commit: 1b18bfafc6a2f7b9fa2c6be77a95afed8b7be448 + x-checker-data: + type: git + tag-pattern: ^libaio-([\d.]+)$ + cleanup: + - /include + - /lib/*.a + - name: portaudio + buildsystem: cmake-ninja + config-opts: + - -DCMAKE_BUILD_TYPE=Release + cleanup: + - /include + - /share/doc + - /lib/cmake + - /lib/pkgconfig + - /lib/*.a + sources: + - type: git + url: https://github.com/PortAudio/portaudio.git + tag: v19.7.0 + commit: 147dd722548358763a8b649b3e4b41dfffbcfbb6 + x-checker-data: + type: git + tag-pattern: ^v([\d.]+)$ + - name: soundtouch + buildsystem: cmake-ninja + sources: + - type: git + url: https://codeberg.org/soundtouch/soundtouch.git + tag: 2.3.1 + commit: e1f315f5358d9db5cee35a7a2886425489fcefe8 + x-checker-data: + type: git + tag-pattern: ^([\d.]+)$ + cleanup: + - /bin + - /include + - /lib/cmake + - /lib/pkgconfig + - /share/doc + - /lib/*.a + - name: png++ + disabled: true + buildsystem: simple + build-commands: + - make + - make prefix=/app install + sources: + - type: archive + url: >- + https://download.savannah.nongnu.org/releases/pngpp/png++-0.2.10.tar.gz + sha256: 998af216ab16ebb88543fbaa2dbb9175855e944775b66f2996fc945c8444eee1 + - name: libpcap + buildsystem: cmake-ninja + sources: + - type: git + url: https://github.com/the-tcpdump-group/libpcap.git + tag: libpcap-1.10.1 + commit: c7642e2cc0c5bd65754685b160d25dc23c76c6bd + x-checker-data: + type: git + tag-pattern: ^libpcap-([\d.]+)$ + cleanup: + - /bin + - /include + - /share/man + - /lib/pkgconfig + - /lib/*.a + - name: pcsx2 + buildsystem: cmake-ninja + builddir: true + config-opts: + - -DCMAKE_BUILD_TYPE=Release + - -DPACKAGE_MODE=TRUE + - -DXDG_STD=TRUE + - -DDISABLE_BUILD_DATE=TRUE + - -DDISABLE_PCSX2_WRAPPER=TRUE + - -DDISABLE_ADVANCE_SIMD=TRUE + - -DSDL2_API=TRUE + cleanup: + - /share/pixmaps + - /share/man + - /share/doc + sources: + - type: git + url: https://github.com/PCSX2/pcsx2.git + tag: v1.7.2889 + commit: a6649b2d6b558806fbe7cbaf6296014e3c5c192e + # PCSX2 Flathub Workaround - START + # This workaround disables the PCSX2 libraries (disable-submodules: true) and install them separately + # This is only to make it buildable by the flathub builder as normaly it seems not to be needed + disable-submodules: true + - type: git + dest: 3rdparty/xz/xz + url: https://github.com/PCSX2/xz.git + commit: 3d566cd519017eee1a400e7961ff14058dfaf33c + - type: git + dest: 3rdparty/gtest + url: https://github.com/google/googletest.git + commit: e2239ee6043f73722e7aa812a459f54a28552929 + - type: git + dest: 3rdparty/fmt/fmt + url: https://github.com/fmtlib/fmt.git + commit: b6f4ceaed0a0a24ccf575fab6c56dd50ccf6f1a9 + - type: git + dest: 3rdparty/libchdr/libchdr + url: https://github.com/rtissera/libchdr.git + commit: 5de1a59019815ccdbba0fe07c71b31406d023248 + - type: git + dest: 3rdparty/wil + url: https://github.com/microsoft/wil.git + commit: 3018875eaa4f8e3d86cf2da97fd577bae59f3aec + - type: git + dest: 3rdparty/cubeb/cubeb + url: https://github.com/mozilla/cubeb.git + commit: 773f16b7ea308392c05be3e290163d1f636e6024 + - type: git + dest: 3rdparty/rapidyaml/rapidyaml + url: https://github.com/biojppm/rapidyaml.git + commit: 213b201d264139cd1b887790197e08850af628e3 + - type: git + dest: 3rdparty/imgui/imgui + url: https://github.com/ocornut/imgui.git + commit: 60bea052a92cbb4a93b221002fdf04f0da3698e1 + - type: git + dest: 3rdparty/glslang/glslang + url: https://github.com/KhronosGroup/glslang.git + commit: c9706bdda0ac22b9856f1aa8261e5b9e15cd20c5 + - type: git + dest: 3rdparty/vulkan-headers + url: https://github.com/KhronosGroup/Vulkan-Headers.git + commit: 52a76fd0a693708eb8c25bd0ab7a1008091f64d4 + - type: git + dest: 3rdparty/sdl2/SDL + url: https://github.com/libsdl-org/SDL.git + commit: 53dea9830964eee8b5c2a7ee0a65d6e268dc78a1 + - type: git + dest: 3rdparty/libzip/libzip + url: https://github.com/nih-at/libzip.git + commit: bdc03ab23b703fcc516436d6ebcbfb6ac4484033 + - type: git + dest: 3rdparty/zstd/zstd + url: https://github.com/facebook/zstd.git + commit: e47e674cd09583ff0503f0f6defd6d23d8b718d3 + # PCSX2 Flathub Workaround - END + + # PCSX2 - END + + # Dolphin - START + # https://github.com/flathub/org.DolphinEmu.dolphin-emu + # WHEN UPADTING: remember to update rd-submodules/yuzu contents + + # 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 + - sed -i -e 's/"2048"/"512"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg + sources: + - type: git + url: https://github.com/dolphin-emu/dolphin.git + commit: 8335ec70e5fe253eb21509408ca6b5736ed57dfc + # 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: 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 + # use gtk3 filechooser on steamdeck + - bv=`cat /sys/devices/virtual/dmi/id/board_vendor` + - bv=$bv`cat /sys/devices/virtual/dmi/id/board_name` + - if [[ $bv == "ValveJupiter" ]]; then + - QT_QPA_PLATFORMTHEME=gtk3 dolphin-emu "$@" + - else + - dolphin-emu "$@" + - fi + dest-filename: dolphin-emu-wrapper + + # Dolphin - END + + # XEMU - START + # https://github.com/flathub/app.xemu.xemu + + # certificate issue, check libglu module for more info + # - name: libglu + # buildsystem: meson + # cleanup: + # - /include + # - /lib/debug + # - /lib/pkgconfig + # - /lib/*.a + # sources: + # - type: archive + # url: http://mesa.freedesktop.org/archive/glu/glu-9.0.2.tar.xz + # sha256: 6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4 + # x-checker-data: + # type: anitya + # project-id: 13518 + # stable-only: true + # url-template: http://mesa.freedesktop.org/archive/glu/glu-$version.tar.xz + + - name: PyYAML + buildsystem: simple + build-commands: + - python3 setup.py install --prefix=/app --root=/ + sources: + - type: archive + url: https://github.com/yaml/pyyaml/archive/refs/tags/6.0.tar.gz + sha256: f33eaba25d8e0c1a959bbf00655198c287dfc5868f5b7b01e401eaa1796cc778 + + - name: xemu + buildsystem: autotools + builddir: true + no-make-install: true + build-options: + cflags: -O3 -DXBOX=1 -Wno-error=redundant-decls + config-opts: + - --audio-drv-list=sdl + - --disable-werror + - --target-list=i386-softmmu + make-args: + - qemu-system-i386 + post-install: + - |- + for px in 16 32 48 64 128 256 512; do + install -Dm644 ../ui/icons/xemu_${px}x${px}.png /app/share/icons/hicolor/${px}x${px}/apps/app.xemu.xemu.png + done + - install -Dm644 ../ui/icons/xemu.svg /app/share/icons/hicolor/scalable/apps/app.xemu.xemu.svg + - mv qemu-system-i386 /app/bin/xemu + - mkdir -p /app/share/licenses/xemu + - cd .. && python3 scripts/gen-license.py > /app/share/licenses/xemu/LICENSE.txt + sources: + - type: git + url: https://github.com/mborgerson/xemu.git + tag: v0.7.58 + commit: 6f878ede01ad1992392dde22b506a3c00fab87c4 + x-checker-data: + type: json + url: https://api.github.com/repos/mborgerson/xemu/releases/latest + tag-query: .tag_name + version-query: $tag | sub("^gh-release/"; "") + timestamp-query: .published_at + + # XEMU - END + + # MELONDS - START + # https://github.com/flathub/net.kuribo64.melonDS + # ちっちゃい、かわいい! + + - name: libslirp + buildsystem: meson + sources: + - type: git + url: https://gitlab.freedesktop.org/slirp/libslirp.git + tag: v4.4.0 + - name: melonds + buildsystem: cmake-ninja + builddir: true + build-options: + arch: + aarch64: + config-opts: + - -DENABLE_OGLRENDERER=OFF + sources: + - type: git + url: https://github.com/Arisotura/melonDS.git + commit: cce9de5ee1f51e906a644922b2ada6644d81287a + + # MELONDS - END + + # CITRA - START + # https://github.com/flathub/org.citra_emu.citra + + - name: citra + buildsystem: cmake-ninja + builddir: true + config-opts: + - -DCMAKE_BUILD_TYPE=Release + - -DENABLE_QT_TRANSLATION=ON + - -DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON + - -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON + #- '-DENABLE_FFMPEG_VIDEO_DUMPER=ON' + # Disabled because of this: https://github.com/citra-emu/citra/issues/5949 + - -DENABLE_FDK=ON + cleanup: + - /share/man + - /share/pixmaps + post-install: + - >- + install -Dm644 ../dist/citra.svg + /app/share/icons/hicolor/scalable/apps/citra.svg + - >- + install -Dm644 ../dist/icon.png + /app/share/icons/hicolor/512x512/apps/citra.png + sources: + - type: git + url: https://github.com/citra-emu/citra-nightly.git + tag: nightly-1772 + commit: 355933218d00603c910cd0a9daead0b1cd72a3c3 + disable-shallow-clone: true + x-checker-data: + type: git + tag-pattern: ^(nightly-\d+)$ + + # CITRA - END + # RPCS3 - START + # https://github.com/flathub/net.rpcs3.RPCS3 + + # glu issue, check libglu module for more info + #- shared-modules/glu/glu-9.json + - shared-modules/glew/glew.json + + - 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 + 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; + 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)"; + sources: + - type: git + url: https://github.com/RPCS3/rpcs3.git + commit: e9570d1a0045926f63ec8ea9af68f81743d4f365 + + # RPCS3 - END + # PRIMEHACK - START + # https://github.com/flathub/io.github.shiiion.primehack + # Disabled because it's overwriting Dolphin + # - name: primehack + # 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 + # - sed -i -e 's/"2048"/"512"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg + # sources: + # - type: git + # url: https://github.com/shiiion/dolphin.git + # commit: 9ca0eb888bd6f8ed13a4efb92d808fbf0705ffa4 + # # 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/primehack/detectflatpak.patch + # # version strings must match exactly for online multiplayer + # - type: patch + # path: rd-submodules/primehack/nodirtyversion.patch + # - 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 + + # PRIMEHACK - END + + # PPSSPP - START + # https://github.com/flathub/org.ppsspp.PPSSPP + + - name: ppsspp + buildsystem: cmake-ninja + config-opts: + - -DUSE_SYSTEM_FFMPEG=OFF # turn this on? + - -DUSE_SYSTEM_LIBZIP=ON + - -DUSE_SYSTEM_ZSTD=ON + + - -DUSE_WAYLAND_WSI=ON + - -DUSING_X11_VULKAN=ON + - -DUSING_QT_UI=OFF + + - -DBUILD_TESTING=OFF + - -DOpenGL_GL_PREFERENCE=GLVND + build-options: + - -DX86_64=ON + sources: + - type: git + url: https://github.com/hrydgard/ppsspp.git + tag: v1.12.3 + commit: ce0a45cf0fcdd5bebf32208b9998f68dfc1107b7 + disable-submodules: true # Part of the PPSSPP Flathub Workaround + x-checker-data: + type: git + tag-pattern: ^v([\d.]+)$ + + # PPSSPP Flathub Workaround - START + # This workaround disables the PPSSPP libraries (disable-submodules: true) and install them separately + # This is only to make it buildable by the flathub builder as normaly it seems not to be needed + - type: git + dest: SDL/macOS + commit: f19a1d54b8a5af6cc378ea307e0ec676922eb4cc + url: https://github.com/hrydgard/ppsspp-mac-sdl + - type: git + dest: assets/debugger + commit: 36ad6b19b22de2075a01a4f0c765e3ef514dc38f + url: https://github.com/unknownbrackets/ppsspp-debugger.git + - type: git + dest: dx9sdk + commit: 7751cf73f5c06f1be21f5f31c3e2d9a7bacd3a93 + url: https://github.com/hrydgard/minidx9.git + - type: git + dest: ext/SPIRV-Cross + commit: 9acb9ec31f5a8ef80ea6b994bb77be787b08d3d1 + url: https://github.com/KhronosGroup/SPIRV-Cross.git + - type: git + dest: ext/armips + commit: 7885552b208493a6a0f21663770c446c3ba65576 + url: https://github.com/Kingcom/armips.git + - type: git + dest: ext/discord-rpc + commit: 963aa9f3e5ce81a4682c6ca3d136cddda614db33 + url: https://github.com/discordapp/discord-rpc.git + - type: git + dest: ext/glslang + commit: dc11adde23c455a24e13dd54de9b4ede8bdd7db8 + url: https://github.com/hrydgard/glslang.git + - type: git + dest: ext/miniupnp + commit: 3a87be33e797ba947b2b2a5f8d087f6c3ff4d93e + url: https://github.com/hrydgard/miniupnp.git + - type: git + dest: ext/native/tools/prebuilt + commit: cbea79dc8fef4d9210e2bac7e7b9b5ff3388197a + url: https://github.com/hrydgard/ppsspp-freetype.git + - type: git + dest: ext/rapidjson + commit: 73063f5002612c6bf64fe24f851cd5cc0d83eef9 + disable-submodules: true + url: https://github.com/Tencent/rapidjson.git + - type: git + dest: ext/zstd + commit: a488ba114ec17ea1054b9057c26a046fc122b3b6 + url: https://github.com/facebook/zstd.git + - type: git + dest: ffmpeg + commit: 3ad7ddb9eb2af898dce8c4b5e9a28b77b3f7ddd7 + url: https://github.com/hrydgard/ppsspp-ffmpeg.git + - type: git + dest: pspautotests + commit: 682a4303aba63a50c91ae0fa6928c9dac8ca9b92 + url: https://github.com/hrydgard/pspautotests.git + # PPSSPP Flathub Workaround - END + # PPSSPP - END + + # External manifests end + + - name: retrodeck + buildsystem: simple + build-commands: + + # Prep the ES-DE and RetroArch config files - I will have to SED/XMLSTARLET them soon + - rm -rf /app/share/emulationstation/resources/systems/unix/es_find_rules.xml + - cp es-configs/es_find_rules.xml /app/share/emulationstation/resources/systems/unix/ + - rm -rf /app/share/emulationstation/resources/systems/unix/es_systems.xml + - cp es-configs/es_systems.xml /app/share/emulationstation/resources/systems/unix/ + # These must be put in home folder, managed by retrodeck.sh + - cp es-configs/es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml + + # Logo, res + - rm -f /app/share/emulationstation/resources/graphics/splash.svg + - cp res/splash.svg /app/share/emulationstation/resources/graphics/splash.svg + - cp res/icon.svg /app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg + + # Tools + - mkdir -p ${FLATPAK_DEST}/retrodeck/tools/ + - cp tools/* ${FLATPAK_DEST}/retrodeck/tools/ + - mv -f es-configs/tools-gamelist.xml ${FLATPAK_DEST}/retrodeck/ + + - cp retrodeck.sh /app/bin/retrodeck.sh + - chmod +x /app/bin/retrodeck.sh + + # Desktop entry + - cp net.retrodeck.retrodeck.desktop /app/share/applications/net.retrodeck.retrodeck.desktop + + # TODO: group the configs per-emu and optimize the following cps, like already done with Dolphin. Please not that some files may be renamed, check retrodeck.sh to know how (and fix it after the edit) + + # Configuring emulators: + - mkdir -p ${FLATPAK_DEST}/retrodeck/emu-configs/Dolphin + # RetroArch + - cp emu-configs/retroarch* ${FLATPAK_DEST}/retrodeck/emu-configs/ + # Dolphin + - cp emu-configs/Dolphin/* ${FLATPAK_DEST}/retrodeck/emu-configs/ + # Yuzu + - cp emu-configs/yuzu-qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs/ + # Pcsx2 + - cp emu-configs/PCSX2_ui.ini ${FLATPAK_DEST}/retrodeck/emu-configs/ + - cp emu-configs/GS.ini ${FLATPAK_DEST}/retrodeck/emu-configs/ + - cp emu-configs/PCSX2_vm.ini ${FLATPAK_DEST}/retrodeck/emu-configs/ + # MelonDS + - cp emu-configs/melonDS.ini ${FLATPAK_DEST}/retrodeck/emu-configs/ + # CITRA + - cp emu-configs/citra-qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs/ + # RPCS3 + - cp emu-configs/config.yml ${FLATPAK_DEST}/retrodeck/emu-configs/ + + # Overlays + #- cp -r overlays ${FLATPAK_DEST}/retrodeck/overlays Disabled in 0.4.2b as it will be introduced in 0.5.0b + + # Placing appdata + - mkdir -p ${FLATPAK_DEST}/share/appdata + - cp net.retrodeck.retrodeck.appdata.xml ${FLATPAK_DEST}/share/appdata + + sources: + - type: git + url: https://github.com/XargonWan/RetroDECK.git + branch: main