MAME: merged cooker-0.8.0b + updated manifest

This commit is contained in:
XargonWan 2023-10-11 17:15:30 +02:00
commit 9f89f1eb38
861 changed files with 37932 additions and 5161 deletions

View file

@ -1,13 +1,16 @@
name: cooker-selfhosted
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'
@ -30,35 +33,49 @@ jobs:
run: sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
continue-on-error: true
- name: Generate build ID
id: generating_buildid
run: echo "##[set-output name=build-id;]$(echo "$( git rev-parse --short HEAD )")"
- name: Clone RetroDECK repo
uses: actions/checkout@v3
with:
submodules: 'true'
- uses: actions/checkout@v3
- name: "Install dependencies"
run: "automation_tools/install_dependencies.sh"
- name: Initialize environment
- name: Generate cooker build ID
run: |
git pull
git submodule init
git submodule update
sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y --noninteractive \
org.kde.Sdk//6.3 \
org.kde.Platform//6.3 \
org.freedesktop.Platform.ffmpeg-full/x86_64/22.08 \
io.qt.qtwebengine.BaseApp/x86_64/6.3 \
org.freedesktop.Sdk.Extension.llvm13 \
org.freedesktop.Sdk.Extension.dotnet6/x86_64/22.08 \
runtime/org.freedesktop.Platform.ffmpeg-full/x86_64/22.08
/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh # Run pre-build automation tasks
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"
- 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.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: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh"
- name: Build flatpak
run: |
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 ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh"
- name: Create Artifact for flathub
run: |
@ -69,36 +86,64 @@ jobs:
continue-on-error: true
- name: Create Bundle
run: |
flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.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.GITHUB_REF_SLUG }}-${{ steps.generating_buildid.outputs.build-id }}"
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.flatpak,RetroDECK-Artifact.tar.gz"
artifacts: "RetroDECK-cooker.flatpak,RetroDECK-Artifact.tar.gz"
allowUpdates: true
#prerelease: true
makeLatest: true
#draft: 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.flatpak
- name: Upload RetroDECK-cooker.flatpak
uses: actions/upload-artifact@v3
with:
name: retrodeck-flatpak
path: RetroDECK.flatpak
path: RetroDECK-cooker.flatpak
continue-on-error: true

View file

@ -1,5 +1,5 @@
name: PUSH-main-flathub
name: "Push main on Flathub"
on:
workflow_dispatch:
@ -9,6 +9,7 @@ jobs:
Pushing_main_into_flathub:
runs-on: ubuntu-latest
steps:
- name: Pushing
shell: bash
run: |
@ -47,17 +48,35 @@ jobs:
# Copying only a few files as the others are cloned by git in retrodeck.sh
cd $gits_folder/RetroDECK
cp -rf \
'flathub.json' \
'LICENSE' \
'flathub.yml' \
'README.md' \
$gits_folder/flathub/
cd $gits_folder/flathub
ls -lah
# manipulating manifest
mv flathub.yml net.retrodeck.retrodeck.yml
# Creating the manifest for flathub
manifest='net.retrodeck.retrodeck.yml'
sed -n '/cleanup/q;p' $gits_folder/RetroDECK/net.retrodeck.retrodeck.yml > $manifest
sed -i '/^[[:space:]]*#/d' $manifest
sed -i 's/[[:space:]]*#.*$//' $manifest
cat << EOF >> $manifest
modules:
- name: retrodeck
buildsystem: simple
build-commands:
- cp -rn files/* /app
sources:
- type: archive
url: https://artifacts.retrodeck.net/artifacts/RetroDECK-Artifact.tar.gz
sha256: __SHA__
EOF
cat << EOF >> flathub.json
{
"only-arches": ["x86_64"]
}
EOF
# Getting latest release name
# version=$(\

View file

@ -1,9 +1,19 @@
name: main-selfhosted
name: "Build main"
on:
push:
branches:
- main
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:
- main
@ -22,35 +32,43 @@ jobs:
run: sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
continue-on-error: true
- name: Generate build ID
id: generating_buildid
run: echo "##[set-output name=build-id;]$(echo "$( git rev-parse --short HEAD )")"
- name: Clone RetroDECK repo
uses: actions/checkout@v3
with:
submodules: 'true'
- uses: actions/checkout@v3
- name: "Install dependencies"
run: "automation_tools/install_dependencies.sh"
- name: Initialize enviornment
run: |
git pull
git submodule init
git submodule update
sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y --noninteractive \
org.kde.Sdk//6.3 \
org.kde.Platform//6.3 \
org.freedesktop.Platform.ffmpeg-full/x86_64/22.08 \
io.qt.qtwebengine.BaseApp/x86_64/6.3 \
org.freedesktop.Sdk.Extension.llvm13 \
org.freedesktop.Sdk.Extension.dotnet6/x86_64/22.08 \
runtime/org.freedesktop.Platform.ffmpeg-full/x86_64/22.08
/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh # Run pre-build automation tasks
- name: Run pre-build automation tasks
run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh"
- name: Read manifest content
id: read_manifest
run: echo "::set-output name=file_content::$(cat net.retrodeck.retrodeck.yml)"
# - name: "Updating release notes in appdata"
# run: "automation_tools/appdata_management.sh"
- name: Check versions (main only)
id: check_version_string
run: "automation_tools/main_version_checker.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.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: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh"
- name: Build flatpak
run: |
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 ${GITHUB_WORKSPACE}/retrodeck-flatpak-main net.retrodeck.retrodeck.yml
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh"
- name: Create Artifact for flathub
run: |
@ -61,8 +79,7 @@ jobs:
continue-on-error: true
- name: Create Bundle
run: |
flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh"
- name: Getting version info
id: version
@ -84,7 +101,6 @@ jobs:
bodyFile: "body.md"
artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz"
allowUpdates: true
#prerelease: true
makeLatest: true
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK

View file

@ -0,0 +1,34 @@
name: Update-ReadTheDocs
on:
gollum
# push:
# branches:
# - main
# paths:
# - 'wiki-rtd'
# pull_request:
# branches:
# - main
# paths:
# - 'wiki-rtd'
# workflow_dispatch:
jobs:
Job1_-_Building_P1:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Update ReadTheDocs wiki-rtd
id: wiki-rtd-update
run: |
git checkout https://github.com/XargonWan/RetroDECK.wiki-rtd.git tmp/wiki-rtd
cp -rf tmp/wiki-rtd/* wiki-rtd
rm wiki-rtd/index.md
mv wiki-rtd/Home.md wiki-rtd/index.md
git commit -m "Updating wiki-rtd"
git push

57
.github/workflows/submodule-update.yml vendored Normal file
View file

@ -0,0 +1,57 @@
name: Sunday Submodule Update
on:
# At 4:00 (CET)
schedule:
- cron: '0 2 * * 0'
workflow_dispatch:
jobs:
update_submodules:
name: Update submodules and create PR
runs-on: ubuntu-latest
steps:
- name: Checkout repo with submodules
uses: actions/checkout@v2
with:
token: ${{ secrets.REPO_TOKEN }}
submodules: recursive
- name: Fetch all remote branches
run: git fetch --all
- name: List cooker branches by date
id: list_branches
run: |
BRANCHES=$(git for-each-ref --sort=-committerdate refs/remotes/origin/cooker* --format='%(refname)') echo “::set-output name=branches::$BRANCHES”
- name: Select target branch
id: select_branch
run: |
TARGET_BRANCH=(echo{{ steps.list_branches.outputs.branches }} | head -n 1)
echo “::set-output name=target_branch::$TARGET_BRANCH”
git checkout $TARGET_BRANCH
echo "Working on $TARGET_BRANCH"
- name: Update submodules with command
run: git submodule update --remote --merge --recursive
- name: Configure Git credentials
run: |
git config --global user.name 'GitHub bot'
git config --global user.email 'bot@noreply.github.com'
- name: Commit and push changes
run: |
git commit -am "Sunday submodule update"
git push origin HEAD:submodule-update
- name: Create PR
uses: repo-sync/pull-request@v2
with:
github_token: ${{ secrets.REPO_TOKEN }}
pr_title: "Sunday submodule update"
pr_body: "This PR updates the submodules to the latest commit on their remote repositories."
source_branch: "submodule-update"
destination_branch: "cooker*"

4
.gitignore vendored
View file

@ -13,5 +13,7 @@ Thumbs.db
.flatpak-builder/
retrodeck-flatpak-cooker/
retrodeck-flatpak/
bakcup
backup
.old
tmp
.godot

3
.gitmodules vendored
View file

@ -4,3 +4,6 @@
[submodule "rd-submodules/shared-modules"]
path = rd-submodules/shared-modules
url = https://github.com/flathub/shared-modules.git
[submodule "rd-submodules/ryujinx"]
path = rd-submodules/ryujinx
url = https://github.com/flathub/org.ryujinx.Ryujinx

31
.readthedocs.yaml Normal file
View file

@ -0,0 +1,31 @@
# 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

View file

@ -6,16 +6,11 @@
![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
**RetroDECK** brings an environment to catalog and play your retro games directly from SteamOS and it's tailored specifically for the **Steam Deck**.
# RetroDECK on your device!
It's inspired by embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera.
Powered by [EmulationStation Desktop Edition](https://es-de.org), which uses RetroArch and other standalone emulators to allow you to import and play your favorite retro (and even not-so-retro) games in a tidy environment without flooding your Steam library.
Visit our [website](https://retrodeck.net) and Join our [Discord](https://discord.gg/Dz3szYsP8g)!
<p float="center">
<img src="https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen03.jpeg?raw=true" alt="screenshot" width="300"/>
<img src="https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen04.jpeg?raw=true" alt="screenshot" width="300"/><br/>
@ -24,22 +19,60 @@ Visit our [website](https://retrodeck.net) and Join our [Discord](https://discor
</p>
<br/>
## What does it mean to be "tailored for the Steam Deck"?
It means that all the configurations are ready to go and tweaked to get the best graphics and performance on the Deck without having the hassle of choosing, installing and configuring tons of emulators: just put your games in the roms folder, provide your own bioses and start your games.
## 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.
## Do I have to partition my disk to install it?
No partitioning or formatting is required. RetroDECK (differently from AmberELEC, Batocera and others) comes as a flatpak: just install it as any other application and launch it from your desktop or Steam library. You still retain the ability to return to SteamOS by pressing the Steam button or opening the Quick Access menu while using RetroDECK.
You can also check out our: [Flathub Page](https://flathub.org/apps/net.retrodeck.retrodeck)<br/>
## Is it available on Windows?
No, RetroDECK doesn't support Windows, but the project is fully open source so you can port it if you wish. As an alternative, [Retrobat](http://www.retrobat.ovh/) offers similar functionality (but may not be compatible with RetroDECK's rom paths).
## What devices/systems does RetroDECK support:
## How can I install it?
Just install it from Discover store.<br/>
However if you want to test the cooker version you can follow the [Installation instructions](https://github.com/XargonWan/RetroDECK/wiki/How-to:-Getting-started) on the Wiki
### Steam Deck
## Can I help?
Of course, any help is appreciated, and not only by programming, just check out our [Discord](https://discord.gg/Dz3szYsP8g)!
<br/><br/><br/>
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).<br>
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.<br/>
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.<br/>
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.
###### *The Steam Deck logo is a registered trademark of Valve Corporation. This project is in no way officially affiliated with Valve.<br/>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.*
## Do you have any plans for other systems?
RetroDECK does not have plans to support Windows, macOS, Android, or iOS.<br>For similar functionality on Windows you could explore [Retrobat](https://www.retrobat.org/) as an alternative.
## 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:
[Website](https://retrodeck.net) <br/>
[Wiki](https://github.com/XargonWan/RetroDECK/wiki) <br/>
[Discord](https://discord.gg/Dz3szYsP8g)<br/>
[Lemmy](https://lemmy.zip/c/retrodeck)<br/>
[Subreddit](https://www.reddit.com/r/retrodeck)
# Short FAQ
Please read the [Wiki](https://github.com/XargonWan/RetroDECK/wiki) for even more information.
## 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.<br/>
###### 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.

View file

@ -0,0 +1,94 @@
#!/bin/bash
# THIS SCRIPT IS BROKEN HENCE DISABLED FTM
# This script is getting the latest release notes from the wiki and add them to the appdata
source automation_tools/version_extractor.sh
# Fetch appdata version
appdata_version=$(fetch_appdata_version)
echo -e "Appdata:\t\t$appdata_version"
# Defining manifest file location
appdata_file="net.retrodeck.retrodeck.appdata.xml"
# Check if release with appdata_version already exists
if grep -q "version=\"$appdata_version\"" "$appdata_file"; then
echo "Deleting existing release version $appdata_version..."
# Remove the existing release entry
sed -i "/<release version=\"$appdata_version\"/,/<\/release>/d" "$appdata_file"
fi
echo "Adding new release version $appdata_version..."
# Get today's date in the required format (YYYY-MM-DD)
today_date=$(date +"%Y-%m-%d")
echo "Today is $today_date"
# Construct the release snippet
release_snippet="\
<releases>
<release version=\"$appdata_version\" date=\"$today_date\">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/$appdata_version</url>
<description>
RELEASE_NOTES_PLACEHOLDER
</description>
</release>"
# Read the entire content of the XML file
xml_content=$(cat "$appdata_file")
# Replace RELEASE_NOTES_PLACEHOLDER with the actual release notes
# TODO
git clone https://github.com/XargonWan/RetroDECK.wiki.git /tmp/wiki
# Path to the markdown file
wiki="/tmp/wiki/Version-history:-Patch-Notes.md"
# Read the markdown file until the first occurrence of "---"
latest_version_notes=""
while IFS= read -r line; do
if [ "$line" = "---" ]; then
break
fi
latest_version_notes+="$line\n"
done < "$wiki"
# Extract the version number
version_number="${latest_version_notes#*# RetroDECK }" # Remove text before "# RetroDECK "
version_number="${version_number%% -*}" # Remove text after " - "
# Extract sections from the latest version notes
sections=$(echo "$latest_version_notes" | awk '/##/ { print; }')
# Create a formatted section list
section_list=""
current_section=""
while IFS= read -r line; do
if [[ "$line" == "##"* ]]; then
if [ -n "$current_section" ]; then
section_list+="</ul>"
fi
section_name="${line##*# }"
section_list+="<p>${section_name}</p><ul>"
elif [[ "$line" == "- "* ]]; then
entry="${line#*- }"
section_list+="<li>${entry}</li>"
fi
done <<< "$sections"
if [ -n "$current_section" ]; then
section_list+="</ul>"
fi
# Replace RELEASE_NOTES_PLACEHOLDER with the actual release notes
release_description="${release_snippet/RELEASE_NOTES_PLACEHOLDER/$section_list}"
# Append the new release snippet to the content
modified_xml_content="${xml_content/<releases>/$release_description}"
# Overwrite the original XML file with the modified content
echo "$modified_xml_content" > "$appdata_file"
# Format the XML file
#xmlstarlet fo --omit-decl "$appdata_file"

View file

@ -1,5 +1,12 @@
# 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^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
latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main
outside_info^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid
branch^THISBRANCH

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
#!/bin/bash
# COOKER ONLY
# This script is adding the update portal (permission) to the cooker flatpak.
# This is ran by the cooker pipeline.
sed -i '/finish-args:/a \ \ - --talk-name=org.freedesktop.Flatpak' net.retrodeck.retrodeck.yml

View file

@ -0,0 +1,5 @@
#!/bin/bash
# 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

View file

@ -0,0 +1,14 @@
#!/bin/bash
# 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
flatpak-builder --user --force-clean \
--install-deps-from=flathub \
--install-deps-from=flathub-beta \
--repo=${GITHUB_WORKSPACE}/local \
--download-only \
${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker \
net.retrodeck.retrodeck.yml

View file

@ -0,0 +1,14 @@
#!/bin/bash
# This script is building the flatpak is the needed files are already downloaded
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 \
--disable-download \
${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker \
net.retrodeck.retrodeck.yml

View file

@ -1,5 +1,7 @@
#!/bin/bash
# WARNING: DANGEROUS! Don't use this script lightly
git submodule deinit --all
rm rd-submodules/retroarch
git rm -rf --cached rd-submodules/retroarch

View file

@ -0,0 +1,5 @@
#!/bin/bash
# This scritp is installing the required dependencies to correctly run the pipeline and buold the flatpak
sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2 curl
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

View file

@ -0,0 +1,63 @@
#!/bin/bash
# This script is used to check that the versions are correct and stopping the pipeline if something is wrong.
# This is designed to be run on the main pipeline to check that everything is in order before building RetroDECK.
source automation_tools/version_extractor.sh
# Set the file paths
appdata="net.retrodeck.retrodeck.appdata.xml"
manifest="net.retrodeck.retrodeck.yml"
manifest_content=$(cat "$manifest")
compare_versions() {
local manifest_version_cleaned=$(echo "$1" | sed 's/[a-zA-Z]//g')
local appdata_version_cleaned=$(echo "$2" | sed 's/[a-zA-Z]//g')
if [[ "$manifest_version_cleaned" == "$appdata_version_cleaned" ]]; then
return 0 # Versions are equal
fi
local IFS=.
local manifest_parts=($manifest_version_cleaned)
local appdata_parts=($appdata_version_cleaned)
for ((i=0; i<${#manifest_parts[@]}; i++)); do
if ((manifest_parts[i] > appdata_parts[i])); then
return 1 # Manifest version is greater
elif ((manifest_parts[i] < appdata_parts[i])); then
return 2 # Appdata version is greater
fi
done
return 0 # Versions are equal
}
repo_version=$(fetch_repo_version)
echo -e "Online repository:\t$repo_version"
manifest_version=$(fetch_manifest_version)
echo -e "Manifest:\t\t$manifest_version"
appdata_version=$(fetch_appdata_version)
echo -e "Appdata:\t\t$appdata_version"
# Additional checks
if [[ "$manifest_version" == "main" || "$manifest_version" == "THISBRANCH" ]]; then
echo "Manifest version cannot be 'main' or 'THISBRANCH'. Please fix it."
exit 1
fi
if [[ "$appdata_version" != "$manifest_version" ]]; then
echo "Appdata version is not equal to manifest version. Please fix it."
exit 1
fi
compare_versions "$repo_version" "$manifest_version"
result=$?
if [ "$result" -eq 1 ]; then
echo "Repository version is less than manifest version. Please fix it."
exit 1
fi
echo "All checks passed. Well done!"

19
automation_tools/pre_build_automation.sh Normal file → Executable file
View file

@ -15,6 +15,7 @@
rd_manifest=${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml
automation_task_list=${GITHUB_WORKSPACE}/automation_tools/automation_task_list.cfg
current_branch=$(git rev-parse --abbrev-ref HEAD)
echo "Manifest location: $rd_manifest"
echo "Automation task list location: $automation_task_list"
@ -23,10 +24,17 @@ echo "Task list contents:"
cat "$automation_task_list"
echo
# Update all collected information
while IFS="^" read -r action placeholder url branch
do
if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then
if [[ "$action" == "hash" ]]; then
if [[ "$action" == "branch" ]]; then
echo
echo "Placeholder text: $placeholder"
echo "Current branch:" "$current_branch"
echo
/bin/sed -i 's^'"$placeholder"'^'"$current_branch"'^g' $rd_manifest
elif [[ "$action" == "hash" ]]; then
echo
echo "Placeholder text: $placeholder"
echo "URL to hash: $url"
@ -53,6 +61,15 @@ do
appimagehash=$(curl -sL "$appimageurl" | sha256sum | cut -d ' ' -f1)
echo "AppImage hash found: $appimagehash"
/bin/sed -i 's^'"HASHFOR$placeholder"'^'"$appimagehash"'^' $rd_manifest
elif [[ "$action" == "outside_info" ]]; then
if [[ "$url" = \$* ]]; then # If value is a reference to a variable name
eval url="$url"
fi
echo
echo "Placeholder text: $placeholder"
echo "Information being injected: $(cat $url)"
echo
/bin/sed -i 's^'"$placeholder"'^'"$(cat $url)"'^' $rd_manifest
fi
fi
done < "$automation_task_list"

View file

@ -0,0 +1,34 @@
#!/bin/bash
# This script is intended to gather version information from various sources:
# RetroDECK repository
# Appdata.xml file
# Manifest YAML file
# It consists of three functions, each responsible for retrieving a specific version-related data.
appdata="net.retrodeck.retrodeck.appdata.xml"
manifest="net.retrodeck.retrodeck.yml"
manifest_content=$(cat "$manifest")
fetch_repo_version(){
# Getting latest RetroDECK release info
LATEST_RELEASE=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK/releases/latest")
# Extracting tag name from the latest release
repo_version=$(echo "$LATEST_RELEASE" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
# Printing results
echo "$repo_version"
}
fetch_appdata_version(){
# Extract the version from the net.retrodeck.retrodeck.appdata.xml file
appdata_version=$(grep -oPm1 "(?<=<release version=\")[^\"]+" "$appdata")
echo "$appdata_version"
}
fetch_manifest_version(){
# Use awk to extract the value of the first iteration of VERSION variable
manifest_version=$(echo "$manifest_content" | awk '/VERSION=/ && !/#/ { sub(/.*VERSION=/, ""); sub(/#.*/, ""); print; exit }')
# Trim leading and trailing whitespace
manifest_version=$(echo "$manifest_version" | awk '{$1=$1;print}')
echo "$manifest_version"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View file

@ -18,7 +18,7 @@ EnableWideScreenPatches = false
EnableNoInterlacingPatches = false
EnableRecordingTools = true
EnableGameFixes = true
SaveStateOnShutdown = true
SaveStateOnShutdown = false
ConsoleToStdio = false
HostFs = false
PatchBios = false
@ -334,6 +334,7 @@ ToggleVideoCapture = Keyboard/Control & Keyboard/V
IncreaseUpscaleMultiplier = Keyboard/Control & Keyboard/U
DecreaseUpscaleMultiplier = Keyboard/Control & Keyboard/Y
CycleAspectRatio = Keyboard/Control & Keyboard/W
ShutdownVM = Keyboard/Control & Keyboard/Q
ResetVM = Keyboard/Control & Keyboard/R
@ -446,3 +447,11 @@ PressureModifier = 0.500000
[GameList]
RecursivePaths = RETRODECKHOMEDIR/roms/ps2
[Achievements]
Enabled = false
ChallengeMode = false
Username =
Token =
LoginTimestamp =

View file

@ -375,7 +375,7 @@ Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq=Ctrl+2
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq\default=false
Shortcuts\Main%20Window\Exit%20Citra\Context=1
Shortcuts\Main%20Window\Exit%20Citra\Context\default=true
Shortcuts\Main%20Window\Exit%20Citra\KeySeq=Ctrl+Esc
Shortcuts\Main%20Window\Exit%20Citra\KeySeq=Ctrl+Q
Shortcuts\Main%20Window\Exit%20Citra\KeySeq\default=false
Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
@ -395,7 +395,7 @@ Shortcuts\Main%20Window\Increase%20Speed%20Limit\KeySeq=Ctrl+1
Shortcuts\Main%20Window\Increase%20Speed%20Limit\KeySeq\default=false
Shortcuts\Main%20Window\Load%20Amiibo\Context=3
Shortcuts\Main%20Window\Load%20Amiibo\Context\default=true
Shortcuts\Main%20Window\Load%20Amiibo\KeySeq=Ctrl+M
Shortcuts\Main%20Window\Load%20Amiibo\KeySeq=Alt+M
Shortcuts\Main%20Window\Load%20Amiibo\KeySeq\default=false
Shortcuts\Main%20Window\Load%20File\Context=1
Shortcuts\Main%20Window\Load%20File\Context\default=false
@ -451,7 +451,7 @@ Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\KeySeq=
Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\KeySeq\default=false
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context=1
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context\default=true
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq=Alt+0
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq=Ctrl+L
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq\default=false
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context=1
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context\default=true
@ -474,16 +474,16 @@ Updater\update_on_close=false
Updater\update_on_close\default=true
calloutFlags=1
calloutFlags\default=false
confirmClose=true
confirmClose\default=true
confirmClose=false
confirmClose\default=false
displayTitleBars=true
displayTitleBars\default=true
enable_discord_presence=true
enable_discord_presence\default=true
firstStart=false
firstStart\default=false
fullscreen=false
fullscreen\default=true
fullscreen=true
fullscreen\default=false
hideInactiveMouse=false
hideInactiveMouse\default=true
pauseWhenInBackground=false

View file

@ -1,10 +1,12 @@
[Audio]
audio_emulation=0
audio_emulation\default=true
enable_audio_stretching=true
enable_audio_stretching\default=true
enable_dsp_lle=false
enable_dsp_lle\default=true
enable_dsp_lle_multithread=false
enable_dsp_lle_multithread\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
@ -13,6 +15,8 @@ output_device=auto
output_device\default=true
output_engine=auto
output_engine\default=true
output_type=0
output_type\default=true
volume=@Variant(\0\0\0\x87?\x80\0\0)
volume\default=true
@ -178,6 +182,8 @@ LLE\NWM=false
LLE\NWM\default=true
LLE\PDN=false
LLE\PDN\default=true
LLE\PLGLDR=false
LLE\PLGLDR\default=true
LLE\PM=false
LLE\PM\default=true
LLE\PS=false
@ -197,10 +203,14 @@ LLE\SSL\default=true
gdbstub_port=24689
gdbstub_port\default=true
record_frame_times=false
renderer_debug=false
renderer_debug\default=true
use_gdbstub=false
use_gdbstub\default=true
[Layout]
anaglyph_shader_name=dubois (builtin)
anaglyph_shader_name\default=true
custom_bottom_bottom=480
custom_bottom_bottom\default=true
custom_bottom_left=40
@ -211,6 +221,8 @@ custom_bottom_top=240
custom_bottom_top\default=true
custom_layout=false
custom_layout\default=true
custom_second_layer_opacity=100
custom_second_layer_opacity\default=true
custom_top_bottom=240
custom_top_bottom\default=true
custom_top_left=0
@ -246,18 +258,18 @@ bg_red=0
bg_red\default=true
frame_limit=100
frame_limit\default=true
frame_limit_alternate=200
frame_limit_alternate\default=true
graphics_api=1
graphics_api\default=true
resolution_factor=1
resolution_factor\default=true
shaders_accurate_mul=true
shaders_accurate_mul\default=true
texture_filter_name=none
texture_filter_name\default=true
texture_filter=0
texture_filter\default=true
texture_filter_name=Linear (Default)
texture_filter_name\default=false
use_disk_shader_cache=true
use_disk_shader_cache\default=true
use_frame_limit_alternate=false
use_frame_limit_alternate\default=true
use_hw_renderer=true
use_hw_renderer\default=true
use_hw_shader=true
@ -268,12 +280,16 @@ use_vsync_new=true
use_vsync_new\default=true
[System]
allow_plugin_loader=true
allow_plugin_loader\default=true
init_clock=0
init_clock\default=true
init_time=946681277
init_time\default=true
is_new_3ds=true
is_new_3ds\default=true
plugin_loader=false
plugin_loader\default=true
region_value=-1
region_value\default=true
@ -332,7 +348,7 @@ Paths\moviePlaybackPath=
Paths\movieRecordPath=
Paths\recentFiles=@Invalid()
Paths\romsPath=
Paths\screenshotPath=
Paths\screenshotPath=RETRODECKHOMEDIR/screenshots
Paths\symbolsPath=
Paths\videoDumpingPath=
Shortcuts\Main%20Window\Advance%20Frame\Context=2
@ -347,6 +363,10 @@ Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context=1
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context\default=true
Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq=F4
Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Decrease%203D%20Factor\Context=1
Shortcuts\Main%20Window\Decrease%203D%20Factor\Context\default=false
Shortcuts\Main%20Window\Decrease%203D%20Factor\KeySeq=
Shortcuts\Main%20Window\Decrease%203D%20Factor\KeySeq\default=false
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\Context=2
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\Context\default=true
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq=-
@ -357,12 +377,16 @@ Shortcuts\Main%20Window\Exit%20Citra\KeySeq=Ctrl+Q
Shortcuts\Main%20Window\Exit%20Citra\KeySeq\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Esc
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=true
Shortcuts\Main%20Window\Fullscreen\Context=1
Shortcuts\Main%20Window\Fullscreen\Context\default=true
Shortcuts\Main%20Window\Fullscreen\KeySeq=F11
Shortcuts\Main%20Window\Fullscreen\KeySeq\default=true
Shortcuts\Main%20Window\Increase%203D%20Factor\Context=1
Shortcuts\Main%20Window\Increase%203D%20Factor\Context\default=false
Shortcuts\Main%20Window\Increase%203D%20Factor\KeySeq=
Shortcuts\Main%20Window\Increase%203D%20Factor\KeySeq\default=false
Shortcuts\Main%20Window\Increase%20Speed%20Limit\Context=2
Shortcuts\Main%20Window\Increase%20Speed%20Limit\Context\default=true
Shortcuts\Main%20Window\Increase%20Speed%20Limit\KeySeq=+
@ -402,19 +426,27 @@ Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Swap%20Screens\Context=1
Shortcuts\Main%20Window\Swap%20Screens\Context\default=true
Shortcuts\Main%20Window\Swap%20Screens\KeySeq=F9
Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Alternate%20Speed\Context=2
Shortcuts\Main%20Window\Toggle%20Alternate%20Speed\Context\default=true
Shortcuts\Main%20Window\Toggle%20Alternate%20Speed\KeySeq=Ctrl+Z
Shortcuts\Main%20Window\Toggle%20Alternate%20Speed\KeySeq\default=true
Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=false
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=Ctrl+Z
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=true
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq=Ctrl+F
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\Context=2
Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\Context=1
Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\Context\default=true
Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\KeySeq=Ctrl+A
Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\Context=1
Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\Context\default=true
Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\KeySeq=
Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\KeySeq\default=false
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context=1
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context\default=true
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq=F10
@ -468,6 +500,8 @@ theme=default
theme\default=true
[Utility]
async_custom_loading=true
async_custom_loading\default=true
custom_textures=false
custom_textures\default=true
dump_textures=false

View file

@ -9,8 +9,8 @@ Square = 1-29,10-191
Triangle = 1-47,10-188
Start = 1-62,10-197
Select = 1-66,10-196
L = 1-45,10-194
R = 1-51,10-195
L = 1-45,10-193
R = 1-51,10-192
An.Up = 1-37,10-4003
An.Down = 1-39,10-4002
An.Left = 1-38,10-4001

View file

@ -286,6 +286,10 @@ gambatte_gb_link_network_server_ip_9 = "0"
gambatte_gb_palette_pixelshift_1 = "PixelShift 01 - Arctic Green"
gambatte_gb_palette_twb64_1 = "TWB64 001 - Aqours Blue"
gambatte_gb_palette_twb64_2 = "TWB64 101 - 765PRO Pink"
gambatte_gb_input_player1_l = "nul"
gambatte_gb_input_player1_l_btn = "nul"
gambatte_gb_input_player1_r = "nul"
gambatte_gb_input_player1_r_btn = "nul"
gambatte_gbc_color_correction = "GBC only"
gambatte_gbc_color_correction_mode = "accurate"
gambatte_gbc_frontlight_position = "central"

View file

@ -3071,7 +3071,7 @@ savestates_in_content_dir = "false"
scan_without_core_match = "false"
screen_brightness = "100"
screen_orientation = "0"
screenshot_directory = ":\screenshots"
screenshot_directory = "RETRODECKHOMEDIR/screenshots"
screenshots_in_content_dir = "false"
settings_show_accessibility = "true"
settings_show_achievements = "true"

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,974 @@
"controller_mappings"
{
"version" "3"
"revision" "60"
"title" "RetroDECK: Official Layout - Steam Controller"
"description" "RetroDECK: Steam Controller"
"creator" ""
"progenitor" ""
"url" ""
"export_type" ""
"controller_type" "controller_steamcontroller_gordon"
"controller_caps" "2179063"
"major_revision" "0"
"minor_revision" "0"
"Timestamp" "-952722512"
"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" "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"
{
}
"gameactions"
{
}
}
"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" "xinput_button JOYSTICK_LEFT, , "
}
}
}
"disabled_activators"
{
}
}
"button_back_right"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "xinput_button JOYSTICK_RIGHT, , "
}
}
}
"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"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Swap Screens, , "
"binding" "key_press TAB, Swap Screens, , "
}
}
}
"disabled_activators"
{
}
}
"button_back_right"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press ESCAPE, Escape, , "
}
}
}
"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 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 active"
"15" "left_trigger active"
"16" "right_trigger active"
}
}
"settings"
{
"left_trackpad_mode" "0"
"right_trackpad_mode" "0"
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,28 @@
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
- Extract any texture pack files from compressed .zip or any other format into folders.
- Go into ~/retrodeck/texture_packs/duckstation/. The folders are all named by TITLEID.
- Move textures into the right ~/retrodeck/texture_packs/duckstation/<TITLEID> folder.
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/Duckstation%3A-Texture-Packs
The RetroDECK Team

View file

@ -0,0 +1,32 @@
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.
- Extract the ScaryCastle TexturePACK HD.zip
- Move the extracted ScaryCastle TexturePACK HD folder into texture_packs/RetroArch-Mesen/
- Rename the ScaryCastle TexturePACK HD folder so it has the same name as the rom ScaryCastle USA without the .nes file extension.
- Start up RetroDECK and select the ScaryCastle nes games.
NOTE: On the Steam Deck go into GameMode first, then launch RetroDECK.
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/RetroArch-Mesen%3A-Texture-Packs
The RetroDECK Team

View file

@ -0,0 +1,30 @@
RetroArch - N64 - Mupen64Plus-Next
The directory 'texture_packs/RetroArch-Mupen64Plus/' corresponds to the '/retroarch/system/Mupen64plus/' folder.
Please note that some texture packs may be designed for a specific version or region of the game. Ensure you have the correct ROM and textures for it.
To enable Texture Packs in the Mupen64Plus-Next core for certain games, follow these steps:
1. Open the RetroArch Quick Menu.
2. Navigate to Core Options -> GLideN64.
3. Set 'Use High-Res Textures', 'Cache Textures', 'Use High-Res Full Alpha Channel', and 'Use Hi-Res Storage' to On.
4. Save the current configuration for that game under Core Options -> Manage Core Options -> Save Game Options.
Optionally, you can set 'Use High-Res Texture Cache Compression' to On to compress uncompressed HD Textures into .hts files.
To 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.
1. All texture packs go into the 'texture_packs//RetroArch-Mupen64Plus/hires_texture/' or 'texture_packs/RetroArch-Mupen64Plus/cache/' folder.
2. The texture pack must be extracted from .zip or other compressed format into a folder.
For compressed textures stored in .hts files, place them in the 'texture_packs/RetroArch-Mupen64Plus/cache/' folder.
For uncompressed textures stored in loose folders or files, place them in the 'texture_packs/RetroArch-Mupen64Plus/hires_texture/' folder.
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/RetroArch-Mupen64Plus-Next%3A-Texture-Packs
The RetroDECK Team

View file

@ -0,0 +1,26 @@
PCSX2 - Playstation 2
The directory '~/retrodeck/texture_packs/PCSX2/' corresponds to the '/PCSX2/textures/' folder in PCSX2.
Please note that some texture packs may be designed for a specific version or region of a game. Ensure you have the correct game and textures for it.
Also, keep in mind that 'TITLEID' is different for every game.
To enable Custom Textures, follow these steps:
1. Open up PCSX2 inside RetroDECK Configurator by pressing 'Open Emulator' - 'PCSX2'.
2. Press 'Settings' -> 'Graphics'.
3. Set 'Load Textures' and 'Async Texture Loading' to On.
To add texture packs, you'll need the texture pack files. On the Steam Deck, this could be easier to do in Desktop Mode.
For direct texture folder:
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 correct '~/retrodeck/texture_packs/PCSX2/<TITLEID>' folder.
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/PCSX2%3A-Texture-Packs
The RetroDECK Team

View file

@ -0,0 +1,26 @@
PPSSPP - PSP
The directory '~/retrodeck/texture_packs/ppsspp/' corresponds to the '/PSP/TEXTURES/' folder in PPSSPP.
Please note that some texture packs may be designed for a specific version or region of the game. Ensure you have the correct ROM and textures for it.
Also, keep in mind that 'TITLEID' is different for every game.
To enable Custom Textures, follow these steps:
1. Open up PPSSPP inside RetroDECK Configurator by pressing 'Open Emulator' - 'PPSSPP'.
2. Press 'Settings' -> 'Tools' -> 'Developer Tools'.
3. Set 'Replace Textures' to On.
To add texture packs, you'll need the texture pack files. On the Steam Deck, this could be easier to do in Desktop Mode.
For adding 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 the correct '~/retrodeck/texture_packs/ppsspp/<TITLEID>' folder.
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/PPSSPP%3A-Texture-Packs
The RetroDECK Team

View file

@ -0,0 +1,19 @@
There are two ways of adding mods into Citra
From Citra
- Extract any mod from compressed .zip or any other format to folders.
- Open up Citra inside RetroDECK Configurator by pressing Open Emulator - Citra.
- Right click on the game you want to add mods into.
- Click on Open Mods Location.
- Paste the mod files inside that directory, each folder is stored by the TITLLEID of the game.
- Quit Citra
From the mod folder directly
- Extract any mod files from compressed .zip or any other format into folders.
- Go into ~/retrodeck/mods/citra/. The folders are all named by TITLEID.
- Past the mods into the right ~/retrodeck/mods/yuzu/<TITLEID> folder.
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/Citra%3A-Mods#citra---3ds
The RetroDECK Team

View file

@ -0,0 +1,16 @@
There is the possibility to provide custom emutlators provided by the user.
At the moment the only one available is Yuzu.
Place your custom Yuzu files (AppImage and such) in the custom/yuzu folder without any other subfolders, like in the example:
retrodeck/customs/yuzu/yuzu*.AppImage
WARNINGS on custom emulators:
- Custom emulators are self managed: means that RetroDECK Team is not supporting nor troubleshooting them.
- Custom emulators could potentially break other included emulators configs: use them at your own risk.
- Remember to make the binary executable, otherwise they won't be launched.
- Hotkeys might not be working if not configured by the users.
Related wiki article can be found here:
---
The RetroDECK Team

View file

@ -0,0 +1,19 @@
Prerequisites
- Open up Dolphin inside RetroDECK Configurator by pressing Open Emulator - Dolphin.
- Press Options -> Graphic Settings
- Enable Graphics Mods and set it to On.
Installation
- Extract any mod files from compressed .zip or any other format into folders.
- Go into mods folders, they contain folders that are all named by GAME_ID. ~/retrodeck/mods/dolphin/.
- Move the mods into the right folder: ~/retrodeck/mods/dolphin/<GAME_ID>
Notes:
- The ~/retrodeck/mods/dolphin/ that represents the /load/GraphicMods folder.
- 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.
- GAME_ID is different for every game.
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/Dolphin-and-Primehack%3A-Mods
The RetroDECK Team

View file

@ -0,0 +1,19 @@
Prerequisites
- Open up Primehack inside RetroDECK Configurator by pressing Open Emulator - Primehack.
- Press Options -> Graphic Settings
- Enable Graphics Mods and set it to On.
Installation
- Extract any mod files from compressed .zip or any other format into folders.
- Go into mods folders, they contain folders that are all named by GAME_ID. ~/retrodeck/mods/primehack/.
- Move the mods into the right folder: ~/retrodeck/mods/primehack/<GAME_ID>
Notes:
- The ~/retrodeck/mods/primehack/ that represents the /load/GraphicMods folder.
- 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.
- GAME_ID is different for every game.
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/Dolphin-and-Primehack%3A-Mods
The RetroDECK Team

View file

@ -0,0 +1,25 @@
There are two ways of adding mods into Yuzu
From Yuzu directly
- Extract any mod files from compressed .zip or any other format to folders.
- Open up Yuzu inside RetroDECK Configurator by pressing Open Emulator - Yuzu.
- Right click on the game you want to add mods into.
- Click on Open Mod Data Destination.
- Paste the mod folders inside that directory.
- Right clicking on the game and selecting Properties.
- Enable the mods you want to enable by pressing the checkboxes in the Add-Ons tab and press OK.
- Quit Yuzu
From the mods/yuzu folder
- Extract any mod files from compressed .zip or any other format into folders.
- 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.
- Move those folders into ~/retrodeck/mods/yuzu/<TITLEID>
- Open up Yuzu inside RetroDECK Configurator by pressing Open Emulator - Yuzu.
- Right clicking on the game and selecting Properties.
- Enable the mods you want to enable by pressing the checkboxes in the Add-Ons tab and press OK.
- Quit Yuzu
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/Yuzu%3A-Mods
The RetroDECK Team

View file

@ -0,0 +1,9 @@
config_file_format^citra
target_file^$citraconf
defaults_file^$emuconfigs/citra/qt-config.ini
change^ask_to_exit^confirmClose^true^UI
change^ask_to_exit^confirmClose\default^true^UI
change^nintendo_button_layout^profiles\1\button_a^button:1,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls
change^nintendo_button_layout^profiles\1\button_b^button:0,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls
change^nintendo_button_layout^profiles\1\button_x^button:3,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls
change^nintendo_button_layout^profiles\1\button_y^button:2,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls

View file

@ -0,0 +1,4 @@
config_file_format^dolphin
target_file^$dolphinconf
defaults_file^$emuconfigs/dolphin/Dolphin.ini
change^ask_to_exit^ConfirmStop^True^Interface

View file

@ -0,0 +1,10 @@
config_file_format^duckstation
target_file^$duckstationconf
defaults_file^$emuconfigs/duckstation/settings.ini
change^cheevos^Enabled^true^Cheevos
change^cheevos^Username^$cheevos_username^Cheevos
change^cheevos^Token^$cheevos_token^Cheevos
change^cheevos^LoginTimestamp^$cheevos_login_timestamp^Cheevos
change^cheevos_hardcore^ChallengeMode^true^Cheevos
change^savestate_auto_save^SaveStateOnExit^true^Main
change^ask_to_exit^ConfirmPowerOff^true^Main

View file

@ -0,0 +1,11 @@
config_file_format^retroarch # This is the config file format, used in functions like get_setting_value and set_setting_value
target_file^$examplefile # This is the target file that should be updated. This will be the actively-used config file by whatever emulator is being set up. This can be a variable name as well!
defaults_file^$emuconfigs/retroarch/retroarch.cfg # This is the file that is referenced when presets are disabled. This should be the "shipped" config file for this emulator
change^cheevos^Enabled^true^Cheevos # This is a preset configuration line. The syntax is <action>^<preset name (as defined in retrodeck.cfg)>^<setting name>^<setting value when enabled>^<setting section in emulator config file, if there is one>
change^borders^overlay_file^/var/config/retroarch/overlays/borders/snes.cfg # This is another preset configuration line, for the preset section called "borders" in retrodeck.cfg. Also, there is no defined "setting section" on this line
OTHER NOTES:
- The name of the presets configuration file for any given system MUST be <system name>_presets.cfg
- The <system name> is whatever name is given to this system in retrodeck.cfg, it is not tied to the actual emulator name.
- The name given to the system in retrodeck.cfg will be translated to a "nice looking" format for user dialogs through the file at emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg but will be used internally as-is

View file

@ -0,0 +1,14 @@
config_file_format^retroarch
target_file^/var/config/retroarch/config/Gambatte/gb.cfg
defaults_file^$emuconfigs/retroarch/retroarch.cfg
change^borders^aspect_ratio_index^23
change^borders^custom_viewport_height^576
change^borders^custom_viewport_width^640
change^borders^custom_viewport_x^320
change^borders^custom_viewport_y^20
change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gb.cfg
change^borders^input_overlay_aspect_adjust_landscape^0.110000
change^borders^input_overlay_enable^true
change^borders^input_overlay_scale_landscape^1.205000
change^borders^input_overlay_y_offset_landscape^0.005000
enable^nintendo_button_layout^/var/config/retroarch/config/remaps/Gambatte/gb.rmp

View file

@ -0,0 +1,14 @@
config_file_format^retroarch
target_file^/var/config/retroarch/config/mGBA/gba.cfg
defaults_file^$emuconfigs/retroarch/retroarch.cfg
change^borders^aspect_ratio_index^23
change^borders^custom_viewport_height^640
change^borders^custom_viewport_width^960
change^borders^custom_viewport_x^160
change^borders^custom_viewport_y^0
change^borders^input_overlay_enable^true
change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gba.cfg
change^borders^input_overlay_aspect_adjust_landscape^0.110000
change^borders^input_overlay_scale_landscape^1.2150000
change^borders^input_overlay_y_offset_landscape^0.020000
enable^nintendo_button_layout^/var/config/retroarch/config/remaps/Gambatte/gbc.rmp

View file

@ -0,0 +1,14 @@
config_file_format^retroarch
target_file^/var/config/retroarch/config/Gambatte/gbc.cfg
defaults_file^$emuconfigs/retroarch/retroarch.cfg
change^borders^aspect_ratio_index^23
change^borders^custom_viewport_height^576
change^borders^custom_viewport_width^640
change^borders^custom_viewport_x^320
change^borders^custom_viewport_y^20
change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gbc.cfg
change^borders^input_overlay_aspect_adjust_landscape^0.110000
change^borders^input_overlay_enable^true
change^borders^input_overlay_scale_landscape^1.205000
change^borders^input_overlay_y_offset_landscape^-0.040000
enable^nintendo_button_layout^/var/config/retroarch/config/remaps/Gambatte/gbc.rmp

View file

@ -0,0 +1,8 @@
config_file_format^retroarch
target_file^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg
defaults_file^$emuconfigs/retroarch/retroarch.cfg
change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/genesis.cfg
change^borders^input_overlay_aspect_adjust_landscape^0.100000
change^borders^input_overlay_enable^true
change^borders^input_overlay_scale_landscape^1.040000
change^widescreen^aspect_ratio_index^24

View file

@ -0,0 +1,13 @@
config_file_format^retroarch
target_file^/var/config/retroarch/config/Genesis Plus GX/gg.cfg
defaults_file^$emuconfigs/retroarch/retroarch.cfg
change^borders^aspect_ratio_index^23
change^borders^custom_viewport_width^960
change^borders^custom_viewport_height^720
change^borders^custom_viewport_x^160
change^borders^custom_viewport_y^24
change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gg.cfg
change^borders^input_overlay_aspect_adjust_landscape^0.110000
change^borders^input_overlay_enable^true
change^borders^input_overlay_scale_landscape^1.350000
change^borders^input_overlay_y_offset_landscape^0.020000

View file

@ -0,0 +1,8 @@
config_file_format^retroarch
target_file^/var/config/retroarch/config/Mupen64Plus-Next/n64.cfg
defaults_file^$emuconfigs/retroarch/retroarch.cfg
change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/N64.cfg
change^borders^input_overlay_aspect_adjust_landscape^0.145000
change^borders^input_overlay_enable^true
change^widescreen^aspect_ratio_index^24
enable^nintendo_button_layout^/var/config/retroarch/config/remaps/Snes9x/snes.rmp

View file

@ -0,0 +1,10 @@
config_file_format^pcsx2
target_file^$pcsx2conf
defaults_file^$emuconfigs/PCSX2/PCSX2.ini
change^cheevos^Enabled^true^Achievements
change^cheevos^Username^$cheevos_username^Achievements
change^cheevos^Token^$cheevos_token^Achievements
change^cheevos^LoginTimestamp^$cheevos_login_timestamp^Achievements
change^cheevos_hardcore^ChallengeMode^true^Achievements
change^savestate_auto_save^SaveStateOnShutdown^true^EmuCore
change^ask_to_exit^ConfirmShutdown^true^UI

View file

@ -0,0 +1,4 @@
config_file_format^ppsspp
target_file^$ppssppconf
defaults_file^$emuconfigs/PCSX2/PCSX2.ini
change^savestate_auto_load^AutoLoadSaveState^2^General

View file

@ -0,0 +1,4 @@
config_file_format^primehack
target_file^$primehackconf
defaults_file^$emuconfigs/primehack/Dolphin.ini
change^ask_to_exit^ConfirmStop^True^Interface

View file

@ -0,0 +1,8 @@
config_file_format^retroarch
target_file^/var/config/retroarch/config/SwanStation/psx.cfg
defaults_file^$emuconfigs/retroarch/retroarch.cfg
change^borders^input_overlay^/var/config/retrodeck/overlays/borders/pegasus/psx.cfg
change^borders^input_overlay_aspect_adjust_landscape^0.120000
change^borders^input_overlay_enable^true
change^borders^input_overlay_scale_landscape^1.040000
change^widescreen^aspect_ratio_index^24

View file

@ -0,0 +1,4 @@
input_player1_btn_a = "0"
input_player1_btn_b = "8"
input_player1_btn_x = "1"
input_player1_btn_y = "9"

View file

@ -0,0 +1,4 @@
input_player1_btn_a = "0"
input_player1_btn_b = "8"
input_player1_btn_x = "1"
input_player1_btn_y = "9"

View file

@ -0,0 +1,4 @@
input_player1_btn_a = "0"
input_player1_btn_b = "8"
input_player1_btn_x = "1"
input_player1_btn_y = "9"

View file

@ -0,0 +1,4 @@
input_player1_btn_a = "0"
input_player1_btn_b = "8"
input_player1_btn_x = "1"
input_player1_btn_y = "9"

View file

@ -0,0 +1,4 @@
input_player1_btn_a = "0"
input_player1_btn_b = "8"
input_player1_btn_x = "1"
input_player1_btn_y = "9"

View file

@ -0,0 +1,4 @@
input_player1_btn_a = "0"
input_player1_btn_b = "8"
input_player1_btn_x = "1"
input_player1_btn_y = "9"

View file

@ -0,0 +1,9 @@
config_file_format^retroarch-all
target_file^$raconf
defaults_file^$emuconfigs/retroarch/retroarch.cfg
change^cheevos^cheevos_enable^true
change^cheevos^cheevos_token^$cheevos_token
change^cheevos^cheevos_username^$cheevos_username
change^cheevos_hardcore^cheevos_hardcore_mode_enable^true
change^savestate_auto_load^savestate_auto_load^true
change^savestate_auto_save^savestate_auto_save^true

View file

@ -0,0 +1,9 @@
config_file_format^retroarch
target_file^/var/config/retroarch/config/Snes9x/snes.cfg
defaults_file^$emuconfigs/retroarch/retroarch.cfg
change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/snes87.cfg
change^borders^input_overlay_aspect_adjust_landscape^0.305000
change^borders^input_overlay_scale_landscape^1.050000
change^borders^input_overlay_enable^true
change^widescreen^aspect_ratio_index^24
enable^nintendo_button_layout^/var/config/retroarch/config/remaps/Snes9x/snes.rmp

View file

@ -0,0 +1,9 @@
config_file_format^yuzu
target_file^$yuzuconf
defaults_file^$emuconfigs/yuzu/qt-config.ini
change^ask_to_exit^confirmClose^true^UI
change^ask_to_exit^confirmClose\default^true^UI
change^nintendo_button_layout^player_0_button_a^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:0,pad:0"^Controls
change^nintendo_button_layout^player_0_button_b^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:1,pad:0"^Controls
change^nintendo_button_layout^player_0_button_x^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:2,pad:0"^Controls
change^nintendo_button_layout^player_0_button_y^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:3,pad:0"^Controls

View file

@ -0,0 +1,2 @@
false^RPCS3 Firmware Install^Install firmware needed for PS3 emulation^rpcs3_firmware
false^RetroDECK Controller Profile^Install custom RetroDECK controller profile^rd_controller_profile

View file

@ -2,4 +2,20 @@
# FILE NAME^DESTINATION
# The destination can be an internal variable name like $roms_folder if needed
# The FILE name can have spaces in it, but the DESTINATION cannot, even in variable form
RetroDECK Example Readme.txt^$rdhome
# mods
how-to-install-citra-mods.txt^$mods_folder/Citra
how-to-install-dolphin-mods.txt^$mods_folder/Dolphin
how-to-install-primehack-mods.txt^$mods_folder/Primehack
how-to-install-yuzu-mods.txt^$mods_folder/Yuzu
# textures
how-to-install-Mesen-textures.txt^$texture_packs_folder/RetroArch-Mesen
how-to-install-PPSSPP-textures.txt^$texture_packs_folder/PPSSPP
how-to-install-PCSX2-textures.txt^$texture_packs_folder/PCSX2
how-to-install-Mupen64Plus-textures.txt^$texture_packs_folder/RetroArch-Mupen64Plus/cache
how-to-install-Mupen64Plus-textures.txt^$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture
how-to-install-Duckstation-textures.txt^$texture_packs_folder/Duckstation
# customs
how-to-install-custom-emulators.txt^$rdhome/customs

View file

@ -0,0 +1,2 @@
borders:widescreen
widescreen:borders

View file

@ -0,0 +1,17 @@
citra^Citra (Nintendo 3DS Standalone Emulator)
dolphin^Dolphin (GameCube / Wii Standalone Emulator)
duckstation^Duckstation (Sony Playstation Standalone Emulator)
gb^Nintendo GameBoy
gba^Nintendo GameBoy Advance
gbc^Nintendo GameBoy Color
genesis^Sega Genesis/Master System
gg^Sega GameGear
n64^Nintendo 64
pcsx2^PCSX2 (Sony Playstation 2 Standalone Emulator)
ppsspp^PPSSPP (Sony PSP Standalone Emulator)
primehack^Primehack (Metroid Prime Standalone Emulator)
psx_ra^Sony Playstation (RetroArch Core)
retroarch^RetroArch (Multi-emulator Frontend)
ryujinx^Ryujinx (Nintendo Switch Standalone Emulator)
snes^Nintendo Super Nintendo
yuzu^Yuzu (Nintendo Switch Standalone Emulator)

View file

@ -0,0 +1,71 @@
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
XargonWan
RetroDECK project founder and also one of the founding members of AmberELEC
IceNine451
Creator of the RetroDECK configurator and various awesome features.
Lazorne
Community management/outreach, testing, documentation, feature suggestions and some design.
dottormac
Beta Tester
LX32
Junior code contributor, Beta Tester
Collaborators
Leon Styhre
Maker of EmulationStation Desktop Edition
anthonycaccese
Theme creator for ES-DE and AmberELEC
Additional credits
RavenKilit
Former Beta Tester and AmberELEC contributor
MorGuux
Made the RetroDECK steamdb graphics for the old logo
Pixelguin
Made the new logo and steamdb graphics
teotwaki
Generous cloud hosting sponsor
Niroku / Atari
Helps with community management, is also part of Batocera
Gabeboii
Webmaster
Draco
Former server admiistrator and code consultant
ItzSelenux
Maker of pixelitos
Kenny.nl
The Kenny.nl project provides several free game assets under open licenses.
Special Thanks
We want give special thanks to:
Our Patreons that keeps the build servers running and provide feedback.
All related emulation projects, such as Batocera and AmberELEC where we are taking our inspiration.
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.

View file

@ -18,6 +18,7 @@ sdcard=/run/media/mmcblk0p1
[options]
power_user_warning=true
desktop_mode_warning=true
low_space_warning=true
update_check=false
update_repo=RetroDECK
update_ignore=
@ -27,14 +28,54 @@ ask_default_user=true
default_user=
developer_options=false
[cheevos]
duckstation=false
pcsx2=false
retroarch=false
[cheevos_hardcore]
duckstation=false
pcsx2=false
retroarch=false
[borders]
snes=false
genesis=false
gb=false
gba=false
gb=true
gba=true
gbc=true
genesis=true
gg=true
n64=true
psx_ra=true
snes=true
[widescreen]
snes=false
genesis=false
n64=false
psx_ra=false
snes=false
[nintendo_button_layout]
citra=false
gb=false
gba=false
gbc=false
n64=false
snes=false
yuzu=false
[savestate_auto_load]
ppsspp=true
retroarch=true
[savestate_auto_save]
duckstation=true
pcsx2=true
retroarch=true
[ask_to_exit]
citra=false
dolphin=false
duckstation=false
pcsx2=false
primehack=false
yuzu=false

View file

@ -63,6 +63,10 @@ enable_accurate_vibrations=false
enable_accurate_vibrations\default=true
enable_ir_sensor=false
enable_ir_sensor\default=true
enable_joycon_driver=true
enable_joycon_driver\default=true
enable_procon_driver=false
enable_procon_driver\default=true
enable_raw_input=false
enable_raw_input\default=true
enable_ring_controller=true
@ -721,6 +725,8 @@ player_9_vibration_enabled=true
player_9_vibration_enabled\default=true
player_9_vibration_strength=100
player_9_vibration_strength\default=true
random_amiibo_id=false
random_amiibo_id\default=true
ring_controller="modifier_scale:0.050000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$00$1engine$0keyboard,up:toggle$00$1code$00$1engine$0keyboard,engine:analog_from_button"
ring_controller\default=true
tas_enable=false
@ -755,6 +761,8 @@ use_extended_memory_layout=false
use_extended_memory_layout\default=true
use_multi_core=true
use_multi_core\default=true
use_unsafe_extended_memory_layout=false
use_unsafe_extended_memory_layout\default=true
[Cpu]
cpu_accuracy=0
@ -775,6 +783,8 @@ cpuopt_fastmem=true
cpuopt_fastmem\default=true
cpuopt_fastmem_exclusives=true
cpuopt_fastmem_exclusives\default=true
cpuopt_ignore_memory_aborts=true
cpuopt_ignore_memory_aborts\default=true
cpuopt_misc_ir=true
cpuopt_misc_ir\default=true
cpuopt_page_tables=true
@ -821,6 +831,8 @@ use_virtual_sd\default=true
[Debugging]
create_crash_dumps=false
create_crash_dumps\default=true
disable_macro_hle=false
disable_macro_hle\default=true
disable_macro_jit=false
disable_macro_jit\default=true
dump_exefs=false
@ -864,7 +876,7 @@ ip\default=true
ip_ban_list\size=0
max_player=8
max_player\default=true
nickname=
nickname=RetroDECK
nickname\default=true
port=24872
port\default=true
@ -885,6 +897,12 @@ anti_aliasing=0
anti_aliasing\default=true
aspect_ratio=0
aspect_ratio\default=true
astc_recompression=0
astc_recompression\default=true
async_astc=false
async_astc\default=true
async_presentation=false
async_presentation\default=true
backend=1
backend\default=true
bg_blue=0
@ -897,8 +915,12 @@ debug=false
debug\default=true
disable_shader_loop_safety_checks=false
disable_shader_loop_safety_checks\default=true
fps_cap=1000
fps_cap\default=true
enable_compute_pipelines=false
enable_compute_pipelines\default=true
force_max_clock=false
force_max_clock\default=true
fsr_sharpening_slider=25
fsr_sharpening_slider\default=true
fullscreen_mode=1
fullscreen_mode\default=true
gpu_accuracy=1
@ -929,15 +951,19 @@ use_fast_gpu_time=true
use_fast_gpu_time\default=true
use_pessimistic_flushes=false
use_pessimistic_flushes\default=true
use_speed_limit=true
use_speed_limit\default=true
use_vsync=true
use_reactive_flushing=true
use_reactive_flushing\default=true
use_video_framerate=false
use_video_framerate\default=true
use_vsync=2
use_vsync\default=true
use_vulkan_driver_pipeline_cache=true
use_vulkan_driver_pipeline_cache\default=true
vulkan_device=0
vulkan_device\default=true
[Services]
network_interface=None
network_interface=wlan0
network_interface\default=false
[System]
@ -947,6 +973,7 @@ custom_rtc=0
custom_rtc\default=true
custom_rtc_enabled=false
custom_rtc_enabled\default=true
device_name=RetroDECK
language_index=1
language_index\default=true
region_index=1
@ -1011,139 +1038,183 @@ Paths\romsPath=
Paths\symbolsPath=
Screenshots\enable_screenshot_save_as=true
Screenshots\enable_screenshot_save_as\default=true
Screenshots\screenshot_path=/home/deck/.var/app/org.yuzu_emu.yuzu/data/yuzu/screenshots
Screenshots\screenshot_path=RETRODECKHOMEDIR/screenshots
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context=1
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context\default=true
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq=Home+Dpad_Right
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Audio%20Mute\Unmute\KeySeq=Ctrl+M
Shortcuts\Main%20Window\Audio%20Mute\Unmute\KeySeq\default=true
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Repeat=false
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Repeat\default=true
Shortcuts\Main%20Window\Audio%20Volume%20Down\Context=2
Shortcuts\Main%20Window\Audio%20Volume%20Down\Context\default=true
Shortcuts\Main%20Window\Audio%20Volume%20Down\Controller_KeySeq=Home+Dpad_Down
Shortcuts\Main%20Window\Audio%20Volume%20Down\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Audio%20Volume%20Down\KeySeq=-
Shortcuts\Main%20Window\Audio%20Volume%20Down\KeySeq\default=true
Shortcuts\Main%20Window\Audio%20Volume%20Down\Repeat=true
Shortcuts\Main%20Window\Audio%20Volume%20Down\Repeat\default=true
Shortcuts\Main%20Window\Audio%20Volume%20Up\Context=2
Shortcuts\Main%20Window\Audio%20Volume%20Up\Context\default=true
Shortcuts\Main%20Window\Audio%20Volume%20Up\Controller_KeySeq=Home+Dpad_Up
Shortcuts\Main%20Window\Audio%20Volume%20Up\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Audio%20Volume%20Up\KeySeq="="
Shortcuts\Main%20Window\Audio%20Volume%20Up\KeySeq\default=true
Shortcuts\Main%20Window\Audio%20Volume%20Up\Repeat=true
Shortcuts\Main%20Window\Audio%20Volume%20Up\Repeat\default=true
Shortcuts\Main%20Window\Capture%20Screenshot\Context=3
Shortcuts\Main%20Window\Capture%20Screenshot\Context\default=true
Shortcuts\Main%20Window\Capture%20Screenshot\Controller_KeySeq=Screenshot
Shortcuts\Main%20Window\Capture%20Screenshot\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq=Ctrl+P
Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq\default=true
Shortcuts\Main%20Window\Capture%20Screenshot\Repeat=false
Shortcuts\Main%20Window\Capture%20Screenshot\Repeat\default=true
Shortcuts\Main%20Window\Change%20Adapting%20Filter\Context=2
Shortcuts\Main%20Window\Change%20Adapting%20Filter\Context\default=true
Shortcuts\Main%20Window\Change%20Adapting%20Filter\Controller_KeySeq=Home+L
Shortcuts\Main%20Window\Change%20Adapting%20Filter\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Change%20Adapting%20Filter\KeySeq=F8
Shortcuts\Main%20Window\Change%20Adapting%20Filter\KeySeq\default=true
Shortcuts\Main%20Window\Change%20Adapting%20Filter\Repeat=false
Shortcuts\Main%20Window\Change%20Adapting%20Filter\Repeat\default=true
Shortcuts\Main%20Window\Change%20Docked%20Mode\Context=2
Shortcuts\Main%20Window\Change%20Docked%20Mode\Context\default=true
Shortcuts\Main%20Window\Change%20Docked%20Mode\Controller_KeySeq=Home+X
Shortcuts\Main%20Window\Change%20Docked%20Mode\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Change%20Docked%20Mode\KeySeq=F10
Shortcuts\Main%20Window\Change%20Docked%20Mode\KeySeq\default=true
Shortcuts\Main%20Window\Change%20Docked%20Mode\Repeat=false
Shortcuts\Main%20Window\Change%20Docked%20Mode\Repeat\default=true
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Context=2
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Context\default=true
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Controller_KeySeq=Home+R
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\KeySeq=F9
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\KeySeq\default=true
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Repeat=false
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Repeat\default=true
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context=1
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context\default=true
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq=Home+Plus
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq=F4
Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Repeat=false
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Repeat\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq=
Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Esc
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=false
Shortcuts\Main%20Window\Exit%20Fullscreen\Repeat=false
Shortcuts\Main%20Window\Exit%20Fullscreen\Repeat\default=true
Shortcuts\Main%20Window\Exit%20yuzu\Context=1
Shortcuts\Main%20Window\Exit%20yuzu\Context\default=true
Shortcuts\Main%20Window\Exit%20yuzu\Controller_KeySeq=Home+Minus
Shortcuts\Main%20Window\Exit%20yuzu\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Exit%20yuzu\KeySeq=Ctrl+Q
Shortcuts\Main%20Window\Exit%20yuzu\KeySeq\default=true
Shortcuts\Main%20Window\Exit%20yuzu\Repeat=false
Shortcuts\Main%20Window\Exit%20yuzu\Repeat\default=true
Shortcuts\Main%20Window\Fullscreen\Context=1
Shortcuts\Main%20Window\Fullscreen\Context\default=true
Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq=Home+B
Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Fullscreen\KeySeq=F11
Shortcuts\Main%20Window\Fullscreen\KeySeq\default=true
Shortcuts\Main%20Window\Fullscreen\Repeat=false
Shortcuts\Main%20Window\Fullscreen\Repeat\default=true
Shortcuts\Main%20Window\Load%20File\Context=3
Shortcuts\Main%20Window\Load%20File\Context\default=true
Shortcuts\Main%20Window\Load%20File\Controller_KeySeq=
Shortcuts\Main%20Window\Load%20File\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Load%20File\KeySeq=Ctrl+O
Shortcuts\Main%20Window\Load%20File\KeySeq\default=true
Shortcuts\Main%20Window\Load%20File\Repeat=false
Shortcuts\Main%20Window\Load%20File\Repeat\default=true
Shortcuts\Main%20Window\Load\Remove%20Amiibo\Context=3
Shortcuts\Main%20Window\Load\Remove%20Amiibo\Context\default=true
Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq=Home+A
Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Load\Remove%20Amiibo\KeySeq=F2
Shortcuts\Main%20Window\Load\Remove%20Amiibo\KeySeq\default=true
Shortcuts\Main%20Window\Load\Remove%20Amiibo\Repeat=false
Shortcuts\Main%20Window\Load\Remove%20Amiibo\Repeat\default=true
Shortcuts\Main%20Window\Restart%20Emulation\Context=1
Shortcuts\Main%20Window\Restart%20Emulation\Context\default=true
Shortcuts\Main%20Window\Restart%20Emulation\Controller_KeySeq=
Shortcuts\Main%20Window\Restart%20Emulation\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Restart%20Emulation\KeySeq=F6
Shortcuts\Main%20Window\Restart%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Restart%20Emulation\Repeat=false
Shortcuts\Main%20Window\Restart%20Emulation\Repeat\default=true
Shortcuts\Main%20Window\Stop%20Emulation\Context=1
Shortcuts\Main%20Window\Stop%20Emulation\Context\default=true
Shortcuts\Main%20Window\Stop%20Emulation\Controller_KeySeq=
Shortcuts\Main%20Window\Stop%20Emulation\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Stop%20Emulation\KeySeq=F5
Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Stop%20Emulation\Repeat=false
Shortcuts\Main%20Window\Stop%20Emulation\Repeat\default=true
Shortcuts\Main%20Window\TAS%20Record\Context=2
Shortcuts\Main%20Window\TAS%20Record\Context\default=true
Shortcuts\Main%20Window\TAS%20Record\Controller_KeySeq=
Shortcuts\Main%20Window\TAS%20Record\Controller_KeySeq\default=true
Shortcuts\Main%20Window\TAS%20Record\KeySeq=Ctrl+F7
Shortcuts\Main%20Window\TAS%20Record\KeySeq\default=true
Shortcuts\Main%20Window\TAS%20Record\Repeat=false
Shortcuts\Main%20Window\TAS%20Record\Repeat\default=true
Shortcuts\Main%20Window\TAS%20Reset\Context=2
Shortcuts\Main%20Window\TAS%20Reset\Context\default=true
Shortcuts\Main%20Window\TAS%20Reset\Controller_KeySeq=
Shortcuts\Main%20Window\TAS%20Reset\Controller_KeySeq\default=true
Shortcuts\Main%20Window\TAS%20Reset\KeySeq=Ctrl+F6
Shortcuts\Main%20Window\TAS%20Reset\KeySeq\default=true
Shortcuts\Main%20Window\TAS%20Reset\Repeat=false
Shortcuts\Main%20Window\TAS%20Reset\Repeat\default=true
Shortcuts\Main%20Window\TAS%20Start\Stop\Context=2
Shortcuts\Main%20Window\TAS%20Start\Stop\Context\default=true
Shortcuts\Main%20Window\TAS%20Start\Stop\Controller_KeySeq=
Shortcuts\Main%20Window\TAS%20Start\Stop\Controller_KeySeq\default=true
Shortcuts\Main%20Window\TAS%20Start\Stop\KeySeq=Ctrl+F5
Shortcuts\Main%20Window\TAS%20Start\Stop\KeySeq\default=true
Shortcuts\Main%20Window\TAS%20Start\Stop\Repeat=false
Shortcuts\Main%20Window\TAS%20Start\Stop\Repeat\default=true
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context=1
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context\default=true
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Controller_KeySeq=
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq=Ctrl+F
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Repeat=false
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Repeat\default=true
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Context=2
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Context\default=true
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq=Home+Y
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\KeySeq=Ctrl+U
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Repeat=false
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Repeat\default=true
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Context=2
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Context\default=true
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Controller_KeySeq=
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\KeySeq=Ctrl+F9
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Repeat=false
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Repeat\default=true
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context=1
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context\default=true
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Controller_KeySeq=
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq=Ctrl+S
Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Repeat=false
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Repeat\default=true
UIGameList\cache_game_list=true
UIGameList\cache_game_list\default=true
UIGameList\favorites\size=0

View file

@ -20,6 +20,8 @@ AudioStretchMaxLatency = 80
DPL2Decoder = False
DPL2Quality = 2
DSPHLE = True
WiiSDCardAllowWrites = True
WiiSDCardEnableFolderSync = False
[Display]
Fullscreen = True
DisableScreenSaver = True
@ -49,7 +51,7 @@ DSPThread = True
Backend = Pulse
EnableJIT = False
[Interface]
ConfirmStop = True
ConfirmStop = False
CursorVisibility = 0
OnScreenDisplayMessages = True
PauseOnFocusLost = True

View file

@ -4,8 +4,7 @@ General/Change Disc = @(Ctrl+D)
General/Toggle Pause = @(Ctrl+P)
General/Reset = @(Ctrl+R)
General/Take Screenshot = @(Ctrl+X)
General/Exit = @(Ctrl+Escape)
General/Control NetPlay Golf Mode = @(Alt+G)
General/Exit = @(Ctrl+Q)
Emulation Speed/Decrease Emulation Speed = @(Ctrl+`2`)
Emulation Speed/Increase Emulation Speed = @(Ctrl+`1`)
Emulation Speed/Disable Emulation Speed Limit = @(Ctrl+`0`)
@ -20,3 +19,6 @@ Other State Hotkeys/Undo Load State = @(Ctrl+`8`)
Other State Hotkeys/Undo Save State = @(Ctrl+`9`)
Other State Hotkeys/Increase Selected State Slot = @(Ctrl+K)
Other State Hotkeys/Decrease Selected State Slot = @(Ctrl+J)
General/Toggle Fullscreen = @(Ctrl+Return)
General/Control NetPlay Golf Mode = @(Alt+H)
Wii/Press Sync Button = @(Alt+W)

View file

@ -0,0 +1,90 @@
[Wiimote1]
Device = evdev/0/Microsoft X-Box 360 pad 0
Tilt/Modifier/Range = 50.0
Nunchuk/Stick/Modifier/Range = 50.0
Nunchuk/Tilt/Modifier/Range = 50.0
Classic/Left Stick/Modifier/Range = 50.0
Classic/Right Stick/Modifier/Range = 50.0
Guitar/Stick/Modifier/Range = 50.0
Drums/Stick/Modifier/Range = 50.0
Turntable/Stick/Modifier/Range = 50.0
uDraw/Stylus/Modifier/Range = 50.0
Drawsome/Stylus/Modifier/Range = 50.0
Buttons/A = SOUTH
Buttons/B = EAST
Buttons/1 = WEST
Buttons/2 = NORTH
Buttons/- = SELECT
Buttons/+ = START
Buttons/Home = THUMBR
D-Pad/Up = `Axis 7-`
D-Pad/Down = `Axis 7+`
D-Pad/Left = `Axis 6-`
D-Pad/Right = `Axis 6+`
Extension = Nunchuk
Rumble/Motor = Strong
Nunchuk/Stick/Up = `Axis 1-`
Nunchuk/Stick/Down = `Axis 1+`
Nunchuk/Stick/Left = `Axis 0-`
Nunchuk/Stick/Right = `Axis 0+`
Nunchuk/Buttons/C = TL
Nunchuk/Buttons/Z = `Full Axis 2+`
IR/Auto-Hide = True
Hotkeys/Sideways Toggle = `XInput2/0/Virtual core pointer:Alt`&`XInput2/0/Virtual core pointer:X`
Hotkeys/Upright Toggle = `XInput2/0/Virtual core pointer:Alt_L`&`XInput2/0/Virtual core pointer:Z`
Source = 1
IR/Up = `XInput2/0/Virtual core pointer:Cursor Y-`
IR/Down = `XInput2/0/Virtual core pointer:Cursor Y+`
IR/Left = `XInput2/0/Virtual core pointer:Cursor X-`
IR/Right = `XInput2/0/Virtual core pointer:Cursor X+`
Shake/X = `Full Axis 5+`
Shake/Y = `Full Axis 5+`
Shake/Z = `Full Axis 5+`
[Wiimote2]
Device = XInput2/0/Virtual core pointer
Tilt/Modifier/Range = 50.0
Nunchuk/Stick/Modifier/Range = 50.0
Nunchuk/Tilt/Modifier/Range = 50.0
Classic/Left Stick/Modifier/Range = 50.0
Classic/Right Stick/Modifier/Range = 50.0
Guitar/Stick/Modifier/Range = 50.0
Drums/Stick/Modifier/Range = 50.0
Turntable/Stick/Modifier/Range = 50.0
uDraw/Stylus/Modifier/Range = 50.0
Drawsome/Stylus/Modifier/Range = 50.0
[Wiimote3]
Device = XInput2/0/Virtual core pointer
Tilt/Modifier/Range = 50.0
Nunchuk/Stick/Modifier/Range = 50.0
Nunchuk/Tilt/Modifier/Range = 50.0
Classic/Left Stick/Modifier/Range = 50.0
Classic/Right Stick/Modifier/Range = 50.0
Guitar/Stick/Modifier/Range = 50.0
Drums/Stick/Modifier/Range = 50.0
Turntable/Stick/Modifier/Range = 50.0
uDraw/Stylus/Modifier/Range = 50.0
Drawsome/Stylus/Modifier/Range = 50.0
[Wiimote4]
Device = XInput2/0/Virtual core pointer
Tilt/Modifier/Range = 50.0
Nunchuk/Stick/Modifier/Range = 50.0
Nunchuk/Tilt/Modifier/Range = 50.0
Classic/Left Stick/Modifier/Range = 50.0
Classic/Right Stick/Modifier/Range = 50.0
Guitar/Stick/Modifier/Range = 50.0
Drums/Stick/Modifier/Range = 50.0
Turntable/Stick/Modifier/Range = 50.0
uDraw/Stylus/Modifier/Range = 50.0
Drawsome/Stylus/Modifier/Range = 50.0
[BalanceBoard]
Device = XInput2/0/Virtual core pointer
Tilt/Modifier/Range = 50.0
Nunchuk/Stick/Modifier/Range = 50.0
Nunchuk/Tilt/Modifier/Range = 50.0
Classic/Left Stick/Modifier/Range = 50.0
Classic/Right Stick/Modifier/Range = 50.0
Guitar/Stick/Modifier/Range = 50.0
Drums/Stick/Modifier/Range = 50.0
Turntable/Stick/Modifier/Range = 50.0
uDraw/Stylus/Modifier/Range = 50.0
Drawsome/Stylus/Modifier/Range = 50.0

View file

@ -10,8 +10,8 @@ StartPaused = false
StartFullscreen = false
PauseOnFocusLoss = true
PauseOnMenu = true
SaveStateOnExit = true
ConfirmPowerOff = true
SaveStateOnExit = false
ConfirmPowerOff = false
LoadDevicesFromSaveStates = true
ApplyGameSettings = true
AutoLoadCheats = true
@ -182,9 +182,9 @@ Type = None
Card1Type = PerGameTitle
Card2Type = None
UsePlaylistTitle = true
Card1Path = /var/data/duckstation/memcards/shared_card_1.mcd
Card2Path = /var/data/duckstation/memcards/shared_card_2.mcd
Directory = /var/data/duckstation/memcards
Card1Path = RETRODECKHOMEDIR/saves/psx/duckstation/memcards/shared_card_1.mcd
Card2Path = RETRODECKHOMEDIR/saves/psx/duckstation/memcards/shared_card_2.mcd
Directory = RETRODECKHOMEDIR/saves/psx/duckstation/memcards
[ControllerPorts]
@ -220,34 +220,44 @@ GPUMaxRunAhead = 128
[Hotkeys]
OpenQuickMenu = Keyboard/Control+M
FastForward = Keyboard/Control+Keypad+Plus
ToggleTurbo = Keyboard/Control+T
ToggleFullscreen = Keyboard/Control+Return
TogglePause = Keyboard/Control+P
Screenshot = Keyboard/Control+X
Reset = Keyboard/Control+R
ChangeDisc = Keyboard/Control+D
Rewind = Keyboard/Control+Keypad+Minus
ToggleCheats = Keyboard/Control+C
IncreaseEmulationSpeed = Keyboard/Control+1
DecreaseEmulationSpeed = Keyboard/Control+2
ResetEmulationSpeed = Keyboard/Control+3
IncreaseResolutionScale = Keyboard/Control+U
DecreaseResolutionScale = Keyboard/Control+Y
ToggleWidescreen = Keyboard/Control+W
LoadSelectedSaveState = Keyboard/Control+A
SaveSelectedSaveState = Keyboard/Control+S
SelectPreviousSaveStateSlot = Keyboard/Control+J
SelectNextSaveStateSlot = Keyboard/Control+K
UndoLoadState = Keyboard/Control+9
OpenQuickMenu = Keyboard/Control & Keyboard/M
FastForward = Keyboard/Control & Keyboard/Plus
ToggleTurbo = Keyboard/Control & Keyboard/T
ToggleFullscreen = Keyboard/Control & Keyboard/Return
TogglePause = Keyboard/Control & Keyboard/P
Screenshot = Keyboard/Control & Keyboard/X
Reset = Keyboard/Control & Keyboard/R
ChangeDisc = Keyboard/Control & Keyboard/D
Rewind = Keyboard/Control & Keyboard/Minus
ToggleCheats = Keyboard/Control & Keyboard/C
IncreaseEmulationSpeed = Keyboard/Control & Keyboard/1
DecreaseEmulationSpeed = Keyboard/Control & Keyboard/2
ResetEmulationSpeed = Keyboard/Control & Keyboard/3
IncreaseResolutionScale = Keyboard/Control & Keyboard/U
DecreaseResolutionScale = Keyboard/Control & Keyboard/Y
ToggleWidescreen = Keyboard/Control & Keyboard/W
LoadSelectedSaveState = Keyboard/Control & Keyboard/A
SaveSelectedSaveState = Keyboard/Control & Keyboard/S
SelectPreviousSaveStateSlot = Keyboard/Control & Keyboard/J
SelectNextSaveStateSlot = Keyboard/Control & Keyboard/K
PowerOff = Keyboard/Control & Keyboard/Q
UndoLoadState = Keyboard/Control & Keyboard/9
[Cheevos]
Enabled = true
Enabled = false
TestMode = false
UnofficialTestMode = false
UseFirstDiscFromPlaylist = true
RichPresence = true
ChallengeMode = false
Leaderboards = true
Notifications = true
SoundEffects = true
PrimedIndicators = true
Username =
Token =
LoginTimestamp =
[UI]

View file

@ -0,0 +1,53 @@
<?xml version="1.0"?>
<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
<system name="default">
<input>
<port type="P1_JOYSTICK_UP">
<newseq type="standard">
JOYCODE_1_HAT1UP
</newseq>
</port>
<port type="P1_SELECT">
<newseq type="standard">
JOYCODE_1_SELECT
</newseq>
</port>
<port type="UI_MENU">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_M
</newseq>
</port>
<port type="UI_PAUSE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_P
</newseq>
</port>
<port type="UI_REWIND_SINGLE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_MINUSPAD
</newseq>
</port>
<port type="UI_SAVE_STATE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_S
</newseq>
</port>
<port type="UI_LOAD_STATE">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_A
</newseq>
</port>
<port type="UI_FAST_FORWARD">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_PLUSPAD
</newseq>
</port>
<port type="UI_SNAPSHOT">
<newseq type="standard">
KEYCODE_LCONTROL KEYCODE_X
</newseq>
</port>
</input>
</system>
</mameconfig>

411
emu-configs/mame/mame.ini Normal file
View file

@ -0,0 +1,411 @@
#
# CORE CONFIGURATION OPTIONS
#
readconfig 1
writeconfig 0
#
# CORE SEARCH PATH OPTIONS
#
homepath /var/config/mame
rompath /home/deck/retrodeck/roms/arcade
hashpath /app/share/mame/hash
samplepath /app/share/mame/samples
artpath $HOME/retrodeck/downloaded_media/arcade/screenshots/
ctrlrpath /app/share/mame/ctrlr
inipath /var/config/mame
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 /var/config/mame/cfg
nvram_directory /var/config/mame/nvram
input_directory /var/config/mame/inp
state_directory /var/config/mame/sta
snapshot_directory RETRODECKHOMEDIR/screenshots
diff_directory /var/config/mame/diff
comment_directory /var/config/mame/comments
share_directory /var/config/mame/share
#
# CORE STATE/PLAYBACK OPTIONS
#
state
autosave 0
rewind 0
rewind_capacity 100
playback
record
exit_after_playback 0
mngwrite
aviwrite
wavwrite
snapname %g/%i
snapsize auto
snapview auto
snapbilinear 1
statename %g
burnin 0
#
# CORE PERFORMANCE OPTIONS
#
autoframeskip 0
frameskip 0
seconds_to_run 0
throttle 1
sleep 1
speed 1.0
refreshspeed 0
lowlatency 0
#
# CORE RENDER OPTIONS
#
keepaspect 1
unevenstretch 1
unevenstretchx 0
unevenstretchy 0
autostretchxy 0
intoverscan 0
intscalex 0
intscaley 0
#
# CORE ROTATION OPTIONS
#
rotate 1
ror 0
rol 0
autoror 0
autorol 0
flipx 0
flipy 0
#
# CORE ARTWORK OPTIONS
#
artwork_crop 0
fallback_artwork
override_artwork
#
# CORE SCREEN OPTIONS
#
brightness 1.0
contrast 1.0
gamma 1.0
pause_brightness 0.65
effect none
#
# CORE VECTOR OPTIONS
#
beam_width_min 1.0
beam_width_max 1.0
beam_dot_size 1.0
beam_intensity_weight 0
flicker 0
#
# CORE SOUND OPTIONS
#
samplerate 48000
samples 1
volume 0
compressor 1
speaker_report 0
#
# CORE INPUT OPTIONS
#
coin_lockout 1
ctrlr
mouse 0
joystick 1
lightgun 0
multikeyboard 0
multimouse 0
steadykey 0
ui_active 0
offscreen_reload 0
joystick_map auto
joystick_deadzone 0.15
joystick_saturation 0.85
joystick_threshold 0.3
natural 0
joystick_contradictory 0
coin_impulse 0
#
# CORE INPUT AUTOMATIC ENABLE OPTIONS
#
paddle_device keyboard
adstick_device keyboard
pedal_device keyboard
dial_device keyboard
trackball_device keyboard
lightgun_device keyboard
positional_device keyboard
mouse_device mouse
#
# CORE DEBUGGING OPTIONS
#
verbose 0
log 0
oslog 0
debug 0
update_in_pause 0
debugscript
debuglog 0
#
# CORE COMM OPTIONS
#
comm_localhost 0.0.0.0
comm_localport 15112
comm_remotehost 127.0.0.1
comm_remoteport 15112
comm_framesync 0
#
# CORE MISC OPTIONS
#
drc 1
drc_use_c 0
drc_log_uml 0
drc_log_native 0
bios
cheat 0
skip_gameinfo 1
uifont default
ui cabinet
ramsize
confirm_quit 0
ui_mouse 1
language
nvram_save 1
#
# SCRIPTING OPTIONS
#
autoboot_command
autoboot_delay 0
autoboot_script
console 0
plugins 1
plugin
noplugin
#
# HTTP SERVER OPTIONS
#
http 0
http_port 8080
http_root web
#
# OSD INPUT MAPPING OPTIONS
#
uimodekey auto
controller_map none
background_input 0
#
# OSD FONT OPTIONS
#
uifontprovider auto
#
# OSD OUTPUT OPTIONS
#
output auto
#
# OSD INPUT OPTIONS
#
keyboardprovider auto
mouseprovider auto
lightgunprovider auto
joystickprovider auto
#
# OSD DEBUGGING OPTIONS
#
debugger auto
debugger_port 23946
debugger_font auto
debugger_font_size 0
watchdog 0
#
# OSD PERFORMANCE OPTIONS
#
numprocessors auto
bench 0
#
# OSD VIDEO OPTIONS
#
video opengl
numscreens 1
window 0
maximize 1
waitvsync 0
syncrefresh 0
monitorprovider auto
#
# OSD PER-WINDOW VIDEO OPTIONS
#
screen auto
aspect auto
resolution auto
view auto
screen0 auto
aspect0 auto
resolution0 auto
view0 auto
screen1 auto
aspect1 auto
resolution1 auto
view1 auto
screen2 auto
aspect2 auto
resolution2 auto
view2 auto
screen3 auto
aspect3 auto
resolution3 auto
view3 auto
#
# OSD FULL SCREEN OPTIONS
#
switchres 0
#
# OSD ACCELERATED VIDEO OPTIONS
#
filter 1
prescale 1
#
# OpenGL-SPECIFIC OPTIONS
#
gl_forcepow2texture 0
gl_notexturerect 0
gl_vbo 1
gl_pbo 1
gl_glsl 0
gl_glsl_filter 1
glsl_shader_mame0 none
glsl_shader_mame1 none
glsl_shader_mame2 none
glsl_shader_mame3 none
glsl_shader_mame4 none
glsl_shader_mame5 none
glsl_shader_mame6 none
glsl_shader_mame7 none
glsl_shader_mame8 none
glsl_shader_mame9 none
glsl_shader_screen0 none
glsl_shader_screen1 none
glsl_shader_screen2 none
glsl_shader_screen3 none
glsl_shader_screen4 none
glsl_shader_screen5 none
glsl_shader_screen6 none
glsl_shader_screen7 none
glsl_shader_screen8 none
glsl_shader_screen9 none
#
# OSD SOUND OPTIONS
#
sound auto
audio_latency 2
#
# PORTAUDIO OPTIONS
#
pa_api none
pa_device none
pa_latency 0
#
# OSD MIDI OPTIONS
#
midiprovider auto
#
# OSD EMULATED NETWORKING OPTIONS
#
networkprovider auto
#
# BGFX POST-PROCESSING OPTIONS
#
bgfx_path bgfx
bgfx_backend auto
bgfx_debug 0
bgfx_screen_chains
bgfx_shadow_mask slot-mask.png
bgfx_lut lut-default.png
bgfx_avi_name auto
#
# SDL PERFORMANCE OPTIONS
#
sdlvideofps 0
#
# SDL VIDEO OPTIONS
#
centerh 1
centerv 1
scalemode none
#
# SDL FULL SCREEN OPTIONS
#
useallheads 0
attach_window
#
# SDL KEYBOARD MAPPING
#
keymap 0
keymap_file keymap.dat
#
# SDL JOYSTICK MAPPING
#
sixaxis 0
#
# SDL LIGHTGUN MAPPING
#
lightgun_index1 auto
lightgun_index2 auto
lightgun_index3 auto
lightgun_index4 auto
lightgun_index5 auto
lightgun_index6 auto
lightgun_index7 auto
lightgun_index8 auto
#
# SDL LOW-LEVEL DRIVER OPTIONS
#
videodriver auto
renderdriver auto
audiodriver auto
gl_lib auto

70
emu-configs/mame/ui.ini Normal file
View file

@ -0,0 +1,70 @@
#
# UI SEARCH PATH OPTIONS
#
historypath history;dats;.
categorypath folders
cabinets_directory cabinets;cabdevs
cpanels_directory cpanel
pcbs_directory pcb
flyers_directory flyers
titles_directory titles
ends_directory ends
marquees_directory marquees;$HOME/retrodeck/downloaded_media/arcade/marquees
artwork_preview_directory "artwork preview;artpreview"
bosses_directory bosses
logos_directory logo
scores_directory scores
versus_directory versus
gameover_directory gameover
howto_directory howto
select_directory select
icons_directory icons
covers_directory covers;$HOME/retrodeck/downloaded_media/arcade/covers
ui_path ui
#
# UI MISC OPTIONS
#
system_names
skip_warnings 1
unthrottle_mute 0
#
# UI OPTIONS
#
infos_text_size 0.75
font_rows 30
ui_border_color ffffffff
ui_bg_color ef101030
ui_clone_color ff808080
ui_dipsw_color ffffff00
ui_gfxviewer_color ef101030
ui_mousedown_bg_color b0606000
ui_mousedown_color ffffff80
ui_mouseover_bg_color 70404000
ui_mouseover_color ffffff80
ui_selected_bg_color ef808000
ui_selected_color ffffff00
ui_slider_color ffffffff
ui_subitem_color ffffffff
ui_text_bg_color ef000000
ui_text_color ffffffff
ui_unavail_color ff404040
#
# SYSTEM/SOFTWARE SELECTION MENU OPTIONS
#
hide_main_panel 0
use_background 1
skip_biosmenu 0
skip_partsmenu 0
remember_last 0
last_used_filter Available
system_right_panel image
software_right_panel image
system_right_image cover
software_right_image snap
enlarge_snaps 1
forced4x3 1
info_audit_enabled 0
hide_romless 1

Some files were not shown because too many files have changed in this diff Show more