diff --git a/.github/workflows/cooker-selfhosted-persistent.yml b/.github/workflows/cooker-selfhosted-persistent.yml new file mode 100644 index 00000000..dced323f --- /dev/null +++ b/.github/workflows/cooker-selfhosted-persistent.yml @@ -0,0 +1,152 @@ +name: "Build cooker (persistent)" + +env: + PERSISTENCE: true + +on: + push: + branches: + - cooker* + - feat* + paths: + - '.github/workflows/**' + - 'automation_tools/**' + - 'emu-configs/**' + - 'es-configs/**' + - 'functions/**' + - 'rd-submodules/**' + - '*.sh' + - 'net.retrodeck.retrodeck.yml' + - 'net.retrodeck.retrodeck.appdata.xml' + pull_request: + branches: + - cooker* + + workflow_dispatch: + +jobs: + + Building_RetroDECK: + runs-on: self-hosted + steps: + + # Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317 + - name: Remove stuck mounts + run: sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/* + continue-on-error: true + + - name: Clone RetroDECK repo + uses: actions/checkout@v3 + with: + submodules: 'true' + + - name: "Install dependencies" + run: "automation_tools/install_dependencies.sh" + + - name: Generate cooker build ID + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_build_id.sh" + + # backing up manifest in case download fails and hashes must be recalculated + - name: Manifest backup + run: "cp ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" + + - name: Run pre-build automation tasks + run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" + + - name: "Adding flatpak portal for automated updates (cooker only)" + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_flatpak_portal_add.sh" + + - name: "Updating release notes in appdata" + run: "automation_tools/appdata_management.sh" + + - name: "[DEBUG] Outputting manifest" + run: cat net.retrodeck.retrodeck.yml + + - name: "Build flatpak: download only" + id: "flatpak-download" + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only_persistent.sh" + continue-on-error: true + + # Sometimes flatpak download fails, in this case it tries a second time + - name: "Build flatpak: download only (retry)" + if: steps.flatpak-download.outcome == 'failure' + run: | + echo "Download failed, maybe some hash changed since the build start." + echo "Recalculating hashes and retrying download..." + rm -f "{GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" + cp "${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" "${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" + "${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" + "${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only_persistent.sh" + + - name: Build flatpak + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only_persistent.sh" + + - name: Create Artifact for flathub + run: | + tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker . + hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz)) + echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha + mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }} + continue-on-error: true + + - name: Create Bundle + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle_persistent.sh" + + - name: Set environment variable with current branch name + run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV + + - name: Get commits since last release + run: | + # Get the latest release tag + LATEST_TAG=$(git describe --tags --abbrev=0) + # Get all commits since the latest release tag + COMMITS=$(git log $LATEST_TAG..HEAD --pretty=format:"- %s") + # Set the output variable + echo "::set-output name=commits::$COMMITS" + id: commits + continue-on-error: true + + - name: Get branch name + id: branch_name + run: echo "BRANCH_NAME=$(echo $GITHUB_REF | sed 's|refs/heads/||')" >> $GITHUB_ENV + + # if it's a feature branch it will not marked as "latest" cooker version + - name: "Set makeLatest (cooker only)" + run: | + if [[ "$BRANCH_NAME" == 'feat/'* ]]; then + echo "MAKE_LATEST=false" >> $GITHUB_ENV + else + echo "MAKE_LATEST=true" >> $GITHUB_ENV + fi + + - name: Publish the flatpak in a new cooker release + uses: ncipollo/release-action@v1 + with: + tag: "${{env.BRANCH_NAME}}-${{ env.buildid }}" + body: | + # Release Notes (Cooker) + This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}. + On branch [${{env.BRANCH_NAME}}](https://github.com/XargonWan/RetroDECK/tree/${{env.BRANCH_NAME}}). + + ## Commits since last release + ${{ steps.commits.outputs.commits }} + + For the full release note for this build please refer to the channel [#BETA-TESTING](https://discord.gg/qQcrFvaA2C) on our Discord server. + + 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. + + artifacts: "RetroDECK-cooker.flatpak,RetroDECK-Artifact.tar.gz" + allowUpdates: true + makeLatest: ${{env.MAKE_LATEST}} # if it's a feat branch is not considered the latest build + token: ${{ secrets.TRIGGER_BUILD_TOKEN }} + repo: RetroDECK-cooker + continue-on-error: true + + # In case it cannot publish the release at least it's providing the flatpak file for creating a manual release + - name: Upload RetroDECK-cooker.flatpak + uses: actions/upload-artifact@v3 + with: + name: retrodeck-flatpak + path: RetroDECK-cooker.flatpak + continue-on-error: true diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml index 3bfc2c23..43d086c9 100644 --- a/.github/workflows/cooker-selfhosted.yml +++ b/.github/workflows/cooker-selfhosted.yml @@ -1,23 +1,28 @@ name: "Build cooker" on: - push: - branches: - - cooker* - - feat* - paths: - - '.github/workflows/**' - - 'automation_tools/**' - - 'emu-configs/**' - - 'es-configs/**' - - 'functions/**' - - 'rd-submodules/**' - - '*.sh' - - 'net.retrodeck.retrodeck.yml' - - 'net.retrodeck.retrodeck.appdata.xml' - pull_request: - branches: - - cooker* + # push: + # branches: + # - cooker* + # - feat* + # paths: + # - '.github/workflows/**' + # - 'automation_tools/**' + # - 'emu-configs/**' + # - 'es-configs/**' + # - 'functions/**' + # - 'rd-submodules/**' + # - '*.sh' + # - 'net.retrodeck.retrodeck.yml' + # - 'net.retrodeck.retrodeck.appdata.xml' + # pull_request: + # branches: + # - cooker* + + # Italy (CET): 11:00 PM + # Japan (JST): 7:00 AM + schedule: + - cron: '0 22 * * *' workflow_dispatch: @@ -42,15 +47,11 @@ jobs: run: "automation_tools/install_dependencies.sh" - name: Generate cooker build ID - run: | - word1=$(shuf -n 1 ${GITHUB_WORKSPACE}/automation_tools/codename_wordlist.txt) - capitalized_word1="$(tr '[:lower:]' '[:upper:]' <<< ${word1:0:1})${word1:1}" - word2=$(shuf -n 1 ${GITHUB_WORKSPACE}/automation_tools/codename_wordlist.txt) - capitalized_word2="$(tr '[:lower:]' '[:upper:]' <<< ${word2:0:1})${word2:1}" - result=$capitalized_word1$capitalized_word2 - echo $result > ${GITHUB_WORKSPACE}/buildid - echo "buildid=$result" >> $GITHUB_ENV - echo "VersionID is $result" + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_build_id.sh" + + # backing up manifest in case download fails and hashes must be recalculated + - name: Manifest backup + run: "cp ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" - name: Run pre-build automation tasks run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" @@ -72,7 +73,13 @@ jobs: # Sometimes flatpak download fails, in this case it tries a second time - name: "Build flatpak: download only (retry)" if: steps.flatpak-download.outcome == 'failure' - run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" + run: | + echo "Download failed, maybe some hash changed since the build start." + echo "Recalculating hashes and retrying download..." + rm -f "{GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" + cp "${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" "${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" + "${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" + "${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" - name: Build flatpak run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh" diff --git a/.github/workflows/main-selfhosted.yml b/.github/workflows/main-selfhosted.yml index b71961c6..2618d7ba 100644 --- a/.github/workflows/main-selfhosted.yml +++ b/.github/workflows/main-selfhosted.yml @@ -40,6 +40,10 @@ jobs: - name: "Install dependencies" run: "automation_tools/install_dependencies.sh" + # backing up manifest in case download fails and hashes must be recalculated + - name: Manifest backup + run: "cp ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" + - name: Run pre-build automation tasks run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" @@ -65,7 +69,13 @@ jobs: # Sometimes flatpak download fails, in this case it tries a second time - name: "Build flatpak: download only (retry)" if: steps.flatpak-download.outcome == 'failure' - run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" + run: | + echo "Download failed, maybe some hash changed since the build start." + echo "Recalculating hashes and retrying download..." + rm -f "{GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" + cp "${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" "${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" + "${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" + "${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" - name: Build flatpak run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh" @@ -76,7 +86,6 @@ jobs: hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz)) echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact.sha mv -f RetroDECK-Artifact.* ${{ secrets.ARTIFACT_REPO }} - continue-on-error: true - name: Create Bundle run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh" diff --git a/.github/workflows/removed/cooker.yml b/.github/workflows/removed/cooker.yml index ff8330e3..3fe7c469 100644 --- a/.github/workflows/removed/cooker.yml +++ b/.github/workflows/removed/cooker.yml @@ -68,7 +68,7 @@ jobs: - name: Buld part 1 - Until melonds run: | - sudo flatpak-builder --build-only --stop-at=melonds --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml + sudo flatpak-builder --build-only --stop-at=melonds --user --force-clean --repo=${GITHUB_WORKSPACE}/.local retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml - name: Compress cache run: | @@ -140,8 +140,8 @@ jobs: - name: Create Bundle run: | - sudo flatpak-builder --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml - sudo flatpak build-bundle $GITHUB_WORKSPACE/local RetroDECK.flatpak net.retrodeck.retrodeck + sudo flatpak-builder --user --force-clean --repo=${GITHUB_WORKSPACE}/.local retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml + sudo flatpak build-bundle $GITHUB_WORKSPACE/.local RetroDECK.flatpak net.retrodeck.retrodeck - name: Get date for artifacts id: date diff --git a/.github/workflows/removed/main.yml b/.github/workflows/removed/main.yml index 0404e018..25396232 100644 --- a/.github/workflows/removed/main.yml +++ b/.github/workflows/removed/main.yml @@ -69,7 +69,7 @@ jobs: - name: Buld part 1 - Until melonds run: | - sudo flatpak-builder --build-only --stop-at=melonds --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-main net.retrodeck.retrodeck.yml + sudo flatpak-builder --build-only --stop-at=melonds --user --force-clean --repo=${GITHUB_WORKSPACE}/.local retrodeck-flatpak-main net.retrodeck.retrodeck.yml - name: Compress cache run: | @@ -141,8 +141,8 @@ jobs: - name: Create Bundle run: | - sudo flatpak-builder --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-main net.retrodeck.retrodeck.yml - sudo flatpak build-bundle $GITHUB_WORKSPACE/local RetroDECK.flatpak net.retrodeck.retrodeck + sudo flatpak-builder --user --force-clean --repo=${GITHUB_WORKSPACE}/.local retrodeck-flatpak-main net.retrodeck.retrodeck.yml + sudo flatpak build-bundle $GITHUB_WORKSPACE/.local RetroDECK.flatpak net.retrodeck.retrodeck - name: Read version from version file id: version diff --git a/.github/workflows/submodule-update.yml b/.github/workflows/submodule-update.yml index af02cfd7..03ab876b 100644 --- a/.github/workflows/submodule-update.yml +++ b/.github/workflows/submodule-update.yml @@ -2,8 +2,8 @@ name: Sunday Submodule Update on: # At 4:00 (CET) - schedule: - - cron: '0 2 * * 0' + # schedule: + # - cron: '0 2 * * 0' workflow_dispatch: jobs: diff --git a/.gitignore b/.gitignore index a5336e4e..fb057393 100644 --- a/.gitignore +++ b/.gitignore @@ -17,7 +17,17 @@ backup .old tmp .godot +.local/ +buildid +*.bak # Python # ########## __pycache__ + +# Submodules # +############## +rd-submodules/retroarch* +rd-submodules/ryujinx* +rd-submodules/shared-modules* +rd-submodules/es-de/patches-tmp* \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 038a6d59..6bcd59f5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,9 @@ -[submodule "rd-submodules/retroarch"] - path = rd-submodules/retroarch - url = https://github.com/flathub/org.libretro.RetroArch [submodule "rd-submodules/shared-modules"] path = rd-submodules/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/ryujinx"] path = rd-submodules/ryujinx url = https://github.com/flathub/org.ryujinx.Ryujinx diff --git a/.readthedocs.yaml b/.readthedocs.yaml deleted file mode 100644 index 5bf1fa68..00000000 --- a/.readthedocs.yaml +++ /dev/null @@ -1,31 +0,0 @@ -# Read the Docs configuration file -# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details - -# Required -version: 2 - -# Set the OS, Python version and other tools you might need -build: - os: ubuntu-22.04 - tools: - python: "3.11" - # You can also specify other tool versions: - # nodejs: "19" - # rust: "1.64" - # golang: "1.19" - -# Build documentation in the "docs/" directory with Sphinx -sphinx: - configuration: wiki-rtd/conf.py - -# Optionally build your docs in additional formats such as PDF and ePub -formats: - - pdf - - epub - -# Optional but recommended, declare the Python requirements required -# to build your documentation -# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html -python: - install: - - requirements: wiki-rtd/requirements.txt \ No newline at end of file diff --git a/README.md b/README.md index d3db6cd5..671a783d 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,6 @@ RetroDECK logo

-![Flathub](https://img.shields.io/flathub/downloads/net.retrodeck.retrodeck) -![Flathub](https://img.shields.io/flathub/v/net.retrodeck.retrodeck) -![Discord](https://img.shields.io/discord/951662718102962256?label=discord) -![GitHub](https://img.shields.io/github/license/XargonWan/RetroDECK) -[![Documentation Status](https://readthedocs.org/projects/retrodeck/badge/?version=latest)](https://retrodeck.readthedocs.io/en/latest/?badge=latest) - - # RetroDECK on your device!

@@ -19,35 +12,34 @@


-## What is RetroDECK? -RetroDECK is a [EmulationStation Desktop Edition](https://es-de.org) powered application that builds in a variety of emulators and other software that allows you to play your favorite retro (and even not-so-retro) games in a tidy contained flatpak sandbox environment. It's inspired by embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera. +![Flathub](https://img.shields.io/flathub/downloads/net.retrodeck.retrodeck) +![Flathub](https://img.shields.io/flathub/v/net.retrodeck.retrodeck) +![Discord](https://img.shields.io/discord/951662718102962256?label=discord) +![GitHub](https://img.shields.io/github/license/XargonWan/RetroDECK) +[![Documentation Status](https://readthedocs.org/projects/retrodeck/badge/?version=latest)](https://retrodeck.readthedocs.io/en/latest/?badge=latest) -You can also check out our: [Flathub Page](https://flathub.org/apps/net.retrodeck.retrodeck)
+# What is RetroDECK? +Instead of having several different software on your system for a variety of emulators and frontends you only need to have one: RetroDECK. -## What devices/systems does RetroDECK support: +RetroDECK is a [EmulationStation Desktop Edition](https://es-de.org) (ES-DE) powered flatpak application that builds in a variety of emulators and other software that allows you to play your favorite retro (and even not-so-retro) games in one complete package. -### Steam Deck +It's inspired by embedded emulation systems like: -Supported from the start and RetroDECK is tailored to the Steam Deck during the beta period. The goal is that all the configurations are ready out-of-the-box and optimized towards the Steam Deck. +- AmberELEC +- EmuELEC +- CoreELEC +- Lakka +- Batocera -### Linux Desktop -Technically it is working, but the user experience might not be that great it could contain desktop specific bugs and other issues. -You will also need to manually configure the input to match your desktop and might need to tweak more settings. If you want to try it make sure that your distribution has flatpak support (else you will need to install it).
-We will start to have a bigger desktop focus after the beta period is over. +The RetroDECK team consists of several veterans from some of the projects mentioned above as well as a bunch of other talented individuals. -### Other SteamOS or Linux handheld gaming devices with flatpak support -We do plan to support other SteamOS based devices in the future. But during the BETA we are focusing on the Steam Deck.
-You can get it to run on other Linux based devices it is not just as seamless as we want it to be and does not live up to our higher standards.
-You will need to manually configure the input to match your device and might need to tweak more settings if you try it on a none Steam Deck device. There might also be some hardware specific bugs. +RetroDECK also adds the `RetroDECK Framework` and the `RetroDECK Configurator` on top of the emulators and ES-DE frontend that allows deeper integrations between emulators and easier exposure to a variety of features that you otherwise need to set per emulator basis to create a uniformity between them. +For our long term vision you can check out the following wiki page: -## Do you have any plans for other systems? -RetroDECK does not have plans to support Windows, macOS, Android, or iOS.
For similar functionality on Windows you could explore [Retrobat](https://www.retrobat.org/) as an alternative. +[RetroDECK: Visions and Goals](https://github.com/XargonWan/RetroDECK/wiki/RetroDECK%3A-Visions-and-Goals) -## How do I install RetroDECK? -Read and follow the guide here: [Installation instructions](https://github.com/XargonWan/RetroDECK/wiki/How-to:-Getting-started) on the Wiki - -## The RetroDECK community: +### The RetroDECK community: [Website](https://retrodeck.net)
[Wiki](https://github.com/XargonWan/RetroDECK/wiki)
@@ -55,24 +47,54 @@ Read and follow the guide here: [Installation instructions](https://github.com/X [Lemmy](https://lemmy.zip/c/retrodeck)
[Subreddit](https://www.reddit.com/r/retrodeck) +# How do I start using RetroDECK? -# Short FAQ +We have an in depth How To on how to get started over here: -Please read the [Wiki](https://github.com/XargonWan/RetroDECK/wiki) for even more information. +[How to: Start using RetroDECK](https://github.com/XargonWan/RetroDECK/wiki/How-to%3A-Start-using-RetroDECK) + +## What devices/systems does RetroDECK support: + +RetroDECK currently supports: + +- Steam Deck +- Linux Desktop + +For more information read up here: + +[Supported Systems](https://github.com/XargonWan/RetroDECK/wiki/RetroDECK%3A-Supported-Systems) + + +## Is RetroDECK in Beta? +Yes, here you can read more about the beta period: + +[RetroDECK: Beta period](https://github.com/XargonWan/RetroDECK/wiki/RetroDECK%3A-Beta-period) -## Do I have to partition or format my disk/sdcard to install it? -No, partitioning or formatting is not needed at all. RetroDECK (differently from AmberELEC, Batocera and others) comes as a flatpak. Just install it as any other application and launch it from your desktop and/or Steam library. ## Can I contribute to the project? -Yes! Everybody is welcome to contribute in any way possible if it is personal time or funds, just check out our [Discord](https://discord.gg/Dz3szYsP8g)! -- Do you know how to code and want to contribute? Please join the development team! -- Maybe you know graphics, art or UI & UX design? Join the discussion! -- You can just help by helping others in the support or guide people on various social media and communication platforms. -- You can also help by just finding and testing the best configurations for the emulators and the roms. -- Or just help us by doing bug reports on all the issues you find (please check old issues first before submitting a new one). -- By joining the ✨-new-helpers-start-here channel on [Discord](https://discord.gg/Mv3GZnwrE8) and keeping an eye on the [issues](https://github.com/XargonWan/RetroDECK/issues) tab as well as the [Roadmap](https://github.com/XargonWan/RetroDECK/milestones) tab, you can be up to speed on the latest developments on RetroDECK. -- We have a [Patreon](https://www.patreon.com/RetroDECK) page if you want to help us keep our build servers running or just buy us a beverage -###### The Steam Deck logo is a registered trademark of Valve Corporation. This project is in no way officially affiliated with Valve.
+Yes, off course!
+Read up here on how to help out, there is something for everyone: -###### All trademarks, logos and brand names are the property of their respective owners. All company, product and service names used in this project are for identification purposes only. Use of these names, trademarks and brands does not imply endorsement. +[How to: Contribute to RetroDECK](https://github.com/XargonWan/RetroDECK/wiki/How-to%3A-Contribute-to-RetroDECK) + +## Our repositories: +| Name | Description | +|-------------------------------------------------------------|-----------------------------------------------------------| +| [RetroDECK](https://github.com/XargonWan/RetroDECK) | This one, our main repo where the core of the project is | +| [RetroDECK-cooker](https://github.com/XargonWan/RetroDECK-cooker) | Where we publish our test build, no code is hosted here | +| [RetroDECK-Wiki](https://github.com/XargonWan/RetroDECK-Wiki) | Where our wiki source code is | +| [RetroDECK on Flathub](https://github.com/flathub/net.retrodeck.retrodeck) | Our little space in Flathub's organization | +| [RetroDECK-MAME](https://github.com/XargonWan/RetroDECK-MAME) | MAME is big to build, so it's pre-built here and then imported in the build | +| [RetroDECK-ES-DE](https://github.com/XargonWan/RetroDECK-ES-DE) | This is where we store our patched fork of ES-DE | + + +# The RetroDECK Wiki + +Please check out the [Wiki](https://github.com/XargonWan/RetroDECK/wiki) for even more information. + +## The FAQ +The RetroDECK [FAQ](https://github.com/XargonWan/RetroDECK/wiki/FAQs%3A-Frequently-asked-questions) on the wiki has a vast variety of questions and awnsers. + +# How to get support? +Use the supports channels on [Discord](https://discord.gg/Dz3szYsP8g). diff --git a/automation_tools/automation_task_list.cfg b/automation_tools/automation_task_list.cfg index ebf7d98f..2bcac447 100644 --- a/automation_tools/automation_task_list.cfg +++ b/automation_tools/automation_task_list.cfg @@ -1,12 +1,14 @@ # The proper format for this file is # ACTION^PLACEHOLDERTEXT^URL^REPO(Optional) # hash^DOOMSHAPLACEHOLDER^https://buildbot.libretro.com/assets/cores/DOOM/Doom%20%28Shareware%29.zip -hash^VITASHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip hash^DUCKSTATIONSHAPLACEHOLDER^https://github.com/stenzek/duckstation/releases/download/preview/DuckStation-x64.AppImage hash^SAMEDUCKSHAPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/latest/sameduck_libretro.so.zip hash^PPSSPPBIOSHASHPLACEHOLDER^https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip hash^MSXBIOSHASHPLACEHOLDER^http://bluemsx.msxblue.com/rel_download/blueMSXv282full.zip hash^XEMUHDDHASHPLACEHOLDER^https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip +hash^VITA3KSHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip +hash^RANIGHTLYCORESPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch_cores.7z +#hash^RETRODECKMAMEPLACEHOLDER^ latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main outside_info^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid branch^THISBRANCH diff --git a/automation_tools/cooker_build_id.sh b/automation_tools/cooker_build_id.sh new file mode 100644 index 00000000..ff4c8119 --- /dev/null +++ b/automation_tools/cooker_build_id.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +word1=$(shuf -n 1 ${GITHUB_WORKSPACE}/automation_tools/codename_wordlist.txt) +capitalized_word1="$(tr '[:lower:]' '[:upper:]' <<< ${word1:0:1})${word1:1}" +word2=$(shuf -n 1 ${GITHUB_WORKSPACE}/automation_tools/codename_wordlist.txt) +capitalized_word2="$(tr '[:lower:]' '[:upper:]' <<< ${word2:0:1})${word2:1}" +result=$capitalized_word1$capitalized_word2 +echo $result > ${GITHUB_WORKSPACE}/buildid +echo "buildid=$result" >> $GITHUB_ENV +echo "VersionID is $result" \ No newline at end of file diff --git a/automation_tools/flatpak_build_bundle.sh b/automation_tools/flatpak_build_bundle.sh index 8c155810..3568ebb7 100755 --- a/automation_tools/flatpak_build_bundle.sh +++ b/automation_tools/flatpak_build_bundle.sh @@ -2,4 +2,8 @@ # This is building the bundle RetroDECK.flatpak after the download and build steps are done -flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK-cooker.flatpak net.retrodeck.retrodeck \ No newline at end of file +if [ "${GITHUB_REF##*/}" = "main" ]; then + flatpak build-bundle "${GITHUB_WORKSPACE}/.local" "$GITHUB_WORKSPACE/RetroDECK.flatpak" net.retrodeck.retrodeck +else + flatpak build-bundle "${GITHUB_WORKSPACE}/.local" "$GITHUB_WORKSPACE/RetroDECK-cooker.flatpak" net.retrodeck.retrodeck +fi \ No newline at end of file diff --git a/automation_tools/flatpak_build_bundle_persistent.sh b/automation_tools/flatpak_build_bundle_persistent.sh new file mode 100755 index 00000000..ca6f1b5a --- /dev/null +++ b/automation_tools/flatpak_build_bundle_persistent.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# This is building the bundle RetroDECK.flatpak after the download and build steps are done + +BUILD_DIR="$HOME/cooker-persistent" +mkdir -p "$BUILD_DIR" + +if [ "${GITHUB_REF##*/}" = "main" ]; then + flatpak build-bundle "${BUILD_DIR}/.local" "$GITHUB_WORKSPACE/RetroDECK.flatpak" net.retrodeck.retrodeck +else + flatpak build-bundle "${BUILD_DIR}/.local" "$GITHUB_WORKSPACE/RetroDECK-cooker.flatpak" net.retrodeck.retrodeck +fi diff --git a/automation_tools/flatpak_build_download_only.sh b/automation_tools/flatpak_build_download_only.sh index 55352780..8c779fbb 100755 --- a/automation_tools/flatpak_build_download_only.sh +++ b/automation_tools/flatpak_build_download_only.sh @@ -3,12 +3,22 @@ # This script is downloading the needed files to prepare the manifest build git config --global protocol.file.allow always -mkdir -vp ${GITHUB_WORKSPACE}/local -mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker + +if [[ "${GITHUB_REF##*/}" == "main" ]]; then + BUNDLE_NAME="RetroDECK.flatpak" + FOLDER=retrodeck-flatpak +else + BUNDLE_NAME="RetroDECK-cooker.flatpak" + FOLDER=retrodeck-flatpak-cooker +fi + +mkdir -vp "${GITHUB_WORKSPACE}"/{.local,retrodeck-flatpak-cooker} + flatpak-builder --user --force-clean \ --install-deps-from=flathub \ --install-deps-from=flathub-beta \ - --repo=${GITHUB_WORKSPACE}/local \ + --repo="${GITHUB_WORKSPACE}/.local" \ --download-only \ - ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker \ - net.retrodeck.retrodeck.yml \ No newline at end of file + "${GITHUB_WORKSPACE}/${FOLDER}" \ + net.retrodeck.retrodeck.yml + \ No newline at end of file diff --git a/automation_tools/flatpak_build_download_only_persistent.sh b/automation_tools/flatpak_build_download_only_persistent.sh new file mode 100755 index 00000000..7b05fa57 --- /dev/null +++ b/automation_tools/flatpak_build_download_only_persistent.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# This script is downloading the needed files to prepare the manifest build + +git config --global protocol.file.allow always + +if [[ "${GITHUB_REF##*/}" == "main" ]]; then + BUNDLE_NAME="RetroDECK.flatpak" + FOLDER=retrodeck-flatpak +else + BUNDLE_NAME="RetroDECK-cooker.flatpak" + FOLDER=retrodeck-flatpak-cooker +fi + +BUILD_DIR="$HOME/cooker-persistent" +mkdir -p "$BUILD_DIR" +mkdir -vp "${BUILD_DIR}"/{.local,retrodeck-flatpak-cooker} + +flatpak-builder --user --force-clean \ +--install-deps-from=flathub \ +--install-deps-from=flathub-beta \ +--repo="${BUILD_DIR}/.local" \ +--download-only \ +"${BUILD_DIR}/${FOLDER}" \ +"${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" + diff --git a/automation_tools/flatpak_build_only.sh b/automation_tools/flatpak_build_only.sh index d2ed3fe5..c7f84d82 100755 --- a/automation_tools/flatpak_build_only.sh +++ b/automation_tools/flatpak_build_only.sh @@ -1,14 +1,24 @@ #!/bin/bash -# This script is building the flatpak is the needed files are already downloaded +# This script is downloading the needed files to prepare the manifest build + +git config protocol.file.allow always + +if [ "${GITHUB_REF##*/}" = "main" ]; then + BUNDLE_NAME="RetroDECK.flatpak" + FOLDER=retrodeck-flatpak-main +else + BUNDLE_NAME="RetroDECK-cooker.flatpak" + FOLDER=retrodeck-flatpak-cooker +fi + +mkdir -vp ${GITHUB_WORKSPACE}/.local +mkdir -vp ${GITHUB_WORKSPACE}/"$FOLDER" -git config --global protocol.file.allow always -mkdir -vp ${GITHUB_WORKSPACE}/local -mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker flatpak-builder --user --force-clean \ --install-deps-from=flathub \ --install-deps-from=flathub-beta \ - --repo=${GITHUB_WORKSPACE}/local \ + --repo=${GITHUB_WORKSPACE}/.local \ --disable-download \ - ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker \ + "${GITHUB_WORKSPACE}/$FOLDER" \ net.retrodeck.retrodeck.yml \ No newline at end of file diff --git a/automation_tools/flatpak_build_only_persistent.sh b/automation_tools/flatpak_build_only_persistent.sh new file mode 100755 index 00000000..4121cf9f --- /dev/null +++ b/automation_tools/flatpak_build_only_persistent.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# This script is downloading the needed files to prepare the manifest build + +git config protocol.file.allow always + +if [ "${GITHUB_REF##*/}" = "main" ]; then + BUNDLE_NAME="RetroDECK.flatpak" + FOLDER=retrodeck-flatpak-main +else + BUNDLE_NAME="RetroDECK-cooker.flatpak" + FOLDER=retrodeck-flatpak-cooker +fi + +BUILD_DIR="$HOME/cooker-persistent" +mkdir -vp ${$BUILD_DIR}/.local +mkdir -vp ${$BUILD_DIR}/"$FOLDER" + +flatpak-builder --user --force-clean \ +--install-deps-from=flathub \ +--install-deps-from=flathub-beta \ +--repo="${BUILD_DIR}/.local" \ +--disable-download \ +"${BUILD_DIR}/${FOLDER}" \ +"${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" diff --git a/automation_tools/force_update_submodules.sh b/automation_tools/force_update_submodules.sh index 50c249c7..5c01c3ef 100755 --- a/automation_tools/force_update_submodules.sh +++ b/automation_tools/force_update_submodules.sh @@ -2,16 +2,27 @@ # WARNING: DANGEROUS! Don't use this script lightly -git submodule deinit --all -rm rd-submodules/retroarch +git submodule deinit -f --all + +rm -rf rd-submodules/retroarch git rm -rf --cached rd-submodules/retroarch rm -rf .git/modules/rd-submodules/retroarch -rm -rf shared-modules -git rm -rf --cached shared-modules -rm -rf .git/modules/shared-modules + +rm -rf rd-submodules/ryujinx +git rm -rf --cached rd-submodules/ryujinx +rm -rf .git/modules/rd-submodules/ryujinx + +rm -rf rd-submodules/shared-modules +git rm -rf --cached rd-submodules/shared-modules +rm -rf .git/modules/rd-submodules/shared-modules + +rm .gitmodules + +# Do a commit here before giving the next commands + +git submodule add https://github.com/flathub/shared-modules.git rd-submodules/shared-modules +git submodule add https://github.com/flathub/org.libretro.RetroArch.git rd-submodules/retroarch +git submodule add https://github.com/flathub/org.ryujinx.Ryujinx rd-submodules/ryujinx git submodule init -git submodule add https://github.com/flathub/shared-modules.git -git submodule add https://github.com/flathub/org.libretro.RetroArch rd-submodules/retroarch - -git submodule update --remote --merge --recursive \ No newline at end of file +git submodule update --remote --merge --recursive diff --git a/build-locally.sh b/build-locally.sh new file mode 100755 index 00000000..647db560 --- /dev/null +++ b/build-locally.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +export GITHUB_WORKSPACE="." +cp net.retrodeck.retrodeck.appdata.xml net.retrodeck.retrodeck.appdata.xml.bak +cp net.retrodeck.retrodeck.yml net.retrodeck.retrodeck.yml.bak + +automation_tools/install_dependencies.sh +automation_tools/cooker_build_id.sh +automation_tools/pre_build_automation.sh +automation_tools/cooker_flatpak_portal_add.sh +automation_tools/appdata_management.sh +automation_tools/flatpak_build_download_only.sh +automation_tools/flatpak_build_only.sh +automation_tools/flatpak_build_bundle.sh + +rm -f net.retrodeck.retrodeck.appdata.xml +rm -f net.retrodeck.retrodeck.yml +cp net.retrodeck.retrodeck.appdata.xml.bak net.retrodeck.retrodeck.appdata.xml +cp net.retrodeck.retrodeck.yml.bak net.retrodeck.retrodeck.yml diff --git a/emu-configs/PCSX2/PCSX2_ui.ini b/emu-configs/PCSX2/PCSX2_ui.ini index 8f9a5a8d..d7ba5375 100644 --- a/emu-configs/PCSX2/PCSX2_ui.ini +++ b/emu-configs/PCSX2/PCSX2_ui.ini @@ -44,7 +44,7 @@ Bios=RETRODECKHOMEDIR/roms/bios Snapshots=RETRODECKHOMEDIR/screenshots Savestates=RETRODECKHOMEDIR/states/ps2/pcsx2 MemoryCards=RETRODECKHOMEDIR/saves/ps2/memcards -Logs=RETRODECKHOMEDIR/.logs +Logs=RETRODECKHOMEDIR/logs Langs=/app/share/PCSX2/resources/locale Cheats=/var/config/PCSX2/cheats CheatsWS=/var/config/PCSX2/cheats_ws diff --git a/emu-configs/cemu/settings.xml b/emu-configs/cemu/settings.xml index 8b42dae2..af643efb 100644 --- a/emu-configs/cemu/settings.xml +++ b/emu-configs/cemu/settings.xml @@ -7,6 +7,7 @@ 0 true false + false false true false @@ -90,9 +91,9 @@ 1 1 0 - 50 - 0 - 50 + 100 + 100 + 100 alsa_output.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__hw_acp5x_1__sink alsa_output.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__hw_acp5x_1__sink filter-chain-source diff --git a/emu-configs/citra/qt-config.ini b/emu-configs/citra/qt-config.ini index 3f00ece3..d67c1316 100644 --- a/emu-configs/citra/qt-config.ini +++ b/emu-configs/citra/qt-config.ini @@ -3,6 +3,10 @@ audio_emulation=0 audio_emulation\default=true enable_audio_stretching=true enable_audio_stretching\default=true +input_device=auto +input_device\default=true +input_type=0 +input_type\default=true mic_input_device=Default mic_input_device\default=true mic_input_type=0 @@ -11,7 +15,9 @@ output_device=auto output_device\default=true output_engine=auto output_engine\default=true -volume=@Variant(\0\0\0\x87?\x80\0\0) +output_type=0 +output_type\default=true +volume=1 volume\default=true [Camera] @@ -251,6 +257,10 @@ log_filter=*:Info log_filter\default=true [Renderer] +async_presentation=true +async_presentation\default=true +async_shader_compilation=false +async_shader_compilation\default=true bg_blue=0 bg_blue\default=true bg_green=0 @@ -261,10 +271,16 @@ frame_limit=100 frame_limit\default=true graphics_api=1 graphics_api\default=true +physical_device=0 +physical_device\default=true resolution_factor=1 resolution_factor\default=true shaders_accurate_mul=true shaders_accurate_mul\default=true +spirv_shader_gen=true +spirv_shader_gen\default=true +texture_filter=0 +texture_filter\default=true texture_filter_name=Linear (Default) texture_filter_name\default=false use_disk_shader_cache=true @@ -303,6 +319,14 @@ GameList\row1=2 GameList\row1\default=true GameList\row2=0 GameList\row2\default=true +GameList\show_compat_column=true +GameList\show_compat_column\default=true +GameList\show_region_column=true +GameList\show_region_column\default=true +GameList\show_size_column=true +GameList\show_size_column\default=true +GameList\show_type_column=true +GameList\show_type_column\default=true GameList\singleLineMode=false GameList\singleLineMode\default=true Multiplayer\game_id=0 @@ -437,6 +461,10 @@ Shortcuts\Main%20Window\Toggle%203D\Context=1 Shortcuts\Main%20Window\Toggle%203D\Context\default=false Shortcuts\Main%20Window\Toggle%203D\KeySeq= Shortcuts\Main%20Window\Toggle%203D\KeySeq\default=false +Shortcuts\Main%20Window\Toggle%20Custom%20Textures\Context=2 +Shortcuts\Main%20Window\Toggle%20Custom%20Textures\Context\default=true +Shortcuts\Main%20Window\Toggle%20Custom%20Textures\KeySeq=F7 +Shortcuts\Main%20Window\Toggle%20Custom%20Textures\KeySeq\default=false Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context=1 Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context\default=false Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq= @@ -488,6 +516,8 @@ hideInactiveMouse=false hideInactiveMouse\default=true pauseWhenInBackground=false pauseWhenInBackground\default=true +saveStateWarning=true +saveStateWarning\default=true screenshot_resolution_factor=0 screenshot_resolution_factor\default=true showConsole=false @@ -502,6 +532,8 @@ theme=colorful_dark theme\default=false [Utility] +async_custom_loading=true +async_custom_loading\default=true custom_textures=false custom_textures\default=true dump_textures=false @@ -532,4 +564,4 @@ citra_username=RetroDECK enable_telemetry=false enable_telemetry\default=false web_api_url=https://api.citra-emu.org -web_api_url\default=true +web_api_url\default=true \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_generic_standard.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_generic_standard.vdf new file mode 100755 index 00000000..43eac407 --- /dev/null +++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_generic_standard.vdf @@ -0,0 +1,1170 @@ +"controller_mappings" +{ + "version" "3" + "revision" "94" + "title" "RetroDECK: Generic - Standard" + "description" "RetroDECK: Generic - Standard - v.1b" + "creator" "" + "progenitor" "" + "url" "" + "export_type" "" + "controller_type" "controller_generic" + "controller_caps" "1573887" + "major_revision" "0" + "minor_revision" "0" + "Timestamp" "-1092650192" + "actions" + { + "Default" + { + "title" "RetroDECK - Set" + "legacy_set" "1" + } + "Preset_1000001" + { + "title" "Global Hotkeys - Set" + "legacy_set" "1" + } + } + "action_layers" + { + } + "group" + { + "id" "0" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button A, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button B, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button X, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button Y, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "1" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_up, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_down, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_right, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_left, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "2" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "3" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "4" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "5" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "6" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "8" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "9" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_UP, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_DOWN, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "12" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "11" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Pause / Resume, , " + "binding" "key_press P, Pause / Resume, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Take Screenshot, , " + "binding" "key_press X, Take Screenshot, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fullscreen Toggle, , " + "binding" "key_press RETURN, Fullscreen Toggle, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Open Menu, , " + "binding" "key_press M, Open Menu, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "13" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Rewind, , " + "binding" "key_press KEYPAD_DASH, Rewind, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "14" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fast forward, , " + "binding" "key_press KEYPAD_PLUS, Fast forward, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "15" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "16" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Increase Emulation Speed, , " + "binding" "key_press 1, Increase Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Decrease Emulation Speed, , " + "binding" "key_press 2, Decrease Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Next State Slot, , " + "binding" "key_press K, Next State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Previous State Slot, , " + "binding" "key_press J, Previous State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "17" + "mode" "joystick_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, Left Click, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_joystick" "2" + } + } + "group" + { + "id" "18" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SHOW_KEYBOARD, Show Keyboard, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press RETURN, Enter, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, Right Click, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + } + } + "group" + { + "id" "10" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Quit Emulator, , " + "binding" "key_press Q, Quit Emulator, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "release" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 1 0 1, RetroDECK - Set, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Load State, , " + "binding" "key_press A, Load State, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Save State, , " + "binding" "key_press S, Save State, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "7" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button start, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button select, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 2 0 1, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_left, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_right, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "preset" + { + "id" "0" + "name" "Default" + "group_source_bindings" + { + "7" "switch active" + "0" "button_diamond active" + "3" "joystick active" + "4" "left_trigger active" + "5" "right_trigger active" + "8" "right_joystick active" + "9" "dpad active" + } + } + "preset" + { + "id" "1" + "name" "Preset_1000001" + "group_source_bindings" + { + "10" "switch active" + "11" "button_diamond active" + "12" "joystick inactive" + "18" "joystick active" + "13" "left_trigger active" + "14" "right_trigger active" + "15" "right_joystick inactive" + "17" "right_joystick active" + "16" "dpad active" + } + } + "settings" + { + "left_trackpad_mode" "0" + "right_trackpad_mode" "0" + } +} diff --git a/emu-configs/defaults/retrodeck/RetroDECK_controller_config.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_neptune.vdf similarity index 100% rename from emu-configs/defaults/retrodeck/RetroDECK_controller_config.vdf rename to emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_neptune.vdf diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps3_dualshock3.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps3_dualshock3.vdf new file mode 100644 index 00000000..35be1556 --- /dev/null +++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps3_dualshock3.vdf @@ -0,0 +1,1170 @@ +"controller_mappings" +{ + "version" "3" + "revision" "90" + "title" "RetroDECK: DualShock 3" + "description" "RetroDECK: PS3 - DualShock 3 - v.1b" + "creator" "" + "progenitor" "" + "url" "" + "export_type" "personal_local" + "controller_type" "controller_ps3" + "controller_caps" "1590271" + "major_revision" "0" + "minor_revision" "0" + "Timestamp" "-630034944" + "actions" + { + "Default" + { + "title" "RetroDECK - Set" + "legacy_set" "1" + } + "Preset_1000001" + { + "title" "Global Hotkeys - Set" + "legacy_set" "1" + } + } + "action_layers" + { + } + "group" + { + "id" "0" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button A, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button B, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button X, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button Y, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "1" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_up, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_down, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_right, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_left, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "2" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "3" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "4" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "5" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "6" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "8" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "9" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_UP, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_DOWN, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "12" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "11" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Pause / Resume, , " + "binding" "key_press P, Pause / Resume, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Take Screenshot, , " + "binding" "key_press X, Take Screenshot, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fullscreen Toggle, , " + "binding" "key_press RETURN, Fullscreen Toggle, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Open Menu, , " + "binding" "key_press M, Open Menu, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "13" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Rewind, , " + "binding" "key_press KEYPAD_DASH, Rewind, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "14" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fast forward, , " + "binding" "key_press KEYPAD_PLUS, Fast forward, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "15" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "16" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Increase Emulation Speed, , " + "binding" "key_press 1, Increase Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Decrease Emulation Speed, , " + "binding" "key_press 2, Decrease Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Next State Slot, , " + "binding" "key_press K, Next State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Previous State Slot, , " + "binding" "key_press J, Previous State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "17" + "mode" "joystick_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_joystick" "2" + } + } + "group" + { + "id" "18" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SHOW_KEYBOARD, Show Keyboard, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press RETURN, Enter, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + } + } + "group" + { + "id" "10" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Quit Emulator, , " + "binding" "key_press Q, Quit Emulator, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "release" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 1 0 1, RetroDECK - Set, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Load State, , " + "binding" "key_press A, Load State, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Save State, , " + "binding" "key_press S, Save State, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "7" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button start, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button select, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 2 0 1, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_left, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_right, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "preset" + { + "id" "0" + "name" "Default" + "group_source_bindings" + { + "7" "switch active" + "0" "button_diamond active" + "3" "joystick active" + "4" "left_trigger active" + "5" "right_trigger active" + "8" "right_joystick active" + "9" "dpad active" + } + } + "preset" + { + "id" "1" + "name" "Preset_1000001" + "group_source_bindings" + { + "10" "switch active" + "11" "button_diamond active" + "12" "joystick inactive" + "18" "joystick active" + "13" "left_trigger active" + "14" "right_trigger active" + "15" "right_joystick inactive" + "17" "right_joystick active" + "16" "dpad active" + } + } + "settings" + { + "left_trackpad_mode" "0" + "right_trackpad_mode" "0" + } +} diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps4_dualshock4.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps4_dualshock4.vdf new file mode 100755 index 00000000..4b9374c7 --- /dev/null +++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps4_dualshock4.vdf @@ -0,0 +1,1413 @@ +"controller_mappings" +{ + "version" "3" + "revision" "81" + "title" "RetroDECK: DualShock 4" + "description" "RetroDECK: PS4 - DualShock 4 - v.1b" + "creator" "" + "progenitor" "" + "url" "workshop://3115335528" + "export_type" "" + "controller_type" "controller_ps4" + "controller_caps" "35085311" + "major_revision" "0" + "minor_revision" "0" + "Timestamp" "-954028624" + "actions" + { + "Default" + { + "title" "RetroDECK - Set" + "legacy_set" "1" + } + "Preset_1000001" + { + "title" "Global Hotkeys - Set" + "legacy_set" "1" + } + } + "action_layers" + { + } + "group" + { + "id" "0" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button A, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button B, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button X, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button Y, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "1" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_up, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_down, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_right, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_left, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "2" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "3" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "4" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "5" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "6" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "8" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "9" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_UP, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_DOWN, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "10" + "mode" "single_button" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button START, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "11" + "mode" "single_button" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "14" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "15" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "19" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Pause / Resume, , " + "binding" "key_press A, Pause / Resume, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Take Screenshot, , " + "binding" "key_press B, Take Screenshot, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fullscreen Toggle, , " + "binding" "key_press RETURN, Fullscreen Toggle, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Open Menu, , " + "binding" "key_press M, Open Menu, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "20" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "21" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, Left Click, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "22" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "23" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Rewind, , " + "binding" "key_press KEYPAD_DASH, Rewind, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "24" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fast forward, , " + "binding" "key_press KEYPAD_PLUS, Fast forward, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "25" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "26" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Increase Emulation Speed, , " + "binding" "key_press 1, Increase Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Decrease Emulation Speed, , " + "binding" "key_press 2, Decrease Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Next State Slot, , " + "binding" "key_press K, Next State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Previous State Slot, , " + "binding" "key_press J, Previous State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "29" + "mode" "joystick_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, Left Click, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_joystick" "2" + } + } + "group" + { + "id" "30" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SHOW_KEYBOARD, Show Keyboard, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press RETURN, Enter, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, Right Click, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + } + } + "group" + { + "id" "33" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button MIDDLE, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "35" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button MIDDLE, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "7" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button start, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 2 0 1, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_left, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_right, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "18" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Quit Emulator, , " + "binding" "key_press Q, Quit Emulator, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "release" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 1 0 1, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Load State, , " + "binding" "key_press A, Load State, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Save State, , " + "binding" "key_press S, Save State, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "preset" + { + "id" "0" + "name" "Default" + "group_source_bindings" + { + "7" "switch active" + "0" "button_diamond active" + "1" "left_trackpad inactive" + "11" "left_trackpad inactive" + "15" "left_trackpad active" + "2" "right_trackpad inactive" + "6" "right_trackpad inactive" + "10" "right_trackpad inactive" + "14" "right_trackpad active" + "3" "joystick active" + "4" "left_trigger active" + "5" "right_trigger active" + "8" "right_joystick active" + "9" "dpad active" + "35" "center_trackpad active" + } + } + "preset" + { + "id" "1" + "name" "Preset_1000001" + "group_source_bindings" + { + "18" "switch active" + "19" "button_diamond active" + "20" "left_trackpad active" + "21" "right_trackpad active" + "22" "joystick inactive" + "30" "joystick active" + "23" "left_trigger active" + "24" "right_trigger active" + "25" "right_joystick inactive" + "29" "right_joystick active" + "26" "dpad active" + "33" "center_trackpad active" + } + } + "settings" + { + "left_trackpad_mode" "0" + "right_trackpad_mode" "0" + } +} diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps5_dualsense.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps5_dualsense.vdf new file mode 100755 index 00000000..01846558 --- /dev/null +++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps5_dualsense.vdf @@ -0,0 +1,1445 @@ +"controller_mappings" +{ + "version" "3" + "revision" "84" + "title" "RetroDECK: DualSense" + "description" "RetroDECK: PS5 - DualSense - v.1b" + "creator" "" + "progenitor" "" + "url" "" + "export_type" "" + "controller_type" "controller_ps5" + "controller_caps" "35148799" + "major_revision" "0" + "minor_revision" "0" + "Timestamp" "-1064394560" + "actions" + { + "Default" + { + "title" "RetroDECK - Set" + "legacy_set" "1" + } + "Preset_1000001" + { + "title" "Global Hotkeys - Set" + "legacy_set" "1" + } + } + "action_layers" + { + } + "group" + { + "id" "0" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button A, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button B, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button X, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button Y, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "1" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_up, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_down, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_right, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_left, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "2" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "3" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "4" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "5" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "6" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "8" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "9" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_UP, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_DOWN, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "10" + "mode" "single_button" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button START, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "11" + "mode" "single_button" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "25" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "26" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "30" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Pause / Resume, , " + "binding" "key_press P, Pause / Resume, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Take Screenshot, , " + "binding" "key_press X, Take Screenshot, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fullscreen Toggle, , " + "binding" "key_press RETURN, Fullscreen Toggle, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Open Menu, , " + "binding" "key_press M, Open Menu, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "31" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "32" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "33" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, Swap Screens, , " + "binding" "controller_action empty_sub_command, Swap Screens, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "34" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Rewind, , " + "binding" "key_press KEYPAD_DASH, Rewind, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "35" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fast forward, , " + "binding" "key_press KEYPAD_PLUS, Fast forward, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "36" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, Escape, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "37" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Increase Emulation Speed, , " + "binding" "key_press 1, Increase Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Decrease Emulation Speed, , " + "binding" "key_press 2, Decrease Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Next State Slot, , " + "binding" "key_press K, Next State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Previous State Slot, , " + "binding" "key_press J, Previous State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "40" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button MIDDLE, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "41" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button MIDDLE, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "42" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SHOW_KEYBOARD, Show Keyboard, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press RETURN, Enter, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, Right Click, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + } + } + "group" + { + "id" "43" + "mode" "joystick_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, Left Click, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_joystick" "2" + } + } + "group" + { + "id" "7" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button start, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button select, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 2 0 1, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_left, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_right, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + "button_capture" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action set_led 255 0 0 100 100 2, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "29" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Quit Emulator, , " + "binding" "key_press Q, Quit Emulator, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "release" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 1 0 1, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Load State, , " + "binding" "key_press A, Load State, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Save State, , " + "binding" "key_press S, Save State, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + "button_capture" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action set_led 255 0 0 100 100 2, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "preset" + { + "id" "0" + "name" "Default" + "group_source_bindings" + { + "7" "switch active" + "0" "button_diamond active" + "1" "left_trackpad inactive" + "11" "left_trackpad inactive" + "26" "left_trackpad active" + "2" "right_trackpad inactive" + "6" "right_trackpad inactive" + "10" "right_trackpad inactive" + "25" "right_trackpad active" + "3" "joystick active" + "4" "left_trigger active" + "5" "right_trigger active" + "8" "right_joystick active" + "9" "dpad active" + "41" "center_trackpad active" + } + } + "preset" + { + "id" "1" + "name" "Preset_1000001" + "group_source_bindings" + { + "29" "switch active" + "30" "button_diamond active" + "31" "left_trackpad active" + "32" "right_trackpad active" + "33" "joystick inactive" + "42" "joystick active" + "34" "left_trigger active" + "35" "right_trigger active" + "36" "right_joystick inactive" + "43" "right_joystick active" + "37" "dpad active" + "40" "center_trackpad active" + } + } + "settings" + { + "left_trackpad_mode" "0" + "right_trackpad_mode" "0" + } +} diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steam_controller_gordon.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steam_controller_gordon.vdf new file mode 100755 index 00000000..cd5152c0 --- /dev/null +++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steam_controller_gordon.vdf @@ -0,0 +1,1541 @@ +"controller_mappings" +{ + "version" "3" + "revision" "70" + "title" "RetroDECK: Steam Controller - Gordon" + "description" "RetroDECK: Steam Controller - Gordon - v.1b" + "creator" "" + "progenitor" "" + "url" "" + "export_type" "personal_local" + "controller_type" "controller_steamcontroller_gordon" + "controller_caps" "2179063" + "major_revision" "1" + "minor_revision" "0" + "Timestamp" "-1090008992" + "actions" + { + "Default" + { + "title" "RetroDECK - Set" + "legacy_set" "1" + } + "Preset_1000001" + { + "title" "Global Hotkeys - Set" + "legacy_set" "1" + } + "Preset_1000002" + { + "title" "Mouse Mode - Set" + "legacy_set" "1" + } + } + "action_layers" + { + } + "group" + { + "id" "0" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button A, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button B, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button X, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button Y, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "1" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_up, , " + } + "settings" + { + "haptic_intensity" "0" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_down, , " + } + "settings" + { + "haptic_intensity" "0" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_right, , " + } + "settings" + { + "haptic_intensity" "0" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_left, , " + } + "settings" + { + "haptic_intensity" "0" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "2" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "3" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "4" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "5" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "6" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "11" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Pause / Resume, , " + "binding" "key_press P, Pause / Resume, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Take Screenshot, , " + "binding" "key_press X, Take Screenshot, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fullscreen Toggle, , " + "binding" "key_press RETURN, Fullscreen Toggle, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Open Menu, , " + "binding" "key_press M, Open Menu, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "12" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Increase Emulation Speed, , " + "binding" "key_press 1, Increase Emulation Speed, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Decrease Emulation Speed, , " + "binding" "key_press 2, Decrease Emulation Speed, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Next State Slot, , " + "binding" "key_press K, Next State Slot, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Previous State Slot, , " + "binding" "key_press J, Previous State Slot, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "13" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "14" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "15" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Decrease Emulation Speed, , " + "binding" "key_press KEYPAD_DASH, Decrease Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "16" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Increase Emulation Speed, , " + "binding" "key_press KEYPAD_PLUS, Increase Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "19" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "20" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "23" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + } + } + "group" + { + "id" "25" + "mode" "mouse_joystick" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "26" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SHOW_KEYBOARD, Show Keyboard, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press RETURN, Enter, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + } + } + "group" + { + "id" "29" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button A, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button B, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button X, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button Y, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "30" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_up, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_down, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_right, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_left, , " + } + } + } + "disabled_activators" + { + } + } + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, , " + } + "settings" + { + "haptic_intensity" "0" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "31" + "mode" "mouse_joystick" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "32" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "33" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "34" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "36" + "mode" "absolute_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "7" + "mode" "switches" + "name" "" + "description" "#Description" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button start, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button select, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 2 0 1, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_left, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_right, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 2 0 0, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 3 0 0, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "10" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Quit Emulator, , " + "binding" "key_press Q, Quit Emulator, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "release" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 1 0 1, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Load State, , " + "binding" "key_press A, Load State, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Save State, , " + "binding" "key_press S, Save State, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "release" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 1 0 0, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "28" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button start, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button select, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 2 0 1, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_left, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_right, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 2 0 0, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 1 0 0, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "preset" + { + "id" "0" + "name" "Default" + "group_source_bindings" + { + "7" "switch active" + "0" "button_diamond active" + "1" "left_trackpad active" + "2" "right_trackpad inactive" + "6" "right_trackpad inactive" + "19" "right_trackpad inactive" + "25" "right_trackpad active" + "3" "joystick active" + "4" "left_trigger active" + "5" "right_trigger active" + "23" "gyro inactive" + } + } + "preset" + { + "id" "1" + "name" "Preset_1000001" + "group_source_bindings" + { + "10" "switch active" + "11" "button_diamond active" + "12" "left_trackpad active" + "13" "right_trackpad inactive" + "20" "right_trackpad active" + "14" "joystick inactive" + "26" "joystick active" + "15" "left_trigger active" + "16" "right_trigger active" + } + } + "preset" + { + "id" "2" + "name" "Preset_1000002" + "group_source_bindings" + { + "28" "switch active" + "29" "button_diamond active" + "30" "left_trackpad active" + "31" "right_trackpad inactive" + "36" "right_trackpad active" + "32" "joystick active" + "33" "left_trigger active" + "34" "right_trigger active" + } + } + "settings" + { + "left_trackpad_mode" "0" + "right_trackpad_mode" "0" + } +} diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_switch_pro.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_switch_pro.vdf new file mode 100755 index 00000000..6ec112cc --- /dev/null +++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_switch_pro.vdf @@ -0,0 +1,1196 @@ +"controller_mappings" +{ + "version" "3" + "revision" "83" + "title" "RetroDECK: Switch Pro" + "description" "RetroDECK: Switch - Pro - v.1b" + "creator" "" + "progenitor" "" + "url" "" + "export_type" "personal_local" + "controller_type" "controller_switch_pro" + "controller_caps" "77087743" + "major_revision" "0" + "minor_revision" "0" + "Timestamp" "-936017792" + "actions" + { + "Default" + { + "title" "RetroDECK - Set" + "legacy_set" "1" + } + "Preset_1000001" + { + "title" "Global Hotkeys - Set" + "legacy_set" "1" + } + } + "action_layers" + { + } + "group" + { + "id" "0" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button B, , " + } + } + } + "disabled_activators" + { + } + } + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button A, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button Y, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button X, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "1" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_up, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_down, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_right, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_left, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "2" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "3" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "4" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "5" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "6" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "8" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "9" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_UP, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_DOWN, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "12" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Pause / Resume, , " + "binding" "key_press P, Pause / Resume, , " + } + } + } + "disabled_activators" + { + } + } + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Take Screenshot, , " + "binding" "key_press X, Take Screenshot, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fullscreen Toggle, , " + "binding" "key_press RETURN, Fullscreen Toggle, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Open Menu, , " + "binding" "key_press M, Open Menu, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "13" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "14" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Rewind, , " + "binding" "key_press KEYPAD_DASH, Rewind, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "15" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fast forward, , " + "binding" "key_press KEYPAD_PLUS, Fast forward, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "16" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "17" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Increase Emulation Speed, , " + "binding" "key_press 1, Increase Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Decrease Emulation Speed, , " + "binding" "key_press 2, Decrease Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Next State Slot, , " + "binding" "key_press K, Next State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Previous State Slot, , " + "binding" "key_press J, Previous State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "19" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SHOW_KEYBOARD, Show Keyboard, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press RETURN, Enter, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + } + } + "group" + { + "id" "20" + "mode" "joystick_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, Left Click, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_joystick" "2" + } + } + "group" + { + "id" "7" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button start, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + "binding" "controller_action CHANGE_PRESET 2 0 1, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_left, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_right, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + "button_capture" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SCREENSHOT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "11" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Quit Emulator, , " + "binding" "key_press Q, Quit Emulator, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "release" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 1 0 1, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Load State, , " + "binding" "key_press A, Load State, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press RIGHT_CONTROL, Save State, , " + "binding" "key_press S, Save State, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + "button_capture" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SCREENSHOT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "preset" + { + "id" "0" + "name" "Default" + "group_source_bindings" + { + "7" "switch active" + "0" "button_diamond active" + "3" "joystick active" + "4" "left_trigger active" + "5" "right_trigger active" + "8" "right_joystick active" + "9" "dpad active" + } + } + "preset" + { + "id" "1" + "name" "Preset_1000001" + "group_source_bindings" + { + "11" "switch active" + "12" "button_diamond active" + "13" "joystick inactive" + "19" "joystick active" + "14" "left_trigger active" + "15" "right_trigger active" + "16" "right_joystick inactive" + "20" "right_joystick active" + "17" "dpad active" + } + } + "settings" + { + "left_trackpad_mode" "0" + "right_trackpad_mode" "0" + } +} diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xbox360.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xbox360.vdf new file mode 100644 index 00000000..1d9eabad --- /dev/null +++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xbox360.vdf @@ -0,0 +1,1170 @@ +"controller_mappings" +{ + "version" "3" + "revision" "84" + "title" "RetroDECK: Xbox 360" + "description" "RetroDECK: Xbox 360 - v.1b" + "creator" "" + "progenitor" "" + "url" "" + "export_type" "" + "controller_type" "controller_xbox360" + "controller_caps" "1590271" + "major_revision" "0" + "minor_revision" "0" + "Timestamp" "-1069299824" + "actions" + { + "Default" + { + "title" "RetroDECK - Set" + "legacy_set" "1" + } + "Preset_1000001" + { + "title" "Global Hotkeys - Set" + "legacy_set" "1" + } + } + "action_layers" + { + } + "group" + { + "id" "0" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button A, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button B, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button X, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button Y, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "1" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_up, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_down, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_right, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_left, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "2" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "3" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "4" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "5" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "6" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "8" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "9" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_UP, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_DOWN, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "12" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "11" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Pause / Resume, , " + "binding" "key_press P, Pause / Resume, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Take Screenshot, , " + "binding" "key_press X, Take Screenshot, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fullscreen Toggle, , " + "binding" "key_press RETURN, Fullscreen Toggle, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Open Menu, , " + "binding" "key_press M, Open Menu, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "13" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Rewind, , " + "binding" "key_press KEYPAD_DASH, Rewind, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "14" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fast forward, , " + "binding" "key_press KEYPAD_PLUS, Fast forward, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "15" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "16" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Increase Emulation Speed, , " + "binding" "key_press 1, Increase Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Decrease Emulation Speed, , " + "binding" "key_press 2, Decrease Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Next State Slot, , " + "binding" "key_press K, Next State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Previous State Slot, , " + "binding" "key_press J, Previous State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "17" + "mode" "joystick_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_joystick" "2" + } + } + "group" + { + "id" "18" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SHOW_KEYBOARD, Show Keyboard, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press RETURN, Enter, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + } + } + "group" + { + "id" "10" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Quit Emulator, , " + "binding" "key_press Q, Quit Emulator, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "release" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 1 0 1, RetroDECK - Set, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Load State, , " + "binding" "key_press A, Load State, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Save State, , " + "binding" "key_press S, Save State, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "7" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button start, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button select, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 2 0 1, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_left, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_right, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "preset" + { + "id" "0" + "name" "Default" + "group_source_bindings" + { + "7" "switch active" + "0" "button_diamond active" + "3" "joystick active" + "4" "left_trigger active" + "5" "right_trigger active" + "8" "right_joystick active" + "9" "dpad active" + } + } + "preset" + { + "id" "1" + "name" "Preset_1000001" + "group_source_bindings" + { + "10" "switch active" + "11" "button_diamond active" + "12" "joystick inactive" + "18" "joystick active" + "13" "left_trigger active" + "14" "right_trigger active" + "15" "right_joystick inactive" + "17" "right_joystick active" + "16" "dpad active" + } + } + "settings" + { + "left_trackpad_mode" "0" + "right_trackpad_mode" "0" + } +} diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xboxone.vdf b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xboxone.vdf new file mode 100755 index 00000000..70a20a96 --- /dev/null +++ b/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xboxone.vdf @@ -0,0 +1,1265 @@ +"controller_mappings" +{ + "version" "3" + "revision" "93" + "title" "RetroDECK: Official Layout - Xbox One/S/X" + "description" "RetroDECK: Xbox One/S/X" + "creator" "" + "progenitor" "" + "url" "" + "export_type" "" + "controller_type" "controller_xboxone" + "controller_caps" "1590271" + "major_revision" "0" + "minor_revision" "0" + "Timestamp" "-5320" + "actions" + { + "Default" + { + "title" "RetroDECK - Set" + "legacy_set" "1" + } + "Preset_1000001" + { + "title" "Global Hotkeys - Set" + "legacy_set" "1" + } + } + "action_layers" + { + } + "group" + { + "id" "0" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button A, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button B, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button X, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button Y, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "1" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_up, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_down, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_right, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button dpad_left, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "2" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "3" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "4" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_LEFT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "5" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button TRIGGER_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "6" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "8" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button JOYSTICK_RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "9" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_UP, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_DOWN, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_RIGHT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button DPAD_LEFT, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "11" + "mode" "four_buttons" + "name" "" + "description" "" + "inputs" + { + "button_a" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Pause / Resume, , " + "binding" "key_press P, Pause / Resume, , " + } + } + } + "disabled_activators" + { + } + } + "button_b" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Take Screenshot, , " + "binding" "key_press X, Take Screenshot, , " + } + } + } + "disabled_activators" + { + } + } + "button_x" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fullscreen Toggle, , " + "binding" "key_press RETURN, Fullscreen Toggle, , " + } + } + } + "disabled_activators" + { + } + } + "button_y" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Open Menu, , " + "binding" "key_press M, Open Menu, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "12" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "13" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Rewind, , " + "binding" "key_press KEYPAD_DASH, Rewind, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "1" + } + } + "group" + { + "id" "14" + "mode" "trigger" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Fast forward, , " + "binding" "key_press KEYPAD_PLUS, Fast forward, , " + } + "settings" + { + "haptic_intensity" "2" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_trigger" "2" + } + } + "group" + { + "id" "15" + "mode" "joystick_move" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, Escape, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "16" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Increase Emulation Speed, , " + "binding" "key_press 1, Increase Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Decrease Emulation Speed, , " + "binding" "key_press 2, Decrease Emulation Speed, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Next State Slot, , " + "binding" "key_press K, Next State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + "dpad_west" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Previous State Slot, , " + "binding" "key_press J, Previous State Slot, , " + } + "settings" + { + "haptic_intensity" "1" + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + "haptic_intensity_override" "0" + } + } + "group" + { + "id" "17" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + } + "settings" + { + "requires_click" "0" + } + } + "group" + { + "id" "18" + "mode" "joystick_mouse" + "name" "" + "description" "" + "inputs" + { + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button LEFT, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "output_joystick" "2" + } + } + "group" + { + "id" "19" + "mode" "dpad" + "name" "" + "description" "" + "inputs" + { + "dpad_north" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Swap Screens, , " + "binding" "key_press TAB, Swap Screens, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_south" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press ESCAPE, , " + } + } + } + "disabled_activators" + { + } + } + "dpad_east" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press RETURN, , " + } + } + } + "disabled_activators" + { + } + } + "click" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "mouse_button RIGHT, , " + } + } + } + "disabled_activators" + { + } + } + } + "settings" + { + "requires_click" "0" + } + } + "group" + { + "id" "7" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button start, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + } + } + "Full_Press" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 2 0 1, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_left, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button shoulder_right, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button y, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left_upper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right_upper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button b, , " + } + } + } + "disabled_activators" + { + } + } + "button_capture" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SCREENSHOT, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "group" + { + "id" "10" + "mode" "switches" + "name" "" + "description" "" + "inputs" + { + "button_escape" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Quit Emulator, , " + "binding" "key_press Q, Quit Emulator, , " + } + } + } + "disabled_activators" + { + } + } + "button_menu" + { + "activators" + { + "release" + { + "bindings" + { + "binding" "controller_action CHANGE_PRESET 1 0 1, , " + } + } + "release" + { + "bindings" + { + "binding" "xinput_button SELECT, , " + } + } + } + "disabled_activators" + { + } + } + "left_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Load State, , " + "binding" "key_press A, Load State, , " + } + } + } + "disabled_activators" + { + } + } + "right_bumper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "key_press LEFT_CONTROL, Save State, , " + "binding" "key_press S, Save State, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button y, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button a, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_left_upper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button x, , " + } + } + } + "disabled_activators" + { + } + } + "button_back_right_upper" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "xinput_button b, , " + } + } + } + "disabled_activators" + { + } + } + "button_capture" + { + "activators" + { + "Full_Press" + { + "bindings" + { + "binding" "controller_action SCREENSHOT, Take Steam Screenshot, , " + } + } + } + "disabled_activators" + { + } + } + } + } + "preset" + { + "id" "0" + "name" "Default" + "group_source_bindings" + { + "7" "switch active" + "0" "button_diamond active" + "3" "joystick active" + "4" "left_trigger active" + "5" "right_trigger active" + "8" "right_joystick active" + "9" "dpad active" + } + } + "preset" + { + "id" "1" + "name" "Preset_1000001" + "group_source_bindings" + { + "10" "switch active" + "11" "button_diamond active" + "12" "joystick inactive" + "19" "joystick active" + "13" "left_trigger active" + "14" "right_trigger active" + "15" "right_joystick inactive" + "17" "right_joystick inactive" + "18" "right_joystick active" + "16" "dpad active" + } + } + "settings" + { + "left_trackpad_mode" "0" + "right_trackpad_mode" "0" + } +} diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt new file mode 100644 index 00000000..febbde78 --- /dev/null +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt @@ -0,0 +1,22 @@ +# Guide: Vita3K + +Please note that the PSVita support is still experimental and it will be available starting from RetroDECK 0.8.0b, and for the way Vita3K is actually working the automation is limited. +In order to install a PSVita games is needed to: + +- Install a game opening the Vita3K emulator via Configurator, the supported formats are `pkg`, `zip`, `vpk`. +- Upon installation the `zRIF` may be asked, it's different for each game, you can find it via web search by searching for example `WipEout 2048 (EU) zRIF`. +- Install DLCs and patches in the same way. +- Create an empty file in `retrodeck/roms/psvita/gamename.psvita`, please mind the `.psvita` extension.
+For example: `roms/psvita/WipEout 2048 (EU).psvita.` +- Edit the empty file adding the game `Title ID` (more below). +- The game should appear in the game list after RetroDECK is re-opened or reloaded from the Utilities. + +## How to find a title ID +It can be found inside the Vita3K GUI in the Title ID column, or found via web search. +For example the game `WipEout 2048 (EU)` has an ID that is `PCSF00007`. +So simply add `PCSF00007` to the `WipEout 2048 (EU).psvita` file and the setup for this game is complete. + +Related wiki article can be found here: +-- + +The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg b/emu-configs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg index e69de29b..1049836f 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg @@ -0,0 +1 @@ +1201^1231^0000^2359^RetroDECK-Xmas-splash.svg diff --git a/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg b/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg index 6700e277..8a3b9744 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg @@ -19,3 +19,6 @@ how-to-install-Duckstation-textures.txt^$texture_packs_folder/Duckstation # customs how-to-install-custom-emulators.txt^$rdhome/customs + +# emulators +how-to-install-psvita-games.txt^$roms_folder/psvita diff --git a/emu-configs/defaults/retrodeck/retrodeck.cfg b/emu-configs/defaults/retrodeck/retrodeck.cfg index b821b596..cf88db79 100644 --- a/emu-configs/defaults/retrodeck/retrodeck.cfg +++ b/emu-configs/defaults/retrodeck/retrodeck.cfg @@ -8,7 +8,7 @@ states_folder=/home/deck/retrodeck/states bios_folder=/home/deck/retrodeck/bios media_folder=/home/deck/retrodeck/downloaded_media themes_folder=/home/deck/retrodeck/themes -logs_folder=/home/deck/retrodeck/.logs +logs_folder=/home/deck/retrodeck/logs screenshots_folder=/home/deck/retrodeck/screenshots mods_folder=/home/deck/retrodeck/mods texture_packs_folder=/home/deck/retrodeck/texture_packs @@ -39,14 +39,14 @@ pcsx2=false retroarch=false [borders] -gb=true -gba=true -gbc=true -genesis=true -gg=true -n64=true -psx_ra=true -snes=true +gb=false +gba=false +gbc=false +genesis=false +gg=false +n64=false +psx_ra=false +snes=false [widescreen] genesis=false diff --git a/emu-configs/dolphin/GCPadNew.ini b/emu-configs/dolphin/GCPadNew.ini index bb81f4ac..1882559e 100644 --- a/emu-configs/dolphin/GCPadNew.ini +++ b/emu-configs/dolphin/GCPadNew.ini @@ -4,7 +4,7 @@ Buttons/A = SOUTH Buttons/B = EAST Buttons/X = NORTH Buttons/Y = WEST -Buttons/Z = `Full Axis 5+` +Buttons/Z = TR Buttons/Start = START Main Stick/Up = `Axis 1-` Main Stick/Down = `Axis 1+` @@ -20,8 +20,8 @@ C-Stick/Right = `Axis 3+` C-Stick/Modifier = `Ctrl` C-Stick/Modifier/Range = 50.0 C-Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42 -Triggers/L = TL -Triggers/R = TR +Triggers/L = `Full Axis 2+` +Triggers/R = `Full Axis 5+` D-Pad/Up = `Axis 7-` D-Pad/Down = `Axis 7+` D-Pad/Left = `Axis 6-` diff --git a/emu-configs/parsers/ecwolf.sh.todo b/emu-configs/ecwolf/ecwolf.sh.todo similarity index 100% rename from emu-configs/parsers/ecwolf.sh.todo rename to emu-configs/ecwolf/ecwolf.sh.todo diff --git a/emu-configs/gzdoom/gzdoom.ini b/emu-configs/gzdoom/gzdoom.ini new file mode 100644 index 00000000..8e6b317d --- /dev/null +++ b/emu-configs/gzdoom/gzdoom.ini @@ -0,0 +1,4077 @@ +# This file was generated by GZDoom g4.11.3-m on 2023-11-25 14:33:14 +# These are the directories to automatically search for IWADs. +# Each directory should be on a separate line, preceded by Path= +[IWADSearch.Directories] +Path=. +Path=$DOOMWADDIR +Path=$HOME +Path=$PROGDIR +Path=/var/config/gzdoom +Path=/var/data/gzdoom +Path=RETRODECKROMSDIR/doom +Path=/app/share/games/doom/ + +# These are the directories to search for wads added with the -file +# command line parameter, if they cannot be found with the path +# as-is. Layout is the same as for IWADSearch.Directories +[FileSearch.Directories] +Path=$PROGDIR +Path=$DOOMWADDIR +Path=/var/config/gzdoom +Path=/var/data/gzdoom +Path=RETRODECKROMSDIR/doom +Path=/app/share/games/doom/ + +# These are the directories to search for soundfonts that let listed in the menu. +# Layout is the same as for IWADSearch.Directories +[SoundfontSearch.Directories] +Path=$PROGDIR/soundfonts +Path=$PROGDIR/fm_banks +Path=/var/data/gzdoom + +# Files to automatically execute when running the corresponding game. +# Each file should be on its own line, preceded by Path= + +[Doom.AutoExec] +Path=$PROGDIR/autoexec.cfg + +[Heretic.AutoExec] +Path=$PROGDIR/autoexec.cfg + +[Hexen.AutoExec] +Path=$PROGDIR/autoexec.cfg + +[Strife.AutoExec] +Path=$PROGDIR/autoexec.cfg + +[Chex.AutoExec] +Path=$PROGDIR/autoexec.cfg + +# WAD files to always load. These are loaded after the IWAD but before +# any files added with -file. Place each file on its own line, preceded +# by Path= +[Global.Autoload] + +# Wad files to automatically load depending on the game and IWAD you are +# playing. You may have have files that are loaded for all similar IWADs +# (the game) and files that are only loaded for particular IWADs. For example, +# any files listed under 'doom.Autoload' will be loaded for any version of Doom, +# but files listed under 'doom.doom2.Autoload' will only load when you are +# playing a Doom 2 based game (doom2.wad, tnt.wad or plutonia.wad), and files listed under +# 'doom.doom2.commercial.Autoload' only when playing doom2.wad. + +[doom.Autoload] + +[doom.id.Autoload] + +[doom.id.doom2.Autoload] + +[doom.id.doom2.commercial.Autoload] + +[doom.id.doom2.commercial.french.Autoload] + +[doom.id.doom2.commercial.xbox.Autoload] + +[doom.id.doom2.unity.Autoload] + +[doom.id.doom2.bfg.Autoload] + +[doom.id.doom2.plutonia.Autoload] + +[doom.id.doom2.plutonia.unity.Autoload] + +[doom.id.doom2.tnt.Autoload] + +[doom.id.doom2.tnt.unity.Autoload] + +[doom.id.doom1.Autoload] + +[doom.id.doom1.registered.Autoload] + +[doom.id.doom1.ultimate.Autoload] + +[doom.id.doom1.ultimate.xbox.Autoload] + +[doom.id.wadsmoosh.Autoload] + +[doom.id.doom1.unity.Autoload] + +[doom.id.doom1.bfg.Autoload] + +[doom.freedoom.Autoload] + +[doom.freedoom.demo.Autoload] + +[doom.freedoom.phase1.Autoload] + +[doom.freedoom.phase2.Autoload] + +[doom.freedoom.freedm.Autoload] + +[heretic.Autoload] + +[heretic.heretic.Autoload] + +[heretic.shadow.Autoload] + +[blasphemer.Autoload] + +[hexen.Autoload] + +[hexen.deathkings.Autoload] + +[hexen.hexen.Autoload] + +[strife.Autoload] + +[strife.strife.Autoload] + +[strife.veteran.Autoload] + +[chex.Autoload] + +[chex.chex1.Autoload] + +[chex.chex3.Autoload] + +[urbanbrawl.Autoload] + +[hacx.Autoload] + +[hacx.hacx1.Autoload] + +[hacx.hacx2.Autoload] + +[harmony.Autoload] + +[square.Autoload] + +[square.squareware.Autoload] + +[square.square.Autoload] + +[delaweare.Autoload] + +[woolball.Autoload] + +[woolball.rotwb.Autoload] + +[LastRun] +Version=225 + +[GlobalSettings] +I_FriendlyWindowTitle=1 +adl_chips_count=6 +adl_emulator_id=0 +adl_fullpan=true +adl_run_at_pcm_rate=false +adl_volume_model=0 +autoloadbrightmaps=false +autoloadlights=false +autoloadwidescreen=true +autosavecount=4 +autosavenum=0 +chase_dist=90 +chase_height=-8 +cl_capfps=false +cl_defaultconfiguration=1 +cl_noprediction=false +cl_oldfreelooklimit=false +cl_predict_lerpscale=0.05 +cl_predict_lerpthreshold=2 +cl_predict_specials=true +cl_run=false +cl_scaleweaponfov=1 +cl_waitforsave=true +con_4bitansi=false +con_buffersize=-1 +con_ctrl_d= +con_notifylines=4 +con_printansi=true +defaultiwad= +demo_compress=true +developer=0 +disableautoload=false +disableautosave=0 +enablescriptscreenshot=false +fluid_chorus=false +fluid_chorus_depth=8 +fluid_chorus_level=1 +fluid_chorus_speed=0.3 +fluid_chorus_type=0 +fluid_chorus_voices=3 +fluid_gain=0.5 +fluid_interp=1 +fluid_lib= +fluid_patchset=/app/share/sounds/sf2/gzdoom.sf2 +fluid_reverb=false +fluid_reverb_damping=0.23 +fluid_reverb_level=0.57 +fluid_reverb_roomsize=0.61 +fluid_reverb_width=0.76 +fluid_samplerate=0 +fluid_threads=1 +fluid_voices=128 +freelook=true +gl_billboard_faces_camera=false +gl_billboard_mode=0 +gl_billboard_particles=true +gl_cachenodes=true +gl_cachetime=0.6 +gl_debug=false +gl_debug_breakpoint=false +gl_debug_level=0 +gl_distfog=70 +gl_dither_bpc=0 +gl_enhanced_nv_stealth=3 +gl_es=false +gl_finishbeforeswap=false +gl_fxaa=0 +gl_lens=false +gl_lens_chromatic=1.12 +gl_lens_k=-0.12 +gl_lens_kcube=0.1 +gl_light_particles=true +gl_light_shadowmap=false +gl_light_sprites=true +gl_lights=true +gl_mask_sprite_threshold=0.5 +gl_mask_threshold=0.5 +gl_mirror_envmap=true +gl_multisample=1 +gl_multithread=true +gl_no_skyclear=false +gl_particles_style=2 +gl_pipeline_depth=0 +gl_plane_reflection=true +gl_satformula=1 +gl_seamless=false +gl_shadowmap_filter=1 +gl_shadowmap_quality=512 +gl_sort_textures=false +gl_sprite_blend=false +gl_ssao=0 +gl_ssao_portals=1 +gl_ssao_strength=0.7 +gl_texture_filter=4 +gl_texture_filter_anisotropic=8 +gl_texture_hqresize_maxinputsize=512 +gl_texture_hqresize_mt_height=4 +gl_texture_hqresize_mt_width=16 +gl_texture_hqresize_multithread=true +gl_texture_hqresize_targets=15 +gl_texture_hqresizemode=0 +gl_texture_hqresizemult=1 +gl_usecolorblending=true +gme_stereodepth=0 +gus_memsize=0 +gus_patchdir= +i_discordrpc=false +i_pauseinbackground=true +i_soundinbackground=false +inter_subtitles=false +invertmouse=false +invertmousex=false +language=auto +longsavemessages=false +lookstrafe=false +m_blockcontrollers=false +m_cleanscale=false +m_forward=1 +m_pitch=1 +m_sensitivity_x=2 +m_sensitivity_y=2 +m_show_backbutton=0 +m_showinputgrid=0 +m_side=2 +m_simpleoptions=true +m_use_mouse=2 +m_yaw=1 +map_point_coordinates=true +midi_config= +midi_dmxgus=false +midi_voices=32 +mod_autochip=false +mod_autochip_scan_threshold=12 +mod_autochip_size_force=100 +mod_autochip_size_scan=500 +mod_dumb_mastervolume=1 +mod_interp=2 +mod_samplerate=0 +mod_volramp=2 +mouse_capturemode=1 +mus_calcgain=true +mus_enabled=true +mus_gainoffset=0 +mus_usereplaygain=false +nointerscrollabort=false +nomonsterinterpolation=false +opl_core=0 +opl_fullpan=true +opl_numchips=2 +opn_chips_count=8 +opn_emulator_id=0 +opn_fullpan=true +opn_run_at_pcm_rate=false +os_isanyof=true +png_gamma=0 +png_level=5 +queryiwad=true +quicksavenum=-1 +quicksaverotation=false +quicksaverotationcount=4 +r_actorspriteshadow=1 +r_actorspriteshadowalpha=0.5 +r_actorspriteshadowdist=1500 +r_actorspriteshadowfadeheight=0 +r_blendmethod=false +r_dynlights=true +r_fakecontrast=1 +r_fullbrightignoresectorcolor=true +r_fuzzscale=true +r_line_distance_cull=0 +r_linearsky=false +r_magfilter=false +r_minfilter=true +r_mipmap=true +r_mirror_recursions=4 +r_models=true +r_multithreaded=1 +r_noaccel=false +r_quakeintensity=1 +r_skipmats=false +r_sprite_distance_cull=0 +r_spriteadjust=2 +r_ticstability=true +save_dir=RETRODECKSAVESDIR/doom/gzdoom +save_formatted=false +saveloadconfirmation=true +savestatistics=0 +screenshot_dir= +screenshot_quiet=false +screenshot_type=png +show_messages=true +showendoom=1 +snd_aldevice=Default +snd_alresampler=Default +snd_backend=openal +snd_buffersize=0 +snd_channels=128 +snd_efx=true +snd_enabled=true +snd_hrtf=-1 +snd_mastervolume=1 +snd_mididevice=-5 +snd_midiprecache=false +snd_musicvolume=0.5 +snd_samplerate=0 +snd_sfxvolume=1 +snd_streambuffersize=64 +snd_waterreverb=true +statfile=zdoomstat.txt +storesavepic=true +strictdecorate=false +telezoom=true +timidity_channel_pressure=false +timidity_chorus=0 +timidity_config=gzdoom +timidity_drum_effect=false +timidity_drum_power=1 +timidity_key_adjust=0 +timidity_lpf_def=1 +timidity_min_sustain_time=5000 +timidity_modulation_envelope=true +timidity_modulation_wheel=true +timidity_overlap_voice_allow=true +timidity_pan_delay=false +timidity_portamento=true +timidity_reverb=0 +timidity_reverb_level=0 +timidity_surround_chorus=false +timidity_temper_control=true +timidity_tempo_adjust=1 +turnspeedsprintfast=1280 +turnspeedsprintslow=320 +turnspeedwalkfast=640 +turnspeedwalkslow=320 +use_joystick=true +use_mouse=true +vid_activeinbackground=false +vid_adapter=0 +vid_aspect=0 +vid_brightness=0 +vid_contrast=1 +vid_cropaspect=false +vid_defheight=480 +vid_defwidth=640 +vid_fullscreen=true +vid_gamma=1 +vid_hdr=false +vid_maxfps=200 +vid_preferbackend=1 +vid_rendermode=4 +vid_saturation=1 +vid_scale_customheight=200 +vid_scale_custompixelaspect=1 +vid_scale_customwidth=320 +vid_scale_linear=false +vid_scalefactor=1 +vid_scalemode=0 +vid_sdl_render_driver= +vid_vsync=false +vk_debug=false +vk_debug_callstack=true +vk_device=0 +vk_exclusivefullscreen=false +vk_hdr=false +vk_raytrace=false +vr_hunits_per_meter=41 +vr_ipd=0.062 +vr_mode=0 +vr_screendist=0.8 +vr_swap_eyes=false +wildmidi_config= +wildmidi_enhanced_resampling=true +wildmidi_reverb=false +win_h=640 +win_maximized=false +win_w=1024 +win_x=-1 +win_y=-1 +xbrz_centerdirectionbias=4 +xbrz_colorformat=0 +xbrz_dominantdirectionthreshold=3.6 +xbrz_equalcolortolerance=30 +xbrz_luminanceweight=1 +xbrz_steepdirectionthreshold=2.2 + +[GlobalSettings.Unknown] +disablecrashlog= +gl_control_tear= +in_mouse= +joy_dinput= +joy_ps2raw= +joy_xinput= +k_allowfullscreentoggle= +k_mergekeys= +m_swapbuttons= +queryiwad_key= +sentstats_hwr_done= +sys_statsenabled49= +sys_statshost= +sys_statsport= +vid_gpuswitch= +vr_enable_quadbuffered= + +[Doom.Player] +autoaim=35 +classicflight=false +color=40 cf 00 +colorset=0 +fov=90 +fviewbob=true +gender=other +movebob=0.25 +name=RetroDECK +neverswitchonpickup=false +playerclass=Fighter +skin=base +stillbob=0 +team=255 +vertspread=false +wbobfire=0 +wbobspeed=1 +wi_noautostartmap=false + +[Doom.ConsoleVariables] +addrocketexplosion=false +adl_bank=14 +adl_custom_bank= +adl_use_custom_bank=false +allcheats=false +am_backcolor=6c 54 40 +am_cdwallcolor=4c 38 20 +am_colorset=0 +am_customcolors=true +am_drawmapback=1 +am_efwallcolor=66 55 55 +am_emptyspacemargin=0 +am_fdwallcolor=88 70 58 +am_followplayer=true +am_gridcolor=8b 5a 2b +am_interlevelcolor=ff 00 00 +am_intralevelcolor=00 00 ff +am_linealpha=1 +am_lineantialiasing=0 +am_linethickness=1 +am_lockedcolor=00 78 00 +am_map_secrets=1 +am_markcolor=2 +am_markfont=AMMNUMx +am_notseencolor=6c 6c 6c +am_ovcdwallcolor=00 88 44 +am_ovefwallcolor=00 88 44 +am_overlay=0 +am_ovfdwallcolor=00 88 44 +am_ovinterlevelcolor=ff ff 00 +am_ovlockedcolor=00 88 44 +am_ovotherwallscolor=00 88 44 +am_ovportalcolor=00 40 22 +am_ovsecretsectorcolor=00 ff ff +am_ovsecretwallcolor=00 88 44 +am_ovspecialwallcolor=ff ff ff +am_ovtelecolor=ff ff 00 +am_ovthingcolor=e8 88 00 +am_ovthingcolor_citem=e8 88 00 +am_ovthingcolor_friend=e8 88 00 +am_ovthingcolor_item=e8 88 00 +am_ovthingcolor_monster=e8 88 00 +am_ovthingcolor_ncmonster=e8 88 00 +am_ovunexploredsecretcolor=00 ff ff +am_ovunseencolor=00 22 6e +am_ovwallcolor=00 ff 00 +am_ovyourcolor=fc e8 d8 +am_portalcolor=40 40 40 +am_portaloverlay=true +am_rotate=0 +am_secretsectorcolor=ff 00 ff +am_secretwallcolor=00 00 00 +am_showcluster=false +am_showepisode=false +am_showgrid=false +am_showitems=false +am_showkeys=true +am_showkeys_always=false +am_showmaplabel=2 +am_showmonsters=true +am_showsecrets=true +am_showthingsprites=0 +am_showtime=true +am_showtotaltime=false +am_showtriggerlines=0 +am_specialwallcolor=ff ff ff +am_textured=false +am_thingcolor=fc fc fc +am_thingcolor_citem=fc fc fc +am_thingcolor_friend=fc fc fc +am_thingcolor_item=fc fc fc +am_thingcolor_monster=fc fc fc +am_thingcolor_ncmonster=fc fc fc +am_thingrenderstyles=true +am_tswallcolor=88 88 88 +am_unexploredsecretcolor=ff 00 ff +am_wallcolor=2c 18 08 +am_xhaircolor=80 80 80 +am_yourcolor=fc e8 d8 +am_zoomdir=0 +blood_fade_scalar=1 +chat_substitution=false +chatmacro0=No +chatmacro1=I'm ready to kick butt! +chatmacro2=I'm OK. +chatmacro3=I'm not looking too good! +chatmacro4=Help! +chatmacro5=You suck! +chatmacro6=Next time, scumbag... +chatmacro7=Come here! +chatmacro8=I'll take care of it. +chatmacro9=Yes +cl_bbannounce=false +cl_bloodsplats=true +cl_bloodtype=0 +cl_custominvulmapcolor1=00 00 1a +cl_custominvulmapcolor2=a6 a6 7a +cl_customizeinvulmap=false +cl_doautoaim=false +cl_gfxlocalization=3 +cl_maxdecals=1024 +cl_missiledecals=true +cl_nointros=false +cl_pufftype=0 +cl_rockettrails=1 +cl_showmultikills=true +cl_showsecretmessage=true +cl_showsprees=true +cl_spreaddecals=true +classic_scaling_factor=1 +classic_scaling_pixelaspect=1.2 +compatmode=0 +con_alpha=0.75 +con_centernotify=false +con_midtime=3 +con_notablist=false +con_notifytime=3 +con_pulsetext=false +con_scale=0 +con_scaletext=0 +crosshair=0 +crosshaircolor=ff 00 00 +crosshairforce=false +crosshairgrow=false +crosshairhealth=2 +crosshairon=true +crosshairscale=0.5 +dehload=0 +dimamount=-1 +dimcolor=ff d7 00 +displaynametags=0 +dlg_musicvolume=1 +dlg_vgafont=false +gl_aalines=false +gl_bandedswlight=false +gl_bloom=false +gl_bloom_amount=1.4 +gl_brightfog=false +gl_coronas=true +gl_enhanced_nightvision=true +gl_exposure_base=0.35 +gl_exposure_min=0.35 +gl_exposure_scale=1.3 +gl_exposure_speed=0.05 +gl_fogmode=2 +gl_fuzztype=0 +gl_interpolate_model_frames=true +gl_light_models=true +gl_lightadditivesurfaces=false +gl_lightmode=1 +gl_menu_blur=-1 +gl_paltonemap_powtable=2 +gl_paltonemap_reverselookup=true +gl_precache=false +gl_scale_viewport=true +gl_sclipfactor=1.8 +gl_sclipthreshold=10 +gl_spriteclip=1 +gl_tonemap=0 +gl_weaponlight=8 +hud_althud=false +hud_althud_forceinternal=false +hud_althudscale=0 +hud_ammo_order=0 +hud_ammo_red=25 +hud_ammo_yellow=50 +hud_armor_green=100 +hud_armor_red=25 +hud_armor_yellow=50 +hud_aspectscale=true +hud_berserk_health=true +hud_health_green=100 +hud_health_red=25 +hud_health_yellow=50 +hud_oldscale=true +hud_scale=0 +hud_scalefactor=1 +hud_showammo=2 +hud_showangles=false +hud_showitems=false +hud_showlag=0 +hud_showmonsters=true +hud_showscore=false +hud_showsecrets=true +hud_showstats=false +hud_showtime=0 +hud_showtimestat=0 +hud_showweapons=true +hud_timecolor=5 +hudcolor_ltim=8 +hudcolor_statnames=6 +hudcolor_stats=3 +hudcolor_time=6 +hudcolor_titl=10 +hudcolor_ttim=5 +hudcolor_xyco=3 +inter_classic_scaling=true +log_vgafont=false +lookspring=true +m_quickexit=false +msg=0 +msg0color=11 +msg1color=5 +msg2color=2 +msg3color=3 +msg4color=3 +msgmidcolor=11 +msgmidcolor2=4 +nametagcolor=5 +nocheats=false +opn_custom_bank= +opn_use_custom_bank=false +paletteflash=0 +pickup_fade_scalar=1 +r_deathcamera=false +r_drawfuzz=1 +r_maxparticles=4000 +r_portal_recursions=4 +r_rail_smartspiral=false +r_rail_spiralsparsity=1 +r_rail_trailsparsity=1 +r_skymode=2 +r_vanillatrans=0 +sb_cooperative_enable=true +sb_cooperative_headingcolor=6 +sb_cooperative_otherplayercolor=2 +sb_cooperative_yourplayercolor=3 +sb_deathmatch_enable=true +sb_deathmatch_headingcolor=6 +sb_deathmatch_otherplayercolor=2 +sb_deathmatch_yourplayercolor=3 +sb_teamdeathmatch_enable=true +sb_teamdeathmatch_headingcolor=6 +screenblocks=10 +setslotstrict=true +show_obituaries=true +snd_menuvolume=0.6 +snd_pitched=false +st_oldouch=false +st_scale=0 +transsouls=0.75 +ui_screenborder_classic_scaling=true +uiscale=0 +underwater_fade_scalar=1 +vid_allowtrueultrawide=1 +vid_cursor=None +vid_nopalsubstitutions=false +wi_cleantextscale=false +wi_percents=true +wi_showtotaltime=true +wipetype=1 + +[Doom.LocalServerInfo] +compatflags=0 +compatflags2=0 +forcewater=false +maxviewpitch=90 +sv_corpsequeuesize=64 +sv_disableautohealth=false +sv_dropstyle=0 +sv_portal_recursions=4 +sv_smartaim=0 + +[Doom.ConfigOnlyVariables] + +[Doom.UnknownConsoleVariables] + +[Doom.ConsoleAliases] + +[Doom.Bindings] +1=slot 1 +2=slot 2 +3=slot 3 +4=slot 4 +5=slot 5 +6=slot 6 +7=slot 7 +8=slot 8 +9=slot 9 +0=slot 0 +-=sizedown +Equals=sizeup +Tab=togglemap +W=+forward +E=+use +T=messagemode +LeftBracket=invprev +RightBracket=invnext +Enter=invuse +A=+moveleft +S=+back +D=+moveright +`=toggleconsole +Shift=+speed +\=+showscores +CapsLock=toggle cl_run +Space=+jump +F1=menu_help +F2=menu_save +F3=menu_load +F4=menu_options +F5=menu_display +F6=quicksave +F7=menu_endgame +F8=togglemessages +F9=quickload +F10=menu_quit +Scroll=+showscores +F11=bumpgamma +F12=spynext +SysRq=screenshot +Pause=pause +Home=land +PgUp=+moveup +End=centerview +PgDn=+lookup +Ins=+movedown +Del=+lookdown +Mouse1=+attack +Mouse2=+altattack +MWheelUp=weapprev +MWheelDown=weapnext +MWheelRight=invnext +MWheelLeft=invprev +DPadUp=togglemap +DPadDown=invuse +DPadLeft=invprev +DPadRight=invnext +Pad_Start=pause +Pad_Back=menu_main +LShoulder=weapprev +RShoulder=weapnext +LTrigger=+altattack +RTrigger=+attack +Pad_A=+use +Pad_Y=+jump +W=+forward +E=+use +A=+moveleft +S=+back +D=+moveright +Q=di_taunttoggle +I=di_toggleinfrared +P=di_showupgrades_bind +F=di_useitem_bind +M=di_modscreen +R=+reload +C=+crouch +,=di_prevSong +.=di_skipSong +UpArrow=+forward +LeftArrow=+moveleft +RightArrow=+moveright +DownArrow=+back +Joy1=+use +Joy3=+reload +Joy4=+jump +Joy5=weapprev +Joy6=weapnext +Joy8=menu_main +Joy10=toggle cl_run +Joy11=crouch + +[Doom.DoubleBindings] + +[Doom.AutomapBindings] +0=am_gobig +-=+am_zoomout +Equals=+am_zoomin +P=am_toggletexture +F=am_togglefollow +G=am_togglegrid +C=am_clearmarks +M=am_setmark +KP-=+am_zoomout +KP+=+am_zoomin +UpArrow=+am_panup +LeftArrow=+am_panleft +RightArrow=+am_panright +DownArrow=+am_pandown +MWheelUp=am_zoom 1.2 +MWheelDown=am_zoom -1.2 + +[Heretic.Player] +autoaim=35 +classicflight=false +color=3f 60 40 +colorset=0 +fov=90 +fviewbob=true +gender=other +movebob=0.25 +name=PortaDOOM +neverswitchonpickup=false +playerclass=Fighter +skin=base +stillbob=0 +team=255 +vertspread=false +wbobfire=0 +wbobspeed=1 +wi_noautostartmap=false + +[Heretic.ConsoleVariables] +addrocketexplosion=false +adl_bank=14 +adl_custom_bank= +adl_use_custom_bank=false +allcheats=false +am_backcolor=6c 54 40 +am_cdwallcolor=73 43 23 +am_colorset=0 +am_customcolors=true +am_drawmapback=1 +am_efwallcolor=66 55 55 +am_emptyspacemargin=0 +am_fdwallcolor=d0 b0 85 +am_followplayer=true +am_gridcolor=8b 5a 2b +am_interlevelcolor=ff 00 00 +am_intralevelcolor=00 00 ff +am_linealpha=1 +am_lineantialiasing=0 +am_linethickness=1 +am_lockedcolor=00 78 00 +am_map_secrets=1 +am_markcolor=2 +am_markfont=AMMNUMx +am_notseencolor=6c 6c 6c +am_ovcdwallcolor=00 88 44 +am_ovefwallcolor=00 88 44 +am_overlay=0 +am_ovfdwallcolor=00 88 44 +am_ovinterlevelcolor=ff ff 00 +am_ovlockedcolor=00 88 44 +am_ovotherwallscolor=00 88 44 +am_ovportalcolor=00 40 22 +am_ovsecretsectorcolor=00 ff ff +am_ovsecretwallcolor=00 88 44 +am_ovspecialwallcolor=ff ff ff +am_ovtelecolor=ff ff 00 +am_ovthingcolor=e8 88 00 +am_ovthingcolor_citem=e8 88 00 +am_ovthingcolor_friend=e8 88 00 +am_ovthingcolor_item=e8 88 00 +am_ovthingcolor_monster=e8 88 00 +am_ovthingcolor_ncmonster=e8 88 00 +am_ovunexploredsecretcolor=00 ff ff +am_ovunseencolor=00 22 6e +am_ovwallcolor=00 ff 00 +am_ovyourcolor=fc e8 d8 +am_portalcolor=40 40 40 +am_portaloverlay=true +am_rotate=0 +am_secretsectorcolor=ff 00 ff +am_secretwallcolor=00 00 00 +am_showcluster=false +am_showepisode=false +am_showgrid=false +am_showitems=true +am_showkeys=true +am_showkeys_always=false +am_showmaplabel=2 +am_showmonsters=true +am_showsecrets=true +am_showthingsprites=0 +am_showtime=true +am_showtotaltime=false +am_showtriggerlines=0 +am_specialwallcolor=ff ff ff +am_textured=false +am_thingcolor=fc fc fc +am_thingcolor_citem=fc fc fc +am_thingcolor_friend=fc fc fc +am_thingcolor_item=fc fc fc +am_thingcolor_monster=fc fc fc +am_thingcolor_ncmonster=fc fc fc +am_thingrenderstyles=true +am_tswallcolor=88 88 88 +am_unexploredsecretcolor=ff 00 ff +am_wallcolor=54 3b 17 +am_xhaircolor=80 80 80 +am_yourcolor=fc e8 d8 +am_zoomdir=0 +blood_fade_scalar=1 +chat_substitution=false +chatmacro0=No +chatmacro1=I'm ready to kick butt! +chatmacro2=I'm OK. +chatmacro3=I'm not looking too good! +chatmacro4=Help! +chatmacro5=You suck! +chatmacro6=Next time, scumbag... +chatmacro7=Come here! +chatmacro8=I'll take care of it. +chatmacro9=Yes +cl_bbannounce=false +cl_bloodsplats=true +cl_bloodtype=0 +cl_custominvulmapcolor1=00 00 1a +cl_custominvulmapcolor2=a6 a6 7a +cl_customizeinvulmap=false +cl_doautoaim=false +cl_gfxlocalization=3 +cl_maxdecals=1024 +cl_missiledecals=true +cl_nointros=false +cl_pufftype=0 +cl_rockettrails=1 +cl_showmultikills=true +cl_showsecretmessage=true +cl_showsprees=true +cl_spreaddecals=true +classic_scaling_factor=1 +classic_scaling_pixelaspect=1.2 +compatmode=0 +con_alpha=0.75 +con_centernotify=true +con_midtime=3 +con_notablist=false +con_notifytime=3 +con_pulsetext=false +con_scale=0 +con_scaletext=2 +crosshair=2 +crosshaircolor=ff 00 00 +crosshairforce=false +crosshairgrow=false +crosshairhealth=2 +crosshairon=true +crosshairscale=0 +dehload=0 +dimamount=-1 +dimcolor=ff d7 00 +displaynametags=0 +dlg_musicvolume=1 +dlg_vgafont=false +gl_aalines=false +gl_bandedswlight=false +gl_bloom=false +gl_bloom_amount=1.4 +gl_brightfog=false +gl_coronas=true +gl_enhanced_nightvision=true +gl_exposure_base=0.35 +gl_exposure_min=0.35 +gl_exposure_scale=1.3 +gl_exposure_speed=0.05 +gl_fogmode=2 +gl_fuzztype=0 +gl_interpolate_model_frames=true +gl_light_models=true +gl_lightadditivesurfaces=false +gl_lightmode=0 +gl_menu_blur=-1 +gl_paltonemap_powtable=2 +gl_paltonemap_reverselookup=true +gl_precache=false +gl_scale_viewport=true +gl_sclipfactor=1.8 +gl_sclipthreshold=10 +gl_spriteclip=1 +gl_tonemap=0 +gl_weaponlight=8 +hud_althud=false +hud_althud_forceinternal=false +hud_althudscale=0 +hud_ammo_order=0 +hud_ammo_red=25 +hud_ammo_yellow=50 +hud_armor_green=100 +hud_armor_red=25 +hud_armor_yellow=50 +hud_aspectscale=true +hud_berserk_health=true +hud_health_green=100 +hud_health_red=25 +hud_health_yellow=50 +hud_oldscale=true +hud_scale=-1 +hud_scalefactor=1 +hud_showammo=2 +hud_showangles=false +hud_showitems=false +hud_showlag=0 +hud_showmonsters=true +hud_showscore=false +hud_showsecrets=true +hud_showstats=false +hud_showtime=0 +hud_showtimestat=0 +hud_showweapons=true +hud_timecolor=5 +hudcolor_ltim=8 +hudcolor_statnames=6 +hudcolor_stats=3 +hudcolor_time=6 +hudcolor_titl=10 +hudcolor_ttim=5 +hudcolor_xyco=3 +inter_classic_scaling=true +log_vgafont=false +lookspring=true +m_quickexit=false +msg=0 +msg0color=9 +msg1color=5 +msg2color=2 +msg3color=3 +msg4color=3 +msgmidcolor=9 +msgmidcolor2=10 +nametagcolor=5 +nocheats=false +opn_custom_bank= +opn_use_custom_bank=false +paletteflash=0 +pickup_fade_scalar=1 +r_deathcamera=false +r_drawfuzz=1 +r_maxparticles=4000 +r_portal_recursions=4 +r_rail_smartspiral=false +r_rail_spiralsparsity=1 +r_rail_trailsparsity=1 +r_skymode=2 +r_vanillatrans=0 +sb_cooperative_enable=true +sb_cooperative_headingcolor=6 +sb_cooperative_otherplayercolor=2 +sb_cooperative_yourplayercolor=3 +sb_deathmatch_enable=true +sb_deathmatch_headingcolor=6 +sb_deathmatch_otherplayercolor=2 +sb_deathmatch_yourplayercolor=3 +sb_teamdeathmatch_enable=true +sb_teamdeathmatch_headingcolor=6 +screenblocks=11 +setslotstrict=true +show_obituaries=true +snd_menuvolume=0.6 +snd_pitched=true +st_oldouch=false +st_scale=-1 +transsouls=0.75 +ui_screenborder_classic_scaling=true +uiscale=0 +underwater_fade_scalar=1 +vid_allowtrueultrawide=1 +vid_cursor=- +vid_nopalsubstitutions=false +wi_cleantextscale=false +wi_percents=false +wi_showtotaltime=true +wipetype=0 + +[Heretic.LocalServerInfo] +compatflags=0 +compatflags2=0 +forcewater=false +maxviewpitch=90 +sv_corpsequeuesize=64 +sv_disableautohealth=false +sv_dropstyle=0 +sv_portal_recursions=4 +sv_smartaim=0 + +[Heretic.ConfigOnlyVariables] + +[Heretic.UnknownConsoleVariables] + +[Heretic.ConsoleAliases] + +[Heretic.Bindings] +1=slot 1 +2=slot 2 +3=slot 3 +4=slot 4 +5=slot 5 +6=slot 6 +7=slot 7 +8=slot 8 +9=slot 9 +0=slot 0 +-=sizedown +Equals=sizeup +Backspace=use ArtiTomeOfPower +Tab=togglemap +W=+forward +E=+use +T=messagemode +LeftBracket=invprev +RightBracket=invnext +Enter=invuse +A=+moveleft +S=+back +D=+moveright +`=toggleconsole +Shift=+speed +\=+showscores +C=crouch +Space=+jump +CapsLock=toggle cl_run +F1=menu_help +F2=menu_save +F3=menu_load +F4=menu_options +F5=menu_display +F6=quicksave +F7=menu_endgame +F8=togglemessages +F9=quickload +F10=menu_quit +F11=bumpgamma +F12=screenshot +SysRq=screenshot +Pause=pause +Home=land +PgUp=+moveup +End=centerview +PgDn=+lookup +Ins=+movedown +Del=+lookdown +Mouse1=+attack +Mouse2=+altattack +MWheelUp=weapprev +MWheelDown=weapnext +MWheelRight=invnext +MWheelLeft=invprev +DPadUp=togglemap +DPadDown=invuse +DPadLeft=invprev +DPadRight=invnext +Pad_Start=pause +Pad_Back=menu_main +LShoulder=weapprev +RShoulder=weapnext +LTrigger=+altattack +RTrigger=+attack +Pad_A=+use +Pad_Y=+jump +Q=+zoom +R=+reload +C=+crouch +UpArrow=+forward +LeftArrow=+moveleft +RightArrow=+moveright +DownArrow=+back +Joy1=+use +Joy3=+reload +Joy4=+jump +Joy5=weapprev +Joy6=weapnext +Joy8=menu_main +Joy10=toggle cl_run +Joy11=crouch + +[Heretic.DoubleBindings] + +[Heretic.AutomapBindings] +0=am_gobig +-=+am_zoomout +Equals=+am_zoomin +P=am_toggletexture +F=am_togglefollow +G=am_togglegrid +C=am_clearmarks +M=am_setmark +KP-=+am_zoomout +KP+=+am_zoomin +UpArrow=+am_panup +LeftArrow=+am_panleft +RightArrow=+am_panright +DownArrow=+am_pandown +MWheelUp=am_zoom 1.2 +MWheelDown=am_zoom -1.2 + +[Hexen.Player] +autoaim=35 +classicflight=false +color=40 cf 00 +colorset=0 +fov=90 +fviewbob=true +gender=other +movebob=0.25 +name=PortaDOOM +neverswitchonpickup=false +playerclass=Cleric +skin=base +stillbob=0 +team=255 +vertspread=false +wbobfire=0 +wbobspeed=1 +wi_noautostartmap=false + +[Hexen.ConsoleVariables] +addrocketexplosion=false +adl_bank=14 +adl_custom_bank= +adl_use_custom_bank=false +allcheats=false +am_backcolor=6c 54 40 +am_cdwallcolor=73 43 23 +am_colorset=0 +am_customcolors=true +am_drawmapback=1 +am_efwallcolor=66 55 55 +am_emptyspacemargin=0 +am_fdwallcolor=d0 b0 85 +am_followplayer=true +am_gridcolor=8b 5a 2b +am_interlevelcolor=ff 00 00 +am_intralevelcolor=00 00 ff +am_linealpha=1 +am_lineantialiasing=0 +am_linethickness=1 +am_lockedcolor=00 78 00 +am_map_secrets=1 +am_markcolor=2 +am_markfont=AMMNUMx +am_notseencolor=6c 6c 6c +am_ovcdwallcolor=00 88 44 +am_ovefwallcolor=00 88 44 +am_overlay=0 +am_ovfdwallcolor=00 88 44 +am_ovinterlevelcolor=ff ff 00 +am_ovlockedcolor=00 88 44 +am_ovotherwallscolor=00 88 44 +am_ovportalcolor=00 40 22 +am_ovsecretsectorcolor=00 ff ff +am_ovsecretwallcolor=00 88 44 +am_ovspecialwallcolor=ff ff ff +am_ovtelecolor=ff ff 00 +am_ovthingcolor=e8 88 00 +am_ovthingcolor_citem=e8 88 00 +am_ovthingcolor_friend=e8 88 00 +am_ovthingcolor_item=e8 88 00 +am_ovthingcolor_monster=e8 88 00 +am_ovthingcolor_ncmonster=e8 88 00 +am_ovunexploredsecretcolor=00 ff ff +am_ovunseencolor=00 22 6e +am_ovwallcolor=00 ff 00 +am_ovyourcolor=fc e8 d8 +am_portalcolor=40 40 40 +am_portaloverlay=true +am_rotate=0 +am_secretsectorcolor=ff 00 ff +am_secretwallcolor=00 00 00 +am_showcluster=false +am_showepisode=false +am_showgrid=false +am_showitems=true +am_showkeys=true +am_showkeys_always=false +am_showmaplabel=2 +am_showmonsters=true +am_showsecrets=true +am_showthingsprites=0 +am_showtime=true +am_showtotaltime=false +am_showtriggerlines=0 +am_specialwallcolor=ff ff ff +am_textured=false +am_thingcolor=fc fc fc +am_thingcolor_citem=fc fc fc +am_thingcolor_friend=fc fc fc +am_thingcolor_item=fc fc fc +am_thingcolor_monster=fc fc fc +am_thingcolor_ncmonster=fc fc fc +am_thingrenderstyles=true +am_tswallcolor=88 88 88 +am_unexploredsecretcolor=ff 00 ff +am_wallcolor=54 3b 17 +am_xhaircolor=80 80 80 +am_yourcolor=fc e8 d8 +am_zoomdir=0 +blood_fade_scalar=1 +chat_substitution=false +chatmacro0=No +chatmacro1=I'm ready to kick butt! +chatmacro2=I'm OK. +chatmacro3=I'm not looking too good! +chatmacro4=Help! +chatmacro5=You suck! +chatmacro6=Next time, scumbag... +chatmacro7=Come here! +chatmacro8=I'll take care of it. +chatmacro9=Yes +cl_bbannounce=false +cl_bloodsplats=true +cl_bloodtype=0 +cl_custominvulmapcolor1=00 00 1a +cl_custominvulmapcolor2=a6 a6 7a +cl_customizeinvulmap=false +cl_doautoaim=false +cl_gfxlocalization=3 +cl_maxdecals=1024 +cl_missiledecals=true +cl_nointros=false +cl_pufftype=0 +cl_rockettrails=1 +cl_showmultikills=true +cl_showsecretmessage=true +cl_showsprees=true +cl_spreaddecals=true +classic_scaling_factor=1 +classic_scaling_pixelaspect=1.2 +compatmode=0 +con_alpha=0.75 +con_centernotify=true +con_midtime=3 +con_notablist=false +con_notifytime=3 +con_pulsetext=false +con_scale=0 +con_scaletext=2 +crosshair=2 +crosshaircolor=ff 00 00 +crosshairforce=false +crosshairgrow=false +crosshairhealth=2 +crosshairon=true +crosshairscale=0 +dehload=0 +dimamount=-1 +dimcolor=ff d7 00 +displaynametags=0 +dlg_musicvolume=1 +dlg_vgafont=false +gl_aalines=false +gl_bandedswlight=false +gl_bloom=false +gl_bloom_amount=1.4 +gl_brightfog=false +gl_coronas=true +gl_enhanced_nightvision=true +gl_exposure_base=0.35 +gl_exposure_min=0.35 +gl_exposure_scale=1.3 +gl_exposure_speed=0.05 +gl_fogmode=2 +gl_fuzztype=0 +gl_interpolate_model_frames=true +gl_light_models=true +gl_lightadditivesurfaces=false +gl_lightmode=0 +gl_menu_blur=-1 +gl_paltonemap_powtable=2 +gl_paltonemap_reverselookup=true +gl_precache=false +gl_scale_viewport=true +gl_sclipfactor=1.8 +gl_sclipthreshold=10 +gl_spriteclip=1 +gl_tonemap=0 +gl_weaponlight=8 +hud_althud=false +hud_althud_forceinternal=false +hud_althudscale=0 +hud_ammo_order=0 +hud_ammo_red=25 +hud_ammo_yellow=50 +hud_armor_green=100 +hud_armor_red=25 +hud_armor_yellow=50 +hud_aspectscale=true +hud_berserk_health=true +hud_health_green=100 +hud_health_red=25 +hud_health_yellow=50 +hud_oldscale=true +hud_scale=-1 +hud_scalefactor=1 +hud_showammo=2 +hud_showangles=false +hud_showitems=false +hud_showlag=0 +hud_showmonsters=true +hud_showscore=false +hud_showsecrets=true +hud_showstats=false +hud_showtime=0 +hud_showtimestat=0 +hud_showweapons=true +hud_timecolor=5 +hudcolor_ltim=8 +hudcolor_statnames=6 +hudcolor_stats=3 +hudcolor_time=6 +hudcolor_titl=10 +hudcolor_ttim=5 +hudcolor_xyco=3 +inter_classic_scaling=true +log_vgafont=false +lookspring=true +m_quickexit=false +msg=0 +msg0color=9 +msg1color=5 +msg2color=2 +msg3color=3 +msg4color=3 +msgmidcolor=9 +msgmidcolor2=10 +nametagcolor=5 +nocheats=false +opn_custom_bank= +opn_use_custom_bank=false +paletteflash=0 +pickup_fade_scalar=1 +r_deathcamera=false +r_drawfuzz=1 +r_maxparticles=4000 +r_portal_recursions=4 +r_rail_smartspiral=false +r_rail_spiralsparsity=1 +r_rail_trailsparsity=1 +r_skymode=2 +r_vanillatrans=0 +sb_cooperative_enable=true +sb_cooperative_headingcolor=6 +sb_cooperative_otherplayercolor=2 +sb_cooperative_yourplayercolor=3 +sb_deathmatch_enable=true +sb_deathmatch_headingcolor=6 +sb_deathmatch_otherplayercolor=2 +sb_deathmatch_yourplayercolor=3 +sb_teamdeathmatch_enable=true +sb_teamdeathmatch_headingcolor=6 +screenblocks=11 +setslotstrict=true +show_obituaries=true +snd_menuvolume=0.6 +snd_pitched=true +st_oldouch=false +st_scale=-1 +transsouls=0.75 +ui_screenborder_classic_scaling=true +uiscale=0 +underwater_fade_scalar=1 +vid_allowtrueultrawide=1 +vid_cursor=- +vid_nopalsubstitutions=false +wi_cleantextscale=false +wi_percents=false +wi_showtotaltime=true +wipetype=0 + +[Hexen.LocalServerInfo] +compatflags=0 +compatflags2=0 +forcewater=false +maxviewpitch=90 +sv_corpsequeuesize=64 +sv_disableautohealth=false +sv_dropstyle=0 +sv_portal_recursions=4 +sv_smartaim=0 + +[Hexen.ConfigOnlyVariables] + +[Hexen.UnknownConsoleVariables] + +[Hexen.ConsoleAliases] + +[Hexen.Bindings] +1=slot 1 +2=slot 2 +3=slot 3 +4=slot 4 +5=use ArtiInvulnerability2 +6=use ArtiPork +7=use ArtiTeleportOther +8=use ArtiTeleport +9=use ArtiBlastRadius +0=useflechette +-=sizedown +Equals=sizeup +Tab=togglemap +W=+forward +E=+use +T=messagemode +LeftBracket=invprev +RightBracket=invnext +Enter=invuse +A=+moveleft +S=+back +D=+moveright +`=toggleconsole +Shift=+speed +\=use ArtiHealth +Space=+jump +F1=menu_help +F2=menu_save +F3=menu_load +F4=menu_options +F5=menu_display +F6=quicksave +F7=menu_endgame +F8=togglemessages +F9=quickload +F10=menu_quit +Scroll=+showscores +F11=bumpgamma +F12=screenshot +SysRq=screenshot +Pause=pause +Home=land +PgUp=+moveup +End=centerview +PgDn=+lookup +Ins=+movedown +Del=+lookdown +Mouse1=+attack +Mouse2=+altattack +MWheelUp=weapprev +MWheelDown=weapnext +MWheelRight=invnext +MWheelLeft=invprev +DPadUp=togglemap +DPadDown=invuse +DPadLeft=invprev +DPadRight=invnext +Pad_Start=pause +Pad_Back=menu_main +LShoulder=weapprev +RShoulder=weapnext +LTrigger=+altattack +RTrigger=+attack +Pad_A=+use +Pad_Y=+jump +W=+forward +E=+use +A=+moveleft +S=+back +D=+moveright +Q=di_taunttoggle +I=di_toggleinfrared +P=di_showupgrades_bind +F=di_useitem_bind +M=di_modscreen +R=+reload +C=+crouch +,=di_prevSong +.=di_skipSong +UpArrow=+forward +LeftArrow=+moveleft +RightArrow=+moveright +DownArrow=+back +Joy1=+use +Joy3=+reload +Joy4=+jump +Joy5=weapprev +Joy6=weapnext +Joy8=menu_main +Joy10=toggle cl_run +Joy11=crouch + +[Hexen.DoubleBindings] + +[Hexen.AutomapBindings] +0=am_gobig +-=+am_zoomout +Equals=+am_zoomin +P=am_toggletexture +F=am_togglefollow +G=am_togglegrid +C=am_clearmarks +M=am_setmark +KP-=+am_zoomout +KP+=+am_zoomin +UpArrow=+am_panup +LeftArrow=+am_panleft +RightArrow=+am_panright +DownArrow=+am_pandown +MWheelUp=am_zoom 1.2 +MWheelDown=am_zoom -1.2 + +[Strife.Player] +autoaim=35 +classicflight=false +color=40 cf 00 +colorset=0 +fov=90 +gender=other +movebob=0.25 +name=PortaDOOM +neverswitchonpickup=false +playerclass=Fighter +skin=base +stillbob=0 +team=255 +vertspread=false +wbobfire=0 +wbobspeed=1 +wi_noautostartmap=false + +[Strife.ConsoleVariables] +addrocketexplosion=false +adl_bank=14 +adl_custom_bank= +adl_use_custom_bank=false +allcheats=false +am_backcolor=6c 54 40 +am_cdwallcolor=4c 38 20 +am_colorset=0 +am_customcolors=true +am_drawmapback=1 +am_efwallcolor=66 55 55 +am_emptyspacemargin=0 +am_fdwallcolor=88 70 58 +am_followplayer=true +am_gridcolor=8b 5a 2b +am_interlevelcolor=ff 00 00 +am_intralevelcolor=00 00 ff +am_linealpha=1 +am_linethickness=1 +am_lockedcolor=00 78 00 +am_map_secrets=1 +am_markcolor=2 +am_markfont=AMMNUMx +am_notseencolor=6c 6c 6c +am_ovcdwallcolor=00 88 44 +am_ovefwallcolor=00 88 44 +am_overlay=0 +am_ovfdwallcolor=00 88 44 +am_ovinterlevelcolor=ff ff 00 +am_ovlockedcolor=00 88 44 +am_ovotherwallscolor=00 88 44 +am_ovportalcolor=00 40 22 +am_ovsecretsectorcolor=00 ff ff +am_ovsecretwallcolor=00 88 44 +am_ovspecialwallcolor=ff ff ff +am_ovtelecolor=ff ff 00 +am_ovthingcolor=e8 88 00 +am_ovthingcolor_citem=e8 88 00 +am_ovthingcolor_friend=e8 88 00 +am_ovthingcolor_item=e8 88 00 +am_ovthingcolor_monster=e8 88 00 +am_ovthingcolor_ncmonster=e8 88 00 +am_ovunexploredsecretcolor=00 ff ff +am_ovunseencolor=00 22 6e +am_ovwallcolor=00 ff 00 +am_ovyourcolor=fc e8 d8 +am_portalcolor=40 40 40 +am_portaloverlay=true +am_rotate=0 +am_secretsectorcolor=ff 00 ff +am_secretwallcolor=00 00 00 +am_showcluster=false +am_showepisode=false +am_showgrid=false +am_showitems=true +am_showkeys=true +am_showkeys_always=false +am_showmaplabel=2 +am_showmonsters=true +am_showsecrets=true +am_showthingsprites=0 +am_showtime=true +am_showtotaltime=false +am_showtriggerlines=0 +am_specialwallcolor=ff ff ff +am_textured=false +am_thingcolor=fc fc fc +am_thingcolor_citem=fc fc fc +am_thingcolor_friend=fc fc fc +am_thingcolor_item=fc fc fc +am_thingcolor_monster=fc fc fc +am_thingcolor_ncmonster=fc fc fc +am_thingrenderstyles=true +am_tswallcolor=88 88 88 +am_unexploredsecretcolor=ff 00 ff +am_wallcolor=2c 18 08 +am_xhaircolor=80 80 80 +am_yourcolor=fc e8 d8 +am_zoomdir=0 +blood_fade_scalar=1 +chat_substitution=false +chatmacro0=No +chatmacro1=I'm ready to kick butt! +chatmacro2=I'm OK. +chatmacro3=I'm not looking too good! +chatmacro4=Help! +chatmacro5=You suck! +chatmacro6=Next time, scumbag... +chatmacro7=Come here! +chatmacro8=I'll take care of it. +chatmacro9=Yes +cl_bbannounce=false +cl_bloodsplats=true +cl_bloodtype=0 +cl_custominvulmapcolor1=00 00 1a +cl_custominvulmapcolor2=a6 a6 7a +cl_customizeinvulmap=false +cl_doautoaim=false +cl_gfxlocalization=3 +cl_maxdecals=1024 +cl_missiledecals=true +cl_nointros=false +cl_pufftype=0 +cl_rockettrails=1 +cl_showmultikills=true +cl_showsecretmessage=true +cl_showsprees=true +cl_spreaddecals=true +classic_scaling_factor=1 +classic_scaling_pixelaspect=1.2000000476837158 +compatmode=0 +con_alpha=0.75 +con_centernotify=false +con_midtime=3 +con_notablist=false +con_notifytime=3 +con_pulsetext=false +con_scale=0 +con_scaletext=2 +crosshair=2 +crosshaircolor=ff 00 00 +crosshairforce=false +crosshairgrow=false +crosshairhealth=2 +crosshairon=true +crosshairscale=0 +dehload=0 +dimamount=-1 +dimcolor=ff d7 00 +displaynametags=0 +dlg_musicvolume=1 +dlg_vgafont=false +gl_aalines=false +gl_bandedswlight=false +gl_bloom=false +gl_bloom_amount=1.399999976158142 +gl_brightfog=false +gl_coronas=true +gl_enhanced_nightvision=true +gl_exposure_base=0.3499999940395355 +gl_exposure_min=0.3499999940395355 +gl_exposure_scale=1.2999999523162842 +gl_exposure_speed=0.05000000074505806 +gl_fogmode=2 +gl_fuzztype=0 +gl_interpolate_model_frames=true +gl_light_models=true +gl_lightadditivesurfaces=false +gl_lightmode=0 +gl_menu_blur=-1 +gl_paltonemap_powtable=2 +gl_paltonemap_reverselookup=true +gl_precache=false +gl_scale_viewport=true +gl_sclipfactor=1.7999999523162842 +gl_sclipthreshold=10 +gl_spriteclip=1 +gl_tonemap=0 +gl_weaponlight=8 +hud_althud=false +hud_althud_forceinternal=false +hud_althudscale=0 +hud_ammo_order=0 +hud_ammo_red=25 +hud_ammo_yellow=50 +hud_armor_green=100 +hud_armor_red=25 +hud_armor_yellow=50 +hud_aspectscale=true +hud_berserk_health=true +hud_health_green=100 +hud_health_red=25 +hud_health_yellow=50 +hud_oldscale=true +hud_scale=-1 +hud_scalefactor=1 +hud_showammo=2 +hud_showangles=false +hud_showitems=false +hud_showlag=0 +hud_showmonsters=true +hud_showscore=false +hud_showsecrets=true +hud_showstats=false +hud_showtime=0 +hud_showtimestat=0 +hud_showweapons=true +hud_timecolor=5 +hudcolor_ltim=8 +hudcolor_statnames=6 +hudcolor_stats=3 +hudcolor_time=6 +hudcolor_titl=10 +hudcolor_ttim=5 +hudcolor_xyco=3 +inter_classic_scaling=true +log_vgafont=false +lookspring=true +m_quickexit=false +msg=0 +msg0color=11 +msg1color=5 +msg2color=2 +msg3color=3 +msg4color=3 +msgmidcolor=11 +msgmidcolor2=4 +nametagcolor=5 +nocheats=false +opn_custom_bank= +opn_use_custom_bank=false +paletteflash=0 +pickup_fade_scalar=1 +r_deathcamera=false +r_drawfuzz=1 +r_maxparticles=4000 +r_portal_recursions=4 +r_rail_smartspiral=false +r_rail_spiralsparsity=1 +r_rail_trailsparsity=1 +r_skymode=2 +r_vanillatrans=0 +sb_cooperative_enable=true +sb_cooperative_headingcolor=6 +sb_cooperative_otherplayercolor=2 +sb_cooperative_yourplayercolor=3 +sb_deathmatch_enable=true +sb_deathmatch_headingcolor=6 +sb_deathmatch_otherplayercolor=2 +sb_deathmatch_yourplayercolor=3 +sb_teamdeathmatch_enable=true +sb_teamdeathmatch_headingcolor=6 +screenblocks=11 +setslotstrict=true +show_obituaries=true +snd_menuvolume=0.6000000238418579 +snd_pitched=false +st_oldouch=false +st_scale=-1 +transsouls=0.75 +ui_screenborder_classic_scaling=true +uiscale=0 +underwater_fade_scalar=1 +vid_allowtrueultrawide=1 +vid_cursor=- +vid_nopalsubstitutions=false +wi_cleantextscale=false +wi_percents=true +wi_showtotaltime=true +wipetype=3 + +[Strife.LocalServerInfo] +compatflags=0 +compatflags2=0 +forcewater=false +maxviewpitch=90 +sv_corpsequeuesize=64 +sv_disableautohealth=false +sv_dropstyle=0 +sv_portal_recursions=4 +sv_smartaim=0 + +[Strife.ConfigOnlyVariables] + +[Strife.UnknownConsoleVariables] + +[Strife.ConsoleAliases] + +[Strife.Bindings] +1=slot 1 +2=slot 2 +3=slot 3 +4=slot 4 +5=slot 5 +6=slot 6 +7=slot 7 +8=slot 8 +9=slot 9 +0=slot 0 +-=sizedown +Equals=sizeup +Backspace=invdrop +Tab=togglemap +Q=+zoom +W=+forward +E=+use +T=messagemode +LeftBracket=invprev +RightBracket=invnext +Enter=invuse +A=+moveleft +S=+back +D=+moveright +K=showpop 2 +`=toggleconsole +Shift=+speed +\=+showscores +Z=showpop 3 +X=crouch +C=+crouch +Space=+jump +CapsLock=toggle cl_run +F1=menu_help +F2=menu_save +F3=menu_load +F4=menu_options +F5=menu_display +F6=quicksave +F7=menu_endgame +F8=togglemessages +F9=quickload +F10=menu_quit +F11=bumpgamma +F12=screenshot +SysRq=screenshot +Pause=pause +Home=land +PgUp=+moveup +End=centerview +PgDn=+lookup +Ins=+movedown +Del=+lookdown +Mouse1=+attack +Mouse2=+altattack +MWheelUp=weapprev +MWheelDown=weapnext +MWheelRight=invnext +MWheelLeft=invprev +DPadUp=togglemap +DPadDown=invuse +DPadLeft=invprev +DPadRight=invnext +Pad_Start=pause +Pad_Back=menu_main +LShoulder=weapprev +RShoulder=weapnext +LTrigger=+altattack +RTrigger=+attack +Pad_A=+use +Pad_Y=+jump +R=+reload +UpArrow=+forward +LeftArrow=+moveleft +RightArrow=+moveright +DownArrow=+back +Joy1=+use +Joy3=+reload +Joy4=+jump +Joy5=weapprev +Joy6=weapnext +Joy8=menu_main +Joy10=toggle cl_run +Joy11=crouch + +[Strife.DoubleBindings] + +[Strife.AutomapBindings] +0=am_gobig +-=+am_zoomout +Equals=+am_zoomin +P=am_toggletexture +F=am_togglefollow +G=am_togglegrid +C=am_clearmarks +M=am_setmark +KP-=+am_zoomout +KP+=+am_zoomin +UpArrow=+am_panup +LeftArrow=+am_panleft +RightArrow=+am_panright +DownArrow=+am_pandown +MWheelUp=am_zoom 1.2 +MWheelDown=am_zoom -1.2 + +[Chex.Player] +autoaim=35 +classicflight=false +color=40 cf 00 +colorset=0 +fov=90 +gender=other +movebob=0.25 +name=PortaDOOM +neverswitchonpickup=false +playerclass=Fighter +skin=base +stillbob=0 +team=255 +vertspread=false +wbobfire=0 +wbobspeed=1 +wi_noautostartmap=false + +[Chex.ConsoleVariables] +addrocketexplosion=false +adl_bank=14 +adl_custom_bank= +adl_use_custom_bank=false +allcheats=false +am_backcolor=6c 54 40 +am_cdwallcolor=4c 38 20 +am_colorset=0 +am_customcolors=true +am_drawmapback=1 +am_efwallcolor=66 55 55 +am_emptyspacemargin=0 +am_fdwallcolor=88 70 58 +am_followplayer=true +am_gridcolor=8b 5a 2b +am_interlevelcolor=ff 00 00 +am_intralevelcolor=00 00 ff +am_linealpha=1 +am_linethickness=1 +am_lockedcolor=00 78 00 +am_map_secrets=1 +am_markcolor=2 +am_markfont=AMMNUMx +am_notseencolor=6c 6c 6c +am_ovcdwallcolor=00 88 44 +am_ovefwallcolor=00 88 44 +am_overlay=0 +am_ovfdwallcolor=00 88 44 +am_ovinterlevelcolor=ff ff 00 +am_ovlockedcolor=00 88 44 +am_ovotherwallscolor=00 88 44 +am_ovportalcolor=00 40 22 +am_ovsecretsectorcolor=00 ff ff +am_ovsecretwallcolor=00 88 44 +am_ovspecialwallcolor=ff ff ff +am_ovtelecolor=ff ff 00 +am_ovthingcolor=e8 88 00 +am_ovthingcolor_citem=e8 88 00 +am_ovthingcolor_friend=e8 88 00 +am_ovthingcolor_item=e8 88 00 +am_ovthingcolor_monster=e8 88 00 +am_ovthingcolor_ncmonster=e8 88 00 +am_ovunexploredsecretcolor=00 ff ff +am_ovunseencolor=00 22 6e +am_ovwallcolor=00 ff 00 +am_ovyourcolor=fc e8 d8 +am_portalcolor=40 40 40 +am_portaloverlay=true +am_rotate=0 +am_secretsectorcolor=ff 00 ff +am_secretwallcolor=00 00 00 +am_showcluster=false +am_showepisode=false +am_showgrid=false +am_showitems=true +am_showkeys=true +am_showkeys_always=false +am_showmaplabel=2 +am_showmonsters=true +am_showsecrets=true +am_showthingsprites=0 +am_showtime=true +am_showtotaltime=false +am_showtriggerlines=0 +am_specialwallcolor=ff ff ff +am_textured=false +am_thingcolor=fc fc fc +am_thingcolor_citem=fc fc fc +am_thingcolor_friend=fc fc fc +am_thingcolor_item=fc fc fc +am_thingcolor_monster=fc fc fc +am_thingcolor_ncmonster=fc fc fc +am_thingrenderstyles=true +am_tswallcolor=88 88 88 +am_unexploredsecretcolor=ff 00 ff +am_wallcolor=2c 18 08 +am_xhaircolor=80 80 80 +am_yourcolor=fc e8 d8 +am_zoomdir=0 +blood_fade_scalar=1 +chat_substitution=false +chatmacro0=No +chatmacro1=I'm ready to kick butt! +chatmacro2=I'm OK. +chatmacro3=I'm not looking too good! +chatmacro4=Help! +chatmacro5=You suck! +chatmacro6=Next time, scumbag... +chatmacro7=Come here! +chatmacro8=I'll take care of it. +chatmacro9=Yes +cl_bbannounce=false +cl_bloodsplats=true +cl_bloodtype=0 +cl_custominvulmapcolor1=00 00 1a +cl_custominvulmapcolor2=a6 a6 7a +cl_customizeinvulmap=false +cl_doautoaim=false +cl_gfxlocalization=3 +cl_maxdecals=1024 +cl_missiledecals=true +cl_nointros=false +cl_pufftype=0 +cl_rockettrails=1 +cl_showmultikills=true +cl_showsecretmessage=true +cl_showsprees=true +cl_spreaddecals=true +classic_scaling_factor=1 +classic_scaling_pixelaspect=1.2000000476837158 +compatmode=0 +con_alpha=0.75 +con_centernotify=false +con_midtime=3 +con_notablist=false +con_notifytime=3 +con_pulsetext=false +con_scale=0 +con_scaletext=2 +crosshair=2 +crosshaircolor=ff 00 00 +crosshairforce=false +crosshairgrow=false +crosshairhealth=2 +crosshairon=true +crosshairscale=0 +dehload=0 +dimamount=-1 +dimcolor=ff d7 00 +displaynametags=0 +dlg_musicvolume=1 +dlg_vgafont=false +gl_aalines=false +gl_bandedswlight=false +gl_bloom=false +gl_bloom_amount=1.399999976158142 +gl_brightfog=false +gl_coronas=true +gl_enhanced_nightvision=true +gl_exposure_base=0.3499999940395355 +gl_exposure_min=0.3499999940395355 +gl_exposure_scale=1.2999999523162842 +gl_exposure_speed=0.05000000074505806 +gl_fogmode=2 +gl_fuzztype=0 +gl_interpolate_model_frames=true +gl_light_models=true +gl_lightadditivesurfaces=false +gl_lightmode=0 +gl_menu_blur=-1 +gl_paltonemap_powtable=2 +gl_paltonemap_reverselookup=true +gl_precache=false +gl_scale_viewport=true +gl_sclipfactor=1.7999999523162842 +gl_sclipthreshold=10 +gl_spriteclip=1 +gl_tonemap=0 +gl_weaponlight=8 +hud_althud=false +hud_althud_forceinternal=false +hud_althudscale=0 +hud_ammo_order=0 +hud_ammo_red=25 +hud_ammo_yellow=50 +hud_armor_green=100 +hud_armor_red=25 +hud_armor_yellow=50 +hud_aspectscale=true +hud_berserk_health=true +hud_health_green=100 +hud_health_red=25 +hud_health_yellow=50 +hud_oldscale=true +hud_scale=-1 +hud_scalefactor=1 +hud_showammo=2 +hud_showangles=false +hud_showitems=false +hud_showlag=0 +hud_showmonsters=true +hud_showscore=false +hud_showsecrets=true +hud_showstats=false +hud_showtime=0 +hud_showtimestat=0 +hud_showweapons=true +hud_timecolor=5 +hudcolor_ltim=8 +hudcolor_statnames=6 +hudcolor_stats=3 +hudcolor_time=6 +hudcolor_titl=10 +hudcolor_ttim=5 +hudcolor_xyco=3 +inter_classic_scaling=true +log_vgafont=false +lookspring=true +m_quickexit=false +msg=0 +msg0color=11 +msg1color=5 +msg2color=2 +msg3color=3 +msg4color=3 +msgmidcolor=11 +msgmidcolor2=4 +nametagcolor=5 +nocheats=false +opn_custom_bank= +opn_use_custom_bank=false +paletteflash=0 +pickup_fade_scalar=1 +r_deathcamera=false +r_drawfuzz=1 +r_maxparticles=4000 +r_portal_recursions=4 +r_rail_smartspiral=false +r_rail_spiralsparsity=1 +r_rail_trailsparsity=1 +r_skymode=2 +r_vanillatrans=0 +sb_cooperative_enable=true +sb_cooperative_headingcolor=6 +sb_cooperative_otherplayercolor=2 +sb_cooperative_yourplayercolor=3 +sb_deathmatch_enable=true +sb_deathmatch_headingcolor=6 +sb_deathmatch_otherplayercolor=2 +sb_deathmatch_yourplayercolor=3 +sb_teamdeathmatch_enable=true +sb_teamdeathmatch_headingcolor=6 +screenblocks=11 +setslotstrict=true +show_obituaries=true +snd_menuvolume=0.6000000238418579 +snd_pitched=false +st_oldouch=false +st_scale=-1 +transsouls=0.75 +ui_screenborder_classic_scaling=true +uiscale=0 +underwater_fade_scalar=1 +vid_allowtrueultrawide=1 +vid_cursor=- +vid_nopalsubstitutions=false +wi_cleantextscale=false +wi_percents=true +wi_showtotaltime=true +wipetype=1 + +[Chex.LocalServerInfo] +compatflags=0 +compatflags2=0 +forcewater=false +maxviewpitch=90 +sv_corpsequeuesize=64 +sv_disableautohealth=false +sv_dropstyle=0 +sv_portal_recursions=4 +sv_smartaim=0 + +[Chex.ConfigOnlyVariables] + +[Chex.UnknownConsoleVariables] + +[Chex.ConsoleAliases] + +[Chex.Bindings] +1=slot 1 +2=slot 2 +3=slot 3 +4=slot 4 +5=slot 5 +6=slot 6 +7=slot 7 +8=slot 8 +9=slot 9 +0=slot 0 +-=sizedown +Equals=sizeup +Tab=togglemap +W=+forward +E=+use +T=messagemode +LeftBracket=invprev +RightBracket=invnext +Enter=invuse +A=+moveleft +S=+back +D=+moveright +`=toggleconsole +Shift=+speed +\=+showscores +X=crouch +Space=+jump +CapsLock=toggle cl_run +F1=menu_help +F2=menu_save +F3=menu_load +F4=menu_options +F5=menu_display +F6=quicksave +F7=menu_endgame +F8=togglemessages +F9=quickload +F10=menu_quit +F11=bumpgamma +F12=screenshot +SysRq=screenshot +Pause=pause +Home=land +PgUp=+moveup +End=centerview +PgDn=+lookup +Ins=+movedown +Del=+lookdown +Mouse1=+attack +Mouse2=+altattack +MWheelUp=weapprev +MWheelDown=weapnext +MWheelRight=invnext +MWheelLeft=invprev +DPadUp=togglemap +DPadDown=invuse +DPadLeft=invprev +DPadRight=invnext +Pad_Start=pause +Pad_Back=menu_main +LThumb=crouch +LShoulder=weapprev +RShoulder=weapnext +LTrigger=+altattack +RTrigger=+attack +Pad_A=+use +Pad_Y=+jump +Q=+zoom +R=+reload +C=+crouch + +[Chex.DoubleBindings] + +[Chex.AutomapBindings] +0=am_gobig +-=+am_zoomout +Equals=+am_zoomin +P=am_toggletexture +F=am_togglefollow +G=am_togglegrid +C=am_clearmarks +M=am_setmark +KP-=+am_zoomout +KP+=+am_zoomin +UpArrow=+am_panup +LeftArrow=+am_panleft +RightArrow=+am_panright +DownArrow=+am_pandown +MWheelUp=am_zoom 1.2 +MWheelDown=am_zoom -1.2 + +[Harmony.AutoExec] +Path=$PROGDIR/autoexec.cfg + +[Harmony.Player] +autoaim=35 +classicflight=false +color=40 cf 00 +colorset=0 +fov=90 +gender=other +movebob=0.25 +name=PortaDOOM +neverswitchonpickup=false +playerclass=Fighter +skin=base +stillbob=0 +team=255 +vertspread=false +wbobfire=0 +wbobspeed=1 +wi_noautostartmap=false + +[Harmony.ConsoleVariables] +addrocketexplosion=false +adl_bank=14 +adl_custom_bank= +adl_use_custom_bank=false +allcheats=false +am_backcolor=6c 54 40 +am_cdwallcolor=4c 38 20 +am_colorset=0 +am_customcolors=true +am_drawmapback=1 +am_efwallcolor=66 55 55 +am_emptyspacemargin=0 +am_fdwallcolor=88 70 58 +am_followplayer=true +am_gridcolor=8b 5a 2b +am_interlevelcolor=ff 00 00 +am_intralevelcolor=00 00 ff +am_linealpha=1 +am_linethickness=1 +am_lockedcolor=00 78 00 +am_map_secrets=1 +am_markcolor=2 +am_markfont=AMMNUMx +am_notseencolor=6c 6c 6c +am_ovcdwallcolor=00 88 44 +am_ovefwallcolor=00 88 44 +am_overlay=0 +am_ovfdwallcolor=00 88 44 +am_ovinterlevelcolor=ff ff 00 +am_ovlockedcolor=00 88 44 +am_ovotherwallscolor=00 88 44 +am_ovportalcolor=00 40 22 +am_ovsecretsectorcolor=00 ff ff +am_ovsecretwallcolor=00 88 44 +am_ovspecialwallcolor=ff ff ff +am_ovtelecolor=ff ff 00 +am_ovthingcolor=e8 88 00 +am_ovthingcolor_citem=e8 88 00 +am_ovthingcolor_friend=e8 88 00 +am_ovthingcolor_item=e8 88 00 +am_ovthingcolor_monster=e8 88 00 +am_ovthingcolor_ncmonster=e8 88 00 +am_ovunexploredsecretcolor=00 ff ff +am_ovunseencolor=00 22 6e +am_ovwallcolor=00 ff 00 +am_ovyourcolor=fc e8 d8 +am_portalcolor=40 40 40 +am_portaloverlay=true +am_rotate=0 +am_secretsectorcolor=ff 00 ff +am_secretwallcolor=00 00 00 +am_showcluster=false +am_showepisode=false +am_showgrid=false +am_showitems=true +am_showkeys=true +am_showkeys_always=false +am_showmaplabel=2 +am_showmonsters=true +am_showsecrets=true +am_showthingsprites=0 +am_showtime=true +am_showtotaltime=false +am_showtriggerlines=0 +am_specialwallcolor=ff ff ff +am_textured=false +am_thingcolor=fc fc fc +am_thingcolor_citem=fc fc fc +am_thingcolor_friend=fc fc fc +am_thingcolor_item=fc fc fc +am_thingcolor_monster=fc fc fc +am_thingcolor_ncmonster=fc fc fc +am_thingrenderstyles=true +am_tswallcolor=88 88 88 +am_unexploredsecretcolor=ff 00 ff +am_wallcolor=2c 18 08 +am_xhaircolor=80 80 80 +am_yourcolor=fc e8 d8 +am_zoomdir=0 +blood_fade_scalar=1 +chat_substitution=false +chatmacro0=No +chatmacro1=I'm ready to kick butt! +chatmacro2=I'm OK. +chatmacro3=I'm not looking too good! +chatmacro4=Help! +chatmacro5=You suck! +chatmacro6=Next time, scumbag... +chatmacro7=Come here! +chatmacro8=I'll take care of it. +chatmacro9=Yes +cl_bbannounce=false +cl_bloodsplats=true +cl_bloodtype=0 +cl_custominvulmapcolor1=00 00 1a +cl_custominvulmapcolor2=a6 a6 7a +cl_customizeinvulmap=false +cl_doautoaim=false +cl_gfxlocalization=3 +cl_maxdecals=1024 +cl_missiledecals=true +cl_nointros=false +cl_pufftype=0 +cl_rockettrails=1 +cl_showmultikills=true +cl_showsecretmessage=true +cl_showsprees=true +cl_spreaddecals=true +classic_scaling_factor=1 +classic_scaling_pixelaspect=1.2000000476837158 +compatmode=0 +con_alpha=0.75 +con_centernotify=false +con_midtime=3 +con_notablist=false +con_notifytime=3 +con_pulsetext=false +con_scale=0 +con_scaletext=2 +crosshair=2 +crosshaircolor=ff 00 00 +crosshairforce=false +crosshairgrow=false +crosshairhealth=2 +crosshairon=true +crosshairscale=0 +dehload=0 +dimamount=-1 +dimcolor=ff d7 00 +displaynametags=0 +dlg_musicvolume=1 +dlg_vgafont=false +gl_aalines=false +gl_bandedswlight=false +gl_bloom=false +gl_bloom_amount=1.399999976158142 +gl_brightfog=false +gl_coronas=true +gl_enhanced_nightvision=true +gl_exposure_base=0.3499999940395355 +gl_exposure_min=0.3499999940395355 +gl_exposure_scale=1.2999999523162842 +gl_exposure_speed=0.05000000074505806 +gl_fogmode=2 +gl_fuzztype=0 +gl_interpolate_model_frames=true +gl_light_models=true +gl_lightadditivesurfaces=false +gl_lightmode=0 +gl_menu_blur=-1 +gl_paltonemap_powtable=2 +gl_paltonemap_reverselookup=true +gl_precache=false +gl_scale_viewport=true +gl_sclipfactor=1.7999999523162842 +gl_sclipthreshold=10 +gl_spriteclip=1 +gl_tonemap=0 +gl_weaponlight=8 +hud_althud=false +hud_althud_forceinternal=false +hud_althudscale=0 +hud_ammo_order=0 +hud_ammo_red=25 +hud_ammo_yellow=50 +hud_armor_green=100 +hud_armor_red=25 +hud_armor_yellow=50 +hud_aspectscale=true +hud_berserk_health=true +hud_health_green=100 +hud_health_red=25 +hud_health_yellow=50 +hud_oldscale=true +hud_scale=-1 +hud_scalefactor=1 +hud_showammo=2 +hud_showangles=false +hud_showitems=false +hud_showlag=0 +hud_showmonsters=true +hud_showscore=false +hud_showsecrets=true +hud_showstats=false +hud_showtime=0 +hud_showtimestat=0 +hud_showweapons=true +hud_timecolor=5 +hudcolor_ltim=8 +hudcolor_statnames=6 +hudcolor_stats=3 +hudcolor_time=6 +hudcolor_titl=10 +hudcolor_ttim=5 +hudcolor_xyco=3 +inter_classic_scaling=true +log_vgafont=false +lookspring=true +m_quickexit=false +msg=0 +msg0color=11 +msg1color=5 +msg2color=2 +msg3color=3 +msg4color=3 +msgmidcolor=11 +msgmidcolor2=4 +nametagcolor=5 +nocheats=false +opn_custom_bank= +opn_use_custom_bank=false +paletteflash=0 +pickup_fade_scalar=1 +r_deathcamera=false +r_drawfuzz=1 +r_maxparticles=4000 +r_portal_recursions=4 +r_rail_smartspiral=false +r_rail_spiralsparsity=1 +r_rail_trailsparsity=1 +r_skymode=2 +r_vanillatrans=0 +sb_cooperative_enable=true +sb_cooperative_headingcolor=6 +sb_cooperative_otherplayercolor=2 +sb_cooperative_yourplayercolor=3 +sb_deathmatch_enable=true +sb_deathmatch_headingcolor=6 +sb_deathmatch_otherplayercolor=2 +sb_deathmatch_yourplayercolor=3 +sb_teamdeathmatch_enable=true +sb_teamdeathmatch_headingcolor=6 +screenblocks=11 +setslotstrict=true +show_obituaries=true +snd_menuvolume=0.6000000238418579 +snd_pitched=false +st_oldouch=false +st_scale=-1 +transsouls=0.75 +ui_screenborder_classic_scaling=true +uiscale=0 +underwater_fade_scalar=1 +vid_allowtrueultrawide=1 +vid_cursor=- +vid_nopalsubstitutions=false +wi_cleantextscale=false +wi_percents=true +wi_showtotaltime=true +wipetype=1 + +[Harmony.LocalServerInfo] +compatflags=0 +compatflags2=0 +forcewater=false +maxviewpitch=90 +sv_corpsequeuesize=64 +sv_disableautohealth=false +sv_dropstyle=0 +sv_portal_recursions=4 +sv_smartaim=0 + +[Harmony.ConfigOnlyVariables] + +[Harmony.UnknownConsoleVariables] + +[Harmony.ConsoleAliases] + +[Harmony.Bindings] +1=slot 1 +2=slot 2 +3=slot 3 +4=slot 4 +5=slot 5 +6=slot 6 +7=slot 7 +8=slot 8 +9=slot 9 +0=slot 0 +-=sizedown +Equals=sizeup +Tab=togglemap +W=+forward +E=+use +T=messagemode +LeftBracket=invprev +RightBracket=invnext +Enter=invuse +A=+moveleft +S=+back +D=+moveright +`=toggleconsole +Shift=+speed +\=+showscores +X=crouch +Space=+jump +CapsLock=toggle cl_run +F1=menu_help +F2=menu_save +F3=menu_load +F4=menu_options +F5=menu_display +F6=quicksave +F7=menu_endgame +F8=togglemessages +F9=quickload +F10=menu_quit +F11=bumpgamma +F12=screenshot +SysRq=screenshot +Pause=pause +Home=land +PgUp=+moveup +End=centerview +PgDn=+lookup +Ins=+movedown +Del=+lookdown +Mouse1=+attack +Mouse2=+altattack +MWheelUp=weapprev +MWheelDown=weapnext +MWheelRight=invnext +MWheelLeft=invprev +DPadUp=togglemap +DPadDown=invuse +DPadLeft=invprev +DPadRight=invnext +Pad_Start=pause +Pad_Back=menu_main +C=+crouch +LShoulder=weapprev +RShoulder=weapnext +LTrigger=+altattack +RTrigger=+attack +Pad_A=+use +Pad_Y=+jump +Q=+zoom +R=+reload +C=+crouch +UpArrow=+forward +LeftArrow=+moveleft +RightArrow=+moveright +DownArrow=+back +Joy1=+use +Joy3=+reload +Joy4=+jump +Joy5=weapprev +Joy6=weapnext +Joy8=menu_main +Joy10=toggle cl_run +Joy11=crouch + +[Harmony.DoubleBindings] + +[Harmony.AutomapBindings] +0=am_gobig +-=+am_zoomout +Equals=+am_zoomin +P=am_toggletexture +F=am_togglefollow +G=am_togglegrid +C=am_clearmarks +M=am_setmark +KP-=+am_zoomout +KP+=+am_zoomin +UpArrow=+am_panup +LeftArrow=+am_panleft +RightArrow=+am_panright +DownArrow=+am_pandown +MWheelUp=am_zoom 1.2 +MWheelDown=am_zoom -1.2 + +[WoolBall.AutoExec] +Path=$PROGDIR/autoexec.cfg + +[WoolBall.Player] +autoaim=35 +classicflight=false +color=40 cf 00 +colorset=0 +fov=90 +gender=other +movebob=0.25 +name=PortaDOOM +neverswitchonpickup=false +playerclass=Fighter +skin=base +stillbob=0 +team=255 +vertspread=false +wbobfire=0 +wbobspeed=1 +wi_noautostartmap=false + +[WoolBall.ConsoleVariables] +addrocketexplosion=false +adl_bank=14 +adl_custom_bank= +adl_use_custom_bank=false +allcheats=false +am_backcolor=6c 54 40 +am_cdwallcolor=4c 38 20 +am_colorset=0 +am_customcolors=true +am_drawmapback=1 +am_efwallcolor=66 55 55 +am_emptyspacemargin=0 +am_fdwallcolor=88 70 58 +am_followplayer=true +am_gridcolor=8b 5a 2b +am_interlevelcolor=ff 00 00 +am_intralevelcolor=00 00 ff +am_linealpha=1 +am_linethickness=1 +am_lockedcolor=00 78 00 +am_map_secrets=1 +am_markcolor=2 +am_markfont=AMMNUMx +am_notseencolor=6c 6c 6c +am_ovcdwallcolor=00 88 44 +am_ovefwallcolor=00 88 44 +am_overlay=0 +am_ovfdwallcolor=00 88 44 +am_ovinterlevelcolor=ff ff 00 +am_ovlockedcolor=00 88 44 +am_ovotherwallscolor=00 88 44 +am_ovportalcolor=00 40 22 +am_ovsecretsectorcolor=00 ff ff +am_ovsecretwallcolor=00 88 44 +am_ovspecialwallcolor=ff ff ff +am_ovtelecolor=ff ff 00 +am_ovthingcolor=e8 88 00 +am_ovthingcolor_citem=e8 88 00 +am_ovthingcolor_friend=e8 88 00 +am_ovthingcolor_item=e8 88 00 +am_ovthingcolor_monster=e8 88 00 +am_ovthingcolor_ncmonster=e8 88 00 +am_ovunexploredsecretcolor=00 ff ff +am_ovunseencolor=00 22 6e +am_ovwallcolor=00 ff 00 +am_ovyourcolor=fc e8 d8 +am_portalcolor=40 40 40 +am_portaloverlay=true +am_rotate=0 +am_secretsectorcolor=ff 00 ff +am_secretwallcolor=00 00 00 +am_showcluster=false +am_showepisode=false +am_showgrid=false +am_showitems=true +am_showkeys=true +am_showkeys_always=false +am_showmaplabel=2 +am_showmonsters=true +am_showsecrets=true +am_showthingsprites=0 +am_showtime=true +am_showtotaltime=false +am_showtriggerlines=0 +am_specialwallcolor=ff ff ff +am_textured=false +am_thingcolor=fc fc fc +am_thingcolor_citem=fc fc fc +am_thingcolor_friend=fc fc fc +am_thingcolor_item=fc fc fc +am_thingcolor_monster=fc fc fc +am_thingcolor_ncmonster=fc fc fc +am_thingrenderstyles=true +am_tswallcolor=88 88 88 +am_unexploredsecretcolor=ff 00 ff +am_wallcolor=2c 18 08 +am_xhaircolor=80 80 80 +am_yourcolor=fc e8 d8 +am_zoomdir=0 +blood_fade_scalar=1 +chat_substitution=false +chatmacro0=No +chatmacro1=I'm ready to kick butt! +chatmacro2=I'm OK. +chatmacro3=I'm not looking too good! +chatmacro4=Help! +chatmacro5=You suck! +chatmacro6=Next time, scumbag... +chatmacro7=Come here! +chatmacro8=I'll take care of it. +chatmacro9=Yes +cl_bbannounce=false +cl_bloodsplats=true +cl_bloodtype=0 +cl_custominvulmapcolor1=00 00 1a +cl_custominvulmapcolor2=a6 a6 7a +cl_customizeinvulmap=false +cl_doautoaim=false +cl_gfxlocalization=3 +cl_maxdecals=1024 +cl_missiledecals=true +cl_nointros=false +cl_pufftype=0 +cl_rockettrails=1 +cl_showmultikills=true +cl_showsecretmessage=true +cl_showsprees=true +cl_spreaddecals=true +classic_scaling_factor=1 +classic_scaling_pixelaspect=1.2000000476837158 +compatmode=0 +con_alpha=0.75 +con_centernotify=false +con_midtime=3 +con_notablist=false +con_notifytime=3 +con_pulsetext=false +con_scale=0 +con_scaletext=2 +crosshair=2 +crosshaircolor=ff 00 00 +crosshairforce=false +crosshairgrow=false +crosshairhealth=2 +crosshairon=true +crosshairscale=0 +dehload=0 +dimamount=-1 +dimcolor=ff d7 00 +displaynametags=0 +dlg_musicvolume=1 +dlg_vgafont=false +gl_aalines=false +gl_bandedswlight=false +gl_bloom=false +gl_bloom_amount=1.399999976158142 +gl_brightfog=false +gl_coronas=true +gl_enhanced_nightvision=true +gl_exposure_base=0.3499999940395355 +gl_exposure_min=0.3499999940395355 +gl_exposure_scale=1.2999999523162842 +gl_exposure_speed=0.05000000074505806 +gl_fogmode=2 +gl_fuzztype=0 +gl_interpolate_model_frames=true +gl_light_models=true +gl_lightadditivesurfaces=false +gl_lightmode=0 +gl_menu_blur=-1 +gl_paltonemap_powtable=2 +gl_paltonemap_reverselookup=true +gl_precache=false +gl_scale_viewport=true +gl_sclipfactor=1.7999999523162842 +gl_sclipthreshold=10 +gl_spriteclip=1 +gl_tonemap=0 +gl_weaponlight=8 +hud_althud=false +hud_althud_forceinternal=false +hud_althudscale=0 +hud_ammo_order=0 +hud_ammo_red=25 +hud_ammo_yellow=50 +hud_armor_green=100 +hud_armor_red=25 +hud_armor_yellow=50 +hud_aspectscale=true +hud_berserk_health=true +hud_health_green=100 +hud_health_red=25 +hud_health_yellow=50 +hud_oldscale=true +hud_scale=-1 +hud_scalefactor=1 +hud_showammo=2 +hud_showangles=false +hud_showitems=false +hud_showlag=0 +hud_showmonsters=true +hud_showscore=false +hud_showsecrets=true +hud_showstats=false +hud_showtime=0 +hud_showtimestat=0 +hud_showweapons=true +hud_timecolor=5 +hudcolor_ltim=8 +hudcolor_statnames=6 +hudcolor_stats=3 +hudcolor_time=6 +hudcolor_titl=10 +hudcolor_ttim=5 +hudcolor_xyco=3 +inter_classic_scaling=true +log_vgafont=false +lookspring=true +m_quickexit=false +msg=0 +msg0color=11 +msg1color=5 +msg2color=2 +msg3color=3 +msg4color=3 +msgmidcolor=11 +msgmidcolor2=4 +nametagcolor=5 +nocheats=false +opn_custom_bank= +opn_use_custom_bank=false +paletteflash=0 +pickup_fade_scalar=1 +r_deathcamera=false +r_drawfuzz=1 +r_maxparticles=4000 +r_portal_recursions=4 +r_rail_smartspiral=false +r_rail_spiralsparsity=1 +r_rail_trailsparsity=1 +r_skymode=2 +r_vanillatrans=0 +sb_cooperative_enable=true +sb_cooperative_headingcolor=6 +sb_cooperative_otherplayercolor=2 +sb_cooperative_yourplayercolor=3 +sb_deathmatch_enable=true +sb_deathmatch_headingcolor=6 +sb_deathmatch_otherplayercolor=2 +sb_deathmatch_yourplayercolor=3 +sb_teamdeathmatch_enable=true +sb_teamdeathmatch_headingcolor=6 +screenblocks=11 +setslotstrict=true +show_obituaries=true +snd_menuvolume=0.6000000238418579 +snd_pitched=false +st_oldouch=false +st_scale=-1 +transsouls=0.75 +ui_screenborder_classic_scaling=true +uiscale=0 +underwater_fade_scalar=1 +vid_allowtrueultrawide=1 +vid_cursor=- +vid_nopalsubstitutions=false +wi_cleantextscale=false +wi_percents=true +wi_showtotaltime=true +wipetype=1 + +[WoolBall.LocalServerInfo] +compatflags=0 +compatflags2=0 +forcewater=false +maxviewpitch=90 +sv_corpsequeuesize=64 +sv_disableautohealth=false +sv_dropstyle=0 +sv_portal_recursions=4 +sv_smartaim=0 + +[WoolBall.ConfigOnlyVariables] + +[WoolBall.UnknownConsoleVariables] + +[WoolBall.ConsoleAliases] + +[WoolBall.Bindings] +1=slot 1 +2=slot 2 +3=slot 3 +4=slot 4 +5=slot 5 +6=slot 6 +7=slot 7 +8=slot 8 +9=slot 9 +0=slot 0 +-=sizedown +Equals=sizeup +Tab=togglemap +W=+forward +E=+use +T=messagemode +LeftBracket=invprev +RightBracket=invnext +Enter=invuse +A=+moveleft +S=+back +D=+moveright +`=toggleconsole +Shift=+speed +\=+showscores +X=crouch +Space=+jump +CapsLock=toggle cl_run +F1=menu_help +F2=menu_save +F3=menu_load +F4=menu_options +F5=menu_display +F6=quicksave +F7=menu_endgame +F8=togglemessages +F9=quickload +F10=menu_quit +F11=bumpgamma +F12=screenshot +SysRq=screenshot +Pause=pause +Home=land +PgUp=+moveup +End=centerview +PgDn=+lookup +Ins=+movedown +Del=+lookdown +Mouse1=+attack +Mouse2=+altattack +MWheelUp=weapprev +MWheelDown=weapnext +MWheelRight=invnext +MWheelLeft=invprev +DPadUp=togglemap +DPadDown=invuse +DPadLeft=invprev +DPadRight=invnext +Pad_Start=pause +Pad_Back=menu_main +C=+crouch +LShoulder=weapprev +RShoulder=weapnext +LTrigger=+altattack +RTrigger=+attack +Pad_A=+use +Pad_Y=+jump +Q=+zoom +R=+reload +C=+crouch +UpArrow=+forward +LeftArrow=+moveleft +RightArrow=+moveright +DownArrow=+back +Joy1=+use +Joy3=+reload +Joy4=+jump +Joy5=weapprev +Joy6=weapnext +Joy8=menu_main +Joy10=toggle cl_run +Joy11=crouch + +[WoolBall.DoubleBindings] + +[WoolBall.AutomapBindings] +0=am_gobig +-=+am_zoomout +Equals=+am_zoomin +P=am_toggletexture +F=am_togglefollow +G=am_togglegrid +C=am_clearmarks +M=am_setmark +KP-=+am_zoomout +KP+=+am_zoomin +UpArrow=+am_panup +LeftArrow=+am_panleft +RightArrow=+am_panright +DownArrow=+am_pandown +MWheelUp=am_zoom 1.2 +MWheelDown=am_zoom -1.2 + +[Square.AutoExec] +Path=$PROGDIR/autoexec.cfg + +[Square.Player] +autoaim=35 +classicflight=false +color=40 cf 00 +colorset=0 +fov=90 +gender=other +movebob=0.25 +name=PortaDOOM +neverswitchonpickup=false +playerclass=Fighter +skin=base +stillbob=0 +team=255 +vertspread=false +wbobfire=0 +wbobspeed=1 +wi_noautostartmap=false + +[Square.Player.Mod] +square_jabber_chance=15 +square_subtitles=false + +[Square.ConsoleVariables] +addrocketexplosion=false +adl_bank=14 +adl_custom_bank= +adl_use_custom_bank=false +allcheats=false +am_backcolor=6c 54 40 +am_cdwallcolor=4c 38 20 +am_colorset=0 +am_customcolors=true +am_drawmapback=1 +am_efwallcolor=66 55 55 +am_emptyspacemargin=0 +am_fdwallcolor=88 70 58 +am_followplayer=true +am_gridcolor=8b 5a 2b +am_interlevelcolor=ff 00 00 +am_intralevelcolor=00 00 ff +am_linealpha=1 +am_linethickness=1 +am_lockedcolor=00 78 00 +am_map_secrets=1 +am_markcolor=2 +am_markfont=AMMNUMx +am_notseencolor=6c 6c 6c +am_ovcdwallcolor=00 88 44 +am_ovefwallcolor=00 88 44 +am_overlay=0 +am_ovfdwallcolor=00 88 44 +am_ovinterlevelcolor=ff ff 00 +am_ovlockedcolor=00 88 44 +am_ovotherwallscolor=00 88 44 +am_ovportalcolor=00 40 22 +am_ovsecretsectorcolor=00 ff ff +am_ovsecretwallcolor=00 88 44 +am_ovspecialwallcolor=ff ff ff +am_ovtelecolor=ff ff 00 +am_ovthingcolor=e8 88 00 +am_ovthingcolor_citem=e8 88 00 +am_ovthingcolor_friend=e8 88 00 +am_ovthingcolor_item=e8 88 00 +am_ovthingcolor_monster=e8 88 00 +am_ovthingcolor_ncmonster=e8 88 00 +am_ovunexploredsecretcolor=00 ff ff +am_ovunseencolor=00 22 6e +am_ovwallcolor=00 ff 00 +am_ovyourcolor=fc e8 d8 +am_portalcolor=40 40 40 +am_portaloverlay=true +am_rotate=0 +am_secretsectorcolor=ff 00 ff +am_secretwallcolor=00 00 00 +am_showcluster=false +am_showepisode=false +am_showgrid=false +am_showitems=true +am_showkeys=true +am_showkeys_always=false +am_showmaplabel=2 +am_showmonsters=true +am_showsecrets=true +am_showthingsprites=0 +am_showtime=true +am_showtotaltime=false +am_showtriggerlines=0 +am_specialwallcolor=ff ff ff +am_textured=false +am_thingcolor=fc fc fc +am_thingcolor_citem=fc fc fc +am_thingcolor_friend=fc fc fc +am_thingcolor_item=fc fc fc +am_thingcolor_monster=fc fc fc +am_thingcolor_ncmonster=fc fc fc +am_thingrenderstyles=true +am_tswallcolor=88 88 88 +am_unexploredsecretcolor=ff 00 ff +am_wallcolor=2c 18 08 +am_xhaircolor=80 80 80 +am_yourcolor=fc e8 d8 +am_zoomdir=0 +blood_fade_scalar=1 +chat_substitution=false +chatmacro0=No +chatmacro1=I'm ready to kick butt! +chatmacro2=I'm OK. +chatmacro3=I'm not looking too good! +chatmacro4=Help! +chatmacro5=You suck! +chatmacro6=Next time, scumbag... +chatmacro7=Come here! +chatmacro8=I'll take care of it. +chatmacro9=Yes +cl_bbannounce=false +cl_bloodsplats=true +cl_bloodtype=0 +cl_custominvulmapcolor1=00 00 1a +cl_custominvulmapcolor2=a6 a6 7a +cl_customizeinvulmap=false +cl_doautoaim=false +cl_gfxlocalization=3 +cl_maxdecals=1024 +cl_missiledecals=true +cl_nointros=false +cl_pufftype=0 +cl_rockettrails=1 +cl_showmultikills=true +cl_showsecretmessage=true +cl_showsprees=true +cl_spreaddecals=true +classic_scaling_factor=1 +classic_scaling_pixelaspect=1.2000000476837158 +compatmode=0 +con_alpha=0.75 +con_centernotify=false +con_midtime=3 +con_notablist=false +con_notifytime=3 +con_pulsetext=false +con_scale=0 +con_scaletext=2 +crosshair=2 +crosshaircolor=ff 00 00 +crosshairforce=false +crosshairgrow=false +crosshairhealth=2 +crosshairon=true +crosshairscale=0 +dehload=0 +dimamount=-1 +dimcolor=ff d7 00 +displaynametags=0 +dlg_musicvolume=1 +dlg_vgafont=false +gl_aalines=false +gl_bandedswlight=false +gl_bloom=false +gl_bloom_amount=1.399999976158142 +gl_brightfog=false +gl_coronas=true +gl_enhanced_nightvision=true +gl_exposure_base=0.3499999940395355 +gl_exposure_min=0.3499999940395355 +gl_exposure_scale=1.2999999523162842 +gl_exposure_speed=0.05000000074505806 +gl_fogmode=2 +gl_fuzztype=0 +gl_interpolate_model_frames=true +gl_light_models=true +gl_lightadditivesurfaces=false +gl_lightmode=0 +gl_menu_blur=-1 +gl_paltonemap_powtable=2 +gl_paltonemap_reverselookup=true +gl_precache=false +gl_scale_viewport=true +gl_sclipfactor=1.7999999523162842 +gl_sclipthreshold=10 +gl_spriteclip=1 +gl_tonemap=0 +gl_weaponlight=8 +hud_althud=false +hud_althud_forceinternal=false +hud_althudscale=0 +hud_ammo_order=0 +hud_ammo_red=25 +hud_ammo_yellow=50 +hud_armor_green=100 +hud_armor_red=25 +hud_armor_yellow=50 +hud_aspectscale=true +hud_berserk_health=true +hud_health_green=100 +hud_health_red=25 +hud_health_yellow=50 +hud_oldscale=true +hud_scale=-1 +hud_scalefactor=1 +hud_showammo=2 +hud_showangles=false +hud_showitems=false +hud_showlag=0 +hud_showmonsters=true +hud_showscore=false +hud_showsecrets=true +hud_showstats=false +hud_showtime=0 +hud_showtimestat=0 +hud_showweapons=true +hud_timecolor=5 +hudcolor_ltim=8 +hudcolor_statnames=6 +hudcolor_stats=3 +hudcolor_time=6 +hudcolor_titl=10 +hudcolor_ttim=5 +hudcolor_xyco=3 +inter_classic_scaling=true +log_vgafont=false +lookspring=true +m_quickexit=false +msg=0 +msg0color=11 +msg1color=5 +msg2color=2 +msg3color=3 +msg4color=3 +msgmidcolor=11 +msgmidcolor2=4 +nametagcolor=5 +nocheats=false +opn_custom_bank= +opn_use_custom_bank=false +paletteflash=0 +pickup_fade_scalar=1 +r_deathcamera=false +r_drawfuzz=1 +r_maxparticles=4000 +r_portal_recursions=4 +r_rail_smartspiral=false +r_rail_spiralsparsity=1 +r_rail_trailsparsity=1 +r_skymode=2 +r_vanillatrans=0 +sb_cooperative_enable=true +sb_cooperative_headingcolor=6 +sb_cooperative_otherplayercolor=2 +sb_cooperative_yourplayercolor=3 +sb_deathmatch_enable=true +sb_deathmatch_headingcolor=6 +sb_deathmatch_otherplayercolor=2 +sb_deathmatch_yourplayercolor=3 +sb_teamdeathmatch_enable=true +sb_teamdeathmatch_headingcolor=6 +screenblocks=11 +setslotstrict=true +show_obituaries=true +snd_menuvolume=0.6000000238418579 +snd_pitched=false +st_oldouch=false +st_scale=-1 +transsouls=0.75 +ui_screenborder_classic_scaling=true +uiscale=0 +underwater_fade_scalar=1 +vid_allowtrueultrawide=1 +vid_cursor=- +vid_nopalsubstitutions=false +wi_cleantextscale=false +wi_percents=true +wi_showtotaltime=true +wipetype=1 + +[Square.LocalServerInfo] +compatflags=0 +compatflags2=0 +forcewater=false +maxviewpitch=90 +sv_corpsequeuesize=64 +sv_disableautohealth=false +sv_dropstyle=0 +sv_portal_recursions=4 +sv_smartaim=0 + +[Square.LocalServerInfo.Mod] +square_hints=false + +[Square.ConfigOnlyVariables] + +[Square.ConfigOnlyVariables.Mod] + +[Square.UnknownConsoleVariables] + +[Square.ConsoleAliases] + +[Square.Bindings] +1=slot 1 +2=slot 2 +3=slot 3 +4=slot 4 +5=slot 5 +6=slot 6 +7=slot 7 +8=slot 8 +9=slot 9 +0=slot 0 +-=sizedown +Equals=sizeup +Tab=togglemap +W=+forward +E=+use +T=messagemode +LeftBracket=invprev +RightBracket=invnext +Enter=invuse +A=+moveleft +S=+back +D=+moveright +`=toggleconsole +Shift=+speed +\=+showscores +X=crouch +Space=+jump +CapsLock=toggle cl_run +F1=menu_help +F2=menu_save +F3=menu_load +F4=menu_options +F5=menu_display +F6=quicksave +F7=menu_endgame +F8=togglemessages +F9=quickload +F10=menu_quit +F11=bumpgamma +F12=screenshot +SysRq=screenshot +Pause=pause +Home=land +PgUp=+moveup +End=centerview +PgDn=+lookup +Ins=+movedown +Del=+lookdown +Mouse1=+attack +Mouse2=+altattack +MWheelUp=weapprev +MWheelDown=weapnext +MWheelRight=invnext +MWheelLeft=invprev +DPadUp=togglemap +DPadDown=invuse +DPadLeft=invprev +DPadRight=invnext +Pad_Start=pause +Pad_Back=menu_main +C=+crouch +LShoulder=weapprev +RShoulder=weapnext +LTrigger=+altattack +RTrigger=+attack +Pad_A=+use +Pad_Y=+jump +Q=+zoom +R=+reload +C=+crouch +UpArrow=+forward +LeftArrow=+moveleft +RightArrow=+moveright +DownArrow=+back +Joy1=+use +Joy3=+reload +Joy4=+jump +Joy5=weapprev +Joy6=weapnext +Joy8=menu_main +Joy10=toggle cl_run +Joy11=crouch + +[Square.DoubleBindings] + +[Square.AutomapBindings] +0=am_gobig +-=+am_zoomout +Equals=+am_zoomin +P=am_toggletexture +F=am_togglefollow +G=am_togglegrid +C=am_clearmarks +M=am_setmark +KP-=+am_zoomout +KP+=+am_zoomin +UpArrow=+am_panup +LeftArrow=+am_panleft +RightArrow=+am_panright +DownArrow=+am_pandown +MWheelUp=am_zoom 1.2 +MWheelDown=am_zoom -1.2 + +[Doom.Player.Mod] +CHUD_DI_OffsetYActive=0 +CHUD_DI_OffsetYMain=0 +CHUD_DI_OffsetYPowerups=0 +CHUD_DI_OffsetYTrinket=0 +CHUD_DI_Opacity=1 +CutsceneMode=1 +DICache_GM1=0.0 +DICache_GM2=0.0 +DICache_GM3=0.0 +DICache_N1=0.0.0.0.0.0.0 +DICache_N2=0.0.0.0.0.0.0 +DICache_N3=0.0.0.0.0.0.0 +DICache_N4=0.0.0.0.0.0.0 +DICache_POWAHIST0=10000000000000000000000000 +DICache_POWAHIST1=00000000000000000000000000 +DICache_POWAHIST2=00000000000000000000000000 +DICache_POWAHIST3=00000000000000000000000000 +DICache_POWAHIST4=00000000000000000000000000 +DICache_POWHIST0=01000000000000000000000000 +DICache_POWHIST1=00000000000000000000000000 +DICache_POWHIST10=00000000000000000000000000 +DICache_POWHIST11=00000000000000000000000000 +DICache_POWHIST12=00000000000000000000000000 +DICache_POWHIST13=00000000000000000000000000 +DICache_POWHIST14=00000000000000000000000000 +DICache_POWHIST15=00000000000000000000000000 +DICache_POWHIST16=00000000000000000000000000 +DICache_POWHIST17=00000000000000000000000000 +DICache_POWHIST18=00000000000000000000000000 +DICache_POWHIST19=00000000000000000000000000 +DICache_POWHIST2=00000000000000000000000000 +DICache_POWHIST20=00000000000000000000000000 +DICache_POWHIST21=00000000000000000000000000 +DICache_POWHIST22=00000000000000000000000000 +DICache_POWHIST23=00000000000000000000000000 +DICache_POWHIST24=00000000000000000000000000 +DICache_POWHIST25=00000000000000000000000000 +DICache_POWHIST26=00000000000000000000000000 +DICache_POWHIST27=00000000000000000000000000 +DICache_POWHIST28=00000000000000000000000000 +DICache_POWHIST29=00000000000000000000000000 +DICache_POWHIST3=00000000000000000000000000 +DICache_POWHIST30=00000000000000000000000000 +DICache_POWHIST31=00000000000000000000000000 +DICache_POWHIST32=00000000000000000000000000 +DICache_POWHIST33=00000000000000000000000000 +DICache_POWHIST34=00000000000000000000000000 +DICache_POWHIST35=00000000000000000000000000 +DICache_POWHIST36=00000000000000000000000000 +DICache_POWHIST37=00000000000000000000000000 +DICache_POWHIST38=00000000000000000000000000 +DICache_POWHIST39=00000000000000000000000000 +DICache_POWHIST4=00000000000000000000000000 +DICache_POWHIST40=00000000000000000000000000 +DICache_POWHIST41=00000000000000000000000000 +DICache_POWHIST42=00000000000000000000000000 +DICache_POWHIST43=00000000000000000000000000 +DICache_POWHIST44=00000000000000000000000000 +DICache_POWHIST45=00000000000000000000000000 +DICache_POWHIST46=00000000000000000000000000 +DICache_POWHIST47=00000000000000000000000000 +DICache_POWHIST48=00000000000000000000000000 +DICache_POWHIST49=00000000000000000000000000 +DICache_POWHIST5=00000000000000000000000000 +DICache_POWHIST50=00000000000000000000000000 +DICache_POWHIST51=00000000000000000000000000 +DICache_POWHIST52=00000000000000000000000000 +DICache_POWHIST53=00000000000000000000000000 +DICache_POWHIST54=00000000000000000000000000 +DICache_POWHIST55=00000000000000000000000000 +DICache_POWHIST56=00000000000000000000000000 +DICache_POWHIST57=00000000000000000000000000 +DICache_POWHIST58=00000000000000000000000000 +DICache_POWHIST59=00000000000000000000000000 +DICache_POWHIST6=00000000000000000000000000 +DICache_POWHIST60=00000000000000000000000000 +DICache_POWHIST61=00000000000000000000000000 +DICache_POWHIST62=00000000000000000000000000 +DICache_POWHIST63=00000000000000000000000000 +DICache_POWHIST64=00000000000000000000000000 +DICache_POWHIST65=00000000000000000000000000 +DICache_POWHIST66=00000000000000000000000000 +DICache_POWHIST67=00000000000000000000000000 +DICache_POWHIST68=00000000000000000000000000 +DICache_POWHIST69=00000000000000000000000000 +DICache_POWHIST7=00000000000000000000000000 +DICache_POWHIST70=00000000000000000000000000 +DICache_POWHIST71=00000000000000000000000000 +DICache_POWHIST72=00000000000000000000000000 +DICache_POWHIST73=00000000000000000000000000 +DICache_POWHIST74=00000000000000000000000000 +DICache_POWHIST75=00000000000000000000000000 +DICache_POWHIST76=00000000000000000000000000 +DICache_POWHIST77=00000000000000000000000000 +DICache_POWHIST78=00000000000000000000000000 +DICache_POWHIST79=00000000000000000000000000 +DICache_POWHIST8=00000000000000000000000000 +DICache_POWHIST80=00000000000000000000000000 +DICache_POWHIST81=00000000000000000000000000 +DICache_POWHIST82=00000000000000000000000000 +DICache_POWHIST83=00000000000000000000000000 +DICache_POWHIST84=00000000000000000000000000 +DICache_POWHIST85=00000000000000000000000000 +DICache_POWHIST86=00000000000000000000000000 +DICache_POWHIST87=00000000000000000000000000 +DICache_POWHIST88=00000000000000000000000000 +DICache_POWHIST89=00000000000000000000000000 +DICache_POWHIST9=00000000000000000000000000 +DICache_POWHIST90=00000000000000000000000000 +DICache_POWHIST91=00000000000000000000000000 +DICache_POWHIST92=00000000000000000000000000 +DICache_POWHIST93=00000000000000000000000000 +DICache_POWHIST94=00000000000000000000000000 +DICache_POWHIST95=00000000000000000000000000 +DICache_POWHIST96=00000000000000000000000000 +DICache_POWHIST97=00000000000000000000000000 +DICache_POWHIST98=00000000000000000000000000 +DICache_POWHIST99=00000000000000000000000000 +DICache_S=61 +DICache_T=c4a3ba6c1042460a323640d06747ffdb +DIChallengeText= +DIDrawHUD=1 +DIFX_BlackArmor=0 +DIFX_Blind=0 +DIFX_FadeIn=0 +DIFX_Infrared=0 +DIFX_Inv=0 +DIFX_LowHP=0 +DIFX_Quad=0 +DIFX_RadSuit=0 +DIFX_TempInv=0 +DIFX_tPickup=0 +DIHUD_BGOpacity=0.75 +DIHUD_DisplayOverheal=true +DIHUD_HealthBar=true +DIHUD_HelpMsg=true +DIHUD_LowAmmoWarning=true +DIHUD_LowHealthVing=true +DIHUD_MarginBottom=0 +DIHUD_MarginLeft=0 +DIHUD_MarginRight=0 +DIHUD_MarginTop=0 +DIHUD_MenuBGColor=1 +DIHUD_MonsterHealthBarOpacity=1 +DIHUD_Mugshot=true +DIHUD_MugshotBG=true +DIHUD_MugshotOpacity=1 +DIHUD_MugshotStyle=0 +DIHUD_MugshotX=0 +DIHUD_MugshotY=0 +DIHUD_PowerupScale=3 +DIHUD_ShowMonsterHealthBar=true +DIHUD_SmallPowerups=false +DIHUD_StatusIconsPerRow=4 +DIHUD_Style=0 +DIHUD_Transparency=1 +DIIA_M1awards= +DIIA_M1rank=0 +DIIA_M1score=0 +DIIA_M1texSet=494648464648 +DIIA_M2awards= +DIIA_M2rank=0 +DIIA_M2score=0 +DIIA_M2texSet=504648464648 +DIIA_M3awards= +DIIA_M3rank=0 +DIIA_M3score=0 +DIIA_M3texSet=514648464648 +DIIA_M4awards= +DIIA_M4rank=0 +DIIA_M4score=0 +DIIA_M4texSet=524648464648 +DIIA_M5awards= +DIIA_M5rank=0 +DIIA_M5score=0 +DIIA_M5texSet=534648464648 +DIKILL_Arachnotron=0 +DIKILL_Archvile=0 +DIKILL_Baron=0 +DIKILL_Caco=0 +DIKILL_Cyber=0 +DIKILL_Demon=2 +DIKILL_Hell=0 +DIKILL_Imp=5 +DIKILL_Knight=0 +DIKILL_Lost=0 +DIKILL_Mancubus=0 +DIKILL_Pain=0 +DIKILL_Revenant=0 +DIKILL_Spider=0 +DIKILL_Total=7 +DIKILL_Zombie=0 +DIKILL_ZombieC=0 +DIKILL_ZombieS=0 +DIKill_Gibbed=2 +DIKill_Nightmare=0 +DIMapTimer=0 +DIMeleeCombo=0 +DIMeleeComboTimer=0 +DINet_Test=0 +DINet_WriteTest=0 +DINextMap= +DIPW_ACS=0 +DIRewardText= +DIUpgradesCharge= +DIUpgradesCount= +DIUpgradesLibA= +DIUpgradesLibPCount= +DIUpgradesLibPSet= +DIUpgradesLibPSymbol= +DIUpgradesSet= +DIUpgradesString= +DIUpgradesSymbol= +DIValidLoad=0 +DIValidStamp=36964 +DI_ActiveManualPickup=false +DI_AddUpgradePerRow=0 +DI_AdvMonsterAnim=true +DI_AmbientLights=true +DI_AmbientLightsLevel=2 +DI_AmbientParticles=true +DI_AmbientSounds=true +DI_AmbientSoundsVolume=0.699997 +DI_AtmoColorByCeiling=true +DI_AtmoColorByLiquid=true +DI_AtmoLiquidEffects=true +DI_AtmoLiquidVapors=true +DI_AtmoQuality=2 +DI_AtmoSkyStyle=0 +DI_BarrelNoise=true +DI_BloodLevel=2 +DI_BonusMapType=0 +DI_BoosBarShake=0 +DI_BossCamID=0 +DI_BossCurrentHP=0 +DI_BossID=0 +DI_BossIntro=0 +DI_BossMaxHP=0 +DI_BossName= +DI_BossPresent=false +DI_BossTitle= +DI_CVARCorrected=true +DI_CamAdjust=false +DI_CamAdjustSet= +DI_CamRoll=0 +DI_CamSet=false +DI_CamSpawn=false +DI_CamSpeed=1 +DI_CamZoom=0 +DI_ChlHist= +DI_ChlID=0 +DI_ChlSc1=0 +DI_ChlSc10=0 +DI_ChlSc11=0 +DI_ChlSc12=0 +DI_ChlSc13=0 +DI_ChlSc14=0 +DI_ChlSc15=0 +DI_ChlSc16=0 +DI_ChlSc17=0 +DI_ChlSc18=0 +DI_ChlSc19=0 +DI_ChlSc2=0 +DI_ChlSc20=0 +DI_ChlSc3=0 +DI_ChlSc4=0 +DI_ChlSc5=0 +DI_ChlSc6=0 +DI_ChlSc7=0 +DI_ChlSc8=0 +DI_ChlSc9=0 +DI_DDActiveID=-1 +DI_DDM=0 +DI_DDMap=-1 +DI_DDPassiveID=none +DI_DDPassiveSET=none +DI_DDS=0 +DI_DDW=-6 +DI_DDWeaponID=none +DI_DDX=0 +DI_DDY=0 +DI_DDZ=0 +DI_DL=0 +DI_DP=0 +DI_DamageNumbers=true +DI_DamageNumbersColor=FontDefault +DI_DamageNumbersOpacity=1 +DI_DamageNumbersScale=1 +DI_DisplayStartQuote=true +DI_DisplayUpgrades=true +DI_DynamicMusic=true +DI_DynamicReverb=2 +DI_DynamicSkybox=true +DI_EndRunCount=0 +DI_FixLinuxCrash=false +DI_GameMode=0 +DI_GameState=0 +DI_HActUsed=2 +DI_HAttempts=6 +DI_HDeaths=2 +DI_HKills=5 +DI_HLoops=0 +DI_HMaps=0 +DI_HShopped=0 +DI_HSouls=16 +DI_HTimeH=0 +DI_HTimeM=0 +DI_HTimeS=0 +DI_HUDAmmo=true +DI_HUDAmmoSummary=true +DI_HUDAmmoTypes=true +DI_HUDMaxHP=true +DI_HUDScaling=3 +DI_HUDStats=true +DI_HUDStatsSimple=false +DI_HUDStatusIcons=true +DI_HUDWeaponHint=true +DI_HelpMsgModpack=true +DI_HideCross=false +DI_HideCrossNPC=false +DI_HitscanTracers=2 +DI_ImpactSurfaceSounds=true +DI_InfraredAutoOn=true +DI_InfraredOn=true +DI_Loading=0 +DI_MD=0 +DI_MapHelperArrow=true +DI_MapHelperHint=0 +DI_MapHelperHints=true +DI_MapHelperPoints=true +DI_MidiSwitcher=true +DI_MidiSwitcherMax=5 +DI_MidiSwitcherMin=3 +DI_ModTimes=0 +DI_MuzzleFlash=true +DI_NewestVersion=0.978.6 +DI_NewsRead=true +DI_NoHUD=false +DI_OSSetup=true +DI_PKDR=1 +DI_PinAvAddA=0 +DI_PinAvAddB=0 +DI_PinAvMode=0 +DI_PlayerEffects=true +DI_PowerupTooltip=true +DI_ProjectileDecals=true +DI_ProjectileLights=2 +DI_ProjectileShake=true +DI_ProjectileSounds=true +DI_ProjectileSoundsDoppler=true +DI_RandomizeMusic=true +DI_SBInfoDamage=0 +DI_SBInfoLuck=0 +DI_SBInfoMaxHP=0 +DI_SBInfoMeleePower=1 +DI_SBInfoModPacks=0 +DI_SBInfoSpeed=0 +DI_SFXFootsteps=true +DI_SFXFootstepsVolume=1 +DI_SacScore=0 +DI_ScaleMonsterPitch=false +DI_ScalingX=3 +DI_ScalingY=3 +DI_ScreenshotOnDeath=false +DI_ShowCriticals=1 +DI_SkipIntro=true +DI_StreamOverlay=false +DI_StreamOverlayColor=2 +DI_StreamOverlayDetails=2 +DI_StreamOverlayFont=0 +DI_StreamOverlayOffsetX=0 +DI_StreamOverlayOffsetY=0 +DI_StreamOverlayOpacity=0.5 +DI_TexAmbientSounds=true +DI_TouchDeviceInput=false +DI_TutorialComplete=0 +DI_VaporDensity=3 +DI_WeaponHum=true +DI_WeaponSelectSound=true +DI_WeaponShake=true +DI_WeaponsCasingFX=true +DI_WeaponsOverheatFX=true +DI_karma=0 +DI_skill=1 +DImusMan_cmd=0 +debug_activateRoom=0 +debug_add_souls=0 +debug_boss=0 +debug_camMode=false +debug_director=false +debug_director_x=9 +debug_director_y=72 +debug_dump=false +debug_enabled=false +debug_fast_start=false +debug_helpers=false +debug_hud=true +debug_input=false +debug_limbo=false +debug_limbo_challenge=0 +debug_limbo_corridor=0 +debug_limbo_room=0 +debug_list_active=0 +debug_list_passive=0 +debug_loop_main=true +debug_loop_player=true +debug_melee=0 +debug_modDiff=0 +debug_monster_traits=true +debug_next_map= +debug_noValid=false +debug_pass= +debug_set_curse=0 +debug_spawn_active=-1 +debug_spawn_passive=-1 +debug_spawn_powerArg=0 +debug_spawner=true +debug_spawner_items=true +debug_spawner_monsters=true +debug_spawner_obstacles=true +debug_weather=-1 +debug_zKill=true + +[Doom.LocalServerInfo.Mod] + +[Doom.ConfigOnlyVariables.Mod] +DICache_ACV1= +DICache_SGLines0= +DICache_SGLines1= +DICache_SGLines2= +DICache_SGLines3= +DICache_TK=0 + +[Joy:JS:0] +Sensitivity=1.1 +Axis0deadzone=0.0999998 +Axis1deadzone=0.0999998 +Axis2map=-1 +Axis3deadzone=0.450001 +Axis4deadzone=0.25 +Axis4map=1 +Axis5deadzone=0.100001 \ No newline at end of file diff --git a/emu-configs/gzdoom/gzdoom.sh b/emu-configs/gzdoom/gzdoom.sh new file mode 100644 index 00000000..dda22916 --- /dev/null +++ b/emu-configs/gzdoom/gzdoom.sh @@ -0,0 +1,118 @@ +#!/bin/bash + +# Define the IWAD files list +IWAD_FILES=("DOOM1.WAD" "DOOM.WAD" "DOOM2.WAD" "DOOM2F.WAD" "DOOM64.WAD" "TNT.WAD" + "PLUTONIA.WAD" "HERETIC1.WAD" "HERETIC.WAD" "HEXEN.WAD" "HEXDD.WAD" + "STRIFE0.WAD" "STRIFE1.WAD" "VOICES.WAD" "CHEX.WAD" + "CHEX3.WAD" "HACX.WAD" "freedoom1.wad" "freedoom2.wad" "freedm.wad" + "doom_complete.pk3" +) + +# Function to log messages to terminal and a log file +log() { + local message="$1" + local logfile="$rdhome/logs/gzdoom.log" + local timestamp="$(date +[%Y-%m-%d\ %H:%M:%S])" + + echo "$timestamp $message" | tee -a "$logfile" +} + + +# Function to check if a file is an IWAD +is_iwad() { + local file="$1" + local lowercase_file="$(basename "${file,,}")" + + for iwad in "${IWAD_FILES[@]}"; do + if [[ "${iwad,,}" == "$lowercase_file" ]]; then + echo "true" + return + fi + done + echo "false" +} + +# Function to search for files recursively +search_file_recursive() { + local file="$1" + local directory="$2" + local found_file="" + + # Check if the file exists in the current directory + if [[ -e "$directory/$file" ]]; then + found_file="$directory/$file" + else + # Search recursively + local lowercase_file="$(echo "$file" | tr '[:upper:]' '[:lower:]')" + found_file=$(find "$directory" -type f -iname "$lowercase_file" | head -n 1) + fi + echo "$found_file" +} + +# Main script +log "[INFO] RetroDECK GZDOOM wrapper init" + +# Check if $1 is not a .doom file +if [[ "${1##*.}" != "doom" ]]; then + # Check if the file is in the IWAD list + if [[ $(is_iwad "$1") == "true" ]]; then + command="gzdoom -config /var/config/gzdoom/gzdoom.ini -iwad $1" + else + command="gzdoom -config /var/config/gzdoom/gzdoom.ini -file $1" + fi + + # Log the command + log "[INFO] Loading: \"$1\"" + log "[INFO] Executing command \"$command\"" + + # Execute the command + eval "$command" + +# Check if $1 is a .doom file +else + doom_file="$1" + log "[INFO] Found a doom file: \"$1\"" + + # Check if the .doom file exists + if [[ ! -e "$doom_file" ]]; then + log "[Error] doom file not found in \"$doom_file\"" + zenity --error --no-wrap \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK" \ + --text="File \"$doom_file\" not found. Quitting." + exit 1 + fi + + # Read the .doom file and compose the command + command="gzdoom -config /var/config/gzdoom/gzdoom.ini" + + while IFS= read -r line; do + # Search for the file recursively + found_file=$(search_file_recursive "$line" "$(dirname "$doom_file")") + + # If the file is not found, exit with an error + if [[ -z "$found_file" ]]; then + log "[ERROR] File not found in \"$line\"" + zenity --error --no-wrap \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK" \ + --text="File \"$doom_file\" not found. Quitting." + exit 1 + fi + + # Check if the file is an IWAD + if [[ $(is_iwad "$found_file") == "true" ]]; then + command+=" -iwad $found_file" + log "[INFO] Appending the param \"-iwad $found_file\"" + else + command+=" -file $found_file" + log "[INFO] Appending the param \"-file $found_file\"" + fi + done < "$doom_file" + + # Log the command + log "[INFO] Executing command \"$command\"" + + # Execute the command + eval "$command" +fi diff --git a/emu-configs/mame/mame.ini b/emu-configs/mame/mame.ini index 1e7e0c40..99812b94 100644 --- a/emu-configs/mame/mame.ini +++ b/emu-configs/mame/mame.ini @@ -8,10 +8,10 @@ writeconfig 0 # CORE SEARCH PATH OPTIONS # homepath /var/config/mame -rompath /home/deck/retrodeck/roms/arcade +rompath RETRODECKROMSDIR hashpath /app/share/mame/hash samplepath /app/share/mame/samples -artpath $HOME/retrodeck/downloaded_media/arcade/screenshots/ +artpath RETRODECKHOMEDIR/downloaded_media/arcade/screenshots/ ctrlrpath /app/share/mame/ctrlr inipath /var/config/mame fontpath /app/bin/ @@ -27,7 +27,7 @@ swpath /app/share/mame/software cfg_directory /var/config/mame/cfg nvram_directory /var/config/mame/nvram input_directory /var/config/mame/inp -state_directory /var/config/mame/sta +state_directory RETRODECKSAVESDIR/mame-sa/states snapshot_directory RETRODECKHOMEDIR/screenshots diff_directory /var/config/mame/diff comment_directory /var/config/mame/comments diff --git a/emu-configs/mame/ui.ini b/emu-configs/mame/ui.ini index db76cbf3..5955d68a 100644 --- a/emu-configs/mame/ui.ini +++ b/emu-configs/mame/ui.ini @@ -9,7 +9,7 @@ pcbs_directory pcb flyers_directory flyers titles_directory titles ends_directory ends -marquees_directory marquees;$HOME/retrodeck/downloaded_media/arcade/marquees +marquees_directory marquees;RETRODECKHOMEDIR/downloaded_media/arcade/marquees artwork_preview_directory "artwork preview;artpreview" bosses_directory bosses logos_directory logo @@ -19,7 +19,7 @@ gameover_directory gameover howto_directory howto select_directory select icons_directory icons -covers_directory covers;$HOME/retrodeck/downloaded_media/arcade/covers +covers_directory covers;RETRODECKHOMEDIR/downloaded_media/arcade/covers ui_path ui # diff --git a/emu-configs/parsers/gzdoom.sh.todo b/emu-configs/parsers/gzdoom.sh.todo deleted file mode 100644 index 93b07b57..00000000 --- a/emu-configs/parsers/gzdoom.sh.todo +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/bash - -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2021-present AmberELEC (https://github.com/AmberELEC) - -#. /etc/profile - -ROM="${1##*/}" -PLATFORM="doom" -CONF="/storage/.config/distribution/configs/distribution.conf" - -function get_setting() { - #We look for the setting on the ROM first, if not found we search for platform and lastly we search globally - PAT="s|^${PLATFORM}\[\"${ROM}\"\].*${1}=\(.*\)|\1|p" - EES=$(sed -n "${PAT}" "${CONF}" | head -1) - - if [ -z "${EES}" ]; then - PAT="s|^${PLATFORM}[\.-]${1}=\(.*\)|\1|p" - EES=$(sed -n "${PAT}" "${CONF}" | head -1) - fi - - if [ -z "${EES}" ]; then - PAT="s|^global[\.-].*${1}=\(.*\)|\1|p" - EES=$(sed -n "${PAT}" "${CONF}" | head -1) - fi - - [ -z "${EES}" ] && EES="false" -} - -# Show FPS -get_setting "show_fps" -echo ${EES} -if [ "${EES}" == "auto" ] || [ "${EES}" == "disabled" ] || [ "${EES}" == "false" ] || [ "${EES}" == "none" ] || [ "${EES}" == "0" ]; then - SHOWFPS='0' -else - SHOWFPS='1' -fi - -EE_DEVICE=$(cat /storage/.config/.OS_ARCH) -RUN_DIR="/storage/roms/doom" -CONFIG="/storage/.config/distribution/gzdoom/gzdoom.ini" -SAVE_DIR="/storage/roms/gamedata/gzdoom" - -if [ ! -L "/storage/.config/gzdoom" ] -then - ln -sf "/storage/.config/distribution/gzdoom" "/storage/.config/gzdoom" -fi - -if [ ! -f "/storage/.config/distribution/gzdoom/gzdoom.ini" ] -then - cp -rf /usr/config/distribution/gzdoom/gzdoom.ini /storage/.config/distribution/gzdoom/ -fi - -mkdir -p ${SAVE_DIR} - -params=" -config ${CONFIG} -savedir ${SAVE_DIR}" - -# EXT can be wad, WAD, iwad, IWAD, pwad, PWAD or doom -EXT=${1#*.} - -# If its not a simple wad (extension .doom) read the file and parse the data -if [ ${EXT} == "doom" ]; then - dos2unix "${1}" - while IFS== read -r key value; do - if [ "$key" == "IWAD" ]; then - params+=" -iwad $value" - fi - if [ "$key" == "MOD" ]; then - params+=" -file $value" - fi - done < "${1}" -else - params+=" -iwad ${1}" -fi - -params+=" +gl_es 1 +vid_preferbackend 3 +cl_capfps 0 +vid_fps $SHOWFPS" - -cd "${RUN_DIR}" -/usr/bin/gzdoom ${params} >/tmp/logs/gzdoom.log 2>&1 \ No newline at end of file diff --git a/emu-configs/rpcs3/config.yml b/emu-configs/rpcs3/config.yml index 433d5c60..2660b26e 100644 --- a/emu-configs/rpcs3/config.yml +++ b/emu-configs/rpcs3/config.yml @@ -7,7 +7,7 @@ Core: Use LLVM CPU: "" Max LLVM Compile Threads: 0 PPU LLVM Greedy Mode: false - PPU LLVM Precompilation: true + LLVM Precompilation: true Thread Scheduler Mode: Operating System Set DAZ and FTZ: false SPU Decoder: Recompiler (LLVM) @@ -33,9 +33,7 @@ Core: MFC Commands Timeout: 0 MFC Commands Shuffling In Steps: false Enable TSX: Disabled - Accurate xfloat: false - Approximate xfloat: true - Relaxed xfloat: true + XFloat Accuracy: Approximate Accurate PPU 128-byte Reservation Op Max Length: 0 Stub PPU Traps: 0 Full Width AVX-512: false @@ -61,6 +59,7 @@ Core: Max CPU Preempt Count: 0 Allow RSX CPU Preemptions: true Sleep Timers Accuracy: As Host + Usleep Time Addend: 0 Performance Report Threshold: 500 Enable Performance Report: false Assume External Debugger: false @@ -74,15 +73,16 @@ Video: Renderer: Vulkan Resolution: 1280x720 Aspect ratio: 16:9 - Frame limit: Auto + Frame limit: 30 Second Frame Limit: 0 MSAA: Auto Shader Mode: Async Shader Recompiler - Shader Precision: High + Shader Precision: Auto Write Color Buffers: false Write Depth Buffer: false Read Color Buffers: false Read Depth Buffer: false + Handle RSX Memory Tiling: false Log shader programs: false VSync: false Debug output: false @@ -104,7 +104,7 @@ Video: Strict Texture Flushing: false Multithreaded RSX: false Relaxed ZCULL Sync: false - Enable 3D: false + 3D Display Mode: Disabled Debug Program Analyser: false Accurate ZCULL stats: true Consecutive Frames To Draw: 1 @@ -123,13 +123,14 @@ Video: Disable MSL Fast Math: false Output Scaling Mode: Bilinear Vulkan: - Adapter: AMD RADV VANGOGH + Adapter: AMD Custom GPU 0405 (RADV VANGOGH) Force FIFO present mode: false Force primitive restart flag: false Exclusive Fullscreen Mode: Automatic Asynchronous Texture Streaming 2: false FidelityFX CAS Sharpening Intensity: 50 Asynchronous Queue Scheduler: Fast + VRAM allocation limit (MB): 65536 Performance Overlay: Enabled: false Enable Framerate Graph: false @@ -186,9 +187,13 @@ Input/Output: Turntable emulated controller: "Null" GHLtar emulated controller: "Null" Pad handler mode: Single-threaded + Keep pads connected: false Pad handler sleep (microseconds): 1000 Background input enabled: true Show move cursor: false + Lock overlay input to player one: false + Emulated Midi devices: Keyboardßßß@@@Keyboardßßß@@@Keyboardßßß@@@ + Load SDL GameController Mappings: true System: License Area: SCEE Language: English (US) @@ -197,6 +202,8 @@ System: Console time offset (s): 0 PSID high: 0 PSID low: 0 + HDD Model Name: "" + HDD Serial Number: "" Net: Internet enabled: Disconnected IP address: 0.0.0.0 @@ -208,15 +215,18 @@ Net: Savestate: Start Paused: false Suspend Emulation Savestate Mode: true + Compatible Savestate Mode: false Inspection Mode Savestates: false Save Disc Game Data: false Miscellaneous: Automatically start games after boot: true Exit RPCS3 when process finishes: true + Pause emulation on RPCS3 focus loss: false Start games in fullscreen mode: true Prevent display sleep while running games: true Show trophy popups: true Show shader compilation hint: true + Show PPU compilation hint: true Use native user interface: true GDB Server: 127.0.0.1:2345 Silence All Logs: false diff --git a/emu-configs/vita3k/config.yml b/emu-configs/vita3k/config.yml new file mode 100644 index 00000000..c1114ec2 --- /dev/null +++ b/emu-configs/vita3k/config.yml @@ -0,0 +1,121 @@ +--- +initial-setup: true +gdbstub: false +log-active-shaders: false +log-uniforms: false +log-compat-warn: false +validation-layer: false +pstv-mode: false +show-mode: false +demo-mode: false +show-gui: false +show-info-bar: false +apps-list-grid: false +display-system-apps: true +stretch_the_display_area: false +show-live-area-screen: true +icon-size: 64 +archive-log: false +backend-renderer: OpenGL +gpu-idx: 0 +high-accuracy: true +resolution-multiplier: 1 +disable-surface-sync: true +screen-filter: Bilinear +v-sync: true +anisotropic-filtering: 1 +texture-cache: true +show-compile-shaders: true +hashless-texture-cache: false +boot-apps-full-screen: true +audio-backend: SDL +ngs-enable: true +sys-button: 1 +sys-lang: 1 +sys-date-format: 2 +sys-time-format: 0 +cpu-pool-size: 10 +modules-mode: 0 +delay-background: 4 +delay-start: 10 +background-alpha: 0.300000012 +log-level: 0 +cpu-backend: Dynarmic +cpu-opt: true +pref-path: RETRODECKHOMEDIR/bios/Vita3K/ +discord-rich-presence: true +wait-for-debugger: false +color-surface-debug: false +show-touchpad-cursor: true +performance-overlay: false +perfomance-overlay-detail: 0 +perfomance-overlay-position: 0 +keyboard-button-select: 229 +keyboard-button-start: 40 +keyboard-button-up: 82 +keyboard-button-right: 79 +keyboard-button-down: 81 +keyboard-button-left: 80 +keyboard-button-l1: 20 +keyboard-button-r1: 8 +keyboard-button-l2: 24 +keyboard-button-r2: 18 +keyboard-button-l3: 9 +keyboard-button-r3: 11 +keyboard-button-triangle: 25 +keyboard-button-circle: 6 +keyboard-button-cross: 27 +keyboard-button-square: 29 +keyboard-leftstick-left: 4 +keyboard-leftstick-right: 7 +keyboard-leftstick-up: 26 +keyboard-leftstick-down: 22 +keyboard-rightstick-left: 13 +keyboard-rightstick-right: 15 +keyboard-rightstick-up: 12 +keyboard-rightstick-down: 14 +keyboard-button-psbutton: 19 +keyboard-gui-toggle-gui: 10 +keyboard-gui-fullscreen: 68 +keyboard-gui-toggle-touch: 23 +user-id: 00 +user-auto-connect: true +dump-textures: false +display-info-message: true +show-welcome: false +asia-font-support: false +shader-cache: true +spirv-shader: false +current-ime-lang: 4 +psn-status: 0 +http-enable: true +http-timeout-attempts: 50 +http-timeout-sleep-ms: 100 +http-read-end-attempts: 10 +http-read-end-sleep-ms: 250 +tracy-primitive-impl: false +controller-binds: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 +controller-led-color: + [] +lle-modules: + [] +ime-langs: + - 4 +tracy-advanced-profiling-modules: + [] +... \ No newline at end of file diff --git a/emu-configs/vita3k/ux0/user/00/user.xml b/emu-configs/vita3k/ux0/user/00/user.xml new file mode 100644 index 00000000..03849f03 --- /dev/null +++ b/emu-configs/vita3k/ux0/user/00/user.xml @@ -0,0 +1,12 @@ + + + /app/retrodeck/retrodeck.png + + + default + + + + + + \ No newline at end of file diff --git a/es-configs/es_find_rules.xml b/es-configs/es_find_rules.xml index c35b67f6..a7b5f073 100644 --- a/es-configs/es_find_rules.xml +++ b/es-configs/es_find_rules.xml @@ -12,7 +12,6 @@ retroarch org.libretro.RetroArch - RetroArch-Linux-x86_64.AppImage ~/Applications/RetroArch-Linux*.AppImage @@ -25,14 +24,18 @@ - - /app/share/libretro/cores - - ~/snap/retroarch/current/.config/retroarch/cores + /app/share/libretro/cores + + ~/.config/retroarch/cores + + ~/Applications/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores + ~/.local/share/applications/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores + ~/.local/bin/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores + ~/bin/RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores ~/.var/app/org.libretro.RetroArch/config/retroarch/cores - - ~/.config/retroarch/cores + + ~/snap/retroarch/current/.config/retroarch/cores /usr/lib/x86_64-linux-gnu/libretro @@ -45,6 +48,27 @@ /usr/pkg/lib/libretro + + + + ~/Applications/3dSen/3dSen.exe + ~/.local/share/applications/3dSen/3dSen.exe + ~/.local/bin/3dSen/3dSen.exe + ~/bin/3dSen/3dSen.exe + + + + + + advmame + + + ~/Applications/advancemame/advmame + ~/.local/share/applications/advancemame/advmame + ~/.local/bin/advancemame/advmame + ~/bin/advancemame/advmame + + @@ -78,6 +102,15 @@ ~/.local/share/flatpak/exports/bin/net.cebix.basilisk + + + + ~/Applications/BigPEmu/BigPEmu.exe + ~/.local/share/applications/BigPEmu/BigPEmu.exe + ~/.local/bin/BigPEmu/BigPEmu.exe + ~/bin/BigPEmu/BigPEmu.exe + + @@ -93,6 +126,7 @@ bsnes + dev.bsnes.bsnes /var/lib/flatpak/exports/bin/dev.bsnes.bsnes @@ -102,7 +136,7 @@ - Cemu-wrapper + Cemu-wrapper cemu Cemu @@ -115,21 +149,25 @@ ~/.local/share/applications/Cemu/Cemu ~/.local/bin/Cemu/Cemu ~/bin/Cemu/Cemu + /var/lib/flatpak/exports/bin/info.cemu.Cemu + ~/.local/share/flatpak/exports/bin/info.cemu.Cemu - citra-qt - citra + citra-qt + citra citra-emu.citra-nightly org.citra_emu.citra - ~/Applications/citra*.AppImage - ~/.local/share/applications/citra*.AppImage - ~/.local/bin/citra*.AppImage - ~/bin/citra*.AppImage + ~/Applications/citra-qt*.AppImage + ~/.local/share/applications/citra-qt*.AppImage + ~/.local/bin/citra-qt*.AppImage + ~/bin/citra-qt*.AppImage + ~/.citra/canary/citra-qt.AppImage + ~/.citra/nightly/citra-qt.AppImage /var/lib/flatpak/exports/bin/org.citra_emu.citra ~/.local/share/flatpak/exports/bin/org.citra_emu.citra @@ -170,6 +208,7 @@ dolphin-emu + dolphin-emulator.dolphin-emu org.DolphinEmu.dolphin-emu @@ -211,6 +250,10 @@ org.duckstation.DuckStation + ~/Applications/DuckStation*.AppImage + ~/.local/share/applications/DuckStation*.AppImage + ~/.local/bin/DuckStation*.AppImage + ~/bin/DuckStation*.AppImage ~/Applications/duckstation-nogui*.AppImage ~/.local/share/applications/duckstation-nogui*.AppImage ~/.local/bin/duckstation-nogui*.AppImage @@ -235,6 +278,27 @@ ~/bin/easyrpg/easyrpg-player + + + + eka2l1_qt + + + ~/Applications/EKA2L1*.AppImage + ~/.local/share/applications/EKA2L1*.AppImage + ~/.local/bin/EKA2L1*.AppImage + ~/bin/EKA2L1*.AppImage + + + + + + ~/Applications/EKA2L1/eka2l1_qt.exe + ~/.local/share/applications/EKA2L1/eka2l1_qt.exe + ~/.local/bin/EKA2L1/eka2l1_qt.exe + ~/bin/EKA2L1/eka2l1_qt.exe + + @@ -289,6 +353,7 @@ gargoyle + io.github.garglk.Gargoyle ~/Applications/Gargoyle*.AppImage @@ -324,6 +389,7 @@ hatari + org.tuxfamily.hatari /var/lib/flatpak/exports/bin/org.tuxfamily.hatari @@ -366,6 +432,15 @@ ~/bin/linapple/linapple + + + + ~/Applications/m2emulator/EMULATOR.EXE + ~/.local/share/applications/m2emulator/EMULATOR.EXE + ~/.local/bin/m2emulator/EMULATOR.EXE + ~/bin/m2emulator/EMULATOR.EXE + + @@ -399,6 +474,18 @@ ~/.local/share/flatpak/exports/bin/net.kuribo64.melonDS + + + + mesen2 + + + ~/Applications/Mesen*.AppImage + ~/.local/share/applications/Mesen*.AppImage + ~/.local/bin/Mesen*.AppImage + ~/bin/Mesen*.AppImage + + @@ -430,6 +517,7 @@ nestopia + ca._0ldsk00l.Nestopia /var/lib/flatpak/exports/bin/ca._0ldsk00l.Nestopia @@ -440,6 +528,7 @@ openmsx + org.openmsx.openMSX /var/lib/flatpak/exports/bin/org.openmsx.openMSX @@ -462,11 +551,15 @@ pcsx2-qt + net.pcsx2.PCSX2 - ~/Applications/pcsx2*-Qt.AppImage - ~/.local/bin/pcsx2*-Qt.AppImage - ~/bin/pcsx2*-Qt.AppImage + ~/Applications/pcsx2*.AppImage + ~/.local/share/applications/pcsx2*.AppImage + ~/.local/bin/pcsx2*.AppImage + ~/bin/pcsx2*.AppImage + /var/lib/flatpak/exports/bin/net.pcsx2.PCSX2 + ~/.local/share/flatpak/exports/bin/net.pcsx2.PCSX2 @@ -495,6 +588,9 @@ + + org.purei.Play + ~/Applications/Play!*.AppImage ~/.local/share/applications/Play!*.AppImage @@ -508,9 +604,9 @@ ppsspp-emu.ppsspp-sdl - org.ppsspp.PPSSPP PPSSPPSDL PPSSPPQt + org.ppsspp.PPSSPP /var/lib/flatpak/exports/bin/org.ppsspp.PPSSPP @@ -534,6 +630,15 @@ ~/.local/share/flatpak/exports/bin/io.github.shiiion.primehack + + + + ~/Applications/Proton/wine*.AppImage + ~/.local/share/applications/Proton/wine*.AppImage + ~/.local/bin/Proton/wine*.AppImage + ~/bin/Proton/wine*.AppImage + + @@ -546,6 +651,18 @@ ~/bin/punes/punes + + + + quasi88 + + + ~/Applications/quasi88/quasi88 + ~/.local/share/applications/quasi88/quasi88 + ~/.local/bin/quasi88/quasi88 + ~/bin/quasi88/quasi88 + + @@ -685,13 +802,30 @@ ~/.local/share/flatpak/exports/bin/io.github.simple64.simple64 + + + + SkyEmu + + + ~/Applications/SkyEmu/SkyEmu + ~/.local/share/applications/SkyEmu/SkyEmu + ~/.local/bin/SkyEmu/SkyEmu + ~/bin/SkyEmu/SkyEmu + + snes9x snes9x-gtk + com.snes9x.Snes9x + ~/Applications/Snes9x*.AppImage + ~/.local/share/applications/Snes9x*.AppImage + ~/.local/bin/Snes9x*.AppImage + ~/bin/Snes9x*.AppImage /var/lib/flatpak/exports/bin/com.snes9x.Snes9x ~/.local/share/flatpak/exports/bin/com.snes9x.Snes9x @@ -775,8 +909,19 @@ ~/.local/share/flatpak/exports/bin/net.sf.VICE + + + + xplus4 + vice-jz.xplus4 + + + /var/lib/flatpak/exports/bin/net.sf.VICE|flatpak run --command=xplus4 net.sf.VICE + ~/.local/share/flatpak/exports/bin/net.sf.VICE|flatpak run --command=xplus4 net.sf.VICE + + - + xvic vice-jz.xvic @@ -786,6 +931,18 @@ ~/.local/share/flatpak/exports/bin/net.sf.VICE|flatpak run --command=xvic net.sf.VICE + + + + VPinballX_GL + + + ~/Applications/VPinballX/VPinballX_GL + ~/.local/share/applications/VPinballX/VPinballX_GL + ~/.local/bin/VPinballX/VPinballX_GL + ~/bin/VPinballX/VPinballX_GL + + @@ -814,6 +971,28 @@ ~/.local/share/flatpak/exports/bin/app.xemu.xemu + + + + ~/Applications/Wine/wine*.AppImage + ~/.local/share/applications/Wine/wine*.AppImage + ~/.local/bin/Wine/wine*.AppImage + ~/bin/Wine/wine*.AppImage + + + + + + ~/Applications/xenia/xenia.exe + ~/.local/share/applications/xenia/xenia.exe + ~/.local/bin/xenia/xenia.exe + ~/bin/xenia/xenia.exe + ~/Applications/xenia/xenia_canary.exe + ~/.local/share/applications/xenia/xenia_canary.exe + ~/.local/bin/xenia/xenia_canary.exe + ~/bin/xenia/xenia_canary.exe + + diff --git a/es-configs/es_settings.xml b/es-configs/es_settings.xml index 93de24b3..a88a2ba8 100644 --- a/es-configs/es_settings.xml +++ b/es-configs/es_settings.xml @@ -3,6 +3,7 @@ + @@ -69,6 +70,7 @@ + @@ -101,6 +103,7 @@ + @@ -108,12 +111,13 @@ + - + @@ -144,11 +148,13 @@ + + - + \ No newline at end of file diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml index b9da6c2e..8a0131d0 100644 --- a/es-configs/es_systems.xml +++ b/es-configs/es_systems.xml @@ -5,18 +5,32 @@ 3do 3DO Interactive Multiplayer %ROMPATH%/3do - .bin .BIN .chd .CHD .cue .CUE .iso .ISO + .bin .BIN .chd .CHD .cue .CUE .iso .ISO .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/opera_libretro.so %ROM% 3do 3do + + + adam + Coleco Adam + %ROMPATH%/adam + .1dd .1DD .bin .BIN .col .COL .cqi .CQI .cqm .CQM .d77 .D77 .d88 .D88 .ddp .DDP .dfi .DFI .dsk .DSK .hfe .HFE .imd .IMD .mfi .MFI .mfm .MFM .rom .ROM .td0 .TD0 .wav .WAV .7z .7Z .zip .ZIP + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/adam adam -flop1 %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/adam adam -cass1 %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/adam adam -cart1 %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/adam adam %BASENAME% + adam + adam + + + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/apple2 apple2e -flop1 %ROM% apple2 apple2 ---> + apple2gs Apple IIGS %ROMPATH%/apple2gs - .2mg .2MG + .2mg .2MG .7z .7z .zip .ZIP + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "apple2gs -rompath %GAMEDIR%\;%ROMPATH%/apple2gs -flop3 \"%ROMRAW%\"" %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/apple2gs apple2gs -flop3 %ROM% apple2gs apple2gs + arcade Arcade @@ -125,17 +142,31 @@ arcade arcade - + + + archimedes + Acorn Archimedes + %ROMPATH%/archimedes + .1dd .1DD .360 .adf .ADF .adl .ADL .adm .ADM .ads .ADS .apd .APD .bbc .BBC .chd .CHD .cqi .CQI .cqm .CQM .d77 .D77 .d88 .D88 .dfi .DFI .dsd .DSD .dsk .DSK .hfe .HFE .ima .IMA .imd .IMD .img .IMG .ipf .IPF .jfd .JFD .mfi .MFI .mfm .MFM .msa .MSA .ssd .SSD .st .ST .td0 .TD0 .ufi .UFI .7z .7Z .zip .ZIP + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/archimedes aa4401 -flop1 %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/archimedes aa3000 -flop1 %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/archimedes aa310 -flop1 %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/archimedes aa540 -flop1 %ROM% + archimedes + archimedes + + arduboy Arduboy Miniature Game System @@ -175,7 +206,7 @@ .a52 .A52 .atr .ATR .atx .ATX .bin .BIN .car .CAR .cas .CAS .cdm .CDM .rom .ROM .xex .XEX .xfd .XFD .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/a5200_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/atari800_libretro.so %ROM% - + atari5200 atari5200 @@ -185,6 +216,7 @@ %ROMPATH%/atari7800 .a78 .A78 .bin .BIN .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/prosystem_libretro.so %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/atari7800 a7800 -cart %ROM% atari7800 atari7800 @@ -204,19 +236,24 @@ %ROMPATH%/atarijaguar .abs .ABS .bin .BIN .cdi .CDI .cof .COF .cue .CUE .j64 .J64 .jag .JAG .prg .PRG .rom .ROM .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/virtualjaguar_libretro.so %ROM% - - atarijaguar, atarijaguarcd + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/atarijaguar jaguar -cart %ROM% + + + atarijaguar atarijaguar + atarilynx Atari Lynx @@ -224,7 +261,7 @@ .lnx .LNX .o .O .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/handy_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_lynx_libretro.so %ROM% - + atarilynx atarilynx @@ -258,7 +295,7 @@ arcade atomiswave - + c64 Commodore 64 @@ -299,6 +336,7 @@ .chd .CHD .cue .CUE .iso .ISO %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/same_cdi_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/cdi2015_libretro.so %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/cdimono1 cdimono1 -cdrom %ROM% cdimono1 cdimono1 @@ -330,7 +368,7 @@ channelf channelf - + colecovision Coleco ColecoVision @@ -354,6 +392,25 @@ colecovision colecovision + + consolearcade + Console Arcade Systems + %ROMPATH%/consolearcade + .arcadedef .desktop .iso .ISO .sh .xbe .XBE .7z .7Z .zip .ZIP + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/consolearcade %BASENAME% + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/flycast_libretro.so %ROM% + + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/kronos_libretro.so %ROM% + + + %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM% + + %INJECT%=%BASENAME%.esprefix %EMULATOR_XEMU% -dvd_path %ROM% + %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM% + arcade + consolearcade + cps Capcom Play System @@ -363,7 +420,7 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2010_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2003_plus_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2000_libretro.so %ROM% - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/cps %BASENAME% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbneo_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbalpha2012_libretro.so %ROM% @@ -382,7 +439,7 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2010_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2003_plus_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2000_libretro.so %ROM% - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/cps1 %BASENAME% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbneo_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbalpha2012_libretro.so %ROM% @@ -399,7 +456,7 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2010_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2003_plus_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2000_libretro.so %ROM% - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/cps2 %BASENAME% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbneo_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbalpha2012_libretro.so %ROM% @@ -416,7 +473,7 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2010_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2003_plus_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2000_libretro.so %ROM% - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/cps3 %BASENAME% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbneo_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbalpha2012_libretro.so %ROM% @@ -424,34 +481,38 @@ arcade cps3 - - + + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/daphne %BASENAME% + daphne, arcade daphne ---> + doom Doom %ROMPATH%/doom - .desktop .iwad .IWAD .pk4 .PK4 .pwad .PWAD .sh .wad .WAD + .doom .DOOM .desktop .iwad .IWAD .pk4 .PK4 .pk3 .PK3 .pwad .PWAD .sh .wad .WAD .ipk3 .IPK3 + gzdoom.sh %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/prboom_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/boom3_libretro.so %ROM% @@ -506,6 +567,20 @@ easyrpg easyrpg + + + electron + Acorn Electron + %ROMPATH%/electron + .1dd .1DD .adf .ADF .adl .ADL .adm .ADM .ads .ADS .bbc .BBC .bin .BIN .cqi .CQI .cqm .CQM .csw .CSW .d77 .D77 .d88 .D88 .dfi .DFI .dsd .DSD .dsk .DSK .hfe .HFE .imd .IMD .img .IMG .mfi .MFI .mfm .MFM .rom .ROM .ssd .SSD .td0 .TD0 .uef .UEF .wav .WAV .7z .7Z .zip .ZIP + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/electron electron64 -autoboot_delay "2" -autoboot_command "*T.\nCH.\"\"\n" -cass1 %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/electron electron64 -exp plus1 -cart1 seds -autoboot_delay "2" -autoboot_command "*CAT\n\n\n\n\n\n*EXEC !BOOT\n" -flop1 %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/electron electron64 -exp plus3 -exp:plus3:fdc:1 35dd -autoboot_delay "2" -autoboot_command "*CAT\n\n\n\n\n\n*RUN !BOOT\n" -flop1 %ROM% + electron + electron + + + famicom Nintendo Family Computer %ROMPATH%/famicom - .fds .FDS .nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP + .3dsen .3DSEN .fds .FDS .nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM% + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM% @@ -564,6 +641,7 @@ %ROMPATH%/fds .nes .NES .fds .FDS .unf .UNF .UNIF .UNIF .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM% + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM% @@ -584,17 +662,34 @@ flash --> - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/fmtowns fmtowns %BASENAME% fmtowns fmtowns ---> + + + + gamate + Bit Corporation Gamate + %ROMPATH%/gamate + .bin .BIN .7z .7Z .zip .ZIP + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "gamate -rompath %GAMEDIR%\;%ROMPATH%/gamate -cart \"%ROMRAW%\"" + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/gamate gamate -cart %ROM% + gamate + gamate + + gameandwatch Nintendo Game and Watch %ROMPATH%/gameandwatch .mgw .MGW .7z .7Z .zip .ZIP - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/gameandwatch %BASENAME% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gw_libretro.so %ROM% gameandwatch gameandwatch - + gamegear Sega Game Gear @@ -637,8 +745,9 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_wide_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gearsystem_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/smsplus_libretro.so %ROM% - - + + + gamegear gamegear @@ -654,6 +763,7 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/tgbdual_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM% + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mgba_libretro.so %ROM% @@ -673,6 +783,8 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/vba_next_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gpsp_libretro.so %ROM% + + gba gba @@ -688,6 +800,7 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/tgbdual_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM% + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mgba_libretro.so %ROM% @@ -723,17 +836,18 @@ genesis genesis - + gx4000 Amstrad GX4000 @@ -741,7 +855,7 @@ .bin .BIN .cdt .CDT .cpr .CPR .dsk .DSK .kcr .KCR .m3u .M3U .sna .SNA .tap .TAR .voc .VOC .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/cap32_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/crocods_libretro.so %ROM% - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/gx4000 gx4000 -cart %ROM% gx4000 gx4000 @@ -774,13 +888,25 @@ kodi --> + + laserdisc + LaserDisc Games + %ROMPATH%/laserdisc + .daphne .singe .7z .7Z .zip .ZIP + + + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/laserdisc %BASENAME% + daphne, arcade + laserdisc + lcdgames LCD Handheld Games %ROMPATH%/lcdgames .mgw .MGW .7z .7Z .zip .ZIP - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/lcdgames %BASENAME% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gw_libretro.so %ROM% lcdgames, gameandwatch lcdgames @@ -814,7 +940,7 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2010_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2003_plus_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame2000_libretro.so %ROM% - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/mame %BASENAME% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbneo_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbalpha2012_libretro.so %ROM% @@ -827,24 +953,17 @@ arcade mame + mame-advmame AdvanceMAME %ROMPATH%/mame-advmame - .chd .cue .CUE .CHD .cmd .CMD .fba .FBA .iso .ISO .7z .7Z .zip .ZIP - PLACEHOLDER %ROM% + .7z .7Z .zip .ZIP + %STARTDIR%=~/.advance %EMULATOR_ADVANCEMAME% %BASENAME% arcade mame-advmame - - mame-mame4all - MAME4ALL - %ROMPATH%/mame-mame4all - .chd .cue .CUE .CHD .cmd .CMD .fba .FBA .iso .ISO .7z .7Z .zip .ZIP - PLACEHOLDER %ROM% - arcade - mame-mame4all - + mastersystem Sega Master System @@ -917,13 +1036,16 @@ mess mess + model2 Sega Model 2 %ROMPATH%/model2 .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM% - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/model2 %BASENAME% + + arcade model2 @@ -1073,11 +1195,21 @@ arcade naomi + + naomi2 + Sega NAOMI 2 + %ROMPATH%/naomi2 + .bin .BIN .dat .DAT .elf .ELF .lst .LST .7z .7Z .zip .ZIP + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/flycast_libretro.so %ROM% + + arcade + naomi2 + naomigd Sega NAOMI GD-ROM %ROMPATH%/naomigd - .cdi .CDI .iso .ISO .elf .ELF .bin .BIN .cue .CUE .gdi .GDI .lst .LST .dat .DAT .m3u .M3U .7z .7Z .zip .ZIP + .bin .BIN .dat .DAT .elf .ELF .lst .LST .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/flycast_libretro.so %ROM% arcade @@ -1093,6 +1225,7 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/melonds_libretro.so %ROM% %EMULATOR_MELONDS% %ROM% + nds nds @@ -1103,7 +1236,7 @@ .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fbneo_libretro.so %ROM% - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/neogeo %BASENAME% neogeo neogeo @@ -1115,7 +1248,7 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/neocd_libretro.so %ROM% %EMULATOR_RETROARCH% --subsystem neocd -L %CORE_RETROARCH%/fbneo_libretro.so %ROM% - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/neogeocd neocdz -cdrm %ROM% neogeocd neogeocd @@ -1127,7 +1260,7 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/neocd_libretro.so %ROM% %EMULATOR_RETROARCH% --subsystem neocd -L %CORE_RETROARCH%/fbneo_libretro.so %ROM% - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/neogeocdjp neocdz -cdrm %ROM% neogeocd neogeocdjp @@ -1137,8 +1270,9 @@ %ROMPATH%/nes .fds .FDS .nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen_libretro.so %ROM% + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/nestopia_libretro.so %ROM% - + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/fceumm_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/quicknes_libretro.so %ROM% @@ -1148,6 +1282,20 @@ nes nes + ngp SNK Neo Geo Pocket @@ -1216,8 +1364,9 @@ pc88 NEC PC-8800 Series %ROMPATH%/pc88 - .d88 .D88 .u88 .U88 .m3u .M3U .7z .7Z .zip .ZIP + .88d .88D .cmt .CMT .d88 .D88 .m3u .M3U .t88 .T88 .u88 .U88 %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/quasi88_libretro.so %ROM% + pc88 pc88 @@ -1275,6 +1424,16 @@ pico8 pico8 + + plus4 + Commodore Plus/4 + %ROMPATH%/plus4 + .bin .BIN .cmd .CMD .crt .CRT .d2m .D2M .d4m .D4M .d64 .D64 .d6z .D6Z .d71 .D71 .d7z .D7Z .d80 .D80 .d81 .D81 .d82 .D82 .d8z .D8Z .g41 .G41 .g4z .G4Z .g64 .G64 .g6z .G6Z .gz .GZ .lnx .LNX .m3u .M3U .nbz .NBZ .nib .NIB .p00 .P00 .prg .PRG .t64 .T64 .tap .TAP .vfl .VFL .vsf .VSF .x64 .X64 .x6z .X6Z .7z .7Z .zip .ZIP + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/vice_xplus4_libretro.so %ROM% + + plus4 + plus4 + pokemini Nintendo Pokémon Mini @@ -1298,11 +1457,12 @@ ps2 Sony PlayStation 2 %ROMPATH%/ps2 - %EMULATOR_PCSX2% -batch %ROM% - .bin .BIN .chd .CHD .ciso .CISO .cso .CSO .dump .DUMP .elf .ELF .gz .GZ .m3u .M3U .mdf .MDF .img .IMG .iso .ISO .isz .ISZ .ngr .NRG + .arcadedef .bin .BIN .chd .CHD .ciso .CISO .cso .CSO .dump .DUMP .elf .ELF .gz .GZ .m3u .M3U .mdf .MDF .img .IMG .iso .ISO .isz .ISZ .ngr .NRG + %EMULATOR_PCSX2% -batch %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM% - + + ps2 ps2 @@ -1337,7 +1497,7 @@ psp psp - + psx Sony PlayStation @@ -1362,7 +1522,7 @@ psx psx - + quake Quake @@ -1412,6 +1572,8 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/bsnes_mercury_accuracy_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM% + + satellaview satellaview @@ -1451,17 +1613,18 @@ scummvm scummvm - + sega32x Sega Mega Drive 32X @@ -1585,7 +1748,7 @@ snes snesna - + spectravideo Spectravideo @@ -1614,6 +1777,18 @@ stratagus stratagus + + stv + Sega Titan Video Game System + %ROMPATH%/stv + .7z .7Z .zip .ZIP + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/kronos_libretro.so %ROM% + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so %ROM% + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/stv %BASENAME% + + arcade + stv + sufami Bandai SuFami Turbo @@ -1650,6 +1825,18 @@ supervision supervision + + + supracan + Funtech Super A'Can + %ROMPATH%/supracan + .bin .BIN .7z .7Z .zip .ZIP + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "supracan -rompath %GAMEDIR%\;%ROMPATH%/supracan -cart \"%ROMRAW%\"" + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/supracan supracan -cart %ROM% + supracan + supracan + + switch Nintendo Switch @@ -1665,9 +1852,12 @@ symbian Symbian %ROMPATH%/symbian - .7z .7Z .zip .ZIP - PLACEHOLDER %ROM% - android + .sis .SIS .sisx .SISX .symbian + %EMULATOR_EKA2L1% --fullscreen --device RH-29 --run "%BASENAME%" + %EMULATOR_EKA2L1% --fullscreen --device RM-84 --run "%BASENAME%" + %EMULATOR_EKA2L1% --fullscreen --device RM-507 --run "%BASENAME%" + %EMULATOR_EKA2L1% --fullscreen --device %INJECT%=%BASENAME%.device --run "%BASENAME%" + ngage symbian + tic80 TIC-80 Game Engine @@ -1735,6 +1925,15 @@ to8 uzebox @@ -1800,22 +2011,23 @@ Visual Pinball %ROMPATH%/vpinball .vpt .VPT .vpx .VPX - PLACEHOLDER %ROM% + %EMULATOR_VISUAL-PINBALL% -Minimized -Play %ROM% vpinball vpinball --> - + wasm4 WASM-4 Fantasy Console @@ -1882,7 +2094,7 @@ %ROMPATH%/x68000 .dim .DIM .img .IMG .d88 .D88 .88d .88D .hdm .HDM .dup .DUP .2hd .2HD .xdf .XDF .hdf .HDF .cmd .CMD .m3u .M3U .7z .7Z .zip .ZIP %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/px68k_libretro.so %ROM% - + %STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/x68000 x68000 -flop1 %ROM% x68000 x68000 @@ -1900,8 +2112,10 @@ xbox360 Microsoft Xbox 360 %ROMPATH%/xbox360 - . .iso .ISO .xex .XEX - PLACEHOLDER %ROM% + . .desktop .iso .ISO .sh .xex .XEX + %STARTDIR%=%EMUDIR% %PRECOMMAND_WINE% %EMULATOR_XENIA-WINDOWS% %ROM% + %STARTDIR%=%EMUDIR% %PRECOMMAND_PROTON% %EMULATOR_XENIA-WINDOWS% %ROM% + %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM% xbox360 xbox360 diff --git a/functions/050_save_migration.sh b/functions/050_save_migration.sh index f0187e24..0f53c65c 100644 --- a/functions/050_save_migration.sh +++ b/functions/050_save_migration.sh @@ -30,7 +30,7 @@ save_migration() { # Doing the dir prep as we don't know from which version we came dir_prep "$media_folder" "/var/config/emulationstation/.emulationstation/downloaded_media" dir_prep "$themes_folder" "/var/config/emulationstation/.emulationstation/themes" - mkdir -pv $rdhome/.logs #this was added later, maybe safe to remove in a few versions + mkdir -pv $rdhome/logs #this was added later, maybe safe to remove in a few versions # Resetting es_settings, now we need it but in the future I should think a better solution, maybe with sed cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml @@ -50,7 +50,7 @@ save_migration() { versionwheresaveschanged="0.4.5b" # Hardcoded break point between unsorted and sorted saves if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]]; then # Check if user is upgrading from the version where save organization was changed. Try not to reuse this, it things 0.4.5b is newer than 0.4.5 - migration_logfile=$rdhome/.logs/savemove_"$(date +"%Y_%m_%d_%I_%M_%p").log" + migration_logfile=$rdhome/logs/savemove_"$(date +"%Y_%m_%d_%I_%M_%p").log" save_backup_file=$rdhome/savebackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip" state_backup_file=$rdhome/statesbackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip" diff --git a/functions/dialogs.sh b/functions/dialogs.sh index 00393287..2571a35b 100644 --- a/functions/dialogs.sh +++ b/functions/dialogs.sh @@ -1,5 +1,7 @@ #!/bin/bash +source functions/functions.sh + debug_dialog() { # This function is for displaying commands run by the Configurator without actually running them # USAGE: debug_dialog "command" @@ -16,11 +18,12 @@ configurator_process_complete_dialog() { zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Quit" --extra-button="OK" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator Utility - Process Complete" \ - --text="The process of $1 is now complete.\n\nYou may need to quit and restart RetroDECK for your changes to take effect\n\nClick OK to return to the Main Menu or Quit to return to RetroDECK." + --text="The process of $1 is now complete.\n\nYou may need to quit and restart RetroDECK for your changes to take effect\n\nClick OK to return to the Main Menu or Quit to quit RetroDECK." - if [ ! $? == 0 ] # OK button clicked - then + if [ ! $? == 0 ]; then # OK button clicked configurator_welcome_dialog + elif [ ! $? == 1 ]; then # Quit button clicked + quit_retrodeck fi } @@ -113,7 +116,7 @@ configurator_move_folder_dialog() { unlink "$dest_root/$rd_dir_path" # In case there is already a symlink at the picked destination move "$dir_to_move" "$dest_root/$rd_dir_path" if [[ -d "$dest_root/$rd_dir_path" ]]; then # If the move succeeded - eval "$rd_dir_name"="$dest_root/$rd_dir_path" # Set the new path for that folder variable in retrodeck.cfg + declare -g "$rd_dir_name=$dest_root/$rd_dir_path" # Set the new path for that folder variable in retrodeck.cfg if [[ "$rd_dir_name" == "rdhome" ]]; then # If the whole retrodeck folder was moved... prepare_emulator "postmove" "retrodeck" fi @@ -146,7 +149,7 @@ configurator_move_folder_dialog() { else # The folder to move was not found at the path pulled from retrodeck.cfg and it needs to be reconfigured manually. configurator_generic_dialog "RetroDECK Configurator - Move Folder" "The $(basename $dir_to_move) folder was not found at the expected location.\n\nThis may have happened if the folder was moved manually.\n\nPlease select the current location of the folder." dir_to_move=$(directory_browse "RetroDECK $(basename $dir_to_move) directory location") - eval "$rd_dir_name"="$dir_to_move" + declare -g "$rd_dir_name=$dir_to_move" prepare_emulator "postmove" "all" conf_write configurator_generic_dialog "RetroDECK Configurator - Move Folder" "RetroDECK $(basename $dir_to_move) folder now configured at\n$dir_to_move." @@ -239,4 +242,4 @@ low_space_warning() { fi fi fi -} +} \ No newline at end of file diff --git a/functions/functions.sh b/functions/functions.sh index e6b6f9ed..3b3719fb 100644 --- a/functions/functions.sh +++ b/functions/functions.sh @@ -9,14 +9,14 @@ directory_browse() { while [ $path_selected == false ] do local target="$(zenity --file-selection --title="Choose $1" --directory)" - if [ ! -z $target ] #yes + if [ ! -z "$target" ] #yes then zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \ --text="Directory $target chosen, is this correct?" if [ $? == 0 ] then path_selected=true - echo $target + echo "$target" break fi else @@ -161,7 +161,7 @@ conf_read() { if [[ "$current_section" == "" || "$current_section" == "paths" || "$current_section" == "options" ]]; then local current_setting_name=$(get_setting_name "$current_setting_line" "retrodeck") # Read the variable name from the current line local current_setting_value=$(get_setting_value "$rd_conf" "$current_setting_name" "retrodeck" "$current_section") # Read the variables value from retrodeck.cfg - eval "$current_setting_name=$current_setting_value" # Write the current setting name and value to memory + declare -g "$current_setting_name=$current_setting_value" # Write the current setting name and value to memory fi fi fi @@ -294,7 +294,7 @@ do zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" --text="Do you want to quit?" if [ $? == 0 ] # yes, quit then - exit 2 + quit_retrodeck fi fi fi @@ -304,7 +304,7 @@ do --title "RetroDECK" \ --ok-label "Quit" \ --text="No location was selected. Please run RetroDECK again to retry." - exit 2 + quit_retrodeck fi done } @@ -341,19 +341,19 @@ finit() { local finit_dest_choice=$(configurator_destination_choice_dialog "RetroDECK data" "Welcome to the first configuration of RetroDECK.\nThe setup will be quick but please READ CAREFULLY each message in order to avoid misconfigurations.\n\nWhere do you want your RetroDECK data folder to be located?\n\nThis folder will contain all ROMs, BIOSs and scraped data." ) echo "Choice is $finit_dest_choice" - case $finit_dest_choice in + case "$finit_dest_choice" in "Back" | "" ) # Back or X button quits rm -f "$rd_conf" # Cleanup unfinished retrodeck.cfg if first install is interrupted echo "Now quitting" - exit 2 + quit_retrodeck ;; "Internal Storage" ) # Internal echo "Internal selected" rdhome="$HOME/retrodeck" - if [[ -L $rdhome ]]; then #Remove old symlink from existing install, if it exists - unlink $rdhome + if [[ -L "$rdhome" ]]; then #Remove old symlink from existing install, if it exists + unlink "$rdhome" fi ;; @@ -366,9 +366,9 @@ finit() { --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK" \ --ok-label "Browse" \ - --text="SD Card was not find in the default location.\nPlease choose the SD Card root.\nA retrodeck folder will be created starting from the directory that you selected." - rdhome=$(finit_browse) # Calling the browse function - if [[ -z $rdhome ]]; then # If user hit the cancel button + --text="SD Card was not found in the default location.\nPlease choose the SD Card root.\nA retrodeck folder will be created starting from the directory that you selected." + rdhome="$(finit_browse)" # Calling the browse function + if [[ -z "$rdhome" ]]; then # If user hit the cancel button rm -f "$rd_conf" # Cleanup unfinished retrodeck.cfg if first install is interrupted exit 2 fi @@ -382,7 +382,7 @@ finit() { --text="SD card was found but is not writable\nThis can happen with cards formatted on PC.\nPlease format the SD card through the Steam Deck's Game Mode and run RetroDECK again." rm -f "$rd_conf" # Cleanup unfinished retrodeck.cfg if first install is interrupted echo "Now quitting" - exit 2 + quit_retrodeck else rdhome="$sdcard/retrodeck" fi @@ -395,8 +395,8 @@ finit() { --title "RetroDECK" \ --ok-label "Browse" \ --text="Please choose the root folder for the RetroDECK data.\nA retrodeck folder will be created starting from the directory that you selected." - rdhome=$(finit_browse) # Calling the browse function - if [[ -z $rdhome ]]; then # If user hit the cancel button + rdhome="$(finit_browse)" # Calling the browse function + if [[ -z "$rdhome" ]]; then # If user hit the cancel button rm -f "$rd_conf" # Cleanup unfinished retrodeck.cfg if first install is interrupted exit 2 fi @@ -414,7 +414,7 @@ finit() { if [[ "$finit_options_choices" =~ (rpcs3_firmware|Enable All) ]]; then # Additional information on the firmware install process, as the emulator needs to be manually closed configurator_generic_dialog "RPCS3 Firmware Install" "You have chosen to install the RPCS3 firmware during the RetroDECK first setup.\n\nThis process will take several minutes and requires network access.\n\nRPCS3 will be launched automatically at the end of the RetroDECK setup process.\nOnce the firmware is installed, please close the emulator to finish the process." fi - + zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" \ --text="RetroDECK will now install the needed files, which can take up to one minute.\nRetroDECK will start once the process is completed.\n\nPress OK to continue." @@ -423,7 +423,7 @@ finit() { prepare_emulator "reset" "all" build_retrodeck_current_presets deploy_helper_files - + # Optional actions based on user choices if [[ "$finit_options_choices" =~ (rpcs3_firmware|Enable All) ]]; then if [[ $(check_network_connectivity) == "true" ]]; then @@ -433,7 +433,7 @@ finit() { if [[ "$finit_options_choices" =~ (rd_controller_profile|Enable All) ]]; then install_retrodeck_controller_profile fi - if [[ "$finit_options_choices" =~ (rd_prepacks|Enable All) ]]; then + if [[ "$finit_options_choices" =~ (rd_prepacks|Enable All) ]]; then install_retrodeck_starterpack fi @@ -449,7 +449,7 @@ finit() { install_retrodeck_starterpack() { # This function will install the roms, gamelists and metadata for the RetroDECK Starter Pack, a curated selection of games the creators of RetroDECK enjoy. # USAGE: install_retrodeck_starterpack - + ## DOOM section ## cp /app/retrodeck/extras/doom1.wad "$roms_folder/doom/doom1.wad" # No -f in case the user already has it mkdir -p "/var/config/emulationstation/.emulationstation/gamelists/doom" @@ -467,7 +467,7 @@ install_retrodeck_controller_profile() { # USAGE: install_retrodeck_controller_profile if [[ -d "$HOME/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/" && -d "$HOME/.steam/steam/controller_base/templates/" ]]; then rsync -rlD --mkpath "/app/retrodeck/binding_icons/" "$HOME/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/" - cp -f "$emuconfigs/defaults/retrodeck/RetroDECK_controller_config.vdf" "$HOME/.steam/steam/controller_base/templates/RetroDECK_controller_config.vdf" + cp -f "$emuconfigs/defaults/retrodeck/controller_configs/*.vdf" "$HOME/.steam/steam/controller_base/templates" else configurator_generic_dialog "RetroDECK Controller Profile Install" "The target directories for the controller profile do not exist.\n\nThis may happen if you do not have Steam installed or the location is does not have permission to be read." fi @@ -527,6 +527,11 @@ easter_eggs() { cp -f "$new_splash_file" "$current_splash_file" # Deploy assigned splash screen } +quit_retrodeck() { + pkill -f retrodeck + pkill -f emulationstation +} + start_retrodeck() { easter_eggs # Check if today has a surprise splashscreen and load it if so # normal startup diff --git a/functions/global.sh b/functions/global.sh index 93dbb93c..954acdda 100644 --- a/functions/global.sh +++ b/functions/global.sh @@ -103,6 +103,11 @@ primehackqtconf="/var/config/primehack/Qt.ini" rpcs3conf="/var/config/rpcs3/config.yml" rpcs3vfsconf="/var/config/rpcs3/vfs.yml" +# Vita3k config files + +vita3kconf="/var/data/Vita3K/config.yml" +vita3kusrconfdir="$bios_folder/Vita3K/Vita3K" + # We moved the lockfile in /var/config/retrodeck in order to solve issue #53 - Remove in a few versions if [ -f "$HOME/retrodeck/.lock" ] then @@ -126,9 +131,13 @@ if [[ ! -f "$rd_conf" ]]; then fi # Check if SD card path has changed from SteamOS update - if [[ ! -d $default_sd && "$(ls -A /run/media/deck/)" ]]; then - configurator_generic_dialog "RetroDECK Setup" "The SD card was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the SD card.\n\nIf you are not using an SD card, please click \"Cancel\"." - default_sd=$(directory_browse "SD Card Location") + if [[ ! -d "$default_sd" && "$(ls -A /run/media/deck/)" ]]; then + if [[ $(find media/deck/* -maxdepth 0 -type d -print | wc -l) -eq 1 ]]; then # If there is only one SD card found in the new Steam OS 3.5 location, assign it as the default + default_sd="$(find media/deck/* -maxdepth 0 -type d -print)" + else # If the default legacy path cannot be found, and there are multiple entries in the new Steam OS 3.5 SD card path, let the user pick which one to use + configurator_generic_dialog "RetroDECK Setup" "The SD card was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the SD card.\n\nIf you are not using an SD card, please click \"Cancel\"." + default_sd="$(directory_browse "SD Card Location")" + fi fi cp $rd_defaults $rd_conf # Load default settings file diff --git a/functions/patching.sh b/functions/patching.sh index 32380327..c732163c 100644 --- a/functions/patching.sh +++ b/functions/patching.sh @@ -17,7 +17,7 @@ set_setting_value() { sed -i '\^\['"$current_section_name"'\]^,\^\^'"$setting_name_to_change"'=^s^\^'"$setting_name_to_change"'=.*^'"$setting_name_to_change"'='"$setting_value_to_change"'^' "$1" fi if [[ "$4" == "retrodeck" && ("$current_section_name" == "" || "$current_section_name" == "paths" || "$current_section_name" == "options") ]]; then # If a RetroDECK setting is being changed, also write it to memory for immediate use - eval "$setting_name_to_change=$setting_value_to_change" + declare -g "$setting_name_to_change=$setting_value_to_change" fi ;; @@ -37,7 +37,7 @@ set_setting_value() { fi ;; - "rpcs3" ) # This does not currently work for settings with a $ in them + "rpcs3" | "vita3k" ) # This does not currently work for settings with a $ in them if [[ -z $current_section_name ]]; then sed -i 's^\^'"$setting_name_to_change"': .*^'"$setting_name_to_change"': '"$setting_value_to_change"'^' "$1" else @@ -72,7 +72,7 @@ get_setting_name() { echo ''"$current_setting_line"'' | grep -o -P '(?<=name\=\").*(?=\" value)' ;; - "rpcs3" ) + "rpcs3" | "vita3k" ) echo "$current_setting_line" | grep -o -P "^\s*?.*?(?=\s?:\s?)" | sed -e 's/^[ \t]*//;s^\\ ^ ^g' ;; @@ -116,7 +116,7 @@ get_setting_value() { fi ;; - "rpcs3" ) # For files with this syntax - setting_name: setting_value + "rpcs3" | "vita3k" ) # For files with this syntax - setting_name: setting_value if [[ -z $current_section_name ]]; then echo $(grep -o -P "(?<=$current_setting_name: ).*" "$1") else diff --git a/functions/post_update.sh b/functions/post_update.sh index 69194993..464f4f7d 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -1,5 +1,7 @@ #!/bin/bash +source /app/libexec/logger.sh + post_update() { # post update script @@ -229,6 +231,11 @@ post_update() { set_setting_value "$ppssppcontrolsconf" "R" "1-51,10-192" "ppsspp" "ControlMapping" fi + if [[ $prev_version -le "073" ]]; then + # In version 0.7.3b, there was a bug that prevented the correct creations of the roms/system folders, so we force recreate them. + emulationstation --home /var/config/emulationstation --create-system-dirs + fi + # The following commands are run every time. if [[ -d "/var/data/dolphin-emu/Load/DynamicInputTextures" ]]; then # Refresh installed textures if they have been enabled @@ -239,8 +246,7 @@ post_update() { fi if [[ -f "$HOME/.steam/steam/controller_base/templates/RetroDECK_controller_config.vdf" ]]; then # If RetroDECK controller profile has been previously installed - cp -f "$emuconfigs/defaults/retrodeck/RetroDECK_controller_config.vdf" "$HOME/.steam/steam/controller_base/templates/RetroDECK_controller_config.vdf" - rsync -rlD --mkpath "/app/retrodeck/binding_icons/" "$HOME/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/" + install_retrodeck_controller_profile fi update_splashscreens @@ -260,4 +266,28 @@ post_update() { else changelog_dialog "$version" fi + + if [[ $prev_version -le "075" ]]; then + # In version 0.7.5b, the following changes were made: + # TODO: vita3k init + # TODO: MAME init + if [ -d "$rdhome/.logs" ]; then + mv "$rdhome/.logs" "$logs_folder" + log i "Logs folder renamed successfully" + else + log i "The .logs folder does not exist, continuing." + fi + + # The save folder of rpcs3 was inverted so we're moving the saves into the real one + echo "RPCS3 saves needs to be migrated, executing." + mv "$saves_folder/ps3/rpcs3" "$saves_folder/ps3/rpcs3.bak" + mkdir -p "$saves_folder/ps3/rpcs3" + mv -v "$saves_folder/ps3/rpcs3.bak"/* "$saves_folder/ps3/rpcs3" + mv -v "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata"/* "$saves_folder/ps3/rpcs3" + mv -v "$saves_folder/ps3/rpcs3.bak" "$rdhome/backups/saves/ps3/rpcs3" + echo "RPCS3 saves migration completed, a backup was made here: \"$rdhome/backups/saves/ps3/rpcs3\"." + source /app/libexec/functions.sh + dir_prep "$saves_folder/ps3/rpcs3" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" + + fi } diff --git a/functions/prepare_emulator.sh b/functions/prepare_emulator.sh index 0f880fe3..93deda18 100644 --- a/functions/prepare_emulator.sh +++ b/functions/prepare_emulator.sh @@ -19,7 +19,7 @@ prepare_emulator() { local current_setting_name=$(get_setting_name "$config_line" "retrodeck") if [[ ! $current_setting_name =~ (rdhome|sdcard) ]]; then # Ignore these locations local current_setting_value=$(get_setting_value "$rd_conf" "$current_setting_name" "retrodeck" "paths") - eval "$current_setting_name=$rdhome/$(basename $current_setting_value)" + declare -g "$current_setting_name=$rdhome/$(basename $current_setting_value)" mkdir -p "$rdhome/$(basename $current_setting_value)" fi done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f') @@ -30,7 +30,7 @@ prepare_emulator() { if [[ ! $current_setting_name =~ (rdhome|sdcard) ]]; then # Ignore these locations local current_setting_value=$(get_setting_value "$rd_conf" "$current_setting_name" "retrodeck" "paths") if [[ -d "$rdhome/$(basename $current_setting_value)" ]]; then # If the folder exists at the new ~/retrodeck location - eval "$current_setting_name=$rdhome/$(basename $current_setting_value)" + declare -g "$current_setting_name=$rdhome/$(basename $current_setting_value)" fi fi done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f') @@ -45,9 +45,9 @@ prepare_emulator() { set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings" set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings" set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings" + dir_prep "$rdhome/gamelists" "/var/config/emulationstation/.emulationstation/gamelists" emulationstation --home /var/config/emulationstation --create-system-dirs update_splashscreens - dir_prep "$rdhome/gamelists" "/var/config/emulationstation/.emulationstation/gamelists" fi if [[ "$action" == "postmove" ]]; then set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings" @@ -220,7 +220,7 @@ prepare_emulator() { fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands dir_prep "$rdhome/bios/citra/sysdata" "/var/data/citra-emu/sysdata" - dir_prep "$rdhome/.logs/citra" "/var/data/citra-emu/log" + dir_prep "$rdhome/logs/citra" "/var/data/citra-emu/log" dir_prep "$mods_folder/Citra" "/var/data/citra-emu/load/mods" dir_prep "$texture_packs_folder/Citra" "/var/data/citra-emu/load/textures" set_setting_value "$citraconf" "nand_directory" "$saves_folder/n3ds/citra/nand/" "citra" "Data%20Storage" @@ -301,8 +301,9 @@ prepare_emulator() { set_setting_value "$multi_user_data_folder/$SteamAppUser/data/duckstation/settings.ini" "RecursivePaths" "$roms_folder/psx" "duckstation" "GameList" dir_prep "$multi_user_data_folder/$SteamAppUser/config/duckstation" "/var/config/duckstation" else # Single-user actions - rm -rf /var/config/duckstation - mkdir -p /var/config/duckstation/ + rm -rf "/var/config/duckstation" + mkdir -p "/var/config/duckstation/" + mkdir -p "$saves_folder/psx/duckstation/memcards" cp -fv "$emuconfigs/duckstation/"* /var/config/duckstation set_setting_value "$duckstationconf" "SearchDirectory" "$bios_folder" "duckstation" "BIOS" set_setting_value "$duckstationconf" "Card1Path" "$saves_folder/psx/duckstation/memcards/shared_card_1.mcd" "duckstation" "MemoryCards" @@ -521,7 +522,7 @@ prepare_emulator() { # This is an unfortunate one-off because set_setting_value does not currently support settings with $ in the name. sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3/"'^' "$rpcs3vfsconf" set_setting_value "$rpcs3vfsconf" "/games/" "$roms_folder/ps3/" "rpcs3" - dir_prep "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" "$saves_folder/ps3/rpcs3" + dir_prep "$saves_folder/ps3/rpcs3" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" fi # Shared actions mkdir -p "$bios_folder/rpcs3/dev_hdd0" @@ -667,6 +668,73 @@ prepare_emulator() { fi fi + if [[ "$emulator" =~ ^(vita3k|Vita3K|all)$ ]]; then + if [[ "$action" == "reset" ]]; then # Run reset-only commands + echo "----------------------" + echo "Initializing Vita3K" + echo "----------------------" + if [[ $multi_user_mode == "true" ]]; then # Multi-user actions + echo "Figure out what Vita3k needs for multi-user" + else # Single-user actions + # NOTE: the emulator is writing in "." so it must be placed in the rw filesystem. A symlink of the binary is already placed in /app/bin/Vita3K + rm -rf "/var/data/Vita3K" + mkdir -p "/var/data/Vita3K" + unzip "/app/retrodeck/vita3k.zip" -d "/var/data/Vita3K" + chmod +x "/var/data/Vita3K/Vita3K" + rm -f "/var/data/Vita3K/update-vita3k.sh" + cp -fvr "$emuconfigs/vita3k/config.yml" "/var/data/Vita3K" # Emulator config + cp -fvr "$emuconfigs/vita3k/ux0" "$bios_folder/Vita3K/Vita3K" # User config + set_setting_value "$vita3kconf" "pref-path" "$rdhome/bios/Vita3K/Vita3K/" "vita3k" + fi + # Shared actions + dir_prep "$saves_folder/psvita/vita3k" "$bios_folder/Vita3K/Vita3K/ux0/user/00/savedata" # Multi-user safe? + + # Installing firmware + # TODO: at the moment this is here instead of a tool because it seems like it cannot run without Firmware + curl "http://dus01.psv.update.playstation.net/update/psv/image/2022_0209/rel_f2c7b12fe85496ec88a0391b514d6e3b/PSVUPDAT.PUP" -po /tmp/PSVUPDAT.PUP + curl "http://dus01.psp2.update.playstation.net/update/psp2/image/2019_0924/sd_8b5f60b56c3da8365b973dba570c53a5/PSP2UPDAT.PUP?dest=us" -po /tmp/PSP2UPDAT.PUP + Vita3K --firmware /tmp/PSVUPDAT.PUP + Vita3K --firmware /tmp/PSP2UPDAT.PUP + fi + if [[ "$action" == "postmove" ]]; then # Run only post-move commands + dir_prep "$saves_folder/psvita/vita3k" "$bios_folder/Vita3K/Vita3K/ux0/user/00/savedata" # Multi-user safe? + set_setting_value "$vita3kconf" "pref-path" "$rdhome/bios/Vita3K/Vita3K/" "vita3k" + fi + fi + + if [[ "$emulator" =~ ^(mame|MAME|all)$ ]]; then + # TODO: do a proper script + # This is just a placeholder script to test the emulator's flow + echo "----------------------" + echo "Initializing MAME" + echo "----------------------" + + mkdir -p $saves_folder/mame-sa + mkdir -p "/var/config/mame" + dir_prep "$saves_folder/mame-sa/hiscore" "/var/config/mame/hiscore" + cp -fvr "$emuconfigs/mame/**" "/var/config/mame" + sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/gzdoom/*.ini" + sed -i 's#RETRODECKHOMESDIR#'$rdhome'#g' "/var/config/gzdoom/*.ini" + sed -i 's#RETRODECKSAVESDIR#'$rdhome'#g' "/var/config/gzdoom/*.ini" + + fi + + if [[ "$emulator" =~ ^(gzdoom|GZDOOM|all)$ ]]; then + # TODO: do a proper script + # This is just a placeholder script to test the emulator's flow + echo "----------------------" + echo "Initializing GZDOOM" + echo "----------------------" + + mkdir -p "/var/config/gzdoom" + mkdir -p "/var/data/gzdoom" + cp -fvr "$emuconfigs/gzdoom/gzdoom.ini" "/var/config/gzdoom" + cp -fvr "$emuconfigs/gzdoom/gzdoom.pk3" "/var/data/gzdoom" + + sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON + sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON + fi + # Update presets for all emulators after any reset or move if [[ ! "$emulator" == "retrodeck" ]]; then build_retrodeck_current_presets diff --git a/net.retrodeck.retrodeck.Configurator.desktop b/net.retrodeck.retrodeck.Configurator.desktop index 89c01fff..1d45d4a4 100644 --- a/net.retrodeck.retrodeck.Configurator.desktop +++ b/net.retrodeck.retrodeck.Configurator.desktop @@ -4,7 +4,7 @@ GenericName=RetroDECK Configuration Utility Type=Application Comment=A handy tool to change common RetroDECK settings Icon=net.retrodeck.retrodeck -Exec=/app/tools/configurator.sh +Exec=/bin/bash /app/tools/configurator.sh Terminal=false StartupNotify=false Keywords=multi;engine;emulator;standalone;steam;deck diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml index 57db832a..318e1798 100644 --- a/net.retrodeck.retrodeck.appdata.xml +++ b/net.retrodeck.retrodeck.appdata.xml @@ -4,7 +4,7 @@ net.retrodeck.retrodeck net.retrodeck.retrodeck.desktop RetroDECK - RetroDECK brings an environment to catalog and play your retro games directly on your Steam Deck. + RetroDECK brings an environment to catalog and play your retro games directly on your Steam Deck RetroDECK Team https://retrodeck.net https://github.com/XargonWan/RetroDECK/issues @@ -65,12 +65,86 @@ GPL-3.0 CC0-1.0 - + https://github.com/XargonWan/RetroDECK/releases/tag/0.8.0b -

News:

+

Changes:

    -
  • Welcome to cooker 0.8.0b!
  • +
  • Added new system: SOLARUS
  • +
  • Added new engine: GZDOOM
  • +
  • Added new emulator: Vita3K
  • +
  • Quit button after emulators reset should act as an actual full quit button
  • +
  • Created a quit_retrodeck function to ease the quit in the scripts.
  • +
  • Logs folder is now in retrodeck/logs (previously was .logs)
  • +
+

Fixes:

+
    +
  • Fixed DUCKSTATION memory card folder
  • +
  • Fixed RPCS3 saves folder (wrong symlink)
  • +
+

Issues:

+
    +
  • GZDOOM: the controller for player 2+ is not correctly configured
  • +
  • quit_retrodeck function seems to not working correctly
  • +
  • Added new emulator: MAME (Standalone) -- Removed cause of compiling issues
  • +
  • MAME (Standalone) paths should be fixed
  • +
+

Missing:

+
    +
  • GZDOOM: hotkeys
  • +
  • SOLARUS: hotkeys
  • +
  • MAME (Standalone): hotkeys
  • +
  • A proper reset script for the new emulators, now it's just a draft (only Vita3K is done)
  • +
+
+
+ + https://github.com/XargonWan/RetroDECK/releases/tag/0.7.5b + +

Bug fixes and other changes:

+
    +
  • RetroDECK Team wishes you happy holidays with a festive loading screen!
  • +
  • Framework: Fixed the SD card path resolution for SteamOS 3.5
  • +
  • Configurator: Added the possibility to reset ES-DE configs via Configurator and CLI
  • +
  • RetroArch: Borders/Overlays are now disabled by default on fresh installs to prevent screen burn-in
  • +
  • RetroArch: added nightly cores, stable cores have priority over them
  • +
  • RPCS3: tweaked confing to improve performance
  • +
  • Dolphin (SA): fixed GC buttons layout. Now R1 is Z and L2/R2 are L/R
  • +
  • CEMU: tweaked audio config to choose the correct output device when docked
  • +
+

Updates:

+
    +
  • All standalone emulators to their latest versions (prior to llvm17 and 6.6 framework updates)
  • +
+
+
+ + https://github.com/XargonWan/RetroDECK/releases/tag/0.7.4b + +

Hotfix:

+
    +
  • Fixed a bug where the system folders were not correctly generated
  • +
  • Fixed a bug where the RetroDECK Configurator desktop file was not opening the Configurator from Desktop Mode
  • +
  • Fixed a bug where the theme was not showing correctly
  • +
  • Added retrodeck and configurator commands to be called from the shell or bash inside flatpak
  • +
+

Known issues:

+
    +
  • Please check the know issues in the Wiki under General Infomration
  • +
+
+
+ + https://github.com/XargonWan/RetroDECK/releases/tag/0.7.3b + +

Updates:

+
    +
  • All standalone emulators
  • +
  • EmulationStation Desktop Edition (ES-DE)
  • +
+

Known issues:

+
    +
  • Please check the know issues in the Wiki under General Infomration
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 2af8e46c..010e5c2d 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -1,12 +1,12 @@ app-id: net.retrodeck.retrodeck runtime: org.kde.Platform -runtime-version: 5.15-22.08 +runtime-version: "6.5" sdk: org.kde.Sdk sdk-extensions: - - org.freedesktop.Sdk.Extension.llvm14 # Needed for rpcs3 - - org.freedesktop.Sdk.Extension.rust-stable # Needed for BoilR -base: io.qt.qtwebengine.BaseApp # Needed for Yuzu -base-version: 5.15-22.08 # Needed for Yuzu + - org.freedesktop.Sdk.Extension.llvm16 # Needed for rpcs3 (llvm15) but llvm16 for CITRA + - org.freedesktop.Sdk.Extension.rust-stable # Needed for BoilR +# base: io.qt.qtwebengine.BaseApp # Needed for Yuzu - Disabled as we're using AppImage for Yuzu +# base-version: "6.5" # Needed for Yuzu - Disabled as we're using AppImage for Yuzu command: retrodeck.sh add-extensions: @@ -42,6 +42,8 @@ finish-args: # It allows an SDL application to specify its window class, which can be useful for window managers and desktop environments to identify and group similar windows - --env=SDL_VIDEO_X11_WMCLASS=net.retrodeck.retrodeck - --env=SDL_VIDEO_WAYLAND_WMCLASS=net.retrodeck.retrodeck + # XEMU - Fixes issues with openSUSE systems, QEMU_AUDIO_DRV is defined as "pa" causing xemu to not launch + - --unset-env=QEMU_AUDIO_DRV # BoilR - --filesystem=xdg-data/Steam:rw #Steam (flatpak) - --filesystem=~/.steam:rw # Steam (Non-flatpak) @@ -67,13 +69,13 @@ cleanup: # XMLSTARLET - /lib/debug - /share/runtime -cleanup-commands: +#cleanup-commands: # Yuzu - - /app/cleanup-BaseApp.sh + #- /app/cleanup-BaseApp.sh modules: - # dependency of: CEMU + # dependency of: CEMU, CITRA, DOLPHIN - rd-submodules/shared-modules/libusb/libusb.json # This module is used to define the RetroDECK version @@ -82,15 +84,16 @@ modules: # The version number is hardcoded in /app/retrodeck/version # # UPDATE STEPS FOR MAIN: - # [X] Update the VERSION variable on line containing "VERSION=THISBRANCH" - # [X] Update the appdata.xml with the version number and notes + # [ ] Update the VERSION variable on line containing "VERSION=THISBRANCH" + # [ ] Update the appdata.xml with the version number and notes # - name: version-initialization buildsystem: simple build-commands: - | - # on main please update this with the version variable, eg: VERSION='0.7.0b' + # on main please update this with the version variable, eg: VERSION='0.7.4b' + # on cooker will be THISBRANCH VERSION=THISBRANCH git checkout ${GITHUB_REF_NAME} @@ -124,10 +127,10 @@ modules: - ln -s "xml" "${FLATPAK_DEST}/bin/xmlstarlet" ||: # 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 + # this affects even the shared-modules's libglu so I have to replace it temporarly # more info there: https://gitlab.com/gnutls/gnutls/-/issues/1335 - # dependency of: CEMU - - name: glu + # dependency of: RETROARCH, CEMU, RPCS3, XEMU + - name: libglu buildsystem: meson cleanup: - /include @@ -136,8 +139,16 @@ modules: - /lib/*.a sources: - type: archive - url: https://ftp.osuosl.org/pub/blfs/conglomeration/glu/glu-9.0.2.tar.xz - sha256: 6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4 + url: https://ftp.osuosl.org/pub/blfs/conglomeration/glu/glu-9.0.3.tar.xz + sha256: bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f + # - type: archive + # url: https://mesa.freedesktop.org/archive/glu/glu-9.0.3.tar.xz + # sha256: bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f + # x-checker-data: + # type: anitya + # project-id: 13518 + # stable-only: true + # url-template: https://mesa.freedesktop.org/archive/glu/glu-$version.tar.xz - name: libgudev buildsystem: meson @@ -225,24 +236,120 @@ modules: url: https://github.com/mikefarah/yq/releases/download/v4.33.3/yq_linux_amd64 sha256: 4ee662847c588c3ef2fec8bfb304e8739e3dbaba87ccb9a608d691c88f5b64dc - # dependency of: CEMU (13.0.0) + # dependency of: CEMU (13.1.1), CITRA (13.0.0) - name: glslang buildsystem: cmake-ninja config-opts: - -DCMAKE_BUILD_TYPE=Release - -DENABLE_CTEST=OFF + # TODO: Does Cemu benefit from SPIRV-Tools-opt + - -DENABLE_OPT=OFF cleanup: - /include - /lib/cmake sources: - type: archive - url: https://github.com/KhronosGroup/glslang/archive/13.0.0.tar.gz - sha256: bcda732434f829aa74414ea0e06d329ec8ac28637c38a0de45e17c8fd25a4715 + url: https://github.com/KhronosGroup/glslang/archive/13.1.1.tar.gz + sha256: 1c4d0a5a38c8aaf89a2d7e6093be734320599f5a6775b2726beeb05b0c054e66 + # url: https://github.com/KhronosGroup/glslang/archive/13.0.0.tar.gz + # sha256: bcda732434f829aa74414ea0e06d329ec8ac28637c38a0de45e17c8fd25a4715 x-checker-data: type: anitya stable-only: true project-id: 205796 url-template: https://github.com/KhronosGroup/glslang/archive/$version.tar.gz + # - type: git + # url: https://github.com/KhronosGroup/SPIRV-Tools.git + # tag: sdk-1.3.261.1 + # dest: External/spirv-tools + # - type: git + # url: https://github.com/KhronosGroup/SPIRV-Headers.git + # tag: sdk-1.3.261.1 + # dest: External/spirv-tools/external/spirv-headers + + # enables motion controls on non-wii controllers (switch, ps4, etc) + # dependency of: DOLPHIN, RPCS3 + # TODO: 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.13.1.tar.xz + sha256: 06a77bf2ac5c993305882bc1641017f5bec1592d6d1b64787bad492ab34f2f36 + x-checker-data: + type: anitya + project-id: 20540 + stable-only: true + url-template: https://www.freedesktop.org/software/libevdev/libevdev-$version.tar.xz + + # dependency of: CITRA, CEMU + - name: rapidjson + buildsystem: cmake-ninja + config-opts: + - -DRAPIDJSON_BUILD_DOC=OFF + - -DRAPIDJSON_BUILD_EXAMPLES=OFF + - -DRAPIDJSON_BUILD_TESTS=OFF + - -DRAPIDJSON_BUILD_THIRDPARTY_GTEST=OFF + cleanup: + - /include + - /lib/cmake + - /lib/pkgconfig + - /share/doc + sources: + - type: archive + url: https://github.com/Tencent/rapidjson/archive/refs/tags/v1.1.0.tar.gz + sha256: bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e + x-checker-data: + type: anitya + project-id: 7422 + stable-only: true + url-template: https://github.com/Tencent/rapidjson/archive/refs/tags/v$version.tar.gz + + # dependency of: CEMU, SOLARUS + - name: glm + buildsystem: cmake-ninja + cleanup: ['*'] + no-make-install: true + post-install: + - install -d ${FLATPAK_DEST}/include + - cp -R glm ${FLATPAK_DEST}/include + - cp -R cmake/glm ${FLATPAK_DEST}/lib/cmake + sources: + - type: archive + url: https://github.com/g-truc/glm/releases/download/0.9.9.8/glm-0.9.9.8.zip + sha256: 37e2a3d62ea3322e43593c34bae29f57e3e251ea89f4067506c94043769ade4c + + # dependency of: CEMU, ES-DE + - name: pugixml + buildsystem: cmake-ninja + config-opts: + - -DBUILD_SHARED_LIBS=ON + cleanup: + - /include + - /lib/cmake + - /lib/pkgconfig + sources: + - type: archive + url: https://github.com/zeux/pugixml/releases/download/v1.14/pugixml-1.14.tar.gz + sha256: 2f10e276870c64b1db6809050a75e11a897a8d7456c4be5c6b2e35a11168a015 + x-checker-data: + type: anitya + project-id: 3728 + url-template: https://github.com/zeux/pugixml/releases/download/v$version/pugixml-$version.tar.gz + + # dependency of: CEMU, RPCS3 + - rd-submodules/shared-modules/glew/glew.json + + # dependency of: XEMU, MelonDS + - name: libslirp + buildsystem: meson + sources: + - type: git + url: https://gitlab.freedesktop.org/slirp/libslirp.git + tag: v4.7.0 # ES-DE - START # https://gitlab.com/es-de/emulationstation-de @@ -279,24 +386,6 @@ modules: - sed -i 's|-o root -g root ||' ./Makefile.gnu - sed -i 's|/usr|/app|' ./Makefile.gnu - # dependency of: CEMU - - name: pugixml - buildsystem: cmake-ninja - config-opts: - - -DBUILD_SHARED_LIBS=ON - cleanup: - - /include - - /lib/cmake - - /lib/pkgconfig - sources: - - type: archive - url: https://github.com/zeux/pugixml/releases/download/v1.13/pugixml-1.13.tar.gz - sha256: 40c0b3914ec131485640fa57e55bf1136446026b41db91c1bef678186a12abbe - x-checker-data: - type: anitya - project-id: 3728 - url-template: https://github.com/zeux/pugixml/releases/download/v$version/pugixml-$version.tar.gz - - name: libgit2 buildsystem: cmake-ninja config-opts: @@ -315,8 +404,10 @@ modules: - -DENABLE_BOOST=OFF sources: - type: archive - url: https://gitlab.freedesktop.org/poppler/poppler/-/archive/poppler-22.11.0/poppler-poppler-22.11.0.tar.bz2 - sha256: b8f618d5c62030034d5c8da4d3f6a740260b7620b9a31021679ce1914d327f81 + # original link not working, found a mirror + url: https://poppler.freedesktop.org/poppler-22.11.0.tar.xz + #url: https://gitlab.freedesktop.org/poppler/poppler/-/archive/poppler-22.11.0/poppler-poppler-22.11.0.tar.bz2 + sha256: 093ba9844ed774285517361c15e21a31ba4df278a499263d4403cca74f2da828 cleanup: - /lib/pkgconfig - /include @@ -335,21 +426,13 @@ modules: - es-core sources: - type: git - url: https://gitlab.com/es-de/emulationstation-de - branch: 5545187d82fabf93256b7d176f39a0a98bcd6c54 + url: https://github.com/XargonWan/RetroDECK-ES-DE + branch: cebbeff3b5f834fd9adaeb1f5dc9e0da6b106599 - type: shell commands: - 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 - - type: patch - path: rd-submodules/es-de/GuiMenu.cpp.patch - - type: patch - path: rd-submodules/es-de/GuiMenu.h.patch - - type: patch - path: rd-submodules/es-de/ViewController.cpp.patch - - type: patch - path: rd-submodules/es-de/Window.cpp.patch # ES-DE - END @@ -506,11 +589,22 @@ modules: # RetroArch - END # Not part of the offical RetroArch manifest + # retroarch-cores-nightly must be earlier than retroarch-cores as it will overwrite this cores with the stable ones + - name: retroarch-cores-nightly + buildsystem: simple + build-commands: + - mkdir -p /app/share/libretro/cores/ + - mv -f ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/ + sources: + - type: archive + url: https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch_cores.7z + sha256: RANIGHTLYCORESPLACEHOLDER + - 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/ + - mv -f ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/ sources: - type: archive url: https://buildbot.libretro.com/stable/1.16.0/linux/x86_64/RetroArch_cores.7z @@ -567,10 +661,8 @@ modules: - -DUSE_SYSTEM_FFMPEG=OFF - -DUSE_SYSTEM_LIBZIP=ON - -DUSE_SYSTEM_ZSTD=ON - - -DUSE_WAYLAND_WSI=ON - -DUSING_QT_UI=OFF - - -DBUILD_TESTING=OFF - -DOpenGL_GL_PREFERENCE=GLVND build-options: @@ -586,8 +678,8 @@ modules: sources: - type: git url: &ppsspp-url https://github.com/hrydgard/ppsspp.git - tag: v1.16.3 - commit: a9b6421dfde68be9d065b51e9d519699ce2e9053 + tag: v1.16.6 + commit: ba0ce344937d17e177ec8656ab957f6b82facdda x-checker-data: type: json url: https://api.github.com/repos/hrydgard/ppsspp/releases/latest @@ -626,43 +718,63 @@ modules: - ln -s "${FLATPAK_DEST}/yuzu/usr/bin/yuzu" "${FLATPAK_DEST}/bin/yuzu" sources: - type: file - url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1567/yuzu-mainline-20230923-ace91dd0c.AppImage - sha256: 965bdfa63e713a0672fb5a037ecb527b4860600c6a2526f7c053bfe082b5a9d8 + url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1648/yuzu-mainline-20231211-14c24e64e.AppImage + sha256: d40f61c2abf8ddd0bb53098e2d9edf0c47e1cfd89e50cf5856b8cc27dbb25bd6 # Yuzu - END # CITRA - START - # DO NOT UPDATE! WENT ON QT6 # https://github.com/flathub/org.citra_emu.citra - rd-submodules/shared-modules/SDL2/SDL2-with-libdecor.json + - rd-submodules/shared-modules/SDL2/SDL2-with-libdecor.json + - name: citra buildsystem: cmake-ninja builddir: true + build-options: + env: + CI: '1' + GITHUB_ACTIONS: '1' + GITHUB_REPOSITORY: citra-emu/citra-nightly + GITHUB_REF_NAME: nightly-2025 + append-path: /usr/lib/sdk/llvm16/bin + prepend-ld-library-path: /usr/lib/sdk/llvm16/lib + cflags: '-Wno-unused-command-line-argument' + cxxflags: '-Wno-unused-command-line-argument' config-opts: - '-DCMAKE_BUILD_TYPE=Release' - - '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON' - - '-DENABLE_LTO=ON' + - '-DCMAKE_C_COMPILER=clang' + - '-DCMAKE_CXX_COMPILER=clang++' + - '-DCMAKE_LINKER=lld' - '-DENABLE_QT_TRANSLATION=ON' - '-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON' + - '-DUSE_DISCORD_PRESENCE=ON' - '-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF' - # - '-DENABLE_FFMPEG_VIDEO_DUMPER=ON' - # FFMPEG VIDEO DUMPER was disabled because of this: https://github.com/citra-emu/citra/issues/5949 - '-DUSE_SYSTEM_SDL2=ON' - - '-DCMAKE_POLICY_DEFAULT_CMP0069=NEW' - - '-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 + - install -Dm755 ../citra-launcher.sh /app/bin/citra-launcher + - >- + install -Dm644 ../org.citra_emu.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: archive url: >- - https://github.com/citra-emu/citra-nightly/releases/download/nightly-1898/citra-unified-source-20230504-70335a7.tar.xz - sha256: b320585bd8c4c075f63d3d9c74b830718e58fcf04d987a5dcead402a72abf753 + https://github.com/citra-emu/citra-nightly/releases/download/nightly-2025/citra-unified-source-20231105-998b9a9.tar.xz + sha256: ebf52af66c6ef729688a29d093d9139baa76973b698c0630a295f38d126cf118 x-checker-data: type: json url: https://api.github.com/repos/citra-emu/citra-nightly/releases/latest @@ -671,9 +783,10 @@ modules: .assets[] | .browser_download_url | match("https://.+citra-unified-source-.+.xz$") | .string is-main-source: true - - type: patch - path: rd-submodules/citra/unified-source-compat.patch - + - type: file + path: rd-submodules/citra/org.citra_emu.citra.svg + - type: file + path: rd-submodules/citra/citra-launcher.sh # CITRA - END @@ -692,62 +805,15 @@ modules: - ln -s "${FLATPAK_DEST}/pcsx2-qt/usr/bin/pcsx2-qt" "${FLATPAK_DEST}/bin/pcsx2-qt" sources: - type: file - url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.5059/pcsx2-v1.7.5059-linux-appimage-x64-Qt.AppImage - sha256: a51addc9bd15b77e842160acecb1f18486f8a024e5e73e8aea5de71de2b164c7 + url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.5284/pcsx2-v1.7.5284-linux-appimage-x64-Qt.AppImage + sha256: b3cb23e07435f7efe7145cddd0cf4d473cc65eee8feae436b8a718fc3017721a # PCSX2 - END # Dolphin - START - # DO NOT UPDATE! WENT ON QT6 # https://github.com/flathub/org.DolphinEmu.dolphin-emu # WHEN UPADTING: remember to update rd-submodules/dolphin 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 - - --disable-obex - - --disable-bap - - --disable-mcp - - --with-dbusconfdir=/app/etc - - --with-dbussessionbusdir=/app/usr/lib/system-services - sources: - - type: archive - url: https://www.kernel.org/pub/linux/bluetooth/bluez-5.66.tar.xz - sha256: 39fea64b590c9492984a0c27a89fc203e1cdc74866086efb8f4698677ab2b574 - 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.13.0.tar.xz - sha256: 9edf2006cc86a5055279647c38ec923d11a821ee4dc2c3033e8d20e8ee237cd9 - 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 @@ -775,7 +841,7 @@ modules: # fatal: remote transport reported error # url: ssh://git@github.com/dolphin-emu/dolphin.git url: https://github.com/dolphin-emu/dolphin.git - commit: 46b99671d9158e0ca840c1d8ef249db0f321ced7 + commit: 032c77b462a220016f23c5079e71bb23e0ad2adf x-checker-data: type: json url: https://dolphin-emu.org/update/latest/beta @@ -870,8 +936,8 @@ modules: sources: - type: git url: https://github.com/xemu-project/xemu.git - tag: v0.7.98 - commit: 7bfb7c85378f64f93556c365ea0cc18cb2181dc8 + tag: v0.7.116 + commit: b3fc80b3a83fa99aeb541a0c665cfb596cedd71c x-checker-data: type: json url: https://api.github.com/repos/xemu-project/xemu/releases/latest @@ -895,15 +961,11 @@ modules: # https://github.com/flathub/net.kuribo64.melonDS # ちっちゃい、かわいい! - - name: libslirp - buildsystem: meson - sources: - - type: git - url: https://gitlab.freedesktop.org/slirp/libslirp.git - tag: v4.7.0 - name: melonds buildsystem: cmake-ninja builddir: true + config-opts: + - -DUSE_QT6=ON build-options: arch: aarch64: @@ -919,15 +981,8 @@ modules: # MELONDS - END # RPCS3 - START - # DO NOT UPDATE! WENT ON QT6 # https://github.com/flathub/net.rpcs3.RPCS3 - # glu issue, check glu module for more info - #- rd-submodules/shared-modules/glu/glu-9.json - - # dependency of: CEMU - - rd-submodules/shared-modules/glew/glew.json - - name: rpcs3 buildsystem: cmake-ninja builddir: true @@ -948,14 +1003,12 @@ modules: ldflags: -fuse-ld=lld config-opts: - -DCMAKE_BUILD_TYPE=RelWithDebInfo - #- -DBUILD_LLVM_SUBMODULE=ON this was replaced by the fllowing: - -DBUILD_LLVM=OFF - -DUSE_NATIVE_INSTRUCTIONS=OFF - -DUSE_PRECOMPILED_HEADERS=OFF - -DUSE_SDL=ON - -DUSE_SYSTEM_CURL=ON - # Disabled this to force RPCS3 to use our built FFMPEG - - -DUSE_SYSTEM_FFMPEG=OFF + - -DUSE_SYSTEM_FFMPEG=OFF # Disabled this to force RPCS3 to use our built FFMPEG - -DUSE_SYSTEM_LIBPNG=ON - -DUSE_SYSTEM_SDL=ON - -DUSE_SYSTEM_ZLIB=ON @@ -964,14 +1017,13 @@ modules: - cp /usr/lib/sdk/llvm16/lib/libLLVM-16.so /app/lib/ - |- 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: a828c214b5c0b87b81fcd13ff3c1e952c9a5d6dd + commit: f9d213650cfe4733937c43d93de91a17f8582820 # RPCS3 - END @@ -986,24 +1038,27 @@ modules: - -DENABLE_SDL=ON - -DENABLE_EVDEV=ON - -DDISTRIBUTOR=Flathub + - -DQT_DIR= cleanup: - /share/man post-install: - install -D primehack-wrapper /app/bin/primehack-wrapper sources: - type: git - url: https://github.com/TheDrifter363/primehack.git - commit: 6295c695307a67f11ee202b05cbdd7b5c1edae5c + url: https://github.com/XargonWan/primehack + commit: af7710ef7b04a632b4294eae5e0eff8fe9c4d1f8 + #url: https://github.com/TheDrifter363/primehack.git + #commit: 6295c695307a67f11ee202b05cbdd7b5c1edae5c # 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 + path: rd-submodules/primehack/detectflatpak.patch # version strings must match exactly for online multiplayer - type: patch - path: rd-submodules/dolphin/nodirtyversion.patch + path: rd-submodules/primehack/nodirtyversion.patch - type: script commands: - for i in {0..9}; do @@ -1033,7 +1088,6 @@ modules: # Duckstation-AppImage - END # Cemu - START - # LATEST BUILD BEFORE RUNTIME 23.08 # https://github.com/cemu-project/Cemu/releases # https://github.com/flathub/info.cemu.Cemu @@ -1061,7 +1115,7 @@ modules: sources: - type: archive url: https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.tar.bz2 - sha256: 6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e + sha256: 5e89103d9b70bba5c91a794126b169cb67654be2051f90cf7c22ba6893ede0ff x-checker-data: type: anitya project-id: 6845 @@ -1091,41 +1145,6 @@ modules: project-id: 10649 url-template: https://libzip.org/download/libzip-$version.tar.xz - - name: rapidjson - buildsystem: cmake-ninja - config-opts: - - -DRAPIDJSON_BUILD_DOC=OFF - - -DRAPIDJSON_BUILD_EXAMPLES=OFF - - -DRAPIDJSON_BUILD_TESTS=OFF - - -DRAPIDJSON_BUILD_THIRDPARTY_GTEST=OFF - cleanup: - - /include - - /lib/cmake - - /lib/pkgconfig - - /share/doc - sources: - - type: archive - url: https://github.com/Tencent/rapidjson/archive/refs/tags/v1.1.0.tar.gz - sha256: bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e - x-checker-data: - type: anitya - project-id: 7422 - stable-only: true - url-template: https://github.com/Tencent/rapidjson/archive/refs/tags/v$version.tar.gz - - - name: glm - buildsystem: cmake-ninja - cleanup: ['*'] - no-make-install: true - post-install: - - install -d ${FLATPAK_DEST}/include - - cp -R glm ${FLATPAK_DEST}/include - - cp -R cmake/glm ${FLATPAK_DEST}/lib/cmake - sources: - - type: archive - url: https://github.com/g-truc/glm/releases/download/0.9.9.8/glm-0.9.9.8.zip - sha256: 37e2a3d62ea3322e43593c34bae29f57e3e251ea89f4067506c94043769ade4c - - name: fmt buildsystem: cmake-ninja config-opts: @@ -1142,7 +1161,8 @@ modules: url-template: https://github.com/fmtlib/fmt/archive/$version.tar.gz versions: {<: '10.0'} - - name: wxwidgets + - name: wxWidgets + buildsystem: cmake-ninja cleanup: - /bin - /include @@ -1151,13 +1171,14 @@ modules: - /share sources: - type: archive - url: https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.2.1/wxWidgets-3.2.2.1.tar.bz2 - sha256: dffcb6be71296fff4b7f8840eb1b510178f57aa2eb236b20da41182009242c02 + url: https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.4/wxWidgets-3.2.4.tar.bz2 + sha256: 0640e1ab716db5af2ecb7389dbef6138d7679261fbff730d23845ba838ca133e x-checker-data: type: anitya project-id: 5150 stable-only: true url-template: https://github.com/wxWidgets/wxWidgets/releases/download/v$version/wxWidgets-$version.tar.bz2 + versions: {'!=': 3.2.4-with-msvs2012-fix} - name: Cemu buildsystem: cmake-ninja @@ -1174,8 +1195,8 @@ modules: x-checker-data: type: git tag-pattern: ^v([\d.]+-\d+)$ - tag: v2.0-47 - commit: 85aa4f095b119e98620451a0c19c80f656d944a6 + tag: v2.0-61 + commit: b6aaf6633063be47d89a8216e269e32aec5a4b49 - type: shell commands: - sed "s/set(EXPERIMENTAL_VERSION.*/set(EXPERIMENTAL_VERSION \"$(git describe @@ -1223,67 +1244,95 @@ modules: # Cemu - END - # Ryujinx - START - # https://github.com/flathub/org.ryujinx.Ryujinx + # Vita3K - START - - name: Ryujinx + - name: vita3k buildsystem: simple - build-options: - no-debuginfo: true - no-debuginfo-compression: true - strip: false - arch: - x86_64: - env: - RUNTIME: linux-x64 - env: - PKG_CONFIG_PATH: /app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig - DOTNET_CLI_TELEMETRY_OPTOUT: 'true' - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true' - RYUJINX_VERSION: 1.1.1014 - RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: flathub - RYUJINX_TARGET_RELEASE_CHANNEL_REPO: org.ryujinx.Ryujinx - RYUJINX_TARGET_RELEASE_CHANNEL_NAME: master build-commands: - - | - export PATH=$PATH:/run/build/Ryujinx/dotnet-sdk - export RYUJINX_GIT_SHORT_HASH=$(git rev-parse --short HEAD) - export RUNTIME_FRAMEWORK_VERSION=$(find nuget-sources -name 'microsoft.netcore.app.host.linux-x64.*' | grep -oP '(\d.\d.\d+.nupkg)' | grep -oP '(\d.\d.\d+)') - sed -r --in-place "s/\%\%RYUJINX_BUILD_VERSION\%\%/$RYUJINX_VERSION/g;" src/Ryujinx.Common/ReleaseInformation.cs - sed -r --in-place "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$RYUJINX_GIT_SHORT_HASH/g;" src/Ryujinx.Common/ReleaseInformation.cs - sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_NAME/g;" src/Ryujinx.Common/ReleaseInformation.cs - sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_OWNER/g;" src/Ryujinx.Common/ReleaseInformation.cs - sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_REPO/g;" src/Ryujinx.Common/ReleaseInformation.cs - mkdir -p /app/bin - dotnet publish -c Release -r $RUNTIME /p:DebugType=embedded src/Ryujinx /p:Version=$RYUJINX_VERSION /p:SourceRevisionId=$RYUJINX_GIT_SHORT_HASH /p:ExtraDefineConstants="DISABLE_UPDATER%2CFORCE_EXTERNAL_BASE_DIR" /p:RuntimeFrameworkVersion=$RUNTIME_FRAMEWORK_VERSION --self-contained --source nuget-sources - if [ $? -ne 0 ]; then - exit 1; - fi; - cp -r --remove-destination /run/build/Ryujinx/src/Ryujinx/bin/Release/net7.0/$RUNTIME/publish/* /app/bin/ - chmod +x /app/bin/Ryujinx.sh - mkdir -p /app/lib/ffmpeg - ln -s /usr/lib/x86_64-linux-gnu/libX11.so.6 /app/lib/libX11.so - install -Dm755 ryujinx-wrapper /app/bin/ryujinx-wrapper - install -Dm644 distribution/misc/Logo.svg /app/share/icons/hicolor/scalable/apps/ryujinx.svg + # Copying the user icon + - mkdir -p ${FLATPAK_DEST}/retrodeck + - cp retrodeck.png ${FLATPAK_DEST}/retrodeck + - unzip "ubuntu-latest.zip" -d "${FLATPAK_DEST}/share/Vita3K" + - chmod +x "${FLATPAK_DEST}/share/Vita3K/Vita3K" + - rm -f "${FLATPAK_DEST}/share/Vita3K/update-vita3k.sh" + - ln -s ${FLATPAK_DEST}/share/Vita3K/Vita3K ${FLATPAK_DEST}/bin/Vita3K sources: - - type: archive - only-arches: - - x86_64 - dest: dotnet-sdk - url: https://dotnetcli.azureedge.net/dotnet/Sdk/7.0.401/dotnet-sdk-7.0.401-linux-x64.tar.gz - sha256: 4634fa4da7ae4e3dadb83e320a87fb26f0cb12a7ca02bf9f10e6c3c1c91d645c - x-checker-data: - type: rotating-url - url: https://aka.ms/dotnet/7.0/dotnet-sdk-linux-x64.tar.gz - pattern: https://dotnetcli.azureedge.net/dotnet/Sdk/^([\d\.a-z-]+)$/dotnet-sdk-^([\d\.a-z-]+)$-linux-x64.tar.gz - - rd-submodules/ryujinx/nuget_sources.json - - type: git - url: https://github.com/Ryujinx/Ryujinx.git - commit: 7ccff037e87f82f3461f3e1422235e29800eaa2f - - type: file - path: rd-submodules/ryujinx/ryujinx-wrapper + - type: file + url: https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip + sha256: VITA3KSHAPLACEHOLDER + - type: file + path: res/retrodeck.png - # Ryujinx - END + # Vita3K - END + + # SOLARUS - START + # https://github.com/flathub/org.solarus_games.solarus.Launcher + + - name: luajit + no-autogen: true + cleanup: + - /bin + - /lib/*.a + - /include + - /lib/pkgconfig + - /share/man + sources: + - type: archive + url: https://luajit.org/download/LuaJIT-2.0.5.tar.gz + sha256: 874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979 + - type: shell + commands: + - sed -i 's|/usr/local|/app|' ./Makefile + + - name: libmodplug + cleanup: + - /include + sources: + - type: archive + url: https://download.sourceforge.net/project/modplug-xmms/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz + sha512: 880e10154fd367ee24ace53ca7e32a5c1fee7dfff1f934e6499944c12779427da63e2f55f8d6ce25db0a42a5b4424053bf64305b31dbfc4ef6a8909924d655fd + + - name: physfs + buildsystem: cmake-ninja + config-opts: + - -DPHYSFS_BUILD_TEST=OFF + sources: + - type: archive + url: https://icculus.org/physfs/downloads/physfs-3.0.2.tar.bz2 + sha256: 304df76206d633df5360e738b138c94e82ccf086e50ba84f456d3f8432f9f863 + size: 194888 + x-checker-data: + type: anitya + project-id: 3631 + url-template: https://icculus.org/physfs/downloads/physfs-$version.tar.bz2 + + - name: solarus + buildsystem: cmake-ninja + builddir: true + config-opts: + - -DSOLARUS_GUI=OFF + sources: + - type: git + url: https://gitlab.com/solarus-games/solarus.git + tag: v1.6.5 + commit: 3aec70b0556a8d7aed7903d1a3e4d9a18c5d1649 + + - rd-submodules/shared-modules/gzdoom/gzdoom.json + + # SOLARUS - END + + # MAME - Start + + # - name: retrodeck-mame + # buildsystem: simple + # build-commands: + # - cp -rn files/* /app + # sources: + # - type: archive + # url: + # sha256: RETRODECKMAMEPLACEHOLDER + + # MAME - End # External manifests end @@ -1327,6 +1376,7 @@ modules: # Desktop entries - cp net.retrodeck.retrodeck.desktop /app/share/applications/net.retrodeck.retrodeck.desktop - cp net.retrodeck.retrodeck.Configurator.desktop /app/share/applications/net.retrodeck.retrodeck.Configurator.desktop + - chmod +x net.retrodeck.retrodeck*desktop # Initializing default emulator configs - cp -r emu-configs ${FLATPAK_DEST}/retrodeck/emu-configs/ @@ -1342,7 +1392,15 @@ modules: - mkdir -p ${FLATPAK_DEST}/share/appdata - cp net.retrodeck.retrodeck.appdata.xml ${FLATPAK_DEST}/share/appdata + # Creating symlinks for a prettier access + - ln -s /app/bin/retrodeck.sh /app/bin/retrodeck + - ln -s /app/tools/configurator.sh /app/bin/configurator + + # GZDOOM wrapper + - cp emu-configs/gzdoom/gzdoom.sh ${FLATPAK_DEST}/bin/gzdoom.sh + - chmod +x ${FLATPAK_DEST}/bin/gzdoom.sh + sources: - type: git url: https://github.com/XargonWan/RetroDECK.git - branch: THISBRANCH + branch: THISBRANCH \ No newline at end of file diff --git a/old/removed-modules.yml b/old/removed-modules.yml index 968982ed..43d5cab3 100644 --- a/old/removed-modules.yml +++ b/old/removed-modules.yml @@ -129,26 +129,64 @@ # Ryujinx Appimage - END - # Vita3K - START - # Very broken, disabled - # NOTE: this is a continuos release, it's provided but not supported - # to update this module: - # wget https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip -O rd-submodules/vita3k/vita3k-14-01-23.zip - # sha256sum rd-submodules/vita3k/vita3k*.zip - # change url and sha - # check the branch in the url + # Ryujinx - START + # https://github.com/flathub/org.ryujinx.Ryujinx - # - name: Vita3K - # buildsystem: simple - # build-commands: - # - | - # mkdir -p ${FLATPAK_DEST}/vita3k - # cp -r * ${FLATPAK_DEST}/vita3k - # chmod +x ${FLATPAK_DEST}/vita3k/Vita3K - # ln -s ${FLATPAK_DEST}/vita3k/Vita3K /app/bin/Vita3K - # sources: - # - type: archive - # url: https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip - # sha256: VITASHAPLACEHOLDER + - name: Ryujinx + buildsystem: simple + build-options: + no-debuginfo: true + no-debuginfo-compression: true + strip: false + arch: + x86_64: + env: + RUNTIME: linux-x64 + env: + PKG_CONFIG_PATH: /app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig + DOTNET_CLI_TELEMETRY_OPTOUT: 'true' + DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true' + RYUJINX_VERSION: 1.1.1014 + RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: flathub + RYUJINX_TARGET_RELEASE_CHANNEL_REPO: org.ryujinx.Ryujinx + RYUJINX_TARGET_RELEASE_CHANNEL_NAME: master + build-commands: + - | + export PATH=$PATH:/run/build/Ryujinx/dotnet-sdk + export RYUJINX_GIT_SHORT_HASH=$(git rev-parse --short HEAD) + export RUNTIME_FRAMEWORK_VERSION=$(find nuget-sources -name 'microsoft.netcore.app.host.linux-x64.*' | grep -oP '(\d.\d.\d+.nupkg)' | grep -oP '(\d.\d.\d+)') + sed -r --in-place "s/\%\%RYUJINX_BUILD_VERSION\%\%/$RYUJINX_VERSION/g;" src/Ryujinx.Common/ReleaseInformation.cs + sed -r --in-place "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$RYUJINX_GIT_SHORT_HASH/g;" src/Ryujinx.Common/ReleaseInformation.cs + sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_NAME/g;" src/Ryujinx.Common/ReleaseInformation.cs + sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_OWNER/g;" src/Ryujinx.Common/ReleaseInformation.cs + sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_REPO/g;" src/Ryujinx.Common/ReleaseInformation.cs + mkdir -p /app/bin + dotnet publish -c Release -r $RUNTIME /p:DebugType=embedded src/Ryujinx /p:Version=$RYUJINX_VERSION /p:SourceRevisionId=$RYUJINX_GIT_SHORT_HASH /p:ExtraDefineConstants="DISABLE_UPDATER%2CFORCE_EXTERNAL_BASE_DIR" /p:RuntimeFrameworkVersion=$RUNTIME_FRAMEWORK_VERSION --self-contained --source nuget-sources + if [ $? -ne 0 ]; then + exit 1; + fi; + cp -r --remove-destination /run/build/Ryujinx/src/Ryujinx/bin/Release/net7.0/$RUNTIME/publish/* /app/bin/ + chmod +x /app/bin/Ryujinx.sh + mkdir -p /app/lib/ffmpeg + ln -s /usr/lib/x86_64-linux-gnu/libX11.so.6 /app/lib/libX11.so + install -Dm755 ryujinx-wrapper /app/bin/ryujinx-wrapper + install -Dm644 distribution/misc/Logo.svg /app/share/icons/hicolor/scalable/apps/ryujinx.svg + sources: + - type: archive + only-arches: + - x86_64 + dest: dotnet-sdk + url: https://dotnetcli.azureedge.net/dotnet/Sdk/7.0.401/dotnet-sdk-7.0.401-linux-x64.tar.gz + sha256: 4634fa4da7ae4e3dadb83e320a87fb26f0cb12a7ca02bf9f10e6c3c1c91d645c + x-checker-data: + type: rotating-url + url: https://aka.ms/dotnet/7.0/dotnet-sdk-linux-x64.tar.gz + pattern: https://dotnetcli.azureedge.net/dotnet/Sdk/^([\d\.a-z-]+)$/dotnet-sdk-^([\d\.a-z-]+)$-linux-x64.tar.gz + - rd-submodules/ryujinx/nuget_sources.json + - type: git + url: https://github.com/Ryujinx/Ryujinx.git + commit: 7ccff037e87f82f3461f3e1422235e29800eaa2f + - type: file + path: rd-submodules/ryujinx/ryujinx-wrapper - # Vita3K - END \ No newline at end of file + # Ryujinx - END \ No newline at end of file diff --git a/rd-submodules/SDL2-no-libdecor.json b/rd-submodules/SDL2-no-libdecor.json deleted file mode 100644 index f101d4b0..00000000 --- a/rd-submodules/SDL2-no-libdecor.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "SDL2", - "buildsystem": "autotools", - "config-opts": ["--disable-static"], - "sources": [ - { - "type": "archive", - "url": "https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.26.3.tar.gz", - "sha256": "af0ff86e4a268bc12c915a0ea19ea1a16419ab1426d92bad5f4e26eb31583967" - } - ], - "cleanup": [ "/bin/sdl2-config", - "/include", - "/lib/libSDL2.la", - "/lib/libSDL2main.a", - "/lib/libSDL2main.la", - "/lib/libSDL2_test.a", - "/lib/libSDL2_test.la", - "/lib/cmake", - "/share/aclocal", - "/lib/pkgconfig"] -} diff --git a/rd-submodules/citra/citra-launcher.sh b/rd-submodules/citra/citra-launcher.sh new file mode 100644 index 00000000..33b95cfb --- /dev/null +++ b/rd-submodules/citra/citra-launcher.sh @@ -0,0 +1,25 @@ +#!/bin/bash -e + +report_error() { + read -r -d '|' MESSAGE <https://github.com/flathub/org.citra_emu.citra/issues. + +When submitting a bug report, please attach your system information and the Citra log file. +You seem to be using ${XDG_SESSION_DESKTOP} ${DESKTOP_SESSION} (${XDG_SESSION_TYPE}): +To obtain Citra log files, please see this guide. +To obtain your system information, please install inxi and run inxi -v3. | +EOF + zenity --warning --no-wrap --title "That's awkward ..." --text "$MESSAGE" +} + +unset VK_ICD_FILENAMES VK_DRIVER_FILES +# Discord RPC +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 + + +if ! prlimit --nofile=8192 citra-qt "$@"; then + report_error +fi \ No newline at end of file diff --git a/rd-submodules/citra/org.citra_emu.citra.svg b/rd-submodules/citra/org.citra_emu.citra.svg new file mode 100644 index 00000000..8fa09944 --- /dev/null +++ b/rd-submodules/citra/org.citra_emu.citra.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/rd-submodules/citra/unified-source-compat.patch b/rd-submodules/citra/unified-source-compat.patch deleted file mode 100644 index 6a1ca47c..00000000 --- a/rd-submodules/citra/unified-source-compat.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 710f3fcfb..e5f4f4687 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -94,7 +94,11 @@ function(check_submodules_present) - endif() - endforeach() - endfunction() --check_submodules_present() -+ -+if (EXISTS "${PROJECT_SOURCE_DIR}/.git/objects") -+ # only check submodules when source is obtained via Git -+ check_submodules_present() -+endif() - - configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc - ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc -diff --git a/CMakeModules/GenerateSCMRev.cmake b/CMakeModules/GenerateSCMRev.cmake -index a011c6cbf..87e9eef35 100644 ---- a/CMakeModules/GenerateSCMRev.cmake -+++ b/CMakeModules/GenerateSCMRev.cmake -@@ -6,15 +6,27 @@ endfunction() - - list(APPEND CMAKE_MODULE_PATH "${SRC_DIR}/externals/cmake-modules") - --# Find the package here with the known path so that the GetGit commands can find it as well --find_package(Git QUIET PATHS "${GIT_EXECUTABLE}") -- - # generate git/build information --include(GetGitRevisionDescription) --get_git_head_revision(GIT_REF_SPEC GIT_REV) --git_describe(GIT_DESC --always --long --dirty) --git_branch_name(GIT_BRANCH) - get_timestamp(BUILD_DATE) -+if (EXISTS "${SRC_DIR}/.git/objects") -+ # Find the package here with the known path so that the GetGit commands can find it as well -+ find_package(Git QUIET PATHS "${GIT_EXECUTABLE}") -+ # only use Git to check revision info when source is obtained via Git -+ include(GetGitRevisionDescription) -+ get_git_head_revision(GIT_REF_SPEC GIT_REV) -+ git_describe(GIT_DESC --always --long --dirty) -+ git_branch_name(GIT_BRANCH) -+elseif(EXISTS "${SRC_DIR}/GIT-COMMIT" AND EXISTS "${SRC_DIR}/GIT-TAG") -+ # unified source archive -+ file(READ "${SRC_DIR}/GIT-COMMIT" GIT_REV_RAW LIMIT 64) -+ string(STRIP "${GIT_REV_RAW}" GIT_REV) -+ string(SUBSTRING "${GIT_REV_RAW}" 0 9 GIT_DESC) -+ set(GIT_BRANCH "HEAD") -+else() -+ # self-packed archive? -+ set(GIT_DESC "UNKNOWN") -+ set(GIT_BRANCH "UNKNOWN") -+endif() - - # Generate cpp with Git revision from template - # Also if this is a CI build, add the build name (ie: Nightly, Canary) to the scm_rev file as well \ No newline at end of file diff --git a/rd-submodules/dolphin/nodirtyversion.patch b/rd-submodules/dolphin/nodirtyversion.patch index f20ae789..2dacc209 100644 --- a/rd-submodules/dolphin/nodirtyversion.patch +++ b/rd-submodules/dolphin/nodirtyversion.patch @@ -1,8 +1,8 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9af66009a1..2acd3bed9a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -149,7 +149,7 @@ if(GIT_FOUND) +diff --git a/CMake/ScmRevGen.cmake b/CMake/ScmRevGen.cmake +index aacf7491ce..503791cda8 100644 +--- a/CMake/ScmRevGen.cmake ++++ b/CMake/ScmRevGen.cmake +@@ -7,7 +7,7 @@ if(GIT_FOUND) OUTPUT_VARIABLE DOLPHIN_WC_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE) # defines DOLPHIN_WC_DESCRIBE diff --git a/rd-submodules/es-de/GuiThemeDownloader.cpp.patch b/rd-submodules/es-de/GuiThemeDownloader.cpp.patch new file mode 100644 index 00000000..8dd35293 --- /dev/null +++ b/rd-submodules/es-de/GuiThemeDownloader.cpp.patch @@ -0,0 +1,10 @@ +diff -au1r emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp +--- emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp 2023-11-03 16:25:01.115126901 +0100 ++++ emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp 2023-11-03 16:26:18.882607724 +0100 +@@ -602,4 +602,4 @@ + getHelpStyle(), +- "IT SEEMS AS IF YOU'RE NOT RUNNING THE LATEST ES-DE RELEASE, PLEASE UPGRADE BEFORE " +- "PROCEEDING AS THESE THEMES MAY NOT BE COMPATIBLE WITH YOUR VERSION", ++ "ES-DE THEME ENGINE WAS UPDATED UPSTREAM. THESE THEMES MAY NOT BE COMPATIBLE WITH THE CURRENT RETRODECK VERSION." ++ "CHECK IF A NEW RETRODECK UPDATE IS AVAILABLE, ELSE PLEASE WAIT FOR IT OR PROCEED AT YOUR OWN RISK.", + "OK", [] { return; }, "", nullptr, "", nullptr, nullptr, true)); diff --git a/rd-submodules/es-de/ViewController.cpp.patch b/rd-submodules/es-de/ViewController.cpp.patch index 2f485a31..8d677c37 100644 --- a/rd-submodules/es-de/ViewController.cpp.patch +++ b/rd-submodules/es-de/ViewController.cpp.patch @@ -1,22 +1,7 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstation-de/es-app/src/views/ViewController.cpp ---- emulationstation-de/es-app/src/views/ViewController.cpp 2023-08-23 13:12:15.625292630 +0200 -+++ emulationstation-de/es-app/src/views/ViewController.cpp 2023-08-23 14:29:23.547223951 +0200 -@@ -164,9 +164,7 @@ - { -- mNoGamesErrorMessage = "NO GAME FILES WERE FOUND. EITHER PLACE YOUR GAMES IN " -- "THE CURRENTLY CONFIGURED ROM DIRECTORY OR CHANGE " -- "ITS PATH USING THE BUTTON BELOW. OPTIONALLY THE ROM " -- "DIRECTORY STRUCTURE CAN BE GENERATED WHICH WILL " -- "CREATE A TEXT FILE FOR EACH SYSTEM PROVIDING SOME " -- "INFORMATION SUCH AS THE SUPPORTED FILE EXTENSIONS.\n" -- "THIS IS THE CURRENTLY CONFIGURED ROM DIRECTORY:\n"; -+ mNoGamesErrorMessage = "RETRODECK COULD NOT FIND ANY ROM FILES. " -+ "PLEASE PLACE YOUR ROM FILES INTO THE APPROPRIATE " -+ "SYSTEM SUBFOLDER IN THE CONFIGURED ROM DIRECTORY " -+ "AND RUN RETRODECK AGAIN TO SCAN YOUR LIBRARY.\n" -+ "THE CURRENTLY CONFIGURED ROM DIRECTORY IS:\n"; - -@@ -179,90 +177,3 @@ +--- emulationstation-de/es-app/src/views/ViewController.cpp 2023-11-04 15:09:24.332178777 -0400 ++++ emulationstation-de/es-app/src/views/ViewController.cpp 2023-11-04 15:13:59.015780009 -0400 +@@ -195,91 +195,3 @@ mNoGamesMessageBox = new GuiMsgBox( - HelpStyle(), mNoGamesErrorMessage + mRomDirectory, "CHANGE ROM DIRECTORY", - [this] { @@ -29,22 +14,24 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat - if (Settings::getInstance()->getBool("VirtualKeyboard")) { - mWindow->pushGui(new GuiTextEditKeyboardPopup( - HelpStyle(), 0.0f, "ENTER ROM DIRECTORY PATH", currentROMDirectory, -- [this](const std::string& newROMDirectory) { -- Settings::getInstance()->setString("ROMDirectory", -- Utils::String::trim(newROMDirectory)); -- Settings::getInstance()->saveFile(); +- [this, currentROMDirectory](const std::string& newROMDirectory) { +- if (currentROMDirectory != newROMDirectory) { +- Settings::getInstance()->setString( +- "ROMDirectory", Utils::String::trim(newROMDirectory)); +- Settings::getInstance()->saveFile(); -#if defined(_WIN64) -- mRomDirectory = -- Utils::String::replace(FileData::getROMDirectory(), "/", "\\"); +- mRomDirectory = +- Utils::String::replace(FileData::getROMDirectory(), "/", "\\"); -#else -- mRomDirectory = FileData::getROMDirectory(); +- mRomDirectory = FileData::getROMDirectory(); -#endif -- mNoGamesMessageBox->changeText(mNoGamesErrorMessage + mRomDirectory); -- mWindow->pushGui(new GuiMsgBox(HelpStyle(), -- "ROM DIRECTORY SETTING SAVED, RESTART\n" -- "THE APPLICATION TO RESCAN THE SYSTEMS", -- "OK", nullptr, "", nullptr, "", nullptr, -- true, true)); +- mNoGamesMessageBox->changeText(mNoGamesErrorMessage + mRomDirectory); +- mWindow->pushGui(new GuiMsgBox(HelpStyle(), +- "ROM DIRECTORY SETTING SAVED, RESTART\n" +- "THE APPLICATION TO RESCAN THE SYSTEMS", +- "OK", nullptr, "", nullptr, "", nullptr, +- nullptr, true, true)); +- } - }, - false, "SAVE", "SAVE CHANGES?", "Currently configured path:", - currentROMDirectory, "LOAD CURRENTLY CONFIGURED PATH", @@ -68,7 +55,7 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat - "ROM DIRECTORY SETTING SAVED, RESTART\n" - "THE APPLICATION TO RESCAN THE SYSTEMS", - "OK", nullptr, "", nullptr, "", nullptr, -- true)); +- nullptr, true)); - }, - false, "SAVE", "SAVE CHANGES?", "Currently configured path:", - currentROMDirectory, "LOAD CURRENTLY CONFIGURED PATH", @@ -82,9 +69,8 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat - "THIS WILL CREATE DIRECTORIES FOR ALL THE\n" - "GAME SYSTEMS DEFINED IN es_systems.xml\n\n" - "THIS MAY CREATE A LOT OF FOLDERS SO IT'S\n" -- "ADVICED TO REMOVE THE ONES YOU DON'T NEED\n\n" -- "PROCEED?", -- "YES", +- "ADVICED TO REMOVE THE ONES YOU DON'T NEED", +- "PROCEED", - [this] { - if (!SystemData::createSystemDirectories()) { - mWindow->pushGui(new GuiMsgBox(HelpStyle(), @@ -92,7 +78,7 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat - "GENERATED, EXIT THE APPLICATION AND PLACE\n" - "YOUR GAMES IN THE NEWLY CREATED FOLDERS", - "OK", nullptr, "", nullptr, "", nullptr, -- true)); +- nullptr, true)); - } - else { - mWindow->pushGui(new GuiMsgBox(HelpStyle(), @@ -100,19 +86,16 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat - "PERMISSION PROBLEMS OR DISK FULL?\n\n" - "SEE THE LOG FILE FOR MORE DETAILS", - "OK", nullptr, "", nullptr, "", nullptr, -- true)); +- nullptr, true)); - } - }, -- "NO", nullptr, "", nullptr, true)); +- "CANCEL", nullptr, "", nullptr, nullptr, false)); - }, - "QUIT", + HelpStyle(), mNoGamesErrorMessage + mRomDirectory, "QUIT", [] { -@@ -272,3 +183,3 @@ +@@ -289,3 +201,3 @@ }, -- true, false, -+ "", nullptr, "", nullptr, true, false, +- nullptr, true, false, ++ "", nullptr, "", nullptr, nullptr, true, true, (mRenderer->getIsVerticalOrientation() ? -@@ -1446 +1357,2 @@ - } -+ diff --git a/rd-submodules/es-de/patch_helper.sh b/rd-submodules/es-de/patch_helper.sh new file mode 100755 index 00000000..27923b97 --- /dev/null +++ b/rd-submodules/es-de/patch_helper.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +mkdir /tmp + +branch="00a226062fff37209d98e0ab048ac89af50ecacc" +git clone "https://gitlab.com/es-de/emulationstation-de.git" /tmp/emulationstation-de + +pushd . +cd /tmp/emulationstation-de +git checkout $branch +popd + +mkdir patches-tmp + +cp /tmp/emulationstation-de/es-app/src/guis/GuiMenu.cpp ./patches-tmp +cp /tmp/emulationstation-de/es-app/src/guis/GuiMenu.h ./patches-tmp +cp /tmp/emulationstation-de/es-app/src/views/ViewController.cpp ./patches-tmp +cp /tmp/emulationstation-de/es-core/src/Window.cpp ./patches-tmp +cp /tmp/emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp ./patches-tmp + +read -p "Please edit the files in \"patches-tmp\" and press enter to continue." + +diff -au1r /tmp/emulationstation-de/es-app/src/guis/GuiMenu.cpp ./patches-tmp/GuiMenu.cpp > GuiMenu.cpp.patch +diff -au1r /tmp/emulationstation-de/es-app/src/guis/GuiMenu.h ./patches-tmp/GuiMenu.h > GuiMenu.h.patch +diff -au1r /tmp/emulationstation-de/es-app/src/views/ViewController.cpp ./patches-tmp/ViewController.cpp > ViewController.cpp.patch +diff -au1r /tmp/emulationstation-de/es-core/src/Window.cpp ./patches-tmp/Window.cpp > Window.cpp.patch +diff -au1r /tmp/emulationstation-de/es-app/src/guis/GuiThemeDownloader.cpp ./patches-tmp/GuiThemeDownloader.cpp > GuiThemeDownloader.cpp.patch + +rm -rf patches-tmp + +echo "Done, now please remeber to edit the headers of the patch files with the correct paths." \ No newline at end of file diff --git a/rd-submodules/mame/floppy.patch b/rd-submodules/mame/floppy.patch deleted file mode 100644 index 1754f616..00000000 --- a/rd-submodules/mame/floppy.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/src/devices/imagedev/floppy.cpp b/src/devices/imagedev/floppy.cpp -index 3c00336d..cda94d92 100644 ---- a/src/devices/imagedev/floppy.cpp -+++ b/src/devices/imagedev/floppy.cpp -@@ -1707,9 +1707,10 @@ void floppy_sound_device::sound_stream_update(sound_stream &stream, std::vector< - { - idx = m_spin_playback_sample; - sampleend = m_sample[idx].data.size(); -- out = m_sample[idx].data[m_spin_samplepos++]; -- -- if (m_spin_samplepos >= sampleend) -+ m_spin_samplepos++; -+ if (m_spin_samplepos < sampleend) -+ out = m_sample[idx].data[m_spin_samplepos]; -+ else - { - // Motor sample has completed - switch (m_spin_playback_sample) -@@ -1763,7 +1764,8 @@ void floppy_sound_device::sound_stream_update(sound_stream &stream, std::vector< - idx = m_step_base + m_seek_playback_sample; - sampleend = m_sample[idx].data.size(); - // Mix it into the stream value -- out += m_sample[idx].data[(int)m_seek_samplepos]; -+ if (m_seek_samplepos < sampleend) -+ out += m_sample[idx].data[(int)m_seek_samplepos]; - // By adding different values than 1, we can change the playback speed - // This will be used to adjust the seek sound - m_seek_samplepos += m_seek_pitch; -@@ -1781,8 +1783,10 @@ void floppy_sound_device::sound_stream_update(sound_stream &stream, std::vector< - sampleend = m_sample[idx].data.size(); - - // Mix it into the stream value -- out += m_sample[idx].data[m_step_samplepos++]; -- if (m_step_samplepos >= sampleend) -+ m_step_samplepos++; -+ if (m_step_samplepos < sampleend) -+ out += m_sample[idx].data[m_step_samplepos]; -+ else - { - // Step sample done - m_step_samplepos = 0; \ No newline at end of file diff --git a/rd-submodules/mame/mame.ini b/rd-submodules/mame/mame.ini deleted file mode 100644 index 0164486f..00000000 --- a/rd-submodules/mame/mame.ini +++ /dev/null @@ -1,33 +0,0 @@ -# -# CORE SEARCH PATH OPTIONS -# -homepath $HOME/.mame -rompath /app/share/mame/roms -hashpath /app/share/mame/hash -samplepath /app/share/mame/samples -artpath /app/share/mame/artwork -ctrlrpath /app/share/mame/ctrlr -inipath $HOME/.mame;/app/share/mame/ini -fontpath /app/bin/ -cheatpath /app/share/mame/cheat -crosshairpath /app/share/mame/crosshair -pluginspath /app/share/mame/plugins -languagepath /app/share/mame/language -swpath /app/share/mame/software - -# -# CORE OUTPUT DIRECTORY OPTIONS -# -cfg_directory $HOME/.mame/cfg -nvram_directory $HOME/.mame/nvram -input_directory $HOME/.mame/inp -state_directory $HOME/.mame/sta -snapshot_directory $HOME/.mame/snap -diff_directory $HOME/.mame/diff -comment_directory $HOME/.mame/comments -share_directory $HOME/.mame/share - -# -# OSD VIDEO OPTIONS -# -video opengl \ No newline at end of file diff --git a/rd-submodules/mame/sound.patch b/rd-submodules/mame/sound.patch deleted file mode 100644 index 84b51ff6..00000000 --- a/rd-submodules/mame/sound.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/src/emu/sound.cpp b/src/emu/sound.cpp -index a0293063..c4989abb 100644 ---- a/src/emu/sound.cpp -+++ b/src/emu/sound.cpp -@@ -761,6 +761,9 @@ read_stream_view sound_stream::update_view(attotime start, attotime end, u32 out - } - g_profiler.stop(); - -+ if (!m_output_view[outputnum].valid()) -+ m_output_view[outputnum] = empty_view(start, end); -+ - // return the requested view - return read_stream_view(m_output_view[outputnum], start); - } -diff --git a/src/emu/sound.h b/src/emu/sound.h -index 15f6a574..bfa45c45 100644 ---- a/src/emu/sound.h -+++ b/src/emu/sound.h -@@ -284,6 +284,9 @@ public: - return *this; - } - -+ // check basic constraints -+ bool valid() const { return m_buffer != nullptr; } -+ - // return the local gain - sample_t gain() const { return m_gain; } - \ No newline at end of file diff --git a/rd-submodules/mame/ym3802.patch b/rd-submodules/mame/ym3802.patch deleted file mode 100644 index a48925ab..00000000 --- a/rd-submodules/mame/ym3802.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/devices/machine/ym3802.cpp b/src/devices/machine/ym3802.cpp -index 4a8f6a7ffae..d1bf2b961f6 100644 ---- a/src/devices/machine/ym3802.cpp -+++ b/src/devices/machine/ym3802.cpp -@@ -45,7 +45,7 @@ void ym3802_device::device_start() - - void ym3802_device::device_reset() - { -- m_reg.clear(); -+ m_reg.assign(REG_MAX, 0); - reset_irq(0xff); - transmit_register_reset(); - receive_register_reset(); \ No newline at end of file diff --git a/rd-submodules/primehack/detectflatpak.patch b/rd-submodules/primehack/detectflatpak.patch new file mode 100644 index 00000000..60dd1a2d --- /dev/null +++ b/rd-submodules/primehack/detectflatpak.patch @@ -0,0 +1,34 @@ +From f2d3b349d8487cf0ee50b36ba024ac513d36f826 Mon Sep 17 00:00:00 2001 +From: Carles Pastor +Date: Sat, 20 Aug 2022 13:35:32 +0200 +Subject: [PATCH] Detect we are running inside a flatpak sandbox + +--- + Source/Core/UICommon/UICommon.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp +index 8d9dc2abb8..8a9d39a3d5 100644 +--- a/Source/Core/UICommon/UICommon.cpp ++++ b/Source/Core/UICommon/UICommon.cpp +@@ -348,7 +348,7 @@ void SetUserDirectory(std::string custom_path) + // -> Use GetExeDirectory()/User + // 2. $DOLPHIN_EMU_USERPATH is set + // -> Use $DOLPHIN_EMU_USERPATH +- // 3. ~/.dolphin-emu directory exists ++ // 3. ~/.dolphin-emu directory exists, and we're not in flatpak + // -> Use ~/.dolphin-emu + // 4. Default + // -> Use XDG basedir, see +@@ -381,7 +381,7 @@ void SetUserDirectory(std::string custom_path) + { + user_path = home_path + "." DOLPHIN_DATA_DIR DIR_SEP; + +- if (!File::Exists(user_path)) ++ if (File::Exists("/.flatpak-info") || !File::Exists(user_path)) + { + const char* data_home = getenv("XDG_DATA_HOME"); + std::string data_path = +-- +2.37.1 + diff --git a/rd-submodules/primehack/nodirtyversion.patch b/rd-submodules/primehack/nodirtyversion.patch new file mode 100644 index 00000000..20b6f3c1 --- /dev/null +++ b/rd-submodules/primehack/nodirtyversion.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9af66009a1..2acd3bed9a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -149,7 +149,7 @@ if(GIT_FOUND) + OUTPUT_VARIABLE DOLPHIN_WC_REVISION + OUTPUT_STRIP_TRAILING_WHITESPACE) + # defines DOLPHIN_WC_DESCRIBE +- execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --always --long --dirty ++ execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --always --long + OUTPUT_VARIABLE DOLPHIN_WC_DESCRIBE + OUTPUT_STRIP_TRAILING_WHITESPACE) + diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch index 9dc43930..a9682176 160000 --- a/rd-submodules/retroarch +++ b/rd-submodules/retroarch @@ -1 +1 @@ -Subproject commit 9dc439300e92338d5b2bc3fc680eedd4fe1d3b0c +Subproject commit a96821769848a711db1ed0b71883f91383e2b4ab diff --git a/rd-submodules/ryujinx b/rd-submodules/ryujinx index ff79306a..f9e0cd83 160000 --- a/rd-submodules/ryujinx +++ b/rd-submodules/ryujinx @@ -1 +1 @@ -Subproject commit ff79306a50b484ce992d02a23e091d79fcde4cac +Subproject commit f9e0cd83f366025c15de7de46621963cab793ea9 diff --git a/rd-submodules/shared-modules b/rd-submodules/shared-modules index 76809270..55a8e460 160000 --- a/rd-submodules/shared-modules +++ b/rd-submodules/shared-modules @@ -1 +1 @@ -Subproject commit 76809270588f87c6c14df96fef2dde9a7bac84f4 +Subproject commit 55a8e460c6343229597a13e973ba4855c27a1c4c diff --git a/rd-submodules/vita3k/vita3k-14-01-23.zip b/rd-submodules/vita3k/vita3k-14-01-23.zip deleted file mode 100644 index 4cd7532e..00000000 Binary files a/rd-submodules/vita3k/vita3k-14-01-23.zip and /dev/null differ diff --git a/res/RetroDECK_OLDLogo.xcf b/res/RetroDECK_OLDLogo.xcf new file mode 100644 index 00000000..bd3ca645 Binary files /dev/null and b/res/RetroDECK_OLDLogo.xcf differ diff --git a/res/extra_splashes/RetroDECK-Xmas-splash.svg b/res/extra_splashes/RetroDECK-Xmas-splash.svg new file mode 100644 index 00000000..da779565 --- /dev/null +++ b/res/extra_splashes/RetroDECK-Xmas-splash.svg @@ -0,0 +1,1736 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/retrodeck.png b/res/retrodeck.png new file mode 100755 index 00000000..d16329c3 Binary files /dev/null and b/res/retrodeck.png differ diff --git a/retrodeck.sh b/retrodeck.sh index 763229c5..daeb3cc8 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -20,6 +20,7 @@ Arguments: --compress-one Compresses target file to a compatible format --compress-all Compresses all supported games into compatible format. Available formats are \"chd\", \"zip\", \"rvz\" and \"all\". --reset-emulator Reset one or more emulator configs to the default values + --reset-emulationstation Reset EmulationStation DE to default settings --reset-retrodeck Starts the initial RetroDECK installer (backup your data first!) For flatpak run specific options please run: flatpak run -h @@ -73,6 +74,18 @@ https://retrodeck.net exit fi ;; + --reset-emulationstation*) + echo "You are about to reset EmulationStation DE to default settings. Your scraped media, downloaded themes and gamelists will remain untouched." + read -p "Enter 'y' to continue, 'n' to stop: " response + if [[ $response == [yY] ]]; then + prepare_emulator "reset" "emulationstation" "cli" + read -p "The process has been completed, press Enter key to start RetroDECK." + shift # Continue launch after previous command is finished + else + read -p "The process has been cancelled, press Enter key to exit." + exit + fi + ;; --reset-retrodeck*) echo "You are about to reset RetroDECK completely!" read -p "Enter 'y' to continue, 'n' to stop: " response diff --git a/tools/configurator.sh b/tools/configurator.sh index 3f765ad4..659ac0f4 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -29,12 +29,14 @@ source /app/libexec/global.sh # - Citra # - Dolphin # - Duckstation +# - MAME # - MelonDS # - PCSX2 # - PPSSPP # - Primehack # - RPCS3 # - Ryujinx +# - Vita3K # - XEMU # - Yuzu # - Tools @@ -70,15 +72,18 @@ source /app/libexec/global.sh # - Reset Citra # - Reset Dolphin # - Reset Duckstation +# - Reset GZDoom # - Reset MelonDS # - Reset PCSX2 # - Reset PPSSPP # - Reset Primehack # - Reset RPCS3 # - Reset Ryujinx +# - Reset Vita3k # - Reset XEMU # - Reset Yuzu # - Reset All Emulators +# - Reset EmulationStation DE # - Reset RetroDECK # - RetroDECK: About # - RetroDECK Version History @@ -435,12 +440,14 @@ configurator_open_emulator_dialog() { "Citra" "Open the N3DS emulator Citra" \ "Dolphin" "Open the Wii & GC emulator Dolphin" \ "Duckstation" "Open the PSX emulator Duckstation" \ + "MAME" "Open the Multiple Arcade Machine Emulator emulator MAME" \ "MelonDS" "Open the NDS emulator MelonDS" \ "PCSX2" "Open the PS2 emulator PSXC2" \ "PPSSPP" "Open the PSP emulator PPSSPP" \ "Primehack" "Open the Metroid Prime emulator Primehack" \ "RPCS3" "Open the PS3 emulator RPCS3" \ "Ryujinx" "Open the Switch emulator Ryujinx" \ + "Vita3K" "Open the PSVita emulator Vita3K" \ "XEMU" "Open the Xbox emulator XEMU" \ "Yuzu" "Open the Switch emulator Yuzu") @@ -466,6 +473,10 @@ configurator_open_emulator_dialog() { duckstation-qt ;; + "MAME" ) + mame + ;; + "MelonDS" ) melonDS ;; @@ -490,6 +501,10 @@ configurator_open_emulator_dialog() { ryujinx-wrapper ;; + "Vita3K" ) + Vita3K + ;; + "XEMU" ) xemu ;; @@ -529,7 +544,7 @@ configurator_retrodeck_tools_dialog() { ;; "Install: RetroDECK SD Controller Profile" ) - configurator_generic_dialog "RetroDECK Configurator - Install: RetroDECK Controller Profile" "We are now offering a new official RetroDECK controller profile!\nIt is an optional component that helps you get the most out of RetroDECK with a new in-game radial menu for unified hotkeys across emulators.\n\nThe files need to be installed outside of the normal ~/retrodeck folder, so we wanted your permission before proceeding.\n\nThe files will be installed at the following shared Steam locations:\n\n$HOME/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/\n$HOME/.steam/steam/controller_base/templates/RetroDECK_controller_config.vdf" + configurator_generic_dialog "RetroDECK Configurator - Install: RetroDECK Controller Profile" "We are now offering a new official RetroDECK controller profile!\nIt is an optional component that helps you get the most out of RetroDECK with a new in-game radial menu for unified hotkeys across emulators.\n\nThe files need to be installed outside of the normal ~/retrodeck folder, so we wanted your permission before proceeding.\n\nThe files will be installed at the following shared Steam locations:\n\n$HOME/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/\n$HOME/.steam/steam/controller_base/templates" if [[ $(configurator_generic_question_dialog "Install: RetroDECK Controller Profile" "Would you like to install the official RetroDECK controller profile?") == "true" ]]; then install_retrodeck_controller_profile configurator_generic_dialog "RetroDECK Configurator - Install: RetroDECK Controller Profile" "The RetroDECK controller profile install is complete.\nSee the Wiki for more details on how to use it to its fullest potential!" @@ -958,7 +973,7 @@ configurator_check_multifile_game_structure() { zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator - Check & Verify: Multi-file structure" \ - --text="The following games were found to have the incorrect folder structure:\n\n$(find $roms_folder -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3")\n\nIncorrect folder structure can result in failure to launch games or saves being in the incorrect location.\n\nPlease see the RetroDECK wiki for more details!\n\nYou can find this list of games in ~/retrodeck/.logs" + --text="The following games were found to have the incorrect folder structure:\n\n$(find $roms_folder -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3")\n\nIncorrect folder structure can result in failure to launch games or saves being in the incorrect location.\n\nPlease see the RetroDECK wiki for more details!\n\nYou can find this list of games in ~/retrodeck/logs" else configurator_generic_dialog "RetroDECK Configurator - Check & Verify: Multi-file structure" "No incorrect multi-file game folder structures found." fi @@ -971,6 +986,7 @@ configurator_reset_dialog() { --column="Choice" --column="Action" \ "Reset Specific Emulator" "Reset only one specific emulator to default settings" \ "Reset All Emulators" "Reset all emulators to default settings" \ + "Reset EmulationStation DE" "Reset the ES-DE frontend" \ "Reset RetroDECK" "Reset RetroDECK to default settings" ) case $choice in @@ -986,23 +1002,31 @@ configurator_reset_dialog() { "Citra" "Reset the N3DS emulator Citra to default settings" \ "Dolphin" "Reset the Wii/GameCube emulator Dolphin to default settings" \ "Duckstation" "Reset the PSX emulator Duckstation to default settings" \ + "GZDoom" "Reset the GZDoom Doom engine to default settings" \ + "MAME" "Reset the Multiple Arcade Machine Emulator (MAME) to default settings" \ "MelonDS" "Reset the NDS emulator MelonDS to default settings" \ "PCSX2" "Reset the PS2 emulator PCSX2 to default settings" \ "PPSSPP" "Reset the PSP emulator PPSSPP to default settings" \ "Primehack" "Reset the Metroid Prime emulator Primehack to default settings" \ "RPCS3" "Reset the PS3 emulator RPCS3 to default settings" \ "Ryujinx" "Reset the Switch emulator Ryujinx to default settings" \ + "Vita3k" "Reset the PS Vita emulator Vita3k to default settings" \ "XEMU" "Reset the XBOX emulator XEMU to default settings" \ "Yuzu" "Reset the Switch emulator Yuzu to default settings" ) case $emulator_to_reset in - "RetroArch" | "XEMU" ) # Emulators that require network access - if [[ $(configurator_reset_confirmation_dialog "$emulator_to_reset" "Are you sure you want to reset the $emulator_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then - prepare_emulator "reset" "$emulator_to_reset" "configurator" - configurator_process_complete_dialog "resetting $emulator_to_reset" + "RetroArch" | "Vita3k" | "XEMU" ) # Emulators that require network access + if [[ $(check_network_connectivity) == "true" ]]; then + if [[ $(configurator_reset_confirmation_dialog "$emulator_to_reset" "Are you sure you want to reset the $emulator_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then + prepare_emulator "reset" "$emulator_to_reset" "configurator" + configurator_process_complete_dialog "resetting $emulator_to_reset" + else + configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled." + configurator_reset_dialog + fi else - configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled." + configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Resetting this emulator requires active network access.\nPlease try again when you are connected to an Internet-capable network.\n\nReset process cancelled." configurator_reset_dialog fi ;; @@ -1025,17 +1049,36 @@ configurator_reset_dialog() { ;; "Reset All Emulators" ) - if [[ $(configurator_reset_confirmation_dialog "all emulators" "Are you sure you want to reset all emulators to default settings?\n\nThis process cannot be undone.") == "true" ]]; then - ( - prepare_emulator "reset" "all" - ) | - zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \ - --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ - --title "RetroDECK Finishing Initialization" \ - --text="RetroDECK is finishing the reset process, please wait." - configurator_process_complete_dialog "resetting all emulators" + if [[ $(check_network_connectivity) == "true" ]]; then + if [[ $(configurator_reset_confirmation_dialog "all emulators" "Are you sure you want to reset all emulators to default settings?\n\nThis process cannot be undone.") == "true" ]]; then + ( + prepare_emulator "reset" "all" + ) | + zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK Finishing Initialization" \ + --text="RetroDECK is finishing the reset process, please wait." + configurator_process_complete_dialog "resetting all emulators" + else + configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled." + configurator_reset_dialog + fi else - configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled." + configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Resetting all emulators requires active network access.\nPlease try again when you are connected to an Internet-capable network.\n\nReset process cancelled." + configurator_reset_dialog + fi +;; + +"Reset EmulationStation DE" ) + if [[ $(configurator_reset_confirmation_dialog "EmulationStation DE" "Are you sure you want to reset EmulationStation DE to default settings?\n\nYour scraped media, downloaded themes and gamelists will not be touched.\n\nThis process cannot be undone.") == "true" ]]; then + zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK Configurator Utility - Reset EmulationStation DE" \ + --text="You are resetting EmulationStation DE to its default settings.\n\nAfter the process is complete you will need to exit RetroDECK and run it again." + prepare_emulator "reset" "emulationstation" "configurator" + configurator_process_complete_dialog "resetting EmulationStation DE" + else + configurator_generic_dialog "RetroDeck Configurator - EmulationStation DE: Reset" "Reset process cancelled." configurator_reset_dialog fi ;; diff --git a/wiki-rtd/Archive.md b/wiki-rtd/Archive.md deleted file mode 100644 index 6d06b613..00000000 --- a/wiki-rtd/Archive.md +++ /dev/null @@ -1,171 +0,0 @@ -# Archive -The Archive have some legacy information from the wiki, for those that would want to read it or run some older version of RetroDECK. - -# Legacy included Themes - - -## Alekfull NX (Light) - -| System View | Gamelist View | -|----|----| -| ![rd-theme-AlekfullNXLight-SystemView](https://user-images.githubusercontent.com/1454947/193457765-e56875cd-a34d-4675-8267-56d04d4d1c32.jpeg) | ![rd-theme-AlekfullNXLight-GamelistView](https://user-images.githubusercontent.com/1454947/193457762-4d997ca3-d77c-4993-81bb-0c1a78f240a1.jpeg) | - -**Description:**
-Alekfull NX was inspired by the straightforward and intuitive interface of the Nintendo Switch and offers a similar experience but with a light retro twist. - -Source: [Alekfull NX (Light)](https://github.com/anthonycaccese/alekfull-nx-retropie/tree/retro-deck-esde-1.x-light)
-Ported and remixed by: [anthonycaccese](https://github.com/anthonycaccese)
-Ported from: [Alekfull-NX for Batocera](https://github.com/fagnerpc/Alekfull-NX)
-Original creator: [fagnerpc](https://github.com/fagnerpc) - -## Retrofix Revisited - -| System View | Gamelist View | -|----|----| -| ![rd-theme-RetrofixRevisited-SystemView](https://user-images.githubusercontent.com/1454947/193457596-05dc4316-9f2a-41ae-aa27-9609c680ec5a.jpeg) | ![rd-theme-RetrofixRevisited-GamelistView](https://user-images.githubusercontent.com/1454947/193457594-b803546b-36eb-4e71-9eca-bfee1d81ba36.jpeg) | - -**Description:**
-Retrofix Revisited is a theme where the goal is to showcase that the art of video games can be more interesting than the games themselves. - -Source: [Retrofix Revisited](https://github.com/anthonycaccese/retrofix-revisited-retropie)
-Ported and remixed by: [anthonycaccese](https://github.com/anthonycaccese)
-Ported from: [ES Theme Retrofix for Batocera](https://github.com/20GotoTen/es-theme-retrofix)
-Original creator: [20GotoTen](https://github.com/20GotoTen)
- - -## Slate-DE - -| System View | Gamelist View | -|----|----| -| ![rd-SlateDE-SystemView](https://user-images.githubusercontent.com/1454947/193464197-14cb8c12-77ea-4b8b-965f-fa51a5d004b9.jpeg) | ![rd-SlateDE-GamelistView](https://user-images.githubusercontent.com/1454947/193464213-b73f18a3-840d-4cab-bac2-268bc51fbc03.jpeg) | - -**Description:**
-Slate-DE is based on the community created theme Recalbox-Multi for Recalbox. - -Source: [slate-DE](https://gitlab.com/es-de/emulationstation-de/-/tree/master/themes/slate-DE)
-Created by: [LeonSE from ES-DE](https://gitlab.com/es-de)
-Inspired by: [Recalbox-Multi](https://gitlab.com/recalbox/recalbox-themes/-/tree/master/themes/recalbox-multi) - -## Modern-DE - -| System View | Gamelist View | -|----|----| -| ![rd-ModernDE-SystemView](https://user-images.githubusercontent.com/1454947/193464329-938c5b68-6ae9-4ab6-8ac7-e7312e9698c5.jpeg) | ![rd-ModernDE-GamelistView](https://user-images.githubusercontent.com/1454947/193464333-890444ed-dd85-4322-8056-c3be8df6cad2.jpeg) | - -**Description:**
-Modern-DE is based on ES-Theme-Switch for RetroPie, a lightweight Switch inspired theme. - -Source: [Modern-DE](https://gitlab.com/es-de/emulationstation-de/-/tree/master/themes/modern-DE)
-Created by: [LeonSE from ES-DE](https://gitlab.com/es-de)
-Inspired by: [ES-Theme-Switch](https://github.com/lilbud/es-theme-switch) - - -## NSO Menu Interpreted - -| System View | Gamelist View | -|----|----| -| ![rd-NSO-SystemView](https://user-images.githubusercontent.com/1454947/222733121-975db30a-098c-4f77-aebd-f252ebe8c4cc.png) | ![rd-NSO-GamelistView](https://user-images.githubusercontent.com/1454947/222733148-42d38a12-34d1-4063-8ecc-13d16c1e44d3.png) | - -**Description:**
-NSO Menu Interpreted is a theme that takes inspiration from the menu design of Nintendo Switch Online. - -Source: [NSO-Menu-Interpreted](https://github.com/anthonycaccese/nso-menu-interpreted-es-de)
-Created by: [anthonycaccese](https://github.com/anthonycaccese) & [rogs123](https://github.com/rogs123) - -# Legacy Steam Deck Inputs Pre: 0.7b -These are legacy inputs from the old RetroDECK TEST Official Layout profile for the Steam Deck - -| Command | Button / Combination | -| :--- | :---: | -| RetroArch Menu | `L3+R3` or `SELECT+Y` | -| Quit Game | `START + SELECT` | -| Pause Emulation | `Select + B` | -| Take Screenshot | `Select + A` | -| Select Save State Slot +| `Select + D-Pad UP` | -| Select Save State Slot -| `Select + D-Pad Down` | -| Load State | `Select + L1` | -| Save State | `Select + R1` | -| Rewind Emulation* | `Select + L2` | -| Fast forward Emulation* | `Select + R2` | - -`*` Fast forwarding and rewind must be enabled inside RetroDeck firstly inside the Tools menu. - -## MelonDS - -| Command | Button / Combination | -| :--- | :---: | -| Fast forward Emulation* | `R2 or R4` | -| Swap screen layout | `L3 or R5` | -| Pause/Resume | `R3 or L4` | - - -## CITRA (SA) - -| Command | Button / Combination | -| :--- | :---: | -| Load State | `L4` | -| Save State | `R4` | -| Citra Main Menu | `R5` | -| Swap Screens | `L5` | - -**NOTE:** in order to quit CITRA just exit from the menu. - -## YUZU - -| Command | Button / Combination | -| :--- | :---: | -| Pause/Resume | `R4 + A` | -| Load Amiibo | `R4 + X` | -| Docked/Undocked Mode | `R4 + Y` | -| Yuzu Main Menu | `R4 + B` | -| Exit Yuzu | `R4 + Select` | -| Take Screenshot | `R4` | -| Home | `L4` | - - -## Ryujinx -Please note! -Unfortunately Ryujinx doesn't support the full hotkey customization yet. These are the default hotkeys as of now: - -| Command | Button / Combination | -| :--- | :---: | -| Vsync Toggle | `F1` | -| Sound Mute/Unmute | `F2` | -| Show UI | `F4` | -| Pause/Resume | `F5` | -| Screenshot | `F8` | -| Fulscreen Toggle | `F11` or `Alt+Enter` | - - -## DOLPHIN (SA) - -| Command | Button / Combination | -| :--- | :---: | -| Take Screenshot | `Select + A` | -| Load State | `Select + L2` | -| Save State | `Select + R2` | -| Fastforward | `Select + R4` | -| Slowdown | `Select + L4` | -| Exit Dolphin | `Select + Start` | - - -## PPSSPPSDL (SA) - -| Command | Button / Combination | -| :--- | :---: | -| Fastforward | `R2` | -| Rewind | `L2` | -| Pause/Resume | `R4` | -| Take Screenshot | `L4` | -| Load State | `L5` | -| Save State | `R5` | - - -## Duckstation (SA) - -| Command | Button / Combination | -| :--- | :---: | -| Fastforward | `R4` | -| Rewind | `L4` | -| Load State | `L5` | -| Save State | `R5` | \ No newline at end of file diff --git a/wiki-rtd/Citra:-Mods.md b/wiki-rtd/Citra:-Mods.md deleted file mode 100644 index 2a12e987..00000000 --- a/wiki-rtd/Citra:-Mods.md +++ /dev/null @@ -1,31 +0,0 @@ -# Citra - 3DS -The `~/retrodeck/mods/citra/` represents the `/load/mods/` folder in Citra. - -**Note:**
-`TITLEID` is different for every game. - - -## How do I add mods? - -**Requirements:** Mod files
- -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. - - -There are two ways of adding mods into Citra - - - -### From Citra -1. Extract any mod from compressed `.zip` or any other format to folders. -2. Open up Citra inside `RetroDECK Configurator` by pressing `Open Emulator` - `Citra`. -3. Right click on the game you want to add mods into. -4. Click on `Open Mods Location`. -5. Paste the mod files inside that directory, each folder is stored by the `TITLLEID` of the game. -6. Quit Citra - -### From the mod folder directly - -1. Extract any mod files from compressed `.zip` or any other format into folders. -2. Go into `~/retrodeck/mods/citra/`. The folders are all named by `TITLEID`. -3. Past the mods into the right `~/retrodeck/mods/yuzu/` folder. \ No newline at end of file diff --git a/wiki-rtd/Citra:-Texture-Packs.md b/wiki-rtd/Citra:-Texture-Packs.md deleted file mode 100644 index 08f44dfa..00000000 --- a/wiki-rtd/Citra:-Texture-Packs.md +++ /dev/null @@ -1,43 +0,0 @@ -# Citra - 3DS -The `~/retrodeck/texture_packs/citra/` represents the `/load/textures` folder in Citra. - -**Note:**
-Some texture packs could made for a specific version or region of a game. Make sure you have the right game and textures for it. - -**Note:**
-`TITLEID` is different for every game. - -## Enable Custom Textures -* Open up Citra inside `RetroDECK Configurator` by pressing `Open Emulator` - `Citra`. -* Press `Emulation` -> `Configure` -> `Graphics` -> `Use Custom Textures` and set it to `On`. - - -## How do I add texture packs? - -**Requirements:** Texture pack files
- -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. - - -There are two ways of adding texture packs into Citra - - -### From Citra -1. Extract any texture files from compressed `.zip` or any other format to folders. -2. Open up Citra inside `RetroDECK Configurator` by pressing `Open Emulator` - `Citra`. -3. Right click on the game you want to add textures into. -4. Click on `Open Custom Textures Location`. -5. Paste the texture folders inside that directory, each folder is stored by the `TITLLEID` of the game. -6. Quit Citra - -### From the texture folder directly - -1. Extract any texture pack files from compressed `.zip` or any other format into folders. -2. Go into `~/retrodeck/texture_packs/citra/`. The folders are all named by `TITLEID`. -3. Move textures into the right `~/retrodeck/texture_packs/citra/` folder. - -Example: - -* You have a `.zip` file for a game that contains the `/load/textures/0000001000` folders. -* All you need to do is take the TITLEID folder: `0000001000` and put it into `~/retrodeck/texture_packs/citra/` -* So the end result looks like: `~/retrodeck/texture_packs/citra/0000001000` \ No newline at end of file diff --git a/wiki-rtd/Development:-General-notes.md b/wiki-rtd/Development:-General-notes.md deleted file mode 100644 index 9568d331..00000000 --- a/wiki-rtd/Development:-General-notes.md +++ /dev/null @@ -1,116 +0,0 @@ -# Cooker -Cooker, differently from the main (stable) branch, is what it's boiling in the pot now: the bleeding edge of the software development. -Every time a commit or a PR is done, a GitHub action automatically compiles the snapshot with the latest changes and publish them on the [cooker repository](https://github.com/XargonWan/RetroDECK-cooker). -This can be publicly tested and if it's stable will be merged in the main branch creating a new release. - -Useless to say that this channel is not suggested for the end user but it's developer / alpha tester oriented. -Expect major bugs and data loss: be warned. - -# Build instructions - -If you want to build the RetroDECK flatpak on your machine for developing or just testing purposes: -``` -cd ~ -git clone --recursive https://github.com/XargonWan/RetroDECK.git -cd RetroDECK -git submodule init -git submodule update -``` - -install `flatpak flatpak-builder p7zip-full` with your distro's package manager, then: - -``` -flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo -flatpak install --user -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 org.freedesktop.Platform.ffmpeg-full/x86_64/21.08 -``` - -To build the stable release: -``` -flatpak-builder --user --install --install-deps-from=flathub --install-deps-from=flathub-beta --force-clean --repo=local ~/RetroDECK/retrodeck-main ~/RetroDECK/net.retrodeck.retrodeck.yml -flatpak build-bundle local ~/RetroDECK.flatpak net.retrodeck.retrodeck -``` - -Or alternatively, to build the cooker (experimental) release: -``` -git checkout cooker -flatpak-builder --user --install --force-clean --repo=local ~/RetroDECK/retrodeck-cooker ~/RetroDECK/net.retrodeck.retrodeck.yml -flatpak build-bundle local ~/RetroDECK.flatpak net.retrodeck.retrodeck -``` - -# Debug Mode -It's possible to enter in a sort of debug mode, it's actually the flatpak shell. - -Enter in the flatpak shell: -``` -flatpak run --command=bash net.retrodeck.retrodeck -``` - -Launch ES-DE in debug mode: -``` -emulationstation --debug --home /var/config/emulationstation -``` - -Launch an emulator in debug mode: -``` -ls /app/bin -``` -To get the list of the available binaries to launch, then just write the command, such as `yuzu` or `retroarch` - -This is useful when for example a game is not starting and you want the output printed in the terminal. - -# Manual installation instructions -This method is usually for the beta/cooker testers: -- Download the RetroDECK.flatpak from the [release page](https://github.com/XargonWan/RetroDECK/releases) or from the [cooker release page](https://github.com/XargonWan/RetroDECK-cooker/releases) (be sure to download the correct version, check the date as they're not ordered unfortunately). -- `cd` where the downloded file is located -- `flatpak install RetroDECK.flatpak` or whatever the filename is - -If this doesn´t work: -- cd into your download location -- `flatpak install RetroDECK.flatpak` -- Run it from the start menu or, alternatively, from the terminal by typing `flatpak run net.retrodeck.retrodeck` -- Then the first setup will guide you in the first steps, **please read all the messages carefully** as the rom directory must not be edited in EmulationStation - -## Updating instructions -- uninstall the previous version with `flatpak uninstall net.retrodeck.retrodeck` -- follow installation instructions -- [OPTIONAL] In case of issues it's suggested to remove `~/.var/app/net.retrodeck.retrodeck` and run `flatpak run net.retrodeck.retrodeck --reset`, but this will reset the application configs, please backup your data. -NOTE: this will not be needed after v`0.4.0b`. - -# Managing RetroDECK flatpak file - -Install RetroDECK from flatpak file: -``` -flatpak install RetroDECK.flatpak -``` - -Run RetroDECK: -``` -flatpak run net.retrodeck.retrodeck -``` - -Uninstall RetroDECK: -``` -flatpak uninstall net.retrodeck.retrodeck -``` - -# CLI - (Command Line interface) -There are some functions that can be called via CLI, for a comprehensive list type: -`flatpak run net.retrodeck.retrodeck --help` or `flatpak run net.retrodeck.retrodeck -h` - -Some useful ones: -Resets the whole RetroDECK at factory defaults: -```bash -flatpak run net.retrodeck.retrodeck --reset -``` -Resets RetroArch configs at factory defaults: -```bash -flatpak run net.retrodeck.retrodeck --reset-ra -``` -Resets all the standalone emulators configs at factory defaults: -```bash -flatpak run net.retrodeck.retrodeck --reset-sa -``` - -# Making your own ES-DE theme -Please check the following link link over ES-DE (this is still in development)
-[Theme Development ](https://gitlab.com/es-de/emulationstation-de/-/blob/master/THEMES-DEV.md) diff --git a/wiki-rtd/Dolphin-and-Primehack:-Mods.md b/wiki-rtd/Dolphin-and-Primehack:-Mods.md deleted file mode 100644 index 24f34554..00000000 --- a/wiki-rtd/Dolphin-and-Primehack:-Mods.md +++ /dev/null @@ -1,36 +0,0 @@ -# Dolphin / Primehack - GC & Wii -Primehack is based on Dolphin so the method is the same. - -The `~/retrodeck/mods/dolphin/` & `~/retrodeck/mods/primehack/` that represents the `/load/GraphicMods` folder.
- - -**Note:**
-Some texture packs could made for a specific version or region of a game. Make sure you have the right game and textures for it. - -**Note:**
-`GAME_ID` is different for every game. - -## Enable Custom Textures -* Open up Dolphin or Primehack inside `RetroDECK Configurator` by pressing `Open Emulator` - `Dolphin` or `Primehack`. -* Press `Options` -> `Graphic Settings` - -`Enable Graphics Mods` and set it to `On`.
- -## How do I add mods? - -**Requirements:** Mod files
- -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. - - -### Directly into the mods folder - -1. Extract any mod files from compressed `.zip` or any other format into folders. - -2. Go into mods folders, they contain folders that are all named by `GAME_ID`.
-**Dolphin:**`~/retrodeck/mods/dolphin/`
-**Primehack:**`~/retrodeck/mods/primehack/`. - -3. Move the mods into the right folder:
-**Dolphin:** `~/retrodeck/mods/dolphin/`
-**Primehack:** `~/retrodeck/mods/primehack/`
diff --git a/wiki-rtd/Dolphin-and-Primehack:-Texture-Packs.md b/wiki-rtd/Dolphin-and-Primehack:-Texture-Packs.md deleted file mode 100644 index ebf940fb..00000000 --- a/wiki-rtd/Dolphin-and-Primehack:-Texture-Packs.md +++ /dev/null @@ -1,39 +0,0 @@ -# Dolphin / Primehack - GC & Wii -Primehack is based on Dolphin so the method is the same. - -The `~/retrodeck/texture_packs/dolphin/` & `~/retrodeck/texture_packs/primehack/` represents the `/load/Textures` folder.
- - - -**Note:**
-Some texture packs could made for a specific version or region of a game. Make sure you have the right game and textures for it. - -**Note:**
-`GAME_ID` is different for every game. - -## Enable Custom Textures -* Open up Dolphin or Primehack inside `RetroDECK Configurator` by pressing `Open Emulator` - `Dolphin` or `Primehack`. -* Press `Options` -> `Graphic Settings` - -`Load Custom Textures` and set it to `On`.
- -`Prefetch Custom Textures` and set it to `On`. - -## How do I add texture packs? - -**Requirements:** Texture pack files
- -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. - - -### Directly in the folder - -1. Extract any texture pack files from compressed `.zip` or any other format into folders. - -2. Go into texture pack folders, they contain folders that are all named by `GAME_ID`.
-**Dolphin:**`~/retrodeck/texture_packs/dolphin/`
-**Primehack:**`~/retrodeck/texture_packs/primehack/`. - -3. Move the textures into the right folder:
-**Dolphin:** `~/retrodeck/texture_packs/dolphin/`
-**Primehack:** `~/retrodeck/texture_packs/primehack/`
diff --git a/wiki-rtd/Duckstation:-Texture-Packs.md b/wiki-rtd/Duckstation:-Texture-Packs.md deleted file mode 100644 index 86be8d82..00000000 --- a/wiki-rtd/Duckstation:-Texture-Packs.md +++ /dev/null @@ -1,30 +0,0 @@ -# Duckstation - PSX -The `~/retrodeck/texture_packs/duckstaiton/` represents the `/duckstation/textures/` folder in Duckstation. - -**Note:**
-Some texture packs could made for a specific version or region of a game. Make sure you have the right game and textures for it. - -**Note:**
-`TITLEID` is different for every game. - -## Enable Custom Textures -* Open up Duckstation inside `RetroDECK Configurator` by pressing `Open Emulator` - `Duckstation`. -* Go to `Settings` -> `Advanced` -> `Tweaks/Hacks`
- -`Enable VRAM Write Texture Replacement` and set it to `On`.
- -`Preload Texture Replacements` and set it to `On`.
- - -## How do I add texture packs? - -**Requirements:** Texture pack files
- -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. - - -### Texture folder directly - -1. Extract any texture pack files from compressed `.zip` or any other format into folders. -2. Go into `~/retrodeck/texture_packs/duckstation/`. The folders are all named by `TITLEID`. -3. Move textures into the right `~/retrodeck/texture_packs/duckstation/` folder. \ No newline at end of file diff --git a/wiki-rtd/EmulationStation-DE:-Themes.md b/wiki-rtd/EmulationStation-DE:-Themes.md deleted file mode 100644 index 7fee150a..00000000 --- a/wiki-rtd/EmulationStation-DE:-Themes.md +++ /dev/null @@ -1,38 +0,0 @@ -# Themes general information - -## How to switch between themes? -Go into `Main Menu` - `UI Settings` - `Theme Set` to select the theme you want to use. - -## ES-DE Theme List -Look over at the [Theme List](https://gitlab.com/es-de/themes/themes-list) and find themes you like. - -## How do I add additional themes? - -RetroDECK uses [ES-DE](https://www.es-de.org) for its interface so any theme that is compatible with ES-DE can also be used with RetroDECK - -### From the Theme Downloader - -Go into `Main Menu` - `UI Settings` - `Theme Downloader` from there you can download a wide array of themes. - -### From the Internet -If you find a theme you would like to use that is not in the `Theme Downloader` please download it and place it in `~/retrodeck/themes` (make sure the theme has its own folder in that directory). - -## FAQs: Frequently asked questions on Themes - -["Why does the theme I am using not work?" or "Why does the layout look broken?" (black screen with blue text)](https://github.com/XargonWan/RetroDECK/wiki/FAQs:-Frequently-asked-questions#why-does-the-theme-i-am-using-not-work-or-why-does-the-layout-look-broken-black-screen-with-blue-text) - -[Why does the theme layout look squished?](https://github.com/XargonWan/RetroDECK/wiki/FAQs:-Frequently-asked-questions#why-does-the-theme-layout-look-squished) - -# RetroDECK: Included Theme - -## Art Book Next - -| System View | Gamelist View | -|----|----| -| ![rd-theme-ArtBookNext-SystemView](https://user-images.githubusercontent.com/1454947/193457029-9a7a1207-fe05-4cd1-8b18-eb4112e903e9.jpeg)| ![rd-theme-ArtBookNext-GamelistView](https://user-images.githubusercontent.com/1454947/193457123-505ccd23-6477-43d8-baaa-1360ed3c250e.jpeg) | - -**Description:**
-Art Book Next is a theme that tries to emulate the feeling of flipping trough your game library as if they where pages of a coffee table book. - -Source: [Art Book Next on Github](https://github.com/anthonycaccese/art-book-next-retropie)
-Created by: [anthonycaccese](https://github.com/anthonycaccese) diff --git a/wiki-rtd/EmulationStation-DE:-User-Guide.md b/wiki-rtd/EmulationStation-DE:-User-Guide.md deleted file mode 100644 index 44a58f6d..00000000 --- a/wiki-rtd/EmulationStation-DE:-User-Guide.md +++ /dev/null @@ -1,97 +0,0 @@ -# The User Guide - -RetroDECK uses EmulationStation Desktop Edition (ES-DE) as its bundled interface. - -The official EmulationStation Desktop Edition user guide is over at their gitlab.
-[EmulationStation Desktop Edition user guide](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md) - -Note that the guide is written in a general way for the application and not how RetroDECK handles certain configurations. Also note that RetroDECK is currently not shipped with all the emulators ES-DE supports in the user guide. - -_EmulationStation Desktop Edition (ES-DE) and it's guide is written by [Leon Styhre](https://gitlab.com/leonstyhre)
- Published under the MIT-Licence._ - -# Recommended sections in the user guide: - - -## General Interface - -### General UI Settings -Various settings that affect the user interface.
-[UI Settings](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#ui-settings) - -### Other UI settings -These are mostly technical settings.
-[Other UI settings](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#other-settings) - -### General navigation -These are the buttons mappings automatically applied by ES-DE.
-[General navigation](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#general-navigation) -If you are using the Steam Deck look at RetroDECKs hotkeys: -[Steam Deck: Hotkeys ](https://github.com/XargonWan/RetroDECK/wiki/Steam-Deck:-Hotkeys) - -### Sound Settings -Various sound settings.
-[Sound settings](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#sound-settings) - -## Game settings and filters - -### Game options menu -Various navigation for the game options menu.
-[Game options menu](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#game-options-menu) - -### Game collections -ES-DE provides two types of collections, Automatic collections and Custom collections, the latter being defined by the user. Collections are as the name implies only collections of games already present in your actual game systems, so they're basically grouping of games into convenient views.
-[Game collections](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#game-collections) - -### Set alternative emulator. -ES-DE allows you to change emulators for systems that has many different emulators.
-[Set alternative emulator](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#other-settings-1) - -## Scraping and editing roms: metadata, images etc... - -### Scraper -Contains the various options for the scraper, which is used to download metadata, images and videos for your games.
-[Scraper guide](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#scraping) - -### Scraper account settings -Setup of ScreenScraper account.
-[Scraper account settings](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#account-settings) - -### Content Settings -Describes the content types to include in the scraping.
-[Content settings](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#content-settings) - -### How to: Manually copy custom media files (images, videos etc..) -How to add custom media files to the ES-DE interface. For example you want other images then those on screenscraper or the game you add don't exists.
-[How to: Manually copy custom media files](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#manually-copying-game-media-files) - -### Miximage settings -These are the settings for the miximage generator, which can either be run from the scraper (single-game scraper or multi-scraper) or from the offline generator. The miximage combines the screenshot, marquee, box/cover and physical media images to make a composite picture that is displayed in the gamelist view. There are various settings for the generator.
- -[Miximage settings](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#miximage-settings) - -### Metadata editor -In the metadata editor, you can modify the metadata, scrape for game info and media files, clear the entry which will delete all metadata and game media files, or delete the entire game which also removes its file on the filesystem.
-[Metadata editor](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#metadata-editor) - -### Various other scraping settings.
-[Other scraper settings](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#other-settings) - - -## Media, video, themes and slideshow settings - -### Video screensaver settings -Options specific to the video screensaver.
-[Video screensaver settings](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#video-screensaver-settings) - -### Media viewer settings -Settings for the media viewer that is accessible from the gamelist views.
-[Media viewer settings](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#media-viewer-settings) - -### Slideshow screensaver settings -Options specific to the slideshow screensaver.
-[Slideshow screensaver settings](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#slideshow-screensaver-settings) - -### Theme settings -Tells you how to use themes.
-[Theme settings](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#themes) diff --git a/wiki-rtd/Emulators:-BIOS-and-Firmware.md b/wiki-rtd/Emulators:-BIOS-and-Firmware.md deleted file mode 100644 index a219ffe4..00000000 --- a/wiki-rtd/Emulators:-BIOS-and-Firmware.md +++ /dev/null @@ -1,132 +0,0 @@ -A BIOS or firmware is like the brain of a computer or electronic device. It helps the device start up and makes sure all its parts work together smoothly. In emulation, having the correct BIOS/firmware is important because it allows the software to pretend to be the real device and work properly. -That's why some emulators require BIOS and Firmware files to work correctly or at all. -Generally the bios files should be put in `~/retrodeck/bios`. - -## RetroArch (Libretro) -Some cores may need some BIOS files to work or run correctly. -Here are the most common systems, if you find more we can add them to this wiki. -However the extended information can be found on the [official libretro documentation](https://docs.libretro.com/guides/bios/), just search for your core. -More info by clicking on the system name down here. - -[Sony Playstation](https://docs.libretro.com/library/beetle_psx/#bios) -``` -scph5500.bin PS1 JP BIOS - Required for JP games 8dd7d5296a650fac7319bce665a6a53c -scph5501.bin PS1 US BIOS - Required for US games 490f666e1afb15b7362b406ed1cea246 -scph5502.bin PS1 EU BIOS - Required for EU games 32736f17079d0b2b7024407c39bd3050 -``` - -[SegaCD](https://docs.libretro.com/library/genesis_plus_gx/#bios) -``` -bios_CD_E.bin | MegaCD EU BIOS - Required for MegaCD EU games | e66fa1dc5820d254611fdcdba0662372 -bios_CD_U.bin | SegaCD US BIOS - Required for SegaCD US games | 854b9150240a198070150e4566ae1290 -bios_CD_J.bin | MegaCD JP BIOS - Required for MegaCD JP games | 278a9397d192149e84e820ac621a8edd -``` - -[Sega Saturn](https://docs.libretro.com/library/beetle_saturn/#bios) -``` -sega_101.bin | Saturn JP BIOS - Required for JP games | 85ec9ca47d8f6807718151cbcca8b964 -mpr-17933.bin | Saturn US.mdEU BIOS - Required for US/EU games | 3240872c70984b6cbfda1586cab68dbe -mpr-18811-mx.ic1 | The King of Fighters '95 ROM Cartridge - Required for this game | 255113ba943c92a54facd25a10fd780c -mpr-19367-mx.ic1 | Ultraman: Hikari no Kyojin Densetsu ROM Cartridge - Required for this game | 1cd19988d1d72a3e7caa0b73234c96b4 - -``` -*only required for a specific game - -[PPSSPP](https://docs.libretro.com/library/ppsspp/)
-Starting everything should be included.
-But if you want the original PSP fonts you can place them in `system/PPSSPP/flash0/font` - - -[MSX / SVI / ColecoVision / SG-1000](https://docs.libretro.com/library/bluemsx/#bios)
-Content of [blueMSXv282full.zip](http://bluemsx.msxblue.com/download.html).
-Not the zip itself, its contents must be extracted in `~/retrodeck/bios` folder, more info [here](https://docs.libretro.com/library/bluemsx/#bios). -Starting from v0.5.0b this is automatically provided. - -## Yuzu -Yuzu needs the key files `prod.keys`, `title.keys` and the firmware files in the following directories: - -**Yuzu keys:** `~/retrodeck/bios/switch/keys` - -**Yuzu firmware:** `~/retrodeck/bios/switch/registered` - -The directory tree should look like this example: -``` -~/retrodeck/bios/switch -├── keys -│   ├── prod.keys -│   └── title.keys -└── registered - ├── 02259fd41066eddbc64e0fdd217d9d2f.nca - ├── 02582a2cd46cc226ce72c8a52504cd97.nca - ├── 02b1dd519a6df4de1b11871851d328a1.nca - ├── other 217 files... - └── fd0d23003ea5602c24ac4e41101c16fd.nca -``` - -You can find a complete guide in the [Yuzu official wiki](https://yuzu-emu.org/help/quickstart/#downloading-and-installing-yuzu) on how to extract the BIOS from your Switch. - -## XEMU (Xbox) - -These files must be placed with the correct name in the given folders: -``` -~/retrodeck/bios/mcpx_1.0.bin' -~/retrodeck/bios/Complex.bin' -~/retrodeck/saves/xbox-eeprom.bin' -[OPTIONAL] ~/retrodeck/bios/xbox_hdd.qcow2' -``` -The hard disk is optional as RetroDECK already provides a pre-built 8G Xbox HDD image, free of any copyrighted content, and only containing a dummy dashboard. -So if you want to the complete experience you have to provide your own. - -Usually those files are dumped/found as: -``` -mcpx_1.0.bin -Complex.bin -> Complex_4627v1.03.bin or Complex_4627.bin -xbox-eeprom.bin -> eeprom.bin -xbox_hdd.qcow2 -> xbox_harddisk-D4920.qcow2 -``` -So don't forget to rename them for the RetroDECK standards. - -## PICO-8 - -Pico-8 it's not freeware hence it cannot be included with RetroDECK, however it's supported by using these steps: - -1. Download PICO-8 for `Linux 64-bit` from the [official website](https://www.lexaloffle.com/games.php?page=updates) or where you bought it. -2. Extract the zipfile somewhere on your desktop -3. Copy the content of the extracted pico-8 folder into `~/retrodeck/bios/pico-8/` - -## MelonDS (Standalone), (NDS) - -MelonDS by default needs those files:
-- `~/retrodeck/bios/bios9.bin`
-- `~/retrodeck/bios/bios7.bin`
-- `~/retrodeck/bios/firmware.bin` - -However there is a setting to disable the need of these files by going to: `Tools` -> `Start MelonDS` -> `Yes` -> `Config` -> `Emu settings` -> `DS-mode` and removing the check on `Use external BIOS/firmware files`. -Please be advised that this operation may prevent the games from running correctly. - -## PCSX2 (PS2) - -There a multitude of PS2 bios for a complete list with the hashes check
-[Gametechwiki](https://emulation.gametechwiki.com/index.php/File_hashes#Known_BIOS_Hashes) - -The PS2 bios could be named in the following ways -
-By bios version: `ps2-0200a-20040614.bin` -
-By system name:`SCPH-70012.bin` - -Put the bios inside the bios folder: `~/retrodeck/bios/SCPH-70012.bin` - -Here is a list of common used bios with `bios versions/system names/hashes`. - -``` -ps2-0200a-20040614 - SCPH-70001/SCPH-70011/SCPH-70012 - d333558cc14561c1fdc334c75d5f37b7 -PS2 US BIOS -ps2-0200e-20040614 - SCPH-70002/SCPH-70003/SCPH-70004/SCPH-70008 - dc752f160044f2ed5fc1f4964db2a095 - PS2 EU BIOS -ps2-0200j-20040614 - SCPH-70000 - 0eee5d1c779aa50e94edd168b4ebf42e - PS2 JP BIOS -``` - -## RPCS3 (PS3) -- Download the [latest PlayStation 3 firmware](https://www.playstation.com/en-us/support/hardware/ps3/system-software/). -- `Tools` -> `RetroDECK Configurator` -> `Change settings` -> `RPCS3` -> `File` -> `Install Firmware`. - -For more information on how to load the games check the [official quickstart guide](https://rpcs3.net/quickstart). \ No newline at end of file diff --git a/wiki-rtd/Emulators:-Diffrent-controller-layouts.md b/wiki-rtd/Emulators:-Diffrent-controller-layouts.md deleted file mode 100644 index 6bce1f64..00000000 --- a/wiki-rtd/Emulators:-Diffrent-controller-layouts.md +++ /dev/null @@ -1,60 +0,0 @@ -# Different controller layouts in games - -## Configurator Switch Y-X and A-B -You can enable a mode that switches the Y-X and A-B buttons for supported Emulators inside the `RetroDECK Configurator`. - -## XBOX layout -Many devices like the `Steam Deck` uses the XBOX layout - -**XBOX button layout:**
- -| Button Placement | Button | -| :--- | :---: | -| Top | `Y` | -| Left | `X` | -| Right | `B` | -| Bottom | `A` | - - -**Example:**
-So if you are emulating a Xbox game that calls for the button `B` to be pressed it corresponds to the right button. - -### Nintendo Layout - -**Nintendo - button layout:**
- -| Button Placement | Button | -| :--- | :---: | -| Top | `X` | -| Left | `Y` | -| Right | `A` | -| Bottom | `B` | - - -**Example:**
-So if you are emulating a Nintendo game that calls for the button `A` to be pressed it corresponds to the right button. - - - -## Sony PlayStation Layout -The Sony PlayStation uses it's icon glyphs to represent it's buttons. - -**Sony PlayStation - button layout:**
-| Button Placement | Button | -| :--- | :---: | -| Top | `Triangle` | -| Left | `Square` | -| Right | `Circle` | -| Bottom | `X` | - -**Example:** - -So if you are emulating a PlayStation game that calls for the button `Square` to be pressed it corresponds to the right button. - -**Regional differences:** - -Depending on the region of your Playstation game, the buttons `Circle` and `X` switches the meaning for confirm and cancel (they are still at the same physical location). But it is good to keep in mind if you are used to exiting out of menus with a certain button and wondering why it works in some games while others not. - -**Example:** - -In the EU/US `X` is confirm while in Japan `X` is cancel. \ No newline at end of file diff --git a/wiki-rtd/Emulators:-Supported-folders-and-files.md b/wiki-rtd/Emulators:-Supported-folders-and-files.md deleted file mode 100644 index 0ec89eee..00000000 --- a/wiki-rtd/Emulators:-Supported-folders-and-files.md +++ /dev/null @@ -1,734 +0,0 @@ -# General information - -**Disclaimer: This list is a work in progress and might contain errors** - -What follows is a list of each systems supported file extensions and the path to the folder where to put the roms. - -**NOTE: Steam Deck**
-For the Steam Deck the `roms` folder location depends on where you choose to install the roms folder during the RetroDECK installation process.
-It's either on the internal storage: `~/retrodeck/roms` or the SDCard: `/retrodeck/roms`
- - -[What does ~ mean?](https://github.com/XargonWan/RetroDECK/wiki/FAQs:-Frequently-asked-questions#i-see--refereed-in-documentation-and-examples-what-does-it-mean) - -# 3DO -- **Roms path:**
~/retrodeck/roms/3do -- **Supported file extensions:**
.iso .ISO .bin .BIN .chd .CHD .cue .CUE .7z .7Z .zip .ZIP - - -# AdvanceMAME -- **Roms path:**
~/retrodeck/roms/mame-advmame -- **Supported file extensions:**
.chd .cue .CUE .CHD .cmd .CMD .fba .FBA .iso .ISO .7z .7Z .zip .ZIP - - -# Adventure Game Studio Game Engine -- **Roms path:**
~/retrodeck/roms/ags -- **Supported file extensions:**
.7z .7Z .zip .ZIP - -# Amstrad - - -## Amstrad CPC -- **Roms path:**
~/retrodeck/roms/amstradcpc -- **Supported file extensions:**
.cdt .CDT .cpr .CPR .dsk .DSK .kcr .KCR .m3u .M3U .sna .SNA .tap .TAR .voc .VOC .7z .7Z .zip .ZIP - - -## Amstrad GX4000 -- **Roms path:**
~/retrodeck/roms/gx4000 -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -# Android (Google) -- **Roms path:**
~/retrodeck/roms/android -- **Supported file extensions:**
.7z .7Z .zip .ZIP - -# Apple - -## Apple II -- **Roms path:**
~/retrodeck/roms/apple2 -- **Supported file extensions:**
.nib .NIB .do .DO .po .PO .dsk .DSK .7z .7Z .zip .ZIP - - -## Apple IIGS -- **Roms path:**
~/retrodeck/roms/apple2gs -- **Supported file extensions:**
.nib .NIB .do .DO .po .PO .dsk .DSK .7z .7Z .zip .ZIP - - -# Arcade -- **Roms path:**
~/retrodeck/roms/arcade -- **Supported file extensions:**
.cmd .CMD .7z .7Z .zip .ZIP - -# Atari - -## Atari 2600 -- **Roms path:**
~/retrodeck/roms/atari2600 -- **Supported file extensions:**
.a26 .A26 .bin .BIN .7z .7Z .zip .ZIP - - -## Atari 5200 -- **Roms path:**
~/retrodeck/roms/atari5200 -- **Supported file extensions:**
.xfd .XFD .atr .ATR .atx .ATX .cdm .CDM .cas .CAS .bin .BIN .a52 .A52 .xex .XEX .7z .7Z .zip .ZIP - - -## Atari 7800 ProSystem -- **Roms path:**
~/retrodeck/roms/atari7800 -- **Supported file extensions:**
.a78 .A78 .bin .BIN .7z .7Z .zip .ZIP - - -## Atari 800 -- **Roms path:**
~/retrodeck/roms/atari800 -- **Supported file extensions:**
.xfd .XFD .atr .ATR .atx .ATX .cdm .CDM .cas .CAS .bin .BIN .a52 .A52 .xex .XEX .rom .ROM .7z .7Z .zip .ZIP - - -## Atari Jaguar -- **Roms path:**
~/retrodeck/roms/atarijaguar -- **Supported file extensions:**
.j64 .J64 .jag .JAG .rom .ROM .abs .ABS .cof .COF .bin .BIN .prg .PRG .7z .7Z .zip .ZIP - - -## Atari Jaguar CD -- **Roms path:**
~/retrodeck/roms/atarijaguarcd -- **Supported file extensions:**
.j64 .J64 .jag .JAG .rom .ROM .abs .ABS .cof .COF .bin .BIN .prg .PRG .7z .7Z .zip .ZIP - - -## Atari Lynx -- **Roms path:**
~/retrodeck/roms/atarilynx -- **Supported file extensions:**
.lnx .LNX .o .O .7z .7Z .zip .ZIP - - -## Atari ST -- **Roms path:**
~/retrodeck/roms/atarist -- **Supported file extensions:**
.st .ST .msa .MSA .stx .STX .dim .DIM .ipf .IPF .m3u .M3U .7z .7Z .zip .ZIP - - -## Atari XE -- **Roms path:**
~/retrodeck/roms/atarixe -- **Supported file extensions:**
.xfd .XFD .atr .ATR .atx .ATX .cdm .CDM .cas .CAS .bin .BIN .a52 .A52 .xex .XEX .7z .7Z .zip .ZIP - - -# Atomiswave -- **Roms path:**
~/retrodeck/roms/atomiswave -- **Supported file extensions:**
.cdi .CDI .iso .ISO .elf .ELF .bin .BIN .cue .CUE .gdi .GDI .lst .LST .dat .DAT .m3u .M3U .7z .7Z .zip .ZIP - - -# Bandai - - -## Bandai SuFami Turbo -- **Roms path:**
~/retrodeck/roms/sufami -- **Supported file extensions:**
.bml .BML .bs .BS .fig .FIG .sfc .SFC .smc .SMC .st .ST .7z .7Z .zip .ZIP - - -## Bandai WonderSwan -- **Roms path:**
~/retrodeck/roms/wonderswan -- **Supported file extensions:**
.ws .WS .pc2 .PC2 .7z .7Z .zip .ZIP - - -## Bandai WonderSwan Color -- **Roms path:**
~/retrodeck/roms/wonderswancolor -- **Supported file extensions:**
.ws .WS .wsc .WSC .pc2 .PC2 .7z .7Z .zip .ZIP - - -# Bally Astrocade -- **Roms path:**
~/retrodeck/roms/astrocde -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -# BBC Micro -- **Roms path:**
~/retrodeck/roms/bbcmicro -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -# Commodore - - -## Commodore Amiga -- **Roms path:**
~/retrodeck/roms/amiga -- **Supported file extensions:**
.adf .ADF .adz .ADZ .dms .DMS .fdi .FDI .ipf .IPF .hdf .HDF .hdz .HDZ .lha .LHA .cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .uae .UAE .m3u .M3U .7z .7Z .zip .ZIP - -## Commodore Amiga 600 -- **Roms path:**
~/retrodeck/roms/amiga600 -- **Supported file extensions:**
.adf .ADF .adz .ADZ .dms .DMS .fdi .FDI .ipf .IPF .hdf .HDF .hdz .HDZ .lha .LHA .cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .uae .UAE .m3u .M3U .7z .7Z .zip .ZIP - - -## Commodore Amiga 1200 -- **Roms path:**
~/retrodeck/roms/amiga1200 -- **Supported file extensions:**
.adf .ADF .adz .ADZ .dms .DMS .fdi .FDI .ipf .IPF .hdf .HDF .hdz .HDZ .lha .LHA .cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .uae .UAE .m3u .M3U .7z .7Z .zip .ZIP - - -## Commodore Amiga CD32 -- **Roms path:**
~/retrodeck/roms/amigacd32 -- **Supported file extensions:**
.adf .ADF .adz .ADZ .dms .DMS .fdi .FDI .ipf .IPF .hdf .HDF .hdz .HDZ .lha .LHA .cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .uae .UAE .m3u .M3U .7z .7Z .zip .ZIP - - -## Commodore 64 -- **Roms path:**
~/retrodeck/roms/c64 -- **Supported file extensions:**
.bin .BIN .cmd .CMD .crt .CRT .d2m .D2M .d4m .D4M .d64 .D64 .d6z .D6Z .d71 .D71 .d7z .D7Z .d80 .D80 .d81 .D81 .d82 .D82 .d8z .D8Z .g41 .G41 .g4z .G4Z .g64 .G64 .g6z .G6Z .gz .GZ .lnx .LNX .m3u .M3U .nbz .NBZ .nib .NIB .p00 .P00 .prg .PRG .t64 .T64 .tap .TAP .vfl .VFL .vsf .VSF .x64 .X64 .x6z .X6Z .7z .7Z .zip .ZIP - - -## Commodore CDTV -- **Roms path:**
~/retrodeck/roms/cdtv -- **Supported file extensions:**
.cue .CUE .ccd .CCD .nrg .NRG .mds .MDS .iso .ISO .m3u .M3U .7z .7Z .zip .ZIP - - -## Commodore VIC-20 -- **Roms path:**
~/retrodeck/roms/vic20 -- **Supported file extensions:**
.bin .BIN .cmd .CMD .crt .CRT .d2m .D2M .d4m .D4M .d64 .D64 .d6z .D6Z .d71 .D71 .d7z .D7Z .d80 .D80 .d81 .D81 .d82 .D82 .d8z .D8Z .g41 .G41 .g4z .G4Z .g64 .G64 .g6z .G6Z .gz .GZ .lnx .LNX .m3u .M3U .nbz .NBZ .nib .NIB .p00 .P00 .prg .PRG .t64 .T64 .tap .TAP .vfl .VFL .vsf .VSF .x64 .X64 .x6z .X6Z .7z .7Z .zip .ZIP - - -# Cave Story (NXEngine) -- **Roms path:**
~/retrodeck/roms/cavestory -- **Supported file extensions:**
.exe .EXE .7z .7Z .zip .ZIP - - -# ChaiLove Game Engine -- **Roms path:**
~/retrodeck/roms/chailove -- **Supported file extensions:**
.chai .CHAI .chailove .CHAILOVE .7z .7Z .zip .ZIP - - -# ColecoVision -- **Roms path:**
~/retrodeck/roms/coleco -- **Supported file extensions:**
.bin .BIN .cas .CAS .col .COL .cv .CV .dsk .DSK .m3u .M3U .mx1 .MX1 .mx2 .MX2 .ri .RI .rom .ROM .sc .SC .sg .SG .7z .7Z .zip .ZIP - - -# Capcom Play System -- **Roms path:**
~/retrodeck/roms/cps -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -# Daphne Arcade LaserDisc Emulator -- **Roms path:**
~/retrodeck/roms/daphne -- **Supported file extensions:**
.daphne .singe - - -# Doom -- **Roms path:**
~/retrodeck/roms/doom -- **Supported file extensions:**
.wad .WAD .iwad .IWAD .pwad .PWAD - - -# DOS (PC) -- **Roms path:**
~/retrodeck/roms/dos -- **Supported file extensions:**
.bat .BAT .com .COM .conf .CONF .cue .CUE .dosz .DOSZ .exe .EXE .iso .ISO .7z .7Z - - -# Dragon 32 -- **Roms path:**
~/retrodeck/roms/dragon32 -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -# Fairchild Channel F -- **Roms path:**
~/retrodeck/roms/channelf -- **Supported file extensions:**
.bin .BIN .chf .CHF .7z .7Z .zip .ZIP - - -# FinalBurn - -## FinalBurn Alpha -- **Roms path:**
~/retrodeck/roms/fba -- **Supported file extensions:**
.iso .ISO .7z .7Z .zip .ZIP - - -## FinalBurn Neo -- **Roms path:**
~/retrodeck/roms/fbneo -- **Supported file extensions:**
.ccd .CCD .cue .CUE .7z .7Z .zip .ZIP - - -# Intellivision - Mattel Electronics -- **Roms path:**
~/retrodeck/roms/intellivision -- **Supported file extensions:**
.int .INT .bin .BIN .rom .ROM .7z .7Z .zip .ZIP - - -# Infocom Z-machine -- **Roms path:**
~/retrodeck/roms/zmachine -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -# Java 2 Micro Edition (J2ME) -- **Roms path:**
~/retrodeck/roms/j2me -- **Supported file extensions:**
.jar .JAR .7z .7Z .zip .ZIP - - -# Lutro Game Engine -- **Roms path:**
~/retrodeck/roms/lutro -- **Supported file extensions:**
.lua .LUA .lutro .LUTRO .7z .7Z .zip .ZIP - - -# Multiple Arcade Machine Emulator (MAME) -- **Roms path:**
~/retrodeck/roms/mame -- **Supported file extensions:**
.cmd .CMD .7z .7Z .zip .ZIP - - -# MAME4ALL -- **Roms path:**
~/retrodeck/roms/mame-mame4all -- **Supported file extensions:**
.chd .cue .CUE .CHD .cmd .CMD .fba .FBA .iso .ISO .7z .7Z .zip .ZIP - - -# Multi Emulator Super System (MESS) -- **Roms path:**
~/retrodeck/roms/mess -- **Supported file extensions:**
.chd .CHD .7z .7Z .zip .ZIP - - -# Moonlight Game Streaming -- **Roms path:**
~/retrodeck/roms/moonlight -- **Supported file extensions:**
.moonlight .MOONLIGHT .7z .7Z .zip .ZIP - - -# MSX - -## MSX -- **Roms path:**
~/retrodeck/roms/msx -- **Supported file extensions:**
.rom .ROM .ri .RI .mx1 .MX1 .mx2 .MX2 .col .COL .dsk .DSK .cas .CAS .sg .SG .sc .SC .m3u .M3U .7z .7Z .zip .ZIP - - -## MSX1 -- **Roms path:**
~/retrodeck/roms/msx1 -- **Supported file extensions:**
.rom .ROM .ri .RI .mx1 .MX1 .mx2 .MX2 .col .COL .dsk .DSK .cas .CAS .sg .SG .sc .SC .m3u .M3U .7z .7Z .zip .ZIP - - -## MSX2 -- **Roms path:**
~/retrodeck/roms/msx2 -- **Supported file extensions:**
.rom .ROM .ri .RI .mx1 .MX1 .mx2 .MX2 .col .COL .dsk .DSK .cas .CAS .sg .SG .sc .SC .m3u .M3U .7z .7Z .zip .ZIP - - -## MSX Turbo R -- **Roms path:**
~/retrodeck/roms/msxturbor -- **Supported file extensions:**
.rom .ROM .ri .RI .mx1 .MX1 .mx2 .MX2 .col .COL .dsk .DSK .cas .CAS .sg .SG .sc .SC .m3u .M3U .7z .7Z .zip .ZIP - -# Microsoft Xbox - -## Microsoft Xbox -- **Roms path:**
~/retrodeck/roms/xbox -- **Supported file extensions:**
.iso .ISO - - -## Microsoft Xbox 360 -- **Roms path:**
~/retrodeck/roms/xbox360 -- **Supported file extensions:**
.iso .ISO .xex .XEX - - -# Othello Multivision -- **Roms path:**
~/retrodeck/roms/multivision -- **Supported file extensions:**
.bin .BIN .gg .GG .rom .ROM .sg .SG .sms .SMS .7z .7Z .zip .ZIP - - -# Nintendo - - -## Nintendo 64 -- **Roms path:**
~/retrodeck/roms/n64 -- **Supported file extensions:**
.n64 .N64 .v64 .V64 .z64 .Z64 .bin .BIN .u1 .U1 .7z .7Z .zip .ZIP - - -## Nintendo 64DD -- **Roms path:**
~/retrodeck/roms/64dd -- **Supported file extensions:**
.n64 .N64 .v64 .V64 .z64 .Z64 .bin .BIN .u1 .U1 .7z .7Z .zip .ZIP - - -## Nintendo 3DS -- **Roms path:**
~/retrodeck/roms/n3ds -- **Supported file extensions:**
.3ds .3DS .3dsx .3DSX .app .APP .axf .AXF .cci .CCI .cxi .CXI .elf .ELF .7z .7Z .zip .ZIP - - -## Nintendo DS -- **Roms path:**
~/retrodeck/roms/nds -- **Supported file extensions:**
.bin .BIN .nds .NDS .7z .7Z .zip .ZIP - - -## Nintendo Entertainment System (NES) -- **Roms path:**
~/retrodeck/roms/nes -- **Supported file extensions:**
.nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP - - -## Nintendo Family Computer (Famicom) -- **Roms path:**
~/retrodeck/roms/famicom -- **Supported file extensions:**
.nes .NES .unf .UNF .unif .UNIF .7z .7Z .zip .ZIP - - -## Nintendo Famicom Disk System -- **Roms path:**
~/retrodeck/roms/fds -- **Supported file extensions:**
.nes .NES .fds .FDS .unf .UNF .UNIF .UNIF .7z .7Z .zip .ZIP - - -## Nintendo Game and Watch -- **Roms path:**
~/retrodeck/roms/gameandwatch -- **Supported file extensions:**
.mgw .MGW .7z .7Z .zip .ZIP - - -## Nintendo Game Boy -- **Roms path:**
~/retrodeck/roms/gb -- **Supported file extensions:**
.bs .BS .cgb .CGB .dmg .DMG .gb .GB .gbc .GBC .sgb .SGB .sfc .SFC .smc .SMC .7z .7Z .zip .ZIP - - -## Nintendo Game Boy Advance -- **Roms path:**
~/retrodeck/roms/gba -- **Supported file extensions:**
.agb .AGB .bin .BIN .cgb .CGB .dmg .DMG .gb .GB .gba .GBA .gbc .GBC .sgb .SGB .7z .7Z .zip .ZIP - - -## Nintendo Game Boy Color -- **Roms path:**
~/retrodeck/roms/gbc -- **Supported file extensions:**
.bs .BS .cgb .CGB .dmg .DMG .gb .GB .gbc .GBC .sgb .SGB .sfc .SFC .smc .SMC .7z .7Z .zip .ZIP - - -## Nintendo GameCube -- **Roms path:**
~/retrodeck/roms/gc -- **Supported file extensions:**
.gcm .GCM .iso .ISO .wbfs .WBFS .wia .WIA .ciso .CISO .gcz .GCZ .elf .ELF .dol .DOL .dff .DFF .rvz .RVZ .tgc .TGC .wad .WAD .m3u .M3U .7z .7Z .zip .ZIP - - -## Nintendo SFC (Super Famicom) -- **Roms path:**
~/retrodeck/roms/sfc -- **Supported file extensions:**
.bin .BIN .bml .BML .bs .BS .bsx .BSX .dx2 .DX2 .fig .FIG .gd3 .GD3 .gd7 .GD7 .mgd .MGD .sfc .SFC .smc .SMC .st .ST .swc .SWC .7z .7Z .zip .ZIP - - -## Nintendo Virtual Boy -- **Roms path:**
~/retrodeck/roms/virtualboy -- **Supported file extensions:**
.vb .VB .vboy .VBOY .bin .BIN .7z .7Z .zip .ZIP - - -## Nintendo SNES (Super Nintendo) -- **Roms path:**
~/retrodeck/roms/snes -- **Supported file extensions:**
.bin .BIN .bml .BML .bs .BS .bsx .BSX .dx2 .DX2 .fig .FIG .gd3 .GD3 .gd7 .GD7 .mgd .MGD .sfc .SFC .smc .SMC .st .ST .swc .SWC .7z .7Z .zip .ZIP - - -## Nintendo Switch -- **Roms path:**
~/retrodeck/roms/switch -- **Supported file extensions:**
.nca .NCA .nro .NRO .nso .NSO .nsp .NSP .xci .XCI .7z .7Z .zip .ZIP - - -## Nintendo Satellaview -- **Roms path:**
~/retrodeck/roms/satellaview -- **Supported file extensions:**
.bml .BML .bs .BS .fig .FIG .sfc .SFC .smc .SMC .swc .SWC .st .ST .7z .7Z .zip .ZIP - - -## Nintendo Pokémon Mini -- **Roms path:**
~/retrodeck/roms/pokemini -- **Supported file extensions:**
.min .MIN .7z .7Z .zip .ZIP - - -## Nintendo Wii -- **Roms path:**
~/retrodeck/roms/wii -- **Supported file extensions:**
.gcm .GCM .iso .ISO .wbfs .WBFS .wia .WIA .ciso .CISO .gcz .GCZ .elf .ELF .dol .DOL .dff .DFF .rvz .RVZ .tgc .TGC .wad .WAD .m3u .M3U .7z .7Z .zip .ZIP - - -## Nintendo Wii U -- **Roms path:**
~/retrodeck/roms/wiiu -- **Supported file extensions:**
.7z .7Z .zip .ZIP - -# SNK - -## SNK Neo Geo -- **Roms path:**
~/retrodeck/roms/neogeo -- **Supported file extensions:**
.chd .CHD .cue .CUE .iso .ISO .7z .7Z .zip .ZIP - - -## SNK Neo Geo CD -- **Roms path:**
~/retrodeck/roms/neogeocd -- **Supported file extensions:**
.chd .CHD .cue .CUE .7z .7Z .zip .ZIP - - -## SNK Neo Geo CD -- **Roms path:**
~/retrodeck/roms/neogeocdjp -- **Supported file extensions:**
.chd .CHD .cue .CUE .7z .7Z .zip .ZIP - - -## SNK Neo Geo Pocket -- **Roms path:**
~/retrodeck/roms/ngp -- **Supported file extensions:**
.ngp .NGP .ngc .NGC .ngpc .NGPC .npc .NPC .7z .7Z .zip .ZIP - - -## SNK Neo Geo Pocket Color -- **Roms path:**
~/retrodeck/roms/ngpc -- **Supported file extensions:**
.ngp .NGP .ngc .NGC .ngpc .NGPC .npc .NPC .7z .7Z .zip .ZIP - - -# Magnavox Odyssey2 -- **Roms path:**
~/retrodeck/roms/odyssey2 -- **Supported file extensions:**
.bin .BIN .7z .7Z .zip .ZIP - - -# OpenBOR Game Engine -- **Roms path:**
~/retrodeck/roms/openbor -- **Supported file extensions:**
.AppImage - -# Tandy - -## Tandy Color Computer -- **Roms path:**
~/retrodeck/roms/coco -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -## Tandy TRS-80 -- **Roms path:**
~/retrodeck/roms/trs-80 -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - - -# Tangerine Computer Systems Oric -- **Roms path:**
~/retrodeck/roms/oric -- **Supported file extensions:**
.dsk .DSK .ort .ORT .tap .TAP .wav .WAV - - -# Palm OS -- **Roms path:**
~/retrodeck/roms/palm -- **Supported file extensions:**
.prc .PRC .pqa .PQA .img .IMG .7z .7Z .zip .ZIP - -# NEC - -## NEC PC-8800 Series -- **Roms path:**
~/retrodeck/roms/pc88 -- **Supported file extensions:**
.d88 .D88 .u88 .U88 .m3u .M3U .7z .7Z .zip .ZIP - - -## NEC PC-9800 Series -- **Roms path:**
~/retrodeck/roms/pc98 -- **Supported file extensions:**
.2hd .2HD .88d .88D .98d .98D .d88 .D88 .d98 .D98 .cmd .CMD .dup .DUP .fdd .FDD .fdi .FDI .hdd .HDD .hdi .HDI .hdm .HDM .hdn .HDN .nhd .NHD .tfd .TFD .thd .THD . xdf .XDF .7z .7Z .zip .ZIP - - -## NEC PC Engine -- **Roms path:**
~/retrodeck/roms/pcengine -- **Supported file extensions:**
.ccd .CCD .chd .CHD .cue .CUE .img .IMG .iso .ISO .m3u .M3U .pce .PCE .sgx .SGX .toc .TOC .7z .7Z .zip .ZIP - - -## NEC PC Engine CD -- **Roms path:**
~/retrodeck/roms/pcenginecd -- **Supported file extensions:**
.ccd .CCD .chd .CHD .cue .CUE .img .IMG .iso .ISO .m3u .M3U .pce .PCE .sgx .SGX .toc .TOC .7z .7Z .zip .ZIP - - -## NEC SuperGrafx -- **Roms path:**
~/retrodeck/roms/supergrafx -- **Supported file extensions:**
.pce .PCE .sgx .SGX .cue .CUE .ccd .CCD .chd .CHD .7z .7Z .zip .ZIP - - -## NEC TurboGrafx-16 -- **Roms path:**
~/retrodeck/roms/tg16 -- **Supported file extensions:**
.ccd .CCD .chd .CHD .cue .CUE .img .IMG .iso .ISO .m3u .M3U .pce .PCE .sgx .SGX .toc .TOC .7z .7Z .zip .ZIP - - -## NEC TurboGrafx-CD -- **Roms path:**
~/retrodeck/roms/tg-cd -- **Supported file extensions:**
.ccd .CCD .chd .CHD .cue .CUE .img .IMG .iso .ISO .m3u .M3U .pce .PCE .sgx .SGX .toc .TOC .7z .7Z .zip .ZIP - - -## NEC PC-FX -- **Roms path:**
~/retrodeck/roms/pcfx -- **Supported file extensions:**
.cue CUE .ccd .CCD .toc .TOC .chd .CHD .7z .7Z .zip .ZIP - - -# Philips - -## Philips CD-i -- **Roms path:**
~/retrodeck/roms/cdimono1 -- **Supported file extensions:**
.chd .CHD .cue .CUE .iso .ISO - -## Philips Videopac G7000 -- **Roms path:**
~/retrodeck/roms/videopac -- **Supported file extensions:**
.bin .BIN .7z .7Z .zip .ZIP - - -# PICO-8 -- **Roms path:**
~/retrodeck/roms/pico8 -- **Supported file extensions:**
.p8 .P8 .png .PNG - - -# Ports -- **Roms path:**
~/retrodeck/roms/ports -- **Supported file extensions:**
.sh - - -# Sony Playstation - - -## Sony PlayStation (PSX) -- **Roms path:**
~/retrodeck/roms/psx -- **Supported file extensions:**
.bin .BIN .cbn .CBN .ccd .CCD .chd .CHD .cue .CUE .ecm .ECM .exe .EXE .img .IMG .iso .ISO .m3u .M3U .mdf .MDF .mds .MDS .pbp .PBP .psexe .PSEXE .psf .PSF .toc .TOC .z .Z .znx .ZNX .7z .7Z .zip .ZIP - - -## Sony PlayStation 2 -- **Roms path:**
~/retrodeck/roms/ps2 -- **Supported file extensions:**
.bin .BIN .chd .CHD .ciso .CISO .cso .CSO .dump .DUMP .elf .ELF .gz .GZ .m3u .M3U .mdf .MDF .img .IMG .iso .ISO .isz .ISZ .ngr .NRG - - -## Sony PlayStation 3 -- **Roms path:**
~/retrodeck/roms/ps3 -- **Supported file extensions:**
.ps3 .PS3 .ps3dir .PS3DIR - - -## Sony PlayStation Portable (PSP) -- **Roms path:**
~/retrodeck/roms/psp -- **Supported file extensions:**
.elf .ELF .iso .ISO .cso .CSO .prx .PRX .pbp .PBP .7z .7Z .zip .ZIP - - -## Sony PlayStation Vita -- **Roms path:**
~/retrodeck/roms/psvita -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -# SAM Coupé -- **Roms path:**
~/retrodeck/roms/samcoupe -- **Supported file extensions:**
.dsk .DSK .mgt .MGT .sbt .SBT .sad .SAD .7z .7Z .zip .ZIP - - -# ScummVM Game Engine -- **Roms path:**
~/retrodeck/roms/scummvm -- **Supported file extensions:**
.scummvm .SCUMMVM .svm .SVM - -# Sega - -## Sega Game Gear -- **Roms path:**
~/retrodeck/roms/gamegear -- **Supported file extensions:**
.68k .68K .bin .BIN .bms .BMS .chd .CHD .col .COL .cue .CUE .gen .GEN .gg .GG .iso .ISO .m3u .M3U .md .MD .mdx .MDX .rom .ROM .sg .SG .sgd .SGD .smd .SMD .sms .SMS .7z .7Z .zip .ZIP - - -## Sega Dreamcast -- **Roms path:**
~/retrodeck/roms/dreamcast -- **Supported file extensions:**
.chd .CHD .cdi .CDI .iso .ISO .elf .ELF .cue .CUE .gdi .GDI .lst .LST .dat .DAT .m3u .M3U .7z .7Z .zip .ZIP - - -## Sega Genesis (Mega Drive) -- **Roms path:**
~/retrodeck/roms/genesis -- **Supported file extensions:**
.68k .68K .bin .BIN .bms .BMS .chd .CHD .cue .CUE .gen .GEN .gg .GG .iso .ISO .m3u .M3U .md .MD .mdx .MDX .sg .SG .sgd .SGD .smd .SMD .sms .SMS .7z .7Z .zip .ZIP - - -## Sega Master System -- **Roms path:**
~/retrodeck/roms/mastersystem -- **Supported file extensions:**
.68k .68K .bin .BIN .bms .BMS .chd .CHD .col .COL .cue .CUE .gen .GEN .gg .GG .iso .ISO .m3u .M3U .md .MD .mdx .MDX .rom .ROM .sg .SG .sgd .SGD .smd .SMD .sms .SMS .7z .7Z .zip .ZIP - - -## Sega Mega-CD -- **Roms path:**
~/retrodeck/roms/megacd -- **Supported file extensions:**
.68k .68K .bin .BIN .bms .BMS .chd .CHD .cue .CUE .gen .GEN .gg .GG .iso .ISO .m3u .M3U .md .MD .mdx .MDX .sg .SG .sgd .SGD .smd .SMD .sms .SMS .7z .7Z .zip .ZIP - - -## Sega Mega Drive -- **Roms path:**
~/retrodeck/roms/megadrive -- **Supported file extensions:**
.68k .68K .bin .BIN .bms .BMS .chd .CHD .cue .CUE .gen .GEN .gg .GG .iso .ISO .m3u .M3U .md .MD .mdx .MDX .sg .SG .sgd .SGD .smd .SMD .sms .SMS .7z .7Z .zip .ZIP - - -## Sega Model 2 -- **Roms path:**
~/retrodeck/roms/model2 -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -## Sega Model 3 -- **Roms path:**
~/retrodeck/roms/model3 -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - - -## Sega NAOMI -- **Roms path:**
~/retrodeck/roms/naomi -- **Supported file extensions:**
.cdi .CDI .iso .ISO .elf .ELF .bin .BIN .cue .CUE .gdi .GDI .lst .LST .dat .DAT .m3u .M3U .7z .7Z .zip .ZIP - - -## Sega NAOMI GD-ROM -- **Roms path:**
~/retrodeck/roms/naomigd -- **Supported file extensions:**
.cdi .CDI .iso .ISO .elf .ELF .bin .BIN .cue .CUE .gdi .GDI .lst .LST .dat .DAT .m3u .M3U .7z .7Z .zip .ZIP - - -## Sega Saturn -- **Roms path:**
~/retrodeck/roms/saturn -- **Supported file extensions:**
.bin .BIN .ccd .CCD .chd .CHD .cue .CUE .iso .ISO .mds .MDS .toc .TOC .m3u .M3U .7z .7Z .zip .ZIP - - -## Sega Mega Drive 32X -- **Roms path:**
~/retrodeck/roms/sega32x -- **Supported file extensions:**
.bin .BIN .gen .GEN .smd .SMD .md .MD .32x .32X .cue .CUE .iso .ISO .sms .SMS .68k .68K .7z .7Z .zip .ZIP - - -## Sega Super 32X -- **Roms path:**
~/retrodeck/roms/sega32xjp -- **Supported file extensions:**
.bin .BIN .gen .GEN .smd .SMD .md .MD .32x .32X .cue .CUE .iso .ISO .sms .SMS .68k .68K .7z .7Z .zip .ZIP - - -## Sega Genesis 32X -- **Roms path:**
~/retrodeck/roms/sega32xna -- **Supported file extensions:**
.bin .BIN .gen .GEN .smd .SMD .md .MD .32x .32X .cue .CUE .iso .ISO .sms .SMS .68k .68K .7z .7Z .zip .ZIP - - -## Sega SG-1000 -- **Roms path:**
~/retrodeck/roms/sg-1000 -- **Supported file extensions:**
.68k .68K .bin .BIN .bms .BMS .chd .CHD .cue .CUE .gen .GEN .gg .GG .iso .ISO .m3u .M3U .md .MD .mdx .MDX .ri .RI .rom .ROM .sg .SG .sgd .SGD .smd .SMD .sms .SMS .7z .7Z .zip .ZIP - - -## Sega CD -- **Roms path:**
~/retrodeck/roms/segacd -- **Supported file extensions:**
.68k .68K .bin .BIN .bms .BMS .chd .CHD .cue .CUE .gen .GEN .gg .GG .iso .ISO .m3u .M3U .md .MD .mdx .MDX .sg .SG .sgd .SGD .smd .SMD .sms .SMS .7z .7Z .zip .ZIP - - -# Sharp - -## Sharp X1 -- **Roms path:**
~/retrodeck/roms/x1 -- **Supported file extensions:**
.dx1 .DX1 .2d .2D .2hd .2HD .tfd .TFD .d88 .D88 .88d .88D .hdm .HDM .xdf .XDF .dup .DUP .tap .TAP .cmd .CMD .7z .7Z .zip .ZIP - - -## Sharp X68000 -- **Roms path:**
~/retrodeck/roms/x68000 -- **Supported file extensions:**
.dim .DIM .img .IMG .d88 .D88 .88d .88D .hdm .HDM .dup .DUP .2hd .2HD .xdf .XDF .hdf .HDF .cmd .CMD .m3u .M3U .7z .7Z .zip .ZIP - - -# Sinclair - -## Sinclair ZX81 -- **Roms path:**
~/retrodeck/roms/zx81 -- **Supported file extensions:**
.tzx .TZX .p .P .7z .7Z .zip .ZIP - - -## Sinclair ZX Spectrum -- **Roms path:**
~/retrodeck/roms/zxspectrum -- **Supported file extensions:**
.tzx .TZX .tap .TAP .z80 .Z80 .rzx .RZX .scl .SCL .trd .TRD .sh .SH .sna .SNA .szx .SZX .udi .UDI .mgt .MGT .img .IMG .dsk .DSK .gz .GZ .7z .7Z .zip .ZIP - - -# Solarus Game Engine -- **Roms path:**
~/retrodeck/roms/solarus -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -# Spectravideo -- **Roms path:**
~/retrodeck/roms/spectravideo -- **Supported file extensions:**
.rom .ROM .ri .RI .mx1 .MX1 .mx2 .MX2 .col .COL .dsk .DSK .cas .CAS .sg .SG .sc .SC .m3u .M3U .7z .7Z .zip .ZIP - - -# Stratagus Game Engine -- **Roms path:**
~/retrodeck/roms/stratagus -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -# Symbian -- **Roms path:**
~/retrodeck/roms/symbian -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -# Tano Dragon -- **Roms path:**
~/retrodeck/roms/tanodragon -- **Supported file extensions:**
.7z .7Z .zip .ZIP - - -# Texas Instruments TI-99 -- **Roms path:**
~/retrodeck/roms/ti99 -- **Supported file extensions:**
.rpk .RPK .7z .7Z .zip .ZIP - - - -# TIC-80 Game Engine -- **Roms path:**
~/retrodeck/roms/tic80 -- **Supported file extensions:**
.7z .7Z .zip .ZIP - -# Thomson - -## Thomson TO8 -- **Roms path:**
~/retrodeck/roms/to8 -- **Supported file extensions:**
.fd .FD .sap .SAP .k7 .K7 .m7 .M7 .m5 .M5 .rom .ROM .7z .7Z .zip .ZIP - - -## Thomson MO/TO Series -- **Roms path:**
~/retrodeck/roms/moto -- **Supported file extensions:**
.fd .FD .sap .SAP .k7 .K7 .m7 .M7 .m5 .M5 .rom .ROM .7z .7Z .zip .ZIP - - -# Uzebox -- **Roms path:**
~/retrodeck/roms/uzebox -- **Supported file extensions:**
.uze .UZE .7z .7Z .zip .ZIP - - -# Vectrex -- **Roms path:**
~/retrodeck/roms/vectrex -- **Supported file extensions:**
.bin .BIN .vec .VEC .gam .GAM .vc .VC .7z .7Z .zip .ZIP diff --git a/wiki-rtd/Emulators:-What's-included?.md b/wiki-rtd/Emulators:-What's-included?.md deleted file mode 100644 index c8bb4b49..00000000 --- a/wiki-rtd/Emulators:-What's-included?.md +++ /dev/null @@ -1,23 +0,0 @@ -# General information -The goal is to add more emulators and functions over course of the development cycle. - -What follows is a list of all the emulators currently included in RetroDECK: - -# RetroArch -RetroDECK ships will all cores under the stable branch of RetroArch. - -# Standalone Emulators -The following standalone emulators are included - -## Yuzu (Switch) -## Citra (3DS) -## PCSX2 (PS2) -## Cemu (WiiU) -As of 0.7b -## Dolphin (GameCube/Wii) -## Primehack (Metroid Prime - Dolphin Fork) -As of 0.6b -## Xemu (XBOX) -## MelondDS (DS) -## RPCS3 (PS3) -## PPSSPP (PSP) \ No newline at end of file diff --git a/wiki-rtd/FAQs:-Frequently-asked-questions.md b/wiki-rtd/FAQs:-Frequently-asked-questions.md deleted file mode 100644 index 845435c1..00000000 --- a/wiki-rtd/FAQs:-Frequently-asked-questions.md +++ /dev/null @@ -1,503 +0,0 @@ -# General questions: - -## What is the scope of this project? -
Click here to see the answer - -Read the "Whats the long term vision and goals" on the Home page of this wiki. - -
- -## Do you include any games, firmware or BIOS? -
Click here to see the answer -No, this can never be done for legal reasons. - -
- -### Can you at least point me towards where I can get them? -
Click here to see the answer -Again...no, this can never be done for legal reasons. - -
- -## Why are games call ROMs? -
Click here to see the answer - -ROM stands for "Read Only Memory" and was a common method to store games.
-The games where later dumped from their ROM chips into digitalized files that can be played with an emulator.
-Read more on [wikipedia](https://en.wikipedia.org/wiki/Read-only_memory) - -
- -## What is sudo? -
Click here to see the answer -The command stands for "superuser do" and in the windows world it is called "run as administrator". -Su in "sudo" refers to the "superuser" or in the windows called the "administrator". - -
- -## Retrodeck is a flatpak, what is it? - -
Click here to see the answer - -A flatpak is generated from a manifest, our manifest is this: https://github.com/XargonWan/RetroDECK/blob/main/net.retrodeck.retrodeck.yml -There is a software named flatpak-builder that is reading that manifest and downloads and builds everything that is needed.
- -This is creating the RetroDECK.flatpak file that can be distributed as a file or be included in the official Flathub repository accessible from Discovery.
- -[Flaptak](https://docs.flatpak.org/en/latest/introduction.html) is like a sandbox, with its own read only filesystem that is different from your computer's filesystem, that's why flatpak is safer than installing something directly in your filesystem, moreover it persists after any SteamOS update. - -
- -## What is RetroDECK cooker? -
Click here to see the answer - - Cooker is a bleeding edge snapshot of the current commits, the action of uploading code to GitHub is called commit.
-As you can understand, the code may not be always reviewed and so the cooker it's unstable by its nature, it's just suggested to testers or developer to try bleeding edge function or to contribute.
- -More info on the pinned post in #💙-i-want-to-help on our [Discord Server](discord.gg/Dz3szYsP8g). -I don't support the cooker user side. - -
- -### Why the name cooker? 🍲 -
Click here to see the answer - -That's what cooking in the pot at this moment and not yet ready to be served (released).
This name was also used by Linux Mandrake and Mandriva for the bleeding edge channel. - -
- -# Updates, feature requests and more devices/OS questions: - -## Will you support the general Linux desktop and not only the Steam Deck? -
Click here to see the answer - -Technically it is working, but the user experience might not be that great it could contain desktop specific bugs and other issues. -You will also need to manually configure the input to match your desktop and might need to tweak more settings. If you want to try it make sure that your distribution has native flatpak support else, you might need to install it. -We will start to tackle desktop bugs and have a bigger desktop focus after the beta period is over. - -
- -## Will you support other SteamOS or Linux handheld gaming devices with flatpak support? -
Click here to see the answer - - -We do plan to support other SteamOS based devices in the future. But during the BETA we are focusing on the Steam Deck. -You can get it to run on other Linux based devices it is not just as seamless as we want it to be and does not live up to our higher standards. -You will need to manually configure the input to match your device and might need to tweak more settings if you try it on a none Steam Deck device. There might also be some hardware specific bugs. -
- - -## Will you support Windows or Windows based devices like the ROG Ally? -
Click here to see the answer -No, RetroDECK doesn't support Windows, but the project is fully open source so you can port it if you wish. -As an alternative you could try https://www.retrobat.ovh/ that offers similar functionality. -
- -## Will you support MacOS? -
Click here to see the answer -Not supported and not planned. -
- -## Will you support Android/IOS? -
Click here to see the answer -Not supported and not planned. -
- - -## Will you implement X/Y/Z emulator? -
Click here to see the answer - -Our goal is to implement and configure a selection of the best emulators for each system. If your favorite system is not integrated you can request its integration by opening an issue on this github page. - -
- -## Will you implement none emulator software inside of RetroDECK like Batocera? -
Click here to see the answer - -Nothing in the short term but maybe in the future. It also need to fit inside the scope of project for example: GZDoom would be ok. But another project like a multimedia center solution like Kodi would not fit. - -
- -## When does the next version of RetroDECK come out? -
Click here to see the answer -> When it's ready. - -
- -### When does the version after the upcoming version come out? -
Click here to see the answer - -After the upcoming version.
- -### When does the version 1.0 of RetroDECK come out? -
Click here to see the answer - -Some time in the future. - -
- -# Documentation questions - -## I see ~ refereed in documentation and examples, what does it mean? -
Click here to see the answer - -The tilde character ~ is the a short way of saying the logged in users home directory in the UNIX world.
- -So for example the Steam Deck
- -`~ = /home/deck`
- -Read more on [Wikipedia](https://en.wikipedia.org/wiki/Home_directory)
- -## I see SA refereed in documentation about emulators what does it mean? -
Click here to see the answer - -SA means Standalone and the emulator is not inside RetroArch/LibRetro but a separate program launched within RetroDECK.
- -## I see CLI refereed in documentation what does it mean? -
Click here to see the answer -CLI stands for command-line interface and is often refereed commands you can run in the the Linux Terminal
- - - -# Other Emulation Solutions questions: - -## Are you related to EmuDeck? -
Click here to see the answer - -No, the two projects are not related. - -
- -### So what's the difference between RetroDECK and EmuDeck? -
Click here to see the answer - -Apart of that from the user point of view EmuDeck and RetroDECK may sound similar but technically they're completely different. - -EmuDeck is a shell script that you run in the Steam Decks desktop mode that downloads and configures all the separate emulators & plugins for you from various sources using a built in electron based gui. - -RetroDECK is an all-in-one application contained in a sandboxed environment called "flatpak", that is downloaded from Discover (Flathub). This is Valves and other Linux desktops recommended way of distributing applications on the Steam Deck and Linux desktop in a safe way. It grantees for example even if Valve makes major changes to the file system in a SteamOS update, RetroDECK and it’s configurations will not be touched and will be safe. - -RetroDECK only writes in these two folders: `~/retrodeck` for roms/configurations/bios etc.. And an hidden flatpak folder located in `~/.var/net.retrodeck.retrodeck`. - -As everything is contained within those two folders it will not have conflict if you decide to install an emulator from another source like Yuzu or RetroArch with your RetroDECK setup. Even if you uninstall RetroDECK all your roms/bios/saves/etc.. are safe until you remove the `~/retrodeck` folder. So if you for some reason don't like the application after playing for a while you can easily move out your important files after an uninstall (or you can just reinstall RetroDECK again and start where you left off). - -This approach of everything is in a all-in-one package will also allow RetroDECK to do tighter integrations with each bundled emulator in the future and expose all those settings when you are inside RetroDECK, so you do not need to go into Steam Decks desktop mode to do changes and tweaks. All things should be, in the long term, inside the application itself and you can already see a part of that inside the RetroDECK Configurator in the Tools menu. - -
- -### Can I install RetroDECK if I have EmuDeck already? -
Click here to see the answer - -Yes, as RetroDECK is completely standalone. - -
- -## Are you related anyway to Batocera? -
Click here to see the answer -No, but RetroDECK had some dialog before the project started with some of the Batocera crew if there where any plans to start a Batocera non-OS application (there where no plans at that moment and their focus is to make the best retro gaming operative system). RetroDECK and Batocera also have good dialog together with representatives of each projects inside the internal development channels. - -
- - -## Batocera or EmuDeck or RetroDECK I still don't get it? -
Click here to see the answer - -- Batocera is a retro emulation operative system that you need to boot into separately (like from an SDCard) or replace your current OS.
For the Steam Deck you lose access to the SteamOS features and your emulation gaming is separate from your SteamOS gamemode gaming. That said; Batocera has many years of development time, is a great mature OS with a lot of features. - -- EmuDeck is a shell script that you download and run. The script downloads & configures all the separate emulators & plugins for you from various sources for various operative systems. - -- RetroDECK is an all-in-one application that already provides everything you need without to many extra steps for the user.It is on flathub and thus allows the users to update the application via standard safe operative system update methods. -You can see RetroDECK as the in between of EmuDeck and Batocera. We hope that one day we can offer a complete Batocera-like experience right inside your operative system. - -
- -## What is your relationship with EmulationStation Desktop Edition (ES-DE)?
-
Click here to see the answer - -ES-DE and RetroDECK are separate projects, but we collaborate to give the best possible user experience.
-We have a unique partnership where inside the ES-DE code is a section just for RetroDECK specific features.
-[Read more on ES-DE FAQs](https://gitlab.com/es-de/emulationstation-de/-/blob/master/FAQ.md#what-is-the-relationship-between-es-de-and-retrodeck) - -
- -# RetroDECK usage questions: - -## Can I launch RetroDECK from inside of the Steam Decks gamemode? -
Click here to see the answer -Yes, RetroDECK currently only supports Steam Deck's gamemode as it relies on Steam Controller configs.
-To add it into Steam please check the second step of [[Steam Deck: Installation and updates]]. - -
- - -## Do I have to partition or format my disk/sdcard to install RetroDECK? - -
Click here to see the answer - -No, partitioning or formatting is not needed at all. RetroDECK (differently from AmberELEC, Batocera and others) comes as a flatpak. Just install it as any other application and launch it from your desktop and/or Steam library. -
- - -## Can I move the ROMs folder to another place? -
Click here to see the answer - -Yes, you can do so inside the configurator and the `Move RetroDECK` option. - -
- -## Is there a way to reset RetroDECK? -
Click here to see the answer - -Yes, you can reset various parts of the software using the RetroDECK configurator under the option reset
- -Or you can use CLI arguments in the terminal. - -Resets the whole RetroDECK at factory defaults: -```bash -flatpak run net.retrodeck.retrodeck --reset-all -``` -Resets RetroArch configs at factory defaults: -```bash -flatpak run net.retrodeck.retrodeck --reset-ra -``` -Resets all the standalone emulators configs at factory defaults: -```bash -flatpak run net.retrodeck.retrodeck --reset-sa -``` -
- - -## How do I uninstall RetroDECK? -
Click here to see the answer - -**On the Steam Deck:**
- -Put the Steam Deck into Desktop Mode `Steam button` > `Power` > `Switch to Desktop`
- -* Go into Discover -* Press the `Installed` tab and find RetroDECK -* Press the `Uninstall` button -* Manually backup then remove the ~\RetroDECK folder. Warning! Make a backup your data roms/bios/saves etc if you want to save them else they will be gone. - -
- - -## Does uninstalling RetroDECK remove my roms, bios and saves? -
Click here to see the answer -No, as long as you don't manually don't delete the ~\RetroDECK folder and it's content your data is safe. You could uninstall RetroDECK and install it again and keep going. - -
- - -## Where can I find the logfiles? -
Click here to see the answer -> In `~/retrodeck/logs/retrodeck.log` - -
- -## Can I add a single game to my Steam Library or with Steam Rom Manager? -
Click here to see the answer - -Not yet but might be in the future, it is technical possible but quite complicated and needs to be done via launch script. We hope we can simplify this in the future via an API call or inside the Configurator. - -Example of a launch script to launch to launch a Wii game called Baloon World: - -`flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -e "/run/media/mmcblk0p1/retrodeck/roms/wii/Baloon World.rvz" -b ` - -
- -## If I installed RetroDECK from outside of discover, do I need to uninstall the application to update? -
Click here to see the answer -If you previously installed from outside of Discover, you can find the instructions here to - -[install from discover](https://github.com/XargonWan/RetroDECK/wiki/Steam-Deck:-Installation-and-updates) - -or here - -[to install .flatpak file](https://github.com/XargonWan/RetroDECK/wiki/Developer-notes#managing-retrodeck-flatpak-file).
- -## After installing RetroDECK manually, Discover is not opening or giving me some errors? -
Click here to see the answer - -This bug is appearing only when installing RetroDECK manually and not from Discover. The discover release is suggested for all the users. -However you can run this to fix it: `flatpak remote-delete retrodeck-origin` - -
- - -# General emulation & games questions: - -## What emulators and software is included in RetroDECK? -
Click here to see the answer - -You can check this wiki what emulators are currently bundled. We plan to have support for most of the emulators ES-DE support in the long term. - -
- -## How can I set another default emulator? - -
Click here to see the answer - -The ES-DE interface allows you to change emulators for systems that has many different emulators. In the main menu go to `Other Settings` - `Alternative Emulators` to set other defaults. -
- - -## Game X/Y/Z is not working or showing black screen -
Click here to see the answer - -Some emulators needs BIOS and/or firmware files, first you can check if you got the [needed ones](https://github.com/XargonWan/RetroDECK/wiki/BIOS-&-Firmware).
- -Then you can check if your got a bad dump by comparing your hash with the ones of the official lists on the internet, such as [no-intro](https://datomatic.no-intro.org/index.php?page=search&s=64) or even [RetroAchievements](https://retroachievements.org) if your game is supported.
-Moreover please mind that some emulator require very specific roms, please [read here](https://github.com/XargonWan/RetroDECK/wiki/How-to:-Manage-your-games#special-roms-formats). -If it still not working you are welcome to ask for support on our [Discord Server](discord.gg/Dz3szYsP8g). - -
- -## PS2 games are not working or buggy in the RetroArch Core. -
Click here to see the answer - -It's a known issue with if you are using the libretro core but you can use the the standalone pcsx2 emulator to solve this issue.
-Be sure to check that the bios files are in the correct folder. Read more on the [Emulators: BIOS and Firmware](https://github.com/XargonWan/RetroDECK/wiki/Emulators%3A-BIOS-and-Firmware)# page on this wiki. - -
- -## I configured RetroArch but the configuration was not saved. -
Click here to see the answer - -Configuring RetroArch can be dangerous for an inexperienced user, so RetroDECK is set to don't save the RetroArch configuration upon exiting.
-The configuration must be saved willingly by going to: `Main Menu` -> `Configuration File` -> `Save Current Configuration`.
-If you find some better configurations however, you may contribute by sharing it on the #💙-i-want-to-help channel on our [Discord Server](discord.gg/Dz3szYsP8g) that may be included in the next version. - -
- -## Will you support Lightguns (Sinden, Gun4IR, Samco etc...)? -
Click here to see the answer - -The long term answer is yes, but there are several issues that need to be addressed from various dependencies that are beyond the scope of what RetroDECK can do by it self. We are talking to several projects and hope to have those issues addressed in the future. Right now the best way to use lightgun hardware is to use Batocera as they have developed native support in their OS. - -
- -# Steam Deck emulation questions: - -## XBOX games are slow on the Steam Deck -
Click here to see the answer - -Unfortunately on thanks to missing optimizations focusing on the Steam Deck and the hardware is limited in scope makes performance not great. Like most emulators they will get improvements over time and we will follow the XBOX emulators progress with great interest. - -
- -## The games are stuck at 30FPS on the Steam Deck! -
Click here to see the answer - -Press the [...] button on the Steam Deck, go into the Power menu and see if the Framerate Limit is set to 30FPS and set it to 60FPS or off. - -
- -## Fast forwarding is slow on the Steam Deck! -
Click here to see the answer - -Same as above: Check the Power menu Framerate Limit. - -
- - -# Theme questions: - -## How can I add more themes? -
Click here to see the answer -In the future we wish to include a themes browser and downloader, but for the moment you can put your own themes here:
-~/retrodeck/themes - -
- -## How do you switch between themes inside of RetroDECK? -
Click here to see the answer - -**On the Steam Deck:**
-you can switch between them by pressing the `☰` button to open the menu and then navigate to `UI Settings > Theme Set` to select the theme you want to use. - -
- -## "Why does the theme I am using not work?" or "Why does the layout look broken?" (black screen with blue text)? -
Click here to see the answer - -* Please make sure you are specifically using a theme that is compatible with [ES-DE](https://www.es-de.org).
- -* If you are trying to use a theme that was built for Batocera it will likely not be compatible.
- -* ES-DE uses a unique theme engine so themes are not directly portable from Batocera.
- -* Please see ES-DE's [User Guide](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#themes) for more details. - -
- - -## Why does the theme layout look squished? -
Click here to see the answer - -* The Steam Deck has a screen aspect ratio of `16:10` and most themes that you will find are built for an aspect ratio of `16:9`. Depending on the theme's design this may cause the layout to appear squished when using it on the Steam Deck's display.
- -* All of the included themes are built for 16:10 aspect ratio so you should not see this issue with any of them; however if you are downloading a theme from another source there is a chance this can occur for you.
- -* There are 2 ways to fix this if it does occur: (1) see if a specific version was built for `16:10` aspect ratio and use that instead or (2) edit the theme to make it compatible with that aspect ratio. - -
- -# Scraping questions - -## Can I manually add custom game images/videos/media for games that I can not scrape? -
Click here to see the answer -Yes, check the file structure over at Emulationstation DE's user guide on gitlab.
- -## [Manually copying game media files](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#manually-copying-game-media-files) - -
- -## Where is my scraped data? -
Click here to see the answer -In `~/retrodeck/downloaded_media` - -
- - -## I got some weird error message about quota after scraping! -
Click here to see the answer - -The error message mentions something about quota. You have a quota limit on how much you can scrape each day from [Screenscraper.fr ](https://www.screenscraper.fr/) where each item you scrape counts as 1 quota of the daily total.
-You can pay them to get a bit more daily quota and show your support or just wait 24 hours.
-
- -## I got some weird error message about about server or service! -
Click here to see the answer - -The website is down, check [Screenscraper.fr](https://www.screenscraper.fr/) when they get back up. - -
- -## The scraping is too slow! -
Click here to see the answer - -[Screenscraper.fr](https://www.screenscraper.fr/) offers different types of donations that can increase your speed with extra threads. - -
- -## My systems storage ran out after scraping! -
Click here to see the answer - -Images and videos takes a lot of space, you can clean some out under `~/retrodeck/downloaded_media` - -
- -### But I still want them! -
Click here to see the answer - -Delete something else or buy more storage. -
- -## Can I move the downloaded_media folder? -
Click here to see the answer - -You can move it with the the move RetroDECK option inside the configurator. - -
diff --git a/wiki-rtd/How-can-I-help-with-testing?.md b/wiki-rtd/How-can-I-help-with-testing?.md deleted file mode 100644 index 5127d9e5..00000000 --- a/wiki-rtd/How-can-I-help-with-testing?.md +++ /dev/null @@ -1,73 +0,0 @@ -# About testing - -There are two ways help us to test features in RetroDECK.
-The first one is our bleeding edge `RetroDECK Cooker` channel.
-The second one is the `Experimental Features` inside the stable version inside the `Developer Options Menu`. - -## 🛑 Warning! Backup before testing! 🛑 -These builds and features can make you loose all data including `ROMS`, `BIOS` and `Scraped Data` etc..
-We **recommend** that you don't run any experimental features or cooker builds on your main gaming machine. - -## 🛑 Warning! Expect bugs and issues! 🛑 -These builds and experimental features can contain several bugs and be unstable. - -## How do I take a backup? - -Backup your `/retrodeck/` and it's content and `/.var/app/net.retrodeck.retrodeck/`. -You could copy the entire folders to a secure location or for a quick test you could just rename both of the folders into something else. -Then RetroDECK will think it's a fresh install. - -Example of renaming:
-`OLDnet.retrodeck.retrodeck/`
-`OLDretrodeck/` - -## Can I help you with testing? -Yes, do the backups above and tell in Discord channel `i-want-to-help` that you are interested in testing out `RetroDECK Cooker` builds or want to give feedback on `Experimental Features`. -You will get some instructions from one of the mods and be promoted to a `BetaTester` role. - -# What is RetroDECK Cooker? -[RetroDECK Cooker](https://github.com/XargonWan/RetroDECK-cooker) are the bleeding edge development builds of [RetroDECK](https://github.com/XargonWan/RetroDECK). These builds are only for development and testing purposes. - -## How do I install cooker builds -You can download the latest `.flatpak` releases from the above link and install them via CLI or from the desktop. - -**NOTE:** -* You need to have set up a sudo password if you want to test on a Steam Deck. -* If you have `RetroDECK` the stable release on your system `RetroDECK-Cooker` will be installed separately since it is a different branch. We do not recommend running cooker on a system where you have a running `RetroDECK` stable. - -### Desktop: - -You should just be able to double click on the .`flatpak` file and what ever application manager/installer (like Discover) you have installed should be able to install it. If that does not work use the CLI method. - -### CLI: - -Run the following command from where you have downloaded the `.flatpak` file.
-`flatpak install RetroDECK.flatpak` - - -## How do I uninstall RetroDECK Cooker? - -### Desktop: -Just go into your application manager/installer (like Discover), find RetroDECK and press uninstall. - - -### CLI: - -Run the following command:
-`flatpak remove RetroDECK` - - -### Why does the cooker release have strange names? -The names are randomly generated to make it easy to see what build you are running. - -# What are RetroDECK experimental features? -Experimental features are a showcase of what proof-of-concepts we are trying out or working on that you can try out even on stable releases and we would like feedback on them. All these features are just conceptual and we hope them release ready in an later major update or scrap them if the don't work out. -Standard backup procedures apply as written above. - -## How do I enable them? - -From CLI run: - -`flatpak run net.retrodeck.retrodeck uuddlrlrstart` - -The `Developer Options Menu` should show up inside the Configurator. diff --git a/wiki-rtd/How-to:-Getting-started.md b/wiki-rtd/How-to:-Getting-started.md deleted file mode 100644 index 53d8a527..00000000 --- a/wiki-rtd/How-to:-Getting-started.md +++ /dev/null @@ -1,104 +0,0 @@ -# Getting started - -This is a guide on how to get started with RetroDECK - -# Step 0: Prerequisites - -## What do I need? -You need to meet the following prerequisites before you start following this guide: - -* You need to have a device to install RetroDECK on (we currently only support the Steam Deck). -* Read up on the FAQs pages:
-[Do you include any games, firmware or BIOS?](https://github.com/XargonWan/RetroDECK/wiki/FAQs:-Frequently-asked-questions#do-you-include-any-games-firmware-or-bios)
-[Where can I get them?](https://github.com/XargonWan/RetroDECK/wiki/FAQs:-Frequently-asked-questions#can-you-at-least-point-me-towards-where-i-can-get-them)
-[What does ~ mean?](https://github.com/XargonWan/RetroDECK/wiki/FAQs:-Frequently-asked-questions#i-see--refereed-in-documentation-and-examples-what-does-it-mean) -* Have related BIOS & Firmware ready -* Have backup rom files of the games you want to play ready - -# Step 1: Installation & Configuration -Only install RetroDECK from the official channels via flathub! - -## Steam Deck - Installation
-Read and follow the: - -* [Installation guide for the Steam Deck](https://github.com/XargonWan/RetroDECK/wiki/Steam-Deck:-Installation-and-updates)
- -## Linux Desktop - Installation
- -(more information later) - - -## Other SteamOS devices - Installation
- -(more information later) - -# Step 2: BIOS & Firmware - -**NOTE:** On the Steam Deck this step needs to be done in Desktop Mode - -## Information -Read up on [BIOS & Firmware](https://github.com/XargonWan/RetroDECK/wiki/BIOS-and-Firmware) - -* The BIOS & Firmware files go into the `~/retrodeck/bios/` directory
- - -**Example:**
-You have a BIOS for the PSX called `exampleBIOSPSX.bin`, you just put that file into the `~/retrodeck/bios/` folder. - -# Step 3: ROMs - -**NOTE:** On the Steam Deck this step needs to be done in Desktop Mode - -## On ROMs - -Rom files needs to be put in their corresponding system directory inside the `roms` folder.
-Note that the `roms` folder location can be different depending on where you choose to put it during the installation process. The following options are available during the installation: - -### **Choice: Internal**
-If during the installation of RetroDECK you choose the Internal option for the roms folder:
-The roms folder is:`~/retrodeck/roms/` - -### **Choice: SDCard**
-If during the installation of RetroDECK you choose the SDCard option for the roms folder:
-The roms folder is: `/retrodeck/roms/`
- -(Please note that the `` is an example and not called so inside your Linux/SteamOS system but rather your unique per SDCard ID number).
- - -## Let's get started on ROMs: - -Read up on [Emulators: Folders & File extensions](https://github.com/XargonWan/RetroDECK/wiki/Emulators:-Folders-&-File-extensions) to see what folder each system has. -* Put the corresponding roms inside the corresponding system folder - -**Example:**
-You have an example NES game called `ExampleNESGame.nes`
-You have to put that game into the `/retrodeck/roms/nes` folder. - -# Step 4: Playing the ROMs - -## Steam Deck - Gamemode -Return to gamemode on the Steam Deck and start up RetroDECK. Now the systems you put rom files for should be shown and be able to be played. - -**Example:**
-The NES column should now be shown with our `ExampleNESGame.nes` from `Step 3` - -# Step 5: Making the games "pretty" with videos, images and art. - -Do the following: -1. Make an account on https://www.screenscraper.fr/ -2. Read up on scraping on the [ES-DE Guide](https://github.com/XargonWan/RetroDECK/wiki/EmulationStation-DE:-User-Guide#scraping-and-editing-roms-metadata-images-etc) -3. Login to your screenscraper account inside RetroDECK and start scraping. -4. Look at your nice pretty games. - -Also read: -* [I got some weird error message about quota after scraping in a foreign language from screenscraper.fr](https://github.com/XargonWan/RetroDECK/wiki/FAQs:-Frequently-asked-questions#i-got-some-weird-error-message-about-quota-after-scraping-in-a-foreign-language-from-screenscraperfr) -* [My system storage ran out after scraping!](https://github.com/XargonWan/RetroDECK/wiki/FAQs:-Frequently-asked-questions#my-system-storage-ran-out-after-scraping) - -# Step 6: Themes -RetroDECK comes with several themes built in for the ES-DE interface. - -## How to switch between themes? -* On the Steam Deck: you can switch between them by pressing the `☰` button to open the menu and then navigate to `UI Settings > Theme Set` to select the theme you want to use. - -## How to add more themes? -[More information on themes and how to add more](https://github.com/XargonWan/RetroDECK/wiki/EmulationStation-DE:-Themes) diff --git a/wiki-rtd/How-to:-Manage-your-games.md b/wiki-rtd/How-to:-Manage-your-games.md deleted file mode 100644 index cbf01c24..00000000 --- a/wiki-rtd/How-to:-Manage-your-games.md +++ /dev/null @@ -1,84 +0,0 @@ -# Supported extensions -In order to check which file extensions are supported check the page [Emulators: Folders & File extensions](https://github.com/XargonWan/RetroDECK/wiki/Emulators:-Folders-&-File-extensions) - -## Special ROMs formats -Some emulators are working only with specific rips, here is what I gather. - -**XEMU**: you must use iso files called xiso (the extensions are usually `.xiso.iso` or `.iso` only)
- -**NDS**: needs a decrypted dump
- -**3DS**: needs a decrypted dump
- -**PS3**: are folders that need to be with the `.ps3` file extension in the end.
-Example: `Gran Turismo 5.ps3` - -# RetroAchievements -Until we don't implement a proper menu, the RetroAchievements must be enabled from RetroArch:
-`Tools` -> `Start RetroArch` -> `Settings` -> `Achievements`
-Here you have to insert your username and password that you used to register to [RetroAchievements](https://retroachievements.org), then [save your RetroArch config](https://github.com/XargonWan/RetroDECK/wiki/FAQs---Frequently-asked-questions#i-configured-retroarch-but-the-configuration-was-not-saved).

-**NOTE:** not all the games are supported; your game [hash](https://docs.retroachievements.org/FAQ/#what-is-an-ra-hash) must be checked on [RetroAchievements website](https://retroachievements.org). - -# Multidisk/file games: Directory interpreted as files -You can put all the game files inside a sub-folder in order to keep you game list clean, these folder will be seen as the game itself from RetroDECK and not as an actual folder, more info [here](https://gitlab.com/es-de/emulationstation-de/-/blob/master/USERGUIDE.md#directories-interpreted-as-files) on the official ES-DE Documentation. The folder needs to have the corresponding .m3u file and the folder needs to be renamed to the exact filename of the .m3u - -Example on how a structure could be: -``` -─── Dragon Fantasy VII.m3u - ├── Dragon Fantasy VII - Disk1.chd - ├── Dragon Fantasy VII - Disk2.chd - ├── Dragon Fantasy VII - Disk3.chd - └── Dragon Fantasy VII.m3u -``` -In this case the folder will be viewed as a single game and it will launch `Dragon Fantasy VII.m3u` so you can easly swap the disks from RetroArch menu. - -## How do I create a Multidisk Directory? - -Let's use the Dragon Fantasy VII example as written above. - -### Step 1: Make a .m3u sub-folder -Make a new sub-folder inside the PSX roms directory where you move and store the Dragon Fantasy VII files with a .m3u file extension in the end. -The name of the folder will be Dragon Fantasy VII.m3u and the full file path will be: - -`~/retrodeck/roms/psx/Dragon Fantasy VII.m3u` - - -### Step 2: Make a .m3u file inside the folder.m3u -Following the example above, make an empty file inside the Dragon Fantasy VII.m3u folder called the exact same thing as the folder name in this case: `Dragon Fantasy VII.m3u`. Now the full file path to the newly created .m3u file should be like this: - -`~/retrodeck/roms/psx/Dragon Fantasy VII.m3u/Dragon Fantasy VII.m3u` - -### Step 3: Populate the .m3u file - -Open the `Dragon Fantasy VII.m3u` file with an text editor and write the filenames of all files contained in the folder, one per line. -When you are done, the structure of the file should look something like this: - -`Dragon Fantasy VII - Disk1.chd`
-`Dragon Fantasy VII - Disk2.chd`
-`Dragon Fantasy VII - Disk3.chd` - -Note this also works with other files types like `.bin` `.iso` `.cue` `.bin` etc.. You just need to make sure that all the files in the folders are written inside the .m3u file. - -### Step 4: Launch RetroDECK -The ES-DE interface that RetroDECK uses should now pick up on the game as one file and you can change disks inside RetroArch. - -# Emulators compatibility lists -Here is a collection of games that were tested on Steam Deck, not on RetroDECK specifically. -If you find some inconsistences please report them on our `#support` channel on Discord. -* [Xemu](https://xemu.app/#compatibility) -* [Citra](https://citra-emu.org/game/) -* [Dolphin](https://dolphin-emu.org/compat/?nocr=true) -* [Yuzu](https://yuzu-emu.org/game/) -* [PCSX2](https://pcsx2.net/compat/) -* [RPCS3](https://docs.google.com/spreadsheets/d/1EzTcNoKiBaMS4orZrGEOKwMpFOZEFKVSOZjLRJqzEkA/) - -# Scraping - -[Check out FAQ on Scraping on the wiki](https://github.com/XargonWan/RetroDECK/wiki/FAQs%3A-Frequently-asked-questions#scraping-questions) - -## Quick tips -* Register an account on https://www.screenscraper.fr/ (support them on Patreon for faster downloads, more scrapes per day and priority scraping). -* Login to your Screenscraper.fr account inside of the ES-DE interface in RetroDECK -* Choose what content you want to scrape (remember that each content you choose could take up several mb of data per game). -* Do an initial scrape of all the games you want to scrape. -* If some games are missed do a more narrow scraping by enabling `Scraper -> Other Settings -> Interactive Mode -> On`& Scraper -> `Other Settings -> Auto-Accept Single Game Matches -> On` and choose to scrape by games missing metadata. This will allow you to select each game from a list and also tweak the searches of the missing games. In some cases you need to remove certain aspects of the name like if a rom comes both with a Japanese name and English name, you could try to remove one of the names to find a better result. diff --git a/wiki-rtd/Known-Issues.md b/wiki-rtd/Known-Issues.md deleted file mode 100644 index d0076c7a..00000000 --- a/wiki-rtd/Known-Issues.md +++ /dev/null @@ -1,17 +0,0 @@ -# Not yet officially implemented in RetroDECK -Some of these features can be configured by the users manually but work is being done to implement across the board over time. - -**Missing features:** - -* Cloud saves -* Netplay -* External controller support * -* External display resolution support -* Not all Emulators supported by ES-DE are included as of this moment (more will be added all the time). -* A configurator that is controller usable -* Better art - -( * External controller support "semi works" in some emulators if you have docked the Steam Deck and pair a Bluetooth controller inside the Steam Gamemode GUI. Not all hotkey combinations will work how ever!) - -# Issues, bugs and suggestions -For a list of reported issues please check here on github: [RetroDECK issues](https://github.com/XargonWan/RetroDECK/issues) \ No newline at end of file diff --git a/wiki-rtd/Licences.md b/wiki-rtd/Licences.md deleted file mode 100644 index 64910a3b..00000000 --- a/wiki-rtd/Licences.md +++ /dev/null @@ -1,93 +0,0 @@ -# RetroDECK - -https://github.com/XargonWan/RetroDECK/blob/main/LICENSE - -# Features, front-end and assets - -## ES-DE - -https://gitlab.com/es-de/emulationstation-de/-/blob/master/LICENSE - -https://gitlab.com/es-de/emulationstation-de/-/tree/master/licenses - -## Pixelitos - -https://github.com/ItzSelenux/pixelitos-icon-theme/blob/main/LICENSE - -## Kenny.nl -CC0 & CC1 (Various assets)
-https://www.kenney.nl/assets - -# Emulators & Software - -## RetroArch & LibreRetro - -https://docs.libretro.com/development/licenses/ - -## Duckstation - -https://github.com/stenzek/duckstation/blob/master/LICENSE - -## RPCS3 - -https://github.com/RPCS3/rpcs3/blob/master/LICENSE - -## Dolphin & Primehack - -https://github.com/dolphin-emu/dolphin/blob/master/LICENSE - -https://github.com/Kekun/primehack/blob/master/LICENSE - -## MAME -https://github.com/mamedev/mame/blob/master/COPYING - -## Yuzu - -https://github.com/yuzu-emu/yuzu/blob/master/LICENSE.txt - - -## Ryujinx - -https://github.com/Ryujinx/Ryujinx/blob/master/LICENSE.txt - - -## Citra - -https://github.com/citra-emu/citra/blob/master/license.txt - -## Xenia - -https://github.com/xenia-project/xenia/blob/master/LICENSE - -## Cemu - -https://github.com/cemu-project/Cemu/blob/main/LICENSE.txt - -## Xemu - -https://github.com/xemu-project/xemu - -## PPSSPP - -https://github.com/hrydgard/ppsspp/blob/master/LICENSE.TXT - -## MelonDS - -https://github.com/melonDS-emu/melonDS/blob/master/LICENSE - -## PCXS2 -https://github.com/PCSX2/pcsx2/blob/master/COPYING.GPLv3 - -## Vita3K -https://github.com/Vita3K/Vita3K/blob/master/COPYING.txt - -## ZDoom / GZDoom - -https://github.com/ZDoom/gzdoom/blob/master/LICENSE - -## ScummVM -https://github.com/scummvm/scummvm/blob/master/COPYING - -## Capsimg -https://github.com/rsn8887/capsimg/blob/master/LICENCE.txt - diff --git a/wiki-rtd/Linux-Desktop:-Software-recommendations.md b/wiki-rtd/Linux-Desktop:-Software-recommendations.md deleted file mode 100644 index 43447fae..00000000 --- a/wiki-rtd/Linux-Desktop:-Software-recommendations.md +++ /dev/null @@ -1,38 +0,0 @@ -# Any other recommended software? - -The following software works great with the Linux Desktop and might enhance your RetroDECK experience (these are entirely optional to install). - -## Flips -Flips is a software that let you patch romhacks IPS & BPS files onto the rom files. -It's already on flathub. - -_Made by Alcaro_ - -[Flips](https://flathub.org/apps/details/com.github.Alcaro.Flips) - -## BoilR - -BoilR will show games from other games platforms in your Steam library. It uses the Steam 3rd party shortcuts feature and does not require you to set up anything. You can also use BoilR to manually and automatically download custom art from SteamGridDB. It's already in flathub. - -_Made by Philipk_ - -[BoilR](https://flathub.org/apps/details/io.github.philipk.boilr) - -## JRomManager -A Mame and Retrogaming Rom Manager.
-This more complex application allows you to manage and verify your roms via .dat files. It's already in on flathub and downloadable in Discover. - -_Made by optyfr_ - -[JRomManager](https://flathub.org/apps/details/com.github.optyfr.JRomManager)
- -## RomM -RomM is a game library roms manager focused in retro gaming. Manage and organize all of your games from a web browser. -Inspired by [Jellyfin](https://jellyfin.org/), allows you to manage all your games from a modern interface while enriching them with IGDB metadata. - -_Made by zurdi15_ - -[RomM](https://github.com/zurdi15/romm) - - - diff --git a/wiki-rtd/PCXS2:-Texture-Packs.md b/wiki-rtd/PCXS2:-Texture-Packs.md deleted file mode 100644 index 8911a704..00000000 --- a/wiki-rtd/PCXS2:-Texture-Packs.md +++ /dev/null @@ -1,30 +0,0 @@ -# PCXS2 - Playstation 2 -The `~/retrodeck/texture_packs/PCSX2/` represents the `/PCSX2/textures/` folder in PCSX2. - -**Note:**
-Some texture packs could made for a specific version or region of a game. Make sure you have the right game and textures for it. - -**Note:**
-`TITLEID` is different for every game. - -## Enable Custom Textures -* Open up PCSX2 inside `RetroDECK Configurator` by pressing `Open Emulator` - `PCSX2`. -* Press `Settings` -> `Graphics`
- -`Load Textures` and set it to `On`.
- -`Async Texture Loading` and set it to `On`.
- - -## How do I add texture packs? - -**Requirements:** Texture pack files
- -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. - - -### Texture folder directly - -1. Extract any texture pack files from compressed `.zip` or any other format into folders. -2. Go into `~/retrodeck/texture_packs/PCSX2/`. The folders are all named by `TITLEID`. -3. Move textures into the right `~/retrodeck/texture_packs/PCSX2/` folder. \ No newline at end of file diff --git a/wiki-rtd/PPSSPP:-Texture-Packs.md b/wiki-rtd/PPSSPP:-Texture-Packs.md deleted file mode 100644 index 6eff6f8e..00000000 --- a/wiki-rtd/PPSSPP:-Texture-Packs.md +++ /dev/null @@ -1,26 +0,0 @@ -# PPSSPP - PSP -The `~/retrodeck/texture_packs/ppsspp/` represents the `/PSP/TEXTURES/` folder in PPSSPP. - -**Note:**
-Some texture packs could made for a specific version or region of the game. Make sure you have the right rom and textures for it. - -**Note:**
-`TITLEID` is different for every game. - - -## Enable Custom Textures -1. Open up PPSSPP inside `RetroDECK Configurator` by pressing `Open Emulator` - `PPSSPP`. -2. Press `Settings` -> `Tools` -> `Developer Tools` -> `Replace Textures` and set it to `On`. - -## How do I add texture packs? - -**Requirements:** Texture pack files
- -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. - - -### How to add textures - -1. Extract any texture pack files from compressed `.zip` or any other format into folders. -2. Go into `~/retrodeck/texture_packs/ppsspp/`. The folders are all named by `TITLEID`. -3. Paste the textures into right folder `~/retrodeck/texture_packs/ppsspp/` diff --git a/wiki-rtd/Playstation-3:-RPCS3.md b/wiki-rtd/Playstation-3:-RPCS3.md deleted file mode 100644 index 0e82ea03..00000000 --- a/wiki-rtd/Playstation-3:-RPCS3.md +++ /dev/null @@ -1,87 +0,0 @@ -# Where to put the games? -PS3 games comes either as a Blu-ray rip directory (folder) with a bunch of different files or a digital PSN title that needs to be installed (see guide on this page). - -PS3 games should be put under the `retrodeck/roms/ps3/` directory. - -# How to: Install the PS3UPDAT.PUP firmware - -There are two ways to install the firmware: - -## Install PS3 firmware from RetroDECK Configurator - -1. Open RPCS3 `RetroDECK Configurator` - `RetroDECK: Tools` - `Install: PS3 Firmware`. -2. Press `OK` and this will download the PS3 Firmware and open RPCS3. -3. You will get a prompt asking if you want to install the firmware from the /tmp/ folder, say `Yes` -4. Wait for the installation to finish -5. Exit RPCS3 from the GUI under `File -> Exit` - -## Manual Download -1. Download the latest PS3 firmware `PS3UPDAT.PUP` from Sony [here](https://www.playstation.com/en-us/support/hardware/ps3/system-software/) -2. Open RPCS3 `RetroDECK Configurator -> Open Emulator -> RPCS3`. -3. In the RPCS3 interface navigate to `File -> Install Firmware`. -4. In the file browser navigate and select the file `PS3UPDAT.PUP` file. -5. The firmware should now be installed. - -# How to: Get games to show up inside the ES-DE interface -To get the games to show up you need to rename the directory to end with a `.ps3` file extension. - -_Example:_ - -You have directory dump of the a game Blu-ray PlayStation 3 game called Hockey World, the directory is called `Hockey World`. - -To get the it to show up you need to rename and add `.ps3` in the end of the directory name. - -The directory `Hockey World` becomes `Hockey World.ps3` and the game will show up. - - -# How to: Install DLC or patches on disc based games - -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. If you want to do it in `Game Mode` you need to press the `Steam` button and switch between windows using the window switcher. - -If you want to install some DLC or patch you can do that trough RPCS3 itself. - -1. Open RPCS3 `RetroDECK Configurator -> Open Emulator -> RPCS3`. -2. In the RPCS3 interface navigate to `File -> Install Packages/Raps/Edats`. -3. In the file browser navigate and select the file you want to install. -4. The file will be installed inside the a new game directory on the RPCS3 hard drive under - `retrodeck/bios/rpcs3/dev_hdd0/game/GAMEID` where `GAMEID` is unique for each game [PS3GAMEID-List](https://www.gametdb.com/PS3/List). -5. The patches or dlc should now be installed and in the GAMEID directory. -6. Move the content of the GAMEID directory into the games directory inside the `retrodeck/roms/ps3/GAMENAME.ps3` directory and overwrite & replace the files. -8. You can now remove the `retrodeck/bios/rpcs3/dev_hdd0/game/GAMEID` directory as the files have been moved. -9. The game can be launched inside the ES-DE interface with patches and DLC installed. - -_Example:_ - -The game `Hockey World.ps3` inside the `retrodeck/roms/ps3/` has some DLC & and a patch you want to install. - -You follow the above guide and install the files. - -The installation made a newly created directory called `BCA111111` under `retrodeck/bios/rpcs3/dev_hdd0/game/`. - -You open up the directory `retrodeck/bios/rpcs3/dev_hdd0/game/BCA111111` and copy all of it's content and paste it into `retrodeck/roms/ps3/Hockey World.ps3` directory and replace/overwrite the files. - -You can then remove the `BCA111111` directory in `retrodeck/bios/rpcs3/dev_hdd0/game/` - -# How to: Install digital PSN titles - -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. If you want to do it in `Game Mode` you need to press the `Steam` button and switch between windows using the window switcher. - -If you want to install some PSN tiltes you can do that trough RPCS3 itself. - -1. Open RPCS3 `RetroDECK Configurator -> Open Emulator -> RPCS3`. -2. In the RPCS3 interface navigate to `File -> Install Packages/Raps/Edats`. -3. In the file browser navigate and select the file you want to install. -4. The file will be installed inside the games directory on the RPCS3 hard drive under - `retrodeck/bios/rpcs3/dev_hdd0/game/GAMEID` where `GAMEID` is unique for each game [PS3GAMEID-List](https://www.gametdb.com/PS3/List). -5. Install any patches or DLC for the game by repeating step .2 and .3 for each file. -6. After the game is ready move the digital games directory from `retrodeck/bios/rpcs3/dev_hdd0/game/GAMEID` to `retrodeck/roms/ps3` -7. Rename the directory to the name of the game and add the .ps3 file extension to the end of the directory (see guide on top). -8. The game should now show up and be playable inside the ES-DE interface. - - -_Example:_ - -You installed a file that contained the digital game Hockey World 2, it created a directory called `BCA123456` under `retrodeck/bios/rpcs3/dev_hdd0/game/` - -After that you moved `BCA123456` from `retrodeck/bios/rpcs3/dev_hdd0/game/` to `retrodeck/roms/ps3`. -The directory `BCA123456` is renamed to `Hockey World 2.ps3`. \ No newline at end of file diff --git a/wiki-rtd/RetroArch-Mesen:-Texture-Packs.md b/wiki-rtd/RetroArch-Mesen:-Texture-Packs.md deleted file mode 100644 index 1703070a..00000000 --- a/wiki-rtd/RetroArch-Mesen:-Texture-Packs.md +++ /dev/null @@ -1,30 +0,0 @@ -# RetroArch - NES - Mesen -The `texture_packs/RetroArch-Mesen/` represents `/retroarch/system/HdPacks/` folder. - -**Note:**
-Some texture packs could made for a specific version or region of a game. Make sure you have the right game and textures for it. - -## Enable Texture Packs in the Mesen core for certain games -From the `RetroArch Quick Menu` - -* Go to `Core Options` -> `Enable HD Packs` set to `On` - -* Then save the current configuration for that game under `Core Options` -> `Manage Core Options` -> `Save Game Options` - -## How do I add texture packs that can be used by the Mesen Core? - -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. - -* All texture packs go into the `texture_packs/RetroArch-Mesen/` folder. -* The texture pack have to be extracted from .zip or other compressed format into a folder. -* The name of the folder must be the same name as that of the rom file the texture pack is for. - -**Example:** - -You want apply a texture pack to a game called `ScaryCastle USA.nes` and you have downloaded the `ScaryCastle TexturePACK HD.zip`. - -1. Extract the `ScaryCastle TexturePACK HD.zip` -2. Move the extracted `ScaryCastle TexturePACK HD` folder into `texture_packs/RetroArch-Mesen/` -3. Rename the `ScaryCastle TexturePACK HD` folder so it has the same name as the rom `ScaryCastle USA` without the `.nes` file extension. -9. Start up RetroDECK and select the ScaryCastle nes games.
-**NOTE:** On the Steam Deck go into GameMode first, then launch RetroDECK. \ No newline at end of file diff --git a/wiki-rtd/RetroArch-Mupen64Plus-Next:-Texture-Packs.md b/wiki-rtd/RetroArch-Mupen64Plus-Next:-Texture-Packs.md deleted file mode 100644 index f01f921e..00000000 --- a/wiki-rtd/RetroArch-Mupen64Plus-Next:-Texture-Packs.md +++ /dev/null @@ -1,42 +0,0 @@ -# RetroArch - N64 - Mupen64Plus-Next - -The `texture_packs/RetroArch-Mupen64Plus/` represents `/retroarch/system/Mupen64plus/` folder. - -**Note:**
-Some texture packs could made for a specific version or region of the game. Make sure you have the right rom and textures for it. - -## Enable Texture Packs in the Mupen64Plus-Next core for certain games - -From the `RetroArch Quick Menu` - -* Go to `Core Options` -> `GLideN64` -> - -`Use High-Res Textures` set to `On`
- -`Cache Textures` set to `On`
- -`Use High-Res Full Alpha Channel` set to `On`
- -`Use Hi-Res Storage` set to `On`
- -Then save the current configuration for that game under `Core Options` -> `Manage Core Options` -> `Save Game Options` - -**Optional:** - -`Use High-Res Texture Cache Compression` set to `On` - compresses uncompressed HD Textures into .hts files. - - - - -## How do I add texture packs that can be used by the Mupen64Plus-Next Core? - -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. - -* All texture packs go into the `texture_packs//RetroArch-Mupen64Plus/hires_texture/` or `texture_packs/RetroArch-Mupen64Plus/cache/` folder. -* The texture pack have to be extracted from .zip or other compressed format into a folder. - -## Compressed textures in .hts files -Compressed textures that are stored in `.hts` files goes into the `texture_packs/RetroArch-Mupen64Plus/cache/` folder. - -## Uncompressed textures in loose folders or files -Uncompressed textures that are stored in in loose folders or files goes into the `texture_packs/RetroArch-Mupen64Plus/hires_texture/` folder. diff --git a/wiki-rtd/RetroDECK:-CLI.md b/wiki-rtd/RetroDECK:-CLI.md deleted file mode 100644 index 637fb3d2..00000000 --- a/wiki-rtd/RetroDECK:-CLI.md +++ /dev/null @@ -1,79 +0,0 @@ -# How do I run RetroDECK CLI commands? - -Open a Linux terminal on your desktop (on the Steam Deck you need to be in desktop mode). Depending on what terminal application you have installed the naming of the application can be different.
- -In Linux distributions that uses KDE desktop environment as well as the Steam Deck; the default application is called _Konsole_. -
-The default command to run retrodeck options and arguments is: - -`flatpak run [FLATPAK-RUN-OPTION] net.retrodeck.retrodeck [ARGUMENTS]` - -Where `[FLATPAK-RUN-OPTION]` is replaced by a flatpak run option (if there is one) and `[ARGUMENTS]` is replaced by arguments. - -**Example:** - -This syntax runs the `--reset-all` argument that resets the application to default settings. - -`flatpak run net.retrodeck-retrodeck --reset-all` - -Where the argument `--reset-all` replaced `[ARGUMENTS]` and `[FLATPAK-RUN-OPTION]`was not needed to it was removed. - -# CLI argument list - -`-h` or `--help` - Prints all the available arguments. - -`-v` or `--version` - Prints the installed RetroDECK version - -`--info-msg` - Prints all the folder paths and various config information. - -`--configurator` - Starts the RetroDECK configurator - -`--compress` - Compresses a specific file to .chd format. It supports .cue .iso and .gdi formats. You need to add the filepath to the file for it to work. - -`--reset-emulator` - Opens a new input where you can input an argument to reset a specific emulator or all emulators to the default settings. Inside the prompt you can type one of the following options to reset it; - -`all-emulators` -`retroarch` -`citra` -`dolphin` -`duckstation` -`melonds` -`pcsx2` -`ppsspp` -`primehack` -`rpcs3` -`xemu` -`yuzu` - -`--reset-retrodeck` - Resets the entirety of RetroDECK to default settings! -
-⚠️ WARNING! BACK UP YOUR DATA BEFORE RUNNING THIS ARGUMENT! ⚠️ - -# General flatpak commands - -If you want to check RetroDECK's flathub page [click here](https://flathub.org/apps/details/net.retrodeck.retrodeck)
-Here follows some general flatpak commands that could be useful:
- - -## Install RetroDECK from CLI - -If you want to install RetroDECK from CLI type:
-`flatpak install flathub net.retrodeck.retrodeck` - -NOTE! This will work on the Steam Deck out of the box.
-But on the Linux desktop you need to check your distribution if it ships with both Flatpak and Flathub integration installed, if not you may need to install it. Check your distributions or flathubs documentation on how to install it on your desktop. - -## Update all flatpaks from CLI - -If you want to update all installed flatpaks from CLI type:
-`flatpak update` - -Then answer `y` on the input prompt. - -## Update only RetroDECK from CLI - -If you just want to update RetroDECK type:
- -`flatpak update net.retrodeck.retrodeck` - -Then answer `y` on the input prompt. \ No newline at end of file diff --git a/wiki-rtd/RetroDECK:-Configurator.md b/wiki-rtd/RetroDECK:-Configurator.md deleted file mode 100644 index 8490b387..00000000 --- a/wiki-rtd/RetroDECK:-Configurator.md +++ /dev/null @@ -1,154 +0,0 @@ -# The RetroDECK Configurator - -The `RetroDECK Configurator` is a unique multi-use toolbox that exists within RetroDECK to manage/configure/change/reset/edit many aspect of the application and built around the `RetroDECK Framework`. - -The`RetroDECK Configurator` can be found: - -* In the main menu inside the ES-DE interface - -* From CLI - -* From the `.desktop` desktop shortcut. - -What follows are the commands you can use inside the Configurator (more commands will be added during development). - -# Presets & Settings - -In this menu you can set various presets. - -## Global: Presets & Settings -In this menu you will find presets and settings that span over multiple emulators. - -### RetroAchivements: Login -Login to RetroAchievements in all supported emulators and cores. - -### RetroAchivements: Logut -Logut from RetroAchievements in all supported emulators and cores. - -### RetroAchivements: Hardcore Mode -Enables `Hardcore Mode` from RetroAchievements in all supported emulators and cores. - -### Widescreen: Enable/Disable -Enables or disable Widescreen in all supported emulators and cores. - -### Swap A/B and X/Y: Enable/Disable -Swaps `A/B` `X/Y` in all supported emulators and cores. - -### Ask to Exit prompt: Enable/Disable -Enables or disables ask to exit prompts in all supported emulators and cores. -Note: If you disable this, the emulators will directly exit. - -## RetroArch: Presets & Settings -In this menu you will find presets and settings for RetroArch. - -### Borders: Enable/Disable - -Enable / Disable borders across the RetroArch cores you choose. - -### Rewind: Enable/Disable - -Enable / Disable rewind across all of RetroArch (this may impact performance on some more demanding systems). - -## Wii & Gamecube: Presets & Settings -In this menu you will find presets and settings for Dolphin and Primehack. - -### Dolphin Textures: Universal Dynamic Input -Enable / Disable Venomalias's Universal Dynamic Input Texture for Dolphin. - -### Primehack Textures: Universal Dynamic Input -Enable / Disable Venomalias's Universal Dynamic Input Texture for Primehack. - -# Open Emulator -Here you launch and configure each emulators settings, the option you choose will open that emulators GUI. For documentation on how to change the settings of each emulators settings please check the website of each emulator. - -(Please note that several emulators where not designed with controller input in mind for handling the applications GUI, just the games. So you might need to use other inputs like the Steam Decks touchscreen or a mouse and key board to navigate properly). - -The options are the following: - -## RetroArch -Opens RetroArch - -## Citra -Opens Citra - -## Dolphin -Opens Dolphin - -## Duckstation -Opens Duckstation - -## MelonDS -Opens MelonDS - -## PCSX2 -Opens PCSX2 - -## PPSSPP -Opens PPSSPP - -## RPCS3 -Opens RPCS3 - -## XEMU -Opens XEMU - -## Yuzu -Opens Yuzu - -# RetroDECK: Tools - -## Tool: Move files - -This option lets you choose the installation path of the RetroDECK folder that handles ROMS,Saves, BIOS etc... to a new location. -You get the following three options. - -`Internal Storage` - Moves the folder to the internal storage.
-`SD CARD` - Moves the folder to the SD CARD
-`Custom Location` - Choose where you want the RetroDECK folder to be.
- -## Tool: Compress games -This option enables you to compress disc based game image files `.gdi` `.iso` `.bin` `.cue` to the less space demanding `.chd` format. -You can choose either a single game or many. - -## Install: RetroDECK SD Controller Profile -This option installs the Steam Deck controller profile to RetroDECK it also resets all emulators configurations to input the correct bindings. - -## Install: PS3 Firmware -This option downloads and installs the latest PS3 firmware. You will have to press OK to install it. - -## RetroDECK: Change update settings -This option lets you turn on or off automatic updates on launch. - -# RetroDECK: Troubleshooting - -## Backup: RetroDECK Userdata -Creates backups of the user data folders - -## Check & Verify: Multi-file structure -Verifies to the structure of multi disc/file games that uses `.m3u` files. - -## Check & Verify: BIOS -Shows a detailed BIOS list of missing and current BIOS. - -## RetroDECK: Reset -The reset menu resets various features - -### Reset Specific Emulator -Opens up a menu where you can reset a specific emulator - -### Reset All Emulators -Resets all the emulators at once - -### Reset RetroDECK -Resets the entirety of RetroDECK. - -⚠️ WARNING! BACK UP YOUR DATA BEFORE RUNNING THIS! ⚠️ - -# RetroDECK: About -This menu contains information about RetroDECK - -## Version history -Displays the changelogs - -## Credits -Displays the credits \ No newline at end of file diff --git a/wiki-rtd/RetroDECK:-Credits-and-The-Team.md b/wiki-rtd/RetroDECK:-Credits-and-The-Team.md deleted file mode 100644 index 40835378..00000000 --- a/wiki-rtd/RetroDECK:-Credits-and-The-Team.md +++ /dev/null @@ -1,99 +0,0 @@ -# Credits & The Team - -This is the page where we try to introduce the team and thank everyone who have contributed to the project so far.
-If you feel you have contributed to the project but lacks mention, please contact us on discord!
- -# The Team - -## Community Management - -### [Lazorne](https://github.com/Lazorne) -Community management/outreach, testing, documentation, feature suggestions and some design. - -
. -Internal meme lord and leader of the "Nordic Pizza Heresy Cult". Instigator of the internal pizza war and "Banana Warlock". -
- -## Developers - -### [XargonWan](https://github.com/XargonWan) -RetroDECK project founder and also one of the founding members of [AmberELEC](https://amberelec.org/). - -
. -General of the "Italian Pizza Legion" in the internal pizza war. -
- -### [IceNine451](https://github.com/icenine451) -Creator of the `RetroDECK configurator`, the `RetroDECK Framework` and various cool things. - -
. -Freedom loving leader of the "Murican Cheese Crust Patriots" in the internal pizza war. -
- -### [Lx32](https://github.com/Lx32) -Develops various new features, functions and tools. - - -
. -1st Commander of the "Italian Pizza Legion" in the internal pizza war. -
- -## Testers - -### [dottormac](https://github.com/redeemer666) -Does bleeding edge cooker testing (lives in the danger zone), some feature suggestions and design. - -
. -2nd Commander of the "Italian Pizza Legion" in the internal pizza war (might be a spy for the Nordic Cult or Muricans). -
- -# Collaborators - -### [Niroku / Atari](https://github.com/Hew-ux) -Helps with community management, is also part of [Batocera](https://batocera.org/) - -### [Leon Styhre](https://gitlab.com/leonstyhre) -Maker of EmulationStation Desktop Edition - -### [anthonycaccese](https://github.com/anthonycaccese/) -Theme creator for ES-DE and [AmberELEC](https://amberelec.org/) - -### [Zurdi](https://github.com/zurdi15) -Creator of RomM and other projects. - -# Additional credits - -### [RavenKilit](https://github.com/RavenKilit) -Did some code and testning, contributed to [AmberELEC](https://amberelec.org/) - -### MorGuux -Made the RetroDECK steamdb graphics for the old logo - -### Pixelguin -Made the new logo and steamdb graphics - -### teotwaki -Generous cloud hosting sponsor - -### [Gabeboii](https://github.com/gabeeeboii) -Webmaster - -### Draco -Server Administration - -### [ItzSelenux](https://github.com/ItzSelenux) -Maker of [pixelitos](https://github.com/ItzSelenux/pixelitos-icon-theme) - -### [Kenny.nl](https://twitter.com/KenneyNL) -[The Kenny.nl project](https://www.kenney.nl/) provides several free game assets under open licenses. - -# Special Thanks - We want give special thanks to: -* Our [Patreons](https://www.patreon.com/RetroDECK) that keeps the build servers running and provide feedback. -* All related emulation projects. -* All people that have put both time and money into emulation projects. -* All the users who help others with support, guidance and good spirit. -* All the users who help with testing and reporting issues. -* All the community creators who creates various art and assets for the community. - -You are the ones that makes this project possible. \ No newline at end of file diff --git a/wiki-rtd/RetroDECK:-Folders-and-filepaths.md b/wiki-rtd/RetroDECK:-Folders-and-filepaths.md deleted file mode 100644 index 45b61192..00000000 --- a/wiki-rtd/RetroDECK:-Folders-and-filepaths.md +++ /dev/null @@ -1,71 +0,0 @@ -# What are the various folders and filepaths in RetroDECK? - -RetroDECK is a Flatpak a sandboxed bundle of different applications and configurations. One part of the files are none writable while others are. - -### `~/retrodeck` -It's the home folder of RetroDECK itself, it contains: -- `bios`, the bios folder, the actual `retroarch/system` folder is poiting here `~/.var/app/net.retrodeck.retrodeck/config/emulationstation/.emulationstation/downloaded_media` is pointing here -- `.downloaded_media`, this is where you scraped data is saved (images, videos, logos..), -- `.lock`, this file tells RetroDECK that the settings are done and to not reset them, if this file is missing it will trigger a first boot showing the setup. Here is written the software version that is compared to the actual version to check if an update is needed. -- `.logs`, logs folder -- `roms`, if internal is chosen the roms folder is here, otherwise it's in `/retrodeck/roms` -- `saves`, emulators saves file location -- `screenshots`, emulators screenshots location -- `states`, emulators save states location -- `gamelists`, RetroDECK's gamelist location -- `texture_packs`, emulators texture packs location -- `mods`, emulators mods location -- `.themes`, additional themes folder, `~/.var/app/net.retrodeck.retrodeck/config/emulationstation/.emulationstation/themes` is poiting here - -### `~/.var/app/net.retrodeck.retrodeck` -This folder is the only flatpak folder that is editable user side, it's mapped as `/var` in the flatpak itself, from now on we will use the flatpak paths unless differently specified. - -### `/var` -- `config`, contains all the various software configs such as RetroDECK, retroarch folder and standalones emulator configs --- `retroarch`, the retroarch folder (see below) --- `emulationstation`, emulationstation home folder (see below) --- `retrodeck`, to not be confued with `~/retrodeck/`, this folder contains the retrodeck configs, see below. --- various standalone emulators config folders such as `yuzu`, `pcsx2`, `melonDS`, `dolphin-emu` and so on. - -### `/var/config/retroarch` -- `system`, retroarch bios (system) folder, this points to `~/retrodeck/bios` -- `core`, retroarch cores folder, this is populated by `/app/share/libretro/cores` at the first startup (or with `--reset`, `--reset-ra`) -- `retroarch.cfg`, the retroarch config, the original one is located in `/app/retrodeck/emu-configs/retroarch.cfg`, and similarly to above it's generated at the first startup - -### `/var/config/emulationstation` -- `ROMs`, this is linked to the roms folder in `~/retroeck/roms`or `/roms` -- `.emulationstation`, ES-DE main folder --- `custom_systems`, where the customs systems are kept (example the tools file), check the official ES-DE docs for more info. --- `downloaded_media`, this points to `~/retrodeck/.downloaded_media` --- `themes`, this points to `~/retrodeck/.themes` --- `es_log.txt`, ES-DE log file --- `es_settings.xml`, ES-DE settings file -### `/var/config/retrodeck` -- `tools` -- `version`, this file carries the RetroDECK version number and it ś generated during the flatpak build. - -### `/var/data` -Some emulators, like yuzu, needs this path, here for example is even symlinked the yuzu keys and firmware folder. - -### `/var/lib/flatpak/app/net.retrodeck.retrodeck/current/active/files` -This is mapped as the `/app` folder in flatpak, this folder is inside the read only file system and so all this tree is immutable (actually can be edited by root for develop purposes).
-FYI: you can edit the with KWrite, it justs ask you for the root password when saving. - -### `/app/bin` -All the binary files, like `retrodeck.sh`, the main program (wrapper). -All these programs can be launched in developer mode just invoking them in the terminal. - -### `/app/retrodeck` -This folder contains the default configuration that is restored with the various `--reset` commands. -- `emu-configs` -- `steam` -- `tools` -- `es_settings.xml` -- `tools-gamelist.xml` - -### `/var/lib/flatpak/app/net.retrodeck.retrodeck/current/active/files` -Non-flatpak path: this folders contain file such as the .desktop, icons, etc. - - - - diff --git a/wiki-rtd/RetroDECK:-Social-media-rules.md b/wiki-rtd/RetroDECK:-Social-media-rules.md deleted file mode 100644 index 860dfff2..00000000 --- a/wiki-rtd/RetroDECK:-Social-media-rules.md +++ /dev/null @@ -1,80 +0,0 @@ -# Discord - -## Rules: DO NOT - -1. DO NOT: Discuss any type of piracy whatsoever. - -2. DO NOT: Ask for roms, bios, games and where/how to find them and don't PM the RetroDECK team members about it either. - -3. DO NOT: Post NSFW & NSFL content. - -4. DO NOT: Try to sell or promote your products and/or services, this is not a store or a marketplace (discussing experiences, asking for advice and reviews of products related to gaming and retro gaming is fine). - -5. DO NOT: Post hateful comments. - -6. DO NOT: Discuss your political or religious viewpoints here. - -7. DO NOT: Attack server members in the channels or private in PMs on: political viewpoints, religious/non religious believes, gender, race, sexual orientation, age or any other way (if you have been attacked please message a mod in a PM). - -8. DO NOT: Spam or flood the channels. - -9. DO NOT: Share information or pictures about leaked games. - -10. DO NOT: spoil any new or old game or media. If you want to write about it, use the ||spoiler tag|| to prevent to ruin other user's fruition. - -
Rule 42 - -DO NOT : Break the space time continuum with time travel and/or para dimensional travelling. - -
- -## Rules: DO - -11. DO: Try to keep memes, light spam and funny posts in the ⁠🐸-random-memes channel (however flooding is always prohibited and all server rules must till be respected even in this channel). - -12. DO: Be patient, be polite, don’t swear and be respectful to each other. - -13. DO: Try your best to keep the topic in the correct channel. - -14. DO: Try your best to help each other. - -15. DO: Be mindful that the RetroDECK team is working on this project out of passion and spending their own free time to make it happen. You can't expect 24/7 hours support and help. When you do feel the need to ask for help or advice from the RetroDECK team respect rule 11. - - - -# Lemmy / Reddit - -### 1. DO NOT: Post links/discussion of illegal, copyrighted, pirated or leaked content. - -* Post links directly to pirated games, ROMs, BIOSes or shader caches. -* Partake in discussion or encouragement to in piracy. -* Ask for technical support for pirated games/software. -* Post links or discussions to leaked content of any kind. -* Censoring or obfuscating parts of an link to any part of the content above to bypass filters. - -### 2. DO NOT: Post NSFW & NSFL content. - -### 3. DO NOT: Make posts about: buying, selling, trading, begging, giveaways, self or crowd-funding without asking. - -* You can’t promote crowd-funding, begging, affiliate links or other form of raising funds without asking. -* Discussing experiences, giving advice or reviews of products related to gaming and retro gaming is always OK! -* All promotions or marketing must be vetted and approved by the RetroDECK team on Discord. - -### 4. DO NOT: Make posts about anything other then RetroDECK, Emulation or community relevant content. - -### 5. DO NOT: Post hateful comments or posts. - -* Don’t attack any community member on: political viewpoints, religious/non religious believes, gender, race, sexual orientation, age or any other way (if you have been attacked please message the a mod here or on discord). -* Be patient, be polite, be kind, don’t swear and be respectful to each other. - -### 6. DO NOT: Discuss your political or religious viewpoints here. - -### 7. DO NOT: Spread misinformation - -* Spread intentional misinformation. -* Impersonate another: entity, company or person. - - - -# Vivi e lascia vivere -// RetroDECK Team \ No newline at end of file diff --git a/wiki-rtd/RetroDECK:-The-story-of-RetroDECK.md b/wiki-rtd/RetroDECK:-The-story-of-RetroDECK.md deleted file mode 100644 index 3e19af99..00000000 --- a/wiki-rtd/RetroDECK:-The-story-of-RetroDECK.md +++ /dev/null @@ -1,14 +0,0 @@ -# How RetroDECK was born? -Let's take a step back. - -RetroDECK was born on March 4th 2022 in Kyoto, Japan, with the name of [351EDECK](https://imgur.com/a/tGC9ZGO) because I am also one of the founding members of 351ELEC, now [AmberELEC](https://amberelec.org/). -What I wanted to do was to "port" 351ELEC to the Steam Deck, but instead of doing a custom firmware to flash, doing it as an application that could be launched from Steam. -Eventually, after talking to the other team members, we decided that we didn't want to support another platform such as Steam Deck, so I decided to continue the project on my own, renaming it to RetroDECK. - -Back then I had many options on how to create 351EDECK, such as a bash script, appimage and flatpak. -In the beginning I opted for a simple shell script, in fact RetroDECK/351EDECK v0.1a existed as a mere shell script. -However I had bad feedbacks from the community because someone was feeling unsafe to give my script the root privileges so evaluating the Steam Deck use case I felt like it was not the right direction to take, the people was not feeling comfortable to give the sudo to a random script downloaded from the internet, so they asked to packetize it in some way. - -Valve suggests the flatpak technology to port the applications on Steam Deck so, I decided to follow their guidelines, and I created the RetroDECK that you know today, starting from a Manjaro virtual machine as a development environment because I didn't have a Steam Deck yet. - --Xargon \ No newline at end of file diff --git a/wiki-rtd/Steam-Deck:-Hotkeys-and-controls.md b/wiki-rtd/Steam-Deck:-Hotkeys-and-controls.md deleted file mode 100644 index 752809a7..00000000 --- a/wiki-rtd/Steam-Deck:-Hotkeys-and-controls.md +++ /dev/null @@ -1,330 +0,0 @@ -# General information - -[I see SA refereed in documentation about emulators what does it mean?](https://github.com/XargonWan/RetroDECK/wiki/FAQs%3A-Frequently-asked-questions#i-see-sa-refereed-in-documentation-about-emulators-what-does-it-mean) -## Different controller layouts in games - -### Xbox layout - Steam Deck -The Steam Deck uses the Xbox button layout as it's physical buttons. - -**Steam Deck/Xbox button layout:**
- -| Button Placement | Button | -| :--- | :---: | -| Top | `Y` | -| Left | `X` | -| Right | `B` | -| Bottom | `A` | - -### Nintendo Layout -Nintendo systems uses the Nintendo layout in game where both the Y-X and A-B buttons have switched places with each other from the Steam Decks physical button layout. You can enable a mode that switches the Y-X and A-B buttons for supported Emulators inside the `RetroDECK Configurator`. - -
- -**Nintendo - button layout:**
-| Button Placement | Button | -| :--- | :---: | -| Top | `X` | -| Left | `Y` | -| Right | `A` | -| Bottom | `B` | - - -**Example:**
-So if you are emulating a Nintendo game that calls for the button A to be pressed it corresponds to the right button on the Steam Deck so button B. - - -### Sony PlayStation Layout -The Sony PlayStation uses it's icon glyphs to represent it's buttons. - -**Sony PlayStation - button layout:**
-| Button Placement | Button | -| :--- | :---: | -| Top | `Triangle` | -| Left | `Square` | -| Right | `Circle` | -| Bottom | `X` | - -**Example:**
-So if you are emulating a PlayStation game that calls for the button Triangle to be pressed it corresponds to the top button on the Steam Deck so button Y. - -**Regional differences:** - -Depending on the region of your Playstation game, the buttons `Circle` and `X` switches the meaning for confirm and cancel (they are still at the same physical location). But it is good to keep in mind if you are used to exiting out of menus with a certain button and wondering why it works in some games while others not. - -**Example:** - -In the EU/US `X` is confirm while in Japan `X` is cancel. - -# Steam Deck Controller Guide - A Visual Introduction -If you are looking for a general guide on how to use the Steam Deck controls beyond RetroDECK please check this steam community guide:
-[Steam Deck Controller Guide - A Visual Introduction](https://steamcommunity.com/sharedfiles/filedetails/?id=2804823261) - - - -# RetroDECK Official Controller Layout: Hotkeys: - -### Current version of the layout -0.7.1b that is written on this wiki - -## Information -Be sure to have the `RetroDECK: Official Controller Layout` activated from the `Templates`. -- Add the Official Layout under `Controller Settings` -> `Controller Layouts` -> `Templates` in the Steam Deck called `RetroDECK: Official Layout` with a version number and apply - -Read more on
[[Steam Deck: Installation and updates]] - -## Everything is customizable -You are free to rebind the keys as you see fit in the RetroDECK: Official Layout profile and make your own to better suit your needs.
-But if you rebind the keys inside RetroDECK there can be a risk that an upcoming update will revert your changes if the emulators made changes to the keybindings for the hotkeys.
-Also note that if you break your controller profile with your tinkering please revert the RetroDECK's official profile. - -## 🚧 Please READ: 🚧 - -**Not all Emulators has hotkey support; some have partial support, some has none and some has a majority implemented** - -The plan is to map as much as we can into the RetroDECK Hotkey System below. We are also patching in Emulator Hotkeys with the `RetroDECK Framework` (if possible) to be compatible with the system. If a emulators later versions adds better hotkey support we plan to map it towards the same functions bellow for a unified experience across as many emulators as possible. - -### Known issues -* `PPSSPP` has a bug in with multi-input hotkeys in their flatpak version, so we did a workaround and bound ESC is Open Menu. This allows you to access all of the emulator features and can quit. -* `RPCS3` hotkeys/shortcuts do not work and they are a new experimental feature. To exit you have to shut down RPCS3 from the `Switch Window` inside the Steam Deck interface. -* `CEMU` has almost no hotkey support. -* `XEMU` has no hotkey support. -* `Citra` is the only dual-screen emulator that allows a hotkey for changing the screen layout, others: `MelonDS`, `RetroArch`, `Cemu` has no hotkey for it. - -## Global Hotkeys: Button Combos - -### The hotkey button -The `HK` or `hotkey button` on the Steam Deck is `L4` or `R4` or `Select` depending on what is closest for the button combo you are trying to press, all trigger the same functions. - -**Example:** - -You want to do the command `Pause / Resume`.
-You press and hold either `L4` or `R4` or `Select` and press `A` to trigger the command. - -### Button combo list -The global hotkeys are activated by pressing the hotkey button and holding it while pressing the corresponding other button input. -What follows is a list of hotkeys: - -`Command` Shows what the hotkey does.
-`Button / Combination` Shows the input you need to make to trigger the command.
-`Keyboard Command` Shows what is being sent to the emulator.
-`Emulator Support` Shows what emulators support the command.
-`Comment` Just extra comments.
- - - -| Command | Button / Combination| Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | :---: | -| Pause / Resume | `HK + A` | `CTRL + P` | `RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `MelonDS` `PCSX2` `Yuzu` | | -| Take Screenshot | `HK + B` | `CTRL + X` | `RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `PCSX2` `Yuzu` | | -| Fullscreen Toggle | `HK + X` | `CTRL + ENTER` | `Citra` `Dolphin/Primehack` `Duckstation` `MelonDS` `PCSX2` `Yuzu` | | -| Previous State Slot | `HK + D-Pad Left` | `CTRL + J` | `RetroArch` `Dolphin/Primehack` `Duckstation` `PCSX2`| | | -| Next State Slot | `HK + D-Pad Right` | `CTRL + K` | `RetroArch` `Dolphin/Primehack` `Duckstation` `PCSX2`| -| Increase Emulation Speed | `HK + D-Pad Up` | `CTRL + 1` | `Citra` `Dolphin/Primehack` `Duckstation` `PCSX2`| | | -| Decrease Emulation Speed | `HK + D-Pad Down` | `CTRL + 2` | `Citra` `Dolphin/Primehack` `Duckstation` `PCSX2`| | | -| Load State | `HK + L1` | `CTRL + A` | `RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Save State | `HK + R1` | `CTRL + S` | `RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Rewind | `HK + L2` | `CTRL + -` | `RetroArch` `Duckstation` | | -| Fast forward | `HK + R2` | `CTRL + +` | `RetroArch` `Duckstation` `MelonDS` `PCSX2` | | -| Swap Screens | `HK + L3` | `CTRL + TAB` | `Citra` `MelonDS` `Cemu` | | -| Open Menu | `HK + Y` | `CTRL + M` | `RetroArch` `Duckstation` `PCSX2` `Yuzu` | | -| Exit Emulator | `HK + Start` | `CTRL + Q` |`RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `PCSX2` `Yuzu` | | -| Escape | `HK + R3` | `ESC` | `PPSSPP` | | - - - - -### RetroArch: Additional Hotkeys - -These hotkeys also work for RetroArch and are built in. - -| Command | Button / Combination | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Open Menu | `L3 + R3` | `RetroArch` | | - -### Arcade Systems: Additional Hotkeys - -This hotkey work for RetroArch, MAME, FBNEO and other arcade systems. - -| Command | Button / Combination | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Insert Credit | `Select` | `RetroArch` | | - - -# Steam Deck - Radial Menu System - -What follows is a breakdown of the Radial System that you access on the `Left Touchpad`. - -### Is there a quick way to go back to the top of the radial menu system? -Yes, just press on the `HK` trigger buttons: `L4` or `R4` or `Select` - -## Radial Menu System -`Radial Button` Shows what the hotkey does.
-`Keyboard Command` Shows what is being sent to the emulator.
-`Emulator Support` Shows what emulators support the command.
-`Comment` Just extra comments.
- -**NOTE:** - -Like everything in RetroDECK we plan to make revisions and updates of the menus. We hope with time be able to add more emulators and even better art. - -## Main Menu -The `Main Menu` gives you access to all the menus bellow. - -## Quick -The `Quick Menu` or `Quick Access Menu` Menu is the most populated menu. It features "best of" options from other menus. - -| Radial Button | Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Exit Emulator | `Ctrl + Q` | `RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `PCSX2` `Yuzu` | | -| Open Menu | `Ctrl + M` | `RetroArch` `Duckstation` `PCSX2` `Yuzu` | | -| Swap Screens | `Ctrl + Tab` | `Citra` `MelonDS` `Cemu` | | -| Take Screenshot | `Ctrl + X` | `RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `PCSX2` `Yuzu` | | -| Save State | `Ctrl + S` |`RetroArch` `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Load State | `Ctrl + A` | `RetroArch` `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Pause / Resume | `Ctrl + P` | `RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `MelonDS` `PCSX2` `Yuzu` | | -| Fullscreen Toggle | `Ctrl + Enter` |`Citra` `Dolphin/Primehack` `Duckstation` `MelonDS` `PCSX2` `Yuzu` | | -| Restart / Reset | `CTRL + R` |`RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `MelonDS` `PCSX2` `Yuzu` | | -| Escape | `ESC` | `PPSSPP` | | - -## State -The `State Menu` is the menu where you handle anything to do with saving and loading states. - - -| Radial Button | Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Previous State | `Ctrl + J` |`RetroArch` `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Next State | `Ctrl + K` |`RetroArch` `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Save State | `Ctrl + S` |`RetroArch` `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Load State | `Ctrl + A` | `RetroArch` `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Undo Load State | `Ctrl + 8` | `Dolphin/Primehack` | | -| Undo Save State | `Ctrl + 9` | `Dolphin/Primehack` `Duckstation` | | - - -## Speed / Frames -The `Speed / Frames Menu` is where you find anything related to: emulation speed, frame limits, fast forwarding and rewinding. - -| Radial Button | Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Fastforward | `Ctrl + +` | `RetroArch` `Duckstation` `MelonDS` `PCSX2` | | -| Rewind | `CTRL + -` | `RetroArch` `Duckstation` | | -| Increase Emulation Speed| `CTRL + 1` | `Citra` `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Decrease Emulation Speed| `CTRL + 2` |`Citra` `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Reset Emulation Speed | `CTRL + 3` | `Duckstation` | | -| Disable Emulation Speed Limit | `CTRL + 0` |`Dolphin/Primehack` | | -| Frame limit On/Off | `CTRL + Z` | `PCSX2` `Yuzu` | | - - -## Display / Graphics -The `Display / Graphics Menu` is where you find anything related to: up-scaling/resolution scaling, widescreen or change aspect ratio, fullscreen, swap or change dual screen layout. - -| Radial Button | Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Fullscreen Toggle | `Ctrl + Enter` | `Citra` `Dolphin/Primehack` `Duckstation` `MelonDS` `PCSX2` `Yuzu` | | -| Increase Resolution / Upscale | `Ctrl + U` | `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Decrease Resolution / Upscale | `Ctrl + Y` | `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Change Widescreen / Aspect Ratio | `Ctrl + W` | `Dolphin/Primehack` `Duckstation` `PCSX2` | | -| Swap Screens | `Ctrl + Tab` |`Citra` `MelonDS` `Cemu` | | -| Change Dual Screens Layout | `Ctrl + L` | `Citra`| | | - -## General -The `General Menu` or `General Emulation Menu` is where you find various global generic emulation hotkeys: Quit/Exit, Restart, Take Screenshot, Change CD, Pause, Turbo Input, Cheats and Video Recording. - -| Radial Button | Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Exit Emulator | `Ctrl + Q` | `RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `PCSX2` `Yuzu` | | -| Open Menu | `Ctrl + M` | `RetroArch` `Duckstation` `PCSX2` `Yuzu` | | -| Take Screenshot | `Ctrl + X` | `RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `MelonDS` `PCSX2` `Yuzu` | | -| Restart / Reset | `CTRL + R` |`RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `MelonDS` `PCSX2` `Yuzu` | | -| Change Disc / Next Disc | `CTRL + D` | `RetroArch` `Dolphin/Primehack` `Duckstation` | | -| Cheats On/Off | `CTRL + C` | `RetroArch` `Duckstation` | | -| Pause / Resume | `Ctrl + P` | `RetroArch` `Citra` `Dolphin/Primehack` `Duckstation` `MelonDS` `PCSX2` `Yuzu` | | -| Turbo On/Off | `Ctrl + T` | `Duckstation` | | -| Video Recording On/Off | `Ctrl + V` |`RetroArch` `Dolphin/Primehack` `PCSX2` | | - -## Steam Deck -The `Steam Deck Menu` is where you find Steam Deck specific functions and general computer hotkeys: Steam Screenshot, Show Steam Deck Keyboard, Escape, Alt + F4, Tab, Enter and F1. Some of these could also be useful inside the various PC emulation emulators. - - -| Radial Button | Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Escape | `ESC` | `PPSSPP` | | -| Tab | `Tab` | | | -| Alt + F4 | `Alt + F4` | | | -| F1 | `F1` | | | -| Enter | `Enter` | | | -| Take Steam Screenshot | `none` | | | -| Show Steam Deck Keyboard| `none` | | | - - -## Specific - -The `Specific Menu` or `Specific Emulator Hotkeys Menu` opens up several system/emulator specific sub-menus. Here you will find hotkeys not so commonly used but could be good to have easy access to: - -### Switch -The `Switch Menu` here you find hotkeys related to Switch emulation: Change GPU Accuracy, Change Docked/Undocked Mode, Add/Remove Amiibo - -| Radial Button | Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Change GPU Accuracy | `Alt + G` | `Yuzu` | | -| Load / Remove Amiibo | `Alt + M` | `Yuzu` | | -| Docked / Undocked Mode | `Alt + D` | `Yuzu` | | - -### MAME -The `MAME Menu` here find hotkeys related to the MAME standalone emulator: Servicemode and buttons 1-4, Insert None Bills (not credits that is Select) and tilt. - -**MAME SUPPORT IS NOT IN YET WILL BE IN A LATER UPDATE** - -| Radial Button | Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Service Mode | `Alt + 0` | `MAME` | | -| Service Button 1 | `Alt + 1` | `MAME` | | -| Service Button 2 | `Alt + 2` | `MAME` | | -| Service Button 3 | `Alt + 3` | `MAME` | | -| Service Button 4 | `Alt + 4` | `MAME` | | -| Insert Bill / Note | `Alt + 5` | `MAME` | | -| Tilt | `Alt + 6` | `MAME` | | - -### RetroArch -The `RetroArch Menu` here you find hotkeys related to the RetroArch emulator: RetroArch Cheat Mangement, AI Service and Netplay Host. - - -| Radial Button | Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Next Cheat | `Ctrl + G` | `RetroArch` | | -| Previous Cheat | `Ctrl + F` | `RetroArch` | | -| Cheats On/Off | `Ctrl + C` | `RetroArch` | | -| AI Service On/Off | `Ctrl + I` | `RetroArch` | | -| Netplay Host On/Off | `Ctrl + H` | `RetroArch` | | - -### Gamecube / Wii -The `Gamecube / Wii Menu` here you find hotkeys related to the Dolphin standalone emulator: Golf Mode, Freelook Mode On/Off/Reset, Wii Sync Button and Wii Mote Sideways / Upright. - - -| Radial Button | Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Golf Mode On/Off | `Alt + H` | `Dolphin/Primehack` | | -| Freelook Mode On/Off | `Alt + F` |`Dolphin/Primehack` | | -| Freelook Mode Reset | `Alt + R` | `Dolphin/Primehack` | | -| Wii Sync Button | `Alt + W` | `Dolphin/Primehack` | | -| Wiimote Upright | `Alt + Z` | `Dolphin/Primehack` | | -| Wiimote Sideways | `Alt + X` | `Dolphin/Primehack` | | - - -### NDS -The `NDS Menu` here you find hotkeys related to the MelonDS standalone emulator: Send Close/Open Lid, Send Play Microphone and Sunlight + / -. - - -| Radial Button | Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Sunlight + | `Alt + +` |`MelonDS` | | -| Sunlight - | `Alt + -` | `MelonDS` | | -| Play Microphone | `Alt + P` |`MelonDS` | | -| Close/Open Lid | `Alt + L` | `MelonDS` | | - -### 3DS -The `3DS Menu` here you find hotkeys related to the Citra standalone emulator: Load and Remove Amiibo - -| Radial Button | Keyboard Command | Emulator Support | Comment | -| :--- | :---: | :---: | :---: | -| Load Amiibo | `Alt + M` |`Citra` | | -| Remove Amiibo | `Alt + N` |`Citra` | | \ No newline at end of file diff --git a/wiki-rtd/Steam-Deck:-Installation-and-updates.md b/wiki-rtd/Steam-Deck:-Installation-and-updates.md deleted file mode 100644 index 4301fe29..00000000 --- a/wiki-rtd/Steam-Deck:-Installation-and-updates.md +++ /dev/null @@ -1,69 +0,0 @@ -# How do I install RetroDECK on the Steam Deck? - -## Quick start guide - -- Put the Steam Deck into Desktop Mode `Steam button` > `Power` > `Switch to Desktop` -- Install RetroDECK from Discover -- Start RetroDECK first time in Desktop Mode -- Choose where RetroDECK should create the `roms` folders `Internal` or `SDCard`. -- Put the BIOS inside `~/retrodeck/bios/` for more information read: [[Emulators: BIOS and Firmware]] -- Put the ROMS inside `~/retrodeck/roms/` or `/retrodeck/roms/` depending on your choice -- In Steam desktop go to the tab `Games` press `Add non Steam game to My library` and select RetroDECK to add it into your library. If that is not working you can `Right Click` on the RetroDECK desktop icon and press `Add to Steam` in the menu. -- **Optional way:** Get RetroDECK Steam Grid art and add it to your Steam library with BoilR. Or add the art manually from [SteamgridDB](https://www.steamgriddb.com/search/grids?term=RetroDeck) for the Steam Grid. -- Switch over to game mode and go to RetroDECK on the Steam Grid under `Library > Non-Steam` -- Add the Official Layout under `Controller Settings` -> `Controller Layouts` -> `Templates` in the Steam Deck called `RetroDECK: Official Layout` with a version number and apply -- Launch RetroDECK and enjoy - -### Other quick tips: -- Read up on the [[Steam Deck: Hotkeys and controls]] to ease your navigation. -- Read up on the [[EmulationStation DE: User Guide]] -- Check out our other software recommendations [[Steam Deck: Software recommendations]]. -- Check various optional optimizations that can make some emulators run even better [[Steam Deck: Optimizations]]. - - -## Full step by step guide: - -### Step 1: Go to Desktop Mode -- Put the Steam Deck into Desktop Mode `Steam button` > `Power` > `Switch to Desktop` - -### Step 2: Install from Discover - -- Open the Discover application. -- **NOTE:** Depending on what language you have set in Desktop mode your Discover application can be named differently. -- Inside Discover search for RetroDECK and press the install button. -- After the installation is finished, launch RetroDECK from Discover or in the program menu under `Games > RetroDECK`. -- Follow the first time setup instructions and choose where RetroDECK should create the `roms` folders `Internal` or `SDCard`. -- Open Steam while still in desktop mode. -- Inside Steam go to the tab `Games` press `Add non Steam game to My library` and select RetroDECK to add it into your library. -- After this is done you can now see RetroDECK in Steam Deck's gamemode after you return to it from desktop mode. - -### Step 3: Configure the official controller layout -- Go back into gamemode by pressing the return to gamemode icon on the desktop. -- Go to RetroDECK on the Steam Grid under `Library > Non-Steam` -- Press the `Controller Icon` -- Go into `Controller Layouts` and press `Templates` -- Add the layout for RetroDECK called `RetroDECK: Official Layout` with a version number. -- You can now use RetroDECK and it's ready to populate with ROMS. -- If you are unsure on how to add ROMS and BIOS to RetroDECK follow the [Getting Started Guide ](https://github.com/XargonWan/RetroDECK/wiki/How-to:-Getting-started) from Step 2 and onward on how to add them. - - -### Step 4 (Optional): Extras -- Get RetroDECK Steam Grid art with BoilR or add it manually from [SteamgridDB](https://www.steamgriddb.com/search/grids?term=RetroDeck) for the Steam Grid. -- Check various optional optimizations that can make some emulators run even better [[Steam Deck: Optimizations]]. -- Read up on the [[Steam Deck: Hotkeys and controls]] to ease your navigation. -- Read up on the [[EmulationStation DE: User Guide]] -- Check out our other software recommendations [[Steam Deck: Software recommendations]]. - - -# How do I update RetroDECK on the Steam Deck? - -## Automatic Updates -RetroDECK features Automatic Updates and should download the latest version when you start the application. -This feature can be turned off inside the `RetroDECK Configurator`. - -## Manually from Desktop Mode: -- Put the Steam Deck into Desktop Mode `Steam button` > `Power` > `Switch to Desktop` -- Open the Discover application. -- Click on the updates tab. -- If there are any updates available it will be shown here. -- Click on the `Update` or `Update all` buttons. \ No newline at end of file diff --git a/wiki-rtd/Steam-Deck:-Optimizations.md b/wiki-rtd/Steam-Deck:-Optimizations.md deleted file mode 100644 index 012da250..00000000 --- a/wiki-rtd/Steam-Deck:-Optimizations.md +++ /dev/null @@ -1,65 +0,0 @@ -# What are some optimizations for the Steam Deck to make emulation even better? -These optimizations are entirely optional and but they can give you better performance on some more demanding emulators. - - -## Increase the VRAM to 4GB -This increases the VRAM to 4GB in the BIOS, this can give you improvements in certain emulators. - -* Power off your Steam Deck completely -* Hold the `Power Button` and `Volume Up Button` until you hear a chime/beep and release the buttons. -* Click on `Setup Utility` -* Click on `Advanced` -* Change`UMA Frame buffer Size` to 4GB -* Save and Exit - -## Setup a sudo password -[What is sudo?](https://github.com/XargonWan/RetroDECK/wiki/FAQs:-Frequently-asked-questions#what-is-sudo) - -This is a requirement for many optimizations and solutions, it also makes your Deck safer. -It enables you to run commands/applications heighten sudo privileges. - -* Go to `Desktop Mode` -* Open `Konsole` or another `Terminal` -* Type `passwd` -* You will now set your new sudo password -* After you are done you can close the terminal - -## Install CryoUtilities -This requires that you have set up a sudo password. - -This will create a 16GB SWAP file that can improve the performance for some emulators. Note that it will take up that extra space on your Steam Deck. - -There is a official video [here](https://www.youtube.com/watch?v=C9EjXYZUqUs&t=17s) - -* Go to `Desktop Mode` -* Open a web browser and go to the [CryoUtilities](https://github.com/CryoByte33/steam-deck-utilities) github page -* Click on releases -* Download the latewst `cryo_utilities` version and save to the Desktop or Home folder -* Double click on the file and it will begin the installation -* After installation is complete you will find a new desktop icon `CryoUtilities` -* Click on `CryoUtilities` -* Click on `Recommended Settings` -* It should now be done - -## Install Decky Loader -Decky Loader is a [homebrew plugin store](https://beta.deckbrew.xyz/) for the Steam Deck and it also enables `CEF Remote Debugging` during installation. -This requires that you have set up a sudo password. - -* Go to `Desktop Mode` -* Open `Konsole` or another `Terminal` -* Type `curl -L https://github.com/SteamDeckHomebrew/decky-installer/releases/latest/download/install_release.sh | sh` -* Decky Loader should now be installed and you can go back into `Game Mode`. -* To access Decky Loader you only need to press the `Menu Button - (•••)` - -### Decky Loader: Install Power Tools -Power Tools allows you to tweak various performance settings of the Steam Deck. -What the best setting is differs per emulator or even per game. -Decky Loader is a requirement. - -In Game Mode: -* `Menu Button - (•••)` -* Go into Decky Loader -* From the Store install Power Tools -* This will add a 🔌 icon to the `Menu Button - (•••)` where you can access Power Tools. - - diff --git a/wiki-rtd/Steam-Deck:-Software-recommendations.md b/wiki-rtd/Steam-Deck:-Software-recommendations.md deleted file mode 100644 index cb06b66b..00000000 --- a/wiki-rtd/Steam-Deck:-Software-recommendations.md +++ /dev/null @@ -1,38 +0,0 @@ -# Any other recommended software? - -The following software works great with the Steam Deck and might enhance your RetroDECK experience (these are entirely optional to install). - -There is a guide on how to install several of them under [Steam Deck: Optimizations](https://github.com/XargonWan/RetroDECK/wiki/Steam-Deck%3A-Optimizations). - -# Steam Deck specific recommendations - -For general Linux Desktop recommendations go to [Linux Desktop: Software recommendations](https://github.com/XargonWan/RetroDECK/wiki/Linux-Desktop:-Software-recommendations) as many of them also work on the Steam Deck. - -## CryoUtilities -Scripts and utilities to improve performance and manage storage on the Steam Deck. - -_Made by CryoByte33_ - -[CryoUtilities](https://github.com/CryoByte33/steam-deck-utilities) - -## Decky Loader -Is a great piece of software that allows custom plugins inside Steam Deck's gamemode. It can open up more advanced features then the standard Steam Deck experience offers. But it's a bit more technical to install, please follow the guide on their github. - -_Made by Steam Deck Homebrew Team_ - -[Decky Loader](https://github.com/SteamDeckHomebrew/decky-loader) - -## PowerTools -If you install the Decky Plugin Loader above you can download the PowerTools application from the plugin store that let's you do advanced tweaking of the Steam Decks hardware. This can greatly improve performance on certain games in the PS2,GC and above generations. But it requires you to find the knowledge of what setting works best for each game and/or emulator. - -_Made by NGnius_ - -[PowerTools](https://github.com/NGnius/PowerTools) - -## Discover Overlay -If you use Discord this is a program that adds Discord integration into the Steam Deck's gamemode UI. -It's already in on flathub and downloadable in Discover. Note that you need to install and login to Discord as well. - -_Made by trigg_ - -[Discover Overlay](https://trigg.github.io/Discover/) diff --git a/wiki-rtd/Switch:-Yuzu.md b/wiki-rtd/Switch:-Yuzu.md deleted file mode 100644 index f195a229..00000000 --- a/wiki-rtd/Switch:-Yuzu.md +++ /dev/null @@ -1,62 +0,0 @@ -# Yuzu - -## Where to put the games? -Switch games should be put into the `retrodeck/roms/switch/` directory.
-The games can come in many different formats: `XCI` `NSP` `NCA` `NSO` `NRO`. - - -## Where do I put the BIOS files? -Yuzu needs the key files `prod.keys`, `title.keys` and the firmware files in the following directories: - -**Yuzu keys:** `~/retrodeck/bios/switch/keys` - -**Yuzu firmware:** `~/retrodeck/bios/switch/registered` - -The directory tree should look like this example: -``` -~/retrodeck/bios/switch -├── keys -│   ├── prod.keys -│   └── title.keys -└── registered - ├── 02259fd41066eddbc64e0fdd217d9d2f.nca - ├── 02582a2cd46cc226ce72c8a52504cd97.nca - ├── 02b1dd519a6df4de1b11871851d328a1.nca - ├── other 217 files... - └── fd0d23003ea5602c24ac4e41101c16fd.nca -``` - -You can find a complete guide in the [Yuzu official wiki](https://yuzu-emu.org/help/quickstart/#downloading-and-installing-yuzu) on how to extract the BIOS from your Switch. - -## How do I install DLC and Updates? - -**Requirements:** Patch or DLC files
- -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. - -1. Extract any patch or dlc files from compressed `.zip` or any other format to the true files. -2. Open up Yuzu inside `RetroDECK Configurator` by pressing `Open Emulator` - `Yuzu`. -3. Press `File` - `Install Files to NAND` -4. Find a DLC or Patch file from the file browser and press `Open` -5. This will install the DLC or Patch file into the games NAND folder inside of Yuzu. -6. Repeat step 2 to 3 for every file you need to install. -7. Quit Yuzu -8. Start up RetroDECK and select the game you want to play.
- -## How do I add shader caches? - -**Requirements:** Shader cache files
- -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. - -1. Extract any shader cache files from compressed `.zip` or any other format to folders. -2. Open up Yuzu inside `RetroDECK Configurator` by pressing `Open Emulator` - `Yuzu`. -3. Right click on the game you want to add mods into. -4. Click on `Open Transferable Pipeline Cache`. -5. Paste the files inside that directory. -6. Start up RetroDECK and select the game.
- -## How do I add mods? -Check the Mods: Yuzu section on this wiki -[[Yuzu: Mods]] - \ No newline at end of file diff --git a/wiki-rtd/Version-history:-Patch-Notes.md b/wiki-rtd/Version-history:-Patch-Notes.md deleted file mode 100644 index e067e206..00000000 --- a/wiki-rtd/Version-history:-Patch-Notes.md +++ /dev/null @@ -1,554 +0,0 @@ -# RetroDECK 0.7.1b - -### Release Date: 2023-08-22 - -## Information: -- Steam Deck users update RetroDECK from `Discover` in Desktop Mode. -- Don't forget to reapply the latest controller layout: Go into the `Templates` tab and reapply the new profile ending with 0.7.1b (there is no need to reinstall the entire layout from the Configurator). - - -## Bugfixes & other changes: -- Fixed an issue to make sure the RD controller layout file at update with each RD update. -- Fixed an issue with PPSSPP that made `L` and `R` incorrectly bound. -- Fixed an issue in the Configurator that prevented the Yuzu preset for swapping A/B X/Y from working. -- Fixed an notification issues on the latest SteamOS Beta releases. -- Fixed an rsync permissions issue in the RetroDECK Framework. -- Updated Yuzu presets to handle new config syntax in the RetroDECK Framework. -- Changed auto-update to notification only, until permissions error can be worked out. -- Added some new pixelart icons by ItzSelenux (pixelitos-icon-theme) - - -## Updates -- All Emulators and ES-DE have been updated - -## Steam Deck - Global Controller Layout: -We have done some changes based on community feedback - -**Layout Changes:** -- `Select` is now a hotkey trigger while pressing it down, `L4` and `R4` are still triggers as well. -- The RetroArch combo of `Select` + `Start` = `Quit` now works on many SA-Emulators. -- `Open Menu` is removed from `Select`. -- `R5` = `A` button (this allows for great Wii controls on the right touchpad and pressing down the R5 for A). -- `L5` = `B` button. - -**Global hotkey changes:** -- `Open Menu` is on `Y`. -- `Increase Emulation Speed` is on `Dpad-UP`. -- `Decrease Emulation Speed` is on `Dpad-Down`. -- `Fullscreen OFF` command is removed (as emulators have migrated to toggle). - -## Known issues -- The built in auto-updater is not working (we are working on it). Discover is ok. -- Some emulators don't have hotkey support or have bugs affecting their hotkeys. - - -# RetroDECK v0.7.0b - Amazing Aozora - -### Release Date: 2023-06-16 - -## Read First – Important Changes! - -* `PCSX2-SA` latest updates are not compatible with old save states. Please make sure you do an in-game save to your virtual memory card before upgrading. - -* The following emulators have changed the defaults and now run the stand-alone version: `Dolphin`, `Citra`, `PPSSPP`.
-If you have saves states or just want to go back to the RetroArch version, you can always switch back by pressing: `Other Settings` – `Alternative Emulators` and set them back to the core versions. - -* If you decide to install the new `RetroDECK Controller Layout` for the Steam Deck (highly recommended), it will wipe your custom configurations and emulator settings. That’s because all the configs needs to be updated and changed to be compatible.
-The choice is yours (you can always install it later via the Configurator if you change your mind). - - -## New Emulators - -- Wii U powered by CEMU - -- We had hopes to add MAME standalone as well but we had to push it towards a future update because of various issues. That's why there is a MAME submenu in the new radial menus. - - - -## New General Features - -### New - Steam Deck Controller Layout - -Please read up on: https://github.com/XargonWan/RetroDECK/wiki/Steam-Deck%3A-Hotkeys-and-controls -- All hotkeys for all emulators have been unified where possible. - -This Steam Deck Controller Layout features both - -- Radial input menus on the left touchpad. -- Button bound hotkeys you can access by either holding R4 or L4. - -**Installation of the layout:** - -**From an upgrade:** - -A upgrade from a older version to 0.7b you will get a prompt during the upgrade process that asks you if you want to install the layout. If you choose to do this (highly recommended), it will reset your emulators custom configurations if you had them. - -**For everyone (upgrade or fresh install):** - -After installation need to manually enable the config as under (you also need to do this for a new RetroDECK install):
-`Controller Settings` -> `Controller Layouts` -> `Templates` `RetroDECK: Official Layout` with a version number. - -**NOTE:** - -Not all Emulators has hotkey support; some have partial support, some has none and some has a majority implemented. - -**Known issues:** - -PPSSPP has an issue with flatpak hotkeys currently on their github so we have mapped ESC `HK + R3` ( press the `Escape` key from the radial menu) to `Open PPSSPP Menu`. In this way you can shutdown, save and access PPSSPP functions from there. -As soon as the issue is solved we will remap everything to the correct hotkeys. - -### New - RetroDECK system folders - -Handling modpacks and texture packs has never been easier! You can read more on the wiki! - -https://github.com/XargonWan/RetroDECK/wiki - -**New folder: Mods** - -`retrodeck/mods/` Inside you will find easy to access mod folders for the following systems: Citra ,Dolphin, Primehack, Yuzu - - -**New folder: Texture Packs** - -`retrodeck/texture_packs/` inside you will find easy to access texture pack folders for the following systems: Citra, Dolphin, Duckstation, PCSX2, PPSSPP, Primehack, RetroArch-Mesen, RetroArch-Mupen64Plus - - -**New folder: Gamelists** - -`retrodeck/gamelists` gamelists are now moved into by default for ease of access and added security. - - -## New - System features - -- The Configurator has a new home inside the ES-DE main menu and thus the tools menu has been removed. -- The Configurator also has a .deskop icon for ease of access for both Steam Deck desktop mode and Linux Desktop users. -- Added RetroDECK auto updates on launch, this can be disabled from the Configurator this works in Game Mode for the Steam Deck. - -## New RetroDECK Configurator features: - -- The Configurator has a new structure, with more menus and options. -- The compression tool has been updated to allow for even more formats such as .zip in addition to the standard disc-based formats for certain systems. -- The compression tool has been updated to have an even stronger verification before a compression job starts. -- Added a global preset to swap A/B and X/Y in all supported emulators (aka N layout). -- Added a global preset to enable/disable Widescreen in all supported emulators, globally or per core/emulator. -- Added a global preset to enable/disable Ask-to-Exit prompts in all supported emulators. -- Added a preset to enable/disable Pegasus and NyNy77 Borders for RetroArch, globally or per core. -- Added an option to install Venomalia's Universial Dynamic Input Textures for Dolphin https://github.com/Venomalia/UniversalDynamicInput -- Added an RetroDECK: About section -- Added an option to install the RetroDECK Steam Deck controller profile -- Added an “RetroDECK: Auto Updates” function that enables or disables auto updates on RetroDECK launch. -- Added a Semi-automated RPCS3 firmware installer. -- The Move Folder tool has been greatly expanded - - You can now move the entire folder or different folders as you choose. (WARNING! Please do not try to move the data to more exotic locations). -- The basic BIOS checker has been removed. -- The BIOS checker has been updated to look for over 120+ BIOS. -- RetroAchivements Login: Now logs into all supported emulators/cores at once. -- RetroAchivements Logout: Now logs out of all supported emulators/cores at once. -- Added RetroAchivements: Hardcore Mode, that lets you toggle hardcore mode for supported emulators/cores with a logged in RetroAchivements account. - -## Updates - -- Updated ES-DE to the latest version. -- Updated RetroArch and the cores to latest versions. -- Updated all standalone emulators and to their latest versions. - - -## Bugfixes & other changes: - -- Dolphin/Primehack Wii Mote controls have been redesigned for the Steam Deck to allow both for touch input or right radial as pointer and `R2` emulates the Wii Remote Shake needed for certain games. -- Updated the RPCS3 to run better and with a better configuration. Read more on the wiki on how to install DLC and patches. -- RPCS3 and Duckstations save files where in the wrong directory. They have been moved to fit the overall inside the RetroDECK Framework. If you have any issues, contact us on discord or add them on github. -- We made a unique PICO-8 wrapper that makes it runs better in a flatpak environment. -- Fixed an avcodec issue that caused some roms for certain emulators to break. -- Changed the ES-DE progress bar color -- Changed how Yuzu builds are handled and should allow for better Yuzu updates. -- Added a low space warning on launch. -- Various backend improvements and fixes. -- Added the foss Capsimg BIOS for the Amiga RetroArch core. -- Implemented ES-DE's experimental theme downloader. For fresh new installs we only now ship one theme: ArtBookNext (as all other themes can be downloaded from the interface). - -## Experimental features: -You can enable the RetroDECK: Multi-user system and other things from CLI for testing purposes. -Read more here on how to help us with testing: - -https://github.com/XargonWan/RetroDECK/wiki/How-can-I-help-with-testing%3F - -There is also a Q&A on the latest blog post: - -https://www.reddit.com/r/RetroDeck/comments/13x8dva/retrodeck_status_update_202306/ - -# RetroDECK v0.6.6b - -### Release Date: 2023-04-26 - -### Information: -This patch is a quick hotfix for ES-DE. - - -## Bug fixes and other changes: -- ES-DE had the wrong buildflag and pushed the update notification. -- Reverted to the Swanstation Core for RetroArch - -# RetroDECK v0.6.5b - -### Release Date: 2023-04-07 - -### Information: -Just a quick hotfix for Yuzu (since some games where not working in 0.6.4b). -So we had to roll back to the latest working version. -Newer versions will be shipped with v0.7b - -## Bug fixes and other changes: -- Rolled back to latest working Yuzu as some games had issues with the latest update. -- Slightly improved Yuzu performance by tweaking GPU options -- Fixed an issue where the default theme was not loaded -- Removed unavailable emulators entries - -# RetroDECK v0.6.4b - -### Release Date: 2023-04-04 - -## New features - General: -- Updated to ES-DE 2.0 -- Added the NSO Menu Interpreted theme -- Updated all included themes -- Updated the Emulators/RetroArch + cores - -## Bug fixes and other changes: - -- Fixed an audio issue in the Primehack configuration -- Various backend fixes - -# RetroDECK v0.6.3b - -### Release Date: 2023-03-24 - -## New features - General: -- Added support support for multiple file compression via CLI. - -## RetroDECK Configurator: -- Added support support for multiple file compression in the Configurator. -- Added safety y/n prompts to the reset functions. -- Fixed some missing layout changes. -- Renamed "Reset All" to "Reset RetroDECK". -- Moved the configurator into the RO partition for futher enhancements. - -## Bug fixes and other changes: -- Fixed a bug in the compression tool with certain filenames with spaces. -- Fixed a bug where some folders were recursively symlinked. -- Fixed a bug where some emulator configs were not correctly deployed. -- Fixed a manifest bug that caused a conflict between Dolphin and Primehack in certain scenarios. -- Fixed the Configurator BIOS tool looking in the wrong location (Thanks sofauxboho for the report!) -- Implemented new configurations for Yuzu and Citra thanks to the big config file changes in the latest emulator updates in both emulators. -- Removed some leftover files from Legacy PCSX2. -- Removed the legacy "Reset Tools" command from Configurator and CLI. - -# RetroDECK v0.6.2b - -### Release Date: 2023-03-15 - -## New features - General: -- Persistent configurations when updating RetroDECK
(This means your custom configurations should be saved across future versions. We also laid groundwork for dynamic persistent configurations, more on that in a future update. This is the reason why it has taken quite long to fix this). -- Added Primehack controller profiles for both Xbox and Nintendo button layouts -- Added a warning when running RetroDECK in desktop mode that not all control inputs will work properly. It also comes with a "Never show again" button. -- Added CLI for CHD compression (chdman) of single games -- Reworked CLI commands and added safety "y/n" confirmations for the reset arguments. - -## New features - RetroDECK Configurator: -- The RetroDECK Configurator "toolbox" has a new structure for more easy access to various tools -- The power user prompt has a "Never show again" button -- Added tool to do CHD compression (chdman) of single games (multi-game batch compression coming in a future update) -- Added tool to check for common BIOS files -- Added tool to check for common multi-file game structure issues - -## Bug fixes and other changes: -- Fixed Primehack initial configuration as it was broken (will automatically reset the emulator just this once) -- Fixed Duckstation initial configuration as it was broken (will require user-performed reset just this once) -- Fixed Pico-8 initial configuration as it was broken. -- Fixed Pico-8 dual bios folders. The program files `pico8_dyn`,`pico8.dat` and `pico8` have to be manually moved to the correct location`~/retrodeck/bios/pico-8/`. The old `~/retrodeck/bios/pico8/` is renamed `~/retrodeck/bios/pico8_olddata/` to avoid confusion on where to put files. After the files have moved the `pico8_olddata `folder can be deleted. -- Fixed a bug that made the Dolphin RetroArch core not working properly (the standalone version of Dolphin always worked and is the default) -- Various backend fixes - -## Updates: -- Updated all Emulators, RetroArch and libreretro cores.
(PLEASE NOTE! ES-DE was not updated to version 2.0, this will be done in the next major version of RetroDECK as we need more time to work on the new theme format). - -# RetroDECK v0.6.1b - -### Release Date: 2023-02-21 - -## New features: -* Added CLI option to run Configurator directly -* Added "--configure" option to RetroDECK CLI - -## Updates: -* Yuzu updated to mainline-1301 - -## Fixes & adjustments: -* Adjusted Configuration window sizes -* Temporarily removed Ryjuinx as it was broken and had too many issues (will be added back in a future patch). -* Removed deprecated emulators from Configurator (eg. Legacy PCSX2) -* Made improvements to file-moving code -* Fixed Primehack preconfiguration and Configurator entry -* Fixed a bug where the hidden files were not moved during the directory preparation -* Fixed a bug where the symlinks were recursively placed inside the prepeared paths -* Fixed issue with missing symlink after RetroDECK base directory was moved somewhere else -* Fixed Duckstation preconfiguration - -# RetroDECK v0.6.0b - -### Release Date: 2022-12-27 - -## New Emulators -* Primehack -* Ryjuinx (Disabled in 0.6.2b) - -## New Features -* Merged all tools into single Configurator -* The Configurator can now move the whole retrodeck folder eslewhere (not just the ROMs one) -* The Configurator can now reset a single emulator, all RetroArch or all Standaloned configs (so there is no need to di it via CLI anymore -* The first install is now asking where to place the whole retrodeck folder instead of requesting the location of the ROMs folder only. - -## RetroArch -* Updated RetroArch to version [v1.14.0](https://www.libretro.com/index.php/retroarch-1-14-0-release/) -* Updated Cores -* Updated Cheat_db - -## Updated standalone emulators -These emulators are updated to the latest version available on 31/10/2022. -* Updated PPSSPP -* Updated Yuzu -* Updated Citra -* Updated PCSX2-QT -* Updated Dolphin -* Updated Xemu -* Updated RPCS3 -* Updated Duckstation - -## Fixes -* PCSX2-QT is now looking for saves in the correct directory `~/retrodeck/saves/ps2/memcards` and not in `~/retrodeck/saves/ps2/pcsx2/memcards` - -# RetroDECK v0.5.3b - -### Release Date: 2022-10-28 - -## Bug fixes in v0.5.3b - -* Fixed inaccessible RetroArch shaders folder -* Fixed PSP saving issue when using RetroArch core -* Fixed ROM visibility for Dolphin when running standalone, which should address ability to use AR/Gecko codes -* Changed default RPCS3 launch method to fix games not starting properly -* Fixed PCSX2 (legacy) autosave loading issue -* (Hopefully) Fixed RetroAchievements login on PCSX2-QT - -## Changes in 0.5.3b -* Made Citra standalone the default 3DS emulator - -## Additions in 0.5.3b -* Added Citra SA sysdata folder to RetroDECK BIOS folder -* Added Yuzu save folders to RetroDECK saves folder -* A progress window during emulator initialization where it can look like RetroDECK has crashed - -# RetroDECK v0.5.2b - -### Release Date: 2022-10-14 - -## Bug fixes in 0.5.2b - -* Fixed a bug where the Citra save folder was duplicated -* Fixed a bug where scraped videos would not be played correctly for certain systems -* Fixed the Rewind Tool - -# RetroDECK v0.5.1b - -### Release Date: 2022-10-13 - -## Bug fixes in 0.5.1b - -* Fixed an issue with Yuzu not being compiled correctly in 0.5.0b - -# RetroDECK v0.5.0b - -### Release Date: 2022-10-12 - -## Important: New save folder structure and migration in 0.5.0b - -### General information - - -[I see ~ refereed in documentation and examples, what does it mean?](https://github.com/XargonWan/RetroDECK/wiki/FAQs:-Frequently-asked-questions#i-see--refereed-in-documentation-and-examples-what-does-it-mean) - -**Saves = game saves and save states**
-The word "saves" is used to reference both save files and save state files in this wiki article. Both files are treated in the same manner, the only difference is that saves are located at. - -**PLEASE BE PATIENT:**
-The migration of the saves only needs to be done once.
-Depending on how large roms library you have, this migration can take several minutes.
-If you have an extremely large roms library (+5.000 roms) this process can take over an hour. - -### Why are you changing the save folder structure? - -In the long run, it is about the safety of your saves and we feel it's better to tackle this now during the beta period then later. - -By default, RetroArch (which handles emulation of most older systems) puts all your saves together in one folder.
-This is normally not an issue, but what you if you want to play the same game but different versions of it across multiple systems?
-RetroArch has no way of telling the difference between a save for `Mortal Kombat 3` on the Sega Genesis and on the Super Nintendo when the saves are all bundled together. RetroDECK is moving to a save storage structure where every save file is in a per system sub-folder inside of the `~/retrodeck/saves/` for game saves or `~/retrodeck/states/` for save states. - -### How saves are stored in RetroDECK pre 0.5.0b: - -_Example: Structure of the `~/retrodeck/saves/` folder_ - - ~/retrodeck/saves/Final Fantasy 3.save - - ~/retrodeck/saves/Sonic the Hedgehog.save - -_Example: Structure of the `~/retrodeck/states/` folder_ - - ~/retrodeck/saves/Final Fantasy VI.savestate - - ~/retrodeck/saves/Sonic the Hedgehog 2.savestate - - -### How saves are stored in RetroDECK post 0.5.0b: - -_Example: Structure of the `~/retrodeck/saves/` folder and with new sub-folders_ - - ~/retrodeck/saves/nes/Super Mario Bros. 3.save - - ~/retrodeck/saves/genesis/Sonic the Hedgehog.save - -_Example: Structure of the `~/retrodeck/states/` folder_ - - ~/retrodeck/states/snes/Final Fantasy VI.savestate - - ~/retrodeck/states/genesis/Sonic the Hedgehog 2.savestate - -Since RetroArch will be looking for your saves in new locations, RetroDECK will do its best to sort your saves into the new structure automatically, so you likely won't need to do anything except enjoy knowing your saves are safer than ever. - -### How will it work? - -* The fist time you run RetroDECK after upgrading from a previews version to 0.5.0b a new dialog prompt will appear letting you that the migration process will start after pressing `OK`. - -* The migration process matches up all of your saves with all of your ROMs. - -* Once a match is found, the save is moved to where the sub-folder it needs to be in. - -* At the end of the process RetroDECK will let you know if any saves could not be sorted automatically. - -* **NOTE:** Only saves created by RetroArch need to be sorted, standalone emulators such as Yuzu and Citra already use their own folder structure and don't need to go through this process. - -* **NOTE:** If a match can't be found (for instance if you have a save for Mortal Kombat 3 and have both the SNES and Genesis editions in your ROM library) the save will be left alone and will need to be sorted manually, since only you will know for sure what system you were playing that game on. - -### Where will my saves be moved to? - -The saves will still be in the `~/retrodeck/saves` folder, but will also be moved into a new folder that matches what system the associated game is on. - - _Example: Game save - The Legend of Zelda on the NES_
- -`~/retrodeck/saves/The Legend of Zelda.save` - - will be moved to - - `~/retrodeck/saves/nes/The Legend of Zelda.save` - - _Example 2: Save state - Super Mario Bros 3 on the NES_
- -`~/retrodeck/states/Super Mario Bros 3.savestate` - - will be moved to - - `~/retrodeck/states/nes/Super Mario Bros 3.savestate` - -### Why could not all saves be moved automatically? - -If you have a large ROM library, it is likely you will have multiple versions of the same game across multiple systems. - -RetroArch creates save files that have the same name as the original ROM file. If there are multiple ROM files with the same name as a save, there is no way to tell which system the save belongs to. - -In the interest of ultimate safety for your saves, we only sort files we can be sure of. It is unfortunate that some saves may need to be sorted manually for some users, but this is a one time process that will keep your saves safer in the long run. - -### How do I move them manually? - -The saves can be moved like any other file, using the Dolphin file manager included in the Steam Deck desktop mode to the corresponding sub-folder inside `/retrodeck/saves/(system sub-folder)`. - -### Where can I find saves that could not be moved? - -If you see a message after the migration process saying some of your saves could not be sorted automatically, they will be found where they have always been, in `~/retrodeck/saves` or `~/retrodeck/states`. - -In the `~/retrodeck` folder there will also be a file called `manual_sort_needed.log` listing every save that could not be sorted automatically with a reason it was not moved. In order to be used again, these files will need to be moved into the folder matching the name of the system that the game the save belongs to runs on. - -For example, this save file could not be sorted automatically, because there are multiple ROMs in the library with the same name. - -**Example: Game saves**
-* New theme 1: [Alekfull-NX-Light](https://github.com/anthonycaccese/alekfull-nx-retropie/tree/retro-deck-esde-1.x-light) for ES-DE -![rd-theme-RetrofixRevisited-GamelistView](https://user-images.githubusercontent.com/1454947/193457594-b803546b-36eb-4e71-9eca-bfee1d81ba36.jpeg) -![rd-theme-RetrofixRevisited-SystemView](https://user-images.githubusercontent.com/1454947/193457596-05dc4316-9f2a-41ae-aa27-9609c680ec5a.jpeg) - -## Updates & minor additions in 0.5.0b - -* New variables system: now some variables such as game folder location are saved in /var/config/retrodeck/retrodeck.cfg. -* Rewritten build and publication workflows -* Updated ES-DE from 1.2.4 to 1.2.6
(Please note that not all the supported emulators in ES-DE are included in RetroDECK at this moment)
-For the full ES-DE patch notes follow these links:
-[1.2.5 Patch Notes](https://gitlab.com/es-de/emulationstation-de/-/blob/master/CHANGELOG.md#version-125)
-[1.2.6 Patch Notes](https://gitlab.com/es-de/emulationstation-de/-/blob/master/CHANGELOG.md#version-126) -* Updated RetroArch, updated all cores and added new cores from 1.10.2 to 1.11.1
-[1.10.3 Patch Notes](https://www.libretro.com/index.php/retroarch-1-10-3-release/)
-[1.11.1 Patch Notes](https://www.libretro.com/index.php/retroarch-1-11-0-release/)
-* Updated all the standalone emulators to their latest releases -* Updated all included themes to their latest version. - -## Bug fixes in 0.5.0b - -* Removed the unavailable emulators from the ES-DE interface to avoid confusion. -* Solved an issue where Dolphin (Standalone) was not saving in the intended directories. -* Various smaller bug fixes, for a more detailed list check the [issues list](https://github.com/XargonWan/RetroDECK/issues?q=is%3Aissue+milestone%3A0.5.0b+) \ No newline at end of file diff --git a/wiki-rtd/Yuzu:-Mods.md b/wiki-rtd/Yuzu:-Mods.md deleted file mode 100644 index 9000da34..00000000 --- a/wiki-rtd/Yuzu:-Mods.md +++ /dev/null @@ -1,33 +0,0 @@ -# Yuzu - -**Note:**
-`TITLEID` is different for every game. - -## How do I add mods? - -**Requirements:** Mod files
- -**NOTE:** On the Steam Deck this could be easier to do in `Desktop Mode`. - -There are two ways of adding mods into Yuzu - -### From Yuzu directly -1. Extract any mod files from compressed `.zip` or any other format to folders. -2. Open up Yuzu inside `RetroDECK Configurator` by pressing `Open Emulator` - `Yuzu`. -3. Right click on the game you want to add mods into. -4. Click on `Open Mod Data Destination`. -5. Paste the mod folders inside that directory. -6. Right clicking on the game and selecting `Properties`. -7. Enable the mods you want to enable by pressing the checkboxes in the `Add-Ons` tab and press OK. -8. Quit Yuzu - -### From the mods/yuzu folder - - -1. Extract any mod files from compressed `.zip` or any other format into folders. -2. Go into `~/retrodeck/mods/yuzu/` and file the right folder for the game you want to add mods to. The folders are all named by `TITLEID`. -3. Move those folders into `~/retrodeck/mods/yuzu/` -4. Open up Yuzu inside `RetroDECK Configurator` by pressing `Open Emulator` - `Yuzu`. -5. Right clicking on the game and selecting `Properties`. -6. Enable the mods you want to enable by pressing the checkboxes in the `Add-Ons` tab and press OK. -7. Quit Yuzu diff --git a/wiki-rtd/_Sidebar.md b/wiki-rtd/_Sidebar.md deleted file mode 100644 index cc786846..00000000 --- a/wiki-rtd/_Sidebar.md +++ /dev/null @@ -1,65 +0,0 @@ -# Wiki startpage -[Home[(/XargonWan/RetroDECK/wiki)] - -## RetroDECK: Getting started -- [How to: Getting started[(How-to:-Getting-started.md)] -- [FAQs: Frequently asked questions[(FAQs:-Frequently-asked-questions.md)] -- [EmulationStation DE: User Guide[(EmulationStation-DE:-User-Guide.md)] - -## RetroDECK: General information -- [How to: Manage your games[(How-to:-Manage-your-games.md)] -- [Emulators: What's included?[(Emulators:-What's-included?.md)] -- [Emulators: BIOS and Firmware[(Emulators:-BIOS-and-Firmware.md)] -- [Emulators: Different controller layouts[(Emulators:-Diffrent-controller-layouts.md)] -- [Emulators: Supported folders and files[(Emulators:-Supported-folders-and-files.md)] -- [EmulationStation DE: Themes[é(EmulationStation-DE:-Themes.md)] - -## RetroDECK: Configuration -- [RetroDECK: Configurator[(RetroDECK:-Configurator.md)] -- [RetroDECK: CLI[(RetroDECK:-CLI.md)] -- [RetroDECK: Folders and filepaths[(RetroDECK:-Folders-and-filepaths.md)] - -## RetroDECK: Development -- [Development: General notes[(Development:-General-notes.md)] -- [Known Issues[(Known-Issues.md)] -- [Version history: Patch Notes[(Version-history:-Patch-Notes.md)] -- [How can I help with testing?[(How-can-I-help-with-testing?.md)] - - -## Emulator Guides: -- [Playstation 3: RPCS3[(Playstation-3:-RPCS3.md)] -- [Switch: Yuzu[(Switch:-Yuzu.md)] - -## Mod Guides: -- [Yuzu: Mods[(Yuzu:-Mods.md)] -- [Citra: Mods[(Citra:-Mods.md)] -- [Dolphin and Primehack: Mods[(Dolphin-and-Primehack:-Mods.md)] - -## Texture Packs Guides: - -- [Citra: Texture Packs[(Citra:-Texture-Packs.md)] -- [Dolphin and Primehack: Texture Packs[(Dolphin-and-Primehack:-Texture-Packs.md)] -- [Duckstation: Texture Packs[(Duckstation:-Texture-Packs.md)] -- [RetroArch Mesen: Texture Packs[(RetroArch-Mesen:-Texture-Packs.md)] -- [RetroArch Mupen64Plus Next: Texture Packs[(RetroArch-Mupen64Plus-Next:-Texture-Packs.md)] -- [PPSSPP: Texture Packs[(PPSSPP:-Texture-Packs.md)] -- [PCXS2: Texture Packs[(PCXS2:-Texture-Packs.md)] - -## Steam Deck -- [Steam Deck: Installation and updates[(Steam-Deck:-Installation-and-updates.md)] -- [Steam Deck: Hotkeys and controls[(Steam-Deck:-Hotkeys-and-controls.md)] -- [Steam Deck: Optimizations[(Steam-Deck:-Optimizations.md)] -- [Steam Deck: Software recommendations[(Steam-Deck:-Software-recommendations.md)] - -## Linux Desktop -- [Linux Desktop: Software recommendations[(Linux-Desktop:-Software-recommendations.md)] - -## Other Devices -- (More information later) - -## Credits & Other -- [RetroDECK: Credits and The Team[(RetroDECK:-Credits-and-The-Team.md)] -- [RetroDECK: The story of RetroDECK[(RetroDECK:-The-story-of-RetroDECK.md)] -- [RetroDECK: Social media rules[(RetroDECK:-Social-media-rules.md)] -- [Licences[(Licences.md)] -- [Archive[(Archive.md)] \ No newline at end of file diff --git a/wiki-rtd/conf.py b/wiki-rtd/conf.py deleted file mode 100644 index be805dcb..00000000 --- a/wiki-rtd/conf.py +++ /dev/null @@ -1,28 +0,0 @@ -project = 'RetroDECK' -author = 'RetroDECK Team' - -extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.doctest', - 'sphinx.ext.intersphinx', - 'sphinx.ext.todo', - 'sphinx.ext.coverage', - 'sphinx.ext.mathjax', - 'sphinx.ext.ifconfig', - 'sphinx.ext.viewcode', - 'sphinx_rtd_theme', - 'myst_parser', -] - -language = 'English' -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] -html_theme = "sphinx_rtd_theme" - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -source_suffix = [".md"] -# source_suffix = '.rst' - -# The master toctree document. -master_doc = "index" \ No newline at end of file diff --git a/wiki-rtd/index.md b/wiki-rtd/index.md deleted file mode 100644 index ce5bec03..00000000 --- a/wiki-rtd/index.md +++ /dev/null @@ -1,151 +0,0 @@ -### RetroDECK Wiki -

- RetroDECK logo -

- -![Flathub](https://img.shields.io/flathub/downloads/net.retrodeck.retrodeck) -![Flathub](https://img.shields.io/flathub/v/net.retrodeck.retrodeck) -![Discord](https://img.shields.io/discord/951662718102962256?label=discord) -![GitHub](https://img.shields.io/github/license/XargonWan/RetroDECK) - -Welcome to the **RetroDECK wiki**! - -### 🏗️ This wiki is currently under construction 🏗️ - -# What is RetroDECK? -RetroDECK is a [EmulationStation Desktop Edition](https://es-de.org) powered application that builds in a variety of emulators and other software that allows you to play your favorite retro (and even not-so-retro) games in a tidy contained flatpak sandbox environment. It's inspired by embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera. - -You can also check out our: [Flathub Page](https://flathub.org/apps/net.retrodeck.retrodeck)
- -## What devices/systems does RetroDECK support: - -### Steam Deck - -Supported from the start and RetroDECK is tailored to the Steam Deck during the beta period. The goal is that all the configurations are ready out-of-the-box and optimized towards the Steam Deck. - -### Linux Desktop -Technically it is working, but the user experience might not be that great it could contain desktop specific bugs and other issues. -You will also need to manually configure the input to match your desktop and might need to tweak more settings. If you want to try it make sure that your distribution has flatpak support (else you will need to install it).
-We will start to have a bigger desktop focus after the beta period is over. - - -### Other SteamOS or Linux handheld gaming devices with flatpak support -We do plan to support other SteamOS based devices in the future. But during the BETA we are focusing on the Steam Deck.
-You can get it to run on other Linux based devices it is not just as seamless as we want it to be and does not live up to our higher standards.
-You will need to manually configure the input to match your device and might need to tweak more settings if you try it on a none Steam Deck device. There might also be some hardware specific bugs. - -## Do you have any plans for other systems? -RetroDECK does not have plans to support Windows, macOS, Android, or iOS.
For similar functionality on Windows you could explore [Retrobat](https://www.retrobat.org/) as an alternative. - - -## How do I start using RetroDECK? - -Please read the [How to: Getting started](https://github.com/XargonWan/RetroDECK/wiki/How-to:-Getting-started) - -## RetroDECK is currently in in BETA and is not a full release. - -- What does "currently in beta" mean?, It means that the software is still under heavy development and big updates can be made that change, add, or remove features. - -- RetroDECK is missing some minor and major; emulators, features and configurations. The goal is to have them added over time.
- Please check the [Known Issues](https://github.com/XargonWan/RetroDECK/wiki/Known-Issues) page and the [Issue tracker](https://github.com/XargonWan/RetroDECK/issues) for more information. - -- RetroDECK during the BETA period only supports the Steam Deck, but for the full release we should have full Linux Desktop support read more at [FAQs: General questions](https://github.com/XargonWan/RetroDECK/wiki/FAQs:-Frequently-asked-questions#general-questions). -- The "b" in the versioning stands for BETA but RetroDECK is perfectly fine for daily use even during the beta phase, albeit some features are missing. To see what features are missing check the: [Known Issues page](https://github.com/XargonWan/RetroDECK/wiki/Known-Issues). - -## The RetroDECK community: - -[Website](https://retrodeck.net)
-[Discord](https://discord.gg/Dz3szYsP8g)
-[Lemmy](https://lemmy.zip/c/retrodeck)
-[Subreddit](https://www.reddit.com/r/retrodeck)
- -# Whats the long term vision and goals? -The long term vision and goals of the project is an all-in-one application to manage your entire retro games library that is: - -- Already configured and should just work with your games. - -- Has disaster recovery and multi device support: with cloud saves and syncs. - -- Easy to install with one click installation. - -- Easy to use and provide a "Console-like / Batocera-like" featured user experience. - -- Easy to manage your collections of roms, mods and romhacks. - -- As much as possible should be configurable from inside RetroDECK itself without needing to exiting the application. - -- Make tighter integrations with bundled emulators and expose more features and ways to handle them to the end users. - -- Should be secure, safe, and stable. - -- Should have an easy way to mange external controllers and other inputs. - -- Should support a majority of all supported Emulators in ES-DE - -- Should in the long run support applications outside of the scope of ES-DE - -- Should be plug and play and fill the need for a portable retro gaming solution that you can bring on the go to a friend’s/family/others house. Just dock into the TV and get going! - -- Should fully support Steam Deck, SteamOS based devices and the Linux Desktop. - -- AND MORE - -# Can I contribute to the project? -Yes! Everybody is welcome to contribute in any way possible if it is personal time or funds. - -- Do you know how to code and want to contribute? Please join the development team! - -- Maybe you know graphics, art or UI & UX design? Join the discussion! - -- You can just help by helping others in the support or guide people on various social media and communication platforms. - -- You can also help by just finding and testing the best configurations for the emulators and the roms. - -- Or just help us by doing bug reports on all the issues you find (please check old issues first before submitting a new one). - -- By joining the ✨-new-helpers-start-here channel on [Discord](discord.gg/Dz3szYsP8g) and keeping an eye on the [issues](https://github.com/XargonWan/RetroDECK/issues) tab as well as the [Roadmap](https://github.com/XargonWan/RetroDECK/milestones) tab, you can be up to speed on the latest developments on RetroDECK. - -- We have a [Patreon](https://www.patreon.com/RetroDECK) page if you want to help us keep our build servers running or just buy us a beverage. - -## Any specific examples of what you need help with? - -### Artist/Creators: -- Create new pixel art for the Radial menus. - -- Create easter egg art for various holidays and functions. - -- Create menu art for a new Configurator. - -- Create input art that can be shown when you start a game. - -- Create input art guides for the wiki for the Steam Deck and later various controllers. - -- Create patch note and hype videos. - -- Create instruction videos. - -- Help us make RetroDECK better. - -### Developers: -- Help us put in and make new features. - -- Help us make the Configurator a godot application with full controller support. - -- Help us get releases out faster. - -- Help us make RetroDECK better. - -### Testers: -- Help us test cooker builds and submit bugs and feedback. - -- Help us make RetroDECK better. - -### Everyone: - -- Be kind and follow the rules. - -- Spread the word of RetroDECK if you like it, if you don't like it or have suggestions put them on github into issues or discuss them on discord. - -- Engage with the rest of the community. - -- Help us make RetroDECK better. diff --git a/wiki-rtd/requirements.txt b/wiki-rtd/requirements.txt deleted file mode 100644 index 06e83580..00000000 --- a/wiki-rtd/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -sphinx_rtd_theme -myst-parser \ No newline at end of file