* INTL: Add Galician and Norwegian to list of languages
* LAKKA: Display reboot/shutdown message also when not saving config on exit
* LAKKA: Provide update URL and target name at buildtime
* LIBRETRO: Add a debug message for the SET_ROTATION callback
* MENU: New function in Quick Menu: Add to Playlist
* MENU/XMB: New theme: FlatUX, designed to merge FlatUI and Retroactive themes into a single, unified design
* NETWORKING/RETROPAD CORE: Fix socket close method
* PIXMAN: Update pixman-private.h - patch to fix build issue with musl
* PLAYLIST: Cleanup 'Add to Playlist' (#16495)
* SCANNING: Fix for scanning PSP ISOs (and probably few others)
* SAVES: Fix core config saving
* SAVES: Fix save new config name when core loaded
* SAVESTATES: Increase save state chunk size for all platforms - Even a class 6 or class 10 SD card can handle reads and writes on the order of MB/s, which means a 4KB chunk size is just wasting time in syscalls. This could maybe be fixed with a buffering reader but I don't feel comfortable tweaking libretro-common's VFS to handle that. Instead, I thought it would be good to both remove an ifdef and increase the chunk size to 128KB. For cores with small states this will should make state saving virtually instantaneous, and for cores with large states it should be a 32x speedup.
* VIDEO: Fix crash when using threaded video - for Mesa 23.2 and later
* VIDEO/GL: Fix reinitialization of the threaded gl drivers
* VIDEO/VULKAN: Add support for A2R10G10B10 HDR format
* VIDEO/VULKAN: Implement HDR readback - screenshot support
* WAYLAND: Ignore configure events during splash (fix not remembering window size)
* WAYLAND: Use frontend signal handler to quit (fix quit by window close)
* WAYLAND: Commit viewport resizes (window resize is more responsive)
* MENU: Reorder and reduce depth of User Interface menu
* MENU/OZONE: Fix sidebar wraparound, visibility after config load, crash after playlist delete
* MENU/OZONE: Fix sidebar and sublabel animations
* OSX/MACOS: Fix crash on non-Metal build
* OSX/MACOS: Add portable.txt as flag for portable install
* REMOTE RETROPAD: add display for analog axes, indication of inputs already pressed
* SAVES: Allow combining saves in content dir with save sorting
* SHADER: Added rolling scan line simulation based on the shader subframe feature. This is implemented with a scrolling scissor rect rather than in the shader itself as this is more efficient although may not work for every shader pass - we may need an option to exclude certain passes. The implementation simply divides the screen up by the number of sub frames and then moves the scissor rect down over the screen over the number of sub frames
* TVOS: Force asset re-extraction when cache is deleted
* TVOS: Add history and favorites to Top Shelf
* TVOS: Fix crash when history item does not have a label
* UWP: Enable HAVE_ACCESSIBILITY for UWP builds
* UWP: Allow UWP build to work with a modified version of Mesa Gallium D3D12
* VIDEO: Add subframe shader support for Vulkan/GLcore/DX10-11-12, enabling shaders to run at higher framerate than the content
* VIDEO: Fix restoring fullscreen/windowed setting when unloading override
* VIDEO/VULKAN: Fix HDR with Vulkan after reinit
* VIDEO/VULKAN: Remove the use of oldSwapchain
* VIDEO/GL2: Fix OpenGL ES version detection
* WEBDAV: Fixed SEGFAULT in WebDav task sync + type changes
* WEBOS: Fix build, add core location on webosbrew.org
* WIN32: Fix Alt+Enter not working when menubar is disabled
* EMSCRIPTEN/OPENAL: Make openal default audio driver
* FFMPEG: Fix RetroArch fails to restart streaming when video re-inits and instead starts recording
* FRAMESKIP: Use refresh rate instead of core fps for frameskip timing
* INPUT: Combo hold + 'enable_hotkey' correction. Fixed issue with having menu toggle hold combo in different button than 'enable_hotkey', which caused 'enable_hotkey' to also act as menu toggle if held long enough, and simplified and unified duplicate code in start+select holds to a single function.
* INPUT: input_keyboard_event: Don't check hotkey binds when device is RETRO_DEVICE_POINTER
* INPUT: Add input_keymaps_translate_rk_to_ascii() for correct character input to input_keyboard_event
* INPUT: input_overlay_poll: Delay clearing INPUT_OVERLAY_BLOCKED flag until there is no overlay input (Avoids stray input after osk_toggle)
* INPUT: Send keyboard events for modifiers before other keys (for correct modifier+key input if hitboxes overlap)
* INPUT: Remember currently set keyboard mapping bits during same config read, because otherwise customized keybinds can get cleared out of the bits on the next iteration, causing keyboard events to get passed to the core when they should get blocked.
* INPUT/AUTOCONFIG: Reinit after updating autoconf profiles
* INPUT/LINUX/UDEV: Log mouse devices in info level
* INPUT/LINUX/UDEV: First working version of udev driver with touchscreen support and gestures.
* INPUT/WAYLAND: Add wayland to input driver list
* INPUT/MENU: move port X binds into retropad binds submenu and add appropriate help text and sublabels to discourage people from messing around in there unnecessarily
* INPUT/MENU: Add menu icons to 'RetroPad Binds'
* INPUT/MENU/OSK: Allow more keyboard actions with menu osk
* INPUT/REMAP: Remap label fix when no autoconf profile active
* INPUT/REMAP: Add 'Save As' option for remaps and overrides
* INPUT/OVERLAY: Add overlay parameter to control x/y separation in auto-scale mode
and osk_toggle hotkey. Use overlay caching for osk_toggle.
* INPUT/OVERLAY: Overlay Caching. Adds overlay_cache_ptr to keep a disabled overlay in memory when it's expected to be shown again.
Most input_overlay_deinit calls are replaced with input_overlay_unload, which caches the overlay unless initing/deiniting core or disabling overlays.
Loading a cached overlay is done as a swap, intended for osk_toggle.
* INPUT/OVERLAY: Add input_overlay_check_mouse_cursor() to preserve show/hide mouse behavior
* INPUT/OVERLAY: Don't apply input_overlay_show_mouse_cursor in windowed mode (controlled by mouse grab only)
* INPUT/REMAPPING: Stop always reseting to defaults on remap delete
* INPUT/SDL: Fix rumble on PS4/PS5 controllers connected via bluetooth
* INTL: Fix language detection in Canada to English
* LANGEXTRA: Enable language autodetect for all builds with LANGEXTRA
* LIBRETRO: Add new context hardware render enums - enables autodetection of DX12 for PS2 core
* LIBRETRO: Add API to check JIT availability on iOS
* LIBRETRO: Allow RETRO_ENVIRONMENT_SET_MEMORY_MAPS also after core startup. Change the comment in libretro.h about the removed limit and handle the environment call during core runtime in RetroArch.
* LIBRETRO/MICROPHONE: Add new API for microphone support.
* LIBRETRO: Add new API for querying the device's power state.
* LINUX: Input driver fix 8+ joypads. It was reported that controllers beyond 8 worked only partially (analogs yes, but not buttons), and the found fix was also confirmed.
* MIDI: Show MIDI output first
* MENU: Reorganize 'Saving' menu
* MENU: Start directory browsing from current value
* MENU: Fix menu toggle combo hold with same 'enable_hotkey'
* MENU: Add menu scroll home+end actions
* MENU: Move 'systemfiles_in_content_dir' from Saving to Core
* MENU: Menu navigation acceleration adjustments
* MENU: Audio synchronization menu cleanup
* MENU: Menu value label cleanup
* MENU: Show playlist history/favorites icons by default
* MENU: Remove advanced option flag from video rotation + orientation
* MENU: Combine audio resampler menu with audio output menu
* MENU: Microphone menu cleanup
* MENU: Add missing menu visibility option for content dir override
* MENU: Fix menu refresh in action_ok_network
* MENU: Video settings menu cleanup
* MENU: Try to declutter Quick Menu
* MENU: Change network port menu options to 'allow_input' mode
* MENU: Preselect current core in "Set Core Assocation" menu for more carefree usage
* MENU: Focus back to "Set Core Association" item after returning from the menu instead of first item
* MENU: Replaced hack fix for focusing the first item after returning from core suggestion "Run" menu after association reset
* MENU: Fixed setting core association in history/favorites after resetting it and running without setting
* MENU: Relocate playlist manager core association options to prevent accidental resets with Start
* MOBILE: On mobile in portrait mode, don't override custom viewport
* NETWORKING: Enhance netpacket interface
* NETWORKING/NETPLAY: Enable core host to refuse connecting new players to limit the number of connected players
* NETWORKING/NETPLAY: Enable a core to flush outgoing packets and read incoming packets without waiting for the next frame (can be used for lower latency or blocking reads)
* OPENDINGUX/RG350: Enable networking for RG350
* OPENGL/WAYLAND: Add frame callback after egl_swap_buffers to improve latency when max_swapchain <= 2
* OSD/STATISTICS: Show current video + audio drivers in statistics
* OSD/STATISTICS: Ensure statistics text is aligned left
* PLAYLIST: Change default playlist last played time format
* RUNLOOP: Don't count frames while paused
* SERENITYOS: Add SerenityOS to the list of supported operating systems
* SCANNER: Improve scanner console output
* SCANNER: More scanner console output coloring
* SCANNER: Improve CLI scan console output
* SCANNER: Add content import/scan via CLI
* SCANNER/PS1: Serial extraction is now considered a failure if PSX.EXE is found, allowing CRC fallback and actually fixing the game scanning
* VIDEO: Correct rotated core provided aspect ratio
* VIDEO: Minor adjustments to refresh rate switch behavior
* VIDEO: Fix windowed viewport with libretro rotation
* VIDEO/SDL2: Use "nearest" scaling in menus
* TASKS: Fix corrupt task progress percentage
* XVIDEO/MENU: Add menu support to xvideo gfx driver, making it usable
* UWP: Fix modifier keys ( shift, ctrl, alt ) as well as F10 not being detected on the UWP platform
* VULKAN: Ignore Fast-Forward Frameskip option
* VULKAN/KHR_DISPLAY: Support screen refresh rate with Vulkan KHR_Display context
* WAYLAND: Remove splash screen
* WAYLAND: Check for pointer before locking it
* WAYLAND: Add mouse grab/lock functionality
* WAYLAND: Get system wayland-protocols path via pkg-config
Mon Mar 20 15:29:45 UTC 2023 - Yunhe Guo <i@guoyunhe.me>
- Update to version 1.15.0
* AI SERVICE: Fix NVDA switching to Powershell on speak
* 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
* AUTOMATIC FRAME DELAY: Recalibrate delay on video reinit (fullscreen toggle and such)
* AUTOMATIC FRAME DELAY: Show (x effective) only in menu item and not in dropdown list items when auto is enabled
* CHEEVOS: Allow repositioning of RetroAchievement notifications
* CHEEVOS/MENU: Startup Summary split off from Verbose Mode, added option to hide for games with zero core cheevos
* CHEEVOS/MENU: 'Unlocks/Mastery' split into two options
* CHEEVOS/MENU: 'Account/Login Messages' split off from 'Verbose', gated all login success/error messages
* CONFIG/INPUT: Unload restores current global config
* CONFIG/INPUT/OVERRIDES: Removing a file does not unload current override
* CONFIG/INPUT/OVERRIDES: Saving an empty override removes the file if it exists, and won't save when it does not
* CONFIG/INPUT/OVERRIDES: Prevent the use of RUNLOOP_FLAG_OVERRIDES_ACTIVE with appendconfig
* CORE OPTION: 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".
* CLI: Update selected save slot when start with cli --entryslot
* CLI: Decouple config CLI append and config overrides
* CLI/MENU/XMB: Stop showing bogus previous icon on CLI launch
* EMSCRIPTEN: Add HAVE_PATCH support for Emscripten
* EMSCRIPTEN: Add BSV/Replay support for Emscripten
* EMSCRIPTEN: Add command and stdin_cmd features to emscripten RA. update libretro.js to show how commands could be sent over emscripten stdin.
* FRAME DELAY/MENU: Show Frame Delay without VSync
* 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".
* GENERAL: Savestate thumbnail aspect ratio fallback. Thanks to at least one certain core that announces aspect ratio as 0, we have to add the same fallback in savestate thumbnails that is happening elsewhere in normal video driver use anyway.
* GENERAL: 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.
* GENERAL: Ignore system subdir replacement if subdir has subdirs.
* GENERAL: Restore cached video driver always on quit
* LATENCY/PREEMPTIVE FRAMES: 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.
* LATENCY/PREEMPTIVE FRAMES: Call retro_run before retro_serialize (#14893). Fixes preemptive frames not starting up with a few cores
* LOCALIZATION: Enable localization of video rotation, orientation, and aspect ratio option values.
* LOCALIZATION: Mixer stream localization also added
* LOCALIZATION/MENU/HELP: Context dependent help text for audio and video drivers. Language corrections
* LOCALIZATION/MENU/LANGUAGE: Language submenu now shows the progress of translated strings for each language.
* LOCALIZATION: Help texts now localizable through Crowdin.
* LIBRETRO: Enable RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME for libretro-video-processor
* LIBRETRO/HW: Add GET_HW_CONTEXT_NEGOTIATION_INTERFACE_SUPPORT. Works around issues in v1 interface where it was not possible to
query what frontend would do when faces with newer interface versions. This env-call gives stronger guarantees how things have to work.
* INPUT: Allowing keyboard hotkeys to work without hotkey modifier if modifier is only mapped to RetroPad
* INPUT: Allowing keyboard hotkey keys for typing if hotkey modifier is set to keyboard but not pressed
* INPUT: Allowing keyboard RetroPad keys for typing if emulated device type is "None"
* INPUT/AUTOCONFIG: Check for 'enable_hotkey' also from autoconf binds
* INPUT/BLUETOOTH: Fix a crash in for BT HID devices. (#14922) pad_connection_destroy() frees slots, no need to free it again.
* INPUT/BSV/REPLAY: Don't start video recording when BSV recording starts
* INPUT/BSV/REPLAY: Don't double-record inputs in BSV recording
* INPUT/BSV/REPLAY: Don't autoload states if a BSV file is being played back or recorded
* INPUT/BSV/REPLAY: Moved BSV initialization before autoload code
* INPUT/BSV/REPLAY: Don't trigger autoload code if there is bsv movie state
* INPUT/BSV/REPLAY: Allow for both -e and -R to start a BSV file recording at a state
* INPUT/BSV/REPLAY: Add keyboard recording support to BSV
* INPUT/BSV/REPLAY: Fix BSV playback from a starting state for DOSbox
* INPUT/BSV/REPLAY: Associate states with replays. Now states can be saved and loaded during replay recording and playback in a way that keeps the integrity of the recording. Recordings also have a (moderately) unique identifier associated with them.
* INPUT/BSV/REPLAY: Add checkpointing feature for replay recordings. If cores are not deterministic, or if they only have bounded determinism, we can obtain less drift if replay files also contain periodic checkpoint states. These are configured by the new retroarch setting replay_checkpoint_interval (measured in seconds). States are inserted into the replay file in between frames. This also fixes the settings display for the replay autoincrement max keep setting.
* INPUT/FRAMEADVANCE: Use non-rendering pause mode when frameadvance is triggered
* INPUT/HOTKEYS/OVERLAYS: Do not block input overlay hotkeys
* INPUT/HOTKEYS: Hotkey blocking correction. Turned out the previous hotkey blocking changes worked properly only with winraw driver and not the rest (at least with Windows), because input_keyboard_event() could be called at the wrong moment, and thus storing keyboard menu press there broke the separation of controller Guide menu button and keyboard menu key. Also allowed the blocking to work in both directions so that controller hotkeys won't get blocked if only keyboard has "enable_hotkey" bind.
* INPUT/LINUX/UDEV: Fix udev guns input when id_mouse is not id_joystick
* MENU: Rename 'Standalone Cores' to 'Contentless Cores'
* MENU: Music files should also obey builtin_mediaplayer_enable (#14967) Disabling the built in media player should be possible for music files
as well. Without this, sound files can not be opened from file browser with cores that support them.
* MENU: Relocated items to a more logical order
* MENU: Corrected some title capitalizations (when/before/after are not low case, but for/the/a are)
* MENU/AUDIO: Add dropdown menu for audio device
* MENU/HELP: Help for turbo modes (#14919). Help text added for each of the selectable turbo modes.
* MENU/INPUT: Add unified back action to all menu drivers. Usability boost for all menu drivers resulting in similar behavior as with Ozone currently, which is pressing back/cancel enough the selection jumps first to Main Menu and when pressed again jumps to the first item, so that when a core is running, Quick Menu is very quickly accessible from anywhere. And when core is not running, the first item would be Load Core.
* MENU/INPUT: Override bind save + menu manager overhaul
* MENU/INPUT: Allowed and fixed input bind saving to overrides
* MENU/INPUT: Overhauled override menu
* MENU/INPUT: Pressing Start on the top active file entry reloads current overrides as startup would
* MENU/SUBLABELS: All under "Configuration File" + moved "Reset to Defaults" to bottom
* MENU/SUBLABELS: Quick Menu > Controls > Port x Controls
* MENU/SUBLABELS: Port x Controls > Device Type
* MENU/RGUI: Fix disabled menu item color. The effect was not working properly, since transparency meant using the core output color as background.
* MENU/XMB: Horizontal icon animation fix
* MENU/XMB: Fixed playlist manager icons to take Explore Views into account properly
* MENU/XMB: Changed XMB Explore View title to match Ozone
* MENU/XMB: Added "Switch Icons" option
* MENU/XMB: Fix MENU_ACTION_CANCEL when search is active. Nasty issue discovered in XMB which broke search term cancelation.
* MENU/XMB: Layout corrections:
* MENU/XMB: More room for longer item labels and values
* MENU/XMB: "Core Downloader" has extra space for item and "installed" indicator
* MENU/XMB: Fixed "Menu Scale Factor" to not require restarting to get the actual end result
* MENU/XMB: Adjusted scale factor to behave better with both layouts
* MENU/XMB: Fixed savestate thumbnails and adjusted vertical fade factor in "Handheld" layout
* MENU/XMB: Changed thumbnail shadow to outline and tightened fullscreen thumbnail margins
* MENU/XMB: Adjusted global shadow opacity
* MENU/XMB: Remove "Framebuffer opacity" from XMB as it does not use it. Also, rename the corresponding menu title, since "framebuffer" is not that intuitive.
* MENU/OZONE: Fixed playlist manager icons to take Explore Views into account properly
* MENU/OZONE: Refresh thumbnail on close content hotkey
* MENU/OZONE: Ozone footer enhancements (#14926). Add Help button (Select) and Reset to Default (Start) to footer where applicable.
* MENU/OZONE: Ozone footer enhancements (#14934). Display Help footer only if there is actual info to be displayed, either actual help, or sublabel if it is not visible otherwise.
* MENU/OZONE: Ozone footer enhancement: Scan button (#14949). Display Scan button in footer when it is applicable.
* MENU/OZONE: Add Clear button to Ozone footer (#14947). Add indication of Clear button when it is applicable (currently: keybinds).
* MENU/MATERIALUI: Added missing Favorites+History icons in playlist manager
* MENU/SOUNDS: Scroll sound fixes. Correctly get list size in xmb.c for playing scrolling sound when switching categories, play the scrolling sound when pressing cancel in ozone, play the sound when scrolling with ZL and ZR, play the correct sound when scrolling with L- MIYOO: L3/R3 support for Dingux Gamepad controller device.
* MENU/WIDGETS: Show square sized widget on volume mute. Volume widget is currently fixed size always, and thus showing a lot of empty space when muting, therefore shorten the box to icon size only when muting.
* NETWORKING: Call ssl_socket_close for SSL sockets
* NETWORKING/CHEEVOS: net_http - Temporary fix for cheevos crash. Don't use new timeout/poll code for cheevos HTTP requests.
* NETWORKING/MENU: Network information cleanup:
* NETWORKING/MENU: Remove extra space from : delimiter
* NETWORKING/MENU: Trim useless/duplicate garbage from the end of ipv6 address. Windows shows %[adapter number], Linux shows %[adapter name], which already shows before the address
* NETWORKING/STDIN: Add LOAD_STATE_SLOT N command to stdin/network protocol
* OSD/STATISTICS: Add Run-Ahead data to on-screen statistics
* OSD/STATISTICS: Notification font + statistics adjustments
* OSD/STATISTICS: Finetuned statistics layout to be more compact and aligned
* OSD/STATISTICS: Group Run-Ahead and Frame Delay as "Latency"
* OSD/STATISTICS: Try to scale font as small as possible/readable if stats won't fit
* OSD/STATISTICS/FONT: Allow reseting notification font with RetroPad Y to "null", which uses the fallback pixel font
* OSD/STATISTICS/FONT: Show "Default" instead of empty with default font
* QB/CONFIGURE: Add new flags - HAVE_UPDATE_CORE_INFO, ASSETS_DIR, FILTERS_DIR
* RECORDING: Add recordings to video history playlist
* REWIND: Don't take rewind steps while menu pause active
* RUNLOOP: Currently when core is paused, video output will be stopped completely too, making it impossible to animate widgets while paused, therefore:
* RUNLOOP: Added a new runloop state for pause which renders last cached frame
* RUNLOOP: Allowed rewinding while paused so that it acts like backwards frameadvance. Also moved rewind step taking before menu iteration so that steps won't be lost while in menu when menu_pause is disabled
* RUNLOOP: State load and reset while paused will forget pause for x frames in order to show proper output
* RUNLOOP: Allowed reading pause hotkey while menu is active
* RUNLOOP: Allowed reading screenshot hotkey while menu is active
* RUNLOOP: Joined 2 fullscreen hotkey checks to one (Any ideas why they were separated for paused and non-paused states, since one works fine for both..?)
* RUNLOOP: Implement GET_HW_CONTEXT_NEGOTIATION_INTERFACE_SUPPORT. Fairly trivial. Just report the latest version.
* SAVESTATES: State slot hotkey adjustments -
* SAVESTATES: Allow selecting -1 Auto slot with hotkeys
* SAVESTATES: Allow wrap-around from -1 to 999 and backwards
* SAVESTATES: Show failure message when trying to load a state that does not exist instead of plain "Loading state"
* SAVESTATES: Shorten the duration of slot change notification
* SAVESTATES: Change the widget type to the same type as shader toggle for better back and forth action. Closes [Widgets] Save state slot switcher
* SHADERS: Append Preset feature
* SHADERS: Prepend Preset feature
* SHADERS: Shader Preset - Wildcard Replacement in Paths on Load. When a simple preset loads, text wildcards which are found in paths inside the presets will be replaced with values coming from the current RetroArch context. The replacement will be executed on both texture paths and reference paths.
* VIDEO: 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.
* VULKAN: Fix crash when using multiple physical devices and HW core (#14889)
* VULKAN: Detect if wrong PhysicalDevice is returned.
* VULKAN: Actually query physical device before creating core device.
* VULKAN: Define and implement v2 of context negotiation interface
* VULKAN: Add v2 of context negotiation interface.
* VULKAN: Add vkEnumerateInstanceVersion symbol.
* VULKAN: Implement v2 context negotiation
* VULKAN: Use compute shaders to upload RGB565
* VULKAN: Fix regression with RGB565 and OriginalHistory.
* VULKAN/WAYLAND: Don't clamp the number of requested images. Due to an unfortunate "feature", MESA always reports 4 as the Vulkan surface's minImageCount in Wayland.
However, values of 2 and 3 work perfectly well, even if they are out of spec, providing way better latencies when using the Vulkan backend on Wayland.
So this removes the artificial clamping that was being done to desired_swapchain_images, because it's not really necessary and was causing very noticeable input lag on Wayland+Vulkan.
* VULKAN/MENU/RGUI: Fix RGUI on Vulkan on platforms that don't have _pack16 VkFormats
* VULKAN/MACOS/OSX: avoid using _PACK16 pixel formats on platforms without them
* WAYLAND: On scaled desktops the wayland backend deciding to resize based on values multiplied by the scale factor twice. Resulting in continuous attempts to rebuild the swapchain when in fullscreen.
* WAYLAND: Wait for splash screen configuration. Before, configuration (resize) events for the initial wayland window could happen before or after set_video_mode which could result in a small or corrupted window. Now we make sure that the initial window has processed it's resize events before window size is set by set_video_mode.
* WAYLAND: Changes the initial window to show a RetroArch logo copied from the icon of the X11 backend.
* WAYLAND: Build pointer-constraints and relative-pointer protocols.
* WAYLAND/GL: GL is sometimes not rescaling property (Super + Left).
Sat Dec 17 14:46:45 UTC 2022 - Yunhe Guo <i@guoyunhe.me>
- Update to version 1.14.0
* AUDIO/COREAUDIO/APPLE: Allow coreaudio3 driver to work with audio devices that have 2 or more output channels
* CHEEVOS: Fix construction of Cheevos badge path
* CLI: Fixed not getting any output when running --version or --features without --verbose
* CLI: Fixed crash when running empty - parameter (it proceeded to content loading)
* CLI: Reformatted --features to require less rows and to be more consistent
* CLI: Added -V shorthand for --version
* CLI: Tab removal + whitespace nits
* CONFIG/MIDI: Prevent MIDI startup error with old configurations
* DATABASE/EXPLORE/VIEW: Bugfix - RGUI did not clear thumbnail on non-playlist items such as Save and Delete
menu_explore_get_entry_playlist_index() returns -1 on invalid entries, but the variable where it was stored was unsigned
* DATABASE/EXPLORE/VIEW: Bugfix - XMB+Ozone cleared thumbnail in Quick Menu when navigating away from Run
* FASTFORWARD: 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).
* FFMPEG CORE: Fix runtime error in FFmpeg core when build with FFmpeg n5.1.2 and OpenGL ES
* GFX/VIDEO FILTERS: (picoscale_256x_320x240) Added snn function to upscale Fuse (ZX Spectrum) core borderless output to 320x240. ZX Spectrum resolution of 256x192 was previously unsupported.
* HOTKEYS: Further reorder internal hotkey items for consistency and removed SEND_DEBUG_INFO, OVERLAY_NEXT and OSK from visible hotkey bind list. "Send Debug Info" stuff is removed as much as possible without breakage due to translation files.
* INPUT/AUTOCONFIG: Disable 'pause on controller disconnect' by default - was enabled by default on 1.13.0
* INPUT/MENU: Device Index menu refactor
* INPUT/OVERLAY: Fix analog drift blocking touch input (could occur on overlay_next if physical inputs shown on overlay)
* INPUT/OVERLAY: Fix overlay_next buttons lighting up in unison
* INPUT/OVERLAY: Skip meta keys in input_overlay_add_inputs (not supported by input_state_internal)
* LEAPFROG: Add Leapfrog (LFx000) Target
* LOCALIZATION: Updates
* LOCALIZATION/INPUT/IME/MENU/ONSCREEN KEYBOARD: Extended IME and Korean OSK
* MENU: Cleanup of help texts
* MENU: Allow toggling info off with the same button
* MENU: Allow menu wallpaper/background reset. Let's also remove the current wallpaper from the screen when pressing Start.
* MENU: Null driver shows with different color (Added for all menus the ability to show "disabled" items with a muted color)
* MENU/DRIVERS: Menu driver first, Audio Resampler removed because it is enough to exist under audio settings
* MENU/INPUT: Moved "Confirm Quit" to Input menu
* MENU/INPUT/HOTKEYS: Input hotkey menu completely overhauled to keep related entries together, and also adjusted some labels and sublabels
* MENU/OVERLAY: Fix overlays behind menu without core running. "Show Overlay Behind Menu" is currently broken with Ozone and XMB (with any other color theme than Plain) when running without a core.
* MENU/MATERIALUI: Fix home screen on first startup - no more stray entries
* MENU/OZONE: Allowed drawing sidebar and thumbnail bar background color also when core is running
* MENU/OZONE: Stopped using different padding and position for savestate thumbnails vs imageviewer
* MENU/OZONE: Removed gradient background effect when core is running, because some themes already have gradient background, which creates ugly rough steps
* MENU/OZONE: Fixed "Gray Light" theme from using the same background as "Gray Dark", which makes selection cursor near impossible to see
* MENU/OZONE: Some whitespace corrections
* MENU/UX: Extend OFF menu value colors
* MENU/UX: Menu icon improvements - Menu Visibility icons (Quick Menu + Settings)
* MENU/UX: Menu icon improvements - Playlist Manager icons
* MENU/UX: Menu icon improvements - Explore icon as database icon
* MENU/UX: Menu icon improvements - View and filter icons as cursor icon (folder icon in GLUI)
* MENU/UX: Menu icon improvements - View save + delete icons
* MENU/UX: Menu icon improvements - Moved Explore + Views below Standalone Cores
* MENU/UX/OZONE: Removed icons from menus where others items don't have icons, and added icons to menus where the rest have icons
* MENU/UX/OZONE: Changed the way "no icon" is handled from kludgy way of not drawing SUBSETTING icon
* MENU/UX/XMB: Changed playlist entry index positioning to bottom right when thumbnails are in vertical mode, because big lists will overlap with arrow and current "breadcrumb" icons when the position is next to current selection
* MENU/UX/XMB: Added a rather nasty hack to prevent showing wrong icons under Explore as "breadcrumb" icon
* MENU/UX/XMB: Optimized certain icon drawing loops (Main horizontal icons were looped even when not visible, and all previous "breadcrumb" icons were looped when only one certain was needed)
* MENU/UX/MATERIALUI: Fixed showing icons where there should not be any (Waitable Swapchains, Show Recording + Streaming)
* SDL GFX: Fix no menu on start/blank screen issue.
* SRAM: Don't init SRAM saving without content (gets rid of the redundant logging)
* FRONTEND: Fix default remaps folder for various cores: remap should be nested in config folder
* GFX/VIDEO FILTERS: Prevent video filter init if game is not running
* 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
* HOTKEYS: Cleanups and corrections - Allow unpausing with Start (makes resuming more convenient after controller disconnect if menu does not pause)
* 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.
* INPUT/AUTOCONFIG: Add option for pause on controller disconnect
* INPUT/AUTOCONFIG: Driver independent disconnection notification. Should show disconnect notification now properly on Windows with XInput and/or DirectInput pads
* INPUT/HID: Added usb hid controllers for the famous ZeroDelay encoder and also for "Kade: Kick Ass Dynamic Encoder" to be able to use some custom arcade sticks.
* INPUT/OVERLAY: Add eightway area types.
* INPUT/OVERLAY: Ignore hitboxes with zero area. I.e. Set 'reach_x' or 'reach_y' to zero to ensure no hitbox math is done. This simplifies designating animation-only descriptors (e.g. for eightway areas) or obsolete descriptors.
* INPUT/OVERLAY: Add 'reach' and 'exclusive' for hitboxes. Allows stretching hitboxes and handling their overlap.
* INPUT/OVERLAY: Fix overlay next_index for unnamed targets
* INPUT/MENU: Addition to analog stick menu navigation
* INPUT/MENU: Enable menu navigation also with right analog stick
* INPUT/MENU: Add option for swapping menu scrolling buttons
* QB: Don't fail if OSDependent/OGLCompiler libraries are not present
* SCANNER/PS1: Improved scanning of PS1 discs
* SCANNER/PS2: Added serial scanning of PS2 discs - should now scan DVDs and other discs which were previously missed
* THUMBNAIL: If you rename title, you cannot use the thumbnail image. because the thumbnail filename and the title must be the same.
If there is no thumbnail with title, find the thumbnail image with rom-name. This has nothing to do with IME.
* THREADED VIDEO/GLCORE: Fix regression 'Shader presets dont load, when video driver is set to glcore'
* VULKAN: Fix HDR inverse tonemapping. Only skip tonemapper if HDR10 is explicitly enabled by last shader pass. Otherwise, we are simply just inheriting the bit-depth of the swapchain.
* CONFIG/CLI: Allow use of --appendconfig with override cfgs instead of getting ignored
* CONFIG/LOGGING: No more console startup logging if logging to file
* CONFIG: Saves config on exit only once instead of (worst case scenario) 3 times
* DATABASE/EXPLORE/VIEW: Add View feature - Add saving of a filter set in the Explore menu into a so called "View" file which then gets listed alongside playlists. This also adds the ability to filter a category by range in the Explore menu and not just filter on exact matches.
* FILEBROWSER: Fix regression - certain extensions keep disappearing
* IOS: New modern iOS version (targeting iOS 13 and up), leverages Swift
* IOS: Fixes to iOS toolbar
* IOS16: Add iOS 16 lock screen widget
* IOS13+: Added emulator keyboard
* IOS13+: Add JIT support for non-jailbroken devices
* IOS13+: Added support for touch mouse handler
* IOS13+: Changed click-and-drag behavior to double tap hold and drag
* INPUT/HAPTIC/OVERLAYS/ANDROID: Improve haptic feedback for input overlays
* LINUX/MALI FBDEV: Add conditional support for OpenGL ES 3.x
* LOCALIZATION: Updates
* LOCALIZATION/ENGLISH: Add British English language option
* MENU/XMB: Remember selection per main tabs. Addresses the following : collection playlists can contain hundreds or thousands of items. When scrolling through one, pressing left or right by accident can be common. This resets the playlist to the top
* MIST/STEAM/STEAMDECK: Don't expose Black Frame Insertion (BFI) if we are running on a Steam Deck
* NETWORKING/WINDOWS: Disable poll support for MSVC 2010 and earlier. WSAPoll is not supported on Windows XP and earlier.
* NETWORKING/WIIU: Fix socket_connect_with_timeout for WIIU
* NETWORKING/WIIU: Fixes RetroAchievements login
* NETWORKING/WIIU: Fixes other online updater functionality
* SAVESTATES/NOTIFICATIONS: Add delay to savestate notifications, so that GPU savestate screenshots stay untouched
* SAVESTATES/SCREENSHOTS: Avoid 'video_gpu_screenshot' with savestates. Allow GPU screenshots with savestates only when there is no other way of getting a screenshot.
* SCREENSHOTS/VULKAN: Unload screenshot widget texture early. Fixes Vulkan crash when closing content while a screenshot widget is still on-screen
* SCREENSHOTS/VULKAN: Fix screenshot widget crash when ticker animating
* WAYLAND: Set correct app ID
* WIIU: Add some missing default directories
* WIIU: Get mkdir working on WiiU (directory creation)
* AI: Add AI Service functionality (enabled for Windows/Mac/Linux/Android/iOS).
* APPLE (MAC/IOS/TVOS): Fix autodetect for mFI controllers: properly call autodetect add on the connect notification, and add call to disconnect on GameController disconnect notification.
* ANDROID: Implemented multi-touch touchscreen support
* ANDROID: Now can be built with Gradle/Android Studio
* AUDIO/WINDOWS: You can now select between audio devices for XAudio2/DirectSound/XAudio2 by pressing left/right on the Audio Device option.
* AUDIO/WINDOWS: Setting the device by either index number or name string should work.
* BLISS-BOX: Add 4 new pad types from firmware 3.0
* BPS/UPS: Re-allocation target_data variable for target patch size (can now apply bigger patches without extra-bytes on memory)
* CDROM: Added real CD-ROM functionality for Windows and Linux.
* CDROM: Added disc dumping.
* COMMON: Add separate frontend logging
* COMMON: Ability to set FPS update interval (used in the window titlebar/FPS widget)
* COMMON: Add 'Reset Frame Time Counter' functionality, enable it by default for resizing the window, loading/saving shader presets, fastforwarding, etc.
* GL/MALI400: Fix menu issues on Mali 400 series GPUs, should also fix 'RetroArch flickers black on ARM Mali GPUs (Android/ARM Linux)
* GL/GLCORE: Use highest supported OpenGL Core version on Windows and X11
* GL1: Ignore alpha in core video, fixes XRGB8888 rendering in some cores
* GLCORE: Don't hardcode shader cross compilation target version but poll it. glcore would always only use the minimum target shader version, i.e. GLSL ES 3.00 for OpenGL ES 3.0+ or GLSL 1.50 for OpenGL 3.2+
* D3D10/11/12/SLANG: Added "FrameDirection" slang semantic. Works fine with braid-rewind shader, not entirely perfect with D3D12 though
* D3D10/11/12: Add option to select which GPU to render with
* D3D10/11: Fix maintaining aspect ratio when resizing window
* MENU: Ability to hide every settings submenu (User Interface -> Views -> Settings)
* MENU: Ability to hide nearly every quick menu entry (User Interface -> Views -> Quick Menu)
* MENU: Fix longstanding menu display issues on Mali400 GPUs (on ARM hardware, SBCs and mobile phones/tablets)
* MENU: Fix Record -> Streaming Quality, and Record -> Recording Threads settings
* MENU: Fix history playlist navigation after running content
* NENU: Menu entry performance optimisations
* MENU: Add option to show 'remove playlist entry' only on history/favourites
* MENU: Overhaul content 'Information' menu display
* MENU: Add new 'Playlist Management' submenu. Allows default core associations to be set (via dropdown list), and all existing associations to be reset
* MENU: Add 'Set Core Association' option to Quick Menu
* MENU: Add option to remain in menu after saving/loading states
* MENU: Pressing the Start button on 'Load Core' will unload the core.
* MENU: After a core is running, Load Core will be hidden from view until you select 'Close Content' from the Quick Menu.
* MENU/WIDGETS: All widgets are now properly cleaned up, fixing the frozen widgets bug when loading / closing content
* MENU/WIDGETS: Fix crash with tasks
* MENU/WIDGETS: Widgets are now drawn above the overlay with OpenGL and Vulkan
* MENU/WIDGETS: Fine tune progress bar colors
* MENU/WIDGETS: Have the progression widget always resize
* MENU/THUMBNAILS: Ensure that displayed thumbnails are always refreshed correctly after selecting 'Download Thumbnails' from Quick Menu
* MENU/THUMBNAILS: Make PNG image loading/processing non-blocking on non-threaded systems
* MENU/OZONE: Add it for PS3
* MENU/OZONE: Fix regression in 1.7.7 - OSX/macOS - was unable to start it
* MENU/OZONE: Fix sublabel spacing
* MENU/OZONE: Add toggle to enable/disable playlist name truncation in Ozone
* MENU/OZONE: (Ozone) Fix display of (semi-)transparent thumbnails
* MENU/XMB: Add menu animation settings
* MENU/XMB: Add optional thumbnail scaling
* MENU/XMB: Fix display of long sublabels. Text that would exceed the display area now scrolls line-by-line
* MIDI: correct pitch bend in ALSA driver - MIDI standard pitch bend center position is 0x2000 but ALSA's is 0
* MIDI: Fix SysEx handling. We need to clear the event status after each message. Otherwise, after a SysEx message the first byte of the next event will incorrectly inherit its delta_time. This causes a delay of several seconds in nearly every MT-32 games which uses a lot of long SysEx.
* NETBSD: Fix a segfault when starting RetroArch with an empty configuration file and LANG unset in the environment
* OSD: OSD is now drawn above the overlay with Vulkan
* OSX: Fix regression with Cocoa GL - shader / preset loading was getting stuck in an infinite loop
* OSX: Add improved menu resizing for window resizing
* PLAYLISTS: Add history/favourites to 'Playlist Management' menu
* RECORD: Fix Twitch streaming
* REMOTE RETROPAD: Fix for Remote RetroPad input - fixes processing of Remote RetroPad input. None of the remote inputs are being executed both in menu and in game. This is due to the way current key binds are being detected which block processing of any remote input. It's been tested using Remote RetroPad core on Android including digital dpad and analog control input.
* RUNAHEAD/MSVC2010: Build in runahead support for MSVC2010 and up
* RUNAHEAD/VITA: Build in runahead support for Vita version
* SAVESTATES: Allow auto save states also in cores that support no content as long as some content is loaded
* SCALER: Fix SSE2 path for ARGB/BGRA -> BGR24 - should fix screenshots being taken for XRGB888 (viewport)
* SCANNER: Skip all databases with incompatible file extensions, whether content is inside an archive or not
* SCANNER: Fix hang on empty files inside archives
* SHADERS: Add proper shader compatibility checks
* SHADERS: Enable Cg shaders for D3D9
* SHADERS: Remove 'video_shader' setting, replace it with global presets that make more sense
* SHADERS: #reference directive for shaders. Presets can point to other existing presets if they are unchanged
* SHADERS: Will attempt to cache the shader/preset into memory before loading to avoid costly getline/gets/getc operations
* SHADERS: New --set-shader commandline option
* SHADERS/MENU: Prevent undefined behaviour when failing to load shaders
* SHADERS/MENU: Pressing the Start button on 'Load Shader Preset' will reset all shader passes and apply changes, effectively disabling the shaders
* SHADERS/MENU: New menu options for removing shader presets (global/core/parent/etc).
* SWITCH :Add Audren audio driver.
* SWITCH: Fix splitting and joining of joycon controllers. Before this fix, splitting and joining of joycons only ever worked sporadically