Libretro and Classic/Mini Consoles update!

ModMyClassic Logo

Libretro has teamed up with ModMyClassic (formerly Hakchi Resources) to provide Libretro with their own official “Classic” platform offering for the classic consoles such as the NES Classic, SNES Classic, C64 Mini and the PlayStation Classic.

This now means you can download both stable and nightly builds of RetroArch and majority of the cores directly from official sources which are built and optimized specifically for the classic consoles.

We (Team Classic+) on behalf of ModMyClassic have been liaising with the Libretro developers on multiple cores to resolve numerous performance issues, bugs, crashes, and have gone through each core one by one to ensure that you receive the most compatible and best performing experience on your classic consoles.

As of writing this article there are currently 83 cores available for download in varying formats. (Raw .so, Compressed .so, zipped .so, hmod and compressed hmod) There will be more added to this list in the coming weeks and the inclusion of a “Classic” platform of RetroArch built specifically for the NESC and SNESC (based of HR’s RetroArch “Neo” build)

We are still working on this official “Classic” offering however you can find the WIP nightly builds here: https://buildbot.libretro.com/nightly/classics/

This means that ModMyClassic (formerly Hakchi Resources) will no longer be providing “3rd party builds” of RetroArch or its cores. It will only provide the builds directly from Libretro sources to ensure that any improvements made between developers ends up benefiting everyone in one single collection.

We also added a simple to use “Classic” platform to all of the core makefiles which we will expand on with future classic consoles. You can compile them for your own needs if needed. We added ARMv7 Cortex A7 (Hard Point with Neon) builds so you can also compile these for your own needs, or to use as a template for any other ARM based device. If you have a different architecture ARM device you should be able to easily adjust the classic platforms slightly to suit your needs. We will be providing a detailed compilation guide for the classics and other ARM devices in the libretro documentation in due course.

Notable Mentions (What’s new for current “Classic” users)

Apart from every single core on the list having been optimized, vetted, and tested to ensure they run at peak performance and stability, there have been a number of notable changes and improvements to some of the cores and their “Classic” versions. (Please note that some cores will run badly on the limited hardware. No amount of build optimization will fix this!)

  • New cores – EasyRPG is now available, SimCoupe core has been revived and added into the available cores and a few other variation cores have also been added such as VICE 128. (Commodore 128)
  • Fixed and optimized N64 cores (Mupen64Plus and Parallel) – The ancient builds of mupen and glupen have been moonlighted and classic specific build optimizations and fixes have been made for the N64 cores which allow for more compatible and higher FPS playback on some titles.
  • Mame2003plus speed issues fixed and improved – Thanks to the work from markwkidd, grant2258 and members of team classic+, we managed to resolve some speed issues with the core and the classic including some fixes to the audio and compatibility fixes. This is now very much the go to MAME core for the classics.
  • DOSBOX core improved – Thanks to radius we have fixed up the classic offering of DOSBOX so the core now runs much better than it originally did. 286 and 386 based games should run without issue on the classics now with 486 running ok depending on the game.
  • Nightly builds directly from libretro sources (Never be out of date!) – This means you can download the latest build of every core available for the “Classics” built directly from Libretro sources. You can download the latest version of any core if you so wish as they are built every 24 hours, 365 days of the year. We will still offer “Stable” releases which will likely tie in with releases of RetroArch.

RetroArch now ported and running on the PlayStation Classic

Thanks to the efforts of Team Classic+ (Especially CompCom) we have now ported RetroArch and all of the current 86 classic cores to the playstation classic. Here is a small video showcasing the functionality:

We will be adding the Playstation specific build platform to the RetroArch build and the cores very soon to tie in with the official “classic” platform release

Final Thoughts

We at ModMyClassic are extremely happy and enthusiastic to be working alongside Libretro and by forming this partnership we hope to better the “Classic” offering and provide the best end user experience possible. Whilst this is announcement is a WIP post, we aim to have the official Lbretro “Classic” platform of RetroArch and Cores polished and fully released in the upcoming month.

Please note that ModMyClassic is still in the process of a rebrand from Hakchi Resources and we are currently working at full load to try and get this finished as well as the “Classic” builds. Please excuse us if you check our website if it’s out of date as we are currently redoing everything from scratch which includes all of our APIs, build servers and deployment servers.

If you have any specific qustions regarding RetroArch on the classics or classics in general, please feel free to ask us directly in the ModMyClassic Discord and we will try and answer your questions/resolve your issues.

Big thanks to Autechre for helping make this partnership a reality and facilitating the project. Lastly, many thanks to all the members of TeamClassic+, m4xw, markwkidd, grant2258, gharby, robloach, flyinghead, radius and anyone else who helped to resolve issues and worked on the project.

 

 

Libretro/RetroArch Progress Report/Update – November 2018

RetroArch Switch nightlies now have overclocking support!

RetroArch for Nintendo Switch now has built-in overclocking support! Download the latest nightlies here –

http://buildbot.libretro.com/nightly/nintendo/switch/libnx/

There are 3 “Overclocking” and 3 Underclocking options.

On exit, RetroArch will restore the default system clock.
On docking, RetroArch will restore chosen clock (same with undock)
On focus loss, RetroArch will restore the default system clocks.
On focus gain, RetroArch will restore the chosen clock.

Some general performance hints:

  • Turn ‘Threaded Video’ on.
  • PSX should be fullspeed for nearly anything but a few ROM’s with 1.5GHz. Often, Boost mode should be enough.
  • Mupen64Plus needs a bit more juice for most games. In addition, turn off framebuffer emulation in the core settings.

Beetle PSX HW – Improvements to PGXP and better UV offset calculations for higher resolutions

You can see in this screenshot that the sprite to the right is sliced and has a vertical black line. Issues like these have been fixed uniformly now across software rendering, Vulkan and OpenGL. They would happen when upscaling internally at higher resolutions.

iCatButler has improved many aspects of PGXP (mainly to do with ‘memory + CPU’ option), and he has also fixed some longstanding issues to do with how sprites are rendered at higher internal resolutions. Line artefacts should be considerably reduced/eliminated as a result.

Below follows an explanation by the author:

There was already a sub-texel offset applied to all the base UVs which was causing it to sample out of bounds on 2D quads regardless of the UV orientation (in hardware the error was only when the UVs were flipped).

I’ve changed it so this offset is shrunk as the scaling factor increases, which solves the problem for positive UV/XY derivatives and allows us to use the same code from the hardware renderers to fix flipped UVs.

Here is a summary of the changes made:

  • Add PGXP calls for instructions that were previously missed. Should improve support for games like Croc, MGS, Alundra 2 and others that rely on CPU instructions for vertex handling.
  • Calculate and apply offset for quads with flipped UVs earlier.
  • Reduce offsets applied in software renderer as resolution scaling increases (fixes line artefacts).
  • Calculate UV limits used for filtering earlier and pass these to the individual renderers.

NOTE: Despite the aforementioned improvements, we still find that PGXP option ‘memory only’ generally tends to be the less bug-prone solution. It’s also considerably less CPU intensive, so always keep that in mind.

Cannonball – 120Hz mode!

CannonBall, the core running an improved OutRun Engine, has now analog axis and triggers support alongside a new 120Hz mode.

G-sync seems to react poorly with it though, so be sure to disable it if you experience audio clicks or skipped frames.

Supermodel repository coming soon!

The Supermodel repository is going to be committed to Github soon. From there, we expect that we will get it in working order over the span of a week.

It will be a good Christmas this year for RetroArch fans that love the old Sega arcade games. In less than a year, Reicast Libretro has made incredible strides for arcade emulation thanks to the efforts of flyinghead, and soon Sega Model 3 will be in the bag as well!

NOTE: Supermodel will be an OpenGL-only core. No Vulkan or Direct3D 11 renderer exists for this emulator.

RetroArch 1.7.6 coming soon!

There are several big things brewing in the background, most of them done by natinusula. They are mostly UI-oriented.

Natinusula is working on a fancy widgets UI layer for RetroArch. This will allow us to show UI elements onscreen while the game is running. It will be far more advanced than basic simple text which is all the OSD layer in RetroArch is currently capable of displaying.

We don’t know yet if this will make the cut for 1.7.6, but we can certainly try! On top of that, natinusula has been working hard on the Ozone menu driver. Some of the things that remain to be done there is better scaling for resolutions beyond 1080p, touch/mouse integration, and thumbnails. It is our hope that once this menu driver is in a solid shape, we can replace the current MaterialUI menu for Android/iOS with this one.

Again, we have to preface this by saying that we don’t know if any of this can be achieved for the 1.7.6 release, but it is certainly something that is being prepared and it will eventually arrive in RetroArch anyway. Rome wasn’t built in a day!

What is definitely coming up, is the following:

  • Resolution selection (for Windows only right now, X11 support coming soon).
  • Will remember window position/size (for Windows only right now).
  • Linux ALSA MIDI driver.
  • Vulkan: Bugfix – ‘secondary screen in overlays not working’.
  • You can individually decide whether frame count, FPS and memory information is being shown.
  • Metal: Now supports rotation.
  • Wayland: Screensaver inhibit support.
  • F3 hotkey toggles FPS counter.