* Update dolphin.sh to include other settings
Adds a symlink to .local/share/dolphin-emu which includes memory card data, game specific configs, Wii Nand etc which users may want easier access to
Modified the module to update the dependencies and improve the initial configuration
* Build changes:
- build dependencies modified to include SDL2. Latest version (as of Jan 2024) enable SDL2 by default on Linux and use it for input auto-configuration.
Gamepads detected using SDL's GameController API are automatically configred based on their mappings.
- disable analytics and update support durign the build. Updates are handled by RetroPie-Setup and - unfortunately - analytics require a keyboard/mouse to get over the initial agreement pop-up that is presented to the user on the 1st run.
* Configuration updates:
- on KMS systems, start Dolphin via X11 by using the `XINIT-WM` launc prefix, which instructs `runcommand` to start a minimal desktop env.
- change the location of the configuration folder, since now Dolphin follows the XDG specs and uses `$XDG_CONFIG_HOME` to store its settings.
It will not affect existing installations, since we symlink-it to the configuration folder anyway and Dolphin will look in the previous location first.
- pre-set a few initial configuration options in the main `Dolphin.ini` configuration file, upating existing options
- add a new pre-set for the graphics backend configuration file in `GFX.ini` to switch to GLES3 on platforms where it is available.
It should help the Pi5 but also other SBCs we support (i.e. OrangePi5 / RK3399) to startw the correct rendering backend.
- set the '-gui' variant as default. Since the 'nogui' doesn't seem to read the configuration files correctly (i.e. no Fullscreen or Hotkeys are working), use the main program started with '--batch' to run a game
Recently [1], Dolphin dropped support for Qt5.
For systems where Qt6 is not available (Debian 11 _bullseye_), use a commit from before the change to prevent the build from failing.
[1] https://github.com/dolphin-emu/dolphin/pull/11775
Since upstream started requiring a C++20 capable compiler (gcc 10 min), update our build support based on the available gcc version:
* minimum gcc version is 8 (Ubuntu 18.04, Debian 10)
* current master can compile with gcc 10 (Debian 11, Ubuntu 22.04)
* allow building with gcc 9 (Ubuntu 20.04)
Upstream has transitioned and recommends using Qt6 for building, so use that when available (Ubuntu 22.04 for now, but Debian 'bookworkm' and 'bullseye-backports' also include it).
gcc -dumpversion on GCC >= 7 seems to provide the major version but the documentation suggests this depends on how it's configured.
We only need to test the major version so using compareVersions isn't required.
https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html states:
>Print the compiler version (for example, 3.0, 6.3.0 or 7)—and don’t do anything else. This is the compiler
>version used in filesystem paths and specs. Depending on how the compiler has been configured it can be
>just a single number (major version), two numbers separated by a dot (major and minor version) or three
>numbers separated by dots (major, minor and patchlevel version).
Ensure __gcc_version only contains the major version just in case in system.sh
* Amiga - new extensions supported by `lr-puae`
* C64 - new extensions supported by `lr-vice`
* 3DO - added `.chd`, supported by the Opera Libretro core; updated license URL for the core.
* GC/Wii - added `.rvz`, supported by Dolphin
* MSX - added `.cas`, supported by both `lr-bluesmsx` and `openmsx`
* PC88 - added `.m3u`, supported by `lr-quasi88`
Older GCC on at least Debian used to output a 3 part version like 6.3.0 with gcc -dumpversion
Newer GCC / OS seems to only output the major version which broke comparisons as dpkg will consider a version such as "6" to be lower than 6.0.0
* don't remove packaged version (no need)
* Build -> Build / no need for mkdir && oneliners
* fix install prefix
* create initial config with fullscreen enabled
* symlink configs
* fix bad launch parameters for nogui version and add gui alternatives
-x86 only.
-no hotkeys. (dolphin seems to have no hotkey support?!)
-runs zelda ww with 15-30fps on a Pentium N3050 (Atom based) which is
real good for such a low end platform.
-only system wide installation atm.
-build time > 1h on a Pentium N3050.
-you need a mouse to get emulator window in front.
https://github.com/RetroPie/RetroPie-Setup/issues/1633