[EMU] RetroArch V1.8.7 Released

To great surprise the Libretro team one of the best development teams has released a massive update of Retroatch with the new version 1.8.7. Retroarch as a reminder is a multi-emulator available for many platforms including portable consoles and smartphones, with support for VulKAN libraries, the “Netplay” function and UPnP to play in multi-player online and the start of support on ANGLE windows. There are so many news and I recommend you read the rest of the article.

Warning: this is an Italian amateur translation. Some mistakes are always present !!

Highlights

There are many things this release post won’t cover, like all the extra cores that have been added to the various console platforms. We will devote a little more time to this in a future post on the Core Status Report. Instead, we will look at some of the other highlights.

Bugs fixed with Netplay

Some major netplay regressions have entered version 1.8.5 and it has remained a problem ever since. 1.8.7 finally solves these problems.

New desktop-style playlist display mode for MaterialUI

1.8.7 adds a new Desktop Thumbnail view to the materials user interface, available when using landscape view orientations. This is similar to viewing the Ozone playlist. Above is a random screenshot showing what it looks like.

Clipboard:

  • The status bar at the bottom can be hidden by disabling Settings> Playlists> Show playlist sub labels
  • Tapping / clicking on the thumbnail bar turns the full screen preview on or off

This also represents an important factor in remaking the MaterialUI menu item management code, which will make it easier to implement other types of playlist display modes in the future.

Finally, this solves two small existing problems:

  • Entry dividers now fade correctly during menu transition animations (this is subtle and I just realized it wasn’t working!)
  • Placeholders for missing thumbnails are now missing from the view, just like normal thumbnails (previously they were always displayed instantly, which was pretty out of tune)

Disable ‘Use global main options file’ by default

1.8.7 change the default setting of Use global main options file to OFF.

The default setting was ON only for consistency with legacy configurations. There is no substantial advantage in this: in fact, a global basic options file has the following downsides:

Multiple file I / O: all options must be read / written each time content is loaded or options are saved

Difficulty manually changing option values, for example sometimes this is necessary if a certain setting causes a core crash and if the options for all cores are grouped together, then sifting them to find the one you need becomes a job ungrateful

Obsolescence: settings for old / unused / obsolete cores stay around forever and inflate the global options file aimlessly. With options for cores, it is easy to remove settings for unwanted cores

Since the settings are automatically imported from the legacy global file on first run when the files per core are enabled, changing the default behavior will not harm any existing installations.

Do not initialize unnecessary cheevos when cheevos are disabled

Previously, on all platforms with cheevos support, rcheevos_load () is called each time content is loaded. This means that it happens even when cheevos are disabled:

  • If the core does not require the full path of the content (i.e. if RetroArch passes a data buffer directly), a copy of the content data is created (up to 64 MB in size)
  • If the content is an m3u file, the file is opened and analyzed to obtain the extension of the first file listed inside
  • A checksum is calculated for the content file extension
  • An activity is pushed
  • A mutex is locked / unlocked multiple times

When Cheevos (Achievements) are disabled, all of these things are unnecessary work, causing increased loading and memory usage times. On platforms with insufficient memory (eg consoles), unnecessary duplication of content data is potentially harmful and can cause crashes.

1.8.7 simply adds an ‘early out’ to rcheevos_load () which prevents the unnecessary work mentioned above when cheevos are disabled.

Cheevos: option to start a session with all active objectives

Added an option to allow players to start a game session with all active achievements (even those that have unlocked on RetroAchievements.org).

When cheevos_start_active = true, instead of having X goals of Y unlocked, the player will see a message like this:

How the option looks in XMB:

And in ozone:

Fallback directory for shader presets

This allows us to use the Config menus and the configuration file directories as fallback to store the shader presets when the Video Shader directory is not user writable, therefore following the same behavior shown by the menu option “Save shader as”.

This allows users to manage their presets without having to mess with the configuration of the directory on distributions such as ArchLinux, where shaders (among other resources) are managed through additional packages. But it also goes a little further and changes the order of the preset directories, looking first in the menu configuration path, then in the video shader path and finally in the configuration file directory.

This would improve configuration portability for Android users, as they cannot explore the default shader directory without rooting their devices. Also, I think it makes more sense, since regular configuration overrides are already stored in the menu configuration path by default.

Test
Assuming these directory values:

    • menu_config: /home/user/.config/retroarch/config/ (not writeable for testing purposes)
    • video_shaders: /home/user/.local/share/libretro/shaders/ (not writable)
    • retroarch.cfg: /home/user/.config/retroarch/retroarch.cfg

The following menu options have all been successfully tested (see log output attached).

Save options

Save shader preset as

[WARN] Unable to write the shader preset to /home/user/.config/retroarch/config/foobar.glslp.
[WARN] Writing the preset shader to /home/user/.local/share/libretro/shaders/foobar.glslp failed.
[INFO] Preset shader saved in /home/user/.config/retroarch/foobar.glslp.

Save global preset

[WARN] Failed to create the default directory /home/user/.config/retroarch/config/presets/.
[WARN] Unable to create the default directory /home/user/.local/share/libretro/shaders/presets/.
[INFO] Preset shader saved in /home/user/.config/retroarch/presets/global.glslp.

Save basic preset

[WARN] Unable to create the default directory /home/user/.config/retroarch/config/presets/Snes9x/.
[WARN] Unable to create the default directory /home/user/.local/share/libretro/shaders/presets/Snes9x/.
[INFO] Preset shader saved in /home/user/.config/retroarch/presets/Snes9x/Snes9x.glslp.

Save content directory preset
[WARN] Unable to create the default directory /home/user/.config/retroarch/config/presets/Snes9x/.
[WARN] Unable to create the default directory /home/user/.local/share/libretro/shaders/presets/Snes9x/.
[INFO] Preset shader saved in /home/user/.config/retroarch/presets/Snes9x/SNES.glslp.

Save game preselection
[WARN] Unable to create the preselected directory /home/user/.config/retroarch/config/presets/Snes9x/.
[WARN] Unable to create the default directory /home/user/.local/share/libretro/shaders/presets/Snes9x/.
[INFO] Preset shader saved on /home/user/.config/retroarch/presets/Snes9x/Legend of Zelda, The – A Link to the Past (USA) .glslp.

Apply changes option
[WARN] Unable to write the shader preset to /home/user/.config/retroarch/config/retroarch.glslp.
[WARN] Unable to write the preset shader to /home/user/.local/share/libretro/shaders/retroarch.glslp.
[INFO] Preset shader saved on /home/user/.config/retroarch/retroarch.glslp.

Execute content log output
Game specific preset shader found in the fallback directory
[INFO] [Shader]: preset directory: /home/user/.config/retroarch/config/presets
[INFO] [Shaders]: preset directory: / home / user / .local / share / libretro / shader / presets
[INFO] [Shaders]: directory presets: /home/user/.config/retroarch/presets
[INFO] [Shaders]: specific preset shader available on / home / user /. config / retroarch / presets / Snes9x / Legend of Zelda, The – A Link to the Past (USA) .glslp.
[INFO] [Shader]: Game specific shader preset found.

Folder specific preset shader found in the fallback directory
[INFO] [Shader]: preset directory: /home/user/.config/retroarch/config/presets
[INFO] [Shaders]: preset directory: /home/user/.local / share / libretro / shader / presets
[INFO] [Shaders]: preset directory: /home/user/.config/retroarch/presets
[INFO] [Shaders]: specific preset shader available in /home/user/.config/retroarch / presets /Snes9x/SNES.glslp.
[INFO] [Shader]: folder-specific shader preset found.

Core-specific preset shader found in the fallback directory
[INFO] [Shader]: preset directory: /home/user/.config/retroarch/config/presets
[INFO] [Shaders]: preset directory: /home/user/.local / share / libretro / shader / presets
[INFO] [Shaders]: preset directory: /home/user/.config/retroarch/presets
[INFO] [Shaders]: specific preset shader available in /home/user/.config/retroarch / presets /Snes9x/Snes9x.glslp.
[INFO] [Shader]: Core-specific shader preset found.

Global preset shader found in the fallback directory
[INFO] [Shader]: preset directory: /home/user/.config/retroarch/config/presets
[INFO] [Shaders]: preset directory: /home/user/.local/share / libretro / shader / preset
[INFO] [Shaders]: directory presets: /home/user/.config/retroarch/presets
[INFO] [Shaders]: specific preset shader available in /home/user/.config/retroarch/presets / global.glslp.
[INFO] [Shader]: global shader preset found.

Remove options

Remove Global Preset
[INFO] Preset shader deleted from /home/user/.config/retroarch/presets/global.glslp.

Remove Core Preset
[INFO] Removed preset shader from /home/user/.config/retroarch/presets/Snes9x/Snes9x.glslp.

Remove directory preset content
[INFO]  Default  shader eliminated from /home/user/.config/retroarch/presets/Snes9x/SNES.glslp.

Remove preset game
[INFO]  Default  shader eliminated from /home/user/.config/retroarch/presets/Snes9x/Legend of Zelda, The – A Link to the Past (USA) .glslp.

Some other noteworthy things

      • RetroArch WiiU now has working graphic widgets. OSD notifications are no longer just plain yellow text.
      • RetroArch 3DS now offers basic network support and Cheevos (RetroAchievements).
      • With RetroArch 1.8.7 and overclocking, NeoCD reaches its maximum speed on RetroArch PSVita. Even audio playback no longer stops

changelog

What you’ve read above is just a small example of what 1.8.6 has to offer. There may be things we forgot to list in the change log listed below, but here it is for your reading regardless.

1.8.7

    • 3DS: Add ID for Frodo
    • 3DS: enables basic networking / cheevos
    • CHEEVOS / BUGFIX: the opening of the results list stops abnormally in RetroArch with the badges enabled (on new games)
    • CHEEVOS: option to start a session with all active objectives
    • CHEEVOS: do not initialize unnecessary cheevos when cheevos are disabled. It should reduce boot times when loading content.
    • CORE OPTIONS: Disable ‘Use global basic options file’ by default
    • DOS / DJGPP: add 32-bit color support per core
    • GLCORE: switches to the glcore video driver when requested by a core
    • LINUX / XDG: Use GenericName correctly in the desktop entry
    • MAC / COCOA: correction of mouse cursor tracking
    • MENU / MATERIALS: allows you to add the desktop-style playlist display mode
    • MENU / MATERIALS / DESKTOPVIEW: while scrolling through the playlists, it shows the latest previews selected pending the loading of the next item
    • MENU / MATERIALS: Limits the switching speed of the board when input repetition is active
    • MENU / OZONE: correct the sort order of the sidebar playlist when “Truncate playlist names” is enabled
    • MENU / RGUI: default menu settings adjusted, default scroll speed adjusted
    • MENU / RGUI: enables the custom wallpaper when the menu size is reduced to low resolutions
    • MENU / XMB: Limits the switching speed of the board when input repetition is active
    • NETPLAY: correction of the regressions introduced in 1.8.5
    • RGUI: Add an option to always stretch the menu to fill the screen
    • WIIU: enable graphic widgets

Download

RetroArch 1.8.7

Source

libretro