1945 Commits
Author SHA1 Message Date
Gemba c8b3df95ab skyscraper: various enhancements
- add option to ignore/use flags applied to Skyscraeper from within this module and
- hide flags controlling menuitems and their helptexts when option is set to ignore flags
- remember platform selection after gathering and reset platform selection after generatiing gamelist(s)
- add option to edit local platform extensions (peas_local.json) and web API platform id (platforms_idmap_local.csv) files
- adjust return codes: 0 Skyscraper success, 1+2 Skyscraper error, 3 user ctrl-c (module and Skyscraper), 4 scraping did not start (module only return value)
- fixed default selection when re-entering submenu
- display matching help when an item without helptext is selected
- update help texts and adjustment of dialog sizes
- provide brief helptexts where applicable instead of longer ones
- refactored boolean operators in if-statements
- added missing help texts for scraping modules: IGDB and MobyGames
2026-10-05 20:55:03 +02:00
Gemba 664d2537d3 skyscraper: updates to scriptmodule (#4229)
- display matching dialog when Skyscraper was interrupted with Ctrl+C (from Skyscraper 3.21 onwards)
- remember platform selection between gathering data and generating game list
- less clutter in platform selection dialog and menuitem separation
- remeditate various shellcheck issues
- some wording updates
2026-09-16 14:52:39 +03:00
Gemba 3375840b63 skyscraper: update the system/platform detection (#4224)
Do also rely on configured systems in EmulationStation config in addition
to the platform discovery in `~/RetroPie/roms/` to have a strict set of
available platforms.
2026-09-08 07:09:27 +03:00
Cristi Mitrana 67d193cdcc Revert "sdl2: install fcitx-libs-dev only on Debian 11 or older (#4220)" (#4226)
This reverts commit c51c2fec1b.
2026-09-03 07:25:44 +03:00
Gemba d47cc4be41 skyscraper: updates to scraping modules (#4225)
- Moved from Worldofspectrum to ZX-Info because of more stable API
- Added GamebaseDB offline/local scraping module
2026-09-03 07:09:23 +03:00
TheRetroMars c51c2fec1b sdl2: install fcitx-libs-dev only on Debian 11 or older (#4220)
`fcitx-libs-dev` is for Fcitx 4. On Debian 12, Debian 13, and Ubuntu 24.04+, the default input method is `fcitx5`.

In Debian package rules, `fcitx-libs-dev` conflicts with `fcitx5`. When installing SDL2 dependencies on Debian 12+, APT will remove `fcitx5`. Also, official Debian 12+ packages for SDL2 no longer use `fcitx-libs-dev`.
2026-08-27 07:27:51 +03:00
cmitu 2ed4741891 packages: map the 7zip packages for newer distros
Both `p7zip` and `p7zip-full` are replaced by `7zip` in recent (Trixie) Debian and Ubuntu (26.04).
Map the packages in our helper since they're used in more than one place.
2026-07-22 03:47:06 +00:00
cmitu 667f1f5f72 dbar4gun: restrict OS support via flags
Latest versions require Python 3.12, so remove support for Debian 12 and earlier since only Debian 13 ('trixie') has a newer version.
2026-06-06 03:51:23 +00:00
cayce-msx eb21b195c3 emulationstation: fix openMSX keyboard mapping for F1/F2 2026-05-08 19:14:43 +03:00
Andrea ManziandClaude Sonnet 4.6 648d0ed3a9 retropiemenu: handle p7zip package rename on Ubuntu 26.04+ (#4191)
Ubuntu 26.04 no longer ships the p7zip package; it was replaced by 7zip.
Use __os_ubuntu_ver to select the correct package name on Ubuntu 26.04+,
keeping p7zip on all older distributions.

Co-authored-by: Claude Sonnet 4.6
2026-04-26 11:26:50 +03:00
Jools Wills 8ef23f046a Merge pull request #4180 from cmitu/attract-build3
attractmode: fix build on RPI systems
2026-04-23 23:21:17 +01:00
Cristi Mitrana d8d4c618b4 xpadneo: update to v0.10.2 (#4176)
Fixes a rumble related kernel/module crash and adds support for HID-over-GATT Profile (HOGP).
2026-04-16 09:23:10 +03:00
cmitu afed60cc39 attractmode: fix build on RPI systems
Due to a recent upstream change in the `Makefile`, the SFML custom installed libs on RPI systems are not found by `pkg-config` and since `pkg-config` throws an error, the build fails due to missing include files and missing library names/paths.

To fix this, run the install steps for the `sfml-pi` library in order for the `.pc` files needed by `pkg-config` to be generated and then reference them during the `attractmode` build through the `PKG_CONFIG_PATH` env var.
2026-04-14 19:03:16 +01:00
Jools Wills 1d87f4e44e Merge pull request #4170 from cmitu/scraper-ftbfs
scraper: fix build and re-organize module
2026-04-07 16:22:58 +01:00
cmitu 967bfa4e51 scraper: replace default TGDB API key
Since the API keys have been revoked in Feb 2026 by TheGamesDB.Net site, replace the default key used by `scraper` with a new one.
New keys have a limit of 1000 scrapes per month, per user (individual IP address).
2026-04-07 16:16:06 +01:00
cmitu 11303d9f68 scraper: fix build and re-organize module
* Fixed the build errors caused by the `kjk/lzmadec` project being removed from Github.
  The `vendor` folder contains a locally mirror of the module, but the `go` version we used ignores the vendored dependencies folder.
  Bumping the `go` version fixes the build by using the local version of the package.

* Refactored the module to remove the `golang` module.
  Since the `go` installation is needed _just_ for building (the result is a statically linked `scraper` binary), we don't need to have an entire installation kept outside the build step. Given the current lack of changes in the upstream project, I think it's better we provide a binary for installation instead of a source install + local `go` install. Thus:

  - adopt the `golang` installation function into `scraper` as `_golang_scraper`, installing it in the build folder during a source installation.
  - remove the `golang` module and add an update hook to remove its installation folder
  - use `GOMODCACHE` and `GOPATH` so that `go` cache folders for packages download and build are not saved under `/root`.
    In order to shorten the `go` commands, I used a subshell to be able to `export` the vars needed and keep them local.
2026-03-27 19:31:17 +00:00
Jools Wills 362eaab440 Merge pull request #4169 from cmitu/flycast-standalone
flycast: add the standalone emulator
2026-03-26 21:27:09 +00:00
Gemba 1d651c50bd helper script: JSON Schema validation for peas.json 2026-03-15 06:30:02 +02:00
Jools Wills 35efab1f16 Merge pull request #4166 from cmitu/xpadneo-updates-7
xpadneo: update to latest version(s)
2026-03-08 19:34:08 +00:00
cmitu 725b4aad34 xpadneo: update to latest version(s)
The main version update is v0.10, which containes a lot of work done over the years to that included internal refactoring, broader device support, fixes for kernel and userspace changes. It also dual-licenses the module (GPL2 or GPL3) to make it compatible with the Linux kernel. New version also includes virtual mouse support, but it's deemed experimental and it's not enabled by default.

Since the new version doesn't work on older (< 5.12) kernels, in order to keep compatibility with Buster systems we install the last v0.9.8 version.

Along with the new version (v0.10), add an additional change in behavior through the module parameter `disable_shift_mode`. The parameter changes how the guide/home/Xbox button is reported - instead of behaving like a keypress, it emits a `BTN_MENU` event so it behaves like a button. This may have impact on existing button mappings, since it adds a new button to the list.
2026-03-08 08:17:29 +00:00
Cristi Mitrana 387e23a738 snesdev: fix build on Trixie/Buster
* Trixie needs the CFLAGS for pointer conversion checks to be relaxed
* Buster had an error with the WirinPi version detection which resulted in the wrong WiringPi `.deb` being installed
* Added `libconfuse-dev` as dependency, to avoid compiling the older vendored library included. The older version doesn't compile on Trixie without specifying the `--build` parameter for `configure`.
2026-02-26 07:58:44 +02:00
cmitu 467a5adef9 flycast: add input mapping script from ES
The mapping script tries to do a natural mapping for:
 * face buttons (A,B,X,Y)
 * start
 * shoulder buttons
 * dpad
 * left analog controller

If the `hotkey_enable` button is set, add button combinations for:
 * exit (+ Start)
 * menu toggle (+ X)
 * load state (+ Left Shoulder)
 * save state (+ Right Shoulder)
 * next save slot (+ Right, wraps at the 9th save state slot)
 * previous save slot (+ Left, wraps at 0)
2026-02-08 13:38:42 +00:00
cmitu f50a86c40d raspbiantools: disable the 'fluidsynth' service
On Trixie, the 'fluidsynth' service starts automatically after the package is installed. On a RPI using ALSA, this will lock the HDMI audio output device since the HDMI card doesn't supports the DMIX plugin. This breaks audio for users that don't rely on a sound server (PulseAudio/Pipewire) since other programs started laster on will not be able to open the audio output device.

Note that even if the 'fluidsynth' package is not installed explicitely, it's a hard dependency for the accompanying `-dev` library package (explicitely added in Debian as a result of the CMake file included in the `-dev` package). So if the user installs a package needing the Fluidsynth libraries, the 'fluidsynth' package gets installed and thus the user service starts automatically.

The upstream Debian package will have this changed in Forky [1], so for now prevent the user service starting automatically by manually masking the user service.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1110912
2026-01-05 12:02:54 +00:00
Christian Heimlich c0c21a4403 golang: update Go binary source to go.dev 2025-12-29 07:15:32 +02:00
cmitu 25d6527ae7 raspbiantools: fix Buster repositories
RaspiOS Buster repository has been moved to the legacy site, modify `apt` list of sources accordingly.
2025-12-08 17:34:36 +00:00
Jools Wills 2a4c97b604 Merge pull request #4123 from cmitu/trixie-pegasus
dependencies: update PolicyKit package name
2025-11-10 21:01:56 +00:00
cmitu 94b43a5134 dependencies: update PolicyKit package name
Use the new PolicyKit package name and adjust the name for the older distros.
This fixes the installation of Kodi and Pegasus.
2025-11-10 20:08:23 +00:00
Jools Wills 925b1c19e9 Merge pull request #4122 from cmitu/systemctl
drivers: start userspace drivers with systemd
2025-11-08 14:39:51 +00:00
cmitu 536f13ad44 steamcontroller: use systemd for starting the driver
* Switched to a different upstream repository, a fork of the previous project which is still actively maintained.
* Use `systemd` to start the controller driver, instead of starting it from `rc.local`.
2025-11-08 12:58:56 +00:00
cmitu 98a3279927 xboxdrv: use systemd for starting the driver
Other minor modifications:

  * changed the configuration dialog so that enable/disable is shown depending on the existing state
  * removed the `configure` function since it's empty now
  * added the `remove` function to delete the systemd service unit file upon module removal
2025-11-08 12:58:37 +00:00
Jools Wills ce047f45e9 Merge pull request #4107 from joolswills/bookworm_sdl2_binaries
sdl2 - fix installing binaries on arm64 (bookworm)
2025-10-28 21:32:27 +00:00
cmitu c8c1542fab audiosettings: really disable PipeWire
Amend the disable/enable options for PipeWire and make sure we mask the `.service` units also. If we don't, then the script thinks PulseAudio user service is enabled, but since the actual service is stopped, we cannot configure the audio.

Discovered the error while testing the settings on Trixie.
2025-10-21 19:33:36 +01:00
Jools Wills 6de4e1978d Merge pull request #4100 from cmitu/retropiemenu-redit
retropiemenu: remove tty redirection
2025-10-16 17:03:31 +01:00
cmitu 0d12b89257 retropiemenu: remove tty redirection
Debian 13 trixie and Ubuntu 24.x have an issue when redirecting the I/O of the tty for scripts to read/write. This results in the 'dialog' window exiting when called from EmulationStation, but no from CLI. It's been reported in the forums [1],[2].

However, the current `joy2key` version doesn't need any tty access since d417e06978, since we're now using `uinput` to produce keyboard events while using `sdl2` for input reading.

The changes added here remove the `/dev/tty` redirection when `legacy_joy2key` is not set and also update the `runcommand` update hook to set `legacy_joy2key` only for older OSes, where it's still supported.

[1] https://retropie.org.uk/forum/topic/35798/retropie-setup-menu-runcommand-crashing-in-es-on-ubuntu/18
[2] https://retropie.org.uk/forum/topic/37226/any-timeline-for-trixie-support/19
[3] https://github.com/RetroPie/RetroPie-Setup/commit/d417e06978bea82751cecc7bda90267723f5f31b
2025-10-16 16:37:47 +01:00
Jools Wills 238d50020c sdl2 - fix installing binaries on arm64 (bookworm) 2025-10-14 17:58:04 +01:00
cmitu 5c80e4135e sdl2: upgrade to the latest 2.x version 2025-10-11 06:25:24 +01:00
Cristi Mitrana a7753f0acd various: don't depend on 'libraspberrypi' (#4085)
* various: don't depend on 'libraspberrypi'

Remove the dependency on `libraspberrypi` packages for new RaspiOS Bookworm installations, since they're not useful anymore.

To do this, make the installation/usage in various scriptmodules depend on the `dispmanx` system flag instead of the `rpi` system flag. `dispmanx` is not set/used on RaspiOS Bookworm/Bullseye, but will still be set/used on Buster as before for Pi 0-4 platforms.

* raspbiantools: replace sdl1 package on upgrades when not needed

Our custom SDL1 package is not needed on non-Dipmanx platforms, but due to the previously installation flag ('rpi') could still be installed and depend on `libraspberrypi` (which is deprecated). So on `rpi` systems where `dispmanx` is not available and thus our package is not needed, replace the installed package with the version from the upstream repository. This should happen when an update + system packages is used.
2025-07-08 09:12:05 +03:00
cmitu 12f575c2a4 runcommand: clear launch banner before starting
The runcommand launch info screen will stay 'resident' under the emulator/port/etc. launched. While most of the time is not visible, it can show up when the launched program doesn't start full screen.
2025-06-14 06:11:16 +01:00
flpowergamesretro-rtp 85d2237dd5 Update esthemes.sh (#4078) 2025-06-05 21:13:46 +03:00
Jools Wills 76ebe1a6f7 xboxdrv - fix licence url
Also correct the case of repo url (cosmetic as it works with lowercase also).
2025-05-23 16:27:30 +01:00
Gemba 74d7523a07 Changes to select Qt6/Qt5 depending on distro 2025-05-20 22:25:18 +02:00
Cristi Mitrana 67ca84d6c8 Merge pull request #4047 from Gemba/skyscraper_v316
Dependency and file update for Skyscraper 3.16
2025-03-11 06:41:54 +02:00
Gemba e644253145 Dependency and file update for Skyscraper 3.16 2025-03-10 22:28:45 +01:00
Cristi Mitrana b7d43866ca emulationstation: fixes for the SDL2 gamecontrollerdb (#4045)
Based on the feedback from @protocultor:

 - add the correct Hat mapping value ('h' and not 'hat')
 - don't add automatically direction signs for axis mappings since they're only necessary in certain configurations.
   However the info from the ES file is not enough to determine those configurations, though they seem to be an exception rather than the norm.
   One case where the signs are needed seems to be when the D-Pad is mapped using axis, so that was left implemented.
2025-03-10 12:23:34 +02:00
Cristi Mitrana ea8db8e311 snesdev: updates for the new version
New version needs WiringPi, but not the original version that got discontinued. There's an active fork of WiringPi which also provides `.deb` files, so check whether this new version is installed first before compiling locally a static version and using it.

Other modifications:

* modified the installation/build to use `$md_build` and handle the installation ourselves, instead of using the upstream `make` targets. This means the driver is copied to `/opt/retropie` (just like `xboxdrv`) instead of being located in `/usr/local`.
* added a `systemd` unit file to start the driver and don't rely on the upstream `rc.d` service scripts.
2025-03-02 07:38:56 +02:00
Monster Joysticks 71e7fbbc8e snesdev: change upstream for better compatibility
Point to an updated driver repository that uses the WiringPi library for compatibility with all Raspberry Pi Versions.
2025-03-02 07:33:13 +02:00
cmitu ba2092df74 runcommand: auto-load SDL2 gamecontroller mappings
Added the ability for `runcommand` to load the SDL2 gamecontroller mappings created from the EmulationStation mappings and expose them as a SDL2 hint. Since the user may already have a mechanism to set the hint (from `.bashrc`/`.profile` or perhaps as part of the on-start scripts), don't overwrite the SDL2 hint if exists.

NB: since 2.0.22 the file containing the mappings can be set through the `SDL_HINT_GAMECONTROLLERCONFIG_FILE`, but to accomodate older SDL2 version, we're using `SDL_HINT_GAMECONTROLLERCONFIG` as a hint, which contains the actual mapping strings separated by newlines.
2025-02-19 16:28:31 +00:00
cmitu 325df5ffc5 emulationstation: SDL gamecontroller mapping suppport
Added an input configuration script which will produce a SDL(2) gamecontroller mapping ([1]) based on the user's choices in the EmulationStation input configuration. The result of the mapping is saved in `/opt/retropie/configs/all/sdl2_gamecontrollerdb.txt`, which can be referenced by `runcommand` to load the mappings through SDL hints ([2] or [3]).

Since we're not trying to overwrite the existing built-in mappings, I've added a query method which needs `python3-sdl2` as dependency.

The mapping produced should follow the user's choices as far as inputs are concerned. The only 'outlier' is the 'hotkey enable' button, which is mapped to the 'Guide' SDL gamepad button IF its value is different than the _Select_ input. This way the extra button present on various gamepads (Xbox/PS) or a dedicated button chosen by the user can be mapped separately.

Ref:

[1] https://wiki.libsdl.org/SDL2/SDL_GameControllerAddMapping
[2] https://wiki.libsdl.org/SDL2/SDL_HINT_GAMECONTROLLERCONFIG
[3] https://wiki.libsdl.org/SDL2/SDL_HINT_GAMECONTROLLERCONFIG_FILE
2025-02-19 16:21:19 +00:00
Cristi Mitrana 29281727ae dbar4gun: fix installation (#4030)
On Buster, there's no `virtualenv` command in the `python3-virtualenv` package, so use an alternate syntax to create the virtual environment.
2025-02-04 18:30:50 +02:00
Gemba b8346360e2 deploy helper script for user to separate platform config 2025-01-30 21:42:51 +02:00