* 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.
* default signing key can be overridden with __gpg_signing_key
* added gpg dependency by default
* download retropie key from ubuntu keyserver if it doesn't exist in keyring
* added download helper function
* rework logic for rp_installBin and rp_createBin
* copy secret key to chroots for package building
* 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
* Makefile.libretro now tries to get the current git tag, which can fail if tags havent been downloaded - code looks somewhat risky, but we can override the failing part with a make var
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.
Added sdl1 patch to allow overriding of graphics_get_display_size as it returns 0 on fkms for width and height,
which skips the scaling code and ability to adjust aspect ratio.
New ENV vars are SDL_DISPMANX_WIDTH and SDL_DISPMANX_HEIGHT which we now set manually in runcommand on fkms
when a dispmanx backend is used with sdl1.
This should resolve aspect ratio issues rpi4 users were having with some sdl1 emulators that worked with the dispmanx
backend, but always stretched to fill the entire screen.
This also enables the use of SDL_DISPMANX_RATIO to tweak the ratio when scaling - from 0.2 to 6 - currently
unused in any RetroPie modules by default, but used to be used for tweaking the vice scaling, to more accurately
produce a correct aspect ratio for the C64. But can be used by users manually via emulators.cfg if required.
bumped sdl1 version to force an update - including for Stretch, although this is primarily a buster/rpi4 issue
This only affected amiberry binaries since Feb 2020 when the build logic was switched
to use this flag. This meant a pure SDL2 version was being built rather than the dispmanx+SDL2 version.
Also corrected the flag setting which was changed in the rpi_aarch64 branch to be an array but this was missed.
The code actually still worked, but it should have been +=(dispmanx) not +=" dispmanx".
__has_dispmanx env var can be used to force this flag for kms/fkms.
* 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