RetroArch v1.8.0 released, improves UI for mobile users

edQ2lnL.png

A full month hasn't even passed since the last update of RetroArch, 1.7.9, which released earlier this October, and added new touchscreen gestures for those using the mobile version of the program. Now, with the newly released version 1.8.0, even more improvements have been made to the UI in general, for mobile users. Some new improvements and additions include a new method of scaling menu sizes for a variety of different resolutions and DPI, animated transitions between menus, a navigation bar which makes changing settings more effortless, and other visual optimizations.

With version 1.7.9, we already improved the mobile UX significantly by adding touchscreen gestures and better touch responsiveness.

This however pales in comparison to what has been done for version 1.8.0 in this department. We will quickly go over the major highlights, most of the text here has been written by jdgleaver (the author of these changes) with only minimal edits by myself –

New menu scaling
At present, Material UI is scaled according to screen resolution and hard-coded magic numbers. This ‘kinda-sorta’ works on some mobile devices, but in general (and specifically on desktop computers and tablets) the interface is too large, and scaling is highly inconsistent when resizing windows. To combat these inadequacies, there existed a ‘DPI override’ feature which allowed the user to set a specific scale – but this didn’t work in real-time (so adjustments were blind), and it’s not user friendly (since the average user can’t be expected to know the correct DPI setting for their screen).

This new version modifies the scaling of Material UI such that it uses the hardware-reported DPI value of the display, with empirical adjustments to accommodate very large and very small screen sizes (where normal DPI scaling fails). This should ensure an appropriate default interface size regardless of hardware. Moreover, it removes the ‘DPI override’ and replaces it with a generic Menu Scale Factor under User Interface > Appearance, which is a simple fractional multiplier (much easier for the user to understand!). This Menu Scale Factor is now also used by XMB (instead of the previous XMB-specific scale factor) – it is intended that Ozone and menu widgets will obey this setting in the future.

  • DPI Override Removed – Menu Scale Factor comes in its place – starts out at 1.00x and can be made smaller or higher than the default value
  • Material UI now correctly readjusts its layout when screen orientation changes on mobile devices
  • Material UI now resizes in real-time when the user manually sets the Menu Scale Factor (this never worked properly with the old DPI override)
  • Material UI no longer leaks memory on ‘context reset’
Menu animations
A new ‘Menu Transition Animation’ option has been added under User Interface > Appearance. When this is enabled, menu transition events are animated.

All sorts of animations have been added – fade-in effects, slide effects, etc. If you dislike any of these, you can always turn the setting off completely to go back to the previous behavior.

System bar
A new Android-style ‘system bar’ has been added. This shows current core name, clock and battery level.

Navigation bar

The navigation bar is now shown at all times – i.e. it is an actual navigation tool, rather than a ‘top-level-menu’ curiosity.

Two new context-sensitive buttons have been added:

On the bottom left we have a ‘back’ button. This performs the same function as tapping the menu bar, but the button is in a more ergonomic/standard position. This should address most of the complaints Android users have about RetroArch ignoring the hardware back button.

On the bottom right we have a ‘resume content’ button. This means we can easily change/test runtime settings without performing finger gymnastics. e.g. we can change a core option or apply a shader and immediately toggle the menu off without having to hit back to get to the quick menu, and scroll up to the resume content entry.

Auto-Rotation
A new ‘Auto-Rotate Navigation Bar’ option has been added under User Interface > Appearance. When enabled (this is the default setting), the navigation bar is moved to the right hand side of the screen when using landscape screen orientations. It looks something like this:


If you don’t like this and you want it to always appear at the bottom of the screen, turn this option off.

Title bar
The title bar now uses a larger font, and the sublabel font has also been enlarged a little, to more closely align with Material Design standards.

Optimize Landscape Layout
A new Optimize Landscape Layout option has been added under User Interface > Appearance. This is intended to address the rather uncomfortable appearance of Materail UI in landscape orientation on wide displays (particularly on the desktop). The option is disabled by default on mobile platforms (like iOS/Android), and enabled by default everywhere else. When enabled, it looks something like this:

PC and Linux users also get some nice new features, with two bounty requests having been fulfilled. Rinnegatamante has added "graceful switching" for video drivers, meaning that RetroArch has an easier time swapping cores with different video settings, and is now much more stable. Support for a new MAME layout has also been added, and now works with OpenGL drivers.

Graceful switching between video drivers
Graceful switching between video drivers has been added for Linux and Windows PCs thanks to Rinnegatamante (Patreon here). This feature originated as a bounty request, and it’s on the verge of being completed.

RetroArch in the past behaved unpredictably and unstably when switching to cores that wanted a context other than what was currently active. This could happen because of video_driver settings being different in a core config override or because a core’s core options were telling it to use a different renderer than what was active (e.g., GL vs Vulkan)

What happens now, is that RetroArch can seamlessly switch video drivers if a core requires it.

Example –

one of the new cores we have added over the past few weeks, VitaQuake 2, is a core that has two renderers. It has a software renderer and an OpenGL 1.x renderer. Say that RetroArch is running with the ‘vulkan’ video driver. We want to load VitaQuake 2.

What would happen with RetroArch 1.7.9

  • The renderer of VitaQuake 2 has two options – Software and OpenGL. Because there is no hardware context in the core for Vulkan, it would switch to Software.
What happens now with RetroArch 1.8.0 (with driver switching enabled)

  • The renderer of VitaQuake 2 has two options – Software and OpenGL. We make the assumption that you wouldn’t want to use the software renderer if OpenGL is available, so instead, RetroArch will seamlessly switch to OpenGL. When you unload the core/game, it will switch back to ‘vulkan’, so the driver switch will not be written to the config file.
What if you still want to use the Software renderer with a core like this with Vulkan?
That is certainly possible. To do this, we need to turn off the ‘driver switching’ feature. First, you need to make sure that ‘Show Advanced Settings’ is enabled under ‘User Interface’ settings. Once you have made sure of that, go to ‘Settings -> Core’. Then turn off ‘Allow cores to switch the video driver’. It should now behave like before again.

What if a core has several hardware context renderers? (like Dolphin/PPSSPP)
Cores like Dolphin and PPSSPP have several renderers available, such as OpenGL, Direct3D11 and Vulkan. Say you have RetroArch running with the vulkan driver. It would then naturally pick the ‘Vulkan’ renderer. Ditto for OpenGL and Direct3D11. So nothing changed there in that regard.

What is this particularly useful for?
The big issue with using the Vulkan video driver in RetroArch in the past (or Direct3D 11) is that while some software rendered cores might run faster with these drivers vs. OpenGL, there are plenty of Libretro cores that require the use of OpenGL. With this new feature, it will properly fallback to OpenGL for these exclusive cores but still use Direct3D 11 or Vulkan for all other cores. You can get the best of both worlds this way.

You can see detailed descriptions regarding the new updates and changes in the quoted text above, and if you're interested in grabbing this update, you can head over to the official Libretro site, in the source. A changelog has also been included, below.

Changes
1.8.0

  • AI SERVICE: Added in fix for BMP returns to AI service. Added in label passing to AI service call
  • BSV: Fix BSV recording/playback
  • BUGFIX: Fix crash when setting Thumbnail Directory
  • BUGFIX/STABILITY: Set “Automatically Add Content to Playlist” to false by default, this was unstable on PS3 and Mac and other platforms potentially as well.
  • COMMON: Graceful driver switching for Windows and Linux
  • COMMON: Cache frame before converting 0RGB1555
  • LAKKA: Wi-Fi Access Point settings
  • MENU: Menu scaling improvements
  • MENU/MATERIALUI: There are no longer any animation glitches when ‘wraparound’ scrolling from the last entry in a list to the first, or when performing horizontal swipe navigation gestures on certain settings-type entries
  • MENU/MATERIALUI: List entries underneath the title and navigation bars are no longer highlighted when touching the title/navigation bars (this was only a cosmetic issue, but it was annoying…)
  • MENU/MATERIALUI: The current menu list is no longer reloaded when pressing the currently active tab on the navigation bar
  • MENU/MATERIALUI: The ticker text spacer has been set to a ‘bullet’ character (same as Ozone)
  • MENU/MATERIALUI: The default colour theme has been set to ‘Ozone Dark’
  • MENU/MATERIALUI: Three new colour themes have been added.
  • MENU/MATERIALUI: A new Menu Transition Animation option has been added under User Interface > Appearance. When this is enabled, menu transition events are animated
  • MENU/MATERIALUI: The navigation bar is now shown at all times – i.e. it is an actual navigation tool, rather than a ‘top-level-menu’ curiosity
  • MENU/MATERIALUI: Two new context-sensitive buttons have been added to the navigation bar – back button and resume button
  • MENU/MATERIALUI: A new Auto-Rotate Navigation Bar option has been added under User Interface > Appearance. When enabled (this is the default setting), the navigation bar is moved to the right hand side of the screen when using landscape screen orientations
  • MENU/MATERIALUI: The playlists tab is now correctly hidden when User Interface > Views > Show Playlist Tabs is disabled
  • MENU/MATERIALUI: Material UI now correctly readjusts its layout when screen orientation changes on mobile devices
  • MENU/MATERIALUI: Material UI now resizes in real-time when the user manually sets the Menu Scale Factor (this never worked properly with the old DPI override)
  • MENU/MATERIALUI: Material UI no longer leaks memory on ‘context reset’ (fonts were previously never free()’d)
  • MENU/MATERIALUI: A new Android-style ‘system bar’ has been added. This shows current core name, clock and battery level
  • MENU/MATERIALUI: A new search icon is shown on the title bar when viewing playlists and file browser lists. Pressing this launches the search interface
  • MENU/MATERIALUI: The title bar now uses a larger font, and the sublabel font has also been enlarged a little, to more closely align with Material UI standards
  • MENU/MATERIALUI: A number (quite a large number) of layout/spacing issues have been fixed
  • MENU/MATERIALUI: The existing colour theme handling code is not fit for purpose, so the whole lot got ripped out and reimplemented. In doing so, also adjusted all the theme colours to better match Material UI standards – with a few liberties taken for aesthetic purposes.
  • OSD: Fix fast forward indicator when not using menu widgets
  • PSP1: Remove duplicated FPS indicator on the screen
  • LIBNX/SWITCH: Make audren threaded audio driver the new default
  • VIDEO LAYOUT: Add video layout MAME overlay compatibility. Enabled for Windows/Linux/OSX/iOS/Android/libnx. Only works with GL driver for now, no glcore yet

:arrow: Source
 

The Catboy

GBAtemp Official Catboy™: Big Autism
Member
Joined
Sep 13, 2009
Messages
27,642
Trophies
4
Location
Making a non-binary fuss
XP
38,018
Country
Antarctica
We'd like to hear from any users if there are issues on 3DS, generally we try to do a very solid job there. However, lots of custom firmware issues can sometimes cause issues that we cannot reproduce on our own systems.

Nevertheless, we'd like to hear from anybody if they're having trouble. jdgleaver regularly tests RetroArch on 3DS, so it's not a platform we are ignoring or anything.
If y’all need a beta tester with a lot of experience, I can throw my hat in there
 

ciaomao

Well-Known Dude
Member
Joined
Feb 20, 2014
Messages
560
Trophies
1
XP
1,834
Country
Albania
didnt played around with retroarch for a while, but last time there was a fair chance to corrupt your exfat sd. Even after switching to fat32 I had suspicious corrupted game data, but I cant give evidence here. anyway this issues stopped me using it at all and since this day I didnt experienced any problems any more. can someone enlight me if it is safe with fat32 now, if it wasnt already? as far as I remember the common sense was that the root cause is not at retroarch, but a flawd exfat driver by N?
 

YukidaruPunch

Well-Known Member
Member
Joined
Oct 24, 2017
Messages
269
Trophies
0
Age
34
XP
742
Country
Brazil
What are odds that the 3DS "stable" doesn't even boot?
Don't do that. People are working hard for something free and great which works at a plethora of platforms. This is not the way to be thankful for that.

Bugs happen and development is hard. Be understanding of that. Use something that works until whatever new's bested.
 
Last edited by YukidaruPunch,

Purplstuph

Quake Enthusiast
Member
Joined
Nov 9, 2016
Messages
171
Trophies
0
Age
27
XP
573
Country
Canada
I tried to get into Retroarch and i just can't understand it at all.I'm on PS Vita and I choose "scan directory" for my roms and only finds half of what i have.
I really wish Retroarch wasn't that picky over rom detection.
Yes, i do have some romhacks.
It would be very appreciated if I could get a hand so that all my roms show up in the right places.
 

the_randomizer

The Temp's official fox whisperer
Member
Joined
Apr 29, 2011
Messages
31,284
Trophies
2
Age
38
Location
Dr. Wahwee's castle
XP
18,967
Country
United States
Just a warning, apparently a few cores run like shit on the 64-bit version of the app. And thanks to Google being stupid, Libretro is forced to upload the 64-bit version, so if you plan on using PCSX ReARMed, install the 32-bit APK for that and MAME, which can be used in tandem with the 64-bit one. I just learned this the hard way. Until this core gets optimized for 64-bit apps, yeah, it's not ideal.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • Sicklyboy @ Sicklyboy:
    Massivley so. Glad I'm getting more experienced with it now
  • Veho @ Veho:
    "Hey can you make this [inane change] on 50 servers?" Yes.
  • Sicklyboy @ Sicklyboy:
    The scenario in question is to do disk erases on some storage servers at my job that have I think 12x 14TB spinners, SATA SSDs, and nvme disks. The process I'm using to erase the spinners is to kick off an ATA Security Erase in the disk's firmware, then once that's done do a dd zero-fill as a second pass.
  • Sicklyboy @ Sicklyboy:
    These spinners take like 22h per each of those operations
  • Veho @ Veho:
    I'll admit sometimes it takes me longer to write and debug a script that will do that for me, than it would take me to make the changes manually, but this is more fun.
    +1
  • Sicklyboy @ Sicklyboy:
    And running it over a serial console I'd either have to spin up a dozen and a half screen sessions or just run one operation at a time
  • Sicklyboy @ Sicklyboy:
    Wrote a horrifyingly long one-liner to do all of that - spin up a shitload of screen sessions, run these commands to it, pipe output to kmsg so it shows up in the default tty's shell, and some other shit on top of that.
  • Veho @ Veho:
    Can't you run pssh?
  • Sicklyboy @ Sicklyboy:
    Some day I'll write out a properly formatted shell script that lives on our firmware server or git repo and just call that, and have that handle every kind of server we run much more gracefully than my hobbled together atrocity does right now
  • Sicklyboy @ Sicklyboy:
    pssh - nope. 1, what I'm doing gets done from our bootable provisioning environment, and you can only interface with that via serial console - we don't accept ssh connections on the servers in that state, and 2, I don't even know if our bootable environment has pssh baked into it
  • Sicklyboy @ Sicklyboy:
    3, I've never even heard of it before lol
  • Sicklyboy @ Sicklyboy:
    Anyway I can open serial console sessions to multiple devices at the same time, and broadcast my input to all of them (iTerm on Mac is the terminal emulator I'm using). It's just a matter of how many commands I'd have to run by hand, and how long they'd take otherwise lol
  • Veho @ Veho:
    I just assumed you were working via SSH. I know my way around that. If a server is only accessible locally it's waaay beyond saving from my end so I let the DC team work on that :tpi:
  • Sicklyboy @ Sicklyboy:
    I *am* the DC team :P the remote arm of it, anyway
  • Sicklyboy @ Sicklyboy:
    Trust me, I wish I could do everything I need to do via ssh. Working through these serial console servers suuuuuucks in comparison
  • HiradeGirl @ HiradeGirl:
    SSH rules
    +1
  • Sicklyboy @ Sicklyboy:
    I love that there's a network filesystem that runs on top of ssh - sshfs
  • Sicklyboy @ Sicklyboy:
    I use it in most of my home network for mounting network storage in various *nix VMs
  • Veho @ Veho:
    sshfs you say...
  • Veho @ Veho:
    I use SFTP but it doesn't have the bells and whistles.
  • K3Nv2 @ K3Nv2:
    Dumb dx11 and lutris
  • Sicklyboy @ Sicklyboy:
    sshfs allows you to mount networked storage on a machine as a FUSE filesystem. It's sftp under the hood but has all of the interactivity and usability you'd expect of a locally mounted filesystem. Downside, it can slow down a little bit with massive directories, but I haven't personally run into that yet
  • Sicklyboy @ Sicklyboy:
    This perspective is all linux oriented fwiw. I believe there's an sshfs driver for Windows, but I haven't used it yet. and no idea for MacOS
  • K3Nv2 @ K3Nv2:
    Ftp is life if not on wifi
  • wolffangalchemist @ wolffangalchemist:
    yeah ftp and occasionally samba at the house.
    wolffangalchemist @ wolffangalchemist: yeah ftp and occasionally samba at the house.