laitimes

Nostalgia - Console Universal Emulator - Retroarch - The latest version 1.15.0 is released

author:Winged

Improve a little bit every day

Come on (ง •̀_•́)ง

Hello everyone!

I hope my sharing can accompany you to improve a little bit every day!

Nostalgia - Console Universal Emulator - Retroarch - The latest version 1.15.0 is released

Retroarch

Console Universal Emulator - Retroarch - Latest version 1.15.0 released!

You can go and update your game console universal emulator!

The following content is a machine translation, and friends with good English can go to the homepage to read.

The updates are as follows:

RetroArch is now available for Mac on Steam!

Nostalgia - Console Universal Emulator - Retroarch - The latest version 1.15.0 is released

Thanks in large part to warmenhoven's hard work, RetroArch for Mac is now available on Steam! Get it here.

Minimum system requirements:

  • Your Mac should be running macOS 10.13 (High Sierra) or later. Technically, it is feasible to try to run it on versions as low as macOS 10.11 (El Capitan), but in order for all its features to work reliably, we recommend using version 10.13 or later.
  • At a minimum, your GPU should support the Apple Metal 2 graphics API. This is because Vulkan is the default video driver, which in turn relies on MoltenVK. MoltenVK is a Vulkan-to-Metal abstraction layer that converts Vulkan API calls into Metal. Therefore, a GPU that supports the Metal graphics API is critical to the best experience out of the box. Thankfully, most Macs produced over the past 10 years should meet this requirement. If you want to know if your Mac meets the minimum Metal requirements, refer to this page here. TLDR – You should be able to use Macs introduced in mid-2012 or later.

We are very proud that RetroArch is now available on Steam on all three major operating system platforms: Windows, Mac, and Linux. Not only that, but all but one of them (58 at the time of writing) are fully compatible with Macs.

We've gone the extra mile to ensure that both older and new generation Macs are supported. Therefore, we support two CPU architectures: Intel x64-based systems and newer Apple Silicon/ARM architectures. So, on newer Apple Silicon Macs, you'll get the native version of RetroArch and any core DLC. In this case, there is no Rosetta2 translation layer overhead.

General improvements for Mac versions

Compared to the last stable version, the Mac version is in much better condition now. Here's what has been done since 1.14.0:

  • We now support Apple's native Gamepad protocol, MFi. You can connect and attach a DualShock4 or DualSense controller and it will work seamlessly.
  • RetroArch Mac "10.13 and later" now supports OpenGL and Metal. If you want to use some cores that only provide OpenGL renderers but not Metal/Vulkan renderers, you no longer need a separate version.
  • There is now a Vulkan video driver. It also supports Libretro kernels that use Vulkan as the hardware context, such as SwanStation, Beetle PSX, Mupen64Plus Next (ParaLLE1 RDP), and more!
  • The Vulkan driver supports HDR, and you can set the color to your liking in the video HDR menu.
  • We now also offer "glcore" video drivers. This is for the OpenGL 3.2 core context. This should be supported in macOS versions starting at 10.7. Previously, we only provided the "gl2" video driver for OpenGL 2.x. The main advantage of the "glcore" video driver over "gl2" is that the glcore video driver supports slang shaders, while "gl2" does not, and sticks with the older, deprecated GLSL shader specification. Going forward, we recommend that people turn to slang shaders. Unlike the GLSL shader specification, it is compatible across video drivers.
  • Various critical bugs/crashes that previously affected Mac versions have been fixed.

We have decided to default the Metal Universal build to a Vulkan video driver. It currently runs faster than the native Metal video driver, has HDR support, and allows multiple Vulkan-accelerated kernels to run on macOS. This means that your macOS should be at least El Capitan (macOS 10.11) or later, preferably High Sierra (macOS 10.13 or later). Of course, if you don't meet the minimum operating system requirements, there will always be a non-universal version, which should only require macOS/OSX 10.7 as the minimum operating system.

Other significant improvements for Apple users

This has changed many quality of life across the board, benefiting all Apple devices—tvOS, iOS, macOS, you name it.

  • Mupen64Plus Next is again available for iOS, tvOS and macOS. GLideN64 (the OpenGL 3.x-based renderer) should run on Apple platforms. In addition to that, thanks to the new Vulkan support, ParaLLEl RDP/RSP should now run on Mac! We've tested Super Mario 64 running on Macbook Pro 2019 (Intel) without any issues running it at full speed at 4x internal resolution. Same as Macbook Pro 2020 (M1). And on the Macbook Pro M2 2023, the 8x should be no problem at all.
  • SwanStation is available for macOS. We can confirm that the Vulkan renderer has been tested on macOS and works fine.
  • Flycast is available for macOS. We can confirm that the Vulkan renderer has been tested on macOS and works fine.
  • PPSSPP is available for iOS, tvOS, and macOS. We can confirm that the Vulkan renderer has been tested on macOS and works fine.

Shader stacking

There are two important additions to the shader system that are transformative.

You can now:

  • Additional shader presets
  • Preshader presets

Basically, you can now stack shader presets on top of each other. In other words, you can mix various shader presets and then save them as new presets. This provides users with a level of customization that was simply not possible before. For example, you can combine CRT shaders with VHS shaders to create a variety of interesting effects.

How well these shader combinations work on your system depends entirely on the capabilities of your GPU.

There are other interesting additional features that shader developers might particularly like to know. Learn more here.

A new alternative to running ahead of time – preemptive frames

Runahead is a method first introduced in RetroArch before being adopted by other emulators. It has the potential to greatly reduce latency, even lower than the native latency that consoles and CRTs can achieve. However, like any system, it has its own drawbacks and shortcomings. The biggest one is the demanding performance requirements and (so far) no hardware context support (so currently relying on OpenGL/Direct3D11/Vulkan kernels is not an option).

RetroArch 1.15.0 now introduces a new alternative system to run ahead of time - preemptive frameworks. It works by rerunning the core logic to "rewrite history" before the current frame. The frame is only rerun when the controller state changes.

A quick example of the performance difference between preemptive and preemptive frames (tested on the Core i9 13900K):

nucleus FPS (with Runahead) FPS (with preemptive frames)
Snes9x 2010 Donkey Kong Kingdom 2 ~1963fps – 3 frames ~2400fps – 3 frames

Your mileage may vary depending on your own system. Of course, the advance is still there, and you can decide for yourself which system is best for your random game/core.

Other changes

Unfortunately, we don't have time to describe other major changes in detail. So, all in all, read the changelog below for full details of everything that has changed/added/fixed.

Changelog

1.15.0

  • AI service: Fix NVDA switching to Powershell while speaking
  • ANDROID: IN AN ANDROID BUILD, ADD input_android_physical_keyboard CONFIGURATION OPTIONS AND THEIR CORRESPONDING MENU ITEMS TO FORCE THE DEVICE TO ACT AS A PHYSICAL KEYBOARD. When running on Android, RetroArch treats most devices that emit dpad events as gamepads, even though they also emit other keyboard events; This is usually the right thing to do, but the side effect is that some actual keyboards (e.g. Logitech K480) are not allowed to do so in RetroArch. This configuration option allows the user to manually select a specific input device as a physical keyboard instead of a gamepad, which is handy when emulating a computer instead of a console.
  • APPLE: Add App Categories where they should
  • APPLE/MFI: Prevent crashes when controller player index is not set (-1)
  • Auto Frame Delay: Helps delays be reduced more easily when they should, and helps delays stay in place when pauses and menus are triggered with or without pauses, fast forwards, slow motion, and geometry changes
  • Auto frame delay: Recalibrate the delay of video reinitialization (full-screen switching, etc.)
  • Auto frame delay: When auto is enabled, only appears in menu items (x is valid) and not in drop-down list items
  • CHEEVOS: Allows RetroAchievement notifications to be retargeted
  • CHEEVOS/MENU: ADDS AN ACHIEVEMENT VISIBILITY SUBMENU OPTION
  • CHEEVOS/MENU: THE LAUNCH SUMMARY IS SEPARATED FROM VERBOSE MODE, ADDING THE OPTION TO HIDE ZERO-CORE CHEEVOS GAMES
  • CHEEVOS/MENU: "UNLOCK/MASTER" IS DIVIDED INTO TWO OPTIONS
  • CHEEVOS/MENU: "Account/Login Messages" is separated from "Verbose", enclosing all login success/error messages
  • Configuration/Input: Offload restores the current global configuration
  • CONFIG/INPUT/OVERRIDES: Deleting a file does not uninstall the current override
  • CONFIG/INPUT/OVERRIDES: SAVING AN EMPTY OVERRIDE WILL DELETE THE FILE IF IT EXISTS, AND WILL NOT SAVE IT IF IT DOES NOT EXIST
  • CONFIG/INPUT/OVERRIDES: PREVENTS THE USE OF RUNLOOP_FLAG_OVERRIDES_ACTIVE WITH APPENDCONFIG
  • Core option: Core option setting type check. Added checks to get and set core option types, otherwise a crash occurs when closing content after browsing to the core option category. Also fixed the Lone Wolf "Lock Installed Core" not showing the switch icon.
  • CLI: Updates the selected save slot on startup using the cli –entryslot
  • CLI: Decouple configuration CLI attach and configuration override
  • CLI/MENU/XMB: STOPS DISPLAYING FALSE PREVIOUS ICON WHEN THE CLI STARTS
  • D3D9: Fixed display driver trimming implementation - 0 width/height is now acceptable
  • D3D10: Fixed display driver trimming implementation - 0 width/height is now acceptable
  • D3D11: Fixed display driver trimming implementation - 0 width/height is now acceptable
  • D3D11: Fixed build when HAVE_DXGI_HDR is not defined
  • D3D11: Moving wait swap chains always wait to occur even when resizing the swap chain
  • D3D12: Fixed display driver trimming implementation - 0 width/height is now acceptable
  • D3D12: Fixed window scaling issue caused by swap chain resize not using the same flag as swap chain creation (waitable swap chain).
  • D3D12: Fixed swap chain clipping issue after manually resizing window to a smaller size (Vision + Crash)
  • D3D12: Fixed a final crash of video reinitialization when releasing swap chain
  • D3D12: The moving wait swap chain always waits to occur even when the swap chain is resized
  • EMSCRIPTEN: Adds HAVE_PATCH support for Emscripten
  • EMSCRIPTEN: Adds BSV/Replay support for Emscripten
  • EMSCRIPTEN: Adds commands and stdin_cmd functionality to emscripten RA. Update libretro.js to show how to send commands via emscripten stdin.
  • FRAME DELAY/MENU: Displays frame delay without VSync
  • General: Start lifting the suspension limit. Use the retropad start button to limit functionality to unpause RA to its settings; Pause when controller is disconnected.
  • General: Save state thumbnail aspect ratio fallback. Since there is at least one specific core that announces an aspect ratio of 0, we have to add the same fallback in the saved state thumbnail, which happens elsewhere in normal video driver usage.
  • General: Adds support for system subdirectories for each core/database. Added a simple and elegant automatic feature to send different system catalogs to the core, if present, to keep the system catalog more robust. First use the core/library name as in config and save, then the playlist name as in thumbnails, defaulting of course to the current global system catalog.
  • General: If the subdirectory has subdirectories, system subdirectory subdirectory substitution is ignored.
  • General: Always restore cached video drivers on exit
  • IOS: Includes "Update Core Information File"
  • IOS: Fix #14778 – Add logs to log files in addition to sending them to asl_client.
  • IOS/VULKAN/MOLTENVK: Vulkan video driver on iOS
  • Delay/Preemptive Frames: Adds preemptive frames to the delay settings. RunAhead alternative, rerun the core logic to "rewrite the history" before the current frame. Frames only rerun when the controller state changes, so the overall speed is faster.
  • Delayed/preemptive frames: Call retro_run before retro_serialize (#14893). Fixed the preemptive framework not starting with a few cores
  • Localization: Update
  • Localization: Enables localization of video rotation, orientation, and aspect ratio option values.
  • Localization: Mixer stream localization has also been added
  • Localization/Menu/Help: Context-sensitive help text for audio and video drivers. Language corrections
  • Localization/Menu/Language: The language submenu now shows the progress of translated strings for each language.
  • Localization: Help text can now be localized through Crowdin.
  • LIBRETRO: Enables RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME for libretro-video-processor
  • LIBRETRO/HW: Add GET_HW_CONTEXT_NEGOTIATION_INTERFACE_SUPPORT. Fixed an issue in the v1 interface where it was not possible to query what the frontend would do when faced with a newer version of the interface. This env-call provides stronger assurance of how things work.
  • Input: If the modifier maps only to RetroPad, allows keyboard hotkeys to work without hotkey modifiers
  • Input: If the hotkey modifier is set to keyboard but not pressed, keyboard hotkeys are allowed to type
  • Input: If the analog device type is None, allow input from the keyboard RetroPad key
  • Input/Bluetooth: Fixed a crash issue on BT HID devices. (#14922) pad_connection_destroy() to release the slot without having to release it again.
  • INPUT/BSV/REPLAY: BSV RECORDING DOES NOT START WHEN IT STARTS
  • INPUT/BSV/REPLAY: Do not duplicate entries in BSV records
  • INPUT/BSV/REPLAY: Do not automatically load the state if a BSV file is being played or recorded
  • INPUT/BSV/REPLAY: MOVES THE BSV INITIALIZATION BEFORE AUTOMATICALLY LOADING THE CODE
  • INPUT/BSV/REPLAY: If there is a bsv movie state, the code is not triggered to be loaded automatically
  • INPUT/BSV/REPLAY: ALLOWS -E AND -R TO START BSV FILE LOGGING IN A CERTAIN STATE
  • INPUT/BSV/REPLAY: ADDS KEYBOARD RECORDING SUPPORT FOR BSV
  • INPUT/BSV/REPLAY: FIXED DOSbox to play bsv from the start state
  • INPUT/BSV/REPLAY: ASSOCIATES STATE WITH REPLAY. You can now save and load state in a way that preserves recording integrity during replay, recording and playback. Recordings also have a (moderately) unique identifier associated with them.
  • INPUT/BSV/REPLAY: ADDS CHECKPOINTING TO PLAYBACK RECORDS. If the cores are not deterministic, or if they only have limited determinism, we can get less drift if the playback file also contains periodic checkpoint states. These are configured by the new retroarch settings replay_checkpoint_interval in seconds. The state is inserted into the replay file between frames. This also fixes the setting display for the Replay autoincrement max hold setting.
  • INPUT/FRAMEADVANCE: USES NON-RENDER PAUSE MODE WHEN TRIGGERING FRAMEADVANCE
  • Input/Hotkey/Override: Do not prevent input from overriding hotkeys
  • Input/Hotkeys: Hotkey blocking correction. It turns out that the previous hotkey blocking change only works with winraw drivers and not with other drivers (at least for Windows), because input_keyboard_event() can be called at the wrong moment, so storing keyboard menu presses breaks the separation of controller guide menus and keyboard menu keys. It also allows blocking from working in both directions so that controller hotkeys are not blocked if only the keyboard has "enable_hotkey" bound.
  • INPUT/LINUX/UDEV: FIX UDEV GUN INPUT WHEN id_mouse IS NOT id_joystick
  • Menu: Rename "Standalone Core" to "No Content Core"
  • Menu: Music files should also obey builtin_mediaplayer_enable (#14967) Music files should also be able to disable the built-in media player. Without this, sound files cannot be opened from a file browser in the kernel that supports them.
  • Menu: Reposition items in a more logical order
  • MENU: Corrected some headcase (when/before/after is not lowercase, but for/the/a is)
  • MENU/AUDIO: Add a drop-down menu for the audio device
  • Menu/Help: Turbo Mode Help (#14919). Added help text for each optional turbo mode.
  • MENU/INPUT: Adds a uniform return operation for all menu drivers. The increased availability of all menu drivers results in similar behavior to the current Ozone, which presses return/cancel enough to jump to the main menu first and jump to the first item when pressed again, so that when the core runs, the quick menu is quickly accessible from anywhere. When the core is not running, the first item will be to load the core.
  • Menu/Input: Overwrite binding save + menu manager overhaul
  • Menu/Input: Allows and fixed input bindings to be saved to the overlay
  • Menu/Input: Overhaul overlay menu
  • MENU/INPUT: Press Start on the top active file entry to reload the current overlay, just like Start
  • Menu/Subtabs: All under "Profile" + move "Reset to default" to the bottom
  • Menu/Subtab: Shortcut menu > Control > Port x Control
  • Menu/subtab: Port x Controls > Device Type
  • MENU/RGUI: Fixed disabled menu item color. The effect doesn't work properly because transparency means using the core output color as the background.
  • MENU/XMB: Fixed playlist manager icon to properly account for exploration view
  • MENU/XMB: Change the XMB Explore View title to match Ozone
  • MENU/XMB: Added a "toggle icon" option
  • MENU/XMB: Fix MENU_ACTION_CANCEL when search is active. A serious issue found in XMB broke the cancellation of search terms.
  • MENU/XMB: Layout correction:
  • MENU/XMB: Leaves more room for longer item labels and values
  • MENU/XMB: "Core Downloader" provides additional space for projects and the "Installed" indicator
  • MENU/XMB: Fixed the "menu scale factor" to get the actual final result without rebooting
  • MENU/XMB: Adjust the scale factor to perform better in both layouts
  • MENU/XMB: Fixed saving status thumbnails and adjusting vertical fade factor in Handheld layout
  • MENU/XMB: Change the thumbnail shadow to an outline and tighten the full-screen thumbnail margins
  • MENU/XMB: Adjusts global shadow opacity
  • MENU/XMB: Removes "Framebuffer opacity" from XMB because it does not use it. Also, rename the corresponding menu title, as "framebuffer" is not so intuitive.
  • MENU/OZONE: Fixed playlist manager icon to properly account for exploration view
  • MENU/OZONE: Refresh thumbnails when content hotkeys are turned off
  • MENU/OZONE: Ozone footer enhancement (#14926). Add a Help button (select) and reset to default (Start) in the applicable footer.
  • MENU/OZONE: Ozone footer enhancement (#14934). The help footer, actual help, or subtab is displayed only when there is actual information to display, otherwise it is not visible.
  • MENU/OZONE: Ozone footer enhancement: Scan button (#14949). Show a scan button in the footer when applicable.
  • Menu/Ozone: Added a clear button to the ozone footer (#14947). Add an indication of the clear button when applicable (current: key binding).
  • MENU/MATERIALUI: Added missing favorites + history icon in playlist manager
  • MENU/MATERIALUI: Added "toggle icon" option
  • Menu/Cheat: Added missing icon to cheat (after/before deletion + copy)
  • MENU/CHEATS: Fixed tag big writing claws (new ones added after/before)
  • Menu/Sound: Add scrolling sounds for RGUI, XMB, MaterialUI, and Ozone.
  • Menu/Sounds: Better scrolling sound implementation, new "notification back" sound
  • Menu/Sound: Scrolling sound fix. Correctly get the list size in xmb.c for scrolling sound when switching categories, scrolling sound when canceling press in ozone, sound effect when ZL and ZR scrolling, correct sound effect when L- MIYOO scrolling: L3/R3 supports Dingux gamepad controller devices.
  • Menu/Widget: Displays square-sized widgets when the volume is muted. The volume widget is currently always a fixed size, so a lot of white space is displayed when muted, so the box is shortened to the icon size only when muted.
  • Network: Call the ssl_socket_close for SSL sockets
  • Network/CHEEVOS: net_http - Temporary fix for cheevos crashes. Do not use the new timeout/polling code for cheevos HTTP requests.
  • NETWORKING/MENU: NETWORK INFORMATION CLEANUP:
  • Network/Menu: Remove extra space from the : separator
  • Network/Menu: Prune useless/duplicate garbage from the end of the IPv6 address. Windows displays %[adapter number], Linux displays %[adapter name], and the address is already displayed
  • Network/STDIN: Adds the LOAD_STATE_SLOT N command to the standard input/network protocol
  • OSD/STATISTICS: Add run-ahead data to screen statistics
  • OSX/MACOS: Supported by the Steam platform
  • OSX/MACOS: Set LSApplicationCategoryType to the game
  • OSX/MACOS: OpenGL video drivers included in Metal macOS versions (10.13 and later).
  • OSX/MACOS: Fix some Mac window mode settings –
  • OSX/MACOS: Use the "Remember window position and size" setting (fix #14806)
  • OSX/MACOS: Implements window opacity
  • OSX/MACOS: Enable the Show Window Decoration toggle
  • OSX/MACOS: Hide the Disable Compositing option (OSX does not support disabling compositing)
  • OSX/MACOS: Make sure to use file system path names instead of URL names
  • OSX/MACOS/IOHIDMANAGER: VARIOUS MEMORY ACCESS FIXES TO PREVENT CRASHES (#14459) (#15000). Prevents double release and null dereferences when the controller reconnects quickly. Handle errors when controller device queries return null instead of crashing.
  • OSX/MACOS/METAL BUILD: FIXED AN ISSUE WHERE INPUT EVENTS (KEYBOARD/MOUSE) WERE SOMETIMES LOST WHEN SWITCHING BETWEEN FULL SCREEN AND WINDOWED MODE. Fixed a number of long-standing issues
  • OSX/MACOS/OPENGL: Fixed full-screen OpenGL driver in Metal macOS builds
  • OSX/MACOS/VULKAN/MOLTENVK: Default to Vulkan driver when available (for 10.13 Metal Universal builds)
  • OSX/MACOS/VULKAN/MOLTENVK: Vulkan on Metal has been updated for OSX via MoltenVK
  • OSX/MACOS/VULKAN/MOLTENVK/HDR: Fix non-HDR colors
  • OSX/MACOS/SLANG: will execute the changes to apply shaders, and then the command to apply shaders will be immediately queued, run asynchronously after the current event handler, and then perform exactly the same operation. Fixed Issue #14789 – Opening shaders on Metal build 1.14.0 stable for Mac OS would slow down the emulation considerably, resulting in a busy loop.
  • PS2: Avoid loading extra drivers when you don't need them. Fixed a bug where the variable extra_drivers was not used to load drivers required for a specific IRX. This adds compatibility with some specific PS2 models that sometimes fail when loading cores.
  • PS3/PSL1GHT: Added improvements to RSX drivers (#14965)
  • PS3/PSL1GHT: Added modern_alpha_blend and modern_opaque rsx shaders
  • PS3/PSL1GHT: Adds performance improvements to rsx drivers
  • PS3/PSL1GHT: Added RSX video driver
  • PS3/PSL1GHT/MENU/XMB: XMB MENU SCALING FOR PSL1ght
  • PS3/PSL1GHT: Updated Makefile to use the latest shaders and more UI menu options
  • PS3/PSL1GHT: Default folder normalization
  • PS3/PSL1GHT: Fix video rotation
  • PS3/PSL1GHT: Fixed HTTP downloads
  • QB/CONFIGURE: Add new flags – HAVE_UPDATE_CORE_INFO, ASSETS_DIR, FILTERS_DIR
  • Audio Recording: Add the recording to the video history playlist
  • REWIND: Do not take rewind steps when menu pause is active
  • RUNLOOP: currently, when the core is paused, the video output will also stop completely, so it is not possible to animate the widget while paused, so:
  • RUNLOOP: Added a new run loop state for pause, which renders the last cached frame
  • RUNLOOP: Allows rewinding on pause so that it acts as if it were advancing backward frames. Rewind steps taken before menu iterations have also been moved so that steps are not lost in the menu when menu_pause is disabled
  • RUNLOOP: State loading and resetting when paused will forget to pause x frames to display the correct output
  • RUNLOOP: Allows the pause hotkey to be read while the menu is active
  • RUNLOOP: Allows screenshot hotkeys to be read when the menu is active
  • RUNLOOP: Merge 2 fullscreen hotkey checks into one (know why they are separate in the paused and non-paused states, since one works for both...?) )
  • RUNLOOP: Implement GET_HW_CONTEXT_NEGOTIATION_INTERFACE_SUPPORT. Quite trivial. Only the latest version is reported.
  • SAVESTATES: Status Slot Hotkey Adjustment -
  • Save Status: Allows -1 Auto Slot to be selected using the hotkey
  • SAVESTATES: ALLOWS FROM -1 TO 999 AND BACKWARD WRAPPING
  • SAVESTATES: A FAILURE MESSAGE WHEN TRYING TO LOAD A STATE THAT DOES NOT EXIST INSTEAD OF THE NORMAL "LOAD STATE"
  • SAVESTATES: Shortens the duration of slot change notifications
  • Save state: Change the widget type to the same type as the shader toggle for better back and forth. Close the [Widgets] save state slot switcher
  • SHADERS: Additional preset features
  • SHADERS: Preset function
  • Shaders: Shader presets - Wildcard substitutions in the load path. When a simple preset loads, the text wildcard found in the path within the preset is replaced with a value from the current RetroArch context. Substitution is performed on the texture path and reference path.
  • SHADERS/SLANG/SPIRVCROSS: Updated to the latest SPIRV-Cross, fixed Metal shader compilation issues
  • Static Link/Salamander: Fix Salamander configuration saved on a fork of a static platform
  • TVOS/VULKAN/MOLTENVK: Vulkan on tvOS
  • Video: Allows manual video swap interval enforcement. The addition of automatic swapping intervals effectively prevents manual enforcement, which is beneficial when rates are not reported correctly. Therefore, intervals are used in calculations only when automatic intervals are used.
  • VULKAN: Fix crash when using multiple physical devices and HW cores (#14889)
  • VULKAN: Detects if an incorrect PhysicalDevice is returned.
  • VULKAN: Actually query the physical device before creating the core device.
  • VULKAN: Defines and implements the context negotiation interface v2
  • VULKAN: Adds context negotiation interface v2.
  • VULKAN: Add the vkEnumerateInstanceVersion symbol.
  • VULKAN: Implement v2 context negotiation
  • VULKAN: Upload RGB565 using the compute shader
  • VULKAN: Fix the regression using RGB565 and OriginalHistory.
  • VULKAN/WAYLAND: DON'T LIMIT THE NUMBER OF IMAGES REQUESTED. Due to an unfortunate "feature", MESA always reports 4 as minImageCount on Vulkan's surface in Wayland. However, the values 2 and 3 work very well, even if they go out of spec, providing better latency when using the Vulkan backend on Wayland. Therefore, this eliminates the artificial clamping on the desired_swapchain_images, which is not really necessary and creates a very noticeable input delay on Wayland+Vulkan.
  • VULKAN/MENU/RGUI: FIX THE RGUI ON Vulkan on platforms without _pack16 VkFormats
  • VULKAN/MACOS/OSX: Avoid using the _PACK16 PIXEL FORMAT ON PLATFORMS WITHOUT THEM
  • WAYLAND: ON THE ZOOM DESKTOP, THE WAYLAND BACKEND DECIDES TO RESIZE BASED ON THE VALUE MULTIPLIED TWICE BY THE ZOOM FACTOR. Causes constant attempts to rebuild the swap chain in full screen.
  • WAYLAND: WAIT FOR THE SPLASH SCREEN TO CONFIGURE. Previously, configuration (resizing) events for the initial Wayland window could occur before or after set_video_mode, which could cause the window to become smaller or corrupted. Now we make sure that the initial window has handled its resize event before the window size is set by set_video_mode.
  • WAYLAND: Change the initial window to show the RetroArch logo copied from the X11 backend icon.
  • WAYLAND: BUILDING POINTER CONSTRAINTS AND RELATIVE POINTER PROTOCOLS.
  • WAYLAND/GL: GL sometimes does not rescale attributes (Super + Left).
  • WIN32/INPUT: ADDS SUPPORT FOR MOUSE BUTTON SWAPPING
  • WIN32: Fixed keyboard event characters. The send key character has been added to all input drivers (currently they only send scan codes), and raw mode is also missing.
  • WIN32: Fix reboot if path has spaces. If the path has spaces, CreateProcess does not like to have any related executable path in the second parameter, lpCommandLine. So remove everything from args except the actual parameters.

If you are just starting to read my article and are interested in universal simulators.

I suggest you take a look at my previous article, I believe it will bring you a little help.

If you think the article is good, please give me a like.

If you have any questions and ideas, please leave me a message.

If the article can help you, please follow me.

Your encouragement and support will be my greatest motivation!

Nostalgia - Console Universal Emulator - Retroarch - The latest version 1.15.0 is released

Thank you for the show!

Finally, thank you for your support!