Merge branch 'cooker-0.8.0b' into feat/gyro

This commit is contained in:
XargonWan 2024-02-17 09:29:36 +01:00
commit 937105914f
51 changed files with 1236 additions and 912 deletions

13
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,13 @@
# These are supported funding model platforms
#github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: RetroDECK # Replace with a single Patreon username
#open_collective: # Replace with a single Open Collective username
#ko_fi: # Replace with a single Ko-fi username
#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
#community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
#liberapay: # Replace with a single Liberapay username
#issuehunt: # Replace with a single IssueHunt username
#otechie: # Replace with a single Otechie username
#lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: ['https://retrodeck.readthedocs.io/en/latest/wiki_about/donations-licenses/'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

1
.gitignore vendored
View file

@ -17,6 +17,7 @@ backup
.old
tmp
.godot
rd-submodules/es-de/patches-tmp*
.local/
buildid
*.bak

View file

@ -4,13 +4,13 @@
# RetroDECK on your device!
<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/>
<img src="https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen05.jpeg?raw=true" alt="screenshot" width="300"/>
<img src="https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen06.jpeg?raw=true" alt="screenshot" width="300"/>
</p>
<br/>
Instead of having several different emulators, engines and frontends on your Linux/SteamOS system you only need one: RetroDECK.
![Flathub](https://img.shields.io/flathub/downloads/net.retrodeck.retrodeck)
![Flathub](https://img.shields.io/flathub/v/net.retrodeck.retrodeck)
@ -18,43 +18,21 @@
![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)
# What is RetroDECK?
Instead of having several different software on your system for a variety of emulators and frontends you only need to have one: RetroDECK.
**The RetroDECK Wiki & FAQ**
RetroDECK is a [EmulationStation Desktop Edition](https://es-de.org) (ES-DE) powered flatpak application that builds in a variety of emulators and other software that allows you to play your favorite retro (and even not-so-retro) games in one complete package.
Please check out the these links for even more information:
It's inspired by embedded emulation systems like:
- AmberELEC
- EmuELEC
- CoreELEC
- Lakka
- Batocera
The RetroDECK team consists of several veterans from some of the projects mentioned above as well as a bunch of other talented individuals.
RetroDECK also adds the `RetroDECK Framework` and the `RetroDECK Configurator` on top of the emulators and ES-DE frontend that allows deeper integrations between emulators and easier exposure to a variety of features that you otherwise need to set per emulator basis to create a uniformity between them.
For our long term vision you can check out the following wiki page:
[RetroDECK: Visions and Goals](https://github.com/XargonWan/RetroDECK/wiki/RetroDECK%3A-Visions-and-Goals)
### 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)
- [RetroDECK Wiki](https://retrodeck.readthedocs.io/en/latest/)
- [RetroDECK FAQ](https://retrodeck.readthedocs.io/en/latest/wiki_general/faq/)
# How do I start using RetroDECK?
Basically just download it from Flathub, put your roms/games and needed bioses and just play.
We have an in depth How To on how to get started over here:
Read our getting started guide here:
[How to: Start using RetroDECK](https://github.com/XargonWan/RetroDECK/wiki/How-to%3A-Start-using-RetroDECK)
[How to: Start using RetroDECK](https://retrodeck.readthedocs.io/en/latest/wiki_general/retrodeck-start/)
## What devices/systems does RetroDECK support:
RetroDECK currently supports:
- Steam Deck
@ -62,21 +40,58 @@ RetroDECK currently supports:
For more information read up here:
[Supported Systems](https://github.com/XargonWan/RetroDECK/wiki/RetroDECK%3A-Supported-Systems)
[Supported Systems](https://retrodeck.readthedocs.io/en/latest/wiki_general/supported-devices/)
## What is RetroDECK?
RetroDECK is a [EmulationStation Desktop Edition](https://es-de.org) (ES-DE) powered Linux [Flatpak application](https://flathub.org/apps/net.retrodeck.retrodeck) that thanks to its `RetroDECK Framework` it builds-in and manage a variety of emulators and other software that allows you to play your favorite retro (and even not-so-retro) games in one complete package.
### So what does that mean?
It means that RetroDECK provides all the emulators, systems and a frontend. RetroDECK configures them for you and put them into one application you can download from Flathub.
By being one application RetroDECK can put all important files in one location for all the emulators, instead of having them spread out over your entire system and even add features on top to orchestrate them seamlessly.
## Is RetroDECK in Beta?
### The RetroDECK Framework
As previously mentioned, RetroDECK also adds the `RetroDECK Framework` on top of the emulators and ES-DE interface that allows deeper integrations between emulators and easier exposure to a variety of features that you otherwise need to set per emulator basis to create a uniformity between them.
The `RetroDECK Configurator` is a `Utility` that some parts of exposes the `RetroDECK Framework` to the RetroDECK users.
**What can the RetroDECK Framework and by extent the RetroDECK Configurator do?**
It can help with:
- Compressing games
- Easier `Texture Pack` and `Mod` management
- File management
- Tools for troubleshooting (BIOS Checker, Multi-File Structure Checker, Partial or full reset of functions)
- Auto installing some free BIOSes
- Install prebuilt Steam Input profiles for devices like the Steam Deck and external controllers
- Easier management of `mods`, `roms`, `texture_packs`, `scraped media`, `screenshots`, `saves / states` `gamelists` and more
- Give access to global presets that can be acitivated to configure things over many emulators in one go like: `RetroAchievements`
`Borders` `Widescreen Mode` `Swaping A/B X/Y for Nintendo Games`
For our long term vision you can check out the following wiki page:
[RetroDECK: Visions and Goals](https://retrodeck.readthedocs.io/en/latest/wiki_about/visions-and-goals/)
### How to get support?
Use the supports channels on [Discord](https://discord.gg/Dz3szYsP8g) `🤝-community-support` and `🆘-support`.
### 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)
### Is RetroDECK in Beta?
Yes, here you can read more about the beta period:
[RetroDECK: Beta period](https://github.com/XargonWan/RetroDECK/wiki/RetroDECK%3A-Beta-period)
## Can I contribute to the project?
[RetroDECK: Beta period](https://retrodeck.readthedocs.io/en/latest/wiki_general/beta-period/)
### Can I contribute to the project?
Yes, off course! <br>
Read up here on how to help out, there is something for everyone:
[How to: Contribute to RetroDECK](https://github.com/XargonWan/RetroDECK/wiki/How-to%3A-Contribute-to-RetroDECK)
[How to: Contribute to RetroDECK](https://retrodeck.readthedocs.io/en/latest/wiki_community/contibute-rd/)
## Our repositories:
| Name | Description |

View file

@ -3,3 +3,4 @@
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
flatpak remote-add --user --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo

View file

@ -8,11 +8,21 @@
# Needs the URL of the file, in this line format: hash^PLACEHOLDERTEXT^url
# latestcommit: Finds the most recent commit of a git repo and updated the placeholder in the manifest.
# Needs the URL of the repo and the branch to find the latest commit from, in this line format: latestcommit^PLACEHOLDERTEXT^url^branch
# latestappimage: Finds the download URL and SHA256 hash of the latest AppImage release from a git repo.
# Needs the API URL of the repo, in this line format: latestappimage^PLACEHOLDERTEXT^https://api.github.com/repos/<owner-name>/<repo-name>/releases/latest
# latestghrelease: Finds the download URL and SHA256 hash of the latest release from a git repo.
# Needs the API URL of the repo, in this line format: latestappimage^PLACEHOLDERTEXT^https://api.github.com/repos/<owner-name>/<repo-name>/releases/latest^<file suffix>
# As this command updates two different placeholders (one for the URL, one for the file hash) in the manifest,
# the URL that would be used in the above example is "PLACEHOLDERTEXT" and the hash placeholder text would be "HASHPLACEHOLDERTEXT"
# The "HASH" prefix of the placeholder text is hardcoded in the script
# The <file_suffix> will be the file extension or other identifying suffix at the end of the file name that can be used to select from multiple releases.
# Example: If there are these file options for a given release:
# yuzu-mainline-20240205-149629642.AppImage
# yuzu-linux-20240205-149629642-source.tar.xz
# yuzu-linux-20240205-149629642-debug.tar.xz
# Entering "AppImage" (without quotes) for the <file_suffix> will identify yuzu-mainline-20240205-149629642.AppImage
# Entering "source-.tar.xz" (without quotes) for the <file_suffix> will identify yuzu-linux-20240205-149629642-source.tar.xz
# Entering "debug-tar.xz" (without quotes) for the <file_suffix> will identify yuzu-linux-20240205-149629642-debug.tar.xz
# As a file extension like ".tar.zx" can apply to multiple file options, the entire part that is appended to each release name should be included.
# The <file_suffix> will also only consider entries where the given suffix is at the end of the file name. So "AppImage" will identify "file.AppImage" but not "file.AppImage.zsync"
# outside_file: Prints the contents of a file from the build environment (such as the buildid file) and replaces the placeholder text with those contents.
# outside_env_var: Gets the value of an environmental variable from the build environment (the output of "echo $var" from the terminal) and replaces the placeholder text with that value.
# custom_command: Runs a single command explicitly as written in the $URL field of the task list, including variable and command expansion. This should work the same as if you were runnig the command directly from the terminal.
@ -72,17 +82,17 @@ do
/bin/sed -i 's^'"$placeholder"'^'"$commit"'^' $rd_manifest
;;
"latestappimage" )
"latestghrelease" )
echo
echo "Placeholder text: $placeholder"
echo "Repo to look for AppImage releases: $url"
echo
appimageurl=$(curl -s "$url" | grep browser_download_url | grep "\.AppImage\"" | cut -d : -f 2,3 | tr -d \" | sed -n 1p | tr -d ' ')
echo "AppImage URL found: $appimageurl"
/bin/sed -i 's^'"$placeholder"'^'"$appimageurl"'^' $rd_manifest
appimagehash=$(curl -sL "$appimageurl" | sha256sum | cut -d ' ' -f1)
echo "AppImage hash found: $appimagehash"
/bin/sed -i 's^'"HASHFOR$placeholder"'^'"$appimagehash"'^' $rd_manifest
ghreleaseurl=$(curl -s "$url" | grep browser_download_url | grep "$branch\""$ | cut -d : -f 2,3 | tr -d \" | sed -n 1p | tr -d ' ')
echo "GitHub release URL found: $ghreleaseurl"
/bin/sed -i 's^'"$placeholder"'^'"$ghreleaseurl"'^' $rd_manifest
ghreleasehash=$(curl -sL "$ghreleaseurl" | sha256sum | cut -d ' ' -f1)
echo "GitHub release hash found: $ghreleasehash"
/bin/sed -i 's^'"HASHFOR$placeholder"'^'"$ghreleasehash"'^' $rd_manifest
;;
"outside_file" )

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -44,11 +44,12 @@
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="#top" style="color: rgb(49,52,55);">Home</a></li>
<li class="nav-item"><a class="nav-link" href="#features" style="color: rgb(49,52,55);">features</a></li>
<li class="nav-item"><a class="nav-link" href="https://github.com/XargonWan/RetroDECK/wiki" style="color: rgb(49,52,55);" target="_blank">wiki</a></li>
<li class="nav-item"><a class="nav-link" href="https://github.com/XargonWan/RetroDECK-cooker/" style="color: rgb(49,52,55);" target="_blank">cooker</a></li>
<li class="nav-item"><a class="nav-link" href="https://retrodeck.readthedocs.io/en/latest/blog/" style="color: rgb(49,52,55);" target="_blank">blog</a></li>
<li class="nav-item"><a class="nav-link" href="https://discord.gg/tbmBpJbpur" target="_blank" style="color: rgb(49,52,55);">Discord</a></li>
<li class="nav-item"><a class="nav-link" href="https://retrodeck.readthedocs.io/en/latest/" style="color: rgb(49,52,55);" target="_blank">wiki</a></li>
<li class="nav-item"><a class="nav-link" href="https://github.com/XargonWan/RetroDECK" target="_blank" style="color: rgb(49,52,55);">github</a></li>
<li class="nav-item"><a class="nav-link" href="https://www.patreon.com/RetroDECK" target="_blank" style="color: rgb(49,52,55);">patreon</a></li>
<li class="nav-item"><a class="nav-link" href="https://discord.gg/tbmBpJbpur" target="_blank" style="color: rgb(49,52,55);">connect with us</a></li>
<li class="nav-item"><a class="nav-link" href="https://github.com/XargonWan/RetroDECK-cooker/" style="color: rgb(49,52,55);" target="_blank">cooker</a></li>
<li class="nav-item"><a class="nav-link" href="https://retrodeck.readthedocs.io/en/latest/wiki_about/donations-licenses/" target="_blank" style="color: rgb(49,52,55);">donations</a></li>
</ul>
</div>
</div>
@ -58,8 +59,8 @@
<div class="container">
<!-- Start: Intro -->
<div class="intro">
<h2 class="text-center" style="font-size: 60px;margin-bottom: 0px;"><img class="img-fluid" src="assets/img/logo_stacked_esde.png" style="margin-bottom: 25px;"></h2>
<p class="text-center" style="font-size: 20px;color: rgb(255,255,255);"><span style="color: rgb(220, 221, 222); background-color: rgba(4, 4, 5, 0.07);">RetroDECK is a polished and beginner-friendly environment for playing your retro games on Steam Deck, available with just one click from the Discover app.</span></p>
<h2 class="text-center" style="font-size: 60px;margin-bottom: 0px;"><img class="img-fluid" src="assets/img/rd-esde-logo.svg" style="margin-bottom: 25px;"></h2>
<p class="text-center" style="font-size: 20px;color: rgb(255,255,255);"><span style="color: rgb(220, 221, 222); background-color: rgba(4, 4, 5, 0.07);">RetroDECK is a polished and beginner-friendly environment for playing your retro games on Steam Deck and Linux Desktop, available with just one click from the Discover app or wherever you get your flatpaks.</span></p>
</div><!-- End: Intro -->
<!-- Start: Buttons -->
<div class="buttons" style="margin-bottom: 0px;"><a class="btn btn-secondary" role="button" target="_blank" style="color: black;background: white;border-top-left-radius: 5px;border-top-right-radius: 5px;border-bottom-right-radius: 5px;border-bottom-left-radius: 5px;" href="https://flathub.org/apps/details/net.retrodeck.retrodeck"><i class="fas fa-download"></i>&nbsp;Get retrodeck</a></div><!-- End: Buttons -->
@ -94,8 +95,8 @@
<div class="container">
<div class="text-white bg-primary border rounded border-0 border-primary d-flex flex-column justify-content-between align-items-center align-items-sm-center align-items-md-center flex-lg-row justify-content-lg-center justify-content-xl-center justify-content-xxl-center p-4 p-md-5" style="background: linear-gradient(-95deg, #1a9fff, #946beb);">
<div class="pb-2 pb-lg-1">
<h2 class="fw-bold mb-2" style="color: rgb(255,255,255);text-align: center;">POWERED BY EMULATIONSTATION-DE</h2>
<p class="mb-0" style="color: rgb(255,255,255);text-align: center;">RetroDECK teamed up with ES-DE to bring you the best retro launcher out there!</p>
<h2 class="fw-bold mb-2" style="color: rgb(255,255,255);text-align: center;">POWERED BY ES-DE & THE RETRODECK FRAMEWORK</h2>
<p class="mb-0" style="color: rgb(255,255,255);text-align: center;">Together with ES-DE, other software and RetroDECK's own Framework. We are trying to bring you the best all-in-one system out there.</p>
</div>
</div>
</div>
@ -110,32 +111,40 @@
<!-- Start: Features -->
<div class="row justify-content-center features">
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-play-circle icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name">ready, set, go!</h3>
<p class="description">No configuration, just play!</p>
<h3 class="name">pickup and play</h3>
<p class="description">No configuration is needed to start. You provide the games and we provide the play.</p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-exchange-alt icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name"><strong>instant pickup</strong></h3>
<p class="description">Close your game? No worries! Pick up exactly where you left off!</p>
<h3 class="name"><strong>quick resume</strong></h3>
<p class="description">Quit your game and pick it up exactly where you left off.</p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-backward icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name"><strong>rewind</strong></h3>
<p class="description">Seems like you died! Go back in time and retry without having to restart your game or lose a life. <em>(Must be manually enabled during the beta)</em></p>
<h3 class="name"><strong>rewind & fast forward</strong></h3>
<p class="description"> Go back in time and retry without having to restart your game or skip over that long conversation.</p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-wrench icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name">The Configurator</h3>
<p class="description">A super powerful multi-tool interface that allows you to have quick access to the advanced functions and tweak them to your desire.</p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-box icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name">Flatpak</h3>
<p class="description">Everything is contained within one application and not over your entire filesystem. Only one place to look and one place to backu.!</p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fa fa-linux icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name">Use your system</h3>
<p class="description">With RetroDECK there is no need to replace your existing Linux / SteamOS to get a all-in-one retro gaming solution. Install it on what you already have. </p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-gamepad icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name">Hotkey System</h3>
<p class="description">Features a in-depth global hotkey system with radial menus in addition to button combos via Steam Input. </p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-ghost icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name"><strong>cheats</strong></h3>
<p class="description">Wanna be that guy? You can.</p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-wifi icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name">online gaming <em>(Coming soon)</em><br></h3>
<p class="description">Thanks to RetroArch's Netplay you will be able to play online with your friends, stay tuned for this feature!<br></p>
<p class="description">Can't surpass THAT point? Don't want to farm? Enable cheats and play smoothly. </p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-database icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name"><strong>metadata</strong></h3>
<p class="description">RetroDECK pulls information from your library to create a beautiful user experience!<br></p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-cloud-download-alt icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name"><strong>cloud saves <em>(coming soon)</em></strong></h3>
<p class="description">RetroDECK will backup your progression and sync it across multiple devices. <em>(User configuration may be needed)</em><br></p>
<h3 class="name"><strong>metadata & Images</strong></h3>
<p class="description">From the ES-DE frontend you can pull information to your library to create a beautiful user experience from various sources, that fits your style.<br></p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-medal icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name">Retro Achievements</h3>
@ -143,16 +152,63 @@
</div>
</div><!-- End: Features -->
</div>
</section><!-- End: Features Clean -->
<!-- Start: Banner Color -->
<section class="py-4 py-xl-5">
<div class="container">
<div class="text-white bg-primary border rounded border-0 border-primary d-flex flex-column justify-content-between align-items-center align-items-sm-center align-items-md-center flex-lg-row justify-content-lg-center justify-content-xl-center justify-content-xxl-center p-4 p-md-5" style="background: linear-gradient(-95deg, #1a9fff, #946beb);">
<div class="pb-2 pb-lg-1">
<h2 class="fw-bold mb-2" style="color: rgb(255,255,255);text-align: center;">Always evolving & Improving </h2>
<p class="mb-0" style="color: rgb(255,255,255);text-align: center;">The RetroDECK Team always have several things in the works, what follows is just a tiny selection. To stay up to date on latest RetroDECK news check the the Wiki and join the Discord.</p>
</div>
<div class="my-2"><a class="btn btn-light fs-5 py-2 px-4" role="button" href="https://retrodeck.readthedocs.io/en/latest/wiki_development/what-are-you-working.on/" target="_blank">News</a></div>
</div>
</div>
</section><!-- End: Banner Color -->
<section id="pl-features" class="features-clean">
<div class="container">
<!-- Start: Intro -->
<div class="intro">
<h2 class="text-center" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;">Planned / In-progress Features </h2>
</div><!-- End: Intro -->
<!-- Start: Features -->
<div class="row justify-content-center features">
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-wifi icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name">online gaming <br></h3>
<p class="description">Tools to make it easier to play with your friends online. <br></p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-cloud-download-alt icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name"><strong>cloud saves and backup </strong></h3>
<p class="description">RetroDECK will backup your progression and sync it across multiple devices. <br></p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-users icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name"><strong>Multi-User System</strong></h3>
<p class="description">Use local RetroDECK users or bind Steam Deck users to your own saves and emulator configurations. <br></p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-wrench icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name"><strong>Configurator Godot Edition</strong></h3>
<p class="description">The new controller friendly configurator with even more advanced tools. <br></p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-flask icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name"><strong>Add seperate games to Steam</strong></h3>
<p class="description">Tools for adding all your favorite games as seperate entries in Steam with the click of a button. <br></p>
</div>
<div class="col-sm-6 col-lg-4 item"><i class="fas fa-dice icon" style="background: linear-gradient(-95deg, #1a9fff, #946beb);-webkit-background-clip: text;-webkit-text-fill-color: transparent;"></i>
<h3 class="name"><strong>More Content</strong></h3>
<p class="description">RetroDECK will support even more Emulators / Game Engines / Tools and Systems. <br></p>
</div>
</div><!-- End: Features -->
</div>
</section><!-- End: Features Clean -->
<!-- Start: Banner Color -->
<section class="py-4 py-xl-5">
<div class="container">
<div class="text-white bg-primary border rounded border-0 border-primary d-flex flex-column justify-content-between flex-lg-row p-4 p-md-5" style="background: linear-gradient(-95deg, #1a9fff, #946beb);">
<div class="pb-2 pb-lg-1">
<h2 class="fw-bold mb-2" style="color: rgb(255,255,255);">Support us oN patreon!</h2>
<p class="mb-0" style="color: rgb(255,255,255);">Help us keep our servers running by donating to our Patreon!</p>
<h2 class="fw-bold mb-2" style="color: rgb(255,255,255);">Support RetroDECK or the software we use </h2>
<p class="mb-0" style="color: rgb(255,255,255);">Help us keep the game preservation ecosystem alive and healthy.</p>
</div>
<div class="my-2"><a class="btn btn-light fs-5 py-2 px-4" role="button" href="https://www.patreon.com/RetroDECK" target="_blank">donate</a></div>
<div class="my-2"><a class="btn btn-light fs-5 py-2 px-4" role="button" href="https://retrodeck.readthedocs.io/en/latest/wiki_about/donations-licenses/" target="_blank">donate</a></div>
</div>
</div>
</section><!-- End: Banner Color -->
@ -161,7 +217,7 @@
<!-- Start: Social Icons -->
<div class="social"><a href="https://discord.gg/tbmBpJbpur" target="_blank"><i class="fab fa-discord"></i></a><a href="https://github.com/XargonWan/RetroDECK" target="_blank"><i class="icon ion-social-github"></i></a></div><!-- End: Social Icons -->
<!-- Start: Copyright -->
<p class="copyright">Made with&nbsp;<i class="fa fa-heart"></i>&nbsp;by gabeee_boii#5232</p><!-- End: Copyright -->
<p class="copyright">Made with&nbsp;<i class="fa fa-heart"></i>&nbsp;by gabeee_boii#5232 and RetroDECK Team</p><!-- End: Copyright -->
</footer><!-- End: Footer Basic -->
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.js"></script>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View file

@ -911,7 +911,7 @@
}
"group"
{
"id" "45"
"id" "19"
"mode" "radial_menu"
"name" "Global Radial"
"description" ""
@ -925,7 +925,7 @@
{
"bindings"
{
"binding" "key_press FORWARD_SLASH, RetroDECK, RD-icon_circle_2_180x180.png, "
"binding" "mouse_button RIGHT, RetroDECK, RD-icon_circle_2_180x180.png, "
}
"settings"
{
@ -985,7 +985,7 @@
{
"bindings"
{
"binding" "key_press SPACE, Space, RD-space.png, "
"binding" "key_press TAB, Tab, RD-Tab.png, "
}
"settings"
{
@ -1005,7 +1005,7 @@
{
"bindings"
{
"binding" "key_press TAB, Tab, RD-Tab.png, "
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
}
"settings"
{
@ -1025,7 +1025,7 @@
{
"bindings"
{
"binding" "key_press LEFT_SHIFT, Shift, RD-shift.png, "
"binding" "key_press SPACE, Space, RD-space.png, "
}
"settings"
{
@ -1045,7 +1045,7 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
"binding" "key_press FORWARD_SLASH, /, RD-frontslash.png, "
}
"settings"
{
@ -1145,7 +1145,7 @@
{
"bindings"
{
"binding" "key_press F8, F8, RD-F8.png, "
"binding" "key_press F7, F7, RD-F7.png, "
}
"settings"
{
@ -1165,7 +1165,7 @@
{
"bindings"
{
"binding" "key_press F10, F10, RD-F10.png, "
"binding" "key_press F8, F8, RD-F8.png, "
}
"settings"
{
@ -1185,7 +1185,7 @@
{
"bindings"
{
"binding" "key_press F12, F12, RD-F12.png, "
"binding" "key_press F10, F10, RD-F10.png, "
}
"settings"
{
@ -1247,8 +1247,8 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press LEFT_CONTROL, Swap Dual - Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap Dual - Screens, RD-system-switch-user.png, "
}
"settings"
{
@ -1268,8 +1268,8 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press LEFT_CONTROL, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
}
"settings"
{
@ -1323,26 +1323,6 @@
{
}
}
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "mouse_button RIGHT, , "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{

View file

@ -14,7 +14,7 @@
"minor_revision" "0"
"Timestamp" "-925476208"
"actions"
{
{
"Default"
{
"title" "RetroDECK - Set"
@ -1134,7 +1134,7 @@
{
"id" "19"
"mode" "radial_menu"
"name" "Global Radial"
"name" "dial"
"description" ""
"inputs"
{
@ -1146,7 +1146,7 @@
{
"bindings"
{
"binding" "key_press FORWARD_SLASH, RetroDECK, RD-icon_circle_2_180x180.png, "
"binding" "mouse_button RIGHT, RetroDECK, RD-icon_circle_2_180x180.png, "
}
"settings"
{
@ -1206,7 +1206,7 @@
{
"bindings"
{
"binding" "key_press SPACE, Space, RD-space.png, "
"binding" "key_press TAB, Tab, RD-Tab.png, "
}
"settings"
{
@ -1226,7 +1226,7 @@
{
"bindings"
{
"binding" "key_press TAB, Tab, RD-Tab.png, "
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
}
"settings"
{
@ -1246,7 +1246,7 @@
{
"bindings"
{
"binding" "key_press LEFT_SHIFT, Shift, RD-shift.png, "
"binding" "key_press SPACE, Space, RD-space.png, "
}
"settings"
{
@ -1266,7 +1266,7 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
"binding" "key_press FORWARD_SLASH, /, RD-frontslash.png, "
}
"settings"
{
@ -1366,7 +1366,7 @@
{
"bindings"
{
"binding" "key_press F8, F8, RD-F8.png, "
"binding" "key_press F7, F7, RD-F7.png, "
}
"settings"
{
@ -1386,7 +1386,7 @@
{
"bindings"
{
"binding" "key_press F10, F10, RD-F10.png, "
"binding" "key_press F8, F8, RD-F8.png, "
}
"settings"
{
@ -1406,7 +1406,7 @@
{
"bindings"
{
"binding" "key_press F12, F12, RD-F12.png, "
"binding" "key_press F10, F10, RD-F10.png, "
}
"settings"
{
@ -1468,8 +1468,8 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press LEFT_CONTROL, Swap Dual - Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap Dual - Screens, RD-system-switch-user.png, "
}
"settings"
{
@ -1489,8 +1489,8 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press LEFT_CONTROL, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
}
"settings"
{
@ -1544,26 +1544,6 @@
{
}
}
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "mouse_button RIGHT, , "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{

View file

@ -1149,7 +1149,7 @@
{
"bindings"
{
"binding" "key_press FORWARD_SLASH, RetroDECK, RD-icon_circle_2_180x180.png, "
"binding" "mouse_button RIGHT, RetroDECK, RD-icon_circle_2_180x180.png, "
}
"settings"
{
@ -1269,7 +1269,7 @@
{
"bindings"
{
"binding" "key_press LEFT_ALT, Alt, RD-alt.png, "
"binding" "key_press FORWARD_SLASH, /, RD-frontslash.png, "
}
"settings"
{
@ -1289,7 +1289,7 @@
{
"bindings"
{
"binding" "key_press F1, F1, RD-F1.png, "
"binding" "key_press LEFT_ALT, Alt, RD-alt.png, "
}
"settings"
{
@ -1309,7 +1309,7 @@
{
"bindings"
{
"binding" "key_press F4, F4, RD-F4.png, "
"binding" "key_press F1, F1, RD-F1.png, "
}
"settings"
{
@ -1329,7 +1329,7 @@
{
"bindings"
{
"binding" "key_press F5, F5, RD-F5.png, "
"binding" "key_press F4, F4, RD-F4.png, "
}
"settings"
{
@ -1349,7 +1349,7 @@
{
"bindings"
{
"binding" "key_press F8, F8, RD-F8.png, "
"binding" "key_press F5, F5, RD-F5.png, "
}
"settings"
{
@ -1369,7 +1369,7 @@
{
"bindings"
{
"binding" "key_press F10, F10, RD-F10.png, "
"binding" "key_press F7, F7, RD-F7.png, "
}
"settings"
{
@ -1389,7 +1389,7 @@
{
"bindings"
{
"binding" "key_press F12, F12, RD-F12.png, "
"binding" "key_press F8, F8, RD-F8.png, "
}
"settings"
{
@ -1402,6 +1402,26 @@
}
}
"touch_menu_button_13"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F10, F10, RD-F10.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_14"
{
"activators"
{
@ -1422,7 +1442,7 @@
{
}
}
"touch_menu_button_14"
"touch_menu_button_15"
{
"activators"
{
@ -1443,7 +1463,7 @@
{
}
}
"touch_menu_button_15"
"touch_menu_button_16"
{
"activators"
{
@ -1464,7 +1484,7 @@
{
}
}
"touch_menu_button_16"
"touch_menu_button_17"
{
"activators"
{
@ -1485,7 +1505,7 @@
{
}
}
"touch_menu_button_17"
"touch_menu_button_18"
{
"activators"
{
@ -1506,7 +1526,7 @@
{
}
}
"touch_menu_button_18"
"touch_menu_button_19"
{
"activators"
{
@ -1527,26 +1547,6 @@
{
}
}
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "mouse_button RIGHT, , "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{

View file

@ -1149,7 +1149,7 @@
{
"bindings"
{
"binding" "key_press FORWARD_SLASH, RetroDECK, RD-icon_circle_2_180x180.png, "
"binding" "mouse_button RIGHT, RetroDECK, RD-icon_circle_2_180x180.png, "
}
"settings"
{
@ -1209,7 +1209,7 @@
{
"bindings"
{
"binding" "key_press SPACE, Space, RD-space.png, "
"binding" "key_press TAB, Tab, RD-Tab.png, "
}
"settings"
{
@ -1229,7 +1229,7 @@
{
"bindings"
{
"binding" "key_press TAB, Tab, RD-Tab.png, "
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
}
"settings"
{
@ -1249,7 +1249,7 @@
{
"bindings"
{
"binding" "key_press LEFT_SHIFT, Shift, RD-shift.png, "
"binding" "key_press SPACE, Space, RD-space.png, "
}
"settings"
{
@ -1269,7 +1269,7 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
"binding" "key_press FORWARD_SLASH, /, RD-frontslash.png, "
}
"settings"
{
@ -1369,7 +1369,7 @@
{
"bindings"
{
"binding" "key_press F8, F8, RD-F8.png, "
"binding" "key_press F7, F7, RD-F7.png, "
}
"settings"
{
@ -1389,7 +1389,7 @@
{
"bindings"
{
"binding" "key_press F10, F10, RD-F10.png, "
"binding" "key_press F8, F8, RD-F8.png, "
}
"settings"
{
@ -1409,7 +1409,7 @@
{
"bindings"
{
"binding" "key_press F12, F12, RD-F12.png, "
"binding" "key_press F10, F10, RD-F10.png, "
}
"settings"
{
@ -1471,8 +1471,8 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press LEFT_CONTROL, Swap Dual - Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap Dual - Screens, RD-system-switch-user.png, "
}
"settings"
{
@ -1492,8 +1492,8 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press LEFT_CONTROL, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
}
"settings"
{
@ -1547,26 +1547,6 @@
{
}
}
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "mouse_button RIGHT, , "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{

View file

@ -1171,7 +1171,7 @@
{
"bindings"
{
"binding" "key_press FORWARD_SLASH, RetroDECK, RD-icon_circle_2_180x180.png, "
"binding" "mouse_button RIGHT, RetroDECK, RD-icon_circle_2_180x180.png, "
}
"settings"
{
@ -1231,7 +1231,7 @@
{
"bindings"
{
"binding" "key_press SPACE, Space, RD-space.png, "
"binding" "key_press TAB, Tab, RD-Tab.png, "
}
"settings"
{
@ -1251,7 +1251,7 @@
{
"bindings"
{
"binding" "key_press TAB, Tab, RD-Tab.png, "
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
}
"settings"
{
@ -1271,7 +1271,7 @@
{
"bindings"
{
"binding" "key_press LEFT_SHIFT, Shift, RD-shift.png, "
"binding" "key_press SPACE, Space, RD-space.png, "
}
"settings"
{
@ -1291,7 +1291,7 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
"binding" "key_press FORWARD_SLASH, /, RD-frontslash.png, "
}
"settings"
{
@ -1391,7 +1391,7 @@
{
"bindings"
{
"binding" "key_press F8, F8, RD-F8.png, "
"binding" "key_press F7, F7, RD-F7.png, "
}
"settings"
{
@ -1411,7 +1411,7 @@
{
"bindings"
{
"binding" "key_press F10, F10, RD-F10.png, "
"binding" "key_press F8, F8, RD-F8.png, "
}
"settings"
{
@ -1431,7 +1431,7 @@
{
"bindings"
{
"binding" "key_press F12, F12, RD-F12.png, "
"binding" "key_press F10, F10, RD-F10.png, "
}
"settings"
{
@ -1493,8 +1493,8 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press LEFT_CONTROL, Swap Dual - Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap Dual - Screens, RD-system-switch-user.png, "
}
"settings"
{
@ -1514,8 +1514,8 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press LEFT_CONTROL, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
}
"settings"
{
@ -1569,26 +1569,6 @@
{
}
}
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "mouse_button RIGHT, , "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{
@ -2034,4 +2014,3 @@
"right_trackpad_mode" "0"
}
}
}

View file

@ -917,7 +917,7 @@
{
"bindings"
{
"binding" "key_press FORWARD_SLASH, RetroDECK, RD-icon_circle_2_180x180.png, "
"binding" "mouse_button RIGHT, RetroDECK, RD-icon_circle_2_180x180.png, "
}
"settings"
{
@ -977,7 +977,7 @@
{
"bindings"
{
"binding" "key_press SPACE, Space, RD-space.png, "
"binding" "key_press TAB, Tab, RD-Tab.png, "
}
"settings"
{
@ -997,7 +997,7 @@
{
"bindings"
{
"binding" "key_press TAB, Tab, RD-Tab.png, "
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
}
"settings"
{
@ -1017,7 +1017,7 @@
{
"bindings"
{
"binding" "key_press LEFT_SHIFT, Shift, RD-shift.png, "
"binding" "key_press SPACE, Space, RD-space.png, "
}
"settings"
{
@ -1037,7 +1037,7 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
"binding" "key_press FORWARD_SLASH, /, RD-frontslash.png, "
}
"settings"
{
@ -1137,7 +1137,7 @@
{
"bindings"
{
"binding" "key_press F8, F8, RD-F8.png, "
"binding" "key_press F7, F7, RD-F7.png, "
}
"settings"
{
@ -1157,7 +1157,7 @@
{
"bindings"
{
"binding" "key_press F10, F10, RD-F10.png, "
"binding" "key_press F8, F8, RD-F8.png, "
}
"settings"
{
@ -1177,7 +1177,7 @@
{
"bindings"
{
"binding" "key_press F12, F12, RD-F12.png, "
"binding" "key_press F10, F10, RD-F10.png, "
}
"settings"
{
@ -1239,8 +1239,8 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press LEFT_CONTROL, Swap Dual - Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap Dual - Screens, RD-system-switch-user.png, "
}
"settings"
{
@ -1260,8 +1260,8 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press LEFT_CONTROL, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
}
"settings"
{
@ -1315,26 +1315,6 @@
{
}
}
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "mouse_button RIGHT, , "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{

View file

@ -1134,7 +1134,7 @@
{
"id" "19"
"mode" "radial_menu"
"name" "Global Radial"
"name" "dial"
"description" ""
"inputs"
{
@ -1146,7 +1146,7 @@
{
"bindings"
{
"binding" "key_press FORWARD_SLASH, RetroDECK, RD-icon_circle_2_180x180.png, "
"binding" "mouse_button RIGHT, RetroDECK, RD-icon_circle_2_180x180.png, "
}
"settings"
{
@ -1206,7 +1206,7 @@
{
"bindings"
{
"binding" "key_press SPACE, Space, RD-space.png, "
"binding" "key_press TAB, Tab, RD-Tab.png, "
}
"settings"
{
@ -1226,7 +1226,7 @@
{
"bindings"
{
"binding" "key_press TAB, Tab, RD-Tab.png, "
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
}
"settings"
{
@ -1246,7 +1246,7 @@
{
"bindings"
{
"binding" "key_press LEFT_SHIFT, Shift, RD-shift.png, "
"binding" "key_press SPACE, Space, RD-space.png, "
}
"settings"
{
@ -1266,7 +1266,7 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
"binding" "key_press FORWARD_SLASH, /, RD-frontslash.png, "
}
"settings"
{
@ -1366,7 +1366,7 @@
{
"bindings"
{
"binding" "key_press F8, F8, RD-F8.png, "
"binding" "key_press F7, F7, RD-F7.png, "
}
"settings"
{
@ -1386,7 +1386,7 @@
{
"bindings"
{
"binding" "key_press F10, F10, RD-F10.png, "
"binding" "key_press F8, F8, RD-F8.png, "
}
"settings"
{
@ -1406,7 +1406,7 @@
{
"bindings"
{
"binding" "key_press F12, F12, RD-F12.png, "
"binding" "key_press F10, F10, RD-F10.png, "
}
"settings"
{
@ -1468,8 +1468,8 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press LEFT_CONTROL, Swap Dual - Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap Dual - Screens, RD-system-switch-user.png, "
}
"settings"
{
@ -1489,8 +1489,8 @@
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press LEFT_CONTROL, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
}
"settings"
{
@ -1544,26 +1544,6 @@
{
}
}
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "mouse_button RIGHT, , "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{
@ -1609,3 +1589,4 @@
"right_trackpad_mode" "0"
}
}

View file

@ -828,37 +828,421 @@
"description" ""
"inputs"
{
"dpad_north"
}
"settings"
{
"requires_click" "0"
}
}
"group"
{
"id" "20"
"mode" "radial_menu"
"name" "Global Radial"
"description" ""
"inputs"
{
"touch_menu_button_0"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "mouse_button RIGHT, RetroDECK, RD-icon_circle_2_180x180.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"dpad_south"
"touch_menu_button_1"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press ESCAPE, Escape, RD-ESC.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"dpad_east"
"touch_menu_button_2"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press RETURN, Enter, RD-Enter.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"click"
"touch_menu_button_3"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press TAB, Tab, RD-Tab.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_4"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_5"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press SPACE, Space, RD-space.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_6"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press FORWARD_SLASH, /, RD-frontslash.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_7"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_ALT, Alt, RD-alt.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_8"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F1, F1, RD-F1.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_9"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F4, F4, RD-F4.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_10"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F5, F5, RD-F5.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_11"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F7, F7, RD-F7.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_12"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F8, F8, RD-F8.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_13"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F10, F10, RD-F10.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_14"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Restart / Reset, RD-system-reboot.png, "
"binding" "key_press R, Restart / Reset, RD-system-reboot.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_15"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_ALT, Wii Sync Button, RD-notification-network-wireless.png, "
"binding" "key_press W, Wii Sync Button, RD-notification-network-wireless.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_16"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Swap Dual - Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap Dual - Screens, RD-system-switch-user.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_17"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change Dual Screen - Layout, RD-preferences-system-windows-actions.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_18"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Widescreen / Aspect Ratio, RD-preferences-desktop-display.png, "
"binding" "key_press W, Widescreen / Aspect Ratio, RD-preferences-desktop-display.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_19"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Swap Disc, RD-application-x-iso.png, "
"binding" "key_press D, Swap Disc, RD-application-x-iso.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
@ -867,7 +1251,7 @@
}
"settings"
{
"requires_click" "0"
"touchmenu_button_fire_type" "0"
}
}
"group"
@ -1067,7 +1451,7 @@
"binding" "controller_action CHANGE_PRESET 1 0 1, , "
}
}
"release"
"Full_Press"
{
"bindings"
{
@ -1195,446 +1579,6 @@
}
}
}
"group"
{
"id" "20"
"mode" "radial_menu"
"name" "Global Radial"
"description" ""
"inputs"
{
"touch_menu_button_0"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press FORWARD_SLASH, RetroDECK, RD-icon_circle_2_180x180.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_1"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press ESCAPE, Escape, RD-ESC.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_2"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press RETURN, Enter, RD-Enter.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_3"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press SPACE, Space, RD-space.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_4"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press TAB, Tab, RD-Tab.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_5"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_SHIFT, Shift, RD-shift.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_6"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Control, RD-ctrl.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_7"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_ALT, Alt, RD-alt.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_8"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F1, F1, RD-F1.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_9"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F4, F4, RD-F4.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_10"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F5, F5, RD-F5.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_11"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F8, F8, RD-F8.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_12"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F10, F10, RD-F10.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_13"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press F12, F12, RD-F12.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_14"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Restart / Reset, RD-system-reboot.png, "
"binding" "key_press R, Restart / Reset, RD-system-reboot.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_15"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_ALT, Wii Sync Button, RD-notification-network-wireless.png, "
"binding" "key_press W, Wii Sync Button, RD-notification-network-wireless.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_16"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Swap - Dual Screens, RD-system-switch-user.png, "
"binding" "key_press TAB, Swap - Dual Screens, RD-system-switch-user.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_17"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
"binding" "key_press L, Change - Dual Screen Layout, RD-preferences-system-windows-actions.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_18"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Widescreen / Aspect Ratio, RD-preferences-desktop-display.png, "
"binding" "key_press W, Widescreen / Aspect Ratio, RD-preferences-desktop-display.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"touch_menu_button_19"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "key_press LEFT_CONTROL, Swap Disc, RD-application-x-iso.png, "
"binding" "key_press D, Swap Disc, RD-application-x-iso.png, "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
"click"
{
"activators"
{
"Full_Press"
{
"bindings"
{
"binding" "mouse_button RIGHT, , "
}
"settings"
{
"haptic_intensity" "2"
}
}
}
"disabled_activators"
{
}
}
}
"settings"
{
"touchmenu_button_fire_type" "0"
}
}
"preset"
{
"id" "0"

View file

@ -1 +1,4 @@
1201^1231^0000^2359^RetroDECK-Xmas-splash.svg
1201^1231^0000^2359^rd-xmas-splash.svg
0209^0212^0000^2359^rd-lunar-dragon-splash.svg
0214^0214^0001^2359^rd-valentines-splash.svg
0317^0317^0000^2359^rd-stpatricks-splash.svg

View file

@ -5,19 +5,22 @@ If you feel you have contributed to the project but lacks mention, please contac
The Team
XargonWan
RetroDECK project founder and also one of the founding members of AmberELEC
RetroDECK project founder and also one of the founding members of AmberELEC.
IceNine451
Creator of the RetroDECK configurator and various awesome features.
Creator of the RetroDECK configurator and the RetroDECK Framework.
Lazorne
Community management/outreach, testing, documentation, feature suggestions and some design.
Community management/outreach, testing, documentation and Wiki Lord.
dottormac
Beta Tester
WallK
Works on Godot Features.
LX32
Junior code contributor, Beta Tester
Works on a many projects.
dottormac
Tester
Collaborators

View file

@ -33,3 +33,4 @@ RightAn.Down = 10-4006
RightAn.Left = 10-4005
RightAn.Right = 10-4004
Previous Slot = 1-113:1-38
Exit App = 1-113:1-45

View file

@ -118,9 +118,9 @@ configurator_move_folder_dialog() {
if [[ -d "$dest_root/$rd_dir_path" ]]; then # If the move succeeded
declare -g "$rd_dir_name=$dest_root/$rd_dir_path" # Set the new path for that folder variable in retrodeck.cfg
if [[ "$rd_dir_name" == "rdhome" ]]; then # If the whole retrodeck folder was moved...
prepare_emulator "postmove" "retrodeck"
prepare_component "postmove" "retrodeck"
fi
prepare_emulator "postmove" "all" # Update all the appropriate emulator path settings
prepare_component "postmove" "all" # Update all the appropriate emulator path settings
conf_write # Write the settings to retrodeck.cfg
if [[ -z $(ls -1 "$source_root/retrodeck") ]]; then # Cleanup empty old_path/retrodeck folder if it was left behind
rmdir "$source_root/retrodeck"
@ -150,7 +150,7 @@ configurator_move_folder_dialog() {
configurator_generic_dialog "RetroDECK Configurator - Move Folder" "The $(basename $dir_to_move) folder was not found at the expected location.\n\nThis may have happened if the folder was moved manually.\n\nPlease select the current location of the folder."
dir_to_move=$(directory_browse "RetroDECK $(basename $dir_to_move) directory location")
declare -g "$rd_dir_name=$dir_to_move"
prepare_emulator "postmove" "all"
prepare_component "postmove" "all"
conf_write
configurator_generic_dialog "RetroDECK Configurator - Move Folder" "RetroDECK $(basename $dir_to_move) folder now configured at\n$dir_to_move."
configurator_move_folder_dialog "$rd_dir_name"

View file

@ -100,6 +100,43 @@ move() {
fi
}
download_file() {
# Function to download file from the Internet, with Zenity progress bar
# USAGE: download_file $source_url $file_dest $file_name
# source_url is the location the file is downloaded from
# file_dest is the destination the file should be in the filesystem, needs filename included!
# file_name is a user-readable file name or description to be put in the Zenity dialog
# Run wget in the background and redirect the progress to a temporary file
(
wget "$1" -O "$2" -q --show-progress --progress=dot 2>&1 | sed -n -e 's/^.* \([0-9]*\)%.*$/\1/p' > "/var/cache/tmp/download_progress" &
wget_pid=$!
progress="0"
echo "$progress" # Initial progress value. sent to Zenity
while true; do
progress=$(tail -n 2 "/var/cache/tmp/download_progress" | head -1) # Read the second-to-last value written to the pipe, to avoid reading data that is half written
echo "$progress" # Send value to Zenity
if [[ "$(tail -n 1 "/var/cache/tmp/download_progress")" == "100" ]]; then # Read last line every time to check for download completion
echo "100"
break
fi
sleep 0.5
done
# Wait for wget process to finish
wait "$wget_pid"
) |
zenity --progress \
--title="Downloading File" \
--text="Downloading $3..." \
--percentage=0 \
--auto-close
# Cleanup temp file
rm -f "/var/cache/tmp/download_progress"
}
update_rd_conf() {
# This function will import a default retrodeck.cfg file and update it with any current settings. This will allow us to expand the file over time while retaining current user settings.
# USAGE: update_rd_conf
@ -247,15 +284,9 @@ dir_prep() {
}
update_rpcs3_firmware() {
(
mkdir -p "$roms_folder/ps3/tmp"
chmod 777 "$roms_folder/ps3/tmp"
wget "$rpcs3_firmware" -P "$roms_folder/ps3/tmp/"
) |
zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK RPCS3 Firmware Download" \
--text="RetroDECK downloading the RPCS3 firmware, please wait."
download_file "$rpcs3_firmware" "$roms_folder/ps3/tmp/PS3UPDAT.PUP" "RPCS3 Firmware"
rpcs3 --installfw "$roms_folder/ps3/tmp/PS3UPDAT.PUP"
rm -rf "$roms_folder/ps3/tmp"
}
@ -337,6 +368,9 @@ finit() {
echo "Executing finit"
# Placing the default retrodeck.cfg
cp -vf $rd_defaults $rd_conf
# Internal or SD Card?
local finit_dest_choice=$(configurator_destination_choice_dialog "RetroDECK data" "Welcome to the first configuration of RetroDECK.\nThe setup will be quick but please READ CAREFULLY each message in order to avoid misconfigurations.\n\nWhere do you want your RetroDECK data folder to be located?\n\nThis folder will contain all ROMs, BIOSs and scraped data." )
echo "Choice is $finit_dest_choice"
@ -404,7 +438,7 @@ finit() {
esac
prepare_emulator "reset" "retrodeck" # Parse the [paths] section of retrodeck.cfg and set the value of / create all needed folders
prepare_component "reset" "retrodeck" # Parse the [paths] section of retrodeck.cfg and set the value of / create all needed folders
conf_write # Write the new values to retrodeck.cfg
@ -420,7 +454,7 @@ finit() {
--text="RetroDECK will now install the needed files, which can take up to one minute.\nRetroDECK will start once the process is completed.\n\nPress OK to continue."
(
prepare_emulator "reset" "all"
prepare_component "reset" "all"
build_retrodeck_current_presets
deploy_helper_files
@ -467,7 +501,8 @@ install_retrodeck_controller_profile() {
# USAGE: install_retrodeck_controller_profile
if [[ -d "$HOME/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/" && -d "$HOME/.steam/steam/controller_base/templates/" ]]; then
rsync -rlD --mkpath "/app/retrodeck/binding_icons/" "$HOME/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/"
cp -f "$emuconfigs/defaults/retrodeck/controller_configs/*.vdf" "$HOME/.steam/steam/controller_base/templates"
rsync -rlD --mkpath "$emuconfigs/defaults/retrodeck/controller_configs/" "$HOME/.steam/steam/controller_base/templates/"
# TODO: delete older files Issue#672
else
configurator_generic_dialog "RetroDECK Controller Profile Install" "The target directories for the controller profile do not exist.\n\nThis may happen if you do not have Steam installed or the location is does not have permission to be read."
fi

View file

@ -10,7 +10,7 @@ source /app/libexec/functions.sh
source /app/libexec/multi_user.sh
source /app/libexec/patching.sh
source /app/libexec/post_update.sh
source /app/libexec/prepare_emulator.sh
source /app/libexec/prepare_component.sh
source /app/libexec/presets.sh
# Static variables
@ -177,8 +177,8 @@ else
new_home_path=$(directory_browse "RetroDECK folder location")
set_setting_value $rd_conf "rdhome" "$new_home_path" retrodeck "paths"
conf_read
prepare_emulator "retrodeck" "postmove"
prepare_emulator "all" "postmove"
prepare_component "retrodeck" "postmove"
prepare_component "all" "postmove"
conf_write
fi

View file

@ -208,7 +208,7 @@ multi_user_setup_new_user() {
do
if [[ ! -z $(grep "^$emu_conf$" "$multi_user_emulator_config_dirs") ]]; then
unlink "/var/config/$emu_conf"
prepare_emulator "reset" "$emu_conf"
prepare_component "reset" "$emu_conf"
fi
done
for emu_conf in $(find "/var/config" -mindepth 1 -maxdepth 1 -type d -printf '%f\n') # For all the currently non-linked config folders, like from a newly-added emulator
@ -238,7 +238,7 @@ multi_user_link_current_user_files() {
if [[ -d "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" ]]; then # If the current user already has a config folder for this emulator
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" "retrodeck/config/$emu_conf"
else # If the current user doesn't have a config folder for this emulator, init it and then link it
prepare_emulator "reset" "$emu_conf"
prepare_component "reset" "$emu_conf"
dir_prep "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" "/var/config/$emu_conf"
fi
fi

View file

@ -21,7 +21,7 @@ post_update() {
# - Fix PICO-8 folder structure. ROM and save folders are now sane and binary files will go into ~/retrodeck/bios/pico-8/
rm -rf /var/config/primehack # Purge old Primehack config files. Saves are safe as they are linked into /var/data/primehack.
prepare_emulator "reset" "primehack"
prepare_component "reset" "primehack"
dir_prep "$rdhome/saves/duckstation" "/var/data/duckstation/memcards"
dir_prep "$rdhome/states/duckstation" "/var/data/duckstation/savestates"
@ -212,14 +212,14 @@ post_update() {
set_setting_value "$ppssppconf" "AutoLoadSaveState" "0" "ppsspp" "General"
prepare_emulator "reset" "cemu"
prepare_component "reset" "cemu"
prepare_emulator "reset" "pico8"
prepare_component "reset" "pico8"
configurator_generic_dialog "RetroDECK 0.7.0b Upgrade" "Would you like to install the official controller profile?\n(this will reset your custom emulator settings)\n\nAfter installation you can enable it from from Controller Settings -> Templates."
if [[ $(configurator_generic_question_dialog "RetroDECK Official Controller Profile" "Would you like to install the official RetroDECK controller profile?") == "true" ]]; then
install_retrodeck_controller_profile
prepare_emulator "reset" "all"
prepare_component "reset" "all"
fi
fi
if [[ $prev_version -le "071" ]]; then
@ -276,9 +276,9 @@ post_update() {
if [[ $prev_version -le "075" ]]; then
# In version 0.7.5b, the following changes were made:
prepare_emulator "reset" "vita3k"
prepare_emulator "reset" "mame"
prepare_emulator "reset" "boilr"
prepare_component "reset" "vita3k"
prepare_component "reset" "mame"
prepare_component "reset" "boilr"
if [ -d "$rdhome/.logs" ]; then
mv "$rdhome/.logs" "$logs_folder"
log i "Logs folder renamed successfully"

View file

@ -1,19 +1,19 @@
#!/bin/bash
prepare_emulator() {
# This function will perform one of several actions on one or more emulators
prepare_component() {
# This function will perform one of several actions on one or more components
# The actions currently include "reset" and "postmove"
# The "reset" action will initialize the emulator
# The "postmove" action will update the emulator settings after one or more RetroDECK folders were moved
# An emulator can be called by name, by parent folder name in the /var/config root or use the option "all" to perform the action on all emulators equally
# The "reset" action will initialize the component
# The "postmove" action will update the component settings after one or more RetroDECK folders were moved
# An component can be called by name, by parent folder name in the /var/config root or use the option "all" to perform the action on all components equally
# The function will also behave differently depending on if the initial request was from the Configurator, the CLI interface or a normal function call if needed
# USAGE: prepare_emulator "$action" "$emulator" "$call_source(optional)"
# USAGE: prepare_component "$action" "$component" "$call_source(optional)"
action="$1"
emulator="$2"
component="$2"
call_source="$3"
if [[ "$emulator" == "retrodeck" ]]; then
if [[ "$component" == "retrodeck" ]]; then
if [[ "$action" == "reset" ]]; then # Update the paths of all folders in retrodeck.cfg and create them
while read -r config_line; do
local current_setting_name=$(get_setting_name "$config_line" "retrodeck")
@ -37,7 +37,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(emulationstation|all)$ ]]; then # For use after ESDE-related folders are moved or a reset
if [[ "$component" =~ ^(es-de|ES-DE|all)$ ]]; then # For use after ESDE-related folders are moved or a reset
if [[ "$action" == "reset" ]]; then
rm -rf /var/config/emulationstation/
mkdir -p /var/config/emulationstation/.emulationstation/
@ -57,7 +57,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(retroarch|RetroArch|all)$ ]]; then
if [[ "$component" =~ ^(retroarch|RetroArch|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
rm -rf "$multi_user_data_folder/$SteamAppUser/config/retroarch"
@ -154,7 +154,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(cemu|Cemu|all)$ ]]; then
if [[ "$component" =~ ^(cemu|Cemu|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "----------------------"
echo "Initializing CEMU"
@ -183,7 +183,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(citra|citra-emu|Citra|all)$ ]]; then
if [[ "$component" =~ ^(citra|citra-emu|Citra|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "------------------------"
echo "Initializing CITRA"
@ -230,7 +230,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(dolphin|dolphin-emu|Dolphin|all)$ ]]; then
if [[ "$component" =~ ^(dolphin|dolphin-emu|Dolphin|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "----------------------"
echo "Initializing DOLPHIN"
@ -285,7 +285,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(duckstation|Duckstation|all)$ ]]; then
if [[ "$component" =~ ^(duckstation|Duckstation|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "------------------------"
echo "Initializing DUCKSTATION"
@ -332,7 +332,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(melonds|melonDS|MelonDS|all)$ ]]; then
if [[ "$component" =~ ^(melonds|melonDS|MelonDS|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "----------------------"
echo "Initializing MELONDS"
@ -372,7 +372,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(pcsx2|PCSX2|all)$ ]]; then
if [[ "$component" =~ ^(pcsx2|PCSX2|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "----------------------"
echo "Initializing PCSX2"
@ -418,7 +418,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(pico8|pico-8|all)$ ]]; then
if [[ "$component" =~ ^(pico8|pico-8|all)$ ]]; then
if [[ ("$action" == "reset") || ("$action" == "postmove") ]]; then
dir_prep "$bios_folder/pico-8" "$HOME/.lexaloffle/pico-8" # Store binary and config files together. The .lexaloffle directory is a hard-coded location for the PICO-8 config file, cannot be changed
dir_prep "$roms_folder/pico8" "$bios_folder/pico-8/carts" # Symlink default game location to RD roms for cleanliness (this location is overridden anyway by the --root_path launch argument anyway)
@ -428,7 +428,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(ppsspp|PPSSPP|all)$ ]]; then
if [[ "$component" =~ ^(ppsspp|PPSSPP|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "------------------------"
echo "Initializing PPSSPPSDL"
@ -458,7 +458,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(primehack|Primehack|all)$ ]]; then
if [[ "$component" =~ ^(primehack|Primehack|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "----------------------"
echo "Initializing Primehack"
@ -502,7 +502,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(rpcs3|RPCS3|all)$ ]]; then
if [[ "$component" =~ ^(rpcs3|RPCS3|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "------------------------"
echo "Initializing RPCS3"
@ -540,7 +540,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(ryujunx|Ryujinx|all)$ ]]; then
if [[ "$component" =~ ^(ryujunx|Ryujinx|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "------------------------"
echo "Initializing RYUJINX"
@ -567,7 +567,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(xemu|XEMU|all)$ ]]; then
if [[ "$component" =~ ^(xemu|XEMU|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "------------------------"
echo "Initializing XEMU"
@ -583,12 +583,12 @@ prepare_emulator() {
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "eeprom_path" "'$saves_folder/xbox/xemu/xbox-eeprom.bin'" "xemu" "sys.files"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "hdd_path" "'$bios_folder/xbox_hdd.qcow2'" "xemu" "sys.files"
dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/config/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where emulator will look
dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/config/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where component will look
dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/data/xemu/xemu"
else # Single-user actions
rm -rf /var/config/xemu
rm -rf /var/data/xemu
dir_prep "/var/config/xemu" "/var/data/xemu/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where emulator will look
dir_prep "/var/config/xemu" "/var/data/xemu/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where component will look
cp -fv $emuconfigs/xemu/xemu.toml "$xemuconf"
set_setting_value "$xemuconf" "screenshot_dir" "'$screenshots_folder'" "xemu" "General"
set_setting_value "$xemuconf" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files"
@ -612,7 +612,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(yuzu|Yuzu|all)$ ]]; then
if [[ "$component" =~ ^(yuzu|Yuzu|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "----------------------"
echo "Initializing YUZU"
@ -670,7 +670,7 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(vita3k|Vita3K|all)$ ]]; then
if [[ "$component" =~ ^(vita3k|Vita3K|all)$ ]]; then
if [[ "$action" == "reset" ]]; then # Run reset-only commands
echo "----------------------"
echo "Initializing Vita3K"
@ -678,13 +678,13 @@ prepare_emulator() {
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
echo "Figure out what Vita3k needs for multi-user"
else # Single-user actions
# NOTE: the emulator is writing in "." so it must be placed in the rw filesystem. A symlink of the binary is already placed in /app/bin/Vita3K
# NOTE: the component is writing in "." so it must be placed in the rw filesystem. A symlink of the binary is already placed in /app/bin/Vita3K
rm -rf "/var/data/Vita3K"
mkdir -p "/var/data/Vita3K"
unzip "/app/retrodeck/vita3k.zip" -d "/var/data/Vita3K"
chmod +x "/var/data/Vita3K/Vita3K"
rm -f "/var/data/Vita3K/update-vita3k.sh"
cp -fvr "$emuconfigs/vita3k/config.yml" "/var/data/Vita3K" # Emulator config
cp -fvr "$emuconfigs/vita3k/config.yml" "/var/data/Vita3K" # component config
cp -fvr "$emuconfigs/vita3k/ux0" "$bios_folder/Vita3K/Vita3K" # User config
set_setting_value "$vita3kconf" "pref-path" "$rdhome/bios/Vita3K/Vita3K/" "vita3k"
fi
@ -704,9 +704,9 @@ prepare_emulator() {
fi
fi
if [[ "$emulator" =~ ^(mame|MAME|all)$ ]]; then
if [[ "$component" =~ ^(mame|MAME|all)$ ]]; then
# TODO: do a proper script
# This is just a placeholder script to test the emulator's flow
# This is just a placeholder script to test the component's flow
echo "----------------------"
echo "Initializing MAME"
echo "----------------------"
@ -721,9 +721,9 @@ prepare_emulator() {
fi
if [[ "$emulator" =~ ^(gzdoom|GZDOOM|all)$ ]]; then
if [[ "$component" =~ ^(gzdoom|GZDOOM|all)$ ]]; then
# TODO: do a proper script
# This is just a placeholder script to test the emulator's flow
# This is just a placeholder script to test the component's flow
echo "----------------------"
echo "Initializing GZDOOM"
echo "----------------------"
@ -737,7 +737,7 @@ prepare_emulator() {
sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
fi
if [[ "$emulator" =~ ^(boilr|BOILR|all)$ ]]; then
if [[ "$component" =~ ^(boilr|BOILR|all)$ ]]; then
echo "----------------------"
echo "Initializing BOILR"
echo "----------------------"
@ -747,8 +747,8 @@ prepare_emulator() {
fi
if [[ "$emulator" =~ ^(gyrodsu|GyroDSU|all)$ ]]; then
echo "----------------------"
if [[ "$component" =~ ^(gyrodsu|GyroDSU|all)$ ]]; then
echo "----------------------" # TODO logger
echo "Initializing GYRODSU"
echo "----------------------"
rm -rf /var/data/sdgyrodsu
@ -763,8 +763,8 @@ prepare_emulator() {
chmod +x "/var/data/sdgyrodsu/*"
fi
# Update presets for all emulators after any reset or move
if [[ ! "$emulator" == "retrodeck" ]]; then
# Update presets for all components after any reset or move
if [[ ! "$component" == "retrodeck" ]]; then
build_retrodeck_current_presets
fi
}

View file

@ -68,6 +68,10 @@
<release version="0.8.0b" date="2023-12-14">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.8.0b</url>
<description>
<p>CRITICAL:</p>
<ul>
<li>DEEP TEST: prepare_emulator function is now called prepare_component, eidted even in the cli and split it into the Configurator, so we need to test if the reset emulator works as supposed, if the cli and the Configurator is consistent.</li>
</ul>
<p>Changes:</p>
<ul>
<li>Added new system: SOLARUS</li>
@ -85,6 +89,7 @@
<li>RPCS3 is now running via shortcut (.desktop file) by default - WARN THE USERS TO MIGRATE</li>
<li>Added controller config for PS4 and PS5</li>
<li>Controller config overhaul</li>
<li>Removed talk names in the manifest as they're not needed anymore as enabled by default</li>
</ul>
<p>Fixes:</p>
<ul>
@ -107,6 +112,24 @@
</ul>
</description>
</release>
<release version="0.7.6b" date="2024-02-08">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.7.6b</url>
<description>
<p>Changes:</p>
<ul>
<li>Added new splash screens for Lunar New Year, St. Valentines and St. Patricks, be sure to check them out!</li>
<li>Updated PPSSPP</li>
<li>PPSSPP: implemented combo hotkeys, more details in the wiki</li>
<li>Reworked building pipelines andautomations</li>
<li>Removed talk names in the manifest as they're not needed anymore as enabled by default</li>
<li>Fixed a sync issue with the RetroDECK controller profiles</li>
</ul>
<p>Known issues:</p>
<ul>
<li>Please check the know issues in the Wiki under General Infomration.</li>
</ul>
</description>
</release>
<release version="0.7.5b" date="2023-14-12">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.7.5b</url>
<description>

View file

@ -19,14 +19,15 @@ finish-args:
- --filesystem=home
- --filesystem=/run/media
- --filesystem=/media
- --filesystem=/mnt
- --filesystem=home/.var/app/com.valvesoftware.Steam
- --allow=multiarch
- --talk-name=org.freedesktop.ScreenSaver
- --talk-name=org.freedesktop.PowerManagement.Inhibit
- --talk-name=org.freedesktop.login1.Manager
- --talk-name=org.freedesktop.portal.Flatpak.UpdateMonitor
- --filesystem=xdg-run/app/com.discordapp.Discord:create
- --filesystem=xdg-config/gtk-3.0:ro
- --env=QT_QPA_PLATFORM=wayland-egl;wayland;xcb
# Dolphin
- --allow=bluetooth
# PPSSPP
@ -408,7 +409,7 @@ modules:
# When updating this module remember to check those:
# https://gitlab.com/es-de/emulationstation-de/-/blob/[VERSION]/resources/systems/unix/es_find_rules.xml
# But we don't include them 1:1 as RetroDECK got some specific configs in some cases
- name: emulationstation-de
- name: ES-DE
buildsystem: cmake-ninja
config-opts:
- -DRETRODECK=on

@ -1 +1 @@
Subproject commit a96821769848a711db1ed0b71883f91383e2b4ab
Subproject commit 51d4821a45ac5fe13b2baa69aaaea864ead407ce

@ -1 +1 @@
Subproject commit f9e0cd83f366025c15de7de46621963cab793ea9
Subproject commit ebcd7d1c9bbb2d4857555238727a81e89f6600f1

@ -1 +1 @@
Subproject commit 55a8e460c6343229597a13e973ba4855c27a1c4c
Subproject commit 6ba63f383ad54e7ebe2b0cda64c15602cf9a9153

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 75 KiB

View file

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 23 KiB

View file

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -13,15 +13,14 @@ for i in "$@"; do
flatpak run [FLATPAK-RUN-OPTION] net.retrodeck-retrodeck [ARGUMENTS]
Arguments:
-h, --help Print this help
-v, --version Print RetroDECK version
--info-msg Print paths and config informations
--configurator Starts the RetroDECK Configurator
--compress-one <file> Compresses target file to a compatible format
--compress-all <format> Compresses all supported games into compatible format. Available formats are \"chd\", \"zip\", \"rvz\" and \"all\".
--reset-emulator <emulator> Reset one or more emulator configs to the default values
--reset-emulationstation Reset EmulationStation DE to default settings
--reset-retrodeck Starts the initial RetroDECK installer (backup your data first!)
-h, --help Print this help
-v, --version Print RetroDECK version
--info-msg Print paths and config informations
--configurator Starts the RetroDECK Configurator
--compress-one <file> Compresses target file to a compatible format
--compress-all <format> Compresses all supported games into compatible format. Available formats are \"chd\", \"zip\", \"rvz\" and \"all\".
--reset-component <component> Reset one or more component or emulator configs to the default values
--reset-retrodeck Starts the initial RetroDECK installer (backup your data first!)
For flatpak run specific options please run: flatpak run -h
@ -55,14 +54,14 @@ https://retrodeck.net
shift
fi
;;
--reset-emulator*)
echo "You are about to reset one or more RetroDECK emulators."
echo "Available options are: retroarch cemu citra dolphin duckstation melonds pcsx2 ppsspp primehack rpcs3 xemu yuzu all-emulators"
read -p "Please enter the emulator you would like to reset: " emulator
if [[ "$emulator" =~ ^(retroarch|cemu|citra|dolphin|duckstation|melonds|pcsx2|ppsspp|primehack|rpcs3|xemu|yuzu|all-emulators)$ ]]; then
read -p "You are about to reset $emulator to default settings. Enter 'y' to continue, 'n' to stop: " response
--reset-component*)
echo "You are about to reset one or more RetroDECK components or emulators."
echo "Available options are: es-de, retroarch, cemu, citra, dolphin, duckstation, melonds, pcsx3, pico8, ppsspp, primehack, rpcs3, xemu, yuzu, vita3k, mame, gzdoom, boilr, all"
read -p "Please enter the component you would like to reset: " component
if [[ "$emulator" =~ ^(retroarch|cemu|citra|dolphin|duckstation|mame|melonds|pcsx2|ppsspp|primehack|rpcs3|xemu|yuzu|all-emulators)$ ]]; then
read -p "You are about to reset $component to default settings. Enter 'y' to continue, 'n' to stop: " response
if [[ $response == [yY] ]]; then
prepare_emulator "reset" "$emulator" "cli"
prepare_component "reset" "$component" "cli"
read -p "The process has been completed, press Enter key to start RetroDECK."
shift # Continue launch after previous command is finished
else
@ -70,19 +69,7 @@ https://retrodeck.net
exit
fi
else
echo "$emulator is not a valid selection, exiting..."
exit
fi
;;
--reset-emulationstation*)
echo "You are about to reset EmulationStation DE to default settings. Your scraped media, downloaded themes and gamelists will remain untouched."
read -p "Enter 'y' to continue, 'n' to stop: " response
if [[ $response == [yY] ]]; then
prepare_emulator "reset" "emulationstation" "cli"
read -p "The process has been completed, press Enter key to start RetroDECK."
shift # Continue launch after previous command is finished
else
read -p "The process has been cancelled, press Enter key to exit."
echo "$component is not a valid selection, exiting..."
exit
fi
;;
@ -189,6 +176,12 @@ if [[ $update_check == "true" ]]; then
fi
fi
# THIS IS A ONE-OFF FORCED REFRESH OF RETRODECK CONTROLLER PROFILES IN A 0.7.6b VERSION REFRESH - REMOVE BEFORE NEXT VERSION RELEASE
if [[ -f "$HOME/.steam/steam/controller_base/templates/RetroDECK_controller_config.vdf" ]]; then # If RetroDECK controller profile has been previously installed
install_retrodeck_controller_profile
fi
# REMOVE BEFORE NEXT VERSION RELEASE
# Normal Startup
start_retrodeck

View file

@ -73,6 +73,7 @@ source /app/libexec/global.sh
# - Reset Dolphin
# - Reset Duckstation
# - Reset GZDoom
# - Reset MAME
# - Reset MelonDS
# - Reset PCSX2
# - Reset PPSSPP
@ -984,18 +985,18 @@ configurator_reset_dialog() {
choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Reset" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Reset Specific Emulator" "Reset only one specific emulator to default settings" \
"Reset All Emulators" "Reset all emulators to default settings" \
"Reset EmulationStation DE" "Reset the ES-DE frontend" \
"Reset Specific Emulator" "Reset only one specific emulator or engine to default settings" \
"Reset RetroDECK Component" "Reset a single component, components are parts of RetroDECK that are not emulators" \
"Reset All Emulators and Components" "Reset all emulators and components to default settings" \
"Reset RetroDECK" "Reset RetroDECK to default settings" )
case $choice in
"Reset Specific Emulator" )
emulator_to_reset=$(zenity --list \
component_to_reset=$(zenity --list \
--title "RetroDECK Configurator Utility - Reset Specific Standalone Emulator" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Which emulator do you want to reset to default?" \
--text="Which emulator or engine do you want to reset to default?" \
--column="Emulator" --column="Action" \
"RetroArch" "Reset the multi-emulator frontend RetroArch to default settings" \
"Cemu" "Reset the Wii U emulator Cemu to default settings" \
@ -1009,18 +1010,19 @@ configurator_reset_dialog() {
"PPSSPP" "Reset the PSP emulator PPSSPP to default settings" \
"Primehack" "Reset the Metroid Prime emulator Primehack to default settings" \
"RPCS3" "Reset the PS3 emulator RPCS3 to default settings" \
"Ryujinx" "Reset the Switch emulator Ryujinx to default settings" \
"Vita3k" "Reset the PS Vita emulator Vita3k to default settings" \
"XEMU" "Reset the XBOX emulator XEMU to default settings" \
"Yuzu" "Reset the Switch emulator Yuzu to default settings" )
case $emulator_to_reset in
# "Ryujinx" "Reset the Switch emulator Ryujinx to default settings" \
case $component_to_reset in
"RetroArch" | "Vita3k" | "XEMU" ) # Emulators that require network access
if [[ $(check_network_connectivity) == "true" ]]; then
if [[ $(configurator_reset_confirmation_dialog "$emulator_to_reset" "Are you sure you want to reset the $emulator_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
prepare_emulator "reset" "$emulator_to_reset" "configurator"
configurator_process_complete_dialog "resetting $emulator_to_reset"
if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset the $component_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
prepare_component "reset" "$component_to_reset" "configurator"
configurator_process_complete_dialog "resetting $component_to_reset"
else
configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled."
configurator_reset_dialog
@ -1031,10 +1033,39 @@ configurator_reset_dialog() {
fi
;;
"Cemu" | "Citra" | "Dolphin" | "Duckstation" | "MelonDS" | "PCSX2" | "PPSSPP" | "Primehack" | "RPCS3" | "Ryujinx" | "Yuzu" )
if [[ $(configurator_reset_confirmation_dialog "$emulator_to_reset" "Are you sure you want to reset the $emulator_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
prepare_emulator "reset" "$emulator_to_reset" "configurator"
configurator_process_complete_dialog "resetting $emulator_to_reset"
"Cemu" | "Citra" | "Dolphin" | "Duckstation" | "MelonDS" | "MAME" | "PCSX2" | "PPSSPP" | "Primehack" | "RPCS3" | "Ryujinx" | "Yuzu" )
if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset the $component_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
prepare_component "reset" "$component_to_reset" "configurator"
configurator_process_complete_dialog "resetting $component_to_reset"
else
configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled."
configurator_reset_dialog
fi
;;
"" ) # No selection made or Back button clicked
configurator_reset_dialog
;;
esac
;;
"Reset RetroDECK Component" )
component_to_reset=$(zenity --list \
--title "RetroDECK Configurator Utility - Reset Specific RetroDECK Component" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Which component do you want to reset to default?" \
--column="Component" --column="Action" \
"BoilR" "Reset BoilR that manages the sync and scraping toward Steam library" \
"ES-DE" "Reset the ES-DE frontend" \ )
# TODO: "GyroDSU" "Reset the gyroscope manager GyroDSU"
case $component_to_reset in
"BoilR" | "ES-DE" ) # TODO: GyroDSU
if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset $component_to_reset to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
prepare_component "reset" "$component_to_reset" "configurator"
configurator_process_complete_dialog "resetting $component_to_reset"
else
configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled."
configurator_reset_dialog
@ -1052,7 +1083,7 @@ configurator_reset_dialog() {
if [[ $(check_network_connectivity) == "true" ]]; then
if [[ $(configurator_reset_confirmation_dialog "all emulators" "Are you sure you want to reset all emulators to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
(
prepare_emulator "reset" "all"
prepare_component "reset" "all"
) |
zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
@ -1069,20 +1100,6 @@ configurator_reset_dialog() {
fi
;;
"Reset EmulationStation DE" )
if [[ $(configurator_reset_confirmation_dialog "EmulationStation DE" "Are you sure you want to reset EmulationStation DE to default settings?\n\nYour scraped media, downloaded themes and gamelists will not be touched.\n\nThis process cannot be undone.") == "true" ]]; then
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Utility - Reset EmulationStation DE" \
--text="You are resetting EmulationStation DE to its default settings.\n\nAfter the process is complete you will need to exit RetroDECK and run it again."
prepare_emulator "reset" "emulationstation" "configurator"
configurator_process_complete_dialog "resetting EmulationStation DE"
else
configurator_generic_dialog "RetroDeck Configurator - EmulationStation DE: Reset" "Reset process cancelled."
configurator_reset_dialog
fi
;;
"Reset RetroDECK" )
if [[ $(configurator_reset_confirmation_dialog "RetroDECK" "Are you sure you want to reset RetroDECK entirely?\n\nThis process cannot be undone.") == "true" ]]; then
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \