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
 

LibretroRetroArc

Well-Known Member
Member
Joined
Aug 24, 2012
Messages
748
Trophies
0
XP
1,258
Country
Netherlands
What are odds that the 3DS "stable" doesn't even boot?

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.
 

Rahkeesh

Well-Known Member
Member
Joined
Apr 3, 2018
Messages
2,178
Trophies
1
Age
42
XP
3,260
Country
United States
I'm not sure how about you try it out? if it doesn't boot try a fresh install so older configs don't mess things up

OK I figured people would be in on my snide comment but I guess many really have moved on to the Switch. We've had several stables that have been anything but on the 3DS on first release, needing several days of fixes before you could avoid ARM11 exceptions. When 3DS-specific PSX optimizations were announced, the thing would crash horribly from notifications.

I can say that 1.80 with a fresh config seems to work OK, even PSX games with notifications on. So yay.
 
  • Like
Reactions: Mythical

AmandaRose

Do what I do. Hold tight and pretend it’s a plan
Member
Joined
Aug 19, 2015
Messages
10,189
Trophies
1
Location
Glasgow
Website
www.rockstarnorth.com
XP
16,145
Country
United Kingdom
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.
The fuse core crashes no matter what zx spectrum game I try. Also Beetle VB crashes no mater what Virtual boy rom I try. Beetle Cygene core plays Wonderswan roms good but there is no sound at all on any rom. Handy crashes with any Atari Lynx game.

All the above have been tested on both a original 3ds and a N3DS both on firmware 11.11.0-43E using Luma 10.0.1
All tested using cia and 3dsx.
All the above crash with an Arm 11 exception.

There is probably a lot more cores that just don't work at all but I haven't the time to test them at the moment.
 
Last edited by AmandaRose,

Rahkeesh

Well-Known Member
Member
Joined
Apr 3, 2018
Messages
2,178
Trophies
1
Age
42
XP
3,260
Country
United States
See that's what I'm talking about. Although I haven't been able to replicate lynx crashes on 1.80 yet.

I did just overwrite a previous recent nightly and delete my .cfg files though.
 

Kioku

猫。子猫です!
Member
Joined
Jun 24, 2007
Messages
12,003
Trophies
3
Location
In the Murderbox!
Website
www.twitch.tv
XP
16,127
Country
United States
So report it to GitHub instead of here?
not worth it tbh. This is on my phone, and honestly it seems I'm the only one. Scoured the forums, github, subreddit and found nothing. So, if it's fixed? Yay. If not? I've got options.
 

Windows_10_User

Well-Known Member
Member
Joined
Dec 31, 2018
Messages
2,068
Trophies
0
XP
2,766
Country
Portugal
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.

I know it's not on 3DS but after setting PS3's RetroArch's Aspect Ratio setting to "Custom" for each one of the cores I use and save RetroArch's configuration I have to set it again in some cores' case because the Aspect Ratio setting is blank so I'll have a black screen in these cases if I don't set the Aspect Ratio to "Custom" (or other setting), which is annoying. Is this normal? I've had this problem for a long time.

Also, when will PSP's RetroArch be updated and have no problems playing GBA ROMs?
 
Last edited by Windows_10_User,

Kioku

猫。子猫です!
Member
Joined
Jun 24, 2007
Messages
12,003
Trophies
3
Location
In the Murderbox!
Website
www.twitch.tv
XP
16,127
Country
United States
I mean, the dev literally just said he'd like to hear feedback, but they don't drop by here often, but Github instead. I fail to see why people refuse to report bugs.
...because I haven't taken the necessary steps to ensure that it's not an issue with my setup.
 

NANASHI89

Well-Known Member
Member
Joined
May 3, 2012
Messages
2,473
Trophies
1
XP
5,333
Country
United States
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.

Loading NES ROMs with Nestopia (New 3DS) gives me the following error in the pic below.

Didn't start doing this until I updated to 1.7.9.
20191021_214710.jpg
 

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,969
Country
United States
...because I haven't taken the necessary steps to ensure that it's not an issue with my setup.

I mean, they can only do so much, you know? That's fine to make doubly sure it can be replicated on others' machines before making a report. Sorry, I just want to see the Libretro Team get as many bugs squished as possible >.>

Apologies :(
 
  • Like
Reactions: Kioku

Kioku

猫。子猫です!
Member
Joined
Jun 24, 2007
Messages
12,003
Trophies
3
Location
In the Murderbox!
Website
www.twitch.tv
XP
16,127
Country
United States
I mean, they can only do so much, you know? That's fine to make doubly sure it can be replicated on others' machines before making a report. Sorry, I just want to see the Libretro Team get as many bugs squished as possible >.>

Apologies :(
Once I know for sure that it's on their end, I'll report something. You're fine boss man.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Purple_Heart @ Purple_Heart: eh its almost end of the year in october