From 194865f53343bb50b188fcf9f09e0e33359fac88 Mon Sep 17 00:00:00 2001 From: Leon Styhre Date: Wed, 7 Oct 2020 19:53:41 +0200 Subject: [PATCH] Added support for the Lutris gaming platform (Unix only). --- USERGUIDE.md | 70 ++++- resources/templates/es_systems.cfg_unix | 9 + themes/rbsimple-DE/MISSING.md | 1 + themes/rbsimple-DE/lutris/colors.xml | 18 ++ themes/rbsimple-DE/lutris/images/console.svg | 3 + .../rbsimple-DE/lutris/images/consolegame.svg | 3 + .../rbsimple-DE/lutris/images/controller.svg | 3 + themes/rbsimple-DE/lutris/images/logo.svg | 248 ++++++++++++++++++ themes/rbsimple-DE/lutris/systeminfo.xml | 9 + themes/rbsimple-DE/lutris/theme.xml | 40 +++ 10 files changed, 393 insertions(+), 11 deletions(-) create mode 100644 themes/rbsimple-DE/lutris/colors.xml create mode 100644 themes/rbsimple-DE/lutris/images/console.svg create mode 100644 themes/rbsimple-DE/lutris/images/consolegame.svg create mode 100644 themes/rbsimple-DE/lutris/images/controller.svg create mode 100644 themes/rbsimple-DE/lutris/images/logo.svg create mode 100644 themes/rbsimple-DE/lutris/systeminfo.xml create mode 100644 themes/rbsimple-DE/lutris/theme.xml diff --git a/USERGUIDE.md b/USERGUIDE.md index 429b7cb84..2ce3da96b 100644 --- a/USERGUIDE.md +++ b/USERGUIDE.md @@ -202,22 +202,24 @@ The platform name for the Commodore 64 is **c64**, so the following structure wo ~/ROMs/c64/Multidisk ~/ROMs/c64/Multidisk/Last Ninja 2/LNINJA2A.D64 ~/ROMs/c64/Multidisk/Last Ninja 2/LNINJA2B.D64 -~/ROMs/c64/Multidisk/Last Ninja 2/Last Ninja 2.m3u +~/ROMs/c64/Multidisk/Last Ninja 2/Last Ninja 2 (playlist).m3u ~/ROMs/c64/Multidisk/Pirates/PIRAT-E0.d64 ~/ROMs/c64/Multidisk/Pirates/PIRAT-E1.d64 ~/ROMs/c64/Multidisk/Pirates/PIRAT-E2.d64 -~/ROMs/c64/Multidisk/Pirates/Pirates!.m3u +~/ROMs/c64/Multidisk/Pirates/Pirates! (playlist).m3u ``` It's highly recommended to create **.m3u** playlist files for multi-disk images as this simplifies the disk swapping in the emulator. It's then this .m3u file that should be selected for launching the game. -The .m3u file simply contains a list of the game files, for example in the case of Last Ninja 2.m3u: +The .m3u file simply contains a list of the game files, for example in the case of Last Ninja 2 (playlist).m3u: ``` LNINJA2A.D64 LNINJA2B.D64 ``` +It's recommended to not have the exact same filename for the .m3u file as for the directory as that will lead to a quite strange behavior where any game video that was playing when displaying the directory will continue to play when entering the directory (assuming the .m3u playlist is the first file that is selected). For some people this may be the desired behavior though, so the possibility is retained and it's not considered a bug. Putting the text within brackets will make the scraper skip this data so that automatic scraping still works correctly. + It's of course also possible to skip this type of directory structure and put all the games in the root folder, but then there will be multiple entries for the same game which is not so tidy. Another approach would be to put all the files in the root folder and then hide the game files, showing only the .m3u playlist. But it's probably quite confusing to start a game that looks like a single-disk game and then be prompted for disk swaps by the emulator (even if the .m3u playlists automates disk swapping, it's still somehow confusing and I wouldn't recommend it). When setting up games in this fashion, it's recommended to scrape the directory in addition to the .m3u file as it looks nicer to see images and metadata for the games also when browsing the folders. ES fully supports scraping folders, although some metadata is not included for folders for logical reasons. If you only scrape the folders and not the actual game files, it looks ok when browsing, but when a game is part of a collection, the metadata and images will be missing there. This includes the **Last played** and **All games** collections for instance. Also note that while it's possible to mark a folder as a favorite, it will never be part of a collection, such as **Favorites**. @@ -267,12 +269,13 @@ Ports are not really executed using emulators, but is instead software running n It's of course possible to add these as single files to the root folder, but normally it's recommended to setup a separate folder per game as there may be more than a single file available per game. You very often want to have easy access to the game setup utility for instance. -Here's an example for running Chocolate-doom and Quakespasm on Unix: +Here's an example for setting up Chocolate-Doom, GZDoom and DarkPlaces on Unix: ``` -~/ROMs/ports/Chocolate-doom/chocolate-doom.sh -~/ROMs/ports/Chocolate-doom/chocolate-doom-setup.sh -~/ROMs/ports/Quakespasm/quakespasm.sh +~/ROMs/ports/Chocolate-Doom/chocolate-doom.sh +~/ROMs/ports/Chocolate-Doom/chocolate-doom-setup.sh +~/ROMs/ports/GZDoom/gzdoom.sh +~/ROMs/ports/DarkPlaces/darkplaces.sh ``` chocolate-doom.sh: @@ -289,15 +292,59 @@ chocolate-doom-setup.sh: chocolate-doom-setup ``` -quakespasm.sh: +gzdoom.sh: ``` #!/bin/bash -cd ~/games/quake # Required to find the .pak files. -quakespasm +GZ_dir=/home/myusername/Games/Ports/GZDoom + +gzdoom -iwad /home/myusername/Games/Ports/GameData/Doom/doom.wad -config $GZ_dir/gzdoom.ini -savedir $GZ_dir/Savegames \ +-file $GZ_dir/Mods/DoomMetalVol4_44100.wad \ +-file $GZ_dir/Mods/brutalv21.pk3 \ +-file $GZ_dir/Mods/DHTP-2019_11_17.pk3 ``` -Don't forget to make the scripts executable (e.g. 'chmod 755 ./chocolate-doom.sh'). +darkplaces.sh: + +``` +#!/bin/bash +darkplaces -basedir ~/Games/Ports/GameData/Quake +``` + +You don't need to set execution permissions for these scripts, ES will run them anyway. + +#### Lutris + +Lutris runs only on Unix so it's not present in the es_systems.cfg templates for macOS or Windows. + +These games are executed via the Lutris binary (well it's actually a Python script), and you simply create a shell script per game with the following contents: + +`lutris lutris:rungame/` + +You can see the list of installed games by running the command `lutris --list-games`. + +Here's an example for adding Diablo and Fallout: + +``` +~/ROMs/lutris/Diablo.sh +~/ROMs/lutris/Fallout.sh +``` + +Diablo.sh: + +``` +lutris lutris:rungame/diablo +``` + +Fallout.sh: + +``` +lutris lutris:rungame/fallout +``` + +You don't need to set execution permissions for these scripts, ES will run them anyway. + +As an alternative, you can add the Lutris games to the Ports game system, if you prefer to not separate them. The instructions above are identical in this case except that the shell scripts should be located inside the **ports** directory rather than inside the **lutris** directory. #### Steam @@ -1113,6 +1160,7 @@ Sometimes the name of the console is (more or less) the same for multiple region | intellivision | Mattel Electronics Intellivision | | | chailove | ChaiLove game engine | | | kodi | Kodi home theatre software | | +| lutris | Lutris open gaming platform (Unix only) | Shell script in root folder | | lutro | Lutro game engine | | | macintosh | Apple Macintosh | | | mame | Multiple Arcade Machine Emulator | Single archive file following MAME name standard in root folder | diff --git a/resources/templates/es_systems.cfg_unix b/resources/templates/es_systems.cfg_unix index 81191344f..1af444f3b 100644 --- a/resources/templates/es_systems.cfg_unix +++ b/resources/templates/es_systems.cfg_unix @@ -442,6 +442,15 @@ pc kodi + + lutris + Lutris open gaming platform + %ROMPATH%/lutris + .sh .csh + bash %ROM% + pc + lutris + lutro Lutro game engine diff --git a/themes/rbsimple-DE/MISSING.md b/themes/rbsimple-DE/MISSING.md index 83033fd03..9f2b4f611 100644 --- a/themes/rbsimple-DE/MISSING.md +++ b/themes/rbsimple-DE/MISSING.md @@ -35,6 +35,7 @@ Missing (or not updated) theme data * intellivision: Intellivision - system info, customized colors, consolegame.svg, console.svg, controller.svg, game.svg * kodi: Kodi home theatre software - system info, customized colors, consolegame.svg, console.svg, controller.svg, game.svg * love: Löve game engine - system info, customized colors, consolegame.svg, console.svg, controller.svg, game.svg +* lutris: Lutris open gaming platform - system info, customized colors, consolegame.svg, console.svg, controller.svg, game.svg * macintosh: Apple Macintosh - system info, customized colors, consolegame.svg, console.svg, controller.svg, game.svg * mess: MESS (Multi Emulator Super System) - system info, customized colors, consolegame.svg, console.svg, controller.svg, game.svg * naomi: Sega NAOMI - system info, customized colors, logo.svg, consolegame.svg, console.svg, controller.svg, game.svg diff --git a/themes/rbsimple-DE/lutris/colors.xml b/themes/rbsimple-DE/lutris/colors.xml new file mode 100644 index 000000000..973ffdf14 --- /dev/null +++ b/themes/rbsimple-DE/lutris/colors.xml @@ -0,0 +1,18 @@ + + 6 + + + + F6DD08 + + + 800000 + + + FF0000 + + + 4C504E + + + diff --git a/themes/rbsimple-DE/lutris/images/console.svg b/themes/rbsimple-DE/lutris/images/console.svg new file mode 100644 index 000000000..345a518f0 --- /dev/null +++ b/themes/rbsimple-DE/lutris/images/console.svg @@ -0,0 +1,3 @@ + + + diff --git a/themes/rbsimple-DE/lutris/images/consolegame.svg b/themes/rbsimple-DE/lutris/images/consolegame.svg new file mode 100644 index 000000000..345a518f0 --- /dev/null +++ b/themes/rbsimple-DE/lutris/images/consolegame.svg @@ -0,0 +1,3 @@ + + + diff --git a/themes/rbsimple-DE/lutris/images/controller.svg b/themes/rbsimple-DE/lutris/images/controller.svg new file mode 100644 index 000000000..345a518f0 --- /dev/null +++ b/themes/rbsimple-DE/lutris/images/controller.svg @@ -0,0 +1,3 @@ + + + diff --git a/themes/rbsimple-DE/lutris/images/logo.svg b/themes/rbsimple-DE/lutris/images/logo.svg new file mode 100644 index 000000000..10242805a --- /dev/null +++ b/themes/rbsimple-DE/lutris/images/logo.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/themes/rbsimple-DE/lutris/systeminfo.xml b/themes/rbsimple-DE/lutris/systeminfo.xml new file mode 100644 index 000000000..2bd5fed63 --- /dev/null +++ b/themes/rbsimple-DE/lutris/systeminfo.xml @@ -0,0 +1,9 @@ + + 6 + + + + Lutris open gaming platform + + + diff --git a/themes/rbsimple-DE/lutris/theme.xml b/themes/rbsimple-DE/lutris/theme.xml new file mode 100644 index 000000000..f097080c3 --- /dev/null +++ b/themes/rbsimple-DE/lutris/theme.xml @@ -0,0 +1,40 @@ + + 6 + ./../theme.xml + ./colors.xml + ./systeminfo.xml + + + + ./images/controller.svg + + + + + + 262626 + 262626 + + + + + + ./images/logo.svg + + + ./images/consolegame.svg + + + + + + ./images/console.svg + + + + + + ./images/logo.svg + + +