diff --git a/CHANGELOG.md b/CHANGELOG.md index 703e4e466..d21733ceb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ Catch-up release which implements some things that didn't make it into 2.0.0. Mo * Added six new theme properties for sizing and placement of the helpsystem when a menu is open * Added a scaleInwards property to the grid element to contain scaling within the element boundaries * Added a new gameOverridePath property to the image element to enable per-game static image overrides +* Added support for using the systemNameSuffix property together with scrollable text containers * Added support for the Sinclair ZX Spectrum Next (zxnext) game system * Added support for the Sinclair Spectrum ZX emulator ZEsarUX * Added support for the Sinclair Spectrum ZX Next emulator #CSpect on Linux and Windows @@ -46,7 +47,6 @@ Catch-up release which implements some things that didn't make it into 2.0.0. Mo * Clearing or deleting a game could hang the application if the media files could not be deleted due to insufficient permissions * Using the cropSize property could lead to a crash under very rare circumstances * Multi-row text with blank lines that was not displayed in a scrollable container was sometimes not wrapped correctly -* The default image element property could be used even if no imageType entries were defined * Fixed several potential container overflows in GuiTextEditKeyboardPopup that could lead to rare crashes when running on an ARM processor * Fixed a potential container overflow in ViewController that could lead to rare crashes when running on an ARM processor * (macOS) When opening the main menu an error message was logged about accessing a nonexistent ShowQuitMenu setting diff --git a/THEMES-DEV.md b/THEMES-DEV.md index 2cb1e34f5..c8d1a9511 100644 --- a/THEMES-DEV.md +++ b/THEMES-DEV.md @@ -26,7 +26,7 @@ If you unzip and temporarily replace your ROMs directory with one of these, ever It's recommended to use a proper code editor for theme development, such as [VSCode](https://code.visualstudio.com) with the [Red Hat XML extension](https://github.com/redhat-developer/vscode-xml). -A general comment regarding SVG graphic files is that fonts are not supported by the LunaSVG library so these need to be converted to paths in order for them to get rendered inside ES-DE. In Inkscape the relevant command is named _Object to Path_ but there should be equivalent functionality in other vector graphics editors. +A general comment regarding SVG graphic files is that fonts are not supported by the LunaSVG library so these need to be converted to paths in order for them to get rendered inside ES-DE. In Inkscape the relevant command is named _Object to Path_ but there should be equivalent functionality in other vector graphics editors. Embedded bitmaps are also not supported but this is generally a good thing as it's sometimes abused by simply embedding a raster image inside an SVG file, which is very misleading. Another general remark is that Linux almost always uses case-sensitive file systems (that's sometimes true for macOS as well). Therefore it's a good idea to always name files with lowercase characters only. Also make sure to regularly test on Linux if that's not your primary operating system. @@ -1816,7 +1816,7 @@ Properties: - Defines a directory where per-game overrides for the static image defined by the `path` property are kept. Supported file extensions are .jpg, .png, .gif (unanimated) and .svg and they are searched for in this precise order. How this works is that the basename of the game file will be used to check for an image file in the defined path in a very similar fashion as to how downloaded media is searched. For example if `gameOverridePath` has been set to `./imageOverrides` a match for the game file `~/ROMs/arcade/aburner.zip` would be `./imageOverrides/arcade/aburner.png` (or any of the other supported file extensions). In this case the image defined by the `path` property will be replaced for this specific game. Note that only static images can be overridden, not scraped media. - This property can only be used in the `gamelist` view and only if `imageType` is undefined. * `default` - type: PATH - - Path to a default image file. The default image will be displayed when the selected game does not have an image of the type defined by the `imageType` property (i.e. this `default` property does nothing unless a valid `imageType` property has been set). It's also applied to any custom collection that does not contain any games when browsing the grouped custom collections system. + - Path to a default image file. This image will be displayed when the selected game does not have an image of the type(s) defined by `imageType` or if the static image defined by `path` is not found. It's also applied to any custom collection that does not contain any games when browsing the grouped custom collections system. * `imageType` - type: STRING - This displays a game image of a certain media type. Multiple types can be defined, in which case the entries should be delimited by commas or by whitespace characters (tabs, spaces or line breaks). The media will be searched for in the order that the entries have been defined. If no image is found, then the space will be left blank unless the `default` property has been set. To use this property from the `system` view, you will first need to add a `gameselector` element. Defining duplicate values is considered an error and will result in the property getting ignored. - Valid values: @@ -2242,7 +2242,7 @@ Properties: #### text -Displays text. This can be literal strings or values based on game metadata or system variables, as described below. For the `gamelist` view it's also possible to place the text inside a scrollable container which is for example useful for longer texts like game descriptions. +Displays text. This can be literal strings or values based on game metadata or system variables, as described below. It's also possible to place the text inside a scrollable container which is for example useful for longer texts like game and system descriptions. Supported views: * `system` diff --git a/USERGUIDE-DEV.md b/USERGUIDE-DEV.md index fe15fef38..7ef59a9ee 100644 --- a/USERGUIDE-DEV.md +++ b/USERGUIDE-DEV.md @@ -1193,14 +1193,17 @@ To map the controller to the keyboard and to set a 33 MHz CPU speed, the file co Hypseus Singe is a fork of the Daphne arcade LaserDisc emulator that is still maintained. The setup is quite particular so make sure to read this section thoroughly to get it to work. -The first step is to install the emulator. On Windows it's straightforward, download the win64 release from [https://github.com/DirtBagXon/hypseus-singe](https://github.com/DirtBagXon/hypseus-singe) and unpack it and you're good to go. +The latest release can be downloaded from here:\ +https://github.com/DirtBagXon/hypseus-singe/releases -Similarly on Linux, download the [hypseus-singe_2.8.2a_ES-DE.tar.gz](https://gitlab.com/es-de/emulationstation-de/-/package_files/41533436/download) release that contains an AppImage of the emulator as well as some additional required files. It should be unpacked into the ~/Applications directory, such as: +The first step is to install the emulator. On Windows download the win64 release and unpack it and you're good to go. + +Similarly on Linux, download the ES-DE specific build that contains an AppImage of the emulator as well as some additional required files. It should be unpacked into the ~/Applications directory, such as: ``` /home/myusername/Applications/hypseus-singe/ ``` -If the Applications directory doesn't exist yet, then just go ahead and create it and then unpack the emulator inside it. Just be aware that the name has to start with a capital A. +If the Applications directory doesn't exist yet, then just go ahead and create it and unpack the emulator inside it. Just be aware that the name has to start with a capital A. Although there is an official Hypseus Singe release available for macOS ARM this appears somehow broken so you may need to compile it yourself. This is a bit involved so it's beyond the scope of this document to describe it. For this reason macOS is not listed as supported but the configuration is still bundled so if you're persistent and manage to get the emulator to work, it will hopefully work from within ES-DE as well. @@ -1208,38 +1211,6 @@ After the emulator has been installed, copy the required BIOS ROMs into `Hypseus Controller configuration using the `hypinput.ini` file is described in the official Hypseus Singe documentation, but the following example is usable with Xbox 360-compatible controllers: -``` -[KEYBOARD] -KEY_UP = SDLK_UP SDLK_r 5 -002 -KEY_DOWN = SDLK_DOWN SDLK_f 7 +002 -KEY_LEFT = SDLK_LEFT SDLK_d 8 -001 -KEY_RIGHT = SDLK_RIGHT SDLK_g 6 +001 -KEY_COIN1 = SDLK_5 0 1 -KEY_COIN2 = SDLK_6 0 0 -KEY_START1 = SDLK_1 0 4 -KEY_START2 = SDLK_2 0 0 -KEY_BUTTON1 = SDLK_LCTRL SDLK_a 14 -KEY_BUTTON2 = SDLK_LALT SDLK_s 15 -KEY_BUTTON3 = SDLK_SPACE SDLK_d 16 -KEY_SKILL1 = SDLK_LSHIFT SDLK_w 0 -KEY_SKILL2 = SDLK_z SDLK_i 0 -KEY_SKILL3 = SDLK_x SDLK_k 0 -KEY_SERVICE = SDLK_9 0 0 -KEY_TEST = SDLK_F2 0 0 -KEY_RESET = SDLK_0 0 0 -KEY_SCREENSHOT = SDLK_F12 0 0 -KEY_QUIT = SDLK_ESCAPE SDLK_q 17 -KEY_PAUSE = SDLK_p 0 0 -KEY_CONSOLE = SDLK_BACKSLASH 0 0 -KEY_TILT = SDLK_t 0 0 -END -``` - -With this configuration, pressing the _A_ and _Y_ buttons at the same time exits the emulator. - -Here's an alternative configuration as described in the following YouTube video: \ -https://www.youtube.com/watch?v=mO2UiI6byJo - ``` [KEYBOARD] KEY_UP = SDLK_UP SDLK_r 0 -002 @@ -1267,8 +1238,13 @@ KEY_TILT = SDLK_t 0 0 END ``` +With this configuration, pressing the _Back_ and _Start_ buttons (or equivalent on non-Xbox 360 controllers) at the same time exits the emulator. + There are two types of games supported by Hypseus and these are _Daphne_ and _Singe_. It's beyond the scope of this document to describe these game formats in detail but there are many resources available online for this. The setup differs a bit between these two types however, and you need to use an alternative emulator entry in ES-DE to launch Singe games. +In addition to the above instructions there's an unofficial YouTube video available on how to setup Hypseus Singe on the Steam Deck: \ +https://www.youtube.com/watch?v=mO2UiI6byJo + **Daphne games** For Daphne games the structure will look something like the following, which is for the game _Dragon's Lair_: