diff --git a/.github/workflows/cooker.yml b/.github/workflows/cooker.yml index 8f197aa1..4d27c088 100644 --- a/.github/workflows/cooker.yml +++ b/.github/workflows/cooker.yml @@ -6,9 +6,17 @@ name: Cooker on: # Triggers the workflow on push or pull request events but only for the main branch push: +<<<<<<< HEAD + branches: + - cooker + pull_request: + branches: + - cooker +======= branches: [ '*' ] pull_request: branches: [ '*' ] +>>>>>>> main # Allows you to run this workflow manually from the Actions tab workflow_dispatch: @@ -27,9 +35,19 @@ jobs: - name: Prepearing enviornment run: | +<<<<<<< HEAD + git submodule init + git submodule update + sudo add-apt-repository ppa:alexlarsson/flatpak + sudo apt-get update + sudo apt install flatpak flatpak-builder p7zip-full + sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 +======= sudo apt install flatpak flatpak-builder sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 +>>>>>>> main # Runs a set of commands using the runners shell - name: Building flatpak @@ -38,14 +56,29 @@ jobs: sudo flatpak-builder --repo=local --force-clean localrepo com.xargon.retrodeck.yml sudo flatpak build-bundle local RetroDECK.flatpak com.xargon.retrodeck +<<<<<<< HEAD + - name: Get date for artifacts + id: date + run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M')" + + - name: Publish the flatpak in a new cooker release + uses: ncipollo/release-action@v1 + with: + tag: "${{ steps.date.outputs.date }}" +======= - name: Publish the flatpak in a new cooker release uses: ncipollo/release-action@v1 with: tag: "${{ steps.version.outputs.version }}" +>>>>>>> main body: | # Release Notes (Cooker) This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}. +<<<<<<< HEAD + Cooker channel is provided for the community to test fixes and explore new functionality. + Please DO NOT open issues or ask support on this build. +======= Cooker channel is provided for the community to test fixes and explore new functionality. Please DO NOT open issues on this build and instead post in the `#pre-release-feedback` section of discord. See the [wiki](https://amberelec.org/Contributing-to-AmberELEC) for more info. @@ -56,6 +89,7 @@ jobs: ### Upgrade Instructions You can update to this release using the `prerelease` channel on your device. This is the recommended way to use prerelease versions. +>>>>>>> main artifacts: "RetroDECK.flatpak" allowUpdates: true diff --git a/.gitmodules b/.gitmodules index 1e7a9909..c4ddce75 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,12 @@ [submodule "shared-modules"] path = shared-modules url = https://github.com/flathub/shared-modules.git +[submodule "rd-submodules/retroarch"] + path = rd-submodules/retroarch + url = https://github.com/flathub/org.libretro.RetroArch.git +[submodule "rd-submodules/yuzu"] + path = rd-submodules/yuzu + url = https://github.com/flathub/org.yuzu_emu.yuzu +[submodule "rd-submodules/pcsx2"] + path = rd-submodules/pcsx2 + url = https://github.com/flathub/net.pcsx2.PCSX2.git diff --git a/build-flatpak.sh b/build-flatpak.sh deleted file mode 100755 index 0d7a145f..00000000 --- a/build-flatpak.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash - -INSTALL_DIR=$PWD -PREVIOUS_DIR=$PWD - -echo "Welcome to the RetroDECK flatpak builder." -echo "This script is helping the flatpak building in $INSTALL_DIR." - -read -n 1 -r -s -p $'Press enter to continue...\n' -echo "Building RetroDECK, please stand by." - -if command -v apt >/dev/null; then - sudo apt install flatpak flatpak-builder -elif command -v apt-get >/dev/null; then - sudo apt-get install flatpak flatpak-builder -elif command -v yum >/dev/null; then - sudo yum install flatpak flatpak-builder # not sure about this -else - sudo pacman -S flatpak flatpak-builder -fi - -echo "Initializing Flatpak" -flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo -flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 - -cd $INSTALL_DIR - -# External flatpaks import -# To update change branch and update the manifest. -# Some json must be converted with this: https://codebeautify.org/json-to-yaml - -# RetroArch -# https://github.com/flathub/org.libretro.RetroArch/blob/master/org.libretro.RetroArch.json -git clone --recursive --branch update-v1.10.2 https://github.com/flathub/org.libretro.RetroArch.git -# removing not needed and potentially dangerous files -#rm -rf org.libretro.RetroArch/shared-modules -#rm -f org.libretro.RetroArch/retroarch.cfg -#rm -f org.libretro.RetroArch/README.md -#rm -f org.libretro.RetroArch/org.libretro.RetroArch.json -#rm -f org.libretro.RetroArch/COPYING -#rm -rf org.libretro.RetroArch/.* -ln -s org.libretro.RetroArch/* $INSTALL_DIR/ - -# Yuzu -# https://github.com/flathub/org.yuzu_emu.yuzu/blob/master/org.yuzu_emu.yuzu.json -#git clone --recursive https://github.com/flathub/org.yuzu_emu.yuzu -#rm -rf org.yuzu_emu.yuzu/shared-modules -#rm -rf org.yuzu_emu.yuzu/.* -#ln -s org.yuzu_emu.yuzu/* $INSTALL_DIR/ - - -cd $INSTALL_DIR -flatpak-builder retrodeck-flatpak com.xargon.retrodeck.yml --force-clean - -# Useful commands: -# flatpak-builder --user --install --force-clean retrodeck-flatpak com.xargon.retrodeck.yml -# flatpak run com.xargon.retrodeck -# -# flatpak --user remote-add --no-gpg-verify xargon-dev repo -# flatpak --user install xargon-dev com.xargon.retrodeck -# -# flatpak run --command=/bin/bash com.xargon.retrodeck - -# Cleaning up -#rm -rf org.libretro.RetroArch -#rm -rf org.yuzu_emu.yuzu - -# removing orphaned symlinks -find -L . -name . -o -type d -prune -o -type l -exec rm {} + - -echo "Building terminated, you can install retrodeck by typing: flatpak run com.xargon.retrodeck" - -cd $PREVIOUS_DIR \ No newline at end of file diff --git a/com.xargon.retrodeck.yml b/com.xargon.retrodeck.yml index 77833256..f66195e9 100644 --- a/com.xargon.retrodeck.yml +++ b/com.xargon.retrodeck.yml @@ -2,6 +2,10 @@ app-id: com.xargon.retrodeck runtime: org.kde.Platform runtime-version: '5.15-21.08' sdk: org.kde.Sdk +# Needed for Yuzu +base: io.qt.qtwebengine.BaseApp +base-version: 5.15-21.08 +# /Needed for Yuzu command: retrodeck.sh finish-args: @@ -33,6 +37,20 @@ cleanup: - /lib/libfreeimage.a - /lib/libogg.a - /lib/libvpx.a + # 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: @@ -178,7 +196,6 @@ modules: # External manifests start # RetroArch - https://github.com/flathub/org.libretro.RetroArch - # nope: remember to put ' /org.libretro.RetroArch/' as submodules prefix - name: retroarch config-opts: @@ -190,9 +207,9 @@ modules: url: https://github.com/libretro/RetroArch.git branch: de4e56ecf28a09057734f8624af6d62f3088734f - type: file - path: org.libretro.RetroArch.appdata.xml + path: rd-submodules/retroarch/org.libretro.RetroArch.appdata.xml - type: file - path: retroarch.cfg + path: rd-submodules/retroarch/retroarch.cfg post-install: - mkdir -p ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/ - >- @@ -310,183 +327,318 @@ modules: # Yuzu - https://github.com/flathub/org.yuzu_emu.yuzu - #- shared-modules/libusb/libusb.json - #- name: libzip - # buildsystem: cmake-ninja - # config-opts: - # - '-DCMAKE_BUILD_TYPE=RelWithDebInfo' - # sources: - # - type: archive - # url: https://github.com/nih-at/libzip/archive/v1.8.0.tar.gz - # sha256: 83e5d6d5dbe8f9df80aad388fa523ca3558398ed440a5afda6ef9b36b0ffdc1f - # 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: - # - '-DFMT_TEST=OFF' - # sources: - # - type: archive - # url: https://github.com/fmtlib/fmt/releases/download/8.1.1/fmt-8.1.1.zip - # sha256: 23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d - # 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.8.0.tar.gz - # sha256: 9e5fbe5b844d203da5e61bcd84eda76326e0ff5dc696cb862147bbe01d2febb0 - # 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_BUILD_TESTING=OFF' - # builddir: true - # sources: - # - type: archive - # url: https://github.com/catchorg/Catch2/archive/v2.13.8.tar.gz - # sha256: b9b592bd743c09f13ee4bf35fc30eeee2748963184f6bea836b146e6cc2a585a - # 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' - # - '-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: 141453 - # 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.78.0/source/boost_1_78_0.tar.bz2 - # sha256: 8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc - # x-checker-data: - # type: anitya - # project-id: 6845 - # url-template: >- - # https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_1_78_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=963' - # - '-DBUILD_TAG=mainline-963' - # - '-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 ../org.yuzu_emu.yuzu.metainfo.xml - # /app/share/appdata/org.yuzu_emu.yuzu.metainfo.xml - # - desktop-file-install --dir=/app/share/applications ../dist/yuzu.desktop - # - >- - # desktop-file-edit --set-key StartupWMClass --set-value yuzu --set-key - # Exec --set-value yuzu-launcher /app/share/applications/yuzu.desktop - # - >- - # install -Dm644 ../dist/yuzu.svg - # /app/share/icons/hicolor/scalable/apps/yuzu.svg - # - >- - # mv /app/share/mime/packages/yuzu.xml - # /app/share/mime/packages/org.yuzu_emu.yuzu.xml - # - >- - # sed 's/yuzu/org.yuzu_emu.yuzu/g' -i - # /app/share/mime/packages/org.yuzu_emu.yuzu.xml - # sources: - # - type: git - # url: https://github.com/yuzu-emu/yuzu-mainline.git - # tag: mainline-0-963 - # commit: 15bf148daf441e69265ea99771e0f1d327c5c10e - # disable-shallow-clone: true - # x-checker-data: - # type: git - # tag-pattern: ^(mainline-0-\d+)$ - # - type: file - # path: org.yuzu_emu.yuzu.metainfo.xml - # - type: file - # path: yuzu-launcher.sh - # - type: file - # path: compatibility_list.json - + - name: libzip + buildsystem: cmake-ninja + config-opts: + - '-DCMAKE_BUILD_TYPE=RelWithDebInfo' + sources: + - type: archive + url: https://github.com/nih-at/libzip/archive/v1.8.0.tar.gz + sha256: 83e5d6d5dbe8f9df80aad388fa523ca3558398ed440a5afda6ef9b36b0ffdc1f + 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: + - '-DFMT_TEST=OFF' + sources: + - type: archive + url: https://github.com/fmtlib/fmt/releases/download/8.1.1/fmt-8.1.1.zip + sha256: 23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d + 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.8.0.tar.gz + sha256: 9e5fbe5b844d203da5e61bcd84eda76326e0ff5dc696cb862147bbe01d2febb0 + 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_BUILD_TESTING=OFF' + builddir: true + sources: + - type: archive + url: https://github.com/catchorg/Catch2/archive/v2.13.8.tar.gz + sha256: b9b592bd743c09f13ee4bf35fc30eeee2748963184f6bea836b146e6cc2a585a + 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' + - '-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: 141453 + 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.78.0/source/boost_1_78_0.tar.bz2 + sha256: 8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc + x-checker-data: + type: anitya + project-id: 6845 + url-template: >- + https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_1_78_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=969' + - '-DBUILD_TAG=mainline-969' + - '-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 ../org.yuzu_emu.yuzu.metainfo.xml + /app/share/appdata/org.yuzu_emu.yuzu.metainfo.xml + - desktop-file-install --dir=/app/share/applications ../dist/yuzu.desktop + - >- + desktop-file-edit --set-key StartupWMClass --set-value yuzu --set-key + Exec --set-value yuzu-launcher /app/share/applications/yuzu.desktop + - >- + install -Dm644 ../dist/yuzu.svg + /app/share/icons/hicolor/scalable/apps/yuzu.svg + - >- + mv /app/share/mime/packages/yuzu.xml + /app/share/mime/packages/org.yuzu_emu.yuzu.xml + - >- + sed 's/yuzu/org.yuzu_emu.yuzu/g' -i + /app/share/mime/packages/org.yuzu_emu.yuzu.xml + sources: + - type: git + url: https://github.com/yuzu-emu/yuzu-mainline.git + tag: mainline-0-969 + commit: d179e12137cd8ff88b0eade7d13de801661f869b + disable-shallow-clone: true + x-checker-data: + type: git + tag-pattern: ^(mainline-0-\d+)$ + - type: file + path: rd-submodules/yuzu/org.yuzu_emu.yuzu.metainfo.xml + - type: file + path: rd-submodules/yuzu/yuzu-launcher.sh + - type: file + path: rd-submodules/yuzu/compatibility_list.json + # Yuzu - END + # pcsx2 - 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.5 + commit: 9c0a8be1dc32063d91ed1901fd5fcd54f4f955a1 + x-checker-data: + type: git + tag-pattern: ^v([\d.]+)$ + modules: + - shared-modules/glu/glu-9.json + - name: libaio + no-autogen: true + make-install-args: + - prefix=${FLATPAK_DEST} + sources: + - type: git + url: https://pagure.io/libaio.git + tag: libaio-0.3.112 + commit: d025927efa75a0d1b46ca3a5ef331caa2f46ee0e + 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 + post-install: + - >- + desktop-file-edit --set-key=Exec --set-value=pcsx2 + /app/share/applications/PCSX2.desktop + - >- + install -Dm644 ../AppIcon128.png + /app/share/icons/hicolor/128x128/apps/PCSX2.png + - >- + install -Dm644 ../net.pcsx2.PCSX2.metainfo.xml + /app/share/metainfo/net.pcsx2.PCSX2.metainfo.xml + sources: + - type: git + url: https://github.com/PCSX2/pcsx2.git + tag: v1.7.2554 + commit: 0d1675fbaa0d40874df98eed6270efc55620271b + - type: file + path: rd-submodules/pcsx2/net.pcsx2.PCSX2.metainfo.xml + - type: file + path: rd-submodules/pcsx2/AppIcon128.png + + # pcsx2 - END + # Ryujinx # Xemu # Rpcs3 - # pcsx2 # vita3k # dolphin # arduboy + # pocket station + # cemu - win only: wine + # Anbox? # External manifests end @@ -514,6 +666,7 @@ modules: # Tools - mkdir -p ${FLATPAK_DEST}/retrodeck/tools/ - cp start-retroarch.sh ${FLATPAK_DEST}/retrodeck/tools/ + - cp move-roms.sh ${FLATPAK_DEST}/retrodeck/tools/ - cp tools-gamelist.xml ${FLATPAK_DEST}/retrodeck/ - cp retrodeck.sh /app/bin/retrodeck.sh diff --git a/rd-submodules/pcsx2 b/rd-submodules/pcsx2 new file mode 160000 index 00000000..68a40d61 --- /dev/null +++ b/rd-submodules/pcsx2 @@ -0,0 +1 @@ +Subproject commit 68a40d61b37b6f9c9033dc93d426570b86938e3f diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch new file mode 160000 index 00000000..bcd152ba --- /dev/null +++ b/rd-submodules/retroarch @@ -0,0 +1 @@ +Subproject commit bcd152baf434eea464b9e58e48078ff674c13886 diff --git a/rd-submodules/yuzu b/rd-submodules/yuzu new file mode 160000 index 00000000..c2395647 --- /dev/null +++ b/rd-submodules/yuzu @@ -0,0 +1 @@ +Subproject commit c23956479d76c12b559316cfd30755eef5e09902 diff --git a/retrodeck.sh b/retrodeck.sh old mode 100644 new mode 100755 index dadd3c21..de186d2e --- a/retrodeck.sh +++ b/retrodeck.sh @@ -22,20 +22,20 @@ then if is_mounted "/run/media/mmcblk0p1" then roms_folder=/run/media/mmcblk0p1/retrodeck/roms - mkdir -p /run/media/mmcblk0p1/retrodeck/ else kdialog --title "RetroDECK" --error "SD Card is not readable, please check if it inserted or mounted correctly and run RetroDECK again." exit 0 fi fi + mkdir -p $roms_folder + # initializing ES-DE mkdir -p /var/config/retrodeck/tools # Cleaning rm -rf /var/config/emulationstation/ - rm ~/retrodeck/bios rm /var/config/retrodeck/tools/* kdialog --title "RetroDECK" --msgbox "EmulationStation will now initialize the system, please don't edit the roms location, just select:\n\nCREATE DIRECTORIES, YES, QUIT\n\nRetroDECK will manage the rest." @@ -46,9 +46,9 @@ then kdialog --title "RetroDECK" --msgbox "RetroDECK will now install the needed files, please wait one minute, another message will notify when the process will be finished.\n\nPress OK to continue." - mv /var/config/emulationstation/ROMs /var/config/emulationstation/ROMs.bak + mv -f /var/config/emulationstation/ROMs /var/config/emulationstation/ROMs.bak ln -s $roms_folder /var/config/emulationstation/ROMs - mv /var/config/emulationstation/ROMs.bak $roms_folder + mv -f /var/config/emulationstation/ROMs.bak/* $roms_folder/ # XMLSTARLET HERE cp /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml @@ -56,15 +56,17 @@ then mkdir -p ~/retrodeck/saves mkdir -p ~/retrodeck/states mkdir -p ~/retrodeck/screenshots + mkdir -p ~/retrodeck/bios + mkdir -p /var/config/retroarch/ - cp -r /app/retrodeck/tools/* /var/config/retrodeck/tools + cp -r /app/retrodeck/tools/* /var/config/retrodeck/tools/ - mkdir -p /var/config/retroarch/system - ln -s ~/.var/app/com.xargon.retrodeck/config/retroarch/system ~/retrodeck/bios + rm -rf /var/config/retroarch/system + ln -s ~/retrodeck/bios /var/config/retroarch/system cp /app/retrodeck/retrodeck-retroarch.cfg /var/config/retroarch/retroarch.cfg - mkdir -p /var/config/emulationstation/.emulationstation/gamelists/tools/ + mkdir -p /var/config/emulationstation/.emulationstation/custom_systems/tools/ cp /app/retrodeck/tools-gamelist.xml /var/config/emulationstation/.emulationstation/custom_systems/tools/gamelist.xml mkdir -p /var/config/retroarch/cores/ @@ -72,7 +74,7 @@ then touch ~/retrodeck/.lock - kdialog --title "RetroDECK" --msgbox "Initialization completed, please put your roms in: $roms_folder.\nIf you wish to change the roms location you may use the tool located the tools section of RetroDECK (coming soon)." + kdialog --title "RetroDECK" --msgbox "Initialization completed.\nplease put your roms in:\n\n$roms_folder\n\nand your bioses in\n\n~/retrodeck/bios\n\nThen start the program again.\nIf you wish to change the roms location, you may use the tool located the tools section of RetroDECK.\n\nIt's suggested to add RetroDECK to your Steam Library for a quick access." else emulationstation --home /var/config/emulationstation fi diff --git a/tools-gamelist.xml b/tools-gamelist.xml index 99e1e1f5..3c867b28 100644 --- a/tools-gamelist.xml +++ b/tools-gamelist.xml @@ -5,10 +5,14 @@ Start RetroArch RetroArch Start RetroArch to manually tweak your settings. - 20100525T000000 - Libretro - Libretro - Emulator + true + true + + + ./move-roms.sh + Move roms folder + Move roms folder + Move roms folder from internal to external and vice versa. true true diff --git a/tools/move-roms.sh b/tools/move-roms.sh new file mode 100644 index 00000000..6128ab9a --- /dev/null +++ b/tools/move-roms.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +if [ -d ~/retrodeck/roms ] && [ -d ~/retrodeck/roms ] +then # found both internal and sd folders + kdialog --title "RetroDECK" --warning "I found a roms folder both in internal and SD Card, in order to make this tool useful you should remove one of the two." + exit 0 +fi + +if [ -d ~/retrodeck/roms ] && [ ! -d /run/media/mmcblk0p1/retrodeck/roms ] +then # found internal folder and not the external + roms_path=~/retrodeck + new_roms_path=/run/media/mmcblk0p1/retrodeck +fi + +if [ ! -d ~/retrodeck/roms ] && [ -d /run/media/mmcblk0p1/retrodeck/roms ] +then # found external folder and not the internal + roms_path=/run/media/mmcblk0p1/retrodeck + new_roms_path=~/retrodeck +fi + +mkdir -p $new_roms_path +mv -f $roms_path/roms $new_roms_path/roms +rm -f /var/config/emulationstation/ROMs +ln -s $new_roms_path/roms /var/config/emulationstation/ROMs +rm -f $roms_path/roms diff --git a/tools/start-retroarch.sh b/tools/start-retroarch.sh index 11de5e1a..621a1b24 100644 --- a/tools/start-retroarch.sh +++ b/tools/start-retroarch.sh @@ -1,5 +1,5 @@ #!/bin/bash -kdialog --title "RetroDECK" --warningyesno "Doing some changes in the RetroArch configuration may create serious issues, please continue only if you know what you're doing. Are you sure do you want to continue?" +kdialog --title "RetroDECK" --warningyesno "Doing some changes in the RetroArch configuration may create serious issues, please continue only if you know what you're doing.\n\nDo you want to continue?" if [ $? == 0 ]; then retroarch \ No newline at end of file