Documentation update.

This commit is contained in:
Leon Styhre 2022-03-15 19:00:02 +01:00
parent 775e2e7265
commit 302e445503
4 changed files with 21 additions and 14 deletions

View file

@ -14,6 +14,9 @@
* 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
* Deprecated multiple older theming concepts like features, extras and hardcoded metadata attributes
* 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 and OpenGL ES 3.0 respectively
* Greatly improved the performance of shader post-processing such as scanlines and blur rendering
* Added support for asterisks/wildcards for emulator name matching, usable both in es_find_rules.xml and es_systems.xml
* The actual names for emulators with find rule entries are now displayed in the error popup window if they're not found during game launch
* Reorganized the UI Settings menu a bit and added entries to set the variant and aspect ratio for newer theme sets
@ -47,8 +50,9 @@
* Added support for using the tilde (~) symbol in the es_systems.xml path entries to expand to the user home directory
* Reduced CPU usage significantly when a menu is open by not rendering the bottom of the stack
* Reduced CPU usage significantly by only rendering the necessary systems in SystemView
* Added an OpenGL ES 2.0 renderer (borrowed from the RetroPie fork of EmulationStation)
* Added support for dimming components (fade to black)
* Added logging of the display refresh rate on startup
* Added a command line option to rotate the application screen 180 degrees
* Improved the theme loading error logging to make it consistent and easier to understand
* Added a log warning for unthemed systems during theme set loading
* Changed the warning log level for missing theme files to debug level if the paths are set using variables
@ -56,6 +60,9 @@
* Added a color model conversion shader for converting from BGRA to RGBA
* Added opacity support to the scanline shader
* Added the rlottie library as a Git subtree
* Updated to build correctly with FFmpeg 5.0
* Refactored the rendering code from a shared namespace into proper classes
* Removed the deprecated OpenGL ES 1.0 renderer
* On Windows all dependencies were moved in-tree to the "external" directory to greatly simplify the build environment
* Updated the build scripts to support native M1/ARM builds on macOS
* Improved the in-tree build on macOS to not needing to install any libraries when compiling the "external" dependencies
@ -92,6 +99,8 @@
* The VideoComponent static images were not fading out smoothly on gamelist fast-scrolling
* Rating icon outlines would not fade out correctly when fast-scrolling in a gamelist
* If setting an origin other than 0.5 for a video with pillarboxes enabled, the video would not get centered on the black rectangle
* If a gamelist scroll fade-in animation was playing when opening a menu, it would continue to play after closing the menu
* When a legacy theme set had a video view style but did not have a valid md_video entry then the video player would still start (and play the audio)
* Clearing a game in the metadata editor would sometimes not remove all media files (if there were both a .jpg and a .png for a certain file type)
* The ScummVM platform entry was missing for TheGamesDB which resulted in very inaccurate scraper searches
* During multi-scraping the busy indicator was not displayed after a result was acquired but before the thumbnail was completely downloaded

View file

@ -65,6 +65,9 @@ The roadmap is under constant review so expect it to change from time to time. S
* New theme engine with generalized views (only System and Gamelist) and theme variants support
* Multiple new gamelist components (wheels, wall/grid etc.)
* Lottie animation (vector graphics) and GIF animation support
* OpenGL ES 3.0 renderer for use on the Raspberry Pi
* Replace the OpenGL fixed function pipeline with a shader-based renderer
* Improve the performance of the GLSL shader post-processing
#### v2.1
@ -92,7 +95,6 @@ The roadmap is under constant review so expect it to change from time to time. S
* Dependency on MoltenVK to get Metal support on macOS
* Decommission of the OpenGL 2.1 and OpenGL ES renderers (or keep as legacy mode/legacy build?)
* Better and more accurate GPU and memory usage statistics overlay
* Improve the performance of the GLSL shader code
* Bulk metadata editor
* Improve multi-threading

View file

@ -69,7 +69,7 @@ https://batocera.org
The MD5 hash functions were adapted from code by the BZFlag project \
https://www.bzflag.org
A few of the GLSL shaders were borrowed from the RetroArch project \
A couple of GLSL shaders were borrowed from the RetroArch project \
https://www.retroarch.com

View file

@ -18,7 +18,6 @@ For automatic code formatting [clang-format](https://clang.llvm.org/docs/ClangFo
Any code editor can be used of course, but I recommend [VSCode](https://code.visualstudio.com).
## Building on Unix
There are some dependencies that need to be fulfilled in order to build ES-DE. These are detailed per operating system below.
@ -67,7 +66,9 @@ sudo apt-get install libcec-dev libp8-platform-dev
The Raspberry Pi 4/400 is the minimum recommended version and earlier boards have not been tested. The GPU memory should be set to at least 256 MB using `raspi-config` and the GL driver must be set to `GL (Fake KMS)` or the performance will be horrible.
Note that low-level ALSA sound support has been removed from ES-DE which means that a sound server like PulseAudio or PipeWire is required.
Note that low-level ALSA sound support has been removed from ES-DE which means that a sound server like PulseAudio or PipeWire is required. Likewise a display server (Xorg or Wayland) is required, direct framebuffer access is not supported.
Only the OpenGL ES 3.0 renderer works on Raspberry Pi and it's enabled by default.
**FreeBSD**
@ -230,12 +231,13 @@ make
```
You will most likely need to install additional packages to get this to build. On Debian-based systems these are _libcec-dev_ and _libp8-platform-dev_. Note that the CEC support is currently untested.
To build with the GLES renderer, run the following:
To build with the GLES 3.0 renderer, run the following:
```
cmake -DGLES=on .
make
```
The GLES renderer is quite limited as there is no shader support for it, so ES-DE will definitely not look as pretty as when using the default OpenGL renderer. This option is basically deprecated as the releases for all supported platforms are built using the desktop OpenGL renderer (including the Raspberry Pi).
This renderer is generally only needed on the Raspberry Pi and the desktop OpenGL renderer should otherwise be used.
Running multiple compile jobs in parallel is a good thing as it speeds up the build time a lot (scaling almost linearly). Here's an example telling make to run 6 parallel jobs:
@ -848,7 +850,6 @@ A theme is not mandatory to start the application, but ES-DE will be basically u
As indicated above, the home directory will always take precedence and any resources or themes located there will override the ones in the path of the ES-DE executable.
## Using clang-format for automatic code formatting
The entire ES-DE codebase is formatted using clang-format and all new code must be formatted using this tool before being committed.
@ -987,7 +988,6 @@ git diff mamedevices
The reason to not simply replace the BIOS and devices files with the new version is that we want to retain entries from all older MAME versions as otherwise older ROM sets used on older MAME versions would have missing information. This is so as the MAME project sometimes removes older entries when they're reorganizing the ROM sets. By merging the files we retain backward compatibility but still support the latest MAME version. To clarify, this of course does not affect the emulation itself, but rather the filtering of BIOS and device files inside ES-DE. The mamenames.xml file containing the translation of MAME ROM names to the full game names does not suffer from this problem as it's cumulative, which is why it is simply overwritten.
## Configuration
**~/.emulationstation/es_settings.xml**
@ -1032,7 +1032,6 @@ But if you have customized your button layout and your controller or keyboard st
The input configuration is described in the [User guide](USERGUIDE-DEV.md#input-device-configuration).
## Command line options
You can use **--help** or **-h** to view the list of command line options, as shown here.
@ -1040,6 +1039,7 @@ You can use **--help** or **-h** to view the list of command line options, as sh
```
--display [index 1-4] Display/monitor to use
--resolution [width] [height] Application resolution
--screenrotate [1/on or 0/off] Rotate application screen 180 degrees
--vsync [1/on or 0/off] Turn VSync on or off (default is on)
--max-vram [size] Max VRAM to use (in mebibytes) before swapping
--no-splash Don't show the splash screen during startup
@ -1069,7 +1069,6 @@ For the following options, the es_settings.xml file is immediately updated/saved
--show-hidden-games
```
## es_systems.xml
The es_systems.xml file contains the game systems configuration data for ES-DE, written in XML format. This defines the system name, the full system name, the ROM path, the allowed file extensions, the launch command, the platform (for scraping) and the theme to use.
@ -1558,7 +1557,6 @@ For reference, here are also example es_find_rules.xml files for macOS and Windo
</ruleList>
```
## gamelist.xml
The gamelist.xml file for a system defines the metadata for its entries, such as the game names, descriptions, release dates and ratings.
@ -1686,7 +1684,6 @@ For folders, most of the fields are identical although some are removed. In the
* The switch `--ignore-gamelist` can be used to ignore the gamelist upon start of the application (mostly useful for debugging purposes)
## Debug mode
By passing the --debug command line option, ES-DE will increase the logging to include a lot of additional debug output which is useful both for development and in order to pinpoint issues as a user.
@ -1710,7 +1707,6 @@ This will reload either a single gamelist or all gamelists depending on where yo
By default all controller input (keyboard and controller button presses) will be logged when the --debug flag has been passed. To disable the input logging, the setting DebugSkipInputLogging kan be set to false in the es_settings.xml file. There is no menu entry to change this as it's intended for developers and not for end users.
## Portable installation on Windows
It's possible to easily create a portable installation of ES-DE on Windows, for example to place on a USB memory stick.