
2.1.1 / 17-07-2023
EmulationStation-DE
Accuracy
Performance
Features

EmulationStation Desktop Edition is an open source frontend application for browsing and launching games from your multi-platform game collection. It comes preconfigured for use with RetroArch and a number of other emulators. It's also fully customizable so you can expand it to launch other emulators or applications. It has several features such as minimal setup, full controller support, very customizable, Built-in scraper for downloading game info and game media, fully themeable and much more...
...
Most Recent Changes
--2.1.1--
This mostly fixes a regression where some arcade controller boards stopped working, but it also includes a few other minor changes.
Detailed list of changes
Added support for a lot more emoji characters by bundling the Google Noto Emoji font
Changed the media viewer to using linear interpolation scaling for the miximages
(Linux) Added ~/.local/share/applications/ as an additional search path for AppImages and manually downloaded emulators
Bug fixes
The crash prevention for buggy controller drivers was a bit too aggressive and stopped some arcade controller boards from working
--2.1.0--
The 2.1 release brings a new look to ES-DE by changing the default menu color scheme from light to dark. There is however a setting to revert to the light color scheme if that's preferred. Scraping and viewing of PDF game manuals has also been added, with the PDF viewer being reachable from the gamelist media viewer.
Miximages will now be generated with a proper image fit if the screenshot aspect ratio doesn't match the miximage frame. This will for instance occur for widescreen systems and vertically oriented arcade shooters. There are multiple new options to control this behavior in the miximage settings menu. System sorting has also been improved, making it possible to use a separate es_systems_sorting.xml file in the custom_systems directory, meaning it's no longer required to add systemsortname tags to the es_systems.xml file.
For the Linux AppImage releases a built-in application updater has been added so that future versions can be installed automatically. Apart from all these changes many smaller improvements have been made and a couple of new systems have been added.
Detailed list of changes
Added support for changing between dark and light color schemes for the menu system (with dark being the new default)
Added a PDF game manual viewer, accessible from the media viewer
Added support for scraping game manuals using ScreenScraper
Added an application updater which downloads and installs ES-DE updates (currently only the AppImage releases are supported)
Added options to the miximage generator for how to fit screenshots that do not match the aspect ratio of the miximage frame
Added support for a dedicated es_systems_sorting.xml file to change systems sorting without having to modify es_systems.xml
Bundled four complete es_systems_sorting.xml files with the application (they can be found in the resources/sorting/ directory)
Placing an es_find_rules.xml file in custom_systems will now complement rather than override the bundled file
Added help prompts to the media viewer
Changed the media viewer to using linear interpolation scaling for the box cover, box back cover and fan art images
Added trigger button support to the media viewer for jumping to the first and last entries
Added trigger button support to the theme downloader screenshot viewer for jumping to the first and last entries
Added a game manual badge to indicate whether a game has a downloaded PDF manual
Enabled textlist fast-scrolling for the system view
The textlist navigation sound will now always start playing immediately when scrolling a single entry
Added options to the video and slideshow screensavers to only include favorite games
Added a per-system game count to the multi-scraper
Changed the scraper auto-retry functionality to never run on non-recoverable errors such as insufficient file permissions
Added support for the Emulators (emulators) game system
Added support for the Hartung Game Master (gmaster) game system
Added support for the LowRes NX Fantasy Console (lowresnx) game system
Added support for the Epoch Super Cassette Vision (scv) game system
(Windows) Added support for the Future Pinball (fpinball) game system
(Windows) Added support for the Visual Pinball (vpinball) game system
Added the SameBoy RetroArch core as an alternative emulator for the sgb system
Added an sgb (Nintendo Super Game Boy) platform to improve scraping when using ScreenScraper
Added MAME standalone as an alternative emulator for the amstradcpc, cdimono1 and x68000 systems
Added ares standalone as an alternative emulator for the n64dd system
Added ares [Benesse Pocket Challenge V2] standalone as an alternative emulator for the wonderswan system
Added the .sh file extension to the ags system on Unix and macOS and set the %STARTDIR% variable to the game directory
(Linux) Changed a lot of find rules so that emulator AppImages are always searched before Flatpaks
(Linux) Removed the AppImage systempath find rule entry for RetroArch
(Linux) Added "AppImage (Suspend ES-DE)" and "AppImage (Keep ES-DE running)" as alternative emulators for the desktop and windows system
(Linux) Added "AppImage" as an alternative emulator for the ports system
(Linux) Added the .AppImage file extension to the desktop, ports and windows systems
(Linux) Added support for the official Citra AppImage release
(Linux) Changed the PCSX2 AppImage find rule to pcsx2*.AppImage to cover for the constantly changing filenames for this package
(Windows) Replaced many unnecessary find rules with the ability to relocate the Emulators directory one level higher in the hierarchy
(Windows) Added pcsx2-qt.exe as the primary executable name for the PCSX2 emulator
(Windows) Added find rule entries for the xenia canary release
Added support for scraping the arduboy and ps4 systems using ScreenScraper
Improved resilience to buggy controller drivers which could previously crash the application (mostly relevant for macOS)
Removed the experimental status for the theme downloader
Simplified ApplicationUpdater by only using the release number when checking for updates
Added more error checking to ApplicationUpdater by checking for blank name, filename, url and md5 keys in latest_release.json
Removed the custom SDL patch for the AppImage builds that prevented the device's virtual keyboard from being automatically displayed
If the SDL library release is 2.28.0 or higher then the automatic popup of the device's virtual keyboard is now disabled
The SDL library version is now printed to es_log.txt on application startup
Added a separate es-pdf-convert binary to render PDF pages using Poppler (needed due to the restrictive GPL license for this library)
(Windows) A check is now performed on startup that OpenGL is actually supported by the GPU driver, to avoid crashes if it isn't
Added a setRawImage function to ImageComponent to load raw pixel data into textures (needed by PDFViewer)
Added the Poppler PDF rendering library as a dependency
Removed the unused graphics files resources/graphics/cartridge.svg and resources/graphics/folder.svg
Modified the resources/graphics/help/dpad_all.svg file to actually show all directions as available
Updated FFmpeg to 6.0, FreeType to 2.13.0, libgit2 to 1.6.4 and pugixml to 1.13 on Windows and macOS
Updated SDL to 2.28.1 on Windows, macOS and the Linux AppImage builds
(Windows) Updated curl to 8.1.2
(Windows) Changed all dependencies to not include version numbers in their directory names to simplify future library updates
Updated LunaSVG to commit f924651b85cac47dbe15f51a4aa320461fc1d07b to fix a GCC 13 build error
Updated the MAME index files to include ROMs up to MAME version 0.256
Bundled the May 2023 release of the Mozilla TLS/SSL certificates
Changed the default OpenGL version from 4.6 to 3.3 when building for RetroDECK
Bug fixes
(Windows) The log output time stamp was missing in es_log.txt when built using MinGW
The scraper auto-retry functionality was triggered when scraping manually
There was a small memory leak in GuiScraperMenu related to the retry sliders
TextureResource::initFromPixels() was not setting the texture source size correctly
The fallback to argv[0] in FileSystemUtil::setExePath() was not working correctly
--2.0.1--
Catch-up release which implements some things that didn't make it into 2.0.0. Most notable is an experimental theme downloader using Git (or libgit2 to be more precise). Other changes include some additional theme engine functionality and support for the Sinclair ZX Spectrum Next game system. A number of bugs have also been fixed and the SDL library has been updated to 2.26.5 which fixes a regression on macOS which made some wireless controllers unusable.
Detailed list of changes
Added an experimental theme downloader
Added a setting to set the user theme directory to an arbitrary location (not configurable via the GUI)
Added scrollable text container support to the system view
Added six new theme properties for sizing and placement of the helpsystem when a menu is open
Added a scaleInwards property to the grid element to contain scaling within the element boundaries
Added a new gameOverridePath property to the image element to enable per-game static image overrides
Added support for using the systemNameSuffix property together with scrollable text containers
Added support for the Sinclair ZX Spectrum Next (zxnext) game system
Added support for the Sinclair Spectrum ZX emulator ZEsarUX
Added support for the Sinclair Spectrum ZX Next emulator #CSpect on Linux and Windows
Added the PicoDrive RetroArch core as an alternative emulator for the gamegear system
Added the LRPS2 RetroArch core as the default emulator for the ps2 system on Linux and Windows
(macOS) Added the Mupen64Plus-Next RetroArch core as the default emulator for the n64 and n64dd systems
Set the Neko Project II RetroArch core to start in the game directory as it created a config file in the ES-DE binary directory
Added "Shortcut or script" as an alternative emulator for the arcade and mame systems
(Unix) Added the .desktop and .sh file extensions to the arcade and mame systems
(macOS) Added the .app and .sh file extensions to the arcade and mame systems
(Windows) Added the .bat and .lnk file extensions to the arcade and mame systems
Added the .app file extensions to the nds system
Added the .7z and .zip file extensions to the 3do system
Changed the platform from pc to pcwindows for the desktop and kodi systems
(Linux) Dropped support for prebuilt RPM packages
Changed the color scheme names for the bundled Slate and Modern themes from "Dark mode" and "Light mode" to "Dark" and "Light"
Any theme directories with names ending with "disabled" (regardless of case) are now ignored
Updated SDL to 2.26.5 on Windows, macOS and the Linux AppImage builds
Added the libgit2 library as a dependency
Added support for changing the BusyComponent text dynamically
Added proper helpsystem handling to ComponentGrid for some previously unhandled horizontal grid layouts
Bug fixes
(Windows) Fixed a regression that made .bat and .lnk files with some special characters in the filename impossible to launch
Clearing or deleting a game could hang the application if the media files could not be deleted due to insufficient permissions
Using the cropSize property could lead to a crash under very rare circumstances
Multi-row text with blank lines that was not displayed in a scrollable container was sometimes not wrapped correctly
Fixed several potential container overflows in GuiTextEditKeyboardPopup that could lead to rare crashes when running on an ARM processor
Fixed a potential container overflow in ViewController that could lead to rare crashes when running on an ARM processor
(macOS) When opening the main menu an error message was logged about accessing a nonexistent ShowQuitMenu setting
The scissor box size in ScrollableContainer was sometimes not calculated correctly
FileSystemUtil::renameFile() did sometimes not provide a return value for whether it succeeded or not
--2.0.0--
The 2.0 release introduces multiple fundamental changes to the application, most notably a new theme engine which brings various new concepts. The traditional view styles (basic/detailed/video/grid) have been replaced with only system and gamelist views in addition to variants, which are essentially theme profiles. These are much more flexible than view styles and can be freely defined by the theme author. The new engine is also fully generalized and almost all theme elements can be used anywhere and in unlimited numbers. Many of these elements and properties are new additions as well.
Theme variants, color schemes, aspect ratios and transitions can now be defined by the theme author and are user-selectable from within the menu system. In addition to all this new theme functionality the application is still backward compatible with legacy theme sets.
The renderer has been modernized and rewritten and while still using OpenGL it's now fully shader-based instead of using a fixed function pipeline as was the case in previous releases. Tate mode (vertical screen orientation) support has been added including the ability to rotate screen contents within the application window. Rendering performance has been greatly improved in some areas such as post processing (used for video player scanline and blur shaders among other things). A new SVG rendering library named LunaSVG has been introduced which offers much better file compatibility than before, while doing it with better performance.
Overall application speed and performance has been greatly improved with faster startup times, less latency and lower CPU utilization. Many bugs have been fixed and multiple quality of life improvements have been made. Support for a lot more systems and standalone emulators has also been included with this release, see below for more details.
Detailed list of changes
Made fundamental changes to the application logic by removing most view styles and replacing them with a new theme variants concept
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 color schemes
Added theme support for defining and applying granular transition animation profiles
Added a new grid component that is usable in both the system and gamelist views
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
Renamed the default theme set from rbsimple-DE to Slate (slate-es-de)
Ported modern-DE to the new theme engine and renamed it to Modern (modern-es-de)
Added variant trigger (override) support to replicate the legacy theme engine automatic view style switching
Events are now parsed during startup which avoids issues with the OS thinking the application has hung when loading
Added an application updater that checks for new releases on startup (currently only provides notifications)
Replaced the NanoSVG library with LunaSVG for greatly improved SVG rendering capabilities
Added support for caching of SVG images
Added support for sizing SVG images arbitrarily (overriding the image aspect ratio by stretching and squashing)
Added support for 2x and 4x MSAA anti-aliasing (OpenGL renderer only)
(Windows) Made game launching more seamless by making the application window one pixel wider instead of one pixel less in height
gamelist.xml files are no longer loaded from the ROMs/system directories (although old behavior can be retained via an es_settings.xml option)
Added support for always grouping custom collections under the custom collections system regardless of theme set support
Added support for mixed-case custom collection names
Added a startup progress bar to the splash screen
Expanded the quick system select menu option from an on/off entry to a selection of different button combinations
Expanded the random system or game button from an on/off entry to a selection between "Games only", "Games and systems" or "Disabled"
Changed the order of the help system entries Y, X, B and A to instead be listed as A, B, X and Y
Changed the start button for the screensaver from "Back" to "X"
Changed the help system description for the "A" button in the gamelist view from "Launch" to "Select"
Changed the menu header for the gamelist options menu from "Options" to "Gamelist options"
Added support for the Emerson Arcadia 2001 (arcadia) game system
Added support for the Arduboy Miniature Game System (arduboy)
Added support for the Acorn Computers BBC Micro (bbcmicro) game system by adding the MAME standalone emulator
Added support for the Capcom Play System I, II and III (cps1, cps2 and cps3) game systems
Added support for the VTech CreatiVision (crvision) game system
Added support for the Tiger Electronics Game.com (gamecom) game system
Added support for the LCD Handheld Games (lcdgames) game system
Added support for the Sega Mega Drive (megadrivejp) game system (Japanese region)
Added support for the Casio PV-1000 (pv1000) game system
Added support for the Quake (quake) game system
Added support for the VTech V.Smile (vsmile) game system
Added support for the WASM-4 Fantasy Console (wasm4) game system
Added support for the Microsoft Windows (windows) game system
Added support for the Nintendo Wii U (wiiu) game system on Linux and macOS by adding the Cemu standalone emulator
Added support for the Infocom Z-machine (zmachine) game system by adding the Gargoyle standalone emulator
Added support for the Ava release of Ryujinx for the switch system on Linux and Windows
(macOS) Added support for the Nintendo Switch (switch) game system by adding the Ryujinx standalone emulator
Added ares standalone as an alternative emulator for many systems
Added MAME standalone as the default emulator for the macintosh system (Mac SE and Mac Plus diskette images)
Added MAME standalone as the default emulator for the gameandwatch system
Added Stella standalone as an alternative emulator for the atari2600 system
Added Gopher2600 standalone as an alternative emulator for the atari2600 system on Unix and Windows
Added PrBoom+ standalone as an alternative emulator for the doom system
Added openMSX standalone as an alternative emulator for the colecovision, msx, msx1, msx2 and msxturbor systems
Added SameBoy standalone as an alternative emulator for the gb and gbc systems
Added Gearboy standalone as an alternative emulator for the gb and gbc systems on Unix and Windows
Added puNES standalone as an alternative emulator for the famicom and nes systems on Unix and Windows
Added Hatari standalone as an alternative emulator for the atarist system
Added Fuse standalone as an alternative emulator for the zxspectrum system
(Linux) Added support for the Sega Model 3 (model3) game system by adding the Supermodel standalone emulator
(Linux) Added Supermodel standalone as an alternative emulator for the arcade and mame systems
(Linux) Added support for the mGBA Qt and Snes9x GTK standalone emulators
(Linux) Added support for the official xemu AppImage release
(Linux) Added support for the AppImage release of Flycast
(Linux) Added .esprefix file injections to the Dolphin, PrimeHack, Triforce, Yuzu and xemu standalone emulators
Added support for the Sega Model 2 (model2) game system on Linux on macOS by adding the MAME - Current RetroArch core
Added MAME standalone as an alternative emulator for the model2 system
(Windows) Added the MAME - Current RetroArch core as an alternative emulator for the model2 system
(Windows) Added a -force-feedback option and an %INJECT% variable to the Supermodel emulator for the arcade, mame and model3 systems
Added a %GAMEDIR% variable to the -rompath option for all MAME standalone entries to allow launching games from subdirectories
Added Triforce (Dolphin fork) standalone as an alternative emulator for the gc system on Linux and Windows
Added simple64 standalone as an alternative emulator for the n64 system on Linux and Windows
Added Rosalie's Mupen GUI standalone as an alternative emulator for the n64 and n64dd systems on Linux and Windows
Added VICE standalone as an alternative emulator for the c64 (x64sc only) and vic20 systems
(Windows) Added PrimeHack as an alternative emulator for the gc and wii systems
(Windows) Added Project64 as an alternative emulator for the n64 system
(Windows) Added SSF as an alternative emulator for the saturn and saturnjp systems
(Windows) Changed the binary for emulator Citra from citra.exe to citra-qt.exe as the command line binary is broken on this OS
Added support for the mugen system on Linux and macOS using the Ikemen GO game engine
Added CPCemu standalone as an alternative emulator for the amstradcpc system
Added MAME standalone as an alternative emulator for the gx4000 system
Added MAME standalone as an alternative emulator for the atarijaguar system
(Windows) Added BigPEmu standalone as an alternative emulator for the atarijaguar and atarijaguarcd systems
Reverted the atarijaguarcd system to placeholder status on Unix and macOS as no emulators including Virtual Jaguar run these games properly
Added the pcwindows platform to the ports system to improve scraping
Added the .cdi and .cue file extensions to the atarijaguar and atarijaguarcd systems
Added the . (dot) file extension to the xbox360 system on Windows to support extensionless XBLA games
Added the .d64 file extension to the n64 and n64dd systems
Added the .car and .rom file extensions to the a5200 system
Added the .car file extension to the atari800 system
Added the .bin file extension to the gx4000 system
Added the .dsk file extension to the macintosh system
Added the .m3u file extension to the pc98 and pcfx systems
Added the .minipsf file extension to the psx system
Removed the .7z and .zip file extensions from the 3do, neogeocd, neogeocdjp and switch systems
Removed the .ccd and .cue file extensions from the fbneo system
Removed the .ccd, .cue and .iso file extensions from the neogeo system
Added the FinalBurn Neo RetroArch core as an alternative emulator for the neogeocd and neogeocdjp systems
Added MAME standalone as an alternative emulator for the neogeo, neogeocd and neogeocdjp systems
(Linux) Changed to find rule wildcard matching for the RetroArch, Basilisk II, DuckStation and SheepShaver AppImages
(Linux) Added FinalBurn Neo standalone as an alternative emulator for the arcade, cps, fbneo, mame, neogeo, neogeocd and neogeocdjp systems
(Windows) Added FinalBurn Neo standalone as an alternative emulator for the arcade, cps, fbneo, mame and neogeo system
Set DOSBox-X and DOSBox Staging to start in the game directory so per-game dosbox.conf files can be used
Changed the fullname for the 3do system from "3DO" to "3DO Interactive Multiplayer"
Changed the fullname for the atomiswave system from "Atomiswave" to "Sammy Corporation Atomiswave"
Changed the fullname for the bbcmicro system from "BBC Micro" to "Acorn Computers BBC Micro"
Changed the fullname for the colecovision system from "ColecoVision" to "Coleco ColecoVision"
Changed the fullname for the dragon32 system from "Dragon 32" to "Dragon Data Dragon 32"
Changed the fullname for the samcoupe system from "SAM Coupé" to "MGT SAM Coupé"
Changed the fullname for the uzebox system from "Uzebox" to "Uzebox Open Source Console"
Changed the fullname for the vectrex system from "Vectrex" to "Smith Engineering Vectrex"
(macOS) Added an additional find rule entry for DOSBox-X as the binary name has been changed
(Linux) Added Flatpak support for Mednafen using the Mednaffe package
(Linux) Added Flatpak support for Solarus using the Solarus Launcher package
(Linux) Added a --fullscreen flag to the lightspark emulator for the flash game system
Added support for folder links, used for launching game files inside folders without having to enter them
Added a folder badge, including a folder link overlay in case a link has been configured
Added a collection badge, shown when editing custom collections to indicate that a game is part of the collection
Added the ability to color shift badge icons, badge controller icons and badge folder link icons
Added the ability to center-align badges
Adjusted the splash screen sizing to be more consistent across various screen aspect ratios
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 (4.6 on the Steam Deck) and OpenGL ES 3.0 respectively
Changed the renderer pixel format from RGBA to BGRA
Changed to premultiplied alpha for images as well as for GIF and Lottie animations, leading to a significant speed increase
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 ES: Added an OpenGLVersion setting for choosing between OpenGL ES 3.0, 3.1 and 3.2 (has to be manually set in es_settings.xml)
Greatly improved the performance of shader post-processing such as scanlines and blur rendering
Greatly improved application startup speed by avoiding a lot of unnecessary SVG rasterizations
Implemented dynamic texture allocation to the font code to reduce memory usage and avoid missing glyphs
Added support for changing the saturation for font textures
Large optimizations to the text wrapping code (generallly 300-400% faster)
Added support for linear interpolation for font texture magnifications
Added support for texture mipmapping with trilinear filtering
Added on-demand texture loading to the carousel
Improved the renderer scaling accuracy
Added new tileSize, tileHorizontalAlignment and tileVerticalAlignment properties to the image element for better tiling support
Added support for substituting the emulator binary in staticpath rules with an explicit command (useful for launching specific binaries in Flatpaks)
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, color scheme, aspect ratio and transitions for newer theme sets
Removed the "Preload gamelists on startup" setting
Removed the "Play videos immediately (override theme)" setting
Renamed the sound menu option "Play audio for videos in the gamelist view" to "Play audio for gamelist and system view videos"
Added an "Ignore keyboard input" option to the input device settings menu
(Unix) Set the "Disable desktop composition" option as disabled by default as it caused issues with some GPU drivers
(macOS) Enabled startup animations which were previously disabled specifically for this operating system
The media viewer now always loads all images upfront to avoid audio stutter when browsing the files
Added support for defining which types of game media to use for all image elements (and also for the video component static image)
Added a legacy (backward compatibility) mode for still supporting older RetroPie EmulationStation themes
Added theme support for Lottie animations (vector graphics)
Added theme support for GIF animations
Added a GameSelectorComponent for displaying game media and metadata in the system view
Added support to the system view for displaying videos, Lottie animations, GIF animations, date/time components and game ratings
Replaced the forceUppercase theme property with a more versatile letterCase property (forceUppercase is retained for legacy theme compatibility)
Added two letterCaseCollections and letterCaseGroupedCollections properties to control the letter case more specifically for the primary components
Added support for overriding the default "unknown" values for the datetime and text elements (in case of missing game metadata)
Renamed the textlist property selectorOffsetY to selectorVerticalOffset
Added a selectorHorizontalOffset textlist property to control the selector's relative horizontal position
Added a selectedSecondaryColor property to the textlist to highlight folder entries in the gamelist view with a different color than file entries
Added theme support for setting the textlist indicators to symbols, ascii or none
Added theme support for setting the textlist custom collection indicators to symbols or ascii
Removed the "Use plain ASCII for special gamelist characters" menu option as it's now theme-controlled
Removed the "Enable menu scroll indicators" menu option
Removed the "Show system names in collections" menu option
Added a menu option to retain extra MAME name information (region, version/revision, license, release date etc.) for unscraped game names
Added theme support for appending system names to game names in collection systems
Changed the badges default lines property value from 2 to 3
Made it possible to set any text element as a scrollable container using either metadata values or literal strings
Added support for defining the scrollable container speed, start delay and reset delay from the theme configuration
Added support for arbitrary aspect ratios for RatingComponent images and also added an overlay property
Added theme support for defining the opacity for most element types
Added theme support for defining relative brightness for images, videos and animations
Added theme support for defining color saturation for images, videos and animations
Added theme support for defining the video fade-in time
Added theme support for enabling and disabling video pillarboxes and scanline rendering
Added theme support for defining the threshold for when pillarboxes should be applied to a video
Added theme support for enabling or disabling audio playback for videos
Added theme support for color shifting videos (and the static image)
Added theme support for setting separate textColorDimmed and iconColorDimmed properties for the system and gamelist views
Added a new cropSize property to the image and video elements to crop images and videos to the defined size
Added two new flipHorizontal and flipVertical properties to the image element
Added support for nesting theme variables
Added support for defining multiple theme "variables" tags in the same XML file
Added support for overriding/redefining variables
When encountering missing theme include files defined by variables, a debug message is now printed instead of throwing an error
When encountering missing theme files defined by element path properties, a debug message is now printed instead of a warning
Added two DebugSkipMissingThemeFiles and DebugSkipMissingThemeFilesCustomCollections settings (which need to be manually set in es_settings.xml)
Prevented loading of theme sets using the "resolution" tag introduced by RetroPie in 2020 as it's a very bad idea to use this logic
Added support for vertical abbreviations of multiline text entries
Disabled the pillarboxes and scanline rendering menu options when using a non-legacy theme set
Improved theme element placement by replacing the "alignment" and "logoAlignment" properties with specific horizontal and vertical properties
Made it possible to use almost all game metadata field when theming text elements
Made it possible to set the image interpolation method (nearest neighbor or linear filtering) per image from the theme configuration
Changed the helpsystem properties entrySpacing and iconTextSpacing from fixed pixel values to relative values
Added support for using unsigned integers for theme properties
Added a metadataElement theme property to the image, video, animation and text element types to control fading and hiding of arbitrary elements
Added the rendering of a green rectangle around the CarouselComponent when pressing Ctrl+i while in debug mode
Changed the color of the rectangle from blue to green for TextListComponent when pressing Ctrl+t while in debug mode
Added scraper settings for defining a retry count and a retry timer in case of errors
Added scraper support for displaying the returned platform if it does not match the game platform, or if multiple platforms are defined for a system
Added scraping of fan art and updated the media viewer to display these images
Added scraping of box back covers when using TheGamesDB
If a wheel (marquee) image on ScreenScraper falls back to another region, then the wheel-hd image is now used instead if it matches the set region
Removed scraping of arcade controller information using ScreenScraper as they have ruined this functionality
Newline characters are now removed from game names when scraping with ScreenScraper (these occur in some very rare instances)
Hex-encoded ampersand characters in game names are now converted correctly when scraping with ScreenScraper
Added a ScreenScraper-specific option to remove dots from game name searches when using the multi-scraper in automatic mode
Moved the option "Scrape actual folders" higher up in the scraper options menu
Added the ability to set a manual sortname specifically for custom collections using the metadata editor
When scraping in semi-automatic mode, horizontal scrolling of long game names are no longer reset when automatically selecting the result
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 support for dimming components (fade to black)
Added support for rotating the application screen contents 0, 90, 180 or 270 degrees
Added support for offsetting the screen contents within the application window
Added support for running the application at a lower resolution in fullscreen padded mode
Added logging of the display refresh rate on startup
Made many improvements to GUI sizing and positioning when running in vertical screen resolutions
The application startup can now be aborted via an OS signal or using the configured keyboard quit shortcut
Improved the behavior and consistency for the virtual keyboard when using non-standard keyboard mappings
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
Added new theme system variables for differentiating between collections and non-collection systems
Added shader support for performing BGRA to RGBA color conversion
Added opacity support to the scanline shader
Added the rlottie library as a Git subtree
Updated to build correctly with FFmpeg 5.1
Updated FFmpeg to 5.1.2, FreeType to 2.12.1 and pugixml to 1.12.1 on Windows and macOS
Updated SDL to 2.26.3 on Windows, macOS and the Linux AppImage builds
Updated curl to 7.86.0 on Windows
Added a workaround for playing broken video files with invalid PTS values
Refactored the rendering code from a shared namespace into proper classes
Removed the deprecated OpenGL ES 1.0 renderer
Increased the maximum VRAM limit from 1024 MiB to 2048 MiB
Increased the minimum VRAM limit from 80 MiB to 128 MiB
Increased the default VRAM limit from 256 MiB to 512 MiB
Increased the default VRAM limit for the Raspberry Pi from 184 MiB to 192 MiB
(Unix) Removed the RetroArch core directory for the NixOS and nixpkgs repository
The .emulationstation/gamelists directory is now created on application startup instead of when scraping for the first time
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
When building as an AppImage a current SDL library release is now built and bundled instead of including the OS-supplied version
When building as an AppImage the "data" directory (e.g. /usr/share/emulationstation) is now excluded when looking for resources and themes
Added libGLdispatch.so.0 to the AppImage to fix a crash introduced by a Mesa library update
Updated the CImg library to commit 4d061dcd67c08e9a36a01875e78b53ee86501dd7
Large refactoring to improve thread safety and singleton pattern usage
Made the logging thread safe
(Windows) Changed many log entries to use backslashes instead of forward slashes as directory separators
Added the build date to to main menu for alpha, beta and dev builds
Added a left trigger + right trigger help system icon and removed the deprecated hotkey icon
Added PlayStation 1/2/3 and Switch Pro controller type support
Renamed some SNES controller button assets to be more intuitive
(slate-es-de) Recreated the Nintendo GameCube controller as the old graphics had some issues and was not accurate
Added Nintendo GameCube, Sega Master System and Sega Dreamcast controller badge icons
Added an arcade twin stick controller badge icon
Moved all Platform functions to the utility namespace instead of using the global namespace
Implemented proper XML attribute support in ThemeData that eliminates the risk of name collisions
Added size restrictions to images and fonts so incorrect theme configuration would not lead to crashes or excessive memory utilization
Made animations on the carousel better looking by using a new non-linear interpolation method
Migrated the carousel code from SystemView to a separate CarouselComponent
Changed the carousel properties to be more generic by renaming "logo" to "item", e.g. itemSize, maxItemCount etc.
Added the properties "itemsBeforeCenter" and "itemsAfterCenter" to define entries for carousels of the wheel type
Added support for horizontal wheel carousels
Added two wheelHorizontalAlignment and wheelVerticalAlignment properties for aligning wheel carousels within the overall element area
Added reflections support to the carousel
Added a new itemAxisHorizontal property to the carousel to keep wheel items horizontal at all times
Added a new imageFit property to the carousel to allow items to be stretched/squashed or cropped to the defined item size
Added carousel theme support for setting the opacity, saturation and dimming for unfocused items
Added carousel theme support for applying image color shifts
Added carousel theme support for defining image brightness
Added carousel theme support for defining image saturation
Added carousel theme support for setting item transitions to "slide" or "instant"
Added carousel theme support for enabling faster scrolling speed with a third scroll tier
Added carousel theme support for controlling item stacking for overlapping items
Added carousel theme support for defining margins around the currently selected item
Added carousel theme support for rotating items around their own axis (not supported for wheel carousels)
Added carousel theme support for color shifting the selected item
Added carousel theme support for offsetting items to achieve a diagonal layout
Added a fadeAbovePrimary property to control whether elements above the system view carousel and textlist should be rendered during fade transitions
Removed support for the thumbnail game media type
Changed all occurances of "GameList" to "Gamelist" throughout the codebase
Removed a huge amount of unnecessary Window* function parameters throughout the codebase
Removed a lot of unnecessary applyTheme() calls when updating help prompts
Removed the last remnants of the PowerSaver
Removed the RetroPie ES sizing bug replication from TextListComponent for non-legacy theme sets
Added checks for nonexistent navigation sounds in the theme configuration with fallback to the default sounds
Changed the opacity data type and functions from unsigned char to float throughout the codebase
Refactored the six gamelist classes into two new classes; GamelistBase and GamelistView
Rewrote the gamelist logic to handle an arbitrary amount of components per type and split the legacy code into a separate file
Renamed Gamelist.cpp to GamelistFileParser.cpp and moved it to its own namespace instead of using the global namespace
Renamed GuiGameScraper.cpp to GuiScraperSingle.cpp
Renamed SystemScreensaver.cpp to Screensaver.cpp
Refactored RatingComponent to improve rendering accuracy and performance
Moved UIModeController.cpp from the es-app/views directory to es-app
Set the clang-format option SpaceBeforeCpp11BracedList to true and reformatted the codebase
Added the clang-format option AllowShortEnumsOnASingleLine and set it to false
Removed some unnecessary typedefs and replaced the remaining ones with the more modern "using" keyword
Greatly simplified the video controls code (play/stop/pause etc.)
Removed the deprecated VideoVlcComponent
Removed the deprecated tools/update_theme_formatversion.sh script
Lots of general code cleanup and refactoring
(Windows) Added error handling to StringUtil::stringToWideString() and StringUtil::wideStringToString() to perform an emergency shutdown if needed
Updated the MAME index files to include ROMs up to MAME version 0.251
Added a program release number in addition to the version number
Changed tools/create_AppImage.sh to not include version information in the AppImage filename
Updated and improved the theming documentation
Bug fixes
Multiple levels of symlinking in the ROMs directory tree could crash the application on startup
Adding a dot (.) to the es_systems.xml extension tag (to setup extensionless entries) led to a crash if the system contained folders
Enabling collections from the Game Collection Settings menu could crash the application in some rare cases
There was a use after free issue in the multi-scraper which could in theory crash the application
Running with the --force-input-config command line option and aborting the input configuration would lead to a black screen and eventually a crash
Parsing of .desktop files on Unix did not properly handle escaping of % characters which made game launching fail for some RPCS3 games
For the cps system, MAME standalone was configured with the wrong system directory for the -rompath option, pointing to "arcade" instead of "cps"
Invalid ScreenScraper game entries were sometimes not filtered out from server responses
During some menu operations that reloaded the gamelist view, the cached background could miss some components as they were not rendered in time
Text wrapping did not work correctly for text that typically does not contain spaces, like Japanese
Changing some values using the metadata editor could lead to an incorrect sort order if the changes were done from within a grouped custom collection
Changing the setting "Group unthemed custom collections" could lead to incorrect custom collections sorting under some circumstances
For gamelists which mixed files and folders, the folder sorting was sometimes incorrect
Incorrect folder paths were displayed in the metadata editor if the setting "Only show ROMs from gamelist.xml files" was enabled
Games located in subdirectories were not added back to custom collections when disabling the "Exclude from game counter" metadata option
Enabling and then disabling the "Exclude from game counter" metadata option would remove a game from all currently disabled custom collections
Navigation sounds for the trigger buttons would play when repeatedly pressed at the start or end of textlists
Slide and fade transitions would sometimes stop working after changing theme sets
Using fade transitions, when holding a direction button to scroll the system view carousel, the key repeat would cause an unwanted background rendering
Textlist entries would sometimes scroll horizontally even though they fit inside the element width
A star was included in the quick selector for gamelists that had a mix of files and folders but where only folders were marked as favorites
Custom collections editing mode did not end when switching UI modes
Editing a folder using the metadata editor added any new values to the filter index, even though it shouldn't be possible to filter folders directly
There were multiple issues with filtering games inside folders (too many games filtered, inconsistent behavior etc.)
The outermost logos would sometimes glitch out during carousel transitions
Horizontal and vertical gradients were mixed up (showing the opposite gradient type if set in a theme)
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
The rating icons would not fit into the designated space in the scraper GUI when running at some vertically oriented screen resolutions
The game description would start to scroll too late when running the multi-scraper in semi-automatic mode
If setting an origin other than 0.5 for a video with pillarboxes enabled, the video would not get centered on the black rectangle
The video player output frame width was not set correctly which made some videos render as garbled when using FFmpeg 5.1 and later
If a gamelist scroll fade-in animation was playing when opening a menu, it would continue to play after closing the menu
The gamelist quick list scrolling overlay would not disappear as intended under some circumstances
Using the trigger buttons to jump to the start or end of a gamelist did not reset any currently held navigation buttons
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)
Adding collections or changing collection settings could sometime lead to the gamelist not getting rendered until navigating away from the current system
The tile property for the image element did not work correctly with SVG images
Defining an itemScale (logoScale) property lower than 1.0 for the carousel did not work correctly
Carousel text did not get scaled/multiplied correctly with the itemScale property (bug retained for legacy themes for maximum backward compatibility)
Letters would sometimes get rendered with ugly edge artifacts, visible when scaling text on the carousel
Text opacity did not work correctly in some places, such as for the help prompts
ScrollableContainer faded semi-transparent text to fully opaque when resetting
ScrollableContainer faded in the background text color in addition to the text color when resetting
Text elements that had an opacity set to lower than FF via the color tag were faded in during gamelist scrolling
The help system was offset by the entrySpacing property width when right-aligned using an X origin value of 1
The help system was rendered on top of menus if placed at such a location on the screen
The help system "A" button was incorrectly shown as "Apply" instead of "Newline" when using the virtual keyboard with multi-line input fields
Theme sets were not always sorted correctly (as seen when mixing uppercase and lowercase letters in theme names)
The SliderComponent knob was not consistently positioned
The device text flickered in GuiDetectDevice when configuring a controller
The selector bar was not aligned correctly during menu scale-up animations
The bottom menu separator bar was not getting rendered when running at really low resolutions like 320x240
Doing a manual reload using Ctrl+r in debug mode would sometimes not update modified image files
Abbreviations of long words in multiline text entries sometimes exceeded the designated text area
Navigation sounds would sometimes not play when browsing game media in the media viewer
When defining the same sound file for multiple navigation sounds in the theme configuration an error was logged to es_log.txt on theme change
The text debug overlay had the wrong size for scrollable containers
The textlist debug overlay would sometimes get positioned incorrectly
StringUtil::delimitedStringToVector could return empty elements
(Windows) File paths would get escaped with quotation marks even if they did not contain any spaces
(Windows) The emulator binary path would sometimes not get escaped correctly in es_log.txt on game launch
The .chd and .rp9 file extensions were missing for the amigacd32 system on macOS and Windows
--1.2.6--
This release enables a lot of systems by adding new platforms altogether and by including emulator configuration for previous placeholder entries. A number of additional standalone emulators have been added as well. The newly released PCSX2 Qt standalone emulator has replaced the old PCSX2 release which has been designated a legacy emulator. Connection timeout support has also been added to the scraper which among other things makes it possible to continue scraping after resuming a computer that went to sleep when the scraper was running.
Detailed list of changes
Added experimental support for Vita3K for the psvita system on Unix and Windows
Added support for the Fujitsu FM Towns (fmtowns) game system on Unix and Windows
Added support for the Adobe Flash (flash) game system
Added support for the EasyRPG game engine (easyrpg) game system
Added support for the Nintendo Super Game Boy (sgb) game system
Added support for the Creatronic Mega Duck (megaduck) game system
Added support for the Watara Supervision (supervision) game system
Added support for the M.U.G.E.N Game Engine (mugen) game system on Windows
Added emulator configuration for the apple2 system
Added emulator configuration for the apple2gs system
Added emulator configuration for the macintosh system
Added emulator configuration for the trs-80 system
Added emulator configuration for the coco system
Added emulator configuration for the dragon32 system
Added emulator configuration for the tanodragon system
Added emulator configuration for the gx4000 system
Added emulator configuration for the solarus system
Added emulator configuration for the tic80 system
Added emulator configuration for the ags system
Renamed the Nintendo 64DD system from 64dd to n64dd and removed the Mupen64Plus standalone emulator
Replaced the invalid SimCoupé RetroArch core with SimCoupé standalone for the samcoupe system
Added a find rule for the Flatpak release of MAME
Added Mednafen standalone as an alternative emulator for many systems
Changed the emulator PCSX2 standalone to PCSX2 Legacy standalone
Changed the emulator PCSX2 Qt standalone to PCSX2 standalone
(Windows) Removed the emulator PCSX2 wxWidgets standalone
Renamed the ROM directory for the ColecoVision system from coleco to colecovision
Added ScummVM standalone as an alternative emulator for the scummvm system
Added Cxbx-Reloaded standalone as an alternative emulator for the xbox system on Windows
Added Atari800 standalone as an alternative emulator for the a5200 system
Added the Kronos RetroArch core as an alternative emulator for the arcade and mame systems
Added KEmulator standalone as an alternative emulator for the j2me system on Windows
Added Model 2 Emulator [Suspend ES-DE] as an alternative emulator for the arcade, mame and model2 systems on Windows
Added "Shortcut or script" as an alternative emulator for the doom system
Added the Boom 3 and Boom 3 xp RetroArch cores as alternative emulators for the doom system on Unix and Windows
Added support for the repository-installed PPSSPP standalone (SDL and Qt) on Unix
Added the .chd and .rp9 file extensions to the amiga, amiga1200, amiga600, amigacd32 and cdtv systems
Added the .fds file extension to the famicom and nes systems
Added the .32x file extension to the genesis and megadrive systems
Added the .json file extension to the gc and wii systems
Added the .ndd file extension to the n64 and n64dd systems
Added find rule entries for Valve Steam to simplify the setup of the RetroArch Steam release
Added scraper support for the dragon32 platform
Added a %GAMEENTRYDIR% variable to be used with the %STARTDIR% variable (required by EasyRPG Player standalone)
Added a %FILENAME% variable to extract the filename including the extension when used in es_systems.xml
Added connection and transfer timeout settings to the scraper (not configurable via the GUI)
Added an es_log.txt entry when the "Only show ROMs from gamelist.xml files" setting is enabled
Passing the --ignore-gamelist command line option now immediately disables the ParseGamelistOnly setting
(Windows) Added code signing to both the application binary and installer
(macOS) Improved Apple compliance for the Info.plist file
(rbsimple-DE) Added console graphics for the psvita system
Bug fixes
The IgnoreGamelist setting was saved to es_settings.xml although it shouldn't
(modern-DE) The trs-80 system had graphics and logo for the wrong computer
--1.2.5--
This is a maintenance release. Shortcut support has been added on Unix and macOS which greatly simplifies setup of applications as well as games for platforms like ports, steam, lutris and ps3. A couple of new systems have been added, most notably PICO-8, and RetroPie EmulationStation theme compatibility has been improved. As well the default keyboard quit shortcut has been changed from F4 to the operating system defaults (Alt + F4 on Unix and Windows and Command + Q on macOS). Some bugs were also fixed and some missing graphic assets were added to the default rbsimple-DE theme set.
Detailed list of changes
Added an %ENABLESHORTCUTS% variable to support launching of .desktop files on Unix and apps and aliases on macOS
Added support for launching .desktop files to the desktop, epic, kodi, lutris, ports and steam systems on Unix
Added support for launching .app directories and alias files to the desktop, epic, kodi, ports and steam systems on macOS
Setup two emulator entries for the desktop system, "Suspend ES-DE" and "Keep ES-DE running" to control the launch behavior
Changed the ps3 system to use shortcuts by default and created an alternative emulator entry for the old directory approach
Added the .lnk file extension to the epic system on Windows
Added support for the PICO-8 (pico8) game system
Added support for the Capcom Play System (cps) game system
Added support for the Sega Model 2 and 3 (model2 and model3) game systems on Windows
Added configuration for the Tangerine Computer Systems Oric (oric) system on Unix and Windows
Added configuration for the Texas Instruments TI-99 (ti99) system on Unix and Windows
Added configuration for the Google Android (android) system on Windows
(Windows) Changed the emulator directory for Model 2 Emulator from Model2 to m2emulator
(Windows) Changed the emulator find rule name for the Model 2 Emulator from MODEL2 to M2EMULATOR
Added support for asterisks/wildcards for emulator name matching, usable in both es_find_rules.xml and es_systems.xml
(Linux) Changed to find rule wildcard matching for the AppImages for Dolphin, mGBA, Play!, RPCS3, Xemu and Yuzu
(Windows) Changed to find rule wildcard matching for the PCSX2-QT and PCSX2-WXWIDGETS entries to support the AVX2 releases of PCSX2
Added a ScreenScraper option to fall back to additional regions to allow scraping of country-specific games and unofficial releases
Changed the sorting in the Alternative emulators interface to use short system names instead of full system names
Added scraper support for the ti99 platform
Added TheGamesDB scraper support for the oric platform
Added the pcwindows platform to the lutris system on Unix to improve scraping
Renamed the "Exit button combo" menu option to "Keyboard quit shortcut"
Changed the default quit shortcut from F4 to Alt + F4 on Windows and Unix
Changed the default quit shortcut from F4 to Command + Q on macOS
Added Ctrl + Q as a user-selectable quit shortcut
Added support for placing a noload.txt file in the root of a system/ROM directory to keep it from getting loaded
(Windows) Added support for creating a portable installation in the root of a device, such as E: or F:
Increased the window width slightly for the Alternative emulators interface when displaying long system names
Added size restrictions to the "size" and "maxSize" theme properties for the image and video elements
Changed to a new API key for TheGamesDB
(Linux) Changed the manually downloaded Redream emulator location from ~/Applications/redream to ~/Applications/redream/redream
(rbsimple-DE) Added console and controller graphics for the wiiu system
(rbsimple-DE) Added controller graphics for the saturn, saturnjp and xbox systems
(modern-DE) Replaced the carousel image for the desktop system
Bug fixes
When running ES-DE in the background, quitting a game or application using Alt + F4 sometimes made ES-DE quit as well
Thumbnails were not included in theme sets that used them for the Detailed view style (affected RetroPie ES compatibility)
Game images were not included in theme sets that used them for the Video view style (affected RetroPie ES compatibility)
Themes with large pixelated fonts sometimes displayed too many textlist rows (affected RetroPie ES compatibility)
When entering the text edit field for the virtual keyboard, a navigation key repeat would sometimes continue to run
The menu scroll indicators and title sometimes overlapped (e.g. seen in the Alternative emulators interface)
There was a small rounding error that caused a minimal distortion when rendering menu titles
(macOS) The platform tag was missing for the NEC TurboGrafx-CD (tg-cd) system, leading to inaccurate scraping
--1.2.4--
This is a maintenance release. Support has been added for multiple systems such as Daphne (arcade LaserDisc) and OpenBOR. A number of default emulators have been changed, some standalone emulators have been added and numerous bugs have been fixed. Some low-level functionality has also been implemented to enable more advanced emulator launch options and quite a number of missing theme assets have been created for the default rbsimple-DE theme.
Detailed list of changes
Added configuration for the Daphne arcade LaserDisc system using the Hypseus Singe emulator
Added configuration for the OpenBOR game engine on Linux and Windows
Added emulator configuration for the astrocde (Bally Astrocade) and cdtv systems
Changed the default emulator for the famicom, fds and nes systems from Nestopia UE to Mesen
Changed the default emulator for the gb and gbc systems from SameBoy to Gambatte
Changed the default emulator for the gamegear and sg-1000 systems from Gearsystem to Genesis Plus GX
Changed the default emulator for the dos and pc systems from DOSBox-Core to DOSBox-Pure
Changed the default emulator for the mame system from MAME 2003-Plus to MAME - Current
Removed the --escape-exit command line option for the PPSSPP standalone emulator as it caused issues for some users
Added experimental support for PCSX2 Qt and PCSX2 wxWidgets for the ps2 system on Windows
Added AetherSX2 standalone as an alternative emulator for the ps2 system on macOS
Added DOSBox-X standalone as an alternative emulator for the dos and pc systems
Added bsnes standalone as an alternative emulator for the satellaview, sfc, snes, snesna and sufami systems
Added Snes9x standalone as an alternative emulator for the satellaview and sufami systems
Added Atari800 standalone as an alternative emulator for the atarixe system
Added the Flycast RetroArch core and Flycast standalone as alternative emulators for the arcade and mame systems
Added the Gearcoleco RetroArch core as an alternative emulator for the colecovision system
Added Nestopia UE standalone as an alternative emulator for the famicom, fds and nes systems on Unix
Added DeSmuME standalone as an alternative emulator for the nds system on Unix
Added Model 2 Emulator standalone as an alternative emulator for the arcade and mame systems on Windows
Added Supermodel standalone as an alternative emulator for the arcade and mame systems on Windows
Added the file extensions .ciso, .dump, .gz, .m3u, .mdf, .img and .nrg to the ps2 system
Removed the .chd file extension from the naomi, naomigd and atomiswave systems
Removed the .bin file extension from the pcengine, pcenginecd, tg16 and tg-cd systems
Added the "citra" binary for Citra standalone on Linux (making it possible to use the repository or AUR release)
Removed the -full-screen command line option for the xemu emulator
Set %STARTDIR%=%EMUDIR% for the xenia (Xbox 360) emulator
Added scraper support for the astrocde platform
Added scraper support for the arcadia (Emerson Arcadia 2001) and crvision (VTech CreatiVision) platforms
Changed the platform to arcade for the atomiswave, naomi and naomigd systems to improve scraping
Added TheGamesDB scraper support for the atomiswave and naomi platforms
Added a new pcwindows platform for scraping PC (Windows) games
Changed the steam platform internally to use the ScreenScraper "PC Windows" platform ID
Changed the platform to pcwindows for the epic system
Enabled screensaver controls when running in Kid UI mode
Added custom event script triggers on application startup, screensaver start and screensaver end
Added a --create-system-dirs command line option to generate the game system directories
Added an %INJECT% variable for injecting launch arguments from game config files (required by Hypseus Singe)
Added a %GAMEDIR% variable that expands to the game directory (required by Hypseus Singe)
Made the %GAMEDIR% variable usable with the %STARTDIR% variable (required by OpenBOR)
(Windows) Set %RUNINBACKGROUND% when launching MAME standalone as this emulator may otherwise hang on exit
(Windows) Added an %ESCAPESPECIALS% variable that escapes the special characters &()^=;,
(Windows) Added %ESCAPESPECIALS% to the desktop, epic, kodi, ports and steam systems
(rbsimple-DE) Added console and controller graphics for the ps2 and ps3 systems
(rbsimple-DE) Added console graphics for the n3ds, saturn, saturnjp, switch and xbox360 systems
Added an Xbox Kinect controller badge icon
Swapped the colors of the Joy-Con controller badge icons
(macOS) Categorized the application as a game so it shows up in the Launchpad games section
Replaced the explicit shell commands in es_systems.xml with %EMULATOR_OS-SHELL% find rules
Updated the StringUtil::replace function as the old function was dangerous and could run into an endless loop
Added experimental support for folder flattening
Bug fixes
All games were included in the video and slideshow screeensavers when in Kid UI mode
Under very rare circumstances, games and folders could get mixed up during gamelist.xml parsing
The %BASENAME% variable didn't work correctly with the "Directories interpreted as files" functionality
The scroll indicators would sometimes not work correctly in the Alternative Emulators screen
Fixed a minor rounding issue which sometimes led to the menu scroll indicators not being positioned correctly
The game-end event was triggered immediately on game launch if running ES-DE in the background
The "quit" custom event script trigger was not executed when quitting the application using the quit key combo
Chinese characters would sometimes not render correctly
The "Jump to.." quick selector didn't work correctly with multi-byte Unicode characters
(Windows) Fixed an issue where symlinking game media directories would crash the application
(Windows) Scripts and links executed using cmd.exe could not contain the special characters &()^=;,
(Windows) ROM directories could not be created in the root of a device such as D:\ or E:\
(Linux) Flatpak directories were missing for user installations of the standalone emulators BlastEm, Play! and Snes9x
(rbsimple-DE) The systeminfo text for the saturn and saturnjp systems had mixed up megabytes with megabits
--1.2.3--
Added Snes9x standalone as an alternative emulator for the sfc, snes and snesna systems
* Added Atari800 standalone as an alternative emulator for the atari800 system
* Added BlastEm standalone as an alternative emulator for the megadrive and genesis systems on Unix
* Added MAME standalone as an alternative emulator for the arcade and mame systems on macOS
* Added the SAME CDi and CDi 2015 RetroArch cores for the cdimono1 system
* Added the PUAE 2021 RetroArch core to the amiga, amiga600, amiga1200 and amigacd32 systems
* Replaced the RetroArch core 4DO with Opera for the 3do system
## Known issues
* 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 probably caused by a bug in SDL where the primary display scaling is always used for calculating the display bounds. If using the same scaling percentage across all monitors, or if not using high DPI monitors at all, then this issue is not relevant.
* On Windows installing DS4Windows will break controller input in ES-DE for unknown reasons. Uninstalling this software should resolve the issue. On Windows 11 both DualShock 4 (PS4) and DualSense (PS5) controllers have been tested wired and via Bluetooth and both work fine in both ES-DE and RetroArch without any special drivers or configuration.
* On Windows ampersands (&) can't be used in filenames executed by cmd.exe (applicable for the desktop, epic, kodi, ports and steam systems).
* There could be problems with Chinese characters under some circumstances which may cause them to not get rendered properly in the gamelist view. This will hopefully be resolved with the 2.0 release.
* On macOS, the RetroArch setting "Start in Fullscreen mode" must be enabled or ES-DE will not be able to switch to the emulator window when a game is launched. Possibly it's the same issue with other emulators as well.
* On Raspberry Pi OS 10, Sony DualShock 4 controllers have problems with some button presses that don't register correctly. The issue appears resolved in Raspberry Pi OS 11.
To be imported soon...