Updated to the 18.0 release, which requires GCC 9 and it's installable on Debian 11 (bullseye)/Ubuntu 20.04+.
The input auto-loading script has been updated to use the joystick's SDL name, while previously was using the 'udev'
device name. This fixes the issues when the joystick nane (SDL) is different than the 'udev' reported name
and thus prevented the auto-loading.
* modified the input configuration script to export Vendor/Product IDs, if exported by EmulationStation.
* added vendor/product to RetroArch's script for generating joypad profile.
Updated the script for v1.15. Pull from https://github.com/cmitu/retroarch/tree/retropie-v1.15.0 into https://github.com/retropie/retroarch/ for our patches on-top of the lastest v1.15.
Changed a few options in the default config:
- removed some rarely used Quick Menu actions to shorten it by default. Rewind/Replay/Record have been toggled off.
- changed the default RGUI look & feel by configuring it to use the 'Tango Dark' theme, similar to the default RGUI theme.
- removed the core cache info file read/writing, since it's not useful for our configuration.
Biggest breaking change since v1.12 is the hotkey handling for keyboard inputs. Previously, when a gamepad was connected and keyboard didn't define any hotkey enable key, the hotkey action on the keyboard would trigger only when the hotkey enable btn on the gamepad was pressed. Current behavior is to trigger the hotkey action on the keyboard without the hotkey btn pressed. Note that this mainly affects configurations when keyboard/gamepad were used simultaneously, for standalone keyboard based configurations the difference wouldn't matter.
The hotkey btn regression I reported was fixed in the re-release (!) of v1.15 and it's part of our RetroPie branch.
Here's an abriged changelog for v1.13-v1.15, focused on new features/updates and major bugfixes.
Detailed changelogs:
* 1.13 - https://www.libretro.com/index.php/retroarch-1-13-0-release/
* 1.14 - https://www.libretro.com/index.php/retroarch-1-14-0-release/
* 1.15 - https://www.libretro.com/index.php/retroarch-1-15-0-release/
* 1.15 redo - https://www.libretro.com/index.php/dirksimple-core-added/
* General
- Start unpause restriction. Limit the feature using retropad start button to unpause RA to the setting it was made for; "pause on controller disconnect".
- Ignore system subdir replacement if subdir has subdirs.
- Add support for system subdirs per core/database. Added the trivial and graceful automatic ability to send a different system directory to cores if it exists, for keeping the system dir more sane. First by using the core/library name just like in configs and saves, and then by playlist name, like in thumbnails, and of course default to the current global system dir.
- Restore cached video driver always on quit
- Added _Automatic Frame Delay_ Helped delay to decrease easier when it should and helped delay to stay put when it should when triggering pause & menu with or without pause & fast-forward & slow-motion & geometry change
- Add _Preemptive Frames_ to Latency Settings, RunAhead alternative that reruns core logic to "rewrite history" before the current frame. Frames are only rerun when the controller state changes, so it’s faster overall.
- Allow selecting -1 Auto slot with hotkeys
- Allow wrap-around from -1 to 999 save states and backwards
- Show failure message when trying to load a state that does not exist instead of plain “Loading state”
- Shorten the duration of save slot change notification
- Change the Save States widget type to the same type as shader toggle for better back and forth action.
- Allow manual video swap interval forcing. The addition of auto swap interval effectively prevented manual forcing, which is beneficial when the rate is not reported properly. Therefore use the interval in the calculation only when using automatic interval.
- Restore framelimit on fastforward toggle. Fast-forward was broken after toggling vrr_runloop off, since it will force frame limit to 1.0 (even on every frame) and never restores it. So let’s make sure the wanted ratio is applied when toggling FF (Fastforward).
- Don’t init SRAM saving without content (gets rid of the redundant logging)
- Use non-rendering pause mode when frameadvance is triggered
- Core option setting type checks. Added checks for getting and setting core option type, since otherwise there will be a crash on close content after browsing to core option categories. Also fixed the no-show switch icon for lone wolf "Lock Installed Core"
- Restore framelimit on fastforward toggle
* Cheevos
- Allow repositioning of RetroAchievement notifications
- MENU: Add Achievements Visibility submenu option
- MENU: Startup Summary split off from Verbose Mode, added option to hide for games with zero core cheevos
- MENU: ‘Unlocks/Mastery’ split into two options
- MENU: ‘Account/Login Messages’ split off from ‘Verbose’, gated all login success/error messages
- Fix construction of Cheevos badge path
- Upgrade to rcheevos 10.5
* Input
- Fixed the way devices were previously indexed. Input devices were only being indexed in order and would stop at the first time an input has no device connected to it. The problem is when a device gets disconnected, that input will have no devices connected to it, but the next input may still have a device connected. So, that makes changing the port of the currently connected devices impossible.
- Add option for pause on controller disconnect
- Enable menu navigation also with right analog stick
- Add option for pause on controller disconnect
- Add option for swapping menu scrolling buttons
- Hotkeys - Fix shader toggle and add hotkey + sublabel
- Hotkeys cleanups and corrections
* keep hotkey pause and menu pause separate in order to not trigger unwanted pause when toggling menu regardless if menu will pause or not
* allow unpausing with Start (makes resuming more convenient after controller disconnect if menu does not pause)
- Don't show override notification with appendconfig alone
- Further reorder internal hotkey items for consistency and removed SEND_DEBUG_INFO, OVERLAY_NEXT and OSK from visible hotkey bind list.
- Disable "pause on controller disconnect" by default
- Device Index menu refactor
- Allowing keyboard hotkeys to work without hotkey modifier if modifier is only mapped to RetroPad
- Allowing keyboard hotkey keys for typing if hotkey modifier is set to keyboard but not pressed
- Allowing keyboard RetroPad keys for typing if emulated device type is "None"
- (Linux/udev) Fix udev guns input when id_mouse is not id_joystick
- Check for "enable_hotkey" also from autoconf binds (1.15bis)
- Unload restores current global config
- Saving an empty override removes the file if it exists, and won’t save when it does not
- Removing a file does not unload current override
* Shaders - added stacking shader presets
* Menu
- Rename "Standalone Cores" to "Contentless Cores"
- Relocated items to a more logical order
- Corrected some title capitalizations
- Allow toggling info off with the same button
- Allow menu wallpaper/background reset.
- Cleanup of help texts
- Add dropdown menu for audio device
- Help for turbo modes (#14919). Help text added for each of the selectable turbo modes.
- Allowed and fixed input bind saving to overrides
- Overhauled override menu, override bind save + menu manager overhaul
- Allowed and fixed input bind saving to overrides
- Add unified back action to all menu drivers.
- Pressing Start on the top active file entry reloads current overrides as startup would
- Added missing icons in cheats
- Fix disabled menu item color on RGUI. The effect was not working properly, since transparency meant using the core output color as background.
- Fixed label capitalization in cheats
- Add scrolling sounds for RGUI, XMB, MaterialUI and Ozone.
- Better scrolling sound implementation, add new "notice back" sound
- Show square sized widget on volume mute
- Various fixes and improvements for XMB, Ozone and MaterialUI drivers
- Notification font + statistics adjustments for OSD
- Show Frame Delay without VSync
- Fix RGUI on Vulkan on platforms that don’t have _pack16 VkFormats
EmulationStation, when using the RPI videodrivers, displays at layer 10000.
Increased the layer index for video/images in order to run above EmulationStation.
Upstream uses a shallow submodule, but is tracking a rolling branch that changed since the submodule was added.
Older `git` versions cannot fetch the ref registered in the parent repo and the recursive clone fails.
It affects Debian _buster_ and Ubuntu 18.04, plus other downstream distros (Linux Mint 19.3).
Clone the repo temporarily and remove the submodule, since it's not used actively by the core.
Issue was reporeted upstream in https://github.com/libretro/libretro-cap32/issues/116.
Release notes - https://github.com/BlitterStudio/amiberry/releases/tag/v5.6.0
Changelog for 5.6.0, with modifications added after 5.5.1.
* New features
- implemented On-Screen Virtual Keyboard
- added VKBD retroarch mapping support and VKBD default toggle key
- updated game controllers db to latest version
- decrease mouse map sensitivity on joystick handling
- added new default options in amiberry.conf
- added Warp reset option in Misc Panel
- GUI improvements
- implemented turbo boot option
- added 1024x600 RTG resolution
- allow on-the-fly change of virtual mouse driver
- increased width of dropdowns in Input Panel
- automatically center GUI window when opening
- updated WHDLoad XML to latest version
- updated game controllers db to latest version
* Changes
- refactored input event handling to minimize latency
- rewrite Serial port support, using libserialport
- refactored controller input logic
- decrease mouse map sensitivity on joystick handling
- added more logging during retroarch event handling
* Bugfixes
- fix "default" button setting not fully enabling CD32 pad mode when CD32 was configured.
- detection of hotplug controllers didn't work after 5.4
- restart would cause crashes sometimes
- fixed controller axis should be separate from joystick axis handling
- memory pattern would cause graphics glitches in some cases
- virtual keyboard now works with CD32 mode as well
- fixed crash if something triggered a CPU HALT3
- fixed various compiler warnings
- revert custom, blitter and drawing to WinUAE 4.4.0 standard
- improve scrolling smoothness under 50Hz
- don't use SDL_Quit until we actually quit Amiberry
* removed the launcher through Xorg since Steam Link can now run with a desktop env on both RaspiOS 10 and 11, choosing between the DRM or MMAL drivers. Tested on a RPI 3 (RaspiOS 10) and RPI 4 (RaspiOS 11).
* adjusted the dependencies to remove xorg/matchbox/zenity since they're not strictly necessary and added a few packages which might not be automatically installed on RetroPie. The list of the packages that `steamlink` tries to install on first run in is `$XDG_DATA_HOME/SteamLink/steamlinkdeps.txt`, I just picked the ones that are not already part of existing dependencies (`vlc` will install most of them).
* disabled the package on 64bit, since is not available there (see https://steamcommunity.com/app/353380/discussions/0/1649917420735113143/)
The "X is running" test in emulationstation startup script is deprecated. X was replaced by Xorg a long time ago (pre Debian stretch and Ubuntu bionic). The test could be modified to support Xorg, but emulationstation runs quiet well under x11. Just remove it.
Needed for configurations using the 'vc4-kms-v3d' overlay (default in RPI OS 11).
The names are (almost) similar, but the default order of the cards is different:
* (fkms/videocore) the order is HDMI, Headphones
* (kms) the order is Headphones, HDMI
The `vc4hdmi` driver also has an extra PCM (hdmi) that does the audio conversion, since the default one understands only the `IEC958_SUBFRAME_LE` format.
The new PCM is configured in `/usr/share/alsa/cards/vc4-hdmi.conf`, and it needs a recent `libasound2-data` package (on Buster, Bullseye already has the configuration included).
The default ALSA configuration may have a bug (?) in the definition of the volume control (mixer) for the `vc4hdmi` cards, so add a software volume control with a mute toggle for these cards. For compatibility with previous configurations, the control is named 'HDMI'.
Raspberry PI OS images have added a first-boot wizard to change the default username/password [1].
In order to skip this step and keep the (former) default username 'pi', add a 'userconf.txt' to preset the info needed for the default user.
[1] https://www.raspberrypi.com/news/raspberry-pi-bullseye-update-april-2022
When the upstream info repository adds an `.info` file we also generate, `git` will refuse the pull done during the update of the info files.
Just remove the files before the update and add them after `git` synchronizes with upstream.
Removed the Mess core info files, which triggered this bug initially.
Added the Free fonts, since `attract` will not start without it's default font (FreeSans).
The font search code has changed recently, triggering now an error without FreeSans being present.
On a multiarch system both amd64 and i386 versions of a package may be installed.
This would cause both to be returned by dpkg-query on a single line causing the extracting of version and install status to fail.
It now splits the output onto multiple lines and grabs the first line to workaround this.
Fixes#3679
Since upstream started requiring a C++20 capable compiler (gcc 10 min), update our build support based on the available gcc version:
* minimum gcc version is 8 (Ubuntu 18.04, Debian 10)
* current master can compile with gcc 10 (Debian 11, Ubuntu 22.04)
* allow building with gcc 9 (Ubuntu 20.04)
Upstream has transitioned and recommends using Qt6 for building, so use that when available (Ubuntu 22.04 for now, but Debian 'bookworkm' and 'bullseye-backports' also include it).
* fixed a typo in the joystick name cleanup instruction.
When the joystick name contained the cleaned up characters, the auto-loading didn't work
* simplified the regex for both joystick and rom name cleanup instructions
* removed the 'osd' menu hiding from our code, since openMSX is now doing it itself (after a small delay).
This prevents a warning message showed if the 'osd' menu cannot be found