Difference between revisions of "Game Emulators"

From Elvanör's Technical Wiki
Jump to navigationJump to search
Line 30: Line 30:
* Some cores do not work at all as they have unresolved symbols.
* Some cores do not work at all as they have unresolved symbols.
* Removing a core from Kodi add-ons interface is dangerous, some leftovers breaking stuff are present after a removal. I had to manually remove via SSH some files to get other cores working again.
* Removing a core from Kodi add-ons interface is dangerous, some leftovers breaking stuff are present after a removal. I had to manually remove via SSH some files to get other cores working again.
== MAME ==
* There can be a controller configuration issue with the "On Screen Display", where a button (or joystick "key") brings up this display. [http://forum.arcadecontrols.com/index.php?topic=148394.0 Follow instructions on this link to fix.]


= Nintendo NES =
= Nintendo NES =

Revision as of 11:10, 30 November 2020

RetroArch

  • RetroArch is a front-end system / framework for several emulators. It's a very good piece of software.
  • To use it on Gentoo, install every component via ebuilds (emulator cores, shaders, joypad configurations). Using the system automatic installer does not work (at least not out of the box) on Gentoo. Note that RetroArch is not available on main repository but on overlays.
  • Configuration and setup of a PS 4 controller is completely automatic and out of the box if the proper ebuild has been installed.
  • F1 returns to the main menu from a game.
  • Starting from RetroArch 1.8.5, Ozone is now the default theme. You can revert back to the XMB theme (which I find nicer) if needed. On LibreELEC, the Ozone theme does not work well at all and should be replaced by XMB.
  • When using ROMs, the US (or Japan) version of the game should always be used if possible. This is because US/Japan uses NTSC standard with 60Hz refresh rate, whereas Europe uses PAL at 50Hz. Thus framerate is limited to 50 (vs 60) for European ROMs, resulting in a slower impression for everything.

Advanced configuration

  • The code matching a controller to its profile seems very buggy. I've looked at the source and it matches only on name, not with vendor id and model id which seems extremely dangerous. As a result, a PS4 controller (only the v2, v1 was fine) did not get a correct association and buttons were totally wrong. To solve this, I removed the problematic .cfg files so that RA could only associate the controller with the right profile.
  • To view FPS (frames per second), you need to go to Settings -> Onscreen Display -> Onscreen Notifications. Note that the FPS won't be higher than what the game should have, so for instance a NTSC game would be capped at 60fps. This is normal, and most of the games will indeed have a 60 fps limit.
  • Only in real fullscreen mode does Retroarch have control over the resolution and refresh rate of your display. With windowed fullscreen mode (which is the default), it uses the resolution of your system.
  • Make sure you have a refresh rate of 60Hz (at least). With 30Hz, you need to change the resolution to obtain a better refresh rate. The resolution can be changed in the GUI (if real full screen is chosen), however it seems the refresh rate can be changed only via the config file. Here are the parameters:
video_fullscreen = "true"
video_fullscreen_x = "1920"
video_fullscreen_y = "1080"
video_refresh_rate = "60.000000"

Logs

  • The logs mention which core is used for a particular ROM / game. This can be very useful.
  • Associations of a controller with its profile (and path) are not logged, contrary to what the documentation says. Maybe this was done in the past.

Issues with LibreELEC distribution

  • Some cores do not work at all as they have unresolved symbols.
  • Removing a core from Kodi add-ons interface is dangerous, some leftovers breaking stuff are present after a removal. I had to manually remove via SSH some files to get other cores working again.

MAME

Nintendo NES

  • The best current one (2019) seems to be fceux. It has full-screen OpenGL support which provides nice smoothing. It has some bugs though; for instance NTSC does not work in full-screen, another mode must be chosen.

Previously used

  • fakenes is good, with an excellent GUI and an excellent video support via OpenGL. But recent ebuilds do not compile, and the software seems abandonned.
  • Fakenes is quite slow with good video options (HQ4X). It also must be ran in windowed mode in order to use alt-tab.
  • Mednafen is another candidate. Recent versions are not available in Portage.

Sega Saturn

  • The best one on Linux seems to be Yabause. Although slow, and problematic for sound, it is impressive already.

DOS

  • You must use DOSBox. I did not find yet a good front-end for Gentoo. Write the configuration file yourself, and start the emulator directly on the command-line with as an argument the .EXE you want to load.
  • Press Control-F10 to turn the mouse cursor off (useful for many games). Press Control-F11 or F12 to increase or decrease the CPU cycles. Some old games may need a very low cycle rate. Beware that by default these keys are already captured by KDE.
  • Press alt-enter to switch fullscreen mode.

Rendering and scaling

  • Important settings are fullresolution=desktop and windowresolution=desktop. If fullresolution=original is used, the resolution used for DOSBox will be the one of the game (eg, a very low one), but the graphical chipset may smooth things out and it may turn out to be a correct rendering.
  • If windowresolution=desktop is used, the rendering engine should support scaling. This is the case with OpenGL, but on Gentoo I cannot seem to get OpenGL to work correctly.

Obsolete

  • dboxfe was a front end available in Portage. It's no longer there.

Commodore 64

  • Vice 1.22 is good, however I had problems with keyboard keys and speed (while reading the disks).

SCUMMVM

  • Excellent emulator to play LucasArts games as well as other ones such as Legend of Kyrandia.
  • Don't select the ALSA driver as a sound driver (for some reason it then says it cannot find the MIDI port). Select the Adlib driver or the default one.