Commit graph

8017 commits

Author SHA1 Message Date
cmitu
fe5555ea12 xroar: update to 1.5.3
New features in version 1.5:

*  Add ability to change Picture Area, seeing more or less border
*  New option -vo-picture
*  Respect -geometry dimensions in SDL-based UIs
*  Add optional 60Hz vertical scaling (on by default)
*  New option -no-vo-scale-60hz disables 60Hz scaling
*  Faster ROM intercept based printing on CoCo and MC-10
*  GIME: respect X offset and HVEN in COCO mode
*  MPI slot config moved from global to per-cart, included in -config-print
*  Add screenshot to PNG from menu or Control+Shift+S
*  Fix printing after switching machines [Jak Fearon]
*  Better rendering of paths in Windows dialogs
*  Fix some CoCo 3 cartridge behaviour [Christian Haitian]
*  GIME: reset video address later (fixes Androne) [Russ Le Blang]
*  GIME: fix various $FExx access problems
2024-02-21 04:03:01 +00:00
cmitu
b59cb28766 dolphin: updates to build and configuration
Modified the module to update the dependencies and improve the initial configuration

* Build changes:
   -  build dependencies modified to include SDL2. Latest version (as of Jan 2024) enable SDL2 by default on Linux and use it for input auto-configuration.
      Gamepads detected using SDL's GameController API are automatically configred based on their mappings.
   - disable analytics and update support durign the build. Updates are handled by RetroPie-Setup and - unfortunately - analytics require a keyboard/mouse to get over the initial agreement pop-up that is presented to the user on the 1st run.

* Configuration updates:
   - on KMS systems, start Dolphin via X11 by using the `XINIT-WM` launc prefix, which instructs `runcommand` to start a minimal desktop env.
   - change the location of the configuration folder, since now Dolphin follows the XDG specs and uses `$XDG_CONFIG_HOME` to store its settings.
     It will not affect existing installations, since we symlink-it to the configuration folder anyway and Dolphin will look in the previous location first.
   - pre-set a few initial configuration options in the main `Dolphin.ini` configuration file, upating existing options
   - add a new pre-set for the graphics backend configuration file in `GFX.ini` to switch to GLES3 on platforms where it is available.
     It should help the Pi5 but also other SBCs we support (i.e. OrangePi5 / RK3399) to startw the correct rendering backend.
   - set the '-gui' variant as default. Since the 'nogui' doesn't seem to read the configuration files correctly (i.e. no Fullscreen or Hotkeys are working), use the main program started with '--batch' to run a game
2024-02-17 06:20:21 +00: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
Jools Wills
555bb29ad9
Merge pull request #3864 from cmitu/dsda-doom
ports: add 'dsda-doom', lightweight DOOM source port
2024-02-13 19:07:17 +00:00
Gemba
468fa795a1
Deployment of Skyscraper bash completion file with scriptmodule. (#3865) 2024-02-12 19:15:13 +02:00
Jools Wills
3c59970577
Merge pull request #3863 from cmitu/cdogs-fix
cdogs-sdl: fix module flags, it's a SDL2 port
2024-02-05 07:35:43 +00:00
cmitu
d78ed97c31 ports: add 'dsda-doom', lightweight DOOM source port
Added 'dsda-doom', a DOOM source port based on PrBoom+ with extra features geared for demo recording/playback, focused on speedrunning and quality of life.
It has support for:

 * Heretic, Hexen, MBF21, Doom-in-Hexen, UDMF, and MAPINFO support
 * In-game console and scripting
 * Full controller support
 * Palette-based OpenGL renderer
 * Debugging features for testing
 * Strict mode for speedrunning
 * Various quality of life improvements
 * Advanced tools for TASing
 * Rewind

It is meant to replace `lzdoom`, which is no longer developed, as a lightweight DOOM port. Can play most Boom based WADs without issues. Due to its popularity in the TAS community, a lot of BOOM compatible WADs are tested against `dsda-doom`, which should provide better compatiblity than other lightweight source ports (crispy/woof).

It has a SW renderer - which runs ok on a RPI3 - and an OpenGL2 renderer which can be shitched on for OpenGL capable systems. I haven't tested the joypad/gamepad support, though it's there and default mappings take this into account.

Links:
 - Project repository: https://github.com/kraflab/dsda-doom/
 - DoomWorld support topic: https://www.doomworld.com/vb/thread/133096
 - DoomWiki page: https://doomwiki.org/wiki/DSDA-Doom
2024-02-05 05:17:27 +00:00
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
be7b435320
Merge pull request #3855 from joolswills/builder_fixes
Builder fixes
2024-01-28 16:40:57 +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
963af0dd33
Merge pull request #3849 from cmitu/quasi88-sdl2
quasi88: switch upstream repository, upgrade to 0.7.1
2024-01-27 15:02:40 +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
Jools Wills
06e2ce9613
Merge pull request #3847 from cmitu/px68k-standalone-sdl2
px68: change upstream project, use SDL2
2024-01-26 16:45:47 +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
Jools Wills
ad3ca8c4e1
Merge pull request #3846 from cmitu/lr-dosbox
lr-dosbox: fix building with GCC 11+
2024-01-25 17:59:02 +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
Jools Wills
12dc9ada0d
Merge pull request #3843 from cmitu/joy2key-stop-opt
joy2key: refactor stop action
2024-01-23 08:30:50 +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
Jools Wills
ae10c36fdc
Merge pull request #3840 from cmitu/gpu-temp-pi
bashwelcometweak: fix GPU temp reading
2024-01-22 19:02:08 +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