From ee84040bb4c5f16218f5ddf2b6381946239da64e Mon Sep 17 00:00:00 2001 From: Leon Styhre Date: Mon, 2 Oct 2023 20:31:53 +0200 Subject: [PATCH] Documentation update --- CHANGELOG.md | 3 +++ INSTALL-DEV.md | 12 +++++---- THEMES-DEV.md | 8 +++--- USERGUIDE-DEV.md | 63 +++++++++++++++++++++++++++++++++++++----------- 4 files changed, 64 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac5f38e13..ecdfe8b93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,9 @@ * 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 a "Debug mode" option to the Other settings menu (which is equivalent to starting with the --debug flag) * Added support for a %PRECOMMAND% launch command variable (useful for launching emulators via Wine or Proton) +* Added support for defining multiple %INJECT% launch command variables * Added support for placing images in a "custom" folder in the downloaded_media directory and view these using the media viewer * 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 @@ -50,6 +52,7 @@ * (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 Model 2 Emulator Wine and Model 2 Emulator Proton as alternative emulators for the model2 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) diff --git a/INSTALL-DEV.md b/INSTALL-DEV.md index dfaf6f259..ad0e15aea 100644 --- a/INSTALL-DEV.md +++ b/INSTALL-DEV.md @@ -1086,7 +1086,7 @@ You can use **--help** or **-h** to view the list of command line options, as sh --force-input-config Force configuration of input devices --create-system-dirs Create game system directories --home [path] Directory to use as home path ---debug Print debug information +--debug Enable debug mode --version, -v Display version information --help, -h Summon a sentient, angry tuba ``` @@ -1329,7 +1329,7 @@ The following variables are expanded for the `command` tag: `%STARTDIR%` - The directory to start in when launching the emulator. Must be defined as a pair separated by an equal sign. This is normally not required, but some emulators and game engines like standalone MAME and OpenBOR will not work properly unless you're in the correct directory when launching a game. Either an absolute path can be used, such as `%STARTDIR%=C:\Games\mame` or some variables are available that provide various functions. The `%EMUDIR%` variable can be used to start in the directory where the emulator binary is located, i.e. `%STARTDIR%=%EMUDIR%`, the `%GAMEDIR%` variable can be used to start in the directory where the game file is located, i.e. `%STARTDIR%=%GAMEDIR%` and the `%GAMEENTRYDIR%` variable can be used which works identically to `%GAMEDIR%` with the exception that it will interpret the actual game entry as the start directory. This is useful in very rare situations like for the EasyRPG Player where the game directories are interpreted as files but where the game engine must still be started from inside the game directory. If an absolute path is set that contains blankspaces, then it must be surrounded by quotation marks, for example `%STARTDIR%="C:\Retro games\mame"`. If the directory defined by this variable does not exist, it will be created on game launch. The variable can be placed anywhere in the launch command if the %EMULATOR_ variable is used, otherwise it has to be placed after the emulator binary. -`%INJECT%` - This allows the injection of launch arguments or environment variables stored in a text file on the filesystem. The %INJECT% variable must be defined as a pair separated by an equal sign, for example `%INJECT%=game.commands`. The `%BASENAME%` variable can also be used in conjunction with this variable, such as `%INJECT%=%BASENAME%.commands`. By default a path relative to the game file will be assumed but it's also possible to use an absolute path or the ~ (tilde) symbol which will expand to the home directory. If a path contains spaces it needs to be surrounded by quotation marks, such as `%INJECT%="C:\My games\ROMs\daphne\%BASENAME%.daphne\%BASENAME%.commands"`. The variable can be placed anywhere in the launch command and the file contents will be injected at that position. The specified file is optional, if it does not exist, is empty, or if there are insufficient permissions to read the file, then it will simply be skipped. For safety reasons the injection file can only have a maximum size of 4096 bytes and if it's larger than this it will be skipped and a warning will be written to es_log.txt. +`%INJECT%` - This allows the injection of launch arguments or environment variables stored in a text file on the filesystem. The %INJECT% variable must be defined as a pair separated by an equal sign, for example `%INJECT%=game.commands`. The `%BASENAME%` variable can also be used in conjunction with this variable, such as `%INJECT%=%BASENAME%.commands`. By default a path relative to the game file will be assumed but it's also possible to use an absolute path or the ~ (tilde) symbol which will expand to the home directory. If a path contains spaces it needs to be surrounded by quotation marks, such as `%INJECT%="C:\My games\ROMs\daphne\%BASENAME%.daphne\%BASENAME%.commands"`. The variable can be placed anywhere in the launch command and the file contents will be injected at that position. It's also possible to have multiple injections by defining the variable more than once at different locations in the launch command string. The specified file is optional, if it does not exist, is empty, or if there are insufficient permissions to read the file, then it will simply be skipped. For safety reasons the injection file can only have a maximum size of 4096 bytes and if it's larger than this it will be skipped and a warning will be written to es_log.txt. `%EMUPATH%` - Replaced with the path to the emulator binary. This variable is used for manually specifying emulator core locations, and a check for the existence of the core file will be done on game launch and an error displayed if it can't be found. Normally %EMUPATH% should not be used as the %CORE_ variable is the recommended method for defining core locations. @@ -1895,7 +1895,7 @@ For folders, most of the fields are identical although some are removed. In the ## Debug mode -By passing the --debug command line option, ES-DE will increase the logging to include a lot of additional debug output which is useful both for development and in order to pinpoint issues as a user. +By enabling the _Debug mode_ setting in the _Other settings_ menu or by passing the --debug command line option, ES-DE will increase the logging to include a lot of additional debug output which is useful both for development and in order to pinpoint issues as a user. In addition to this extra logging, a few key combinations are enabled when in debug mode. These are useful both for working on ES-DE itself as well as for theme developers. **Ctrl + i** @@ -1914,7 +1914,7 @@ This option only applies to menus, where it will render a grid on the user inter This will reload either a single gamelist or all gamelists depending on where you're located when entering the key combination (go to the system view to make a complete reload). Very useful for theme development as any changes to the theme files will be activated without requiring an application restart. Note that the menu needs to be closed for this key combination to have any effect. -By default all controller input (keyboard and controller button presses) will be logged when the --debug flag has been passed. To disable the input logging, the setting DebugSkipInputLogging kan be set to false in the es_settings.xml file. There is no menu entry to change this as it's intended for developers and not for end users. +By default all controller input (keyboard and controller button presses) will be logged when in debug mode. To disable the input logging, the setting DebugSkipInputLogging kan be set to false in the es_settings.xml file. There is no menu entry to change this as it's intended for developers and not for end users. ## Adding custom controller profiles @@ -1999,7 +1999,9 @@ Just make sure to not place the portable installation on a network share that us There are numerous locations throughout ES-DE where custom scripts can be executed if the option to do so has been enabled in the settings. You'll find the option _Enable custom event scripts_ on the Main menu under _Other settings_. By default this setting is deactivated so make sure to enable it to use this feature. -The approach is quite straightforward, ES-DE will look for any files inside a script directory that corresponds to the event that is triggered and will then execute all these files. If you want to have the scripts executed in a certain order you can name them accordingly as they will be sorted and executed in lexicographic order. The sorting is case-sensitive on Unix/Linux and case-insensitive on macOS and Windows. ES-DE will wait for each script to finish its execution before moving on to the next one, so the application will suspend briefly when whatever the script is doing is executing. If you want to avoid this you can setup a wrapper script that executes another script outside the ES-DE scripts directory as a background process. Refer to your operating system documentation on how to accomplish this. +The approach is quite straightforward, ES-DE will look for any files inside a script directory that corresponds to the event that is triggered and will then attempt to execute all these files (regardless of their file extensions). If you want to have the scripts executed in a certain order you can name them accordingly as they will be sorted and executed in lexicographic order. The sorting is case-sensitive on Unix/Linux and case-insensitive on macOS and Windows. ES-DE will wait for each script to finish its execution before moving on to the next one, so the application will suspend briefly when whatever the script is doing is executing. If you want to avoid this you can setup a wrapper script that executes another script outside the ES-DE scripts directory as a background process. Refer to your operating system documentation on how to accomplish this. + +On Windows it's also possible to place .lnk shortcut files in the event directories to have these executed in the same manner as a script. Note that while PowerShell scripts can't be executed directly they can be run via either a .lnk shortcut file or a .bat wrapper script where you explicitly call powershell.exe with the -command flag. Just be aware that by default the execution of PowerShell scripts is disabled on Windows. Further details about PowerShell is beyond the scope of this document. There are up to four parameters that will be passed to these scripts, as detailed below: diff --git a/THEMES-DEV.md b/THEMES-DEV.md index c357685ee..1a19c6778 100644 --- a/THEMES-DEV.md +++ b/THEMES-DEV.md @@ -314,7 +314,9 @@ In addition to this, if the name is used for the same element type but for diffe ## Debugging during theme development -If you are writing a theme it's recommended to launch ES-DE with the `--debug` flag from a terminal window. You can also pass the `--resolution` flag to avoid having the application window fill the entire screen. By doing so, you can read error messages directly in the terminal window without having to open the es_log.txt file. You can also reload the current gamelist or system view with `Ctrl+r` if the `--debug` flag has been set. There is also support for highlighting the size and position of each image and animation element by using the `Ctrl+i` key combination and likewise to highlight each text element by using the `Ctrl+t` keys. Again, both of these require that ES-DE has been launched with the `--debug` command line option, for example: +If you are writing a theme it's recommended to enable the _Debug mode_ setting from the _Other settings_ menu or to launch ES-DE with the `--debug` flag from a terminal window. You can also pass the `--resolution` flag to avoid having the application window fill the entire screen. By doing so you can read error messages directly in the terminal window without having to open the es_log.txt file. With debug mode enabled you can also reload the current gamelist or system view with `Ctrl + r` and you can highlight the size and position of each image and animation element by using the `Ctrl + i` key combination. Likewise you can highlight each text element via `Ctrl + t`. + +Here's an example of launching ES-DE in debug mode at a limited resolution, which will make it run in a window: ``` emulationstation --debug --resolution 1280 720 ``` @@ -770,7 +772,7 @@ The declared aspect ratios will always get displayed in the _UI settings_ menu i The use of variants, variant triggers, color schemes, aspect ratios and transition animation profiles is optional, i.e. a theme does not need to provide any of them. There must however be a capabilities.xml file present in the root of the theme directory. So if you don't wish to provide this functionality, simply create an empty file or perhaps add a short XML comment to clarify that the theme does not provide this functionality. In this case the theme will still load and work correctly but the menu options for selecting variants, color schemes and aspect ratios will be grayed out. -Note that changes to the capabilities.xml file are not reloaded when using the Ctrl+r key combination, instead ES-DE needs to be restarted to reload any changes to this file. +Note that changes to the capabilities.xml file are not reloaded when using the Ctrl + r key combination, instead ES-DE needs to be restarted to reload any changes to this file. ## The \ tag @@ -989,7 +991,7 @@ Just remember, _this only works if the elements have the same type._ ## Navigation sounds Navigation sounds are configured globally per theme, so it needs to be defined using the special `all` view. -It's recommended to put these elements in a separate file and include it from the main theme file (e.g. `./navigationsounds.xml`). Starting ES-DE with the --debug flag will provide feedback on whether the navigation sound elements were parsed correctly. If no navigation sounds are provided by the theme, then ES-DE will use the bundled navigation sounds as a fallback. This is done per sound file, so the theme could provide for example one or two custom sounds while using the bundled ES-DE sounds for the rest. +It's recommended to put these elements in a separate file and include it from the main theme file (e.g. `./navigationsounds.xml`). Enabling the _Debug mode_ setting in the _Other settings_ menu or starting ES-DE with the --debug flag will provide feedback on whether the navigation sound elements were parsed correctly. If no navigation sounds are provided by the theme, then ES-DE will use the bundled navigation sounds as a fallback. This is done per sound file, so the theme could provide for example one or two custom sounds while using the bundled ES-DE sounds for the rest. When fast-scrolling the textlist (by holding the up/down or shoulder buttons) the _scroll_ and _systembrowse_ sounds always play to completion before being played again, so it will sound weird if you have long samples such as those with reverb or silence added to the end. As such make sure to always use short samples for these sounds and test thoroughly with fast-scrolling. This is not an issue if using the carousel or grid elements. diff --git a/USERGUIDE-DEV.md b/USERGUIDE-DEV.md index c53f81e2c..9baaaee7a 100644 --- a/USERGUIDE-DEV.md +++ b/USERGUIDE-DEV.md @@ -65,7 +65,7 @@ On Unix this means `/home//.emulationstation`, on macOS `/Users/~/Applications/Proton/wine*.AppImage ``` +As an optional final touch it's a good idea to add entries for the Wine configuration tool WineCfg so it can be easily launched from inside ES-DE. The _desktop_ system is most suitable for this. Simply create two .sh files for this purpose, for example: +``` +~/ROMs/desktop/WineCfg (Wine).sh +~/ROMs/desktop/WineCfg (Proton).sh +``` + +The contents of the `WineCfg (Wine).sh` file could look something like the following (modify based on your AppImage filename of course): +``` +~/Applications/Wine/wine-stable_8.0.2-x86_64.AppImage WineCfg +``` + +Likewise the contents of the `WineCfg (Proton).sh` file could look something like the following: +``` +~/Applications/Proton/wine-staging_ge-proton_8-14-x86_64.AppImage WineCfg +``` + 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 | +| model2 | Model 2 Emulator | m2emulator/EMULATOR.EXE | | xbox360 | xenia | xenia/xenia.exe | | xbox360 | xenia | xenia/xenia_canary.exe | @@ -1135,7 +1154,15 @@ Likewise if using AdvanceMAME you need to define the ROM directory in the advmam **Sega Model 2** -If emulating Sega Model 2 games using _Model 2 Emulator_ on Windows, then you need to change the ROM directory path in the EMULATOR.INI file to point to your Model 2 ROMs. If you're using a portable ES-DE installation, then you can set the ROM directory path to be relative, for example: +If emulating Sega Model 2 games using _Model 2 Emulator_ (natively on Windows or using Wine or Proton on Linux), then you need to change the ROM directory path in the EMULATOR.INI file to point to your Model 2 ROMs. + +On Linux it could look something like the following: +``` +[RomDirs] +Dir1=Z:\home\myusername\ROMs\model2 +``` + +If you're using a portable ES-DE installation on Windows, then you can set the ROM directory path to be relative, for example: ``` [RomDirs] Dir1=..\..\ROMs\arcade\Sega Model 2 @@ -1143,9 +1170,13 @@ Dir1=..\..\ROMs\arcade\Sega Model 2 The EMULATOR.INI file is found in the _Model 2 Emulator_ installation directory. -Also note that Model 2 Emulator is a bit broken and on most GPU drivers it will only work correctly if ES-DE keeps running in the background while the game is launched. However, for some GPU drivers the opposite is true and the emulator will only work if ES-DE is suspended. To use the latter setup, switch to the alternative emulator entry _Model 2 Emulator [Suspend ES-DE] (Standalone)_. +Note that Model 2 Emulator is a bit broken and on Windows most GPU drivers it will only work correctly if ES-DE keeps running in the background while the game is launched. However, for some GPU drivers the opposite is true and the emulator will only work if ES-DE is suspended. To use the latter setup, switch to the alternative emulator entry _Model 2 Emulator [Suspend ES-DE] (Standalone)_. -On Unix/Linux and macOS, the only available emulator for Sega Model 2 is MAME, either the RetroArch - Current core or MAME standalone. Compatibility is still quite poor with only a handful of games working correctly, but this is likely to improve going forward as almost all games for this platform can already start and run to a certain degree. Some games flagged as not working by MAME are still playable with only minor glitches to audio and graphics, just make sure to use a recent ROM set for maximum compatibility. +To run Model 2 Emulator on Linux you need Wine or Proton, how to setup this is covered in the [Running Windows emulators on Linux using Wine or Proton](USERGUIDE-DEV.md#running-windows-emulators-on-linux-using-wine-or-proton) section. + +After Wine or Proton has been installed, simply unpack the emulator files into `~/Applications/m2emulator/` and you should be good to go. + +On macOS, the only available emulator for Sega Model 2 is MAME, either the RetroArch - Current core or MAME standalone. Compatibility is still quite poor with only a handful of games working correctly, but this is likely to improve going forward as almost all games for this platform can already start and run to a certain degree. Some games flagged as not working by MAME are still playable with only minor glitches to audio and graphics, just make sure to use a recent ROM set for maximum compatibility. **Sega Model 3** @@ -1174,7 +1205,7 @@ The only emulator that can run Atari Jaguar CD games is [BigPEmu](https://www.ri How to setup Wine is covered in the [Running Windows emulators on Linux using Wine or Proton](USERGUIDE-DEV.md#running-windows-emulators-on-linux-using-wine-or-proton) section. -Once Wine or Proton has been setup, 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/ @@ -1640,13 +1671,13 @@ https://github.com/cmclark00/XBLA-Automation **Running xenia on Linux** -_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 (or Proton) translation layer. How to setup Wine is covered in the [Running Windows emulators on Linux using Wine or Proton](USERGUIDE-DEV.md#running-windows-emulators-on-linux-using-wine-or-proton) section. -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: +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 @@ -1795,7 +1826,7 @@ As 3dSen is a Windows-only emulator you'll need Wine (or Proton) to run it. How to setup Wine is covered in the [Running Windows emulators on Linux using Wine or Proton](USERGUIDE-DEV.md#running-windows-emulators-on-linux-using-wine-or-proton) section. -Once Wine or Proton has been setup, move or copy all 3dSen files to `~/Applications/3dSen` +Once Wine or Proton has been setup, move or copy all 3dSen files to `~/Applications/3dSen/` **Windows-specific installation** @@ -2297,7 +2328,7 @@ The multi-scraper is accessed from the main menu by entering the **Scraper** men ### Scraping process -The default mode for the scraper is _Non-interactive_ mode, also referred to as _Automatic_ mode. When using this mode the selected systems are scraped without requiring any user input. This is quite convenient, but has the drawback of not asking for input if there are multiple matching games. In this case the game that the scraper service thinks is the most accurate match will be returned. However, if the _Search using file hashes_ scraper option is enabled and you're using ScreenScraper, then a hash value will be calculated from the actual game file and searches will performed based on this. Assuming there is a match for your file in the ScreenScraper database, this will lead to 100% accurate results. But if no matching file is found it's possible that the fallback name search will return the wrong game, and therefore leading to the wrong game metadata and media being downloaded. In practice this issue is quite rare so it's generally recommended to keep the automatic mode enabled. If no result is found for a game, the scraper will skip to the next one in queue. +The default mode for the scraper is _Non-interactive_ mode, also referred to as _Automatic_ mode. When using this mode the selected systems are scraped without requiring any user input. This is quite convenient, but has the drawback of not asking for input if there are multiple matching games. In this case the game that the scraper service thinks is the most accurate match will be returned. However, if the _Search using file hashes_ scraper option is enabled and you're using ScreenScraper, then a hash value will be calculated from the actual game file and searches will be performed based on this. It's often a good idea to uncompress zip archives for systems with single game files (for instance a .bin file inside a .zip archive) as it's more likely that there's a match for such files than for compressed archives. Assuming there is a match for your file in the ScreenScraper database, this will lead to 100% accurate results. But if no matching file is found then it's possible that the fallback name search will return the wrong game, and therefore leading to the wrong game metadata and media being downloaded. In practice this issue is quite rare so it's generally recommended to keep the automatic mode enabled. If no result is found for a game, the scraper will skip to the next one in queue. If _interactive mode_ is instead enabled, the process of scraping games is basically identical between the single-game scraper and the multi-scraper. You're presented with the returned scraper results, and you're able to refine the search if the scraper could not find your game. Sometimes small changes like adding or removing a colon or a minus sign can yield better results. Note that searches are handled entirely by the scraper service, ES-DE just presents the results returned from the service. File hash searching is not supported by ScreenScraper if using this search method. @@ -2445,7 +2476,7 @@ The password as registered on screenscraper.fr. This is masked using asterisks o **Use this account for ScreenScraper** -Whether to use the account that has been configured. If this is disabled, the username and password setup on this screen will be ignored during scraping. This can be useful if you have scraping issues and want to check whether it's related to your account or if it's a general problem. Note that screenscraper.fr does not seem to return a proper error message regarding incorrect username and password, but starting ES-DE with the --debug flag will indicate in the log file whether the username was included in the server response. +Whether to use the account that has been configured. If this is disabled, the username and password setup on this screen will be ignored during scraping. This can be useful if you have scraping issues and want to check whether it's related to your account or if it's a general problem. Note that screenscraper.fr does not seem to return a proper error message regarding incorrect username and password, but enabling the _Debug mode_ setting in the _Other settings_ menu or starting ES-DE with the --debug flag will indicate in the es_log.txt file whether the username was included in the server response. #### Content settings @@ -3054,6 +3085,10 @@ MAME short names for all arcade systems are automatically expanded to their full The window manager desktop composition can adversely affect the framerate of ES-DE, especially on weaker graphics cards and when running at higher resolution. As such the desktop compositor can be disabled when running ES-DE, although the window manager has to be configured to allow applications to do this for the option to have any effect. Note that enabling this setting can cause problems with some graphics drivers so if you experience strange flickering and similar, then make sure to keep this setting disabled. In case of such issues, make sure that the emulator is also not blocking the composition (e.g. RetroArch has a corresponding option). This setting has no effect if using Wayland, it only applies to X11/Xorg. +**Debug mode** + +Enabling this option will output detailed debug messages to es_log.txt and it also makes it possible to use the debug overlays and shortcuts which are documented in more depth in [INSTALL-DEV.md](INSTALL-DEV.md#debug-mode). Enabling this setting is equivalent to passing the --debug command line option. Make sure to only enable this setting when you really need it as it will slow down the application and cause the es_log.txt file to grow substantially. When passing the --debug command line option this setting will be grayed out in the menu. + **Display GPU statistics overlay** Displays the framerate and VRAM statistics as an overlay. You normally never need to use this unless you're debugging a performance problem or similar. **Note:** As of ES-DE v1.2 the VRAM usage statistics is not accurate. This will be addressed in a future release. @@ -3550,7 +3585,7 @@ The **@** symbol indicates that the emulator is _deprecated_ and will be removed | megadrivejp | Sega Mega Drive [Japan] | Genesis Plus GX | Genesis Plus GX Wide,
PicoDrive,
BlastEm,
BlastEm **(Standalone)** [U],
Mednafen **(Standalone)**,
ares **(Standalone)** | No | Single archive or ROM file | | megaduck | Creatronic Mega Duck | SameDuck | | No | Single archive or ROM file | | mess | Multi Emulator Super System | MESS 2015 | | | | -| model2 | Sega Model 2 | Model 2 Emulator **(Standalone)** [W],
MAME - Current [UM] | Model 2 Emulator [Suspend ES-DE] **(Standalone)** [W],
MAME - Current [W],
MAME **(Standalone)** | Yes for MAME | See the specific _Arcade and Neo Geo_ section elsewhere in this guide | +| model2 | Sega Model 2 | Model 2 Emulator **(Standalone)** [W],
MAME - Current [UM] | Model 2 Emulator [Suspend ES-DE] **(Standalone)** [W],
MAME - Current [W],
MAME **(Standalone)**,
Model 2 Emulator **(Wine)** [U],
Model 2 Emulator **(Proton)** [U] | Yes for MAME | See the specific _Arcade and Neo Geo_ section elsewhere in this guide | | model3 | Sega Model 3 | Supermodel **(Standalone)** [UW] | Supermodel [Fullscreen] **(Standalone)** [UW] | No | See the specific _Arcade and Neo Geo_ section elsewhere in this guide | | moonlight | Moonlight Game Streaming | _Placeholder_ | | | | | moto | Thomson MO/TO Series | Theodore | | | | @@ -3615,7 +3650,7 @@ The **@** symbol indicates that the emulator is _deprecated_ and will be removed | spectravideo | Spectravideo | blueMSX | | | | | steam | Valve Steam | Steam **(Standalone)** | | No | See the specific _Steam_ section elsewhere in this guide | | stratagus | Stratagus Game Engine | _Placeholder_ | | | | -| stv | Sega Titan Video Game System | Kronos [UW],
MAME **(Standalone)** [M] | MAME **(Standalone)** [UW],
Mednafen **(Standalone)** | Yes | Single archive file | +| stv | Sega Titan Video Game System | Kronos [UW],
MAME - Current [M] | MAME - Current [UW],
MAME **(Standalone)**,
Mednafen **(Standalone)** | Yes | Single archive file | | sufami | Bandai SuFami Turbo | Snes9x - Current | Snes9x 2010,
Snes9x **(Standalone)**,
bsnes,
bsnes-hd,
bsnes-mercury Accuracy,
bsnes **(Standalone)** [UW],
ares **(Standalone)** | | | | supergrafx | NEC SuperGrafx | Beetle SuperGrafx | Beetle PCE,
ares **(Standalone)** | | | | supervision | Watara Supervision | Potator | | No | Single archive or ROM file |