Updated version info and documentation files

This commit is contained in:
Leon Styhre 2020-05-15 18:31:59 +02:00
parent cd68344dc5
commit fcfbbd3f2b
4 changed files with 98 additions and 57 deletions

View file

@ -1,15 +1,34 @@
EmulationStation EmulationStation Desktop Edition
================ ================================
This is a fork of EmulationStation for RetroPie. EmulationStation Desktop Edition is a cross-platform graphical front-end for emulators with controller and keyboard navigation.
EmulationStation is a cross-platform graphical front-end for emulators with controller navigation.
This is a fork intended for use on desktop computers rather than devices such as a Raspberry Pi. It's specifically intended to be
used with RetroArch, but it's certainly possible to configure the software to be used with other emulators.
It's based on the RetroPie fork with some functionality ported from the Batocera fork. New and hopefully useful functionality has also been added.
As it's intended for RetroArch and for usage on desktop computers, there has been no effort spent on trying to create advanced emulator or system configuration tools in the frontend, it's better to let the emulator itself handle that. Rather the goal is to keep the code as clean and fast as possible and to avoid bloat.
The following changes and improvements have been made as of the fork from retropie-emulationstation v2.9.1:
* GUI-configurable ability to put favorite games on the top of the game lists
* Favorites marked with stars in the game lists
* Full navigation sound support, configurable per theme (seven different sounds can be defined)
* Seamless (almost) launch of games without showing the desktop when starting and returning from RetroArch or other emulators
* A GUI-configurable choice between normal fullscreen and borderless fullscreen mode (the latter disables alt-tab switching but is more seamless)
* GUI options to disable menu entries for system reboot and system power off (normally not required on a desktop computer and accidents do happen!)
* Default theme es-theme-rbsimple-DE based on Recalbox Multi, but greatly simplified and in my opinion improved
* Two other themes, es-theme-carbon-DE and es-theme-fundamental-DE fully updated with the functionality from this Desktop Edition fork
* All required fonts are now bundled with the software so that it's not necessary to install them separately in the operating system
* Preconfigured for use with RetroArch, although you may want to modify the core settings if you prefer alternatives to the emulators configured
Building Building
======== ========
EmulationStation uses some C++11 code, which means you'll need to use at least g++-4.7 on Linux, or VS2010 on Windows, to compile. EmulationStation uses some C++11 code, which means you'll need to use at least g++-4.7 on Linux, or VS2010 on Windows, to compile.
EmulationStation has a few dependencies. For building, you'll need CMake, SDL2, FreeImage, FreeType, cURL and RapidJSON. You also should probably install the `fonts-droid` package which contains fallback fonts for Chinese/Japanese/Korean characters, but ES will still work fine without it (this package is only used at run-time). EmulationStation has a few dependencies. For building, you'll need CMake, SDL2, FreeImage, FreeType, cURL and RapidJSON.
**On Debian/Ubuntu:** **On Debian/Ubuntu:**
All of this be easily installed with `apt-get`: All of this be easily installed with `apt-get`:
@ -103,21 +122,24 @@ The new configuration will be added to the `~/.emulationstation/es_input.cfg` fi
You can use `--help` or `-h` to view a list of command-line options. Briefly outlined here: You can use `--help` or `-h` to view a list of command-line options. Briefly outlined here:
``` ```
--resolution [width] [height] try and force a particular resolution --resolution [width] [height] Try and force a particular resolution
--gamelist-only skip automatic game search, only read from gamelist.xml --gamelist-only Skip automatic game search, only read from gamelist.xml
--ignore-gamelist ignore the gamelist (useful for troubleshooting) --ignore-gamelist Ignore the gamelist (useful for troubleshooting)
--draw-framerate display the framerate --draw-framerate Display the framerate
--no-exit don't show the exit option in the menu --no-exit Don't show the exit option in the menu
--no-splash don't show the splash screen --no-splash Don't show the splash screen
--debug more logging, show console on Windows --debug More logging, show console on Windows
--scrape scrape using command line interface --scrape Scrape using command line interface
--windowed not fullscreen, should be used with --resolution --windowed Not fullscreen, should be used with --resolution
--vsync [1/on or 0/off] turn vsync on or off (default is on) --fullscreen-normal Run in normal fullscreen mode
--fullscreen-borderless Run in borderless fullscreen mode (always on top)
--vsync [1/on or 0/off] Turn vsync on or off (default is on)
--max-vram [size] Max VRAM to use in Mb before swapping. 0 for unlimited --max-vram [size] Max VRAM to use in Mb before swapping. 0 for unlimited
--force-kid Force the UI mode to be Kid --force-kid Force the UI mode to be Kid
--force-kiosk Force the UI mode to be Kiosk --force-kiosk Force the UI mode to be Kiosk
--force-disable-filters Force the UI to ignore applied filters in gamelist --force-disable-filters Force the UI to ignore applied filters in gamelist
--help, -h summon a sentient, angry tuba --home [path] Directory to use as home path
--help, -h Summon a sentient, angry tuba
``` ```
As long as ES hasn't frozen, you can always press F4 to close the application. As long as ES hasn't frozen, you can always press F4 to close the application.

View file

@ -49,7 +49,7 @@ Here is a very simple theme that changes the description text's color:
```xml ```xml
<theme> <theme>
<formatVersion>3</formatVersion> <formatVersion>5</formatVersion>
<view name="detailed"> <view name="detailed">
<text name="description"> <text name="description">
<color>00FF00</color> <color>00FF00</color>
@ -69,7 +69,7 @@ How it works
Everything must be inside a `<theme>` tag. Everything must be inside a `<theme>` tag.
**The `<formatVersion>` tag *must* be specified**. This is the version of the theming system the theme was designed for. The current version is 3. **The `<formatVersion>` tag *must* be specified**. This is the version of the theming system the theme was designed for. The current version is 5.
@ -124,7 +124,7 @@ You can include theme files within theme files, similar to `#include` in C (thou
`~/.emulationstation/all_themes.xml`: `~/.emulationstation/all_themes.xml`:
```xml ```xml
<theme> <theme>
<formatVersion>3</formatVersion> <formatVersion>5</formatVersion>
<view name="detailed"> <view name="detailed">
<text name="description"> <text name="description">
<fontPath>./all_themes/myfont.ttf</fontPath> <fontPath>./all_themes/myfont.ttf</fontPath>
@ -137,7 +137,7 @@ You can include theme files within theme files, similar to `#include` in C (thou
`~/.emulationstation/snes/theme.xml`: `~/.emulationstation/snes/theme.xml`:
```xml ```xml
<theme> <theme>
<formatVersion>3</formatVersion> <formatVersion>5</formatVersion>
<include>./../all_themes.xml</include> <include>./../all_themes.xml</include>
<view name="detailed"> <view name="detailed">
<text name="description"> <text name="description">
@ -150,7 +150,7 @@ You can include theme files within theme files, similar to `#include` in C (thou
Is equivalent to this `snes/theme.xml`: Is equivalent to this `snes/theme.xml`:
```xml ```xml
<theme> <theme>
<formatVersion>3</formatVersion> <formatVersion>5</formatVersion>
<view name="detailed"> <view name="detailed">
<text name="description"> <text name="description">
<fontPath>./all_themes/myfont.ttf</fontPath> <fontPath>./all_themes/myfont.ttf</fontPath>
@ -170,7 +170,7 @@ Sometimes you want to apply the same properties to the same elements across mult
```xml ```xml
<theme> <theme>
<formatVersion>3</formatVersion> <formatVersion>5</formatVersion>
<view name="basic, grid, system"> <view name="basic, grid, system">
<image name="logo"> <image name="logo">
<path>./snes_art/snes_header.png</path> <path>./snes_art/snes_header.png</path>
@ -187,7 +187,7 @@ Sometimes you want to apply the same properties to the same elements across mult
This is equivalent to: This is equivalent to:
```xml ```xml
<theme> <theme>
<formatVersion>3</formatVersion> <formatVersion>5</formatVersion>
<view name="basic"> <view name="basic">
<image name="logo"> <image name="logo">
<path>./snes_art/snes_header.png</path> <path>./snes_art/snes_header.png</path>
@ -220,7 +220,7 @@ You can theme multiple elements *of the same type* simultaneously. The `name` a
```xml ```xml
<theme> <theme>
<formatVersion>3</formatVersion> <formatVersion>5</formatVersion>
<view name="detailed"> <view name="detailed">
<!-- Weird spaces/newline on purpose! --> <!-- Weird spaces/newline on purpose! -->
<text name="md_lbl_rating, md_lbl_releasedate, md_lbl_developer, md_lbl_publisher, <text name="md_lbl_rating, md_lbl_releasedate, md_lbl_developer, md_lbl_publisher,
@ -234,7 +234,7 @@ You can theme multiple elements *of the same type* simultaneously. The `name` a
Which is equivalent to: Which is equivalent to:
```xml ```xml
<theme> <theme>
<formatVersion>3</formatVersion> <formatVersion>5</formatVersion>
<view name="detailed"> <view name="detailed">
<text name="md_lbl_rating"> <text name="md_lbl_rating">
<color>48474D</color> <color>48474D</color>
@ -270,6 +270,50 @@ Just remember, *this only works if the elements have the same type!*
You can now change the order in which elements are rendered by setting `zIndex` values. Default values correspond to the default rendering order while allowing elements to easily be shifted without having to set `zIndex` values for every element. Elements will be rendered in order from smallest z-index to largest. You can now change the order in which elements are rendered by setting `zIndex` values. Default values correspond to the default rendering order while allowing elements to easily be shifted without having to set `zIndex` values for every element. Elements will be rendered in order from smallest z-index to largest.
#### Navigation sounds
The navigation sounds are configured globally per theme, so it needs to be defined as a feature and with the view set to the special 'all' category.
It's recommended to put these elements in a separate file and include it from the main theme file (e.g. <include>./navigationsounds.xml</include>).
There are seven different navigation sounds that can be configured. The names as well as the element structure should be self-explanatory based
on the example below.
Starting EmulationStation with the --debug flag will provide feedback on whether the navigation sound elements were read correctly, as well as
providing an error message if any of the .wav sound files could not be loaded.
Example debug output:
May 12 21:12:37 lvl2: Sound::getFromTheme() looking for [all.selectSound]
May 12 21:12:37 lvl2: [selectSound] found, ready to play sound file
Example navigationsounds.xml, to be included from the main theme file:
<theme>
<formatVersion>5</formatVersion>
<feature supported="navigationsounds">
<view name="all">
<sound name="systembrowseSound">
<path>./core/sounds/systembrowse.wav</path>
</sound>
<sound name="quicksysselectSound">
<path>./core/sounds/quicksysselect.wav</path>
</sound>
<sound name="selectSound">
<path>./core/sounds/select.wav</path>
</sound>
<sound name="backSound">
<path>./core/sounds/back.wav</path>
</sound>
<sound name="scrollSound">
<path>./core/sounds/scroll.wav</path>
</sound>
<sound name="favoriteSound">
<path>./core/sounds/favorite.wav</path>
</sound>
<sound name="launchSound">
<path>./core/sounds/launch.wav</path>
</sound>
</view>
</feature>
</theme>
#### Defaults #### Defaults
##### system ##### system
@ -712,8 +756,6 @@ Can be created as an extra.
- Secondary color; what this means depends on the text list. For example, for game lists, it is the color of a folder. - Secondary color; what this means depends on the text list. For example, for game lists, it is the color of a folder.
* `fontPath` - type: PATH. * `fontPath` - type: PATH.
* `fontSize` - type: FLOAT. * `fontSize` - type: FLOAT.
* `scrollSound` - type: PATH.
- Sound that is played when the list is scrolled.
* `alignment` - type: STRING. * `alignment` - type: STRING.
- Valid values are "left", "center", or "right". Controls alignment on the X axis. - Valid values are "left", "center", or "right". Controls alignment on the X axis.
* `horizontalMargin` - type: FLOAT. * `horizontalMargin` - type: FLOAT.
@ -793,11 +835,6 @@ EmulationStation borrows the concept of "nine patches" from Android (or "9-Slice
- %M: The minute [00,59] - %M: The minute [00,59]
- %S: The second [00,59] - %S: The second [00,59]
#### sound
* `path` - type: PATH.
- Path to the sound file. Only .wav files are currently supported.
#### helpsystem #### helpsystem
* `pos` - type: NORMALIZED_PAIR. Default is "0.012 0.9515" * `pos` - type: NORMALIZED_PAIR. Default is "0.012 0.9515"
@ -846,3 +883,6 @@ EmulationStation borrows the concept of "nine patches" from Android (or "9-Slice
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.
[*Check out the "official" themes for some more examples!*](http://aloshi.com/emulationstation#themes) [*Check out the "official" themes for some more examples!*](http://aloshi.com/emulationstation#themes)
This file was last updated for EmulationStation Desktop Edition v1.0.0

View file

@ -1,21 +0,0 @@
#!/bin/sh
esdir="$(dirname $0)"
while true; do
rm -f /tmp/es-restart /tmp/es-sysrestart /tmp/es-shutdown
"$esdir/emulationstation" "$@"
ret=$?
[ -f /tmp/es-restart ] && continue
if [ -f /tmp/es-sysrestart ]; then
rm -f /tmp/es-sysrestart
sudo reboot
break
fi
if [ -f /tmp/es-shutdown ]; then
rm -f /tmp/es-shutdown
sudo poweroff
break
fi
break
done
exit $ret

View file

@ -7,11 +7,11 @@
#define PROGRAM_VERSION_MAJOR 2 #define PROGRAM_VERSION_MAJOR 2
#define PROGRAM_VERSION_MINOR 10 #define PROGRAM_VERSION_MINOR 10
#define PROGRAM_VERSION_MAINTENANCE 0 #define PROGRAM_VERSION_MAINTENANCE 0
#define PROGRAM_VERSION_STRING "2.10.0DE-dev" #define PROGRAM_VERSION_STRING "1.0.0DE-dev"
#define PROGRAM_BUILT_STRING __DATE__ " - " __TIME__ #define PROGRAM_BUILT_STRING __DATE__ " - " __TIME__
#define RESOURCE_VERSION_STRING "2,10,0\0" #define RESOURCE_VERSION_STRING "1,0,0\0"
#define RESOURCE_VERSION PROGRAM_VERSION_MAJOR,PROGRAM_VERSION_MINOR,PROGRAM_VERSION_MAINTENANCE #define RESOURCE_VERSION PROGRAM_VERSION_MAJOR,PROGRAM_VERSION_MINOR,PROGRAM_VERSION_MAINTENANCE
#endif // ES_APP_EMULATION_STATION_H #endif // ES_APP_EMULATION_STATION_H