Commit graph

1904 commits

Author SHA1 Message Date
cmitu
3b9a8e440b autostart: add Pegasus as auto-start item
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.
2024-03-11 16:07:34 +00:00
Jools Wills
f9b7ed6c66
Merge pull request #3876 from cmitu/removals
retropie-manager: removal
2024-02-26 20:48:22 +00:00
Jools Wills
24a442cc67
Merge pull request #3845 from cmitu/sdl12-compat-backend
backends: add SDL1.2 Compat backend
2024-02-26 20:47:57 +00:00
cmitu
4d884b5704 retropie-manager: removal
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.
2024-02-26 16:37:27 +00:00
Jools Wills
7f55988cc9
Merge pull request #3875 from Gemba/fix_skyscraper_copy_bash_completion_files
Put programmable completion file to /etc/bash_comletion.d/
2024-02-25 17:30:42 +00:00
Gemba
2dddf927ec Put programmable completion file to /etc/bash_comletion.d/
Also the fn remove_skyscraper() was present two times.
Merged them together and added a prompt if skyscraper's
cache should also be cleared.
2024-02-25 17:55:38 +01:00
cmitu
59a1856a32 xpadneo: upgrade to the latest v0.9.x version
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
2024-02-16 03:06:55 +00:00
Jools Wills
8d9b5afeb5
Merge pull request #3866 from cmitu/skyscraper-pr11
skyscraper: delete Bash completion on removal
2024-02-14 07:30:56 +00:00
cmitu
0464b1551b skyscraper: delete Bash completion on removal 2024-02-14 04:29:13 +00:00
Gemba
468fa795a1
Deployment of Skyscraper bash completion file with scriptmodule. (#3865) 2024-02-12 19:15:13 +02:00
cmitu
ac5ec0e5c8 backends: add SDL1.2 Compat backend
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.
2024-01-25 19:38:41 +00:00
cmitu
f113a80f36 runcommand: add new 'kms' videomode utility
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
2024-01-23 16:58:31 +00:00
cmitu
4f3d246396 bashwelcometweak: fix GPU temp reading
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.
2024-01-22 18:54:10 +00:00
cmitu
1daa662101 runcommand: ignore KMSTOOL if no DRM card is available
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.
2024-01-17 19:14:24 +00:00
cmitu
7ae9111f59 runcommand: disable powersave when XINIT is used
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.
2024-01-15 19:49:02 +00:00
Jools Wills
5f635a6669
Merge pull request #3831 from cmitu/gnoe-fullscreen
emulationstation: fix fullscreen launching params on Wayland/Gnome
2024-01-08 18:15:08 +00:00
cmitu
e51dbbf26e runcommand: added option to start a WM for x11 programs
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'.
2024-01-07 21:06:13 +00:00
Jools Wills
cb597ff260 runcommand - rework parsing of CON: and XINIT: commandline options. 2024-01-07 20:57:47 +00:00
cmitu
d74eb0f15e emulationstation: fix fullscreen launching params on Wayland/Gnome
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.
2024-01-07 10:34:23 +00:00
Jools Wills
6eab997147
Merge pull request #3830 from cmitu/bluez-buster-pinning
raspbiantools: pin Bluez to the RPI repos for Buster
2024-01-06 15:04:05 +00:00
cmitu
ab3c3f2e1d raspbiantools: pin Bluez to the RP repos for Buster
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.
2024-01-06 14:57:09 +00:00
s1eve-mcdichae1
16161098e0
skyscraper.sh - use 'Skyscraper -h' for version interrogation. Require 'ge' match for version check. (#3825) 2023-12-28 07:14:06 +02:00
cmitu
4a60d88a5d drivers: disable GPIO kernel module drivers on Pi5
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
2023-12-19 04:14:09 +00:00
Jools Wills
cf277b2ff6
Merge pull request #3819 from cmitu/libs-change
dependencies: handle obsolete `librasbperrypi-bin`
2023-12-11 22:26:31 +00:00
cmitu
267b81edfc dependencies: handle obsolete librasbperrypi-bin
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
2023-12-11 03:32:12 +00:00
Dwayne Hurst
2530e19c0b
Update esthemes.sh 2x new themes
Created 2 new themes for ES to suit 16:9. Called AIGEN and AIGEN_PLUS.
2023-12-10 04:59:13 +10:00
Jools Wills
8c8d685cae
Merge pull request #3813 from cmitu/esthemes-fixes
esthemes: make it possible to patch themes locally
2023-11-24 19:15:03 +00:00
cmitu
244eb3f3f8 esthemes: make it possible to patch themes locally
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.
2023-11-24 19:10:28 +00:00
Jools Wills
3c746ea300
Merge pull request #3804 from cmitu/steam-controller-update
steamcontroller: switch to a different upstream source
2023-11-19 20:31:12 +00:00
cmitu
9915f1d448 steamcontroller: switch to a different upstream source
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.
2023-11-19 20:06:58 +00:00
Jools Wills
d42e37dab2
Merge pull request #3788 from obrie/fix/runcommand-eval-quotes
runcommand: Fix filenames with multiple consecutive spaces in them not loading
2023-11-19 17:06:17 +00:00
cmitu
4edaead422 gamecondriver: fix kernel headers package
Use the generic KERNEL-HEADERS dependency instead of the pre-Bookworm package name, so the right package is correctly chosen.
2023-11-11 05:09:51 +00:00
s1eve-mcdichae1
fde3f56ce1
skyscraper.sh function _get_ver_skyscraper - run check as $user, not as root. (#3793) 2023-11-09 12:01:41 +02:00
Jools Wills
98a82fddfd
Merge pull request #3792 from cmitu/audiosettings-another-pi-ditto
audiosettings: fix Pi5 detection
2023-11-07 07:53:09 +00:00
cmitu
6e74abe4f3 audiosettings: fix Pi5 detection
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.
2023-11-07 03:30:36 +00:00
Jools Wills
0b85186c20
Merge pull request #3767 from Gemba/fb_skyscraper_v390_updates
for v3.9.0 release of Skyscraper
2023-11-06 19:42:51 +00:00
Aaron Pfeifer
c39428943d runcommand: Fix filenames with multiple consecutive spaces in them not loading
By quoting the $COMMAND, we ensure that the literal characters of the command are preserved
2023-11-02 08:57:37 -04:00
Jools Wills
2cfa584b29
Merge pull request #3782 from cmitu/audiosettings-another-pi
audiosettings: add Pi5 along
2023-10-24 19:24:44 +01:00
cmitu
b9f3998ec8 audiosettings: add Pi5 along
Pi5 has the same 2 mHDMI ports and 2 cards
2023-10-24 19:12:53 +01:00
Jools Wills
408d91a5db
Merge pull request #3778 from cmitu/samba-discovery
samba: add a Web Service Discovery service
2023-10-21 17:25:34 +01:00
cmitu
2effe96ff8 samba: add a Web Service Discovery service
[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).
2023-10-21 05:14:03 +01:00
cmitu
e25ba1c7c1 raspbiantools: bookworm updates
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.
2023-10-21 04:44:57 +01:00
Gemba
015c1537fb for v3.9.0 release of Skyscraper
- 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
2023-10-18 18:28:29 +02:00
Jools Wills
a1f0dbd954
Merge pull request #3770 from cmitu/xboxdrv-update2
xboxdrv: remove obsolete USB options
2023-10-18 06:18:16 +01:00
Jools Wills
c61d92e5a2
Merge pull request #3769 from cmitu/audiosettings-pw
audiosettings: add PipeWire support
2023-10-17 21:35:06 +01:00
Jools Wills
10a90d32e5
Merge pull request #3768 from cmitu/wifi-bookworm
wifi: update search locations for 'wifikeyfile'
2023-10-17 18:59:38 +01:00
cmitu
3fd5a3cbf0 audiosettings: add PipeWire support
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.
2023-10-17 18:47:23 +01:00
cmitu
6b4c980892 systems: add support for Armbian
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.
2023-10-17 18:37:55 +01:00
cmitu
4d60904810 wifi: update search locations for 'wifikeyfile'
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.
2023-10-17 18:26:34 +01:00
Dwayne Hurst
edf23d751c
esthemes - add new theme ballsy from RetroHursty69 2023-10-16 19:59:07 +01:00