If we have a custom config with
#include "/opt/retropie/configs/all/retroarch.cfg"
Changing an option that is set in the config above in RGUI and using "Save current configuration" from RGUI will not save that option.
No options that exist in the include will be saved.
This is a revert of upstream change https://github.com/libretro/RetroArch/pull/10524/commits/9eb84728
The change impacts `lr-mame`,`lr-mess`,`lr-mame2016`,`lr-mess2016` and `mame`.
It should fix building on new Ubuntu 20.04+ installations, which don't have a default `python` executable.
Since `python3` is automatically needed by the installation (via `python3-pyudev` for `joy2key`), no explicit dependency for `python3` was added.
* added a joystick auto-configuration for Emulationstation. Joypad mappings:
* A: MSX controller A; OSD menu : Back
* B: MSX controller B; OSD menu : Action
* D-Pad/Left Analog: MSX controller joystick
* Start - toggle the openMSX OSD menu
* Select - Show on-screen keyboard
* Y - MSX F1
* X - MSX F2
* Left Trigger - MSX F3
* Right Trigger - MSX F4
The joystick's A/B/D-Pad are functional in the openMSX menu, however B is action and A is cancel/back for some reason.
The joystick is loaded using the `retropie-init.tcl` script, automatically loaded and executed during startup. Per-game overrides are possible, as long as the correct configuration script for a gamepad is found (needs some documentation).
* created a minimal configuration, with some performance optimization for Pi0/Pi1 and configuring a default machine.
Auto-saving is disabled, because it will save the joystick configuration and it might pose problems when using different joysticks.
* symlinked the configuration folder into `$configdir/msx/openmsx`.
This is useful for adding new machines/configurations and editing the gamepad auto-configurations.
* symlinked the user's _systemroms_ folder to `$biosdir/openmsx`.
openMSX uses file hashes to identify firmware files, so the filenames/folder structure is not important.
* added one emulator variation for each major MSX model (MSX2/MSX2+/MSX TurboR)
They need the appropriate BIOS/firmware files, otherwise they won't run.
NOTE: there are variations of machines using the open source C-BIOS for each major model, but C-BIOS only supports cartridges, so no tape/disk/floppy images will work.
For the SDL2 version, the patch to `configure` is no longer needed,
scalers are no longer disabled on Raspberry systems (removed upstream in e9d20eec4b3 and 6fb2d69bc56).
For the SDL1 version, patches have been re-based.
Upstream includes always the `keymapper` backend, removed the `configure` option for it.
The changes in 25d6710f9275e49 lead to a crash when the emulator starts in fullscreen,
when using the RPI driver in SDL2. Looks like repeated calls to create/destroy the SDL renderer,
when resizing the window, lead to a VC driver error:
failed to add service - already in use?
The RPI driver already starts the window in fullscreen, so there's no visible difference without the paramter removed.
* useful for lower end systems as resid is cpu intensive, even on the RPI2)
* before it was enabled by default, but now needs to be enabled manually via configure
Older versions actually throw an error regarding CXX17 dialect support but seems to build fine. If needed
we can roll back further, but we will need to stop support for Stretch and Ubuntu 18.04 soon due to the work
required to maintain modules for older toolchains.
Latest version (0.16) needs `gcc` 8 for C++20 features (`--std=c++2a`). This breaks the module for systems with older `gcc` (ex. Debian Stretch).
Added a new scriptmodule based on the previous version (0.15), which used SDL1 instead of SDL2, and keep the module flags from before a50179093.
Added a check for the `gcc` version in the SDL2 scriptmodule.
* use "--config " instead of "-config=" and "--autoload "
* may adjust this further and split out amiberry launch to its own code rather than sharing the uae4arm launch code
Switched SDLTRS to be built from https://gitlab.com/jengun/sdltrs, which is an active fork of the original SDLTRS emulator.
* use the SDL2 branch, which should be more portable (KMS/Odroid/etc.)
* create a minimum configuration for $HOME/.sdltrs.t8c
* although not explicitely specified, the main license seems to be BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)
* simplify a bit the emulator starting commands
There has been a lot of contributions to this module, and unfortunately some of the logic has become rather obfuscated,
with a lot of duplication. This is a combination of an earlier changeset I had, but adding aarch64 needed enough logic
changes, it made sense to include it all. There are more improvements needed, but this de-duplicates some of the logic.
Vero4k may need a revisit.
Changes include:
* temporarily disable rice and gles2n64 for aarch64 due to build errors (just HOST checking errors so may well be easily fixed)
* remove a lot of vero4k specific blocks in favour of the mali flag
* enable mali for module (builds ok on odroid xu)
lr-gpsp:
cpu_threaded.c built with -O2 on gcc 8 produces a non working binary. This source already had
a different optimisation level from the rest of the code (O2 vs O3). However, on gcc-8 it causes
a non working binary when built with anything other than O0, but this could have some performance
issues (would need testing on a rpi1).
I compared all the different optimisation flags enabled by O1 and also with any changes from gcc-6,
but not all GCC optimisations are controllable from flags. It was not possible to produce a working
binary with O1 - even disabling all the configurable optimisations enabled by O1.
The issue is most likely undefined behaviour in this file (which has a lot of large macros), and it
probably needs some fixes. However it could be a bug in the gcc-8 optimiser code.
As the issue isn't present with gcc-6, and as gcc-6 is available on Debian buster, the easiest
workaround is to just force the code to be build with gcc-6.
Also adjusted the makefile to pass parameters for the make clean, as some platform specific objects
are not removed otherwise.
gpsp:
Forced gcc-6 as with lr-gpsp.
Simplified the module flags to just include videocore platforms.
Update the emulator to the latest version, which is now using SDL2, so `dispmanx` is no longer required.
Modified the installation to include some utilities (might be useful for disc/cartridge manipulation) and to include the docs and license.
Current vice was failing in configure stage checking for pdf generation dependencies,
despite texinfo being installed. As we don't need pdf documentation, disabling is a quick fix.
Also removed texinfo dependency as it's not needed with this disabled.