Skip to content

Commit a5b6d6c

Browse files
committed
retroarch: update to the version 1.22+
This bumps the RetroArch version to 1.22.x from 1.19.0. The RetroPie module changed with: - RGUI border is removed in the default configuration. - New version enables a 'linear' interpolation by default, which blurs the menu for RGUI, so disable it - Reset/Quit require confirmation now and their option names have been renamed, so make sure they're updated in existing configs and new default config. - Enable saving the remaps sorted by controller name in new default configs. Seems natural given that remaps use the underlying physical controller indexes for axis/buttons, which are controller dependant. See libretro/RetroArch#16747 for details. NB: this is a breaking change from the existing/default behavior of RetroArch, but is not applied to existing configurations, just for new insallations. - Now the Pipewire is supported as audio server, add the dependencies to build with it on desktop. Add the driver to the configuration editor, so it can be selected. - Due to changes in the build scripts, when GLES(2) is enabled then OpenGL1 should be disabled. Release announcements for the new versions: - 1.22 (Nov 2025) followed up by 1.22.1 and 1.22.2 in the same month. No release announcement on libretro.com. - 1.21 (April 2025) https://www.libretro.com/index.php/retroarch-1-21-0-release/ - 1.20 (January 2025) https://www.libretro.com/index.php/retroarch-1-20-0-release/ Abbreviated changelog from 1.19.0, focused on features relevant to Linux/RetroPie: * AUTOCONF: - Enable alternative display name in autoconfig files (v1.21) - Make autoconfig failure messages optional (v1.21) - Extend autoconfig matching with a physical identifier (v1.22), see libretro/RetroArch#18190 * AUDIO: - Option to mute on rewind (v1.21) - PIPEWIRE - Fix app launch when pipewire service is stopped (v1.21) - Fix speedup with threaded video mode (v1.21) - Fix latency setting and microphone handling (v1.21) - Pass the new rate to the audio driver (v1.21) - audio handling in case of RARCH_NETPLAY_CTL_USE_CORE_PACKET_INTERFACE (v1.20) - Add PipeWire audio driver (v1.20) - Add PipeWire microphone driver (v1.20) * CHEEVOS - Add rarity and points to achievement unlock widget (v1.20) - Add rank to leaderboard submission notification (v1.20) - Update to rcheevos 11.6 (v1.20) - Show rcheevos game image in Discord rich presence (v1.20) - Use translated strings for achievement messages (v1.20) - Include achievement state in netplay states (v1.21) - Fix crash when entering achievements in quick menu while client is not present (v1.21) - Upgrade to rcheevos 12.1 (v1.22) - Hashing of RVZ files is now supported (v1.22) - Show additional message for unsupported achievements (v1.22) - Update to rcheevos 12.3 (1.22+) - Download badges on demand only (1.22+) - Fix for PS2/PSP CHD hashing with RetroAchievements (1.22+) * CRT/SWITCHRES: Update switchres to 2.2.1 (v1.20) * GENERAL: - Fix save state auto increment (v1.21) - Fix softpatching with periods/dots in the file name (v1.21) - Allow asset directory redefinition and other directory overrides via environment variables (v1.21) - Fix performance counter option not remembered between sessions (v1.21) - Use core fps instead of screen refresh for calculating dropped frames (v1.21) - Support for mbedtls v3 (v1.20) - Automatic Frame Delay refactor (v1.20) - Remove Frame Reset, obsoleted by Frame Delay refactor (v1.20) - Wrap around auto increment save state indexes when amount of states is limited (v1.20) - Enable auto save state when new content is loaded (v1.20) - Improve Preemptive Frames when pointing device is used (v1.20) - New network commands SAVE_STATE_SLOT N and GET_CONFIG_PARAM * INPUT: - Fix a crash when initializing illuminance sensor on Linux (v1.21) - Analog-to-digital refactor, fixing behavior when analogs are assigned to keys (v1.21) - Turbo fire overhaul. See libretro/RetroArch#17633 (v1.21) - Allow to select a preferred/reserved device for each player (v1.20) - Enable Caps, Num, Scroll Lock modifiers on multiple platforms (v1.20) - Autoconfig extension with alternative name/vid/pid (v1.20) - Fix autoconfig profile saving when device is not in the default port (v1.20) - Change classic turbo mode to work independently of which key was pressed first (v1.20) - Pointer and lightgun handling sanitization on Windows and Linux desktop platforms. These input drivers will now report edge and offscreen positions in a harmonized way, and will not return 0 instead. (v1.20) - Sort and apply remaps based on the specific connected controller (v1.20) - (udev) Enable mouse buttons 4 and 5 (v1.20) - (Wayland) Enable horizontal scroll and mouse buttons 4 and 5 (v1.20) - (Wayland) Simulate lightgun input for cores (v1.20) - (Wayland) Support for cursor-shape-v1 and content-type-v1 protocol (v1.20) - Enable mouse buttons 4 and 5 (v1.20) - Extend X11 input driver with XInput2 extensions for multi-mouse (v1.21) = Reset + Close content require confirmation (v1.22) - Turbo fire settings are saved to remaps and not overrides (v1.22) - Menu toggle and hotkey enable can now be assigned to the same key (v1.22) - Option to have hotkeys follow the port mapped first to the core (v1.22) - New analog-to-digital types: both stick, twin-stick (for pressing face buttons with analog stick). (v1.22+) - Fix for setups which have Game Focus and Hotkey Enable on the same key (v1.22+) - Autoconf profile load/save rework: saved profiles have now higher priority, several QoL improvements for saving (v1.22+) - Allow remap of gyro/accelerometer axes in autoconfig (v1.22+) - Unused RetroRating and performance level indications removed (v1.22+) - Saving menu is reorganized (v1.22+) - Refactor of bind/remap menu (v1.22+) - Rename Quick Menu Restart to Reset (v1.22+) - Add sublabels for built-in cores and show them in core manager list (v1.22+) * LIBRETRO: - Support RETRO_ENVIRONMENT_GET_FILE_BROWSER_START_DIRECTORY (v1.20) - Support “/” as a file extension for loading a directory as content (v1.20) * MENU - XMB: - Allow playlist icons to be individually customized, by looking for images in Named_Logos (v1.20) - Fix Light theme, font shadow (v1.21) - Appearance menu cleanup (v1.21) - Icon thumbnail can be any of the existing types (v1.21) - Cheat menu rework (v1.22+) - OZONE: - Add Selenium theme for Ozone (v1.20) - Touchscreen improvements (v1.20) - Add a touch-sensitive Resume button in the lower right corner (v1.20) - Fix messagebox background (v1.21) - Support local thumbnails in other image formats than png (jpg/jpeg, bmp, tga) (v1.20) - Delete also savestate thumbnails when savestates are garbage collected (v1.20) - Option to disable analog stick menu navigation (v1.20) - Fix pause toggle to not clear fast forward state (v1.20) - Fix search playlist index in XMB/Ozone (v1.20) - Fix renamed entry display (v1.20) - Filter unknown extensions also inside zip files (v1.20) - Add icons for present / missing firmware on core info page (v1.20) - Ignore other hotkeys when menu toggle is pressed (v1.20) - Fix menu jumping when using L3+R3 combo (v1.20) - System Information now only shows features relevant for the platform (v1.20) - Add warning to BFI and related menu items (v1.21) - Fix latency statistics when using runahead (v1.21) - Fix opening file inside archive with core selection (v1.21) - Main menu unified between different menu drivers (v1.21) - Visibility toggle for playlist tabs (v1.21) - Color the notification icon by message category (v1.21) - Gray Dark+Light theme adjustments (v1.21) - Random selection/shuffle function (v1.21) - Task widget improvements (v1.22+) - RGUI: - Cleanups of certain menu items (v1.21) - Thumbnail fixes (v1.21) - Clock format is now configurable and moved to top header (v1.22) - Update CRTSwitchRes menu options for future use (v1.22) - Move core options reset from Settings/Configuration to Main Menu / Configuration Files (v1.22) - Save As / Save Main options for configuration file (v1.22) - Less important widgets are now sized like task notifications (v1.22) - Configurable startup page (several options beside default Main Menu) (v1.22) - Shader menu rework, combined save/remove menus, save current, Y and Start hotkeys for shader parameters and background (v1.22) - Show keyboard overlay selection even if it is not loaded (v1.22+) - Do hard reset when pushing RetroPad Start on Restart menu item (v1.22+) - Widget default size adjusted (v1.22+) - Use RetroPad Y inside shader menu to toggle background opacity or reset shader passes (v1.22+) - Fix crash when closing content with runahead and remaps active (v1.22+) - Unused RetroRating and performance level indications removed (v1.22+) - Saving menu is reorganized (v1.22+) - Refactor of bind/remap menu (v1.22+) - Rename Quick Menu Restart to Reset (v1.22+) * MIDI: - Fix lingering notes on close in Alsa driver (v1.20) - Add dropdown items for midi device selection (v1.21) * OVERLAY: - Add option to load overlay based on system name (v1.20) - Fix overlay lightgun, mouse & pointer (v1.21) - Preferred overlay loading is now default only on mobile platforms (v1.21) - Improve analog recentering when touching the area just outside the recentering zone (v1.21) * SAVESTATES: Reset state index when loading new content (v1.21) * VIDEO - Force fullscreen when KMS is used (v1.20) - (OPENGLES) - Improve version directive granularity (v1.20) - Fix FP/sRGB FBO support (v1.21) - SHADERS - Fix memory leak when shader parameter step is 0.0 (v1.20) - Add 2 uniforms, OriginalAspect and OriginalAspectRot. (v1.20) - Add CoreFPS and FrameTimeDelta uniforms. (v1.20) - Support optional includes (v1.20) - Allow exact refresh rate sync with shader subframes (v1.21) - Use shader path from CLI for shader cycling (v1.20) - FIX shader wildcards (v1.21) - Support for Cg and GLSL shaders in the GLCore video driver (v1.22) - Shader hold function, useful for some lightguns and shader comparison (v1.22) - Display on-screen error when preset load fails (v1.22+) - Add gyroscope / accelerometer uniforms for shaders (v1.22+) - Add aggressive shader caching to slang shader backend (v1.22+) - VULKAN: - Fix Vulkan window freezes when swapchain becomes suboptimal (v1.20) - Prefer IMMEDIATE mode without vsync (v1.20) - Support inhibit of Xss screensaver (v1.20) - Show and use exact refresh rate (3 decimals) and interlace/doublestrike where available (v1.20) - Allow setting viewport bias to offset viewport horizontally/vertically (v1.20) - Support viewport bias also with integer overscale and custom aspect ratios (v1.20) - Pixel perfect integer scaling improvements: axis options, smart mode (v1.20) - Use shader path from CLI for shader cycling (v1.20) - Add upscale 1.66x filter (v1.20) - Fix auto swap interval setup (v1.22) - Improvements for integer scale half scaling (v1.22) - Adjustments to smart integer scaling, considering title safe area (v1.22) - Fix viewport bias when using custom aspect ratio (v1.22) - Improve GLES version detection (v1.22) - Throttle framerate when VSync is enabled but window is not focused (v1.22+) - New video filters de-dither, pixel-art-AA, ntsc, crop-borders (v1.22+) - Major HDR update. Inverse tone mapping uses RGB maxing instead of luminance, better full-spectrum remapping of SDR space to HDR, Contrast option remove. Performance improved. HDR menu settings exposed to shaders, fast HDR single-pass scanline simulation added. (v1.22+) - SDL2: Add hardware-accelerated support for widgets, XMB, Ozone - WAYLAND: - Support for xdg-toplevel-icon-v1 - Fix segfault when relative pointer is not supported (v1.20) - Use reverse DNS name for desktop file and icon (v1.20) - Commit viewport resizes for more responsive display when resizing window (v1.20)
1 parent d4ff462 commit a5b6d6c

2 files changed

Lines changed: 27 additions & 14 deletions

File tree

scriptmodules/emulators/retroarch.sh

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@
1212
rp_module_id="retroarch"
1313
rp_module_desc="RetroArch - frontend to the libretro emulator cores - required by all lr-* emulators"
1414
rp_module_licence="GPL3 https://raw.githubusercontent.com/libretro/RetroArch/master/COPYING"
15-
rp_module_repo="git https://github.com/retropie/RetroArch.git retropie-v1.19.0"
15+
rp_module_repo="git https://github.com/retropie/RetroArch.git retropie-v1.22.4"
1616
rp_module_section="core"
1717

1818
function depends_retroarch() {
1919
local depends=(libudev-dev libxkbcommon-dev libsdl2-dev libasound2-dev libusb-1.0-0-dev)
20-
isPlatform "rpi" && depends+=(libraspberrypi-dev)
20+
isPlatform "dispmanx" && depends+=(libraspberrypi-dev)
2121
isPlatform "gles" && ! isPlatform "vero4k" && depends+=(libgles2-mesa-dev)
2222
isPlatform "mesa" && depends+=(libx11-xcb-dev)
2323
isPlatform "mali" && depends+=(mali-fbdev)
24-
isPlatform "x11" && depends+=(libx11-xcb-dev libpulse-dev)
24+
isPlatform "x11" && depends+=(libx11-xcb-dev libpulse-dev libpipewire-0.3-dev)
2525
isPlatform "vulkan" && depends+=(libvulkan-dev mesa-vulkan-drivers)
2626
isPlatform "vero4k" && depends+=(vero3-userland-dev-osmc zlib1g-dev libfreetype6-dev)
2727
isPlatform "kms" && depends+=(libgbm-dev)
@@ -40,15 +40,15 @@ function sources_retroarch() {
4040
function build_retroarch() {
4141
local params=(--disable-sdl --enable-sdl2 --disable-oss --disable-al --disable-jack --disable-qt)
4242
if ! isPlatform "x11"; then
43-
params+=(--disable-pulse)
43+
params+=(--disable-pulse --disable-pipewire)
4444
! isPlatform "mesa" && params+=(--disable-x11)
4545
fi
4646
if [[ "$__os_debian_ver" -lt 9 ]]; then
4747
params+=(--disable-ffmpeg)
4848
fi
4949
isPlatform "gles" && params+=(--enable-opengles)
5050
if isPlatform "gles3"; then
51-
params+=(--enable-opengles3)
51+
params+=(--enable-opengles3 --disable-opengl1)
5252
isPlatform "gles31" && params+=(--enable-opengles3_1)
5353
isPlatform "gles32" && params+=(--enable-opengles3_2)
5454
fi
@@ -230,18 +230,22 @@ function configure_retroarch() {
230230
iniSet "input_joypad_driver" "udev"
231231
iniSet "all_users_control_menu" "true"
232232
iniSet "remap_save_on_exit" "false"
233+
# saves remaps under a gamepad-named folder
234+
iniSet "input_remap_sort_by_controller_enable" "true"
233235

234-
# rgui by default
236+
# use the RGUI menu by default
235237
iniSet "menu_driver" "rgui"
236-
iniSet "rgui_aspect_ratio_lock" "2"
238+
iniSet "rgui_border_filler_enable" "false" # disable the border
239+
iniSet "rgui_aspect_ratio_lock" "2" # 4:3
240+
iniSet "rgui_aspect_ratio" "11" # Auto
237241
iniSet "rgui_browser_directory" "$romdir"
238242
iniSet "rgui_switch_icons" "false"
239243
iniSet "menu_rgui_shadows" "true"
240244
iniSet "rgui_menu_color_theme" "29" # Tango Dark theme
245+
iniSet "menu_linear_filter" "false" # disable linear scaling, looks bad on RGUI
241246

242-
# hide online updater menu options and the restart option
247+
# hide online core updater menu options and the restart option
243248
iniSet "menu_show_core_updater" "false"
244-
iniSet "menu_show_online_updater" "false"
245249
iniSet "menu_show_restart_retroarch" "false"
246250
# disable the search action
247251
iniSet "menu_disable_search_button" "true"
@@ -260,6 +264,11 @@ function configure_retroarch() {
260264
iniSet "core_info_cache_enable" "false"
261265
# disable game runtime logging
262266
iniSet "content_runtime_log" "false"
267+
# disable history file
268+
iniSet "history_list_enable" "false"
269+
# .. and also favorites
270+
iniSet "content_favorites_size" "0"
271+
iniSet "content_show_favorites" "false"
263272

264273
# disable unnecessary xmb menu tabs
265274
iniSet "xmb_show_add" "false"
@@ -276,8 +285,9 @@ function configure_retroarch() {
276285
# enable menu_unified_controls by default (see below for more info)
277286
iniSet "menu_unified_controls" "true"
278287

279-
# disable 'press twice to quit'
280-
iniSet "quit_press_twice" "false"
288+
# disable 'press twice to quit/reset'
289+
iniSet "confirm_quit" "false"
290+
iniSet "confirm_reset" "false"
281291

282292
# enable video shaders
283293
iniSet "video_shader_enable" "true"
@@ -297,13 +307,16 @@ function configure_retroarch() {
297307

298308
# set RGUI aspect ratio to "Integer Scaling" to prevent stretching
299309
_set_config_option_retroarch "rgui_aspect_ratio_lock" "2"
310+
# disable linear filtering, looks bad for RGUI
311+
_set_config_option_retroarch "menu_linear_filter" "false"
300312

301313
# if no menu_unified_controls is set, force it on so that keyboard player 1 can control
302314
# the RGUI menu which is important for arcade sticks etc that map to keyboard inputs
303315
_set_config_option_retroarch "menu_unified_controls" "true"
304316

305-
# disable `quit_press_twice` on existing configs
306-
_set_config_option_retroarch "quit_press_twice" "false"
317+
# disable confirmation for quit/reset
318+
_set_config_option_retroarch "confirm_quit" "false"
319+
_set_config_option_retroarch "confirm_reset" "false"
307320

308321
# enable video shaders on existing configs
309322
_set_config_option_retroarch "video_shader_enable" "true"

scriptmodules/supplementary/configedit.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ function advanced_configedit() {
223223

224224
local audio_opts="alsa alsathread sdl2"
225225
if isPlatform "x11"; then
226-
audio_opts+=" pulse"
226+
audio_opts+=" pulse pipewire"
227227
fi
228228

229229
local ini_options=(

0 commit comments

Comments
 (0)