ES-DE/CHANGELOG.md

159 lines
18 KiB
Markdown
Raw Normal View History

2021-01-03 10:58:27 +00:00
# EmulationStation Desktop Edition (ES-DE) - Changelog
2020-12-24 10:58:30 +00:00
## Version 1.0.0 (in development)
**Release date:** TBD
### Release overview
2020-12-24 10:58:30 +00:00
First release, a major update to the application compared to the RetroPie version on which it is based. This includes new gamelist sorting logic, new game media handling and an updated Windows port as well as a macOS port. The menu system has also been completely overhauled and the scraper has been expanded to support multiple media types as well as providing detailed scraping configuration options.
Full navigation sound support has been implemented, and the metadata editor has seen a lot of updates including color coding of all changes done by the user and by the scraper. Favorite games can now also be sorted on top of the gamelists and game collections.
OpenGL GLSL shader support has been added (not for the OpenGL ES renderer though) and there are multiple effects implemented such as scanlines for videos, blurred background when opening menus etc.
2021-03-05 18:49:31 +00:00
A new default theme rbsimple-DE (based on Recalbox Multi) is bundled with the application and is part of the installation package/installer. Themes created for the RetroPie EmulationStation fork will still work correctly.
Many bugs have been fixed, and numerous features that were only partially implemented or broken have been updated to a fully working state. The application runs much faster as well due to lots of optimizations.
### Detailed list of changes
* Initial version, fork from RetroPie EmulationStation 2.10.0rp-dev (master)
* Added support for Windows, macOS, FreeBSD, NetBSD and OpenBSD
2021-03-05 18:49:31 +00:00
* New default theme rbsimple-DE bundled with the software (this theme is largely based on Recalbox Multi by the Recalbox community)
2020-12-26 15:22:33 +00:00
* Added extensive es_systems.cfg templates for Unix, macOS and Windows that are automatically installed on first application startup
2021-03-10 17:32:28 +00:00
* Added support for generating the ROM directory structure from within the application based on information in es_systems.cfg
2021-01-24 22:44:50 +00:00
* Added full navigation sound support, configurable per theme with a fallback to the built-in sounds if there is no theme support
* Added multi-monitor support by giving the option to define on which display to run ES-DE
2020-12-26 15:22:33 +00:00
* Improved input device configuration and default keyboard mappings are now applied if the keyboard has not been configured by the user
* Reorganization and general overhaul of the menu system, hopefully making it more intuitive to navigate and easier to understand the menu entries
* New game media file logic using a media directory with files matching the ROM names instead of explicitly pointing to the media files from the gamelist.xml files
* GUI-configurable option to sort favorite games above non-favorite games
* GUI-configurable option to flag favorite games with star symbols
* GUI-configurable option to sort folders on top of the gamelists
* Added volume sliders for navigation sounds and game videos to the sound settings menu
* Added support for OpenGL GLSL shaders (OpenGL 2.1 renderer only, no support for OpenGL ES 1.0 renderer)
* Added multiple animations and shader effects, such as when opening menus, playing videos in the gamelists and via the screensaver etc.
* Updated the application to work properly on high resolution devices (such as 4K monitors)
2020-12-26 15:22:33 +00:00
* Seamless (almost) launch of games without showing the desktop when starting and returning from RetroArch and other emulators
* Updated scraper to support additional media files, detailed configuration of what to scrape, semi-automatic mode etc.
* Added user account support when scraping using ScreenScraper
* Added support for scraping game genres and game descriptions in multiple languages when using ScreenScraper
* Files or folders can now be flagged for exclusion when scraping with the multi-scraper, and for folders it can be set to apply recursively
* Overhaul of the game collection functionality including many bug fixes and optimizations
2020-11-10 21:18:20 +00:00
* Added ability to delete custom collections from the GUI menu
2020-12-26 15:22:33 +00:00
* Help system updated and expanded to the complete application (previously it was only partially implemented)
* Game systems are now sorted by full names which makes much more sense from a user perspective
2021-03-05 18:49:31 +00:00
* In the metadata editor, any values updated by the single-game scraper or by the user are now highlighted using different font colors
2020-12-26 15:22:33 +00:00
* Expanded the metadata for folders and made it possible to mark them as favorites
* Added metadata entry to mark games as broken/not working (e.g. useful for MAME games)
* Added metadata entry to indicate whether the file should be counted as a game (e.g. useful to exclude setup files and similar for DOS games)
* Added metadata entry to hide the metadata values from the gamelist views (useful for general folders, DOS game configuration utilities etc.)
* Added a button to the metadata editor to delete the media files for a game or folder while still retaining the game file and gamelist.xml entry
* Added a system view counter for favorite games in addition to the total number of games
2020-12-26 15:22:33 +00:00
* Added a gamelist info text field displaying the game count, any applied filters as well as an icon if a folder has been entered (requires theme support)
* Properly implemented the option to show or hide hidden files and folders
* Properly implemented the option to show or hide games flagged as hidden in the metadata editor
* Added support for converting two-byte Unicode characters to uppercase and lowercase
* Added the ability to display pillarboxing and letterboxing for videos with non-standard aspect ratios
2020-12-26 15:22:33 +00:00
* Custom event scripts can now be enabled or disabled with a menu option
* Gamelist sorting is now working as expected and is persistent throughout the application session
2021-03-05 18:49:31 +00:00
* Expanded the gamelist filter functionality to include completed and broken games and added the ability to filter game names via a free text entry
* Added functionality to remember cursor positions inside folders and grouped custom collections
2020-12-26 15:22:33 +00:00
* Per-game launch command override, so that different cores or emulators can be used on a per-game basis (saved to gamelist.xml)
2021-03-05 18:49:31 +00:00
* The emulator core location can now be defined relative to the emulator binary using the %EMUPATH% variable in es_systems.cfg (used extensively on macOS and Windows)
2020-12-26 15:22:33 +00:00
* Core locations can be searched from a configurable list of directories if defined in the es_systems.cfg file using the %COREPATH% variable (mostly useful on Unix where there are no standardized core directories)
2021-01-11 17:40:16 +00:00
* Clear notifications and logging have been added for missing emulator binaries and cores when attempting to launch games
2020-12-26 15:22:33 +00:00
* Overhaul of the screensaver (the game info overlay now works correctly for instance)
* Added support for jumping to the start and end of gamelists and menus using the controller trigger buttons (or equivalent keyboard mappings)
* Many additional quality of life improvements and removal of GUI inconsistencies
2021-01-28 19:06:12 +00:00
* Replaced the main application font with Fontfabric Akrobat
* Replaced the on and off button icons with new graphics
* Replaced the checked checkmark icon with new graphics
2021-03-10 17:32:28 +00:00
* Changed the application icons and splash screen color theme from blue to red
* Improved the menu interface on 4:3 aspect ratio displays
* Made ScrollableContainer (used for the gamelist game descriptions) fade in as the text position is reset
2021-03-05 18:49:31 +00:00
* Made the ScrollableContainer scroll speed adaptive depending on the font size and width of the text container
* Moved all resources to a subdirectory structure and enabled the CMake install prefix variable to generate the resources search path
* Changed theme directory to the install prefix (e.g. /usr/local/share/emulationstation/themes) with themes in the home directory taking precedence
2021-03-05 18:49:31 +00:00
* No more attempts to open files directly under /etc, instead only the install prefix directory, the ES-DE executable directory and the home directory are used
* Added proper error handling for missing resource files and improved overall logging
* Refactoring, cleanup and documentation of the source code, removal of deprecated files etc.
2020-12-26 15:22:33 +00:00
* Speed improvements and optimizations, the application now starts faster and feels more responsive
* Added new component GuiComplexTextEditPopup to handle changes to configuration file entries and similar
* Added full UTF-16 (Unicode) support on Windows
* Removed the PowerSaver
* Game counting is now done during sorting instead of every time a system is selected. This should make the UI more responsive in case of large game libraries
* All required fonts bundled with the application, no dependencies on the OS to provide them any longer
* Made pugixml an external dependency instead of bundling it
* Replaced the custom math functions with standard C++ functions whenever possible
2020-12-30 22:23:30 +00:00
* Implemented proper random functions using Mersenne Twister pseudorandom number generators (believe me, it makes a practical difference)
2020-12-23 14:32:10 +00:00
* Modernized the audio code, for example using SDL_AudioStream instead of the older SDL_AudioCVT
2020-11-05 17:18:11 +00:00
* Overhaul of application settings, now the configuration file is only updated when there have been actual configuration changes
* Decreased CPU usage dramatically by only rendering the currently visible view (previously all views were always rendered)
2020-12-26 15:22:33 +00:00
* Updated the CMake/CPack install and package configuration files to work as expected (can now generate DEB, RPM, DMG and NSIS installation packages with correct dependencies)
* Added support for Clang/LLVM, made the application build with no errors or warnings using this compiler (Unix and macOS only)
2020-12-30 22:23:30 +00:00
* Added support for both MSVC and MinGW (GCC) on Windows
2021-03-05 18:49:31 +00:00
* License files are now included for all the libraries and resources that are bundled with the application
* Updated the MAME ROM index files to include ROMs up to MAME version 0.226 and created scripts to easily generate these index files in the future
2020-12-26 15:22:33 +00:00
* Greatly expanded the application documentation (which is hosted in the ES-DE repository on GitLab)
### Bug fixes
2020-12-26 15:22:33 +00:00
* On Unix, adding a hidden folder with a game in it crashed the application on startup
* If the user tried to enter a blank game name in the metadata editor, the application would crash upon saving
* Switching to the Grid view style with a placeholder shown in the gamelist crashed the application
2020-12-30 22:23:30 +00:00
* FileSystemUtil::getDirContent crashed when searching through directories recursively
* Large text sizes at higher resolutions (such as 4K) would crash the application as fixed-size texture buffers were used which weren't big enough to hold the larger font textures
* Fixed a massive memory leak related to SVG images
2020-12-24 10:58:30 +00:00
* Fixed an issue where SVG images would sometimes be cut off slightly on the right side (e.g. logos on the system view carousel)
2020-12-26 15:22:33 +00:00
* The scraper didn't handle error conditions correctly
* The metadata editor insisted that changes were made although nothing was updated. Note: The editor will still ask for save confirmations after automatically rounding fractional game ratings to half-star values, but any time such a rounding has taken place, the rating stars will be colored green in the metadata editor to nofity the user
* Sorting by number of players did not work properly for games with ranges such as 1-2 or 1-8
2020-12-26 15:22:33 +00:00
* Restart and power-off menu entries not working on any of the tested operating systems
2020-06-22 15:27:53 +00:00
* Toggling the screensaver didn't work as expected
* The setting to enable or disable audio for the video screensaver only worked on Raspberry Pi
* The screensaver random function did not consider the previously selected game and could potentially show the same image or video over and over again
* The random system selection did not consider the currently selected system
* The random game selection did not consider the currently selected game
* The random game selection traversed folders, i.e. a game could be selected inside a subdirectory and vice versa
2020-12-26 15:22:33 +00:00
* The controller D-PAD could not be used for entering the UI mode change passkey
* Filters were not applied when leaving folders using the back button
* Editing long text entries made the cursor jump outside the editing field
2021-03-10 17:32:28 +00:00
* Long words would sometimes render partly outside the designated text area instead of being abbreviated
* Fixed an annoying gamelist issue that caused the game images and data to be updated and rendered up to six times every time the list was scrolled
* Not all input events were logged when running with debug logging activated
2020-12-26 15:22:33 +00:00
* Unknown command line options were silently accepted instead of generating an error and notifying the user
* Deleting a game from the metadata editor did not delete the game media files or its entry in the gamelist.xml file
* Hidden files still showed up if they had a gamelist.xml entry
* Fixed multiple instances of misaligned GUI elements on high-resolution displays due to the use of fixed-pixel constants
* Fixed a rounding issue which caused one pixel wide lines to sometimes be shown along the upper and left screen edges
2020-12-26 15:22:33 +00:00
* The VRAM statistics overlay was somewhat broken and incorrectly displayed numbers in megabytes instead of mebibytes
* Long game names would sometimes not scroll in the gamelist view
2020-12-26 15:22:33 +00:00
* Game media was not rendered when moving between gamelists using the slide transition style
* Wrapping around the first and last game systems generated strange camera movements when using the slide transition style
* SystemView didn't properly loop the systems if only two systems were available
* When changing to the video view style from inside a gamelist, the view was not completely initialized
* Game images were sometimes scaled incorrectly
* Non-transparent favorite icons were not rendered correctly
* The SliderComponent knob position was set incorrectly if the minimum value was not zero
* Lots and lots of additional small bugs and inconsistencies fixed
2021-01-03 10:29:01 +00:00
### Known issues
2021-01-31 10:40:23 +00:00
**The issues below are relevant for ES-DE v1.0.0.**
* On Linux, running games or emulators that switch the screen resolution may cause problems if ES-DE is run in Normal fullscreen mode, most likely due to driver bugs or possibly issues in SDL. Only a white screen will be shown when returning from the game and although the application is still running, attempting to navigate blindly will lead to a crash. Using the Borderless mode resolves the issue but removes the ability to switch windows using Alt-tab. Running ES-DE with the --window flag is another workaround, but that leaves the window border intact around the application window. Hopefully this issue will be worked around in ES-DE v1.1 as improving the fullscreen mode is planned for that release.
* On Ubuntu 20.10, the included VLC version 3.0.11.1-2 is broken so ES-DE will crash when attempting to play videos. This can be fixed by manually replacing the file /lib/x86_64-linux-gnu/libvlccore.so.9.0.0 with the corresponding file from version 3.0.9.2-1 from Ubuntu 20.04. Make sure that the /lib/x86_64-linux-gnu/libvlccore.so.9 symlink points to this file as well. Hopefully this issue will soon be patched in libVLC so that this manual workaround will not be required.
2021-03-02 16:28:35 +00:00
* On Linux, libVLC does not properly release memory when stopping the video player, leading to large memory usage for ES-DE. The memory utilization does not grow indefinitely though so it shouldn't make the system run out of memory and it shouldn't make ES-DE crash. As this issue is not present on BSD, macOS or Windows the assumption is that VLC is somewhat broken on Linux. The plan is to move from libVLC to FFmpeg for ES-DE v1.1 which will avoid this issue altogether.
2021-01-03 10:29:01 +00:00
* The input configuration can be a bit glitchy on some devices, most notably the setup of trigger buttons for Xbox and PlayStation controllers. Once configured everything should work fine though. This configuration issue will hopefully be resolved in ES-DE v1.1 with the move to the SDL2 GameController API.
2021-01-31 10:40:23 +00:00
* Some artifacts can be present with the gaussian blur shader, and screen tearing can be seen when using the slide transitions with certain graphics drivers and resolutions. Both of these issues mostly affect the upper part of the screen. The second issue is apparently more prevalent when running ES-DE at a lower resolution on 4K displays by using the --resolution command line option (which is only available on Unix). These problems will hopefully be resolved in ES-DE v1.2 when moving to the GLM library.
* The launching of games can freeze ES-DE on some Windows installations. It probably only occurs on Windows 8.1 but that's not confirmed. The setting 'Run in background (while game is launched)' can be enabled to get around this problem, but this causes some other issues so it should only be used as a last resort. It's unclear if this problem can or will be resolved. If it's confirmed to only affect older Windows versions, then it's probably not worthwhile fixing it.
2021-03-02 16:28:35 +00:00
* On Windows when using high DPI displays, if not running ES-DE on the primary monitor and the display where it runs does not have the same scaling percentage as the primary monitor, then the ES-DE resolution will not be properly set. The application will still work and if running in fullscreen mode it may not even be noticeable. This issue is caused by a bug in SDL where the primary display scaling is always used for calculating the display bounds and as such it needs to be fixed in that library. If using the same scaling percentage across all monitors, or if not using high DPI monitors at all, then this issue will not occur.
2021-01-31 10:40:23 +00:00
2021-03-02 16:28:35 +00:00
* Scraping using ScreenScraper could lead to the scraper halting if exceeding the allowed requests per minute. This will cause a popup window to be displayed in ES-DE with the option available to retry the scraping for the current game (you should first wait a minute or so though or the error will immediately reoccur). This is not really a fault in the application per-se but rather a restriction of ScreenScraper. A request per minute limiter is planned for ES-DE v1.4, which should help with avoiding this problem.