From fcfbbd3f2bf9fbaf2f61e8ef0023c675df6cc4a2 Mon Sep 17 00:00:00 2001 From: Leon Styhre Date: Fri, 15 May 2020 18:31:59 +0200 Subject: [PATCH] Updated version info and documentation files --- README.md | 58 +++++++++++++++++++--------- THEMES.md | 72 +++++++++++++++++++++++++++-------- emulationstation.sh | 21 ---------- es-app/src/EmulationStation.h | 4 +- 4 files changed, 98 insertions(+), 57 deletions(-) delete mode 100755 emulationstation.sh diff --git a/README.md b/README.md index e97c55208..555731e28 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,34 @@ -EmulationStation -================ +EmulationStation Desktop Edition +================================ -This is a fork of EmulationStation for RetroPie. -EmulationStation is a cross-platform graphical front-end for emulators with controller navigation. +EmulationStation Desktop Edition is a cross-platform graphical front-end for emulators with controller and keyboard 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 ======== 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:** 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: ``` ---resolution [width] [height] try and force a particular resolution ---gamelist-only skip automatic game search, only read from gamelist.xml ---ignore-gamelist ignore the gamelist (useful for troubleshooting) ---draw-framerate display the framerate ---no-exit don't show the exit option in the menu ---no-splash don't show the splash screen ---debug more logging, show console on Windows ---scrape scrape using command line interface ---windowed not fullscreen, should be used with --resolution ---vsync [1/on or 0/off] turn vsync on or off (default is on) +--resolution [width] [height] Try and force a particular resolution +--gamelist-only Skip automatic game search, only read from gamelist.xml +--ignore-gamelist Ignore the gamelist (useful for troubleshooting) +--draw-framerate Display the framerate +--no-exit Don't show the exit option in the menu +--no-splash Don't show the splash screen +--debug More logging, show console on Windows +--scrape Scrape using command line interface +--windowed Not fullscreen, should be used with --resolution +--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 ---force-kid Force the UI mode to be Kid ---force-kiosk Force the UI mode to be Kiosk +--force-kid Force the UI mode to be Kid +--force-kiosk Force the UI mode to be Kiosk --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. diff --git a/THEMES.md b/THEMES.md index 07e570a06..5c401593b 100644 --- a/THEMES.md +++ b/THEMES.md @@ -49,7 +49,7 @@ Here is a very simple theme that changes the description text's color: ```xml - 3 + 5 00FF00 @@ -69,7 +69,7 @@ How it works Everything must be inside a `` tag. -**The `` tag *must* be specified**. This is the version of the theming system the theme was designed for. The current version is 3. +**The `` 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`: ```xml - 3 + 5 ./all_themes/myfont.ttf @@ -137,7 +137,7 @@ You can include theme files within theme files, similar to `#include` in C (thou `~/.emulationstation/snes/theme.xml`: ```xml - 3 + 5 ./../all_themes.xml @@ -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`: ```xml - 3 + 5 ./all_themes/myfont.ttf @@ -170,7 +170,7 @@ Sometimes you want to apply the same properties to the same elements across mult ```xml - 3 + 5 ./snes_art/snes_header.png @@ -187,7 +187,7 @@ Sometimes you want to apply the same properties to the same elements across mult This is equivalent to: ```xml - 3 + 5 ./snes_art/snes_header.png @@ -220,7 +220,7 @@ You can theme multiple elements *of the same type* simultaneously. The `name` a ```xml - 3 + 5 48474D @@ -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. +#### 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. ./navigationsounds.xml). +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: + + + 5 + + + + ./core/sounds/systembrowse.wav + + + ./core/sounds/quicksysselect.wav + + + ./core/sounds/select.wav + + + ./core/sounds/back.wav + + + ./core/sounds/scroll.wav + + + ./core/sounds/favorite.wav + + + ./core/sounds/launch.wav + + + + + #### Defaults ##### 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. * `fontPath` - type: PATH. * `fontSize` - type: FLOAT. -* `scrollSound` - type: PATH. - - Sound that is played when the list is scrolled. * `alignment` - type: STRING. - Valid values are "left", "center", or "right". Controls alignment on the X axis. * `horizontalMargin` - type: FLOAT. @@ -793,11 +835,6 @@ EmulationStation borrows the concept of "nine patches" from Android (or "9-Slice - %M: The minute [00,59] - %S: The second [00,59] -#### sound - -* `path` - type: PATH. - - Path to the sound file. Only .wav files are currently supported. - #### helpsystem * `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. [*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 diff --git a/emulationstation.sh b/emulationstation.sh deleted file mode 100755 index c6915bafd..000000000 --- a/emulationstation.sh +++ /dev/null @@ -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 diff --git a/es-app/src/EmulationStation.h b/es-app/src/EmulationStation.h index 1cd346ca5..4b8462b19 100644 --- a/es-app/src/EmulationStation.h +++ b/es-app/src/EmulationStation.h @@ -7,11 +7,11 @@ #define PROGRAM_VERSION_MAJOR 2 #define PROGRAM_VERSION_MINOR 10 #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 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 #endif // ES_APP_EMULATION_STATION_H