mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-22 06:05:38 +00:00
Documentation update.
This commit is contained in:
parent
963834afec
commit
d7e46205c1
|
@ -14,7 +14,7 @@
|
||||||
* Added theme support for defining and applying different layouts for various display aspect ratios such as 16:9 and 4:3
|
* Added theme support for defining and applying different layouts for various display aspect ratios such as 16:9 and 4:3
|
||||||
* Made gamelist theming much more flexible by allowing any number of elements of any types to be defined
|
* Made gamelist theming much more flexible by allowing any number of elements of any types to be defined
|
||||||
* Deprecated multiple older theming concepts like features, extras and hardcoded metadata attributes
|
* Deprecated multiple older theming concepts like features, extras and hardcoded metadata attributes
|
||||||
* Added support for launching game files inside folders without having to enter the folder
|
* Added support for folder links, used for launching game files inside folders without having to enter them
|
||||||
* Modernized the OpenGL renderer by replacing the fixed function pipeline with shaders
|
* Modernized the OpenGL renderer by replacing the fixed function pipeline with shaders
|
||||||
* Unified the desktop OpenGL and OpenGL ES renderers and upgraded to OpenGL 3.3 (as default) and OpenGL ES 3.0 respectively
|
* Unified the desktop OpenGL and OpenGL ES renderers and upgraded to OpenGL 3.3 (as default) and OpenGL ES 3.0 respectively
|
||||||
* OpenGL: Added an OpenGLVersion setting for choosing between OpenGL 3.3, 4.2 and 4.6 (has to be manually set in es_settings.xml)
|
* OpenGL: Added an OpenGLVersion setting for choosing between OpenGL 3.3, 4.2 and 4.6 (has to be manually set in es_settings.xml)
|
||||||
|
|
|
@ -1676,7 +1676,8 @@ For folders, most of the fields are identical although some are removed. In the
|
||||||
* `nomultiscrape`
|
* `nomultiscrape`
|
||||||
* `hidemetadata`
|
* `hidemetadata`
|
||||||
* `controller`
|
* `controller`
|
||||||
* `lastplayed` - statistic, for folders this is inherited by the latest game file launched inside the folder.
|
* `folderlink` - string, points to a file inside the game's folder structure that will be launched instead of entering the folder
|
||||||
|
* `lastplayed` - statistic, datetime, for folders this is inherited by the latest game file launched inside the folder.
|
||||||
|
|
||||||
**Additional gamelist.xml information**
|
**Additional gamelist.xml information**
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,8 @@ Table of contents:
|
||||||
|
|
||||||
ES-DE allows the grouping of themes for multiple game systems into a **theme set**. A theme is a collection of **elements**, each with their own **properties** that define the way they look and behave. These elements include things like text lists, carousels, images and animations.
|
ES-DE allows the grouping of themes for multiple game systems into a **theme set**. A theme is a collection of **elements**, each with their own **properties** that define the way they look and behave. These elements include things like text lists, carousels, images and animations.
|
||||||
|
|
||||||
|
Internally ES-DE uses the concept of **components** to actually implement the necessary building blocks to parse and render the elements, and although this is normally beyond the scope of what a theme author needs to consider, it's still good to be aware of the term as it's sometimes used in the documentation.
|
||||||
|
|
||||||
Every game system has its own subdirectory within the theme set directory structure, and these are defined in the systems configuration file `es_systems.xml` either via the optional `<theme>` tag, or otherwise via the mandatory `<name>` tag. When ES-DE populates a system on startup it will look for a file named `theme.xml` in each such directory.
|
Every game system has its own subdirectory within the theme set directory structure, and these are defined in the systems configuration file `es_systems.xml` either via the optional `<theme>` tag, or otherwise via the mandatory `<name>` tag. When ES-DE populates a system on startup it will look for a file named `theme.xml` in each such directory.
|
||||||
|
|
||||||
By placing a theme.xml file directly in the root of the theme set directory, that file will be processed as a default if there is no system-specific theme.xml file available.
|
By placing a theme.xml file directly in the root of the theme set directory, that file will be processed as a default if there is no system-specific theme.xml file available.
|
||||||
|
@ -78,7 +80,7 @@ The following are the most important changes compared to the legacy theme struct
|
||||||
* The concept of _features_ is gone
|
* The concept of _features_ is gone
|
||||||
* The `<formatVersion>` tag is gone as tracking theme versions doesn't make much sense after all
|
* The `<formatVersion>` tag is gone as tracking theme versions doesn't make much sense after all
|
||||||
* The `video` element properties `showSnapshotNoVideo` and `showSnapshotDelay` have been removed
|
* The `video` element properties `showSnapshotNoVideo` and `showSnapshotDelay` have been removed
|
||||||
* The ambiguous `alignment` property has been replaced with the `horizontalAlignment` and `verticalAlignment` properties (the same is true for `logoAlignment` for the `carousel` component)
|
* The ambiguous `alignment` property has been replaced with the `horizontalAlignment` and `verticalAlignment` properties (the same is true for `logoAlignment` for the `carousel` element)
|
||||||
* The `forceUppercase` property has been replaced with the more versatile `letterCase` property
|
* The `forceUppercase` property has been replaced with the more versatile `letterCase` property
|
||||||
* The carousel text element hacks `systemInfo` and `logoText` have been removed and replaced with proper carousel properties
|
* The carousel text element hacks `systemInfo` and `logoText` have been removed and replaced with proper carousel properties
|
||||||
* The carousel property maxLogoCount is now in float format for more granular control of logo placement compared to integer format for legacy themes. However some legacy theme authors thought this property supported floats (as the theme documentation incorrectly stated this) and have therefore set it to fractional values such as 3.5. This was actually rounded up when loading the theme configuration, and this logic is retained for legacy themes for backward compatibility. But for current themes the float value is correctly interpreted which means a manual rounding of the value is required in order to retain an identical layout when porting theme sets to the new theme engine
|
* The carousel property maxLogoCount is now in float format for more granular control of logo placement compared to integer format for legacy themes. However some legacy theme authors thought this property supported floats (as the theme documentation incorrectly stated this) and have therefore set it to fractional values such as 3.5. This was actually rounded up when loading the theme configuration, and this logic is retained for legacy themes for backward compatibility. But for current themes the float value is correctly interpreted which means a manual rounding of the value is required in order to retain an identical layout when porting theme sets to the new theme engine
|
||||||
|
@ -235,7 +237,7 @@ Note however that warnings are not printed for all invalid properties as that wo
|
||||||
|
|
||||||
A core concept of ES-DE is the use of theme set _variants_ to provide different theme profiles. These are not fixed presets and a theme author can instead name and define whatever variants he wants for his theme (or possibly use no variants at all as they are optional).
|
A core concept of ES-DE is the use of theme set _variants_ to provide different theme profiles. These are not fixed presets and a theme author can instead name and define whatever variants he wants for his theme (or possibly use no variants at all as they are optional).
|
||||||
|
|
||||||
The variants could be purely cosmetic, such as providing light and dark mode versions of the theme set, or they could provide different functionality by for instance using different primary components such as a carousel or a text list.
|
The variants could be purely cosmetic, such as providing light and dark mode versions of the theme set, or they could provide different functionality by for instance using different primary elements such as a carousel or a text list.
|
||||||
|
|
||||||
Before a variant can be used it needs to be declared, which is done in the `capabilities.xml` file that must be stored in the root of the theme set directory tree. How to setup this file is described in detailed later in this document.
|
Before a variant can be used it needs to be declared, which is done in the `capabilities.xml` file that must be stored in the root of the theme set directory tree. How to setup this file is described in detailed later in this document.
|
||||||
|
|
||||||
|
@ -742,9 +744,9 @@ This section describes each element and their properties in detail and also cont
|
||||||
|
|
||||||
* NORMALIZED_PAIR - two decimals, in the range [0..1], delimited by a space. For example, `0.25 0.5`. Most commonly used for position (x and y coordinates) and size (width and height).
|
* NORMALIZED_PAIR - two decimals, in the range [0..1], delimited by a space. For example, `0.25 0.5`. Most commonly used for position (x and y coordinates) and size (width and height).
|
||||||
* NORMALIZED_RECT - four decimals, in the range [0..1], delimited by a space. For example, `0.25 0.5 0.10 0.30`. Most commonly used for padding to store top, left, bottom and right coordinates.
|
* NORMALIZED_RECT - four decimals, in the range [0..1], delimited by a space. For example, `0.25 0.5 0.10 0.30`. Most commonly used for padding to store top, left, bottom and right coordinates.
|
||||||
* PATH - a path. If the first character is a `~`, it will be expanded into the environment variable for the home path (`$HOME` for Unix and macOS or `%HOMEPATH%` for Windows) unless overridden using the --home command line option. If the first character is a `.`, it will be expanded to the theme file's directory, allowing you to specify resources relative to the theme file, like so: `./../core/fonts/myfont.ttf`.
|
* PATH - a path. If the first character is a `~`, it will be expanded into the environment variable for the home path (`$HOME` for Unix and macOS or `%HOMEPATH%` for Windows) unless overridden using the --home command line option. f the first character is a `.`, it will be expanded to the theme file's directory, allowing you to specify resources relative to the theme file, like so: `./../core/fonts/myfont.ttf`.
|
||||||
* BOOLEAN - `true`/`1` or `false`/`0`.
|
* BOOLEAN - `true`/`1` or `false`/`0`.
|
||||||
* COLOR - a hexidecimal RGB or RGBA color (6 or 8 digits). If 6 digits, will assume the alpha channel is `FF` (completely opaque).
|
* COLOR - a hexadecimal RGB or RGBA color (6 or 8 digits). If 6 digits, will assume the alpha channel is `FF` (completely opaque).
|
||||||
* UNSIGNED_INTEGER - an unsigned integer.
|
* UNSIGNED_INTEGER - an unsigned integer.
|
||||||
* FLOAT - a decimal.
|
* FLOAT - a decimal.
|
||||||
* STRING - a string of text.
|
* STRING - a string of text.
|
||||||
|
@ -1091,7 +1093,7 @@ Properties:
|
||||||
- Possible combinations:
|
- Possible combinations:
|
||||||
- `0 0` - automatically size so text fits on one line (expanding horizontally).
|
- `0 0` - automatically size so text fits on one line (expanding horizontally).
|
||||||
- `w 0` - automatically wrap text so it doesn't go beyond `w` (expanding vertically).
|
- `w 0` - automatically wrap text so it doesn't go beyond `w` (expanding vertically).
|
||||||
- `w h` - works like a "text box." If `h` is non-zero and `h` <= `fontSize` (implying it should be a single line of text), text that goes beyond `w` will be truncated with an elipses (...).
|
- `w h` - works like a "text box". If `h` is non-zero and `h` <= `fontSize` (implying it should be a single line of text), text that goes beyond `w` will be truncated with an elipses (...).
|
||||||
* `origin` - type: NORMALIZED_PAIR
|
* `origin` - type: NORMALIZED_PAIR
|
||||||
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the position and size attributes are themeable, origin is implied.
|
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the position and size attributes are themeable, origin is implied.
|
||||||
- Minimum value per axis is `0` and maximum value per axis is `1`
|
- Minimum value per axis is `0` and maximum value per axis is `1`
|
||||||
|
@ -1194,7 +1196,7 @@ Properties:
|
||||||
- Possible combinations:
|
- Possible combinations:
|
||||||
- `0 0` - automatically size so text fits on one line (expanding horizontally).
|
- `0 0` - automatically size so text fits on one line (expanding horizontally).
|
||||||
- `w 0` - automatically wrap text so it doesn't go beyond `w` (expanding vertically).
|
- `w 0` - automatically wrap text so it doesn't go beyond `w` (expanding vertically).
|
||||||
- `w h` - works like a "text box." If `h` is non-zero and `h` <= `fontSize` (implying it should be a single line of text), text that goes beyond `w` will be truncated with an elipses (...).
|
- `w h` - works like a "text box". If `h` is non-zero and `h` <= `fontSize` (implying it should be a single line of text), text that goes beyond `w` will be truncated with an elipses (...).
|
||||||
* `origin` - type: NORMALIZED_PAIR
|
* `origin` - type: NORMALIZED_PAIR
|
||||||
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the position and size attributes are themeable, origin is implied.
|
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the position and size attributes are themeable, origin is implied.
|
||||||
- Minimum value per axis is `0` and maximum value per axis is `1`
|
- Minimum value per axis is `0` and maximum value per axis is `1`
|
||||||
|
@ -1270,7 +1272,7 @@ Properties:
|
||||||
- Possible combinations:
|
- Possible combinations:
|
||||||
- `0 0` - automatically size so text fits on one line (expanding horizontally).
|
- `0 0` - automatically size so text fits on one line (expanding horizontally).
|
||||||
- `w 0` - automatically wrap text so it doesn't go beyond `w` (expanding vertically).
|
- `w 0` - automatically wrap text so it doesn't go beyond `w` (expanding vertically).
|
||||||
- `w h` - works like a "text box." If `h` is non-zero and `h` <= `fontSize` (implying it should be a single line of text), text that goes beyond `w` will be truncated with an elipses (...).
|
- `w h` - works like a "text box". If `h` is non-zero and `h` <= `fontSize` (implying it should be a single line of text), text that goes beyond `w` will be truncated with an elipses (...).
|
||||||
* `origin` - type: NORMALIZED_PAIR
|
* `origin` - type: NORMALIZED_PAIR
|
||||||
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the position and size attributes are themeable, origin is implied.
|
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the position and size attributes are themeable, origin is implied.
|
||||||
- Minimum value per axis is `0` and maximum value per axis is `1`
|
- Minimum value per axis is `0` and maximum value per axis is `1`
|
||||||
|
@ -1322,7 +1324,7 @@ Instances per view:
|
||||||
Properties:
|
Properties:
|
||||||
* `pos` - type: NORMALIZED_PAIR
|
* `pos` - type: NORMALIZED_PAIR
|
||||||
* `size` - type: NORMALIZED_PAIR
|
* `size` - type: NORMALIZED_PAIR
|
||||||
- Only one value is actually used. The other value should be zero. (e.g. specify width OR height, but not both. This is done to maintain the aspect ratio.)
|
- Only one value is actually used. The other value should be zero (e.g. specify width OR height, but not both. This is done to maintain the aspect ratio.)
|
||||||
* `origin` - type: NORMALIZED_PAIR
|
* `origin` - type: NORMALIZED_PAIR
|
||||||
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the position and size attributes are themeable, origin is implied.
|
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the position and size attributes are themeable, origin is implied.
|
||||||
- Minimum value per axis is `0` and maximum value per axis is `1`
|
- Minimum value per axis is `0` and maximum value per axis is `1`
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
**This document covers the creation of legacy themes only, which is a theme structure that is backward compatible with RetroPie EmulationStation. As ES-DE v2.0 and later has a new theme engine with much improved theming capabilities, this document is mostly intended for historical reference. For creating or porting themes to ES-DE the documentation in [THEMES.md](THEMES.md) should be used instead.**
|
**This document covers the creation of legacy themes only, which is a theme structure that is backward compatible with RetroPie EmulationStation. As ES-DE v2.0 and later has a new theme engine with much improved theming capabilities, this document is mostly intended for historical reference. For creating or porting themes to ES-DE the documentation in [THEMES.md](THEMES.md) should be used instead.**
|
||||||
|
|
||||||
In general ES-DE is backward compatible with RetroPie theme sets with the notable exception of the _Grid_ view style which is not supported. Themes with grid view styles included will still load correctly, but you can't actually use this view style. As well, any RetroPie theme using the `<resolution>` tag introduced in 2020 will not get loaded. This tag was a very bad idea as it changes sizing of components from relative values to absolute pixel values.
|
In general ES-DE is backward compatible with RetroPie theme sets with the notable exception of the _Grid_ view style which is not supported. Themes with grid view styles included will still load correctly, but you can't actually use this view style. As well, any RetroPie theme using the `<resolution>` tag introduced in 2020 will not get loaded. This tag was a very bad idea as it changes sizing of elements from relative values to absolute pixel values.
|
||||||
|
|
||||||
Table of contents:
|
Table of contents:
|
||||||
|
|
||||||
|
@ -559,7 +559,7 @@ Nesting of variables is supported, so the following could be done:
|
||||||
* NORMALIZED_RECT - four decimals, in the range [0..1], delimited by a space. For example, `0.25 0.5 0.10 0.30`. Most commonly used for padding to store top, left, bottom and right coordinates.
|
* NORMALIZED_RECT - four decimals, in the range [0..1], delimited by a space. For example, `0.25 0.5 0.10 0.30`. Most commonly used for padding to store top, left, bottom and right coordinates.
|
||||||
* PATH - a path. If the first character is a `~`, it will be expanded into the environment variable for the home path (`$HOME` for Linux or `%HOMEPATH%` for Windows) unless overridden using the --home command line option. If the first character is a `.`, it will be expanded to the theme file's directory, allowing you to specify resources relative to the theme file, like so: `./../general_art/myfont.ttf`.
|
* PATH - a path. If the first character is a `~`, it will be expanded into the environment variable for the home path (`$HOME` for Linux or `%HOMEPATH%` for Windows) unless overridden using the --home command line option. If the first character is a `.`, it will be expanded to the theme file's directory, allowing you to specify resources relative to the theme file, like so: `./../general_art/myfont.ttf`.
|
||||||
* BOOLEAN - `true`/`1` or `false`/`0`.
|
* BOOLEAN - `true`/`1` or `false`/`0`.
|
||||||
* COLOR - a hexidecimal RGB or RGBA color (6 or 8 digits). If 6 digits, will assume the alpha channel is `FF` (not transparent).
|
* COLOR - a hexadecimal RGB or RGBA color (6 or 8 digits). If 6 digits, will assume the alpha channel is `FF` (not transparent).
|
||||||
* FLOAT - a decimal.
|
* FLOAT - a decimal.
|
||||||
* STRING - a string of text.
|
* STRING - a string of text.
|
||||||
|
|
||||||
|
@ -596,9 +596,9 @@ Can be created as an extra.
|
||||||
* `color` - type: COLOR.
|
* `color` - type: COLOR.
|
||||||
- Multiply each pixel's color by this color. For example, an all-white image with `<color>FF0000</color>` would become completely red. You can also control the transparency of an image with `<color>FFFFFFAA</color>` - keeping all the pixels their normal color and only affecting the alpha channel.
|
- Multiply each pixel's color by this color. For example, an all-white image with `<color>FF0000</color>` would become completely red. You can also control the transparency of an image with `<color>FFFFFFAA</color>` - keeping all the pixels their normal color and only affecting the alpha channel.
|
||||||
* `visible` - type: BOOLEAN.
|
* `visible` - type: BOOLEAN.
|
||||||
- If true, component will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
- If true, element will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
||||||
* `zIndex` - type: FLOAT.
|
* `zIndex` - type: FLOAT.
|
||||||
- z-index value for component. Components will be rendered in order of z-index value from low to high.
|
- z-index value for element. Elements will be rendered in order of z-index value from low to high.
|
||||||
|
|
||||||
#### video
|
#### video
|
||||||
|
|
||||||
|
@ -622,9 +622,9 @@ Can be created as an extra.
|
||||||
* `showSnapshotDelay` - type: BOOLEAN
|
* `showSnapshotDelay` - type: BOOLEAN
|
||||||
- If true, playing of video will be delayed for `delayed` seconds, when game is selected.
|
- If true, playing of video will be delayed for `delayed` seconds, when game is selected.
|
||||||
* `visible` - type: BOOLEAN.
|
* `visible` - type: BOOLEAN.
|
||||||
- If true, component will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
- If true, element will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
||||||
* `zIndex` - type: FLOAT.
|
* `zIndex` - type: FLOAT.
|
||||||
- z-index value for component. Components will be rendered in order of z-index value from low to high.
|
- z-index value for element. Elements will be rendered in order of z-index value from low to high.
|
||||||
|
|
||||||
#### text
|
#### text
|
||||||
|
|
||||||
|
@ -635,9 +635,9 @@ Can be created as an extra.
|
||||||
- Possible combinations:
|
- Possible combinations:
|
||||||
- `0 0` - automatically size so text fits on one line (expanding horizontally).
|
- `0 0` - automatically size so text fits on one line (expanding horizontally).
|
||||||
- `w 0` - automatically wrap text so it doesn't go beyond `w` (expanding vertically).
|
- `w 0` - automatically wrap text so it doesn't go beyond `w` (expanding vertically).
|
||||||
- `w h` - works like a "text box." If `h` is non-zero and `h` <= `fontSize` (implying it should be a single line of text), text that goes beyond `w` will be truncated with an elipses (...).
|
- `w h` - works like a "text box". If `h` is non-zero and `h` <= `fontSize` (implying it should be a single line of text), text that goes beyond `w` will be truncated with an elipses (...).
|
||||||
* `origin` - type: NORMALIZED_PAIR.
|
* `origin` - type: NORMALIZED_PAIR.
|
||||||
- Where on the component `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the component exactly in the middle of the screen. If the "POSITION" and "SIZE" attributes are themeable, "ORIGIN" is implied.
|
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the "POSITION" and "SIZE" attributes are themeable, "ORIGIN" is implied.
|
||||||
* `rotation` - type: FLOAT.
|
* `rotation` - type: FLOAT.
|
||||||
- angle in degrees that the text should be rotated. Positive values will rotate clockwise, negative values will rotate counterclockwise.
|
- angle in degrees that the text should be rotated. Positive values will rotate clockwise, negative values will rotate counterclockwise.
|
||||||
* `rotationOrigin` - type: NORMALIZED_PAIR.
|
* `rotationOrigin` - type: NORMALIZED_PAIR.
|
||||||
|
@ -654,16 +654,16 @@ Can be created as an extra.
|
||||||
* `forceUppercase` - type: BOOLEAN. Draw text in uppercase.
|
* `forceUppercase` - type: BOOLEAN. Draw text in uppercase.
|
||||||
* `lineSpacing` - type: FLOAT. Controls the space between lines (as a multiple of font height). Default is 1.5.
|
* `lineSpacing` - type: FLOAT. Controls the space between lines (as a multiple of font height). Default is 1.5.
|
||||||
* `visible` - type: BOOLEAN.
|
* `visible` - type: BOOLEAN.
|
||||||
- If true, component will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
- If true, element will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
||||||
* `zIndex` - type: FLOAT.
|
* `zIndex` - type: FLOAT.
|
||||||
- z-index value for component. Components will be rendered in order of z-index value from low to high.
|
- z-index value for element. Elements will be rendered in order of z-index value from low to high.
|
||||||
|
|
||||||
#### textlist
|
#### textlist
|
||||||
|
|
||||||
* `pos` - type: NORMALIZED_PAIR.
|
* `pos` - type: NORMALIZED_PAIR.
|
||||||
* `size` - type: NORMALIZED_PAIR.
|
* `size` - type: NORMALIZED_PAIR.
|
||||||
* `origin` - type: NORMALIZED_PAIR.
|
* `origin` - type: NORMALIZED_PAIR.
|
||||||
- Where on the component `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the component exactly in the middle of the screen. If the "POSITION" and "SIZE" attributes are themeable, "ORIGIN" is implied.
|
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the "POSITION" and "SIZE" attributes are themeable, "ORIGIN" is implied.
|
||||||
* `selectorColor` - type: COLOR.
|
* `selectorColor` - type: COLOR.
|
||||||
- Color of the "selector bar."
|
- Color of the "selector bar."
|
||||||
* `selectorImagePath` - type: PATH.
|
* `selectorImagePath` - type: PATH.
|
||||||
|
@ -689,7 +689,7 @@ Can be created as an extra.
|
||||||
* `forceUppercase` - type: BOOLEAN. Draw text in uppercase.
|
* `forceUppercase` - type: BOOLEAN. Draw text in uppercase.
|
||||||
* `lineSpacing` - type: FLOAT. Controls the space between lines (as a multiple of font height). Default is 1.5.
|
* `lineSpacing` - type: FLOAT. Controls the space between lines (as a multiple of font height). Default is 1.5.
|
||||||
* `zIndex` - type: FLOAT.
|
* `zIndex` - type: FLOAT.
|
||||||
- z-index value for component. Components will be rendered in order of z-index value from low to high.
|
- z-index value for element. Elements will be rendered in order of z-index value from low to high.
|
||||||
|
|
||||||
#### ninepatch
|
#### ninepatch
|
||||||
|
|
||||||
|
@ -697,9 +697,9 @@ Can be created as an extra.
|
||||||
* `size` - type: NORMALIZED_PAIR.
|
* `size` - type: NORMALIZED_PAIR.
|
||||||
* `path` - type: PATH.
|
* `path` - type: PATH.
|
||||||
* `visible` - type: BOOLEAN.
|
* `visible` - type: BOOLEAN.
|
||||||
- If true, component will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
- If true, element will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
||||||
* `zIndex` - type: FLOAT.
|
* `zIndex` - type: FLOAT.
|
||||||
- z-index value for component. Components will be rendered in order of z-index value from low to high.
|
- z-index value for element. Elements will be rendered in order of z-index value from low to high.
|
||||||
|
|
||||||
ES-DE borrows the concept of "nine patches" from Android (or "9-Slices"). Currently the implementation is very simple and hard-coded to only use 48x48px images (16x16px for each "patch"). Check the `data/resources` directory for some examples (button.png, frame.png).
|
ES-DE borrows the concept of "nine patches" from Android (or "9-Slices"). Currently the implementation is very simple and hard-coded to only use 48x48px images (16x16px for each "patch"). Check the `data/resources` directory for some examples (button.png, frame.png).
|
||||||
|
|
||||||
|
@ -707,9 +707,9 @@ ES-DE borrows the concept of "nine patches" from Android (or "9-Slices"). Curren
|
||||||
|
|
||||||
* `pos` - type: NORMALIZED_PAIR.
|
* `pos` - type: NORMALIZED_PAIR.
|
||||||
* `size` - type: NORMALIZED_PAIR.
|
* `size` - type: NORMALIZED_PAIR.
|
||||||
- Only one value is actually used. The other value should be zero. (e.g. specify width OR height, but not both. This is done to maintain the aspect ratio.)
|
- Only one value is actually used. The other value should be zero (e.g. specify width OR height, but not both. This is done to maintain the aspect ratio.)
|
||||||
* `origin` - type: NORMALIZED_PAIR.
|
* `origin` - type: NORMALIZED_PAIR.
|
||||||
- Where on the component `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the component exactly in the middle of the screen. If the "POSITION" and "SIZE" attributes are themeable, "ORIGIN" is implied.
|
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the "POSITION" and "SIZE" attributes are themeable, "ORIGIN" is implied.
|
||||||
* `rotation` - type: FLOAT.
|
* `rotation` - type: FLOAT.
|
||||||
- angle in degrees that the rating should be rotated. Positive values will rotate clockwise, negative values will rotate counterclockwise.
|
- angle in degrees that the rating should be rotated. Positive values will rotate clockwise, negative values will rotate counterclockwise.
|
||||||
* `rotationOrigin` - type: NORMALIZED_PAIR.
|
* `rotationOrigin` - type: NORMALIZED_PAIR.
|
||||||
|
@ -721,9 +721,9 @@ ES-DE borrows the concept of "nine patches" from Android (or "9-Slices"). Curren
|
||||||
* `color` - type: COLOR.
|
* `color` - type: COLOR.
|
||||||
- Multiply each pixel's color by this color. For example, an all-white image with `<color>FF0000</color>` would become completely red. You can also control the transparency of an image with `<color>FFFFFFAA</color>` - keeping all the pixels their normal color and only affecting the alpha channel.
|
- Multiply each pixel's color by this color. For example, an all-white image with `<color>FF0000</color>` would become completely red. You can also control the transparency of an image with `<color>FFFFFFAA</color>` - keeping all the pixels their normal color and only affecting the alpha channel.
|
||||||
* `visible` - type: BOOLEAN.
|
* `visible` - type: BOOLEAN.
|
||||||
- If true, component will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
- If true, element will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
||||||
* `zIndex` - type: FLOAT.
|
* `zIndex` - type: FLOAT.
|
||||||
- z-index value for component. Components will be rendered in order of z-index value from low to high.
|
- z-index value for element. Elements will be rendered in order of z-index value from low to high.
|
||||||
|
|
||||||
#### datetime
|
#### datetime
|
||||||
* `pos` - type: NORMALIZED_PAIR.
|
* `pos` - type: NORMALIZED_PAIR.
|
||||||
|
@ -731,9 +731,9 @@ ES-DE borrows the concept of "nine patches" from Android (or "9-Slices"). Curren
|
||||||
- Possible combinations:
|
- Possible combinations:
|
||||||
- `0 0` - automatically size so text fits on one line (expanding horizontally).
|
- `0 0` - automatically size so text fits on one line (expanding horizontally).
|
||||||
- `w 0` - automatically wrap text so it doesn't go beyond `w` (expanding vertically).
|
- `w 0` - automatically wrap text so it doesn't go beyond `w` (expanding vertically).
|
||||||
- `w h` - works like a "text box." If `h` is non-zero and `h` <= `fontSize` (implying it should be a single line of text), text that goes beyond `w` will be truncated with an elipses (...).
|
- `w h` - works like a "text box". If `h` is non-zero and `h` <= `fontSize` (implying it should be a single line of text), text that goes beyond `w` will be truncated with an elipses (...).
|
||||||
* `origin` - type: NORMALIZED_PAIR.
|
* `origin` - type: NORMALIZED_PAIR.
|
||||||
- Where on the component `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the component exactly in the middle of the screen. If the "POSITION" and "SIZE" attributes are themeable, "ORIGIN" is implied.
|
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the "POSITION" and "SIZE" attributes are themeable, "ORIGIN" is implied.
|
||||||
* `rotation` - type: FLOAT.
|
* `rotation` - type: FLOAT.
|
||||||
- angle in degrees that the text should be rotated. Positive values will rotate clockwise, negative values will rotate counterclockwise.
|
- angle in degrees that the text should be rotated. Positive values will rotate clockwise, negative values will rotate counterclockwise.
|
||||||
* `rotationOrigin` - type: NORMALIZED_PAIR.
|
* `rotationOrigin` - type: NORMALIZED_PAIR.
|
||||||
|
@ -749,9 +749,9 @@ ES-DE borrows the concept of "nine patches" from Android (or "9-Slices"). Curren
|
||||||
* `forceUppercase` - type: BOOLEAN. Draw text in uppercase.
|
* `forceUppercase` - type: BOOLEAN. Draw text in uppercase.
|
||||||
* `lineSpacing` - type: FLOAT. Controls the space between lines (as a multiple of font height). Default is 1.5.
|
* `lineSpacing` - type: FLOAT. Controls the space between lines (as a multiple of font height). Default is 1.5.
|
||||||
* `visible` - type: BOOLEAN.
|
* `visible` - type: BOOLEAN.
|
||||||
- If true, component will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
- If true, element will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
||||||
* `zIndex` - type: FLOAT.
|
* `zIndex` - type: FLOAT.
|
||||||
- z-index value for component. Components will be rendered in order of z-index value from low to high.
|
- z-index value for element. Elements will be rendered in order of z-index value from low to high.
|
||||||
* `displayRelative` - type: BOOLEAN. Renders the datetime as a a relative string (ex: 'x days ago')
|
* `displayRelative` - type: BOOLEAN. Renders the datetime as a a relative string (ex: 'x days ago')
|
||||||
* `format` - type: STRING. Specifies format for rendering datetime.
|
* `format` - type: STRING. Specifies format for rendering datetime.
|
||||||
- %Y: The year, including the century (1900)
|
- %Y: The year, including the century (1900)
|
||||||
|
@ -765,8 +765,8 @@ ES-DE borrows the concept of "nine patches" from Android (or "9-Slices"). Curren
|
||||||
|
|
||||||
* `pos` - type: NORMALIZED_PAIR. Default is "0.012 0.9515"
|
* `pos` - type: NORMALIZED_PAIR. Default is "0.012 0.9515"
|
||||||
* `origin` - type: NORMALIZED_PAIR.
|
* `origin` - type: NORMALIZED_PAIR.
|
||||||
- Where on the component `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place
|
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place
|
||||||
the component exactly in the middle of the screen.
|
the element exactly in the middle of the screen.
|
||||||
* `textColor` - type: COLOR. Default is 777777FF.
|
* `textColor` - type: COLOR. Default is 777777FF.
|
||||||
* `textColorDimmed` - type: COLOR. Default is the same value as textColor. Must be placed under the 'system' view.
|
* `textColorDimmed` - type: COLOR. Default is the same value as textColor. Must be placed under the 'system' view.
|
||||||
* `iconColor` - type: COLOR. Default is 777777FF.
|
* `iconColor` - type: COLOR. Default is 777777FF.
|
||||||
|
@ -816,7 +816,7 @@ It's strongly recommended to use the same image dimensions for all badges as var
|
||||||
- Possible combinations:
|
- Possible combinations:
|
||||||
- `w h` - Dimensions of the badges container. The badges will be scaled to fit within these dimensions. Minimum value per axis is `0.03`, maximum value is `1.0`. Default is `0.15 0.20`.
|
- `w h` - Dimensions of the badges container. The badges will be scaled to fit within these dimensions. Minimum value per axis is `0.03`, maximum value is `1.0`. Default is `0.15 0.20`.
|
||||||
* `origin` - type: NORMALIZED_PAIR.
|
* `origin` - type: NORMALIZED_PAIR.
|
||||||
- Where on the component `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the component exactly in the middle of the screen. If the "POSITION" and "SIZE" attributes are themeable, "ORIGIN" is implied. Default is `0.5 0.5`.
|
- Where on the element `pos` refers to. For example, an origin of `0.5 0.5` and a `pos` of `0.5 0.5` would place the element exactly in the middle of the screen. If the "POSITION" and "SIZE" attributes are themeable, "ORIGIN" is implied. Default is `0.5 0.5`.
|
||||||
* `rotation` - type: FLOAT.
|
* `rotation` - type: FLOAT.
|
||||||
- angle in degrees that the image should be rotated. Positive values will rotate clockwise, negative values will rotate counterclockwise. Default is `0`.
|
- angle in degrees that the image should be rotated. Positive values will rotate clockwise, negative values will rotate counterclockwise. Default is `0`.
|
||||||
* `rotationOrigin` - type: NORMALIZED_PAIR.
|
* `rotationOrigin` - type: NORMALIZED_PAIR.
|
||||||
|
@ -850,9 +850,9 @@ It's strongly recommended to use the same image dimensions for all badges as var
|
||||||
- A controller icon override. Specify the controller type in the attribute `controller`. These are the available types:
|
- A controller icon override. Specify the controller type in the attribute `controller`. These are the available types:
|
||||||
- `gamepad_generic`, `gamepad_nintendo_nes`, `gamepad_nintendo_snes`, `gamepad_nintendo_64`, `gamepad_playstation`, `gamepad_sega_md_3_buttons`, `gamepad_sega_md_6_buttons`, `gamepad_xbox`, `joystick_generic`, `joystick_arcade_no_buttons`, `joystick_arcade_1_button`, `joystick_arcade_2_buttons`, `joystick_arcade_3_buttons`, `joystick_arcade_4_buttons`, `joystick_arcade_5_buttons`, `joystick_arcade_6_buttons`, `keyboard_generic`, `keyboard_and_mouse_generic`, `mouse_generic`, `mouse_amiga`, `lightgun_generic`, `lightgun_nintendo`, `steering_wheel_generic`, `flight_stick_generic`, `spinner_generic`, `trackball_generic`, `wii_remote_nintendo`, `wii_remote_and_nunchuk_nintendo`, `joycon_left_or_right_nintendo`, `joycon_pair_nintendo`, `unknown`.
|
- `gamepad_generic`, `gamepad_nintendo_nes`, `gamepad_nintendo_snes`, `gamepad_nintendo_64`, `gamepad_playstation`, `gamepad_sega_md_3_buttons`, `gamepad_sega_md_6_buttons`, `gamepad_xbox`, `joystick_generic`, `joystick_arcade_no_buttons`, `joystick_arcade_1_button`, `joystick_arcade_2_buttons`, `joystick_arcade_3_buttons`, `joystick_arcade_4_buttons`, `joystick_arcade_5_buttons`, `joystick_arcade_6_buttons`, `keyboard_generic`, `keyboard_and_mouse_generic`, `mouse_generic`, `mouse_amiga`, `lightgun_generic`, `lightgun_nintendo`, `steering_wheel_generic`, `flight_stick_generic`, `spinner_generic`, `trackball_generic`, `wii_remote_nintendo`, `wii_remote_and_nunchuk_nintendo`, `joycon_left_or_right_nintendo`, `joycon_pair_nintendo`, `unknown`.
|
||||||
* `visible` - type: BOOLEAN.
|
* `visible` - type: BOOLEAN.
|
||||||
- If true, component will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
- If true, element will be rendered, otherwise rendering will be skipped. Can be used to hide elements from a particular view.
|
||||||
* `zIndex` - type: FLOAT.
|
* `zIndex` - type: FLOAT.
|
||||||
- z-index value for component. Components will be rendered in order of z-index value from low to high. Default is `50`.
|
- z-index value for element. Elements will be rendered in order of z-index value from low to high. Default is `50`.
|
||||||
|
|
||||||
#### carousel
|
#### carousel
|
||||||
|
|
||||||
|
@ -887,7 +887,7 @@ It's strongly recommended to use the same image dimensions for all badges as var
|
||||||
- Sets the number of logos to display in the carousel. Note that fractional values are rounded up.
|
- Sets the number of logos to display in the carousel. Note that fractional values are rounded up.
|
||||||
- Default is 3
|
- Default is 3
|
||||||
* `zIndex` - type: FLOAT.
|
* `zIndex` - type: FLOAT.
|
||||||
- z-index value for component. Components will be rendered in order of z-index value from low to high with the carousel above all other components.
|
- z-index value for element. Elements will be rendered in order of z-index value from low to high with the carousel above all other elements.
|
||||||
|
|
||||||
The help system is a special element that displays a context-sensitive list of actions the user can take at any time. You should try and keep the position constant throughout every screen. Keep in mind the "default" settings (including position) are used whenever the user opens a menu.
|
The help system is a special element that displays a context-sensitive list of actions the user can take at any time. You should try and keep the position constant throughout every screen. Keep in mind the "default" settings (including position) are used whenever the user opens a menu.
|
||||||
|
|
||||||
|
|
|
@ -1764,6 +1764,10 @@ This entry is only visible if the system is a custom collection and it's current
|
||||||
|
|
||||||
This opens the metadata editor for the currently selected game file or folder.
|
This opens the metadata editor for the currently selected game file or folder.
|
||||||
|
|
||||||
|
### Enter folder (override folder link)
|
||||||
|
|
||||||
|
If the current game is a folder which has a _folder link_ configured (meaning it points to a file inside the folder structure that will be launched when pressing the _A_ button), then this entry will appear in the menu. It simply overrides the link and enters the folder just as if no link would have been configured. The folder link functionality is described in more detail below.
|
||||||
|
|
||||||
## Metadata editor
|
## Metadata editor
|
||||||
|
|
||||||
In the metadata editor, you can modify the metadata, scrape for game info and media files, clear the entry which will delete all metadata and game media files, or delete the entire game which also removes its file on the filesystem. When manually modifying a value, it will change color from gray to blue, and if the scraper has changed a value, it will change to red. When leaving the metadata editor you will be asked whether you want to save any settings done manually or by the scraper.
|
In the metadata editor, you can modify the metadata, scrape for game info and media files, clear the entry which will delete all metadata and game media files, or delete the entire game which also removes its file on the filesystem. When manually modifying a value, it will change color from gray to blue, and if the scraper has changed a value, it will change to red. When leaving the metadata editor you will be asked whether you want to save any settings done manually or by the scraper.
|
||||||
|
@ -1859,6 +1863,10 @@ This entry provides a selection of controller icons that are built into ES-DE (a
|
||||||
|
|
||||||
If the option _Enable alternative emulators per game_ has been enabled, there will be an entry shown where you can select between alternative emulators for the specific game. There is a similar _Alternative emulators_ entry under the _Other settings_ menu, but that will apply the selection to the entire game system. If you select an alternative for a specific game using the metadata editor, that will take precedence and override any system-wide emulator selection (the currently selected system-wide emulator will be clearly marked on the selection screen). The alternative emulators need to be defined in the es_systems.xml file, and if there are no alternatives available for the current system, this row in the metadata editor will be grayed out. If you select an alternative emulator and later remove its corresponding entry from the es_systems.xml file, an error notice will be shown on this row. In this case you have the option to remove the invalid entry. But even if there is an invalid entry, games will still launch using the default emulator while logging a warning message to the es_log.txt file. Apart from this, the emulator selection should hopefully be self-explanatory.
|
If the option _Enable alternative emulators per game_ has been enabled, there will be an entry shown where you can select between alternative emulators for the specific game. There is a similar _Alternative emulators_ entry under the _Other settings_ menu, but that will apply the selection to the entire game system. If you select an alternative for a specific game using the metadata editor, that will take precedence and override any system-wide emulator selection (the currently selected system-wide emulator will be clearly marked on the selection screen). The alternative emulators need to be defined in the es_systems.xml file, and if there are no alternatives available for the current system, this row in the metadata editor will be grayed out. If you select an alternative emulator and later remove its corresponding entry from the es_systems.xml file, an error notice will be shown on this row. In this case you have the option to remove the invalid entry. But even if there is an invalid entry, games will still launch using the default emulator while logging a warning message to the es_log.txt file. Apart from this, the emulator selection should hopefully be self-explanatory.
|
||||||
|
|
||||||
|
**Folder link** _(folders only)_
|
||||||
|
|
||||||
|
Using this option it's possible to link a specific file inside the game's folder structure that will be launched directly instead of entering the folder when pressing the _A_ button. This is very useful for systems where there are multiple files per game, such as multi-disc games where an .m3u file is used to launch the game. As the name implies this is only a link, and as folders can't be part of collections (the automatic collections _All games, Favorites_ and _Last played_ as well as any custom collections) it's the linked file inside the folder that is included in such collections. So for instance, launching a game via a linked folder will have the linked file show up in the _Last played_ collection rather than the folder itself. This also means that you should scrape the linked file in addition to the folder to be able to see game media and metadata throughout the application. To override the folder link and enter the directory, there is an entry available in the game options menu.
|
||||||
|
|
||||||
### Buttons
|
### Buttons
|
||||||
|
|
||||||
For game files, there will be five buttons displayed on the bottom of the metadata editor window, and for folders there will be four. These are their functions:
|
For game files, there will be five buttons displayed on the bottom of the metadata editor window, and for folders there will be four. These are their functions:
|
||||||
|
@ -1944,6 +1952,8 @@ Only files can be part of collections, not folders. Games marked as hidden or to
|
||||||
|
|
||||||
During the time that the collection is being edited, any game that is part of the collection is marked with a leading tick symbol in the game name.
|
During the time that the collection is being edited, any game that is part of the collection is marked with a leading tick symbol in the game name.
|
||||||
|
|
||||||
|
As well, when editing custom collections the _folder link_ configuration is disabled, making it possible to enter folders with such configuration just as if there were no folder links configured.
|
||||||
|
|
||||||
When you are done adding games, you can either open the main menu and go to **Game collection settings** and select the **Finish editing 'Platform' collection** or you can open the game options menu and select the same option there. The latter works from within any gamelist, so you don't need to first navigate back to the collection that you're editing.
|
When you are done adding games, you can either open the main menu and go to **Game collection settings** and select the **Finish editing 'Platform' collection** or you can open the game options menu and select the same option there. The latter works from within any gamelist, so you don't need to first navigate back to the collection that you're editing.
|
||||||
|
|
||||||
You can later add additional games to the collection by navigating to it, bringing up the game options menu and choosing **Add/remove games to this game collection**.
|
You can later add additional games to the collection by navigating to it, bringing up the game options menu and choosing **Add/remove games to this game collection**.
|
||||||
|
|
Loading…
Reference in a new issue