diff --git a/CHANGELOG.md b/CHANGELOG.md index 214eef980..baa7115a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,7 @@ Apart from all the above, a huge amount of work has gone into fixing bugs, refac * Improved the layout of the scraper GUIs (single-game scraper and multi-scraper) * Added horizontal scrolling of long game names to the scraper GUIs * Removed the "Scrape" text prefix from the scraper content settings +* Setting a blank name for an arcade game in the metadata editor now sets the value to the MAME expanded name instead of the physical file name * Added proper frame drop functionality to the FFmpeg video player to greatly reduce stuttering on slower machines * Made multiple optimizations to the FFmpeg video player to reduce CPU usage and to increase framerates on slower machines * Disabled the FFmpeg video player hardware decoding option (it can still be built using a CMake flag) @@ -52,6 +53,7 @@ Apart from all the above, a huge amount of work has gone into fixing bugs, refac * Added filters for "Controller" and "Alternative emulator" and sorted the filters in the same order as the metadata editor fields * Added the ability to filter on blank/unknown values for Genre, Player, Developer, Publisher, Controller and Alternative emulator * Added a menu option to change the application exit key combination +* If there are no custom collections, the "Custom game collections" menu entry is now grayed out * Added an option to preload the gamelists on startup which leads to smoother navigation when first entering each gamelist * Lowered the minimum supported screen resolution from 640x480 to 224x224 to support arcade cabinet displays such as those running at 384x224 and 224x384 * Added support for the Commodore VIC-20, Epic Games Store, Google Android, Java 2 Micro Edition, Philips CD-i and Symbian systems @@ -99,6 +101,7 @@ Apart from all the above, a huge amount of work has gone into fixing bugs, refac * Added a function to generate MD5 hashes * Improved thread safety at multiple places throughout the codebase * Made an optimization for SVG graphics to avoid a lot of unnecessary re-rasterizations +* Added a script to generate an AppImage on Linux * Lots of other general code refactoring * Increased the warning level for Clang/LLVM and GCC by adding -Wall, -Wpedantic and some additional flags * Fixed a lot of compiler warnings introduced by the -Wall and -Wpedantic flags @@ -114,18 +117,21 @@ Apart from all the above, a huge amount of work has gone into fixing bugs, refac ### Bug fixes * Setting a really small font size in a theme would crash the application +* Deleting the last custom collection could crash the application if the grouped "collections" system was set as the startup gamelist * Setting an invalid UIMode value in the configuration file could crash the application * Setting an invalid scraper service value in the configuration file could crash the application * When scraping in interactive mode with "Auto-accept single game matches" enabled, the game name could not be refined if there were no games found * When scraping in interactive mode, the game counter was not decreased when skipping games, making it impossible to skip the final games in the queue * When scraping in interactive mode, "No games found" results could be accepted using the "A" button * When scraping in interactive mode, any refining done using the "Y" button shortcut would not be shown when doing another refine using the "Refine search" button +* When scraping in interactive mode, the first result row would get focused after the search completed even if the cursor was moved to a button beneath the list * The multi-scraper did not update the filter index * Fixed multiple minor rendering issues where graphics would be slightly cut off or incorrectly resized * Under some circumstances ScrollableContainer (used for the game descriptions) would contain a partially rendered bottom line * If the TextListComponent height was not evenly dividable by the font height + line spacing, a partial bottom row would get rendered * The line spacing for TextListComponent was incorrectly calculated for some resolutions such as 2560x1440 * Fixed multiple issues with scaling of images which led to various inconsistencies and sometimes cut-off graphics +* The system time zone was not taken into consideration when using the Unix epoch which lead to various strange problems in the metadata editor * Removing games from custom collections did not remove their filter index entries * Input consisting of only whitespace characters would get accepted by TextEditComponent which led to various strange behaviors * Leading and trailing whitespace characters would not get trimmed from the collection name when creating a new custom collection @@ -438,6 +444,6 @@ Many bugs have been fixed, and numerous features that were only partially implem * 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 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. -* On Fedora 35 an issue has been observed where the screen turns completely black when starting ES-DE for the first time. A workaround for this is to simply exit the application with F4 or Alt+F4 and starting it again. Everything should then render correctly, and any subsequent startups will work fine including after suspending/resuming the computer. It's currently unclear if this is limited to only some graphics drivers or if it's a general issue under Fedora and/or Wayland. +* On Fedora 35 an issue has been observed where the screen turns completely black or flickers intensely when starting ES-DE for the first time. A workaround for this is to simply exit the application with F4 or Alt+F4 and starting it again. Everything should then render correctly, and any subsequent startups will work fine including after suspending/resuming the computer. It's currently unclear if this is limited to only some graphics drivers or if it's a general issue under Fedora and/or Wayland. * Sometimes when RetroArch has been upgraded to a newer version, it apparently requires a startup to get properly initialized. When ES-DE starts RetroArch it always does so by passing some specific emulator core parameters, which does not seem to initialize RetroArch after such an upgrade. What happens in this case is that the RetroArch loading screen will be shown and then it will quit right back to ES-DE. If confirmed to be the case, this is not an ES-DE issue but a RetroArch issue and starting RetroArch separately once should fix the problem. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 15f31d09b..a623b8779 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,8 +33,7 @@ This plan is under constant review so expect it to change from time to time. Sti * Virtual (on-screen) keyboard * Support for the Raspberry Pi 4 (Raspberry Pi OS) * Add GLM library dependency for matrix and vector operations, decommission the built-in functions -* Add to more Linux repositories, BSD ports collections etc. -* Flatpak and Snap releases on Linux +* AppImage release on Linux #### v1.3 diff --git a/README.md b/README.md index b3309ec47..e7210e3ea 100644 --- a/README.md +++ b/README.md @@ -23,11 +23,12 @@ The following operating systems have been tested (all for the x86 architecture u * Linux Mint 20.2 * Manjaro 21.1 * Fedora 35 Workstation +* elementary OS 6 * Raspberry Pi OS 10 (armv7l and aarch64) * FreeBSD 13.0 * NetBSD 9.1 * OpenBSD 6.8 -* macOS 10.14 "Mojave" to 12 "Monterey" (the M1 processor via Rosetta 2 is supported) +* macOS 10.14 "Mojave" to 12 "Monterey" (the M1 processor is supported via Rosetta 2) * macOS 10.11 "El Capitan" (v1.0 release only) * Windows 10 * Windows 8.1 @@ -58,6 +59,8 @@ The latest prerelease version is 1.2.0-beta1 (released 2021-11-14) | macOS DMG installer | macOS 10.14 "Mojave" to 12 "Monterey" | x64 (x86) | [EmulationStation-DE-1.2.0-beta1-x64.dmg](https://gitlab.com/leonstyhre/emulationstation-de/-/package_files/21488824/download)| | Windows installer | Windows 10 and 8.1 | x64 (x86) | [EmulationStation-DE-1.2.0-beta1-x64.exe](https://gitlab.com/leonstyhre/emulationstation-de/-/package_files/21488825/download)| +Flatpak will not be supported as this packaging system is too restrictive with its sandbox approach, making ES-DE virtually useless as it can't freely locate and launch emulators on the system. + Unfortunately due to technical reasons, v1.0.1 (released 2021-05-01) will be the last version for legacy macOS. | Package | Operating systems | Architecture | Download link | diff --git a/USERGUIDE-DEV.md b/USERGUIDE-DEV.md index 0bd46cbe9..1820dd7df 100644 --- a/USERGUIDE-DEV.md +++ b/USERGUIDE-DEV.md @@ -37,11 +37,12 @@ The following operating systems have been tested (all for the x86 architecture u * Linux Mint 20.2 * Manjaro 21.1 * Fedora 35 Workstation +* elementary OS 6 * Raspberry Pi OS 10 (armv7l and aarch64) * FreeBSD 13.0 * NetBSD 9.1 * OpenBSD 6.8 -* macOS 10.14 "Mojave" to 12 "Monterey" (the M1 processor via Rosetta 2 is supported) +* macOS 10.14 "Mojave" to 12 "Monterey" (the M1 processor is supported via Rosetta 2) * macOS 10.11 "El Capitan" (v1.0 release only) * Windows 10 * Windows 8.1 @@ -80,6 +81,15 @@ sudo dnf install ./emulationstation-de-1.2.0-x64.rpm Of course the file name will differ slightly depending on the architecture, the example above is for the x64/x86 platform. +**Running a Linux AppImage file** + +In addition to the .deb and .rpm packages covered above, ES-DE is also available as an AppImage which should be usable on most modern x86 64-bit Linux distributions. After download you have to set the file as executable, such as this: +``` +chmod +x emulationstation-de-1.2.0-x64.AppImage +``` + + Following this you can launch ES-DE by double-clicking on the file using your file manager. It's also possible to run it from a terminal window. All command line options work as if installed as an ordinary package. + **Installing on macOS and Windows** There's not really much to say about these operating systems, just install ES-DE as you would any other application. On macOS it's via the .dmg drag-and-drop installer, and on Windows via the normal application installer. @@ -143,9 +153,14 @@ There will be a lot of directories created if using the es_systems.xml file bund _This is the dialog shown if no game files were found. It lets you configure the ROM directory if you don't want to use the default one, and you can also generate the game systems directory structure. Note that the directory is the physical path, and that your operating system may present this as a localized path if you are using a language other than English._ +## Disabling game systems + +The way ES-DE works is that it will always try to load any system for which there are game files available, so to disable a system it needs to be hidden from ES-DE. This is easily accomplished by renaming the game directory to something that is not recognized, for example changing `~/ROMs/c64` to `~/ROMs/c64_DISABLED`. Another approach is to create a subdirectory named DISABLED (or whatever name you prefer that is not matching a supported system) in the ROMs directory and move the game folder there, such as `~/ROMs/DISABLED/c64`. This makes it easy to disable and re-enable game systems in ES-DE. Note that the gamelist and any game media files are retained while the system is disabled so this is an entirely safe thing to do. + + ## Using the Steam release of RetroArch -On Windows it's no problem to use the Steam release of RetroArch although you may have to add the location manually to your Path environment variable. By default the following locations will be searched: +On Windows it's no problem to use the Steam release of RetroArch although you may have to add the installation location manually to your Path environment variable. By default the following locations will be searched: ``` C:\Program Files (x86)\Steam\steamapps\common\RetroArch\retroarch.exe D:\Program Files (x86)\Steam\steamapps\common\RetroArch\retroarch.exe @@ -1282,7 +1297,7 @@ This lets you enable or disable the automatic game collections _All games, Favor **Custom game collections** -This lets you enable or disable your own custom game collections. +This lets you enable or disable your own custom game collections. If there are no custom collections available, this menu entry will be grayed out. **Create new custom collection from theme** _(Entry only visible if the ability is provided by the theme set)_