Added Pegasus as alternative to Kodi and EmulationStation. The list of available auto-start front-ends is now dynamic, based on whether Kodi and Pegasus are available.
It was abandoned by the owner and it's already bitrotten by not being compatible with Python3.
Judging by the number of (missing) topics in the forums, I don't think it's used that much.
We can still keep the repository at retropie/RetroPie-Manager, though it's probably better suited to archive the repo.
Upgrade to version 0.9.6, last maintenance release in the v0.9 series.
Main features:
* Add support for GuliKit KingKong2 PRO controllers
* Move paddles to range BTN_TRIGGER_HAPPY5
* Actually save rumble test values before we replace them
* Support GameSir T4 Cyclone models
* Fix documentation about Share button
Added the SDL12-Compat backend, using a shim library which implements the `sdl1.2` API over SDL2.
The new `sdl12-compat` backend should be used for SDL1 applications when:
* the platform doesn't have `dispmanx` anymore (e.g. `rpi` platforms with RaspiOS Bullseye and later)
* `sdl2` has a working accelerated video & rendering drivers
* not running under `x11` (i.e. KMS)
Note: for SDL1+Videocore specific applications, which use directly the dispmanx/legacy GL stack (e.g. `pcsx-rearmed`, `advmame-1.4`, etc.), the backend will not help.
Replaced the `mesa-drm` scriptmodule and the `modetest` utility with a new program, based on the [kmsxx](https://github.com/tomba/kmsxx) project.
1. Added a new scriptmodule to install the new modesetting utilities:
* kmsblank - blank screen(s)
* kmstest - set modes and planes and show test pattern on crtcs/planes,
and test page flips
* kmsprint(-rp) - print information about DRM objects (connectors, encoders, video modes, crtcs)
* fbtest - show info about the console framebuffer
It's based on https://github.com/tomba/kmsxx, forked to add a custom `kmsprint-rp` utility which we can use in `runcommand` instead of `modetest`.
Advantages over `modetest`:
- it's based on a simpler standalone project and not part of Mesa, less code.
- it's has a modularized C++ API for working with Cards/Encoders/Connectors/CRTCs/etc, modeled after the DRM API entities
- works with any DRM/KMS card and doesn't have any card specific code like `modetest`
- it's faster than modetest (both when KMS is enabled or disabled)
- can print the analog video modes when the 'composite' output is enabled for RPI. I think `modetest` can be modified to support it, but with `kmsxx` is working without any special handling.
Note that a Debian package of the `kmsxx` upstream project is packaged in Rasberry PI OS (as `kms++-utils`), but it's not part of Debian. Packaging it as part of RetroPie helps with:
- integration with `runcommand`, since we can run our own custom query utility
- resolution switching on other KMS platforms
2. Changes to `runcommand`:
- replaced `modetest` with `kmsprint-rp`. The format for the modeline printing has changed a bit, to make it easier to parse and integrate the result in `runcommand`. In addition to the rounded/integral refresh rate, there's a new column to show a decimal refresh rate; the _[p|n][h|v]sync_ flags have been reformatted as _[h|v]sync[-|+]_.
- simplified the modeline parsing for KMS, taking advantage of the new format
- refresh rate (from KMS modeline) is now be a decimal number (.2f), supported by RetroArch
On RasPI OS 11/12 (bullseye/bookworm) the `vcgencmd` command has moved completely to `/usr/bin`, while on Buster it's just a symlink from `/usr/bin/` to `/opt/vc/bin`. Remove the full path to the command and just check whether is't in our `$PATH` before running.
Check if '/dev/dri/card0' exists before running `$KMSTOOL` (now 'modetest') to check for kernel modesettings support.
This avoids 'modetest' being executed and removes almost 2 sec from the `runcommand` runtime on a Pi3.
Add the `xset` commands to disable the display powersave and screen blanking, since gamepad activity is ignored by Xorg and the display will go to sleep if no keyboard/mouse is active.
I removed the script launchers ccbee7c05a, but the `xset` commands haven't been added `XINIT-WM` launchers.
Extend the XINIT: launch prefix with two new ones in order to start a window manager before an x11 application is started.
XINIT-WM: will start a window manager without the cursor
XINIT-WMC: will start a window manager with the cursor
This is similar to how the 'x11' backend starts an application, but without additional configuration set in 'backends.cfg'.
When running under Gnome/Wayland on Ubuntu 22.04 default configuration, the '--fullscreen-borderless' is not actually fullscreen.
The top horizontal panel (?) is still visible and the EmulationStation window is actually pushed down.
Running with just '--fullscreen' is enough, but this is the default, thus there's no need to add any additional parameters when Gnome/Wayland is the current session.
Tested on an updated Ubuntu 22.04, with the default Gnome session.
Upgrading via 'apt' the Bluez package with a the version from Debian updates will overwrite the RP package. This breaks pairing for some gamepads, thus try to always have installed the RP package.
Pin the package so it's always installed/updated from archive.raspberrypi.org on RaspiOS 10 'Buster'.
Added a related change to how 'apt' is run when updating from `raspbiantoolsz:
* add '--allow-downgrades' to make sure that 'bluez' is retrieved from the RP repos if it was already upgraded by an upstream update.
The Pi5 uses a different architecture for the GPIO pins, which is not compatible with previous models.
All GPIO functions are now handled by the RP1 [1] southbridge chip and the GPIO reading mechanism used in previous models doesn't work here.
Disabled drivers:
- gamecond and db9 (gamecondriver)
- mk_arcadejoystick_rpi
- snesdev
[1] https://www.raspberrypi.com/documentation/microcontrollers/rp1.html
The `libraspberrypi-bin` package has been deprecated in RaspiOS's latest Bookworm release [1], being replaced with `raspi-utils`.
We need this package for `tvservice`, but on KMS platforms this utility is obsolete and always returns an error.
The changes will:
- leave the `libraspberrypi-bin` dependency in `runcommand` just for RPI+DispmanX platforms (Buster and eariler Raspbian)
- replace the `mupen64plus` dependency with the correct one (`libraspberrypi0`), since this is where the (E)GL(ES) VC drivers are located. `tvservice` , used by the starting script, should be installed by the `runcommand` dependency
[1] RasPiOS 06.Dec.2023 release, list of included packages: https://downloads.raspberrypi.com/raspios_arm64/images/raspios_arm64-2023-12-06/2023-12-05-raspios-bookworm-arm64.info
Previous (and initial) Bookworm release contained the `libraspberrypi-bin` package: https://downloads.raspberrypi.com/raspios_arm64/images/raspios_arm64-2023-10-10/2023-10-10-raspios-bookworm-arm64.info
Added the ability to patch themes locally to fix the gamelist layout bugs in themes, surfaced after EmulationStation's fixes for positioning, added a in 2.10.x.
Mostly done to fix @ruckage's themes, which haven't been updated after the new EmulationStation version.
Fixes included:
* for the 'snes-mini' theme, based on https://github.com/ruckage/es-theme-snes-mini/pull/26, submitted by @makofee
* for the 'nes-mini' theme, started from https://github.com/ruckage/es-theme-nes-mini/pulls/13, submitted by @grosa1, which in turn is based on https://retropie.org.uk/forum/topic/12583/snes-mini-theme/929?_=1699852993853 (?). Followed by some testing and fixing for the other resolutions which are not covered by the initial changes.
* for the 'famicom-mini' theme, adapted from the previous patch with some adjustments added after testing each resolution supported.
Changed to use the driver from https://github.com/Ryochan7/sc-controller since it offers a Python3 compatible version.
Module has been updatd updated/reworked:
- the driver repo is no longer cloned to $md_inst, so 'noinstclean' flag is not necessary
- installation is still done `virtualenv`, in Bookworm and later this becomes mandatory
Note: the `--no-site-packages` was removed in the `virtualenv` call since it's ignored in v15 (version from Buster) and was removed in v20
- the `install` function is a mix of build/install, but since `install` cleans up $md_inst, it's necessary to have them there.
- added an update hook that removes the old driver start-up sequence in `/etc/rc.local`
- some minor re-wording of the text shown in the dialogs
Untested with a real controller, unfortunately, since I don't have one.
Fixed Pi5 detection by checking for `vc4hdmi` cards when determining if audio is enabled.
Since the Pi5 doesn't have the analog audio output (Headphones), the detection thinks there's no audio enabled (since `snd_bcm2835` module is not loaded), but it's wrong.
Also fixed a couple of things:
- the `pactl` listing parsing would enter an infinite loop if no audio was present
- when checking for Pulse/Pipewire use the `.service` instead of the `.socket`, since the socket can be disabled, but the service is always active.
[From: https://github.com/christgau/wsdd]
With Windows 10 version 1511, support for SMBv1 and thus NetBIOS device discovery was disabled by default.
This causes hosts running Samba not to be listed in the Explorer's "Network (Neighborhood)" views. While there is no connectivity problem and Samba will still run fine, users might want to have their Samba hosts to be listed by Windows automatically.
This should fix the discoverability issues with recent Windows versions, especially since the SMBv1 client is not available anymore in Win11 (as some ill-advised instructions are trying to fix this problem).
Some changes prompted by the new RaspiOS Bookworm features:
- added Firefox as a browser, since it's supported now
- mimic the RaspiOS defaults and on Pi4/5 platforms add an additional entry for starting the Wayland based desktop, using the `wayfire` compositor.
- new script files to be installed
- new config files (partially replacements)
- keep config files in a stash for idempotence of 'configure' calls
- some spaces and quotes corrected
Since PipeWire is the default sound server in RaspiOS 12 _bookworm_, make sure we account for its presence and we're able to choose a default card ('output sink') or disable/enable it.
At this time, PipeWire is using emulating a PulseAudio session manager through `pipewire-pulse`, while also running the native `wireplumber` session manager.
Most of the clients still think they speak to PulseAudio using the PulseAudio client API, while the actual backend is PipeWire.
Changed:
- use `pactl` instead of `pacmd`, since the latter is not working through PipeWire's PulseAudio emulation
- use `pactl` to set the PipeWire defaul output, instead of using the native `pw-cli`
- added a toggle functions for PipeWire and PulseAudio, chosen based on the detected sound server
NOTE: although techically possible, I haven't added an option to enable PulseAudio if PipeWire is also present, but I don't think it's needed.
Added support for detecting if running on a Armbian built system.
Armbian is built on Debian/Ubuntu, so we're not changing the OS release/name.
* Added support for Armbian's Linux kernel package naming, in order to be able to install the kernel headers.
* Removed the ZRAM config from our own menu, Since Armbian has its own configuration tool (`armbian-config`) that handles it. ZRAM is configured and enabled y default on Armbian images.
Since RaspiOS Bookworm, the `bootfs` (1st) partition is mounted under `/boot/fimware` instead of `/boot`, so look for the WiFi file under that location also.