* 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.
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
Before setting the SDL2 env variables that configure the modesetting for DRM/KMS, validate the CrtcId/ModeId tuple against the current list reported by `modetest`. Changes in the kernel DRM driver could make the existing modesetting configuration (stored in `videomodes.cfg`) invalid because of different CrtcId and/or ModeId in new versions of the driver.
Added 'attractmode' for the 'kms' platform, since it now includes support for DRM/KMS.
The 'sfml-pi' branch on https://github.com/mickelson/sfml-pi/ can be built with OpenGL or GLES support (default is OpenGL).
Added 2 corrections:
- don't remove an empty system name (can happen when 'delEmulator' is used for a Port)
- really replace '/' in the system's full name, on both addition and deletion of a system
When using KMS, `attractmode` starts with 'preferred' video mode, as reported by the display's EDID,
This could be different than the current video mode set via 'config.txt' or via 'cmdline.txt' by users.
Modified the startup script to hint the video mode via 'SFML_DRM_MODE' and 'SFML_DRM_REFRESH' environment variables.
* running RetroPie-Setup on boot isn't efficient / it should work without RetroPie-Setup present.
* running it as root on boot causes /opt/retropie/configs/all to be chowned to root due to setupDirectories call
Mounting ext3/ext4 and other native filesystems was broken due to having uid=X,gid=X in the default mount options.
Now we just set these options on a per filesystem basis via FS_MOUNTOPTIONS
When current mode is custom set and DRM doesn't find it via EDID detection, `runcommand` fails to detect the current video mode.
This might happen when:
* EDID is incorrect and user sets a video mode with `hdmi_group/hdmi_mode` or via the kernel parameters.
* new video mode added via `hdmi_cvt`/`hdmi_timings`
Forum posts:
* https://retropie.org.uk/forum/topic/25526/
* https://retropie.org.uk/forum/topic/25834/
* sixaxis: add special check for libbluetooth3 and reload bluetooth
stack if install was triggered, otherwise sixaxis plugin will not be active.
* customhidsony: update patch and amend module description