RetroArch 1.7.9 (v2) released!


RetroArch 1.7.9 (v2) has just been released. Among many other things, it includes big QoL (Quality of Life) improvements for mobile users.

The menu system should now support touchscreen gestures and controls in general should be much improved inside the menu. But that’s far from all!

Grab it here.

If you’d like to show your support, consider donating to us. Check here in order to learn more. You can also help us out by buying some of our merch on our Teespring store!

More frequent stable releases

We will be doing stable releases more frequently from now on instead of them happening only once every 3 months. This way, we can gather live feedback from users based on things we change and it’s easier for us to adapt to user feedback.

Big features

Much-improved menu navigation and touch gestures

Version 1.7.9 will debut touchscreen gestures for the menu for the first time! You will now be able to operate the XMB and MaterialUI menu without needing a gamepad or overlay!

XMB gestures

The following gesture functionality is available with XMB:

  • Swipe up/down in the left margin: scroll through current menu list by ascending/descending the alphabet
    Swipe up/down in the middle region of the screen: scroll up/down through current menu list by one ‘page’ (i.e. one screen’s worth of entries)
  • Swipe left/right: navigate left right, or change the setting value of the currently active item
  • Tap left margin below top margin: Back/cancel action
  • Tap left margin above top margin (top left corner): Open search interface
  • Tap right margin: select currently active item
  • Tap menu list in middle region of screen: activate item, or select it if already active
  • Long press active menu item in middle region of screen: reset item to default setting value
  • Press and drag up/down in the right margin: scroll up/down through menu list (the further you drag, the faster it goes – up to a limit corresponding to keeping a cursor key held down)
  • Press and drag left/right in the top margin: navigate left/right, or change the setting value of the currently active item (again – the further you drag, the faster it goes)

MaterialUI gestures

The following gesture functionality is available with MaterialUI:

On the ‘home’ screen(s):

  • Swipe left/right to switch between the three top-level menus (i.e. has same effect as tapping the icons on the tab bar)

On playlists, file lists and drop down lists:

  • Swipe left/right on the top half of the screen to ascend/descend the alphabet.
  • Swipe left/right on the bottom half of the screen to scroll up/down by 10% of the list size (or one screen height, if this is larger)

On other types of menu:

  • Swipe left/right on a highlighted item to simulate normal cursor key left/right input (i.e. can be used to change settings)

On all menus:

  • A quick tap highlights and selects an item
  • A ‘short press’ (held for > 200 ms) just highlights the item. This is useful for highlighting a settings item prior to swiping left/right to change the value

Auto rotation of overlay when orientation changes (from landscape to portrait and vice versa)

This must have been bugging Android and iOS users for a long time, and finally it is fixed!

We added a new Auto-Rotate Overlay option under Settings > Onscreen Display > Onscreen Overlay (enabled by defaultt on mobile). When enabled, any overlay with both landscape and portrait support will automatically be rotated according to the current display aspect ratio (which corresponds to device orientation for mobile platforms).

Note: Since the overlay specification has no concept of orientation, this auto-rotate feature depends upon proper naming conventions in overlay config files:

  • The active overlay name should contain a fixed string corresponding to it’s layout (i.e. landscape or portrait). Prefixes/suffixes are fine.
  • The overlay rotate button should be wired up, with a target overlay whose name contains a fixed string corresponding to the opposite layout. (Again, prefixes/suffixes are fine)

AI Service – Faster image mode

The image mode should now be substantially faster. It now saves the image in-memory in PNG format then passes it along to the translation service.

To learn more about our AI Service, check out our Youtube guide above.

Changes

v2

  • 3DS: Fix 3DS screen flickering when OSD is enabled
  • IOS: Fix crash that could happen at startup
  • MENU/MATERIALUI: Change DPI scaling back to original – too many issues with current implementation, requires a redesign
  • AI SERVICE: Image mode is now much faster, it now saves the image in-memory in PNG format then passes it along to the translation service
  • BUGFIX: Touch input – When using an overlay to toggle the quick menu on touchscreen devices, we no longer get ‘phantom’ menu input – i.e. the old bug of hitting the toggle and instantly resuming content (or performing a save state) is fixed
  • BUGFIX: Networking – RetroArch crashed when pressing left while Relay Server Location entry was selected
  • BUGFIX: Networking – fix memory leak that could happen at exit after a network operation had run
  • CHEEVOS: Improve handling of line endings when calculating CD hashes for retroachievements
  • CHEEVOS: Add support for Sega CD/Saturn; reduce hash calls to server
  • FPGA: Add initial FPGA port for Z-Turn boards – not really release-ready yet, will need community support to continue. Currently employs naive framebuffer approach, not fullspeed
  • GL1: GLDirect (D3D9 to OGL1.1 wrapper) support
  • GONG: Stability fixes
  • LINUX/UDEV: Fix touchscreen/lightgun issues
  • MENU/MATERIALUI: MaterialUI no longer ‘forgets’ its place when navigating backwards in menus, and navigation in general is ‘cleaner’
  • MENU/MATERIALUI: Add initial gesture support
  • MENU/MATERIALUI: Improved touch support
  • MENU/MATERIALUI: Bugfix – Random’ items are no longer automatically highlighted when performing standard up/down ‘flick’ scrolling through lists (items are only highlighted when you keep the pointer still for > 200 ms)
  • MENU/MATERIALUI: Bugfix – The display no longer ‘jerks’ for one frame when navigating backwards through lists
  • MENU/MATERIALUI: Bugfix – The Material UI scaling factor is now based upon the device-reported screen DPI value (previously it relied upon a hard-coded magic number, which was never correct)
  • MENU/RGUI: Functional mouse/touchscreen support
  • MENU/ONSCREEN KEYBOARD: On-screen keyboard entry via mouse/touchscreen has been tidied up – no more double inputs (or unwanted menu interaction in the background)
  • MENU/MOUSE: Mouse wheel up/down is now a proper ‘up/down’, same as using cursor keys or a dpad
  • MENU/MOUSE: Mouse wheel tilt left/right has been wired up to normal ‘left/right’ commands. Also further improved mouse wheel tilt
  • MENU/OZONE: Add option to toggle between static and scrolling content metadata
  • MENU/XMB: Add full gesture support
  • MENU/OSX: Fixed mouse buttons – mouse down events were not hooked up
  • MENU: When navigating backwards from a core options drop-down list (i.e. pressing select or cancel), the last menu position is remembered (instead of resetting back to the first core option item each time)
  • MENU: Add mouse/touchscreen gesture support
  • MENU: Add option to delete playlists (Settings > Playlists > Playlist Management)
  • MOBILE (ANDROID/IOS): Add option to automatically rotate overlays when changing orientation
  • OSD: Memory details should now be available on every platform (get_mem_total and get_mem_free need to be implemented in the frontend driver for it to work)
  • OSD: Memory details can now be shown individually without FPS and frame count
  • PS2: Fix memory leaks in font/video driver
  • SWITCH: Set default aspect ratio to core provided instead of 4:3
  • THREADED VIDEO: Fix FPS text in threaded video mode
  • VITA: Set default aspect ratio to core provided instead of 4:3
  • VITA: Add system language detection
  • VITA: More memory support
  • WIN32: Log window now has title ‘Logging Console’
  • WII: Add Wiimote lightgun support

Upcoming – RetroArch 1.7.9 – Menu Touchscreen Gestures!


RetroArch 1.7.9 (scheduled for release soon) will debut touchscreen gestures for the menu for the first time! You will now be able to operate the XMB menu without needing a gamepad or overlay!

The following gesture-like functionality is available:

  • Swipe up/down in the left margin: scroll through current menu list by ascending/descending the alphabet
  • Swipe up/down in the middle region of the screen: scroll up/down through current menu list by one ‘page’ (i.e. one screen’s worth of entries)
  • Swipe left/right: navigate left right, or change the setting value of the currently active item
  • Tap left margin below top margin: Back/cancel action
  • Tap left margin above top margin (top left corner): Open search interface
  • Tap right margin: select currently active item
  • Tap menu list in middle region of screen: activate item, or select it if already active
  • Long press active menu item in middle region of screen: reset item to default setting value
  • Press and drag up/down in the right margin: scroll up/down through menu list (the further you drag, the faster it goes – up to a limit corresponding to keeping a cursor key held down)
  • Press and drag left/right in the top margin: navigate left/right, or change the setting value of the currently active item (again – the further you drag, the faster it goes)

RetroArch 3DS: Full speed PS1 now possible with PCSX ReARMed w/ Unai renderer!


Written by Justin Weiss

NOTE: When talking about 3DS in this article, we actually mean the New 3DS. Don’t expect old 3DS to be able to emulate many games at fullspeed.

The Nintendo 3DS is a great little portable RetroArch machine. Especially for classic systems: it has all the buttons you need, and the screen is sharp and pixel-perfect. We’re happy to share a few improvements to RetroArch 3DS that make it even better.

Full-speed cores from the homebrew menu

There are a few different ways to run homebrew apps on the 3DS. Until recently, you could only run cores with a dynarec turned on, such as gpSP and PCSX ReARMed, if you installed the .cia version of RetroArch to the home menu.

On setups using Luma3DS 8.0 or higher, these dynarecs now run when launched as .3dsx files from the homebrew menu, for those who prefer to keep their home menu clean — there is no difference in speed between .cia and .3dsx.

Faster renderer for PCSX ReARMed

PCSX ReARMed has graphics and sound plugins, and some plugins are better suited for certain systems than others. Until now, the 3DS has used the P.E.Op.S. graphics plugin, which is reasonably accurate, but slow. We have just changed the 3DS builds to use PCSX4ALL’s Unai renderer, which is less accurate, but much faster. In many games, 10-20fps faster!

This means that on the New Nintendo 3DS, many PSX games will run at a full 60fps — outside of FMVs, loading, and special effects. But this next feature improves even those:

CHD support in PCSX ReARMed

CHD is a compression format that works great for disc images, losslessly shrinking CD-sized games into something more manageable. Support for CHDs was added to PCSX ReARMed by [fulfilling a bounty] earlier this year, but that support didn’t carry over into the 3DS version.

Now, CHD support has been enabled on PCSX ReARMed on 3DS. This means you can share the same images between RetroArch versions, the images will take up less speed on your SD card, and they will load (and run!) significantly faster than .bin/.cue files. This greatly reduces framerate dips, especially during FMVs and loading zones.

Full-speed PlayStation

When you combine the faster renderer with CHD support, a lot of great PlayStation games run at full-speed on the New Nintendo 3DS! Try it out today: the updated core is currently available in the latest nightly versions, and will ship with the next RetroArch release.

Beetle PSX Dynarec – Accurate PlayStation1 emulation is about to become a lot faster!


Two years ago, we started a bounty for Beetle PSX, our own heavily modified fork of Mednafen PSX. Mednafen PSX is a highly accurate PlayStation1 emulator. However, unlike emulators like ePSXe, it only has a CPU interpreter, which means that the emulator is fairly slow and is therefore not really usable on anything but desktop PCs and high end mobile phones. The bounty was created on BountySource in hopes of attracting someone who could add a dynamic recompiler to Beetle PSX so that it could run much faster and therefore be a viable emulator on lower end hardware, such as mid range mobile phones, game consoles, older PCs, etc.

We can happily report that heavy progress is being made on this bounty right now courtesy of two bounty hunters, and we have been able to test builds which confirm that it is in fact already working for some games. Right now, the dynarec is still in a fairly WIP (Work In Progress) state, many of the more popular games will crash or hang, but the ones that do work so far show a substantial increase in maximum framerate even on a Core i7 7700k CPU.

Game Without dynarec With dynarec
Alien Trilogy 227fps 415fps
Castlevania: Symphony of the Night 190fps 380fps
Crash Bandicoot 170fps 315fps
Doom 210fps 386fps
Mortal Kombat Trilogy 212fps ~500fps
Tekken 3 178fps 224fps
Tomb Raider 218fps ~450fps

NOTE: These tests were conducted on a Windows PC with a Core i7 7700k CPU. It should be noted that this is a highly experimental build and that the performance we measured here should be considered a snapshot performance overview. Most likely when the dynarec is merged into master, we should be looking at much higher framerates still.

1x software rendering mode was used during testing.

What does all this mean?

Higher performance means the core becomes far more viable to be used on other platforms. Up until now, ARM platforms have had to resort to PCSX ReARMed for their PlayStation1 emulation needs because Beetle PSX is simply too slow to run on these systems (unless you’re using a cutting edge iPhone/Android phone of course, and even then, on a Galaxy S10+, I’ve only been able to reliably run most games at fullspeed at 1x resolution with the software renderer). This means that when the Aarch64/ARMv7 backends start working, Beetle PSX could become another possibility for people wanting to use a PlayStation emulator. There’s always room for two emulators and it never hurts to give the user several options for a certain system, especially for a system as popular and with as many games as the PlayStation1.

Higher performance also means more potential for CPU overclocking and runahead latency reduction. Both require a lot of CPU resources, so the higher the performance, the more wiggle room we have to push both.

Implementation

pcercuei made a dynamic recompiler for MIPS powered by GNU Lightning. ZachCook then backported this system to work with Beetle PSX. Previous working implementations were PCSX ReARMed and PCSX 4 All.

When will this release?

We don’t do ETAs for this, and please don’t bug the developers about this. Let them work in peace, that results in better code too. We just wanted you to know about this exciting development that has been going on since it has been at least two years since the bounty started and finally we are starting to see the dream become a reality. We for one can’t be more excited!

Beyond that, we are even more convinced than ever that bounties have been an accelerator for innovation and growth for the project all-around. Our last major smash hit feature, the AI Service, was all courtesy of a bounty funded by both libretro creators and the community alike. Together we make amazing stuff happen, and we truly have our users to thank for all the amazing support they have given this project over the years.