RetroArch: Difference between revisions

imported>JasonWoof
Show how to install/run RetroArch with cores
 
Jasi (talk | contribs)
m Installation: Move link to introduction and change wording.
 
(11 intermediate revisions by 8 users not shown)
Line 1: Line 1:
== RetroArch ==
[https://www.retroarch.com/ RetroArch] is a all-in-one front-end for emulators, game engines and media players. Nix allows for installing RetroArch cores in a declarative and customizable way.


You can install retroarch with some cores (actual emulators) by putting something like this in your /etc/nixos/configuration.nix
== Installation ==
A RetroArch installation can be customized via different packages:


<syntaxhighlight lang="nix">
* <code>retroarch-full</code>, contains all libretro cores.
environment.systemPackages = with pkgs; [
* <code>retroarch-free</code>, excludes unfree cores.
     (retroarch.override { cores = with libretro; [ genesis-plus-gx snes9x beetle-psx-hw ]; })
* <code>retroarch.withCores</code>, a helper function for generating a retroarch package with a custom list of cores.
    libretro.genesis-plus-gx
 
    libretro.snes9x
=== Installing only certain cores ===
    libretro.beetle-psx-hw
 
];
Using <code>retroarch.withCores</code>:
</syntaxhighlight>
{{File|3={
  environment.systemPackages = with pkgs; [
     (retroarch.withCores (cores: with cores; [
      genesis-plus-gx
      snes9x
      beetle-psx-hw
    ]))
  ];
}|name=/etc/nixos/configuration.nix|lang=nix}}


FIXME: where is the list of cores that libretro exports?
One can browse the available cores [https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/emulators/libretro here]


In the meantime, maybe these strings work: https://gist.github.com/GrahamcOfBorg/fa41301565a858134941b91179822b7d
== Troubleshooting ==


Once you update your system you can run <code>retroarch</code> to access the main gui, or eg <code>retroarch-mednafen-psx-hw my-game-file.cue</code> to run a game directly.
=== Graphics ===
Not all the graphics settings are in the same place. You'll want to look under the top-level Settings (in the left column under Main Menu) and also under <code>Main Menu -> Quick Menu -> Options</code>


=== Mapping ===
The following way to remap a controller or map a new controller is convoluted, but works and allows you to upstream your changes.


== Gotchas ==
# Fork the [https://github.com/libretro/retroarch-joypad-autoconfig retroarch-joypad-autoconfig] project and clone it in a folder of your choosing.
# With Retroarch open, go to Settings > Directory and change Controller Profiles to point to the same folder. Note: Do not attempt to modify the directory in <code>retroarch.cfg</code> directly because it will be overwritten on startup.
# Now, saving the mapping will work but this will be ignored on next startup of Retroarch.
# After you are happy with the mapping, commit the changes in the folder where you cloned the retroarch-joypad-autoconfig project and push them to your fork.
# To use what you just pushed in your configuration right away, add the following overlay to your nix config by replacing the various fields with those corresponding to your fork:<syntaxhighlight lang="nix">
(final: prev: {
  retroarch-joypad-autoconfig = prev.retroarch-joypad-autoconfig.overrideAttrs {
    src = prev.fetchFromGitHub {
      owner = "ibizaman";
      repo = "retroarch-joypad-autoconfig";
      rev = "420a8fa4dc7b12f7c176fa0e704e9f987f6ceabd";
      hash = "sha256-yIvW9UTgc+/hhwx+93FgzrDBEBD35xFdBiVdJCKUYBc=";
    };
  };
})
</syntaxhighlight>
# After switching over to the new configuration and restarting Retroarch, you will see the mappings got updated.
# Now you can create a pull request from your fork to the retroarch-joypad-autoconfig project to upstream your changes.


Not all the graphics settings are in the same place. You'll want to look under the top-level Settings (in the left column under Main Menu) and also under Main Menu -> Quick Menu -> Options
=== Input Reset ===


beetle-psx-hw input (by keyboard anyway) only works if you go to <code>Settings -> Input -> Port 1 Controls -> Device Type</code> and set it to PlayStation Controller '''every time you run the emulator'''.


== Bugs ==
=== Missing Icons ===


beetle-psx-hw input (by keyboard anyway) only works if you go to Settings -> Input -> Port 1 Controls -> Device Type and set it to PlayStation Controller '''every time you run the emulator'''.
No icons show in the GUI, including the mouse cursor. You need to go to <code>Online Updater > Update Assets</code> to download the icons. You can navigate the GUI with only the keyboard. Press enter to open sections/pages, backspace to go back out, arrow keys to choose between options (left/right change some values).


No icons show in the gui, including the mouse cursor. you can use the gui with only the keyboard though. Press enter to open  sections/pages, backspace to go back out. arrow keys to choose between options (left/right change some values).
=== Error save controller profile ===
This is because the location of the controller profile is in the nix store, making it read-only. To actually remap a controller, see the [[RetroArch#Mapping|Mapping]] section.
[[Category:Applications]]
[[Category:Gaming]]