With gcc10 and newer, the `-fno-common` option is the default, causing
issues for global variables with multiple declarations that are missing the `external` initializer.
See https://wiki.gentoo.org/wiki/Project:Toolchain/Gcc_10_porting_notes/fno_common for a summary.
Added a couple of patches to fix building for older `advmame` versions:
* for `advmame-1.4`, pick https://github.com/amadvance/advancemame/commit/f8688cae05
* for `advmame-0.94`, created a separate patch
As a minor modification, used the scriptmodule `md_path` variable to calculate the patch folder location.
Currently, the WiFi configuration from RetroPie menu needs a keyboard for configuring a connection.
Added a `python` script to display on-screen keyboard which can be operated with `joy2key` and the gamepad, which allows entering the WiFi network/key/password without a keyboard.
The script accepts keyboard input, so it's suited for both keyboard and joystick input. It's using the `urwid` library (https://urwid.org).
The WiFi scriptmodule was modified to use the new OSK script instead of the `dialog` based inputboxes.
Additional modifications to the WiFi module:
- added a confirmation step before removing the WiFi config and stopping the WiFi
- added an info message during the WiFi scanning (instead of having a black screen)
- removed the check for the pass length, it's done by the new OSK script
- reformatted a bit the 'country' warning
NOTE: I've tested the new OSK script with smaller displays, but anything less than 40 cols will not be displayed fully. The OSK keyboard will scroll horizontally (when there's no more space on screen), but this is non-intuitive and might confuse users. _If_ we need to accomodate an even smaller screen size, then the OSK display area should be probably changed to accomodate that (i.e. less letters on a 'keyboard' row).
The different Marathon games are each launched with a unique emulator config, each one configured to launch only that particular game with the executable and game data directory hardcoded into the emulator command.
This change combines them into one "alephone" emulator config, with just the executable in the command, and splits the game data dir out into the "%ROM%" parameter. This allows easy user integration of additional alephone engine games simply by adding their game data and a launch script such as:
"/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "alephone" "/path/to/game/dir/"
Pros:
- cleaner "configs" folder with only one shared emulator instead of a different one for each game
- easy user integration of additional alephone engine games
Cons:
- none that I can think of off hand?
When doing a shallow clone, also add --shallow-submodules which will do a shallow clone of submodules
with depth 1.
This significantly speeds up checkouts of repositories with a lot of submodules (eg lr-tic80).
When env __persistent_repos is 1, we do full checkouts of repositories. This allows users with diskspace to spare
to speed up source updates, by avoiding doing a shallow clone everytime.
However, it was not working for cases where a module switched to a newer tag/branch as remote changes were not
fetched first. This is now fixed.
Also fixed errors thrown when calling gitPullOrClone on an existing repository when doing git pull, when HEAD
is detached (for tags) or there is no tracking branch.
* Added a local fix for a crash when using older Python and Py-SDL2 versions.
Upstream bug: https://github.com/marcusva/py-sdl2/issues/75.
Upstream fixed the issue, but older distros (Ubuntu 18.04 based) don't have an updated `python3-sdl2` package.
* It seems that initializing the video is not really required for the joystick subsystem to work.
On newer SDL versions (tested with 2.0.16), initialization will fail with video added if the video cannot be initialized.
This prevents starting `joy2key_sdl.py` if ES is already started or trying to run it headless (i.e. no KMS/X available).
While this is not a use case we're covering, it's better to remove the video initialization if it's not needed.
Updated the dependencies and scripts for python3:
* `python-dbus` no longer exists in Debian 11 'bullseye' or Ubuntu > 20.04, installl the `python3` version
* `python-gobject` has been superseeded by `python(3)-gi`, the current package is just a transitional package that pulls
`python-gi` and the old `python-gobject-2` (deprecated). Update the dependencies and the scripts to use the new package.
* set python3 as interpreter for the helper scripts. Fixed the dict syntax for getting items
Default to "buster" if no dist parameter is provided.
Raspberry Pi OS bulleye based image is now out, and is the default image so we needed to update the URL
for buster to the last archived version.
For certain joysticks (axis), SDL will generate spurious axis movement events during initialization.
It seems that for axis where `absmin` and `absmax` are asymmetrical (ex. 0-255 instead of -255 - 255), SDL generates extra events which are not user generated. This can causes issues - i.e. automatically trigger the `runcommand` menu without user interaction, unintended scrolling, etc.
As a workaround, discard any axis movement events _immediately_ after the device is added.
NOTE: this will discard any potential valid axis events from another (already connected) device if they are present, forcing the user to probably re-center the joystick they were using.
Notable changes in ScummVM 2.5:
- ResidualVM project merged with ScummVM, adding support for Grim Fandango, The Longest Journey and Myst 3: Exile.
- 10 more new engines and subengines that add compatibility with the following games:
* Little Big Adventure
* Red Comrades 1: Save the Galaxy
* Red Comrades 2: For the Great Justice
* Transylvania
* Crimson Crown
* OO-Topos
* Glulx interactive fiction games
* Private Eye
* AGS Games versions 2.5+
* Nightlong: Union City Conspiracy
* The Journeyman Project 2: Buried in Time
* Crusader: No Remorse
* L-ZONE
* Spaceship Warlock
- added new localization and multiple platform versions existing games.
- major rework of the GUI: support for Unicode everywhere, support for high resolutions and HiDPI screens.
- support for GOG/Steam achievements to a large number of Wintermute games.
- support for Keymapper in more games.
Module changes:
- corrected the backend spelling for the SDL1 version and quoted the game name in the start script.
- minor adjustment to the SDL1 version patches.
- added 2 new dependencies (libgif,liba52)
Changes since last version:
* updated the Quake2 client to 8.00
* switched building to `make`, since the `cmake` method is no longer recommended (see fb1a2b0ce7)
* build the add-ons sources from the same project.
* (minor) don't run the cleanup in the `quake2` port folder when the shareware version is not downloaded
Notes:
* the version of the package is dependant on the main YQuake2 repo. If the `get_repo_version` from `mupen64plus` (which features the same multi-repository approach) is added as a helper, we might be able to use it here to detected when one of the repos gets a new release. For now, the main repo is the one of interest, so I think it's ok to use it for update detection.
* the add-ons (rogue/xatrix) seem to run without the added `game.so` files, but withouth it there's lots of errors logged. Errors don't appear when the `game.so` is fond and loaded.
EmulationStation 2.10+ supports pixel based positioning in themes. @tomaz82 who authored the code also
redid the base themes to utilise this and also to use other new features such as variables.
This new code will install the carbon-2021 theme by default when the version of EmulationStation is 2.10 or newer.
It will also only show the new carbon-2021 pixel positioned themes to users via the gui if the installed
EmulationStation supports it.
Users upgrading EmulationStation once the latest changes have been merged to the stable branch will get the new
theme installed, but will need to manually switch to it. However the old theme should work fine still. Some older
themes may show some minor spacing issues due to fixed calculations in the ES code for lists etc.
Set the Memcard 1 save as "Save Ram (libretro .srm)" instead of the native "<game>_1.mcd" file. Should make easier consistent with other libretro cores behavior.
License link updated, taken from https://github.com/stenzek/duckstation#libretro-core.
Since v1.9.6 RetroArch changes the way the "analog to digital" works and since then the "forced mode" is need for some cores (eg. lr-vice, lr-puae).
https://github.com/libretro/RetroArch/pull/12562