diff --git a/.github/workflows/cooker.yml b/.github/workflows/cooker.yml index 974e0651..b15b8d70 100644 --- a/.github/workflows/cooker.yml +++ b/.github/workflows/cooker.yml @@ -37,7 +37,6 @@ jobs: 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 org.freedesktop.Sdk.Extension.llvm13 - # Runs a set of commands using the runners shell - name: Building flatpak run: | sudo flatpak-builder --user --install --force-clean --repo=local retrodeck-flatpak com.xargon.retrodeck.yml @@ -47,10 +46,15 @@ jobs: id: date run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M')" + - name: Extract branch name + shell: bash + run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" + id: extract_branch + - name: Publish the flatpak in a new cooker release uses: ncipollo/release-action@v1 with: - tag: "${{ steps.date.outputs.date }}" + tag: "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}" body: | # Release Notes (Cooker) This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}. diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..765bfe6e --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +# OS generated files # +###################### +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# RetroDECK specific files # +############################ +.flatpak-builder/ +retrodeck-flatpak-cooker/ +retrodeck-flatpak/ diff --git a/com.xargon.retrodeck.yml b/com.xargon.retrodeck.yml index fd98787a..9f693154 100644 --- a/com.xargon.retrodeck.yml +++ b/com.xargon.retrodeck.yml @@ -676,104 +676,7 @@ modules: # Dolphin - END - # RPCS3 - START - # https://github.com/flathub/net.rpcs3.RPCS3 - # Disabled because of this error: - # https://github.com/flathub/net.rpcs3.RPCS3/issues/854 - - # - 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; - # 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 - # commit: d6b026314409980734605e9275950f835f04e8df - - # RPCS3 - END - # XEMU - START - # https://github.com/flathub/app.xemu.xemu - # Disabled because of this: https://github.com/XargonWan/RetroDECK/runs/6033071862?check_suite_focus=true - name: libglu buildsystem: meson @@ -830,130 +733,6 @@ modules: # XEMU - END - # Ryujinx - START - - # - name: Ryujinx - # buildsystem: simple - # build-options: - # append-path: /usr/lib/sdk/dotnet6/bin - # append-ld-library-path: /usr/lib/sdk/dotnet6/lib - # arch: - # x86_64: - # env: - # RUNTIME: linux-x64 - # env: - # PKG_CONFIG_PATH: /app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/usr/lib/sdk/dotnet6/lib/pkgconfig - # DOTNET_CLI_TELEMETRY_OPTOUT: 'true' - # DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true' - # RYUJINX_VERSION: 1.1.102 - # RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: flathub - # RYUJINX_TARGET_RELEASE_CHANNEL_REPO: org.ryujinx.Ryujinx - # RYUJINX_TARGET_RELEASE_CHANNEL_NAME: master - # build-commands: - # - | - # export RYUJINX_GIT_SHORT_HASH=$(git rev-parse --short HEAD) - # sed -r --in-place "s/\%\%RYUJINX_BUILD_VERSION\%\%/$RYUJINX_VERSION/g;" Ryujinx.Common/ReleaseInformations.cs - # sed -r --in-place "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$RYUJINX_GIT_SHORT_HASH/g;" Ryujinx.Common/ReleaseInformations.cs - # sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_NAME/g;" Ryujinx.Common/ReleaseInformations.cs - # sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_OWNER/g;" Ryujinx.Common/ReleaseInformations.cs - # sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_REPO/g;" Ryujinx.Common/ReleaseInformations.cs - # mkdir -p /app/bin - # dotnet publish -c Release -r $RUNTIME /p:DebugType=embedded Ryujinx /p:Version=$RYUJINX_VERSION /p:SourceRevisionId=$RYUJINX_GIT_SHORT_HASH /p:ExtraDefineConstants=DISABLE_UPDATER --self-contained --source nuget-sources - # if [ $? -ne 0 ]; then - # exit 1; - # fi; - # cp -r --remove-destination /run/build/Ryujinx/Ryujinx/bin/Release/net6.0/$RUNTIME/publish/* /app/bin/ - # mkdir -p /app/lib/ffmpeg - # ln -s /usr/lib/x86_64-linux-gnu/libX11.so.6 /app/lib/libX11.so - # install -Dm644 $FLATPAK_ID.appdata.xml /app/share/metainfo/$FLATPAK_ID.appdata.xml - # install -Dm755 ryujinx-wrapper /app/bin/ryujinx-wrapper - # install -Dm644 distribution/linux/ryujinx-logo.svg /app/share/icons/hicolor/scalable/apps/ryujinx.svg - # install -Dm644 distribution/linux/ryujinx-mime.xml /app/share/mime/packages/$FLATPAK_ID.mime.xml - # install -Dm644 distribution/linux/ryujinx.desktop /app/share/applications/$FLATPAK_ID.desktop - # desktop-file-edit --set-key="Exec" --set-value="ryujinx-wrapper %f" /app/share/applications/$FLATPAK_ID.desktop - # sources: - # - nuget_sources.json - # - type: git - # url: https://github.com/Ryujinx/Ryujinx.git - # commit: 247d26b4b50df8a068b9bfbb412a29f0c9f6a97b - # - type: file - # path: ryujinx-wrapper - # - type: file - # path: org.ryujinx.Ryujinx.appdata.xml - - # Ryujinx - 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' - # - '-DENABLE_FDK=ON' - # build-options: - # env: - # CI: '1' - # GITHUB_ACTIONS: '1' - # GITHUB_REPOSITORY: citra-emu/citra-nightly - # GIT_TAG_NAME: nightly-1759 - # cleanup: - # - /share/man - # - /share/pixmaps - # post-install: - # - >- - # install -Dm644 ../org.citra_emu.citra.metainfo.xml - # /app/share/appdata/org.citra_emu.citra.metainfo.xml - # - desktop-file-install --dir=/app/share/applications ../dist/citra.desktop - # - echo 'StartupWMClass=citra-qt' >> /app/share/applications/citra.desktop - # - >- - # 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 - # - >- - # mv /app/share/mime/packages/citra.xml - # /app/share/mime/packages/org.citra_emu.citra.xml - # - >- - # sed 's/citra/org.citra_emu.citra/g' -i - # /app/share/mime/packages/org.citra_emu.citra.xml - # sources: - # - type: git - # url: 'https://github.com/citra-emu/citra-nightly.git' - # tag: nightly-1759 - # commit: 3df43f9505505fbe2abb543c795f791615541cd4 - # disable-shallow-clone: true - # x-checker-data: - # type: git - # tag-pattern: ^(nightly-\d+)$ - # is-main-source: true - # - type: file - # path: rd-submodules/citra/org.citra_emu.citra.metainfo.xml - # - type: file - # path: rd-submodules/citra/compatibility_list.json - # dest-filename: compatibility_list.json - # - type: shell - # commands: - # - >- - # cp -v compatibility_list.json - # dist/compatibility_list/compatibility_list.json - - # CITRA - END - - - # vita3k - # arduboy - # pocket station - # cemu - win only: wine - # Anbox? - - # External manifests end @@ -985,13 +764,17 @@ modules: - cp retrodeck.sh /app/bin/retrodeck.sh - chmod +x /app/bin/retrodeck.sh - # Yuzu - - mkdir -p ${FLATPAK_DEST}/retrodeck/emu-configs - - cp qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs # Desktop entry - cp com.xargon.retrodeck.desktop /app/share/applications/com.xargon.retrodeck.desktop + # Configuring emulators: + - mkdir -p ${FLATPAK_DEST}/retrodeck/emu-configs + # Dolphin + - cp Dolphin.ini ${FLATPAK_DEST}/retrodeck/emu-configs + # Yuzu + - cp qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs + #cleanup: ['*'] sources: - type: file diff --git a/emu-configs/Dolphin.ini b/emu-configs/Dolphin.ini new file mode 100644 index 00000000..f7213f93 --- /dev/null +++ b/emu-configs/Dolphin.ini @@ -0,0 +1,28 @@ +[Analytics] +ID = 09426e1e3e44d72728fb46a9e4a54663 +PermissionAsked = True +[Core] +GFXBackend = Vulkan +SelectedLanguage = 0 +SerialPort1 = 255 +SkipIPL = True +SlotA = 8 +SlotB = 255 +[Display] +Fullscreen = True +[GBA] +BIOS = ~/retrodeck/bios/gba_bios.bin +Rom1 = +Rom2 = +Rom3 = +Rom4 = +SavesInRomPath = False +SavesPath = ~/retrodeck/saves/dolphin-emu/GBA/Saves/ +Threads = True +[General] +ISOPath0 = /run/user/1000/doc/9cd3cde7/wii +ISOPath1 = /run/user/1000/doc/14708e0c/gc +ISOPaths = 2 +WiiSDCardPath = ~/retrodeck/saves/dolphin-emu/Wii/sd.raw +[NetPlay] +TraversalChoice = direct diff --git a/retrodeck.sh b/retrodeck.sh index 3a603d87..f34a2057 100755 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -74,6 +74,8 @@ then mkdir -p /var/config/retroarch/cores/ cp /app/share/libretro/cores/* /var/config/retroarch/cores/ + # Initializing standalone emulators configs + # Yuzu mkdir -p ~/retrodeck/bios/switch/ mkdir -p /var/config/yuzu/keys @@ -82,6 +84,11 @@ then ln -s /var/data/yuzu/registered ~/retrodeck/bios/switch/registered cp /var/config/retroarch/emu-configs/qt-config.ini /var/config/yuzu/qt-config.ini + # Dolphin + mkdir -p /var/config/dolphin-emu/ + cp /var/config/retroarch/emu-configs/Dolphin.ini /var/config/dolphin-emu/Dolphin.ini + + # Locking RetroDECK touch ~/retrodeck/.lock 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."