diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e374a144..d05c4e5de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ * Added a new Utilities menu to the main menu * Added an entry to the Utilities menu for rescanning the ROM directory * Added an entry to the Utilities menu for creating/updating the game system directories +* Added support for a %PRECOMMAND% launch command variable (useful for launching emulators via Wine or Proton) * Enabled the setting "Show hidden files and folders" to be changed without requiring an application restart * Enabled the setting "Show hidden games" to be changed without requiring an application restart * Enabled the setting "Only show ROMs from gamelist.xml files" to be changed without requiring an application restart @@ -42,10 +43,10 @@ * Added QUASI88 standalone as an alternative emulator for the pc88 system * Added the .88d, .cmt and .t88 file extensions to the pc88 system * Removed the .7z and .zip file extensions from the pc88 system -* (Linux) Added support for the Microsoft Xbox 360 (xbox360) game system by running xenia via Wine -* (Linux) Added support for the Atari Jaguar CD (atarijaguarcd) game system by running BigPEmu via Wine -* (Linux) Added BigPEmu Wine as an alternative emulator for the atarijaguar system -* (Linux) Added 3dSen Wine as an alternative emulator for the famicom and nes systems +* (Linux) Added support for the Microsoft Xbox 360 (xbox360) game system by running xenia via Wine and Proton +* (Linux) Added support for the Atari Jaguar CD (atarijaguarcd) game system by running BigPEmu via Wine and Proton +* (Linux) Added BigPEmu Wine and BigPEmu Proton as alternative emulators for the atarijaguar system +* (Linux) Added 3dSen Wine and 3dSen Proton as alternative emulators for the famicom and nes systems * (Linux) Added support for the Visual Pinball (vpinball) game system * (Linux) Added support for using the RetroArch AppImage release in portable mode (added corepath find rules) * (Linux) Added support for the AppImage release of Snes9x @@ -84,6 +85,7 @@ * Added a "containerType" property to the text element to select between vertical and horizontal containers * Added a number of carousel, grid, textlist and text properties to control horizontally scrolling text * Added a "textRelativeScale" property to the carousel to size text smaller than the overall item size +* Added an "imageInterpolation" property to the grid element * Added "iterationCount" and "onIterationsDone" properties to the video element * Changed the "path" property for the video element to consider the set value even if it points to a non-existing file * Made it possible to set the defaultImage property for the carousel and grid elements using variables diff --git a/INSTALL-DEV.md b/INSTALL-DEV.md index 890f6eab3..dfaf6f259 100644 --- a/INSTALL-DEV.md +++ b/INSTALL-DEV.md @@ -1245,6 +1245,10 @@ Below is an overview of the file layout with various examples. For the command t %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_supafaust_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mesen-s_libretro.so %ROM% + + %STARTDIR%=%EMUDIR% %PRECOMMAND_WINE% %EMULATOR_XENIA-WINDOWS% %ROM% + @@ -1337,6 +1341,8 @@ The following variables are expanded for the `command` tag: `%EMULATOR_` - This utilizes the emulator find rules as defined in `es_find_rules.xml`. This is the recommended way to configure the launch command. The find rules are explained in more detail below. +`%PRECOMMAND_` - This utilizes the emulator find rules as defined in `es_find_rules.xml` to locate a pre-command binary. It's for instance useful for running Windows emulators on Linux using Wine or Proton. The %PRECOMMAND_ entry can be located anywhere in the launch command but it should be placed before the %EMULATOR_ variable in order to work as intended. + `%CORE_` - This utilizes the core find rules as defined in `es_find_rules.xml`. This is the recommended way to configure the launch command. `%RUNINBACKGROUND%` - When this variable is present, ES-DE will continue to run in the background while a game is launched. This will also prevent the gamelist video from playing, the screensaver from starting, and the game name and game description from scrolling. This functionality is required for some systems such as Valve Steam. The variable can be placed anywhere in the launch command. @@ -1585,7 +1591,6 @@ It's pretty straightforward, there are currently four rules supported for findin Of these, `winregistrypath` and `winregistryvalue` are only available on Windows, and attempting to use the rule on any other operating system will generate a warning in the log file when processing the es_find_rules.xml file. The `name` attribute must correspond to the command tags in es_systems.xml, take for example this line: - ```xml %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/dosbox_core_libretro.so %ROM% ``` @@ -1594,6 +1599,11 @@ Here %EMULATOR_ and %CORE_ are followed by the string RETROARCH which correspond Of course this makes it possible to add any number of emulators to the configuration file. +The find rules can also be used by the %PRECOMMAND_ variable, which is for instance useful for running Windows emulators on Linux using Wine or Proton. In the following example two separate find rules are used, one for the %PRECOMMAND_ variable and another one for the %EMULATOR_ variable: +```xml +%STARTDIR%=%EMUDIR% %PRECOMMAND_WINE% %EMULATOR_XENIA-WINDOWS% %ROM% +``` + The `winregistrypath` rule searches the Windows Registry "App Paths" keys for the emulators defined in the `` tags. If for example this tag is set to `retroarch.exe`, a search will be performed for the key `SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\retroarch.exe`. HKEY_CURRENT_USER is tried first, and if no key is found there, HKEY_LOCAL_MACHINE is tried as well. In addition to this, ES-DE will check that the binary defined in the default value for the key actually exists. If not, it will proceed with the next rule. Be aware that the App Paths keys are added by the emulators during their installation, and although RetroArch does add this key, not all emulators do. The `winregistryvalue` rule will search for the specific registry value, and if it exists, it will use that value as the path to the emulator binary. HKEY_CURRENT_USER will be tried first, followed by HKEY_LOCAL_MACHINE. In the same manner as `winregistrypath`, ES-DE will check that the binary defined in the registry value actually exists. If not, it will proceed with the next rule. For example, if setting the `` tag for this rule to `SOFTWARE\Valve\Steam\SteamExe`, the emulator binary would be set to `c:\program files (x86)\steam\steam.exe`, assuming that's where Steam has been installed. As this rule can be used to query any value in the Registry, it's a quite powerful tool to locate various emulators and applications. In addition to this it's posssible to append an arbitrary string to the key value if it's found and use that as the emulator binary path. This is accomplished by using the pipe sign, so for example the entry `SOFTWARE\PCSX2\Install_Dir|\pcsx2.exe` will look for the key `SOFTWARE\PCSX2\Install_Dir` and if it's found it will take the value of that key and append the string `\pcsx2.exe` to it. This could for example result in `C:\Program Files (x86)\PCSX2\pcsx2.exe`. Also for this setup, ES-DE will check that the emulator binary actually exists, or it will proceed to the next rule. diff --git a/THEMES-DEV.md b/THEMES-DEV.md index 4955cf4f1..34de57d11 100644 --- a/THEMES-DEV.md +++ b/THEMES-DEV.md @@ -1336,7 +1336,7 @@ Properties: - Valid values are `contain`, `fill` or `cover` - Default is `contain` * `imageInterpolation` - type: STRING - - Interpolation method to use when scaling images. Nearest neighbor (`nearest`) preserves sharp pixels and linear filtering (`linear`) makes the image smoother. The effect of this property is primarily visible for raster graphic images, but it has a limited effect also when using scalable vector graphics (SVG) images as these are rasterized at a set resolution and then scaled using the GPU. + - Interpolation method to use when scaling up images. Nearest neighbor (`nearest`) preserves sharp pixels and linear filtering (`linear`) makes the image smoother. The effect of this property is primarily visible for raster graphic images, but it has a limited effect also when using scalable vector graphics (SVG) images as these are rasterized at a set resolution and then scaled using the GPU. - Valid values are `nearest` or `linear` - Default is `linear` * `imageCornerRadius` - type: FLOAT @@ -1609,6 +1609,10 @@ Properties: - Controls how to fit the image within the aspect ratio defined by `itemSize`. To scale and preserve the original aspect ratio, set the value to `contain`, to stretch/squash the image to fill the entire area set it to `fill` and to crop the image to fill the entire area set it to `cover` - Valid values are `contain`, `fill` or `cover` - Default is `contain` +* `imageInterpolation` - type: STRING + - Interpolation method to use when scaling up images. Nearest neighbor (`nearest`) preserves sharp pixels and linear filtering (`linear`) makes the image smoother. + - Valid values are `nearest` or `linear` + - Default is `linear` * `imageRelativeScale` - type: FLOAT. - This property makes it possible to size the image defined by `staticImage`, `imageType` or `defaultImage` relative to the overall item size. This is mostly useful when combined with the `backgroundImage` and `selectorImage` properties. - Minimum value is `0.2` and maximum value is `1` @@ -1996,7 +2000,7 @@ Properties: - Valid values are `top` or `bottom` - Default is `bottom` * `interpolation` - type: STRING - - Interpolation method to use when scaling. Nearest neighbor (`nearest`) preserves sharp pixels and linear filtering (`linear`) makes the image smoother. This property has limited effect on scalable vector graphics (SVG) images unless rotation is applied. + - Interpolation method to use when scaling up. Nearest neighbor (`nearest`) preserves sharp pixels and linear filtering (`linear`) makes the image smoother. This property has limited effect on scalable vector graphics (SVG) images unless rotation is applied. - Valid values are `nearest` or `linear` - Default is `nearest` * `cornerRadius` - type: FLOAT @@ -2110,7 +2114,7 @@ Properties: - Whether to enable or disable audio playback for the video. For static videos in the gamelist view it's strongly recommended to set this to `false` if there is also a separate video element playing game videos. - Default is `true` * `interpolation` - type: STRING - - Interpolation method to use when scaling raster images. Nearest neighbor (`nearest`) preserves sharp pixels and linear filtering (`linear`) makes the image smoother. Note that this property only affects the static image, not the video scaling. This property also has no effect on scalable vector graphics (SVG) images. + - Interpolation method to use when scaling up images. Nearest neighbor (`nearest`) preserves sharp pixels and linear filtering (`linear`) makes the image smoother. Note that this property only affects the static image, not the video scaling. This property also has no effect on scalable vector graphics (SVG) images. - Valid values are `nearest` or `linear` - Default is `nearest` * `imageCornerRadius` - type: FLOAT @@ -2228,7 +2232,7 @@ Properties: - Minimum value is `0` and maximum value is `10` - Default is `0` (infinite amount of times) * `interpolation` - type: STRING - - Interpolation method to use when scaling. Nearest neighbor (`nearest`) preserves sharp pixels and linear filtering (`linear`) makes the image smoother. + - Interpolation method to use when scaling up. Nearest neighbor (`nearest`) preserves sharp pixels and linear filtering (`linear`) makes the image smoother. - Valid values are `nearest` or `linear` - Default is `nearest` - This property can only be used for GIF animations. @@ -2791,7 +2795,7 @@ Properties: - Minimum value is `0` and maximum value is the value of the `gameselector` element property `gameCount` minus 1. If a value outside this range is defined, then it will be automatically clamped to a valid value. - Default is `0` * `interpolation` - type: STRING - - Interpolation method to use when scaling the images. Nearest neighbor (`nearest`) preserves sharp pixels and linear filtering (`linear`) makes the image smoother. The effect of this property is primarily visible for raster graphic images, but it has a limited effect also when using scalable vector graphics (SVG) images, and even more so if rotation is applied. + - Interpolation method to use when scaling up images. Nearest neighbor (`nearest`) preserves sharp pixels and linear filtering (`linear`) makes the image smoother. The effect of this property is primarily visible for raster graphic images, but it has a limited effect also when using scalable vector graphics (SVG) images, and even more so if rotation is applied. - Valid values are `nearest` or `linear` - Default is `nearest` * `color` - type: COLOR diff --git a/USERGUIDE-DEV.md b/USERGUIDE-DEV.md index e33e3e7d5..08ee3d872 100644 --- a/USERGUIDE-DEV.md +++ b/USERGUIDE-DEV.md @@ -790,13 +790,53 @@ cd ~/Applications/SkyEmu chmod +x SkyEmu ``` -In addition to the above there are a couple of Windows emulators that need to run via Wine. Detailed setup instructions for these can be found elsewhere in this guide, but here's a table of the required installation paths: +## Running Windows emulators on Linux using Wine or Proton + +On Linux it's possible to run emulators developed specifically for Microsoft Windows via the Wine compatibility layer. Support is also included for the Proton fork of Wine. + +ES-DE will look for Wine, Proton and the Windows emulators in the same directories where it looks for emulator AppImages and manually downloaded emulators (as explained in the section above), meaning: +``` +~/Applications/ +~/.local/share/applications/ +~/.local/bin/ +~/bin/ +``` + +It's generally recommended to go for the ~/Applications/ directory, but depending on your Linux distribution this may or may not exist by default. If the directory doesn't exist, then just go ahead and create it. Keep in mind that Linux is case-sensitive so make sure to spell it with a capital A. + +The AppImage release of Wine or Proton is required, which can be downloaded from here:\ +https://github.com/mmtrt/WINE_AppImage/releases + +For regular Wine, make sure to get the stable x86_64 release, for this example we assume that the file `wine-stable_8.0.2-x86_64.AppImage` has been downloaded. + +For Proton we assume that the file `wine-staging_ge-proton_8-14-x86_64.AppImage` has been downloaded. + +For Wine, create an `~/Applications/Wine` directory and be mindful that the letter case is correct. Then move the Wine AppImage into this new directory and set executable permissions for the file: +``` +cd ~/Applications/Wine +chmod +x wine-stable_8.0.2-x86_64.AppImage +``` + +Likewise for Proton, create an `~/Applications/Proton` directory, move the AppImage there and run the chmod command: +``` +cd ~/Applications/Proton +chmod +x wine-staging_ge-proton_8-14-x86_64.AppImage +``` + +The find rules for Wine and Proton look like the following, so the AppImage filenames need to match this pattern: +```xml +~/Applications/Wine/wine*.AppImage +~/Applications/Proton/wine*.AppImage +``` + +The following Windows emulators are supported, and their setup is covered in detail in specific sections of this document: | System name | Emulator | Filename | | :------------------------------- | :--------------- | :-------------------------------- | | atarijaguar/atarijaguarcd | BigPEmu | BigPEmu/BigPEmu.exe | | famicom/nes | 3dSen | 3dSen/3dSen.exe | | xbox360 | xenia | xenia/xenia.exe | +| xbox360 | xenia | xenia/xenia_canary.exe | ## Running emulators in fullscreen mode @@ -1130,25 +1170,11 @@ ln -s /usr/local/Cellar/mame/0.248/share/mame/hash ~/.mame/ # on x86/Int These systems are generally straightforward to setup. For regular Atari Jaguar games you'll have a single ROM or zip archive per game that you place in the root of the `~/ROMs/atarijaguar` system directory. For Atari Jaguar CD games it's recommended to go for the .cdi format and you place these directly in the root of the `~/ROMs/atarijaguarcd` directory. -The only emulator that can run Atari Jaguar CD games is [BigPEmu](https://www.richwhitehouse.com/jaguar/) and while it's officially only available for the Windows operating system it's still possible to run it on Linux. +The only emulator that can run Atari Jaguar CD games is [BigPEmu](https://www.richwhitehouse.com/jaguar/) and while it's officially only available for the Windows operating system it's still possible to run it on Linux. To accomplish this you need to run it via the Wine (or Proton) translation layer. -To accomplish this you need to run it via the Wine translation layer. More specifically you need the AppImage release of Wine which can be downloaded from here:\ -https://github.com/mmtrt/WINE_AppImage/releases +How to setup Wine is covered [here](USERGUIDE-DEV.md#running-windows-emulators-on-linux-using-wine-or-proton). -Make sure to get the stable x86_64 release, for this example we assume that the file `wine-stable_8.0.2-x86_64.AppImage` has been downloaded. - -Create an `~/Applications/BigPEmu` directory and be mindful that the letter case is correct. Then move the AppImage into this new directory and set executable permissions for the file: -``` -cd ~/Applications/BigPEmu -chmod +x wine-stable_8.0.2-x86_64.AppImage -``` - -The find rule for BigPEmu looks like the following so the Wine filename needs to match this pattern: -```xml -~/Applications/BigPEmu/wine*.AppImage -``` - -Following this download BigPEmu and unzip it into `~/Applications/BigPEmu` \ +Once Wine or Proton has been setup, download BigPEmu and unzip it into `~/Applications/BigPEmu` \ You should now have something similar to this on your filesystem: ``` ~/Applications/BigPEmu/Data/ @@ -1157,10 +1183,9 @@ Following this download BigPEmu and unzip it into `~/Applications/BigPEmu` \ ~/Applications/BigPEmu/Strings/ ~/Applications/BigPEmu/BigPEmu.exe ~/Applications/BigPEmu/ReadMe.txt -~/Applications/BigPEmu/wine-stable_8.0.2-x86_64.AppImage ``` -That's basically it, for the atarijaguar system just make sure to select _BigPEmu (Wine)_ from the _Alternative emulators_ interface or set it on a per-game basis using the metadata editor. This is not required for the atarijaguarcd system as for this system there are no alternative emulators. +That's basically it, for the atarijaguar system just make sure to select _BigPEmu (Wine)_ or _BigPEmu (Proton)_ from the _Alternative emulators_ interface or set it on a per-game basis using the metadata editor. There are many settings in Wine that may affect compatibility, performance etc. but covering all that is beyond the scope of this guide. @@ -1601,7 +1626,7 @@ Castle Crashers/584108B7/000D0000/ Castle Crashers/584108B7/000D0000/F9432A7FE407A3C196C95D0FFD4A540937FD4EEC58 ``` -For this example it's F9432A7FE407A3C196C95D0FFD4A540937FD4EEC58 that is the actual game. It's recommended to move this file to the root of the `~/ROMs/xbox360` system directory and to rename it to the game name followed by _(XBLA)_ to make it clear that it's an Xbox Live Arcade game. After doing this our example directory structure would look like the following: +For this example it's F9432A7FE407A3C196C95D0FFD4A540937FD4EEC58 that is the actual game file. It's recommended to move this file to the root of the `~/ROMs/xbox360` system directory and to rename it to the game name followed by _(XBLA)_ to make it clear that it's an Xbox Live Arcade game. After doing this our example directory structure would look like the following: ``` ~/ROMs/xbox360/Castle Crashers (XBLA) ~/ROMs/xbox360/Gears of War.iso @@ -1617,27 +1642,14 @@ https://github.com/cmclark00/XBLA-Automation _Note that xenia does not seem to run on the Steam Deck using the approach described below._ -Although xenia is officially only available for the Windows operating system it's still possible to run it on Linux. To accomplish this you need to run it via the Wine translation layer. More specifically you need the AppImage release of Wine which can be downloaded from here:\ -https://github.com/mmtrt/WINE_AppImage/releases +Although xenia is officially only available for the Windows operating system it's still possible to run it on Linux. To accomplish this you need to run it via the Wine (or Proton) translation layer. -Make sure to get the stable x86_64 release, for this example we assume that the file `wine-stable_8.0.2-x86_64.AppImage` has been downloaded. +How to setup Wine is covered [here](USERGUIDE-DEV.md#running-windows-emulators-on-linux-using-wine-or-proton). -Create an `~/Applications/xenia` directory and be mindful that the letter case is correct. Then move the AppImage into this new directory and set executable permissions for the file: -``` -cd ~/Applications/xenia -chmod +x wine-stable_8.0.2-x86_64.AppImage -``` - -The find rule for xenia looks like the following so the Wine filename needs to match this pattern: -```xml -~/Applications/xenia/wine*.AppImage -``` - -Following this download xenia and unzip it into `~/Applications/xenia`. Also create an empty file named `portable.txt` inside this directory. You should now have something similar to this on your filesystem: +Once Wine or Proton has been setup, download xenia and unzip it into `~/Applications/xenia`. Also create an empty file named `portable.txt` inside this directory. You should now have something similar to this on your filesystem: ``` ~/Applications/xenia/LICENSE ~/Applications/xenia/portable.txt -~/Applications/xenia/wine-stable_8.0.2-x86_64.AppImage ~/Applications/xenia/xenia.exe ~/Applications/xenia/xenia.pdb ``` @@ -1658,7 +1670,7 @@ fullscreen = true # Whether to launch the emul There are of course many more settings for xenia and Wine that may be adjusted for optimal performance and compatibility but that's beyond the scope of this guide. -The canary release of xenia can also be used but it's not explicitly supported. To use it simply rename `xenia_canary.exe` to `xenia.exe` and it should work. Also be aware that its configuration file is named `xenia-canary.config.toml` instead of `xenia.config.toml` +The canary release of xenia can also be used but it's not possible to set the xenia release per game. Instead the find rules will first look for `xenia.exe` and if that can't be found it will look for `xenia_canary.exe`. Be aware that if using the canary release of xenia, the configuration file is named `xenia-canary.config.toml` instead of `xenia.config.toml` For a more complex setup like requiring different Wine or xenia versions per game or similar the xbox360 system on Linux also supports the _Shortcut or script_ alternative emulator entry. Using this you can create shell scripts with specific configuration or you could alternatively install Xbox 360 games via Lutris or similar and export .desktop shortcuts from there and place these inside the `~/ROMs/xbox360` directory. Just make sure to select the appropriate alternative emulator entry if doing this, or it will not work. @@ -1779,23 +1791,11 @@ For this guide it's assumed that you have purchased the emulator via Steam. ES-D **Linux-specific installation** -As 3dSen is a Windows-only emulator you'll need Wine to run it. More specifically you need the AppImage release of Wine which can be downloaded from here:\ -https://github.com/mmtrt/WINE_AppImage/releases +As 3dSen is a Windows-only emulator you'll need Wine (or Proton) to run it. -Make sure to get the stable x86_64 release, for this example we assume that the file `wine-stable_8.0.2-x86_64.AppImage` has been downloaded. +How to setup Wine is covered [here](USERGUIDE-DEV.md#running-windows-emulators-on-linux-using-wine-or-proton). -If it doesn't already exist, then create an `~/Applications` directory and be mindful that the letter case is correct. Copy the 3dSen installation directory into this folder. Following this move the Wine AppImage into this directory as well and set executable permissions for the file: -``` -cd ~/Applications/3dSen -chmod +x wine-stable_8.0.2-x86_64.AppImage -``` - -The find rule for 3dSen looks like the following so the Wine filename needs to match this pattern: -```xml -~/Applications/3dSen/wine*.AppImage -``` - -To conserve disk space if using Wine for multiple emulators you can of course instead symlink the Wine AppImage from a common location. +Once Wine or Proton has been setup, move or copy all 3dSen files to `~/Applications/3dSen` **Windows-specific installation** @@ -1825,7 +1825,7 @@ You could of course separate the 3D files into their own directory if you prefer Finally you need to add the 3dSen game ID to each file. The RetroBat project maintains a list of supported game IDs for the 3dSen emulator that you can find here:\ https://wiki.retrobat.org/systems-and-emulators/supported-game-systems/game-consoles/nintendo-game-consoles/nes-3d -To launch the .3dsen files you'll need to use the alternative emulator entry _3dSen (Wine)_ or _3dSen (Standalone)_ depending on your operating system. As you're unlikely to use 3dSen as your primary NES or Famicom emulator it's recommended to set this on a per-game basis using the metadata editor. +To launch the .3dsen files you'll need to use the alternative emulator entry _3dSen (Wine)_, _3dSen (Proton)_ or _3dSen (Standalone)_ depending on your operating system. As you're unlikely to use 3dSen as your primary NES or Famicom emulator it's recommended to set this on a per-game basis using the metadata editor. ### Nintendo Wii U @@ -3456,7 +3456,7 @@ On Windows the following emulators provide a way to inform ES-DE where they have Default emulator/Alternative emulators columns: \ **[U]**: Unix, **[M]**: macOS, **[W]**: Windows -All emulators are RetroArch cores unless marked as **(Standalone)** or **(Wine)** +All emulators are RetroArch cores unless marked as **(Standalone)**, **(Wine)** or **(Proton)** The **@** symbol indicates that the emulator is _deprecated_ and will be removed in a future ES-DE release. @@ -3481,8 +3481,8 @@ The **@** symbol indicates that the emulator is _deprecated_ and will be removed | atari5200 | Atari 5200 | a5200 | Atari800,
Atari800 **(Standalone)** | Yes | Single archive or ROM file | | atari7800 | Atari 7800 ProSystem | ProSystem | MAME **(Standalone)** | Yes | Single archive or ROM file | | atari800 | Atari 800 | Atari800 | Atari800 **(Standalone)** | No | | -| atarijaguar | Atari Jaguar | Virtual Jaguar | BigPEmu **(Standalone**) [W],
BigPEmu **(Wine)** [U],
MAME **(Standalone)** | Yes for MAME | See the specific _Atari Jaguar and Atari Jaguar CD_ section elsewhere in this guide | -| atarijaguarcd | Atari Jaguar CD | BigPEmu **(Standalone**) [W],
BigPEmu **(Wine)** [U] | | No | See the specific _Atari Jaguar and Atari Jaguar CD_ section elsewhere in this guide | +| atarijaguar | Atari Jaguar | Virtual Jaguar | BigPEmu **(Standalone)** [W],
BigPEmu **(Wine)** [U],
BigPEmu **(Proton)** [U],
MAME **(Standalone)** | Yes for MAME | See the specific _Atari Jaguar and Atari Jaguar CD_ section elsewhere in this guide | +| atarijaguarcd | Atari Jaguar CD | BigPEmu **(Standalone)** [W],
BigPEmu **(Wine)** [U] | BigPEmu **(Proton)** [U] | No | See the specific _Atari Jaguar and Atari Jaguar CD_ section elsewhere in this guide | | atarilynx | Atari Lynx | Handy | Beetle Lynx,
Mednafen **(Standalone)** | | | | atarist | Atari ST [also STE and Falcon] | Hatari | Hatari **(Standalone)** | Yes | Single archive or image file for single-diskette games, .m3u playlist for multi-diskette games | | atarixe | Atari XE | Atari800 | Atari800 **(Standalone)** | No | | @@ -3510,7 +3510,7 @@ The **@** symbol indicates that the emulator is _deprecated_ and will be removed | easyrpg | EasyRPG Game Engine | EasyRPG | EasyRPG Player **(Standalone)** | No | See the specific _EasyRPG Game Engine_ section elsewhere in this guide | | emulators | Emulators | _Suspend ES-DE_ | _Keep ES-DE running_,
_AppImage (Suspend ES-DE)_ [U],
_AppImage (Keep ES-DE running)_ [U] | No | See the specific _Ports and desktop applications_ section elsewhere in this guide | | epic | Epic Games Store | Epic Games Store **(Standalone)** | | No | Shortcut (.desktop/.app/.lnk) file | -| famicom | Nintendo Family Computer | Mesen | Mesen **(Standalone)** [UW],
Nestopia UE,
Nestopia UE **(Standalone)** [U],
FCEUmm,
QuickNES,
puNES **(Standalone)** [UW],
Mednafen **(Standalone)**,
ares **(Standalone)**,
ares FDS **(Standalone)**,
3dSen **(Wine)** [U],
3dSen **(Standalone)** [W] | No | Single archive or ROM file. For Famicom games in 3D see the specific _Nintendo NES and Famicom in 3D_ section elsewhere in this guide | +| famicom | Nintendo Family Computer | Mesen | Mesen **(Standalone)** [UW],
Nestopia UE,
Nestopia UE **(Standalone)** [U],
FCEUmm,
QuickNES,
puNES **(Standalone)** [UW],
Mednafen **(Standalone)**,
ares **(Standalone)**,
ares FDS **(Standalone)**,
3dSen **(Wine)** [U],
3dSen **(Proton)** [U],
3dSen **(Standalone)** [W] | No | Single archive or ROM file. For Famicom games in 3D see the specific _Nintendo NES and Famicom in 3D_ section elsewhere in this guide | | fba | FinalBurn Alpha | FB Alpha 2012 | FB Alpha 2012 Neo Geo,
FB Alpha 2012 CPS-1,
FB Alpha 2012 CPS-2,
FB Alpha 2012 CPS-3 | Yes | See the specific _Arcade and Neo Geo_ section elsewhere in this guide | | fbneo | FinalBurn Neo | FinalBurn Neo | FinalBurn Neo **(Standalone)** [UW] | Yes | See the specific _Arcade and Neo Geo_ section elsewhere in this guide | | fds | Nintendo Famicom Disk System | Mesen | Mesen **(Standalone)** [UW],
Nestopia UE,
Nestopia UE **(Standalone)** [U],
FCEUmm,
Mednafen **(Standalone)**,
ares **(Standalone)** | Yes | Single archive or ROM file | @@ -3565,7 +3565,7 @@ The **@** symbol indicates that the emulator is _deprecated_ and will be removed | neogeo | SNK Neo Geo | FinalBurn Neo | FinalBurn Neo **(Standalone)** [UW],
MAME **(Standalone)** | Yes | See the specific _Arcade and Neo Geo_ section elsewhere in this guide | | neogeocd | SNK Neo Geo CD | NeoCD | FinalBurn Neo,
FinalBurn Neo **(Standalone)** [U],
MAME **(Standalone)** | Yes | .chd (NeoCD and MAME only) or .cue file | | neogeocdjp | SNK Neo Geo CD [Japan] | NeoCD | FinalBurn Neo,
FinalBurn Neo **(Standalone)** [U],
MAME **(Standalone)** | Yes | .chd (NeoCD and MAME only) or .cue file | -| nes | Nintendo Entertainment System | Mesen | Mesen **(Standalone)** [UW],
Nestopia UE,
Nestopia UE **(Standalone)** [U],
FCEUmm,
QuickNES,
puNES **(Standalone)** [UW],
Mednafen **(Standalone)**,
ares **(Standalone)**,
ares FDS **(Standalone)**,
3dSen **(Wine)** [U],
3dSen **(Standalone)** [W] | No | Single archive or ROM file. For NES games in 3D see the specific _Nintendo NES and Famicom in 3D_ section elsewhere in this guide | +| nes | Nintendo Entertainment System | Mesen | Mesen **(Standalone)** [UW],
Nestopia UE,
Nestopia UE **(Standalone)** [U],
FCEUmm,
QuickNES,
puNES **(Standalone)** [UW],
Mednafen **(Standalone)**,
ares **(Standalone)**,
ares FDS **(Standalone)**,
3dSen **(Wine)** [U],
3dSen **(Proton)** [U],
3dSen **(Standalone)** [W] | No | Single archive or ROM file. For NES games in 3D see the specific _Nintendo NES and Famicom in 3D_ section elsewhere in this guide | | ngp | SNK Neo Geo Pocket | Beetle NeoPop | RACE,
Mednafen **(Standalone)**,
ares **(Standalone)** | | | | ngpc | SNK Neo Geo Pocket Color | Beetle NeoPop | RACE,
Mednafen **(Standalone)**,
ares **(Standalone)** | | | | odyssey2 | Magnavox Odyssey2 | O2EM | | | | @@ -3642,7 +3642,7 @@ The **@** symbol indicates that the emulator is _deprecated_ and will be removed | x1 | Sharp X1 | x1 | | | Single archive or ROM file | | x68000 | Sharp X68000 | PX68k | MAME **(Standalone)** | Yes | | | xbox | Microsoft Xbox | xemu **(Standalone)** | Cxbx-Reloaded **(Standalone)** [W] | Yes for xemu | Single .iso file for xemu or unpacked .iso directory for Cxbx-Reloaded | -| xbox360 | Microsoft Xbox 360 | xenia **(Standalone)** [W],
xenia **(Wine)** [U] | _Shortcut or script_ [U] | No | See the specific _Microsoft Xbox 360_ section elsewhere in this guide | +| xbox360 | Microsoft Xbox 360 | xenia **(Standalone)** [W],
xenia **(Wine)** [U] | xenia **(Proton)** [U],
_Shortcut or script_ [U] | No | See the specific _Microsoft Xbox 360_ section elsewhere in this guide | | zmachine | Infocom Z-machine | Gargoyle **(Standalone)** | | No | | | zx81 | Sinclair ZX81 | EightyOne | | | | | zxnext | Sinclair ZX Spectrum Next | #CSpect **(Standalone)** [UW],
ZEsarUX **(Standalone)** [M] | ZEsarUX **(Standalone)** [UW] | No | In separate folder interpreted as a file |