RetroArch is the reference frontend for the libretro API. Popular
examples of implementations for this API includes videogame system
emulators and game engines, but also more generalized 3D programs.
These programs are instantiated as dynamic libraries. We refer to these
as "libretro cores".

libretro is an API that exposes generic audio/video/input callbacks. A
frontend for libretro (such as RetroArch) handles video output, audio
output, input and application lifecycle. A libretro core written in
portable C or C++ can run seamlessly on many platforms with very
little/no porting effort.

While RetroArch is the reference frontend for libretro, several other
projects have used the libretro interface to include support for
emulators and/or game engines. libretro is completely open and free for
anyone to use.

RetroArch will require at least one of the libretro cores to play any games.

Cores alternatively can be downloaded with the online updater from the
libretro buildbot instead of being compiled with slackbuilds. This will
require the core directory to be writable and is incompatible with the
libretro slackbuilds. The buildbot can be used with:
  BUILDBOT=1 ./RetroArch.SlackBuild

To build debugging symbols for RetroArch use:
  DEBUG=1 ./RetroArch.SlackBuild

To use RetroArch's udev input driver your user will need to be part of the
'input' group. This can be done with the following command:

  usermod -a -G input user_name

Some optional dependencies include:
ffmpeg jack-audio-connection-kit libxkbcommon miniupnpc nvidia-cg-toolkit
python3 SDL2 vulkansdk wayland

Python3 support for shaders will need to be enabled with:
  PYTHON=1 ./RetroArch.SlackBuild

Note: Wayland support requires mesa to be rebuilt with Wayland support,
using the following configure parameters.

  --with-egl-platforms=x11,drm,wayland

Retroarch optionally supports using OpenGL ES 2 and OpenGL ES 3 instead of
OpenGL which will require video card and driver support. This can be done
by building RetroArch with:
  GLES=1 ./RetroArch.SlackBuild
or
  GLES3=1 ./RetroArch.SlackBuild

RetroArch optionally supports using Vulkan instead of OpenGL, this will
require the vulkansdk from SBo and support for your video card and driver.
