Libretro Cores progress Report – Beetle PSX HW Dynarec news, New Neo Geo Pocket emulator core, and more!

RACE – new Neo Geo Pocket Color emulator core

Description: SNK Neo Geo Pocket Color emulator

We have released the new SNK Neo Geo Pocket Color emulator core for the following platforms –

  • Android
  • iOS
  • macOS
  • PSP
  • PS Vita
  • Linux
  • Switch
  • Windows

This is an existing old Neo Geo Pocket emulator that unlike NeoPop and its derivatives (Mednafen/Beetle NGP) focuses on performance.

You can get it right now on the Core Updater.

There might still be some savestate and netplay issues with this core. However, the main attraction of this core and by far its ultimate selling point is the performance. It is orders of magnitude faster than Beetle NGP. Watch the video to see exactly how substantial the performance improvement is. For lower-spec systems like PSP, PS2 and 3DS, Beetle NGP (being based on NeoPop) is not able to run at fullspeed, whereas RACE runs at fullspeed on PSP and PS Vita right now.

Beetle PSX HW

Description: PlayStation 1 emulator

* (Vulkan) When rendering games above their native resolution, textures would often become corrupted. Turns out this was a rounding issue. This has been fixed.

* (Dynarec) The Linux/Android portion of the project is getting close to completion, while the Windows part has kinda languished. Therefore, we have made the decision with the current dynarec bounty coders that we focus right now primarily on Linux/Android for an initial release, which hopefully can happen around the end of January. We think that once it’s in people’s hands and results are satisfactory on Android/Linux that the Windows issues can be sorted out from there on out. With CPU-bound games, performance should be roughly 2 times faster.

We are currently assembling testers on our Discord to put the dynarec on Linux to the test.

Beetle PCE Fast

Description: NEC PC Engine emulator

* Added mouse support
* Fix turbo button core option

Kronos

Description: Sega Saturn emulator

* Update to version 2.0

BlueMSX

Description: MSX home computer emulator

The MSX emulator core finally works for the first time on PSP and PS Vita.

Game & Watch – GW

Description: Game & Watch emulator
A regression was fixed in this core, it should finally work on Android again.

Atari 800

Description: Atari 800 home computer emulator
Fix for non-working virtual keyboard.

Virtual Keyboard didn’t work at all.
Right now not all keys are mapped, but at least most important are working now.

FB Neo

Description: Multiple arcade machine emulator
FB Neo has been updated to the latest version.

MAME 2000 – Faster Z80/68K CPU cores for ARM – Big performance boost on Vita

Description: Multiple arcade machine emulator

The MAME 2000 libretro core is now using the ARM-optimized Cyclone and DrZ80 CPU cores on PS Vita. We’re going to be testing this out on various other 32bit ARM devices as well and rolling it out there as well. This should give a significant boost in performance and bring it in-line with MAME4All for 32bit ARM devices.

NOTE: Only the games that make heavy use of Z80 and 68K CPU cores will see significant performance gains from this.

MAME 2003 Plus

Description: Multiple arcade machine emulator

* Fix for Eagle Shot Golf on ARM hardware

Flycast

Description: Sega Dreamcast/NAOMI emulator

* Avoid TA data buffer overflow. Fixes Ooga Booga crashes on multiplayer (offline and online)
* Vulkan: Workaround for Intel driver bug when depth write is disabled
* Vulkan: Add anisotropic filtering core option.

VICE

Description: Commodore 64 emulator

* 1 Frame of input lag removal

P-UAE

Description: Commodore Amiga emulator

* 1 Frame of input lag removal
* Amiga CD32 support

bsnes

Description: Super Nintendo emulator

* New core option – enable this for runahead support. This is likely temporary until a better solution can be found.

In Development – RetroArch ANGLE support – OpenGL support for UWP and more

ANGLE is middleware developed by Google that serves as an OpenGL compatibility layer on systems where OpenGL support is either spotty or missing entirely. It converts OpenGL calls to Direct3D 9/11.

In this video, you will see ANGLE being used on RetroArch UWP. In specific, it allows us to run OpenGL cores now on the Xbox One, where only Direct3D 11/12 are available as graphics APIs. Mupen64plus Next is shown running in this video on an Xbox One S with fairly acceptable results.

Will this be ready for the next version?

We don’t know yet if this will make it for version 1.8.2.

Let us tell you though what this will entail in the future –

  • There will likely be two binaries from now on for the desktop Win32 Windows version – one with ANGLE, one without. The non-ANGLE version will use your system-provided OpenGL driver, while the ANGLE version will use the ANGLE version of the OpenGL dynamic libraries.
  • ANGLE works over OpenGL ES. This means that ANGLE requires separately compiled cores targeting OpenGL ES 2/3 instead of desktop OpenGL. What this means is that 1) we need separate cores since the current OpenGL cores available for Windows assume that desktop OpenGL will be targeted, and 2) a libretro core has to have a working OpenGL ES 2 or 3 implementation in order for it to work. This will mean that currently, cores like Quake 2/3/Doom 3 won’t work since there are no working OpenGL ES 2 codepaths in those cores. However, Mupen64plus Next and Flycast do have OpenGLES 2 codepaths.

What usecases are there for using ANGLE instead of regular OpenGL?

There are several scenarios imaginable where you would want to use ANGLE. Here are some of them –

  • UWP (shorthand for Universal Windows Platform) allows you to make one binary that will work on Windows Mobile 10, Windows 10 and Xbox One. The only graphics API available for UWP programs is Direct3D 11 or 12. So for OpenGL cores to work, a middleware layer like ANGLE which converts OpenGL to Direct3D is our only option. Therefore, ANGLE allows us to run OpenGL ES 2 cores on the Xbox One.
  • Certain graphics cards might have nonexistent OpenGL support on Windows 10 and therefore fall back to Microsoft’s reference OpenGL 1.1 drivers. This is pretty much the worst case imaginable and really limits what you can do with OpenGL on such graphics cards. Intel HD 2000/3000 series integrated GPUs are pretty much in this position. For such GPUs, ANGLE might be your only option to get any kind of acceptable level of hardware accelerated graphics support with openGL-based cores.
  • OpenGL driver support might be stagnating for certain graphics cards, and therefore several bugs go unresolved in their OpenGL driver implementations. ANGLE is a good way to work around that assuming you are OK with an OpenGL ES 2/3 feature set.

We will fill you in as things develop how ANGLE will fit into RetroArch’s future releases. For now, the path seems clear – separate core versions for the emulators that have viable OpenGL ES 2/3 codepaths, and separate binaries at least on Windows desktop for an ANGLE-enabled and non-ANGLE enabled version. The redist (redistributable) will also need to be updated to include the extra dynamic library dependencies.

RetroArch 1.8.1 released!


RetroArch 1.8.1 has just been released. This version sees the coming of age of the mobile UI, which now has support for thumbnails. This will bring a transformative change to the way people get to interact with the UI on Android/iOS. And the best part is that this is only the beginning, even more drastic UX enhancements are planned!

Grab it here.

If you’d like to show your support, consider donating to us. Check here in order to learn more. In addition to being able to support us on Patreon, there is now also the option to sponsor us on Github Sponsors! You can also help us out by buying some of our merch on our Teespring store!

On-demand thumbnail downloading now enabled by default on Android/iOS

We’ve made the decision to enable the auto thumbnail scraping feature by default on Android/iOS since both devices are likely to be connected to the Internet. This is inline with what the majority of people on these platforms would want the default behavior to be. All other platforms remain unaffected – for systems other than Android/iOS therefore, it has to be enabled manually for it to work.

In case you are using your device offline and/or you don’t want a HTTP request to be performed every time you browse a new entry in a playlist, you can turn this setting off by going to ‘Main Menu -> Online Updater’ and turning off ‘On-Demand Thumbnail Downloads’.

MaterialUI – Thumbnail support plus more themes! The mobile UI finally grows up!

We are beyond excited to present to you even more UX enhancements for MaterialUI, the default UI for mobile devices like Android and iOS.

There is now initial thumbnail support for playlists in MaterialUI!

RetroArch 1.8.1 adds the Thumbnails and Thumbnail Upscaling Threshold options under User Interface > Appearance, and adds two new options: Portrait Thumbnail View and Landscape Thumbnail View. There are currently only list view implementations, which look something like this:

Portrait Thumbnail View

Off

List (Small)

List (Medium)

Landscape Thumbnail View

OFF

List (Small)

List (Medium)

List (Large)

Note the new ‘switch thumbnail view’ icon on the title bar (next to the search icon). This shows up when viewing any playlist provided that User Interface > Appearance > Thumbnails is set to anything other than OFF. Touching this icon switches to the next view mode (this is done independently for each screen orientation). Pressing the ‘scan’ button on a gamepad (RetroPad X) has the same effect.

On-demand thumbnail downloads are fully supported.

All loaded thumbnails have a nice ‘fade in’ animation.

A couple more screenshots –

We implore everybody that might have bounced off earlier versions of RetroArch for Android/iOS to please give this new version a chance. We are trying our best to be receptive to user feedback and whip the UX into shape so that it becomes a user interface that you will come to love instead of tolerate (at best). Thumbnail support has been missing for a long time so this is bound to be a big deal along with the other UX enhancements that version 1.8.0 already brought with it

Changes

1.8.1

  • BUGFIX/MENU: Fix menu rendering with Mali GPUs after changing video dimensions
  • CDROM: Adds pregap support to cdfs helper methods
  • CHEEVOS: Provides the new PCEngine hashing algorithm for RetroAchievements
  • LOCALIZATION: Update French translation
  • LOCALIZATION: Update Polish translation
  • LOCALIZATION: Update Spanish translation
  • MENU/MATERIALUI: Initial thumbnail support
  • MENU/MATERIALUI: Cutie / Virtual Boy theme added
  • MENU/MATERIALUI: Bugfix – Under certain extreme circumstances, entries with very long sublabel strings could have their text prematurely ‘clipped’ as the entry is scrolled beyond the top of the screen
  • MENU/MATERIALUI: Bugfix – Certain setting value strings were unnecessarily truncated (with a …) when using smooth ticker text
  • MENU/XMB: Sunbeam theme added
  • SWITCH: Accelerometer, gyroscope and illuminance sensor support
  • VITA: Accelerometer and gyroscope sensor support

What’s next?

We will be following this blog post up in the upcoming days with more about the Doom 3 core that libretro devs have been working on. Stay tuned – this core represents a big milestone for us since it is a semi-modern game running as a libretro core inside RetroArch, and our aim has always been to appeal beyond the emulation scene. We are fully supportive of even more non-emulator cores in the future, but we won’t forget about the emulation scene either, and we have some BIG announcements coming up that still remain a secret. So stay tuned and wait for further information to arrive when the time is right!