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_randomizer

The Temp's official fox whisperer
Member
Joined
Apr 29, 2011
Messages
31,284
Trophies
2
Age
37
Location
Dr. Wahwee's castle
XP
18,927
Country
United States
Once I know for sure that it's on their end, I'll report something. You're fine boss man.

Sorry, today was a shitty stressful day, and my patience level is quite low -_- damn I need a break. But yeah, I get it, thanks for understanding.
 

The Catboy

GBATemp's Official Catboy™: *smug nya~*
Member
Joined
Sep 13, 2009
Messages
25,718
Trophies
3
Age
31
Location
In front of my Switch
XP
28,579
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 Member
Member
Joined
Feb 20, 2014
Messages
374
Trophies
0
XP
1,043
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
249
Trophies
0
Age
33
XP
637
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
164
Trophies
0
Age
25
XP
535
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
37
Location
Dr. Wahwee's castle
XP
18,927
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.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: https://www.reddit.com/r/puns/comments/wqcefg/it_might_work_for_heart_burn/?utm_medium=android_ap... +1