mirror of
https://github.com/RetroDECK/Wiki.git
synced 2025-04-10 19:15:16 +00:00
400 lines
10 KiB
Markdown
400 lines
10 KiB
Markdown
# Launching Desktop Games & Apps with RetroDECK
|
|
|
|
This experiment was initiated by the user **murkl** and later expanded upon by the RetroDECK Team. The goal was to explore the possibility of launching desktop games and apps within RetroDECK.
|
|
|
|
**Note:** RetroDECK was never intended to be used in this manner, so things like inputs may work as expected.
|
|
|
|

|
|
|
|
|
|
## Prerequisites
|
|
|
|
### Flatpak Spawn Permission
|
|
|
|
**Information:**
|
|
|
|
This experiment requires the `flatpak-spawn` permission, which breaks the sandbox environment that RetroDECK operates in. Therefore, we do not recommend attempting this unless you are confident in your understanding of the process and its implications.
|
|
|
|
You can enable it by running this command in the terminal.
|
|
|
|
```
|
|
flatpak override --user --talk-name=org.freedesktop.Flatpak net.retrodeck.retrodeck
|
|
```
|
|
|
|
### Add RetroDECK to Steam
|
|
|
|
You also need to add RetroDECK to Steam to utilize Steam Input.
|
|
|
|
## Folder structure
|
|
|
|
| Type | Folder | Comment |
|
|
| :---: | :---: | :---: |
|
|
| Windows Roms Folder | `retrodeck/roms/windows/` | |
|
|
|
|
|
|
|
|
## How-to Make .desktop files
|
|
|
|
Make an empty file with the `<gamename>.desktop`.
|
|
|
|
**Example:**
|
|
|
|
`Ultima I.desktop` and put it into the `retrodeck/roms/windows/` folder.
|
|
|
|
## How-to: Launch Lutris Games
|
|
|
|
### Step 1: Create an empty desktop file
|
|
|
|
First, create the `.desktop` file as mentioned above with the game name and put it in the `retrodeck/roms/windows/` folder.
|
|
|
|
### Step 2: Get Identifier and Internal ID
|
|
|
|
1. Open Lutris.
|
|
2. In Lutris, `Right Click` the game -> `Configure` and make a note of your `Internal ID` under `Identifier`.
|
|
3. Make a note of the `Identifier` as well.
|
|
|
|
|
|
**Example:** Ultima I
|
|
|
|
<img src="../lutris.png" width="800">
|
|
|
|
**Internal ID:** 2
|
|
|
|
**Identifier:** ultima-i
|
|
|
|
### Step 3: Populate the .desktop file
|
|
|
|
Open the `.desktop` file and populate it.
|
|
|
|
The files are different if you have the native version of Lutris installed or the Flatpak version.
|
|
|
|
### Step 3a: Lutris (Native)
|
|
|
|
This for Lutris that is installed natively.
|
|
|
|
Copy this:
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=NAMEHERE
|
|
Icon=lutris_IDENTIFIERHERE
|
|
Exec=env LUTRIS_SKIP_INIT=1 flatpak-spawn --host lutris lutris:rungameid/INTERNALIDHERE
|
|
Categories=Game
|
|
```
|
|
Change the values of:
|
|
|
|
- **Name=** NAMEHERE
|
|
- **Icon=** lutris_IDENTIFIERHERE
|
|
- **Exec=** rungameid/INTERNALIDHERE
|
|
|
|
**Example: Ultima I.desktop**
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=Ultima I
|
|
Icon=lutris_ultima-i
|
|
Exec=env LUTRIS_SKIP_INIT=1 flatpak-spawn --host lutris lutris:rungameid/2
|
|
Categories=Game
|
|
```
|
|
|
|
### Step 3b: Lutris (Flatpak)
|
|
|
|
This for Lutris that is installed via Flatpak.
|
|
|
|
Copy this:
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=NAMEHERE
|
|
Icon=lutris_IDENTIFIERHERE
|
|
Exec=env LUTRIS_SKIP_INIT=1 flatpak-spawn --host flatpak run net.lutris.Lutris lutris:rungameid/INTERNALIDHERE
|
|
Categories=Game
|
|
```
|
|
Change the values of:
|
|
|
|
- **Name=** NAMEHERE
|
|
- **Icon=** lutris_IDENTIFIERHERE
|
|
- **Exec=** rungameid/INTERNALIDHERE
|
|
|
|
**Example: Ultima I.desktop**
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=Ultima I
|
|
Icon=lutris_ultima-i
|
|
Exec=env LUTRIS_SKIP_INIT=1 flatpak-spawn --host flatpak run net.lutris.Lutris lutris:rungameid/2
|
|
Categories=Game
|
|
```
|
|
|
|
## How-to: Launch Steam Games
|
|
|
|
### Step 1: Create an empty desktop file
|
|
|
|
First, create the `.desktop` file as mentioned above with the game name and put it in the `retrodeck/roms/windows/` folder.
|
|
|
|
|
|
### Step 2: Get the Steam AppID
|
|
|
|
1. Open Steam.
|
|
2. In Steam, go to `Library` -> `Right Click` the game -> `Properties` -> `Updates`.
|
|
3. Make a note of the `AppID`.
|
|
|
|
|
|
**Example:** ASTLIBRA Revision
|
|
|
|
<img src="../steam.png" width="800">
|
|
|
|
**App ID:** 1718570
|
|
|
|
|
|
### Step 3: Populate the .desktop file
|
|
|
|
Open the `.desktop` file and populate it.
|
|
|
|
The files are different if you have the native version of Steam installed or the Flatpak version.
|
|
|
|
### Step 3a: Steam (Native)
|
|
|
|
This for Steam that is installed natively.
|
|
|
|
Copy this:
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=G NAMEHERE
|
|
Icon=steam_icon_APPIDHERE
|
|
Exec=flatpak-spawn --host steam -silent steam://rungameid/APPIDHERE
|
|
Categories=Game
|
|
```
|
|
|
|
Change the values of:
|
|
|
|
- **Name=** NAMEHERE
|
|
- **Icon=** steam_APPIDHERE
|
|
- **Exec=** rungameid/APPIDHERE
|
|
|
|
**Example: ASTLIBRA Revision.desktop**
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=ASTLIBRA Revision
|
|
Icon=steam_icon_1718570
|
|
Exec=flatpak-spawn --host steam -silent steam://rungameid/1718570
|
|
Categories=Game
|
|
```
|
|
|
|
### Step 3b: Steam (Flatpak)
|
|
|
|
This for Steam that is installed via Flatpak.
|
|
|
|
Copy this:
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=G NAMEHERE
|
|
Icon=steam_icon_APPIDHERE
|
|
Exec=flatpak-spawn --host flatpak run com.valvesoftware.Steam -silent steam://rungameid/APPIDHERE
|
|
Categories=Game
|
|
```
|
|
|
|
Change the values of:
|
|
|
|
- **Name=** NAMEHERE
|
|
- **Icon=** steam_APPIDHERE
|
|
- **Exec=** rungameid/APPIDHERE
|
|
|
|
**Example: ASTLIBRA Revision.desktop**
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=ASTLIBRA Revision
|
|
Icon=steam_icon_1718570
|
|
Exec=flatpak-spawn --host flatpak run com.valvesoftware.Steam -silent steam://rungameid/1718570
|
|
Categories=Game
|
|
```
|
|
|
|
## How-to: Launch Flatpak Games
|
|
|
|
You can either copy and edit the desktop files or make your own.
|
|
|
|
### Copy and Edit .desktop files (Recommended)
|
|
|
|
#### Step 1: Find the files
|
|
|
|
**Note:** All files here are symlinks, but the export folders contains them all in a conventient way.
|
|
|
|
Depending if you how you have installed the application they can either be under:
|
|
|
|
- **System Wide:** `/var/lib/flatpak/exports/share/applications/`
|
|
- **Local User:** `~/.local/share/flatpak/exports/share/applications/`
|
|
|
|
#### Step 2: Show Target
|
|
|
|
`Right Click` on the symlinked `.desktop` file in the folder and press `Show Target`.
|
|
|
|
This will take you to the real `.desktop` shortcut.
|
|
|
|
Example `eu.vcmi.VCMI.desktop`:
|
|
|
|
- **System Wide:** `/var/lib/flatpak/app/eu.vcmi.VCMI/current/active/export/share/applications/`
|
|
- **Local User:** `~/.local/share/flatpak/app/eu.vcmi.VCMI/current/active/export/share/applications/`
|
|
|
|
#### Step 3: Copy the .desktop file
|
|
|
|
Copy the `.desktop` file to `retrodeck/roms/windows/`
|
|
|
|
#### Step 4: Rename the file
|
|
|
|
Rename the file to something more fitting.
|
|
|
|
**Examples:**
|
|
|
|
`net.openra.OpenRA.desktop` -> `OpenRA.desktop` or `Red Alert.desktop`
|
|
|
|
`eu.vcmi.VCMI.desktop` -> `VCMI.desktop` or `Heroes of Might and Magic III.desktop`
|
|
|
|
#### Step 5: Edit the file
|
|
|
|
Open the `.desktop` file and edit the **Exec=** values so they are changed to `flatpak-spawn --host flatpak run`.
|
|
|
|
**Example VCMI.desktop:**
|
|
|
|
- **Before:** `Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=vcmilauncher eu.vcmi.VCMI`
|
|
- **After:** `Exec=flatpak-spawn --host flatpak run --branch=stable --arch=x86_64 --command=vcmilauncher eu.vcmi.VCMI`
|
|
|
|
### Make your own desktop files
|
|
|
|
#### Step 1: Create an empty desktop file
|
|
|
|
First, create the `.desktop` file as mentioned above with the game name and put it in the `retrodeck/roms/windows/` folder.
|
|
|
|
#### Step 2: Get the Run Command and Full Flatpak Name.
|
|
|
|
**Find them on Desktop**
|
|
|
|
Note this was done in KDE
|
|
|
|
- `Right Click` in on the Application in the `Application Launcher Menu` and press `Edit Application`.
|
|
- `Command-line arguments` should contain the `Full Flatpak Name` and `Run Command`.
|
|
|
|
**Find them on Flathub:**
|
|
|
|
- Go to [Flathub](https://flathub.org/).
|
|
- On flathub go to a the application you want to add, press the `Down Arrow` next to `Download Button` to get the `Run Command` and `Full Flatpak Name`.
|
|
|
|
**Example: OpenRA.desktop**
|
|
|
|
[OpenRA - Flathub](https://flathub.org/apps/net.openra.OpenRA)
|
|
|
|
<img src="../openra.png" width="800">
|
|
|
|
- **Run command:** flatpak run net.openra.OpenRA
|
|
- **Full Flatpak Name:** net.openra.OpenRA
|
|
|
|
### Step 3: Populate the .desktop file
|
|
|
|
Open the `.desktop` file and populate it.
|
|
|
|
Copy this:
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=NAMEHERE
|
|
Icon=FULLFLATPAKNAMEHERE
|
|
Exec=flatpak-spawn --host flatpak run RUNCOMMMANDHERE
|
|
Categories=Game
|
|
```
|
|
|
|
Change the values of:
|
|
|
|
- **Name=** NAMEHERE
|
|
- **Icon=** FULLFLATPAKNAMEHERE
|
|
- **Exec=** RUNCOMMMANDHERE
|
|
|
|
**Example: OpenRA.desktop**
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=OpenRA
|
|
Icon=net.openra.OpenRA
|
|
Exec=flatpak-spawn --host flatpak run net.openra.OpenRA
|
|
Categories=Game
|
|
```
|
|
|
|
## How-to: Launch Heroic Games
|
|
|
|
#### Step 1: Create and move .desktop file from Heroic
|
|
|
|
1. Open Heroic.
|
|
2. Install the game .
|
|
3. Go to the `Library` -> `Your Game` -> Press the `Three Dotted Menu`.
|
|
4. Press `Add Shortcut`.
|
|
5. A shortcut will now be created on the Desktop.
|
|
6. Move or copy that to `retrodeck/roms/windows/`.
|
|
|
|
<img src="../heroic-shortcut.png" width="800">
|
|
|
|
### Step 2: Edit the .desktop file
|
|
|
|
Open the `.desktop` file and edit it.
|
|
|
|
The files are different if you have the native version of Heroic installed or the Flatpak version.
|
|
|
|
### Step 2b: Heroic (Flatpak)
|
|
|
|
Edit the file original file.
|
|
|
|
- **Exec=** Add the `flatpak-spawn --host flatpak run com.heroicgameslauncher.hgl --no-gui --no-sandbox` instead of `xdg-open`.
|
|
|
|
**Example: Original - Flight of the Amazon Queen.desktop**
|
|
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Name=Flight of the Amazon Queen
|
|
Exec=xdg-open heroic://launch?appName=1207659723&runner=gog
|
|
Terminal=false
|
|
Type=Application
|
|
Icon=/home/deck/Games/Heroic/Flight of the Amazon Queen/goggame-1207659723.ico
|
|
Categories=Game;
|
|
```
|
|
|
|
**Example: Edited - Flight of the Amazon Queen.desktop**
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Name=Flight of the Amazon Queen
|
|
Exec=flatpak-spawn --host flatpak run com.heroicgameslauncher.hgl --no-gui --no-sandbox heroic://launch?appName=1207659723
|
|
Terminal=false
|
|
Type=Application
|
|
Icon=/home/deck/Games/Heroic/Flight of the Amazon Queen/goggame-1207659723.ico
|
|
Categories=Game;
|
|
```
|
|
## How-to: Launch Native Games
|
|
|
|
**W.I.P**
|
|
|
|
You can either copy and edit the desktop files or make your own.
|
|
|
|
### Copy and Edit .desktop files (Recommended)
|
|
|
|
#### Step 1: Find the files
|
|
|
|
The desktop files should be located under
|
|
|
|
`/usr/share/applications/`
|
|
|
|
## The Last Step: Launch the Games via RetroDECK & Scrape
|
|
|
|
After the `.desktop` files have been created and everything is working as expected, RetroDECK will recognize the `.desktop` file the next time you start it. The games will appear under the Windows tab in ES-DE. If you have named the games correctly, there is a good chance that the scraper will identify them.
|