Commit graph

6336 commits

Author SHA1 Message Date
cmitu
b796e8873d cdogs-sdl: fix module flags, it's a SDL2 port 2024-02-05 04:57:17 +00:00
Jools Wills
b2af34a846
Merge pull request #3862 from cmitu/gzdoom
ports: add GZDoom as a Doom source port
2024-02-04 16:46:53 +00:00
cmitu
16be63469b ports: add GZDoom as a Doom source port
Add back GZDoom, the feature centric port for all Doom engine games, based on ZDoom. Since LZDoom is no longer developed, let's try to add back the few still active Doom projects.

Since it was removed, besides countless other features addded, it has gained a GLES2/OpenGL2 + Vulkan renderer. Unfortunately, 32bit support has been dropped entirely since 4.9, so 32bit platforms will have to use the 4.8.0 release.

Recent versions auto-detect the available video renderers and can switch to the less intesive GLES2/GL2 renderer, but for old versions (32bit) the preferred renderer has to be set via `vid_preferbackend`.
2024-02-03 08:09:47 +00:00
Jools Wills
4b3b860828
Merge pull request #3861 from cmitu/joy2key-fix5
joy2key: fix generic mappings definition
2024-02-01 06:59:07 +00:00
cmitu
2277b39b62 joy2key: fix generic mappings definition
Besides the mappings parsed from RetroArch's auto-configuration profiles, there's a generic mapping used for gamepads that don't have a profile saved.
Unfortunately this never worked, since the initialization of the mapping - in the `add_mappings` function - had the buttons and hats parameters switched. This changeset fixes this, creating a correct mapping.

The issue was reported in https://retropie.org.uk/forum/topic/35063/, `joy2key_sdl` would crash with a Python3 error since the (wrong) generic mapping would produce the incorrect data type and values for the `filter_active_events` method.
2024-01-31 17:34:24 +00:00
Steven Swor
f53e5bad48 Don't set dispmanx platform flag on arm64 systems 2024-01-30 09:42:20 +11:00
Jools Wills
89507724e7
Merge pull request #3858 from cmitu/bombermaaan-sdl2
bombermaan: fix build for Buster/Bullseye
2024-01-29 18:38:08 +00:00
cmitu
0484f158e6 bombermaan: fix build for Buster/Bullseye
Added a patch for CMake to fix generating/building Bombermaaan with older SDL2/SDL2_mixer:

 - on Bullseye/Ubuntu 20.4, `sdl2_mixer-config.cmake` doesn't contain the target aliases in the `SDL2_mixer` namespace.
 - on Buster, `sdl2-config.cmake` doesn't contain the target aliases in the `SDL2` namespace and the includes/libraries are not correctly added to the compilation and linkage options.
2024-01-29 18:32:47 +00:00
Jools Wills
3e1be94105 builder - remove old unused code 2024-01-28 16:24:51 +00:00
Jools Wills
c44eb50a0d builder - allow automatic switching to different remote branch
ENV variables __builder_repo && __builder_branch are used to switch to another repository/branch for building.

This is used to more easily build binaries before branches are merged into master. Primarily for SDL binaries, but simplifies testing for other modules.
2024-01-28 16:14:50 +00:00
Jools Wills
fee0add79c builder - don't create binary archives for modules with an install_bin
This avoids creating an sdl1/sdl2 archive with just the .pkg info
2024-01-28 14:56:01 +00:00
Jools Wills
6177cf6751 crosscomp - fix missing PATH= on newer distcc init.d scripts
Older distcc init.d scripts contain a PATH= line which we were replacing.

Newer distcc init.d scripts exclude it, so we need to insert it before the DAEMON line
2024-01-28 13:19:45 +00:00
Jools Wills
532895cc04
Merge pull request #3852 from cmitu/bombermaaan-sdl2
bombermaaan: update to version 2.x and switch to SDL2
2024-01-28 12:20:34 +00:00
Jools Wills
c4682c6240
Merge pull request #3853 from cmitu/kodi
kodi: fix installation on Bookworm/Bullseye
2024-01-28 12:20:01 +00:00
Jools Wills
03b55aa3b2 image - add bookworm image ini configuration 2024-01-28 12:16:44 +00:00
cmitu
470fef7f6c system: fix Raspbian detection on Bookworm
Bookworm has changed the RP repo location to 'archive.raspberryp.com', due to a larger RPF operation to leave the .org just for the Foundation.
To detect whether we're running on RasPI OS, make sure we check for the new domain in the output from `apt-cache`.
2024-01-28 07:02:34 +00:00
cmitu
06f85349e1 kodi: fix installation on Bookworm
Since Bullseye, `kodi` should be installed from the RPT repos, since it's build with the necessary patches/optimization directly by the RP folks.
However, the version in the repos don't always overrides the version present in the upstream Debian/Raspbian repositories [1] and installation fails.

Added a workaround to always prefer the Kodi packages originating from archive.raspberrypi.com/archive.raspberrypi.org.
I think Bullseye and previous had 'archive.raspberrypi.org' for RP repostories, while Bookworm has switched to 'archive.raspberrypi.com', so we can't use the URL for pinning. Added a pin based on the 'l'(Location ?) field of the release from the repository.

[1] https://github.com/raspberrypi/bookworm-feedback/issues/144
2024-01-28 07:02:17 +00:00
cmitu
b2354f7cd6 bombermaaan: update to version 2.x and switch to SDL2
Upgraded to the latest version, which uses SDL2 and SDL2-Mixer.
2024-01-28 06:14:37 +00:00
Jools Wills
7d6c2c1dab
Merge pull request #3851 from joolswills/lr-flycast-dev_fix
lr-flycast-dev - Add missing cmake dependency
2024-01-27 16:09:37 +00:00
Jools Wills
14563ed5a6
Merge pull request #3850 from joolswills/lr-gpsp_fix
lr-gpsp - fix install and enable for non arm platforms
2024-01-27 16:09:09 +00:00
Jools Wills
03d087d091 lr-flycast-dev - Add missing cmake dependency 2024-01-27 15:04:45 +00:00
Jools Wills
2ef47ffeb8 lr-gpsp - fix install and enable for non arm platforms
Rename readme.txt to original_readme.txt and add README.md to install.
2024-01-27 14:59:53 +00:00
cmitu
7479eb2d42 quasi88: switch upstream repository
Switched the Quasi88 upstream repository to the "Quasi88Kai" fork [1], since it has some new developments and also supports SDL2.

Changes in the fork:

    * General updates to the build system and migration to CMake
    * All files converted to UTF-8
    * Many improvements in Windows, X11, GTK and SDL backends
    * Add a RetroAchievements-compatible version "RAQUASI88" (only for Windows at this time)

Had to apply a build patch since:
  * SDL2 2.0.10 libraries do not provide the SDL:SDL aliases in the `sdl2-config.cmake`
  * Buster's GCC (8) is implementing the filesystem C++17 API in `libstdc++fs`

[1] https://github.com/winterheart/quasi88
2024-01-27 06:26:37 +00:00
cmitu
49384ccfc7 px68: change upstream project
The original repository has long been abandoned, but several forks are still active. The (most ?) active one has added support for SDL2 (Audio, GameController API) and MIDI (Fluidsynth) among other things and it even has some SDL3 support in the works. [1]

This commit switches the source of the emulator to [1] and adjusts the dependencies, build instructions and files included. When building with Fluidsynth, install a minimal soundfont and also generate a minimal configuration referencing the installed soundfont path.

[1] https://github.com/TurtleBazooka/px68k, based on https://github.com/kenyahiro/px68k, original repository at https://github.com/hissorii/px68k.

Notable changes in this fork.
* Utilizes SDL2 Renderer (GPU), so "sdl-gfx" is unnecessary
* Supports Full-Screen Mode.(F11)
* Soft keyboard (Right click on F12Menu mode)
* SCSI DiskImage support (Can boot from *.HDS)
* Change final screen output to 24bit (RGB565→RGBA8888)
* Support MIDI-Play (Internal/Munt/fluidsynth/USB-MIDI) (NB: didn't find anything in sources about MUNT, I assume is used on Windows as MIDI softsynth)
* Support US-Keyboard layouts. keyconf.dat shoudl be copied into .keropi folder
* Printer output is saved to File
* Can use XBOX like USB-GamePad (hot-pluggable)
* Add support for CyberStick! (DIGITAL/ANALOG mode)
* FileName's UTF8/SJIS automatic detection Japanese display (dedicated table conversion)
2024-01-26 15:52:23 +00: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
12c79be89f lr-dosbox: fix building with GCC 11+
Reported upstream, but not fixed. Workaround is to force C++11 as dialect, suggested in https://github.com/libretro/dosbox-libretro/issues/137
2024-01-25 17:57:13 +00:00
Jools Wills
75cfcb14ea
Merge pull request #3844 from cmitu/mupen64plus-omx
mupen64plus: modify launch script for RPI detection
2024-01-24 17:00:55 +00:00
cmitu
e440a026b4 mupen64plus: modify launch script for RPI detection
Since recent kernels don't have the BCM string in `/proc/cpuinfo`, update the Raspberry Pi detection to use the device tree.

Other updates:

 * simplifed the selection of the OMX output plugin and port number. Applies only to Pi models 0-4, since Pi5 cannot use OMX
 * disabled pre-setting the 'pulse' SDL audio driver for non-OMX/ALSA devices. SDL will try 'pulseaudio' ('pulse' is the SDL 1.2 name) then 'alsa' in this order, so there's no need to force it to 'pulseaudio'. Starting with 2.0.22, SDL supports a list of drivers in the AUDIODEVICE hint, but Buster based systems are not there yet.
2024-01-24 16:53:00 +00:00
Jools Wills
8258090fe0
Merge pull request #3838 from rahim/amiberry-5.6.6
Amiberry 5.6.6
2024-01-23 17:44:26 +00:00
Jools Wills
b87442e744
Merge pull request #3841 from joolswills/mame_bullseye
Fix linking mame on Raspberry Pi OS bullseye
2024-01-23 17:29:41 +00:00
Jools Wills
204b9eb468 mame - fix linking on Raspberry Pi OS bullseye
Latest mame has an issue linking on Raspberry Pi OS Bullseye. It fails with

/usr/bin/ld: BFD (GNU Binutils for Raspbian) 2.35.2 assertion fail ../../bfd/elf32-arm.c:9876

Work around this by using the gold linker.
2024-01-23 17:27:25 +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
0786eab335 joy2key: refactor stop action
Modified the 'stop' action to use `start-stop-daemon` [1] instead of a simple `pkill`.

The advantage is that we don't need to use `sleep` to ensure the script is stopped, since `start-stop-daemon` monitors the process and will exit when is stopped. The `retry` action is to send a SIGKILL after 1 second, to ensure the process is stopped.

The modification will shorten the time it takes to 'stop' the joystick handling utility, since we don't have to wait - unconditionally - for 1 sec every stop. This will shorten the runtime of `runcommand` .

[1] https://man7.org/linux/man-pages/man8/start-stop-daemon.8.html. Since it's part of `dpkg`, it's basically present on every Debian based system.
2024-01-23 04:38:05 +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
Rahim Packir Saibo
259bfd7760
amiberry: update to 5.6.6 2024-01-19 23:39:41 +00:00
Jools Wills
1fd3bf549e
Merge pull request #3836 from cmitu/xorg-install-2
helpers: map 'xorg' for Pi5 and for 'legacy' exclusion
2024-01-17 19:18:06 +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
c0790a90c5 helpers: map 'xorg' for Pi5 and for 'legacy' exclusion
The 'xorg' (meta)-package will install the necessary packages to run an Xorg server and to launch applications under an Xorg environment.
We need to map 'xorg' for:

 - Pi5 needs an additional package that provides configuration for Xorg, without it the server will not start. Unfortunately the package has no reverse dependency (for now), so it must be installed explicitely.
 - One of the recommended packages installed is the 'xserver-xorg-legacy' package, which breaks our x11 apps launched from `runcommand`. We already uninstall it when the setup script starts (regardless of how it was installed), but let's not install it ourselves when 'xorg' is a dependency for one of our own scriptmodules.
   NOTE: `runcommand` breakage under `-legacy` is due to our redirection of STDIN/STDOUT. The `-legacy` provided wrapper checks whether the current controlling tty is a 'real console' tty by looking at the major/minor device numbers and bails out if it's not 4/1.
2024-01-16 05:48:57 +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
4870ea2aa5 lr-ppsspp - split out lr-ppsspp specific patches
This fixes binary builds not triggering due to the changes being in ppsspp.
2024-01-12 17:49:24 +00:00
cmitu
da60862be7 micropolis: fix path and display
Micropolis runs in a maximized window, but doesn't have any fullscreen option and it relies on the WM cursor to operate.
2024-01-11 04:42:26 +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
ccbee7c05a ports: simplify the launch command for x11 enabled ports
Removed the launching scripts for ports that were relying an x11 + window manager by using the new XINIT-WM: prefix added to runcommand.
2024-01-07 21:06:18 +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
Jools Wills
c110428880
Merge pull request #3828 from cmitu/scummvm-2.8.0
scummvm: upgrade to v2.8.0
2024-01-03 14:18:43 +00:00
Jools Wills
303a375920
Merge pull request #3827 from cmitu/atari800-update2
atari800: upgrade to 5.2.0
2024-01-03 14:18:21 +00:00