RetroArch v1.7.8 (v4) released

RetroArch 1.7.8 v4 has just been released. Another point fix release, but it has some important changes especially for iOS and Retro Achievements users.

Grab it here.

If you’d like to show your support, consider donating to us. Check here in order to learn more.

For all other details surrounding version 1.7.8, we refer you to our original article here.

Changes

  • COMMON: Enable customisation of runtime ‘last played’ display format
  • CHEEVOS: Add hashing support for PSX (bin/cue, chd, or real CD) (for real this time, got added in the CHANGELOG for v2 then reverted before it hit release)
  • IOS: Update for iOS 13, fix the asset packaging issues
  • LOCALIZATION: Update Portuguese Brazilian Translation
  • MENU: Add 12-hour time/date versions of all formats
  • SWITCH: Add ‘AI Service’ option to Switch (untested)
  • SWITCH: Update to newest libnx toolchain

Flycast WinCE has merged into regular Flycast – only one core now! Plus – Switch port teaser!

So, flyinghead finally feels confident enough that we are at a stage where the WinCE branch can be merged into master.

This is a pretty big deal. This marks the first time that an open source Dreamcast emulator has Windows CE support in a mainline release, along with arcade Naomi support. Right now, the only other emulator that manages to emulate both these is a closed source emulator called demul. So this is a pretty big milestone for us.

So, what do you have to do from this point on?

– Go to the Online Updater, select ‘Update Cores’, and download ‘Flycast’.
– Remove the old Flycast WinCE core. It no longer serves any purpose, you can just download the Flycast core instead which was Windows CE support now built-in. If you have any games in your old playlists that still use the Flycast WinCE core, reset the core association and make it use the main Flycast core now.

This has been a tremendous undertaking and in the process, so many improvements have been made as a result:

* (Windows CE) The reason why the Windows CE build was separate before was that the addition of the MMU codepath would greatly hurt the performance of every non-Windows CE-based game. This is no longer the case thankfully. Instead, performance has actually improved over the non-Windows CE build from before (see the next point).
* (Optimizations / Performance) Thanks to SSA optimizations, performance is better across the board now for every game, whether it is a Windows CE-based game or not. We figure it’s about 30% faster on average give or take.
* (Libretro core-specific) Certain core options now get hidden depending on other settings that are turned on/off which they are dependent on. For instance – ‘Show VMU Display Settings’ – if you enable this and then leave the Quick Menu options screen and re-enter it again, it will show all the VMU display options. Turn this off and repeat the same process in order to hide all the VMU display-related options again. This will greatly unclutter the options list.
* (Libretro core-specific) A new setting that appears when Threaded Rendering is enabled – ‘Delay Frame Swapping’. This waits until the frame is rendered by the digital video encoder which means it’s being displayed on the screen. This helps avoid displaying bogus/empty frames that would not be shown on a real console. Without this option enabled, you can get heavy screen flickering with some games (such as South Park Chef’s Luv Shack and NFL Quarterback Club 2000).
* (Libretro core-specific) Auto-configuration of early input polling when threaded rendering is enabled. Threaded rendering needs early input polling configured or else input will be buggy. In the past, the user needed to do this manually on RetroArch, which greatly complicated things. Now instead, we do this behind the scenes through a private libretro API extension, so you no longer have to tediously configure this yourself. It was annoying and could mess with your configuration since for other cores you would really want to set it to late input polling for the best input latency.
* AICA sound emulation has greatly improved and can now be considered mostly feature complete. We have included a before and after comparison of Skies of Arcadia so you can get an idea of how much of an improvement it is – this is Skies of Arcadia before and after implementing the LPF (Low-Pass Filter) –

Before –

After –

So, in short, the low-pass filter has been implemented. This filter has an envelope, similar to the already implemented one for amplitude. It varies the cut-off frequency for attack/decay/sustain/release. The other thing added is the pitch LFO, which is used to create a vibrato effect. So far, the only sound inaccuracy I have noticed in a game is that certain music that is triggered upon events (such as in Resident Evil Code: Veronica) does not get properly faded out. Apart from that, sound accuracy has seen a tremendous improvement, really night and day in a lot of respects in games like Resident Evil 2 and Skies of Arcadia.

* (AMD) Per-pixel alpha sorting has been fixed on AMD GPUs. Previously ,it would look like this on Windows (at the main BIOS menu) –

Switch port teaser

Flycast Libretro is coming to RetroArch Switch courtesy of Datamats! For now it uses the interpreter core only, but m4xw is going to work on getting the dynarec working. No ETA and don’t bug the devs about it until it’s done!

RetroArch 1.7.8 – AI Service – How To Set It Up

Welcome to the future! Sometime ago, a #RetroArch bounty got posted proposing OCR (Optical Character Recognition) and Text To Speech services being added to RetroArch.

Some months later, and here we are – a bounty hunter valiantly took on the challenge and there is now a fully fledged AI Service up and running that works seamlessly with #RetroArch!

You use the AI Service like this – you enable the AI Service (should be enabled by default), you then setup the server URL (could be a local network address if you have the server up and running in your own network, or a public IP/URL in case you’re going through a service). After that, you only need to bind a button or key to the so-called “AI Service” action. You can bind this key by going to Settings – Input – Hotkeys.

In this video, you can see each of the two modes that the AI Service currently is capable of doing –

Speech Mode – Upon pressing the AI Service button, a quick scan is done of the text, and the recognized text is then translated to speech. You can press the AI Service button at any time and it will try to process the current snapshot of the screen it made. This mode is non-interruptable, meaning the game will continue running when you hit this button, and the output speech will take as long as it takes for the server to respond to your query and pipe the sound to RetroArch.

Image Mode – In image mode, it tries to replace the text onscreen with the output text. For instance, in the video you see above, the game is played in Japanese, so when we hit the AI Service button, it tries to replace the Japanese text with English translated text. This mode is interruptable – this means that when you hit the AI Service button, it pauses the game and shows you an image with the replacement text UNTIL you hit either the AI Service hotkey or the Pause hotkey again, then it will continue playing.

We encourage everybody that wants to submit feedback to us on this amazing revolutionary feature to go to our Discord channel and in specific the #retroarch-ai channel. We’d love to hear your feedback and we’d like to develop this feature further, so your input and feedback is not only appreciated but necessary!

VGTranslate using Google API keys

1.0 Get a Google API key

  • Create a billing account (taken from https://cloud.google.com/billing/docs/how-to/manage-billing-account )
    • Go to the Google Cloud Platform Console Manage billing accounts page and sign in or, if you don’t already have an account, sign up.
    • Click the Create account button.
    • Enter the name of the billing account, then click Continue. Note that if you see an Organization  drop-down, then you must also select an Organization before you can continue.
    • You might be prompted to select your country. The choice will affect the payment options you have in  the next step. The currency for your billing account is based on the country you select.
    • Choose the payments profile that will be associated with this billing account. You can choose an  existing payments profile, or create a new payments profile. If you choose to create, follow the  instructions on the screen to set up your payments profile.
    • Set your Account type as individual
  • Create an API Key: (taken from https://cloud.google.com/docs/authentication/api-keys )
    1. Navigate to the APIs & Services Credentials panel in GCP Console.
    2. Select Create credentials, then select API key from the dropdown menu.
    3. Click the Create button. The API key created dialog box displays your newly created key.
    4. This is your GOOGLE_API_KEY that we will use later.

2.0 Setup VGTranslate

  • Windows:
  • Linux:
    • Download the vgtranslate project from https://gitlab.com/spherebeaker/vgtranslate.git or use git clone.
    • Go to the extracted vgtranslate directory where setup.py is located.
    • Using python2.7, run: python setup.py install -If this step fails, you can try removing the problematic dependency.  Dependencies like gender-guess and kivy are not needed for most functionality. -Change the default_config.json file as in the windows case.
    • Go into the vgtranslate subdirectory and run: python serve.py

3.0 Setup RetroArch

AI Service Settings
  • Start RetroArch -Settings->Input->HotKey Binds->AI Service
  • Change to key/button of your choice
  • Settings->AI Service -Set AI Service Output to “Image Mode” (text translation) –
    OR set AI Service Output to “Speech mode” (text-to-speech)
  • Set AI Service URL to “http://localhost:4404”
  • Set AI Service Enabled to on.
  • Set Target Language to your language of choice
  • Source language will be used as a hint for the OCR, but can be left to “Don’t Care”
  • Run a game of your choice
    1. Image Mode (Text translation)
      1. Press your hotkey to pause the game, and wait for a translation to come back.
      2. Press your hotkey again to unpause and continue
    2. Speech Mode (Text To Speech)
      1. Press your hotkey to read out the text currently on the screen.
Bind the AI Service hotkey to a key or button
Bind the AI Service hotkey to a key or button

4.0 ZTranslate Service API Option

ZTranslate API Key method

  • Go to https://ztranslate.net/signup
  • Enter a display name, email, and password, and click register
  • Check your email for the verification link and click on it.  If you don’t see it, check your junk/spam folder.
  • In the top menu, click on “Settings”
  • Copy the API KEY near the bottom of the page.  This is your ZTRANSLATE_API_KEY.
  • Follow instructions in 3.0, but
    • For AI Service URL, put in: “http://ztranslate.net/service?api_key=<ZTRANSLATE_API_KEY HERE>”

5.0 – ZTranslate API via VGTranslate

Follow instructions 2.0, 3.0, and 4.0, except:

  • when modifying default_config.json, use the following: (link here)
  • Change AI Service URL to “http://localhost:4404”.
  • This will use the ztranslate API method, but will reduce latency compared to hitting the service API directly.

RetroArch 1.7.8 (v3) released + big core updates! (bsnes HD, Flycast, Android, etc)

RetroArch 1.7.8 was a very ambitious release, and as a result, it is taking some time to iron out some of the kinks. Instaed of leaving you waiting for a month again to fix some crucial bugs, we’d rather release these point fix releases first instead so that we leave you with a rock-solid 1.7.8 in the end while we then shift our focus and attention to 1.7.9.

In light of that, we are releasing version 3 right now, which will be especially beneficial for Mac users. The future-proof Metal Mac version should now work flawlessly on Macs with an AMD graphics card (they previously produced heavy graphics glitches inside the menu). It has just been released! Grab it here.

If you’d like to show your support, consider donating to us. Check here in order to learn more.

For all other details surrounding version 1.7.8, we refer you to our original article here.

Changes

  • GLCORE: Ensure correct scaling of menu texture (with RGUI)
  • IPS: Soft-Patch any IPS size
  • METAL: Fix overlay issue – setup correct viewport before rendering overlay
  • METAL/STB: Fix font driver issue with AMD GPUs on MacOS.
  • MENU/RGUI: Correctly rescale menu when resizing window if aspect ratio lock is enabled.
  • OSX: Remove OSX suffix in window title
  • PSP: Fix audio conversion code
  • REMAPS: Fix analog remapping regression -analog remapping would break controls

bsnes HD – Released for Windows/Linux/Android, and soon iOS and Mac!

bsnes HD should now be available on Linux, Windows and Android for RetroArch users! It’s based on the latest version of bsnes, and it should be significantly faster than previous bsnes versions.

In this video, we show you some of the HD Mode 7 features that are unique to this version. They make for a fairly significant difference overall as we’re sure you’ll agree!

This core is not fully complete yet and might still have some omissions. Also, the ‘bsnes HD’ name is temporary, and we will be doing some house cleaning of the various bsnes cores we are maintaining soon. The plan is to have an improved Core Updater in later RetroArch versions that allows for better categorization and filtering in the future so that users can more easily manage their cores.

On Android for the first time!

This is the first time the latest version of bsnes will appear on Android, courtesy of Libretro/RetroArch! Our core version of this is called bsnes HD, and you can grab it from the Core Updater right now! Just make sure to update the core info files first (by going to Online Updater, then selecting ‘Update Core Info Files’). bsnes HD should be a fair bit faster than the other bsnes cores already available, plus it has enhanced overclocking features and the acclaimed HD Mode 7 features.

In this video you see it running on a Samsung Galaxy S10+ (Exynos model) with 3x HD Mode 7 scaling applied, and it runs at fullspeed all the way.

User and contributor harakari has reported that he can run HD Mode 7 at 4x scaling and still have games run at fullspeed on his iPhone XS Max, so if anything, expect even better performance on high-end iDevices!

Flycast – WinCE core now 30% faster on average and sound improvements!

The FlycastWinCE version should now be 30% faster on average for non-Windows CE games! We have figured out a way to have the Windows CE code additions no longer affect the main performance of the emulator. For that reason, after we have ironed out some of the final kinks, you can expect there to be only one Flycast core moving forward. On top of that, flyinghead has really gone to town with some much needed audio improvements on the AICA and DSP side. Witness this long standing audio sample bug that is now finally fixed with the game Resident Evil: Code Veronica. This and many other sound bugs (such as the audio samples continuing to be repeated during the battle loading scenes in Soul Calibur) have been fixed now.

World-first – Windows CE Dreamcast games running on Android!

The Flycast WinCE core is now available for Android users!

  • 30% speedup in non-Windows CE games thanks to extensive optimizations made to the dynarec by flyinghead. No more performance reduction of non-Windows CE games.
  • Windows CE support further improved.

It is now possible to play Dreamcast Windows CE games on Android! Please be aware that this is very CPU intensive and that you should probably expect 15 to 25fps on high-end Android phones right now.

Note that Windows CE games could still be unstable on Android, and that you need a real BIOS for Windows CE to work. It won’t work with the HLE BIOS.

NOTE: We anticipate that after the final kinks has been ironed out, that we will merge the Windows CE parts of this core back into Flycast, and that the separate Flycast WinCE core will disappear from there on. So this separate core is only a temporary thing for now. We will let you know when this will happen. Video was recorded on a Galaxy S10+.

Mupen64 Plus Next – No more 10 second startup times on Windows!

Thanks to an important bug fixed by mudlord, Mupen64 Plus Next should no longer take up to 10 seconds to start up any game on Windows.

Mupen64 Plus Next is an up to date version of Mupen 64 Plus with the latest GlideN64 renderer.

More progress reports on other cores soon

Cores are often updated on a daily basis, and a lot of the times, all the amazing enhancements and improvements they receive go underreported because we’re so busy with development. We feel it is time to shine more of a light on these changes, so we will be doing more periodic updates on core updates as they come along.

RetroArch 1.7.8 (v2) – Released!

This is an important bugfix release of RetroArch 1.7.8. It has just been released! Grab it here.

If you’d like to show your support, consider donating to us. Check here in order to learn more.

For all other details surrounding version 1.7.8, we refer you to our original article here.

Changes

  • 3DS: Fix 3DS startup crash
  • AI SERVICE: Fix ‘Japanese’ setting
  • D3D12: Fix runtime error at startup
  • CHEEVOS: Fix Achievements badges
  • CHEEVOS: Add hashing support for PSX (bin/cue, chd, or real CD)
  • GLCORE: Fix regression – shaders don’t work
  • IOS: Use launch storyboard to properly support all screen sizes
  • LOCALIZATION: Update Japanese translation
  • LOCALIZATION: Update Korean translation
  • LOCALIZATION: Update Polish translation
  • MENU/XMB: Smooth vertical ticker scrolling
  • OSX: Fix potential OSX startup crash
  • PATCH: Fix IPS patches
  • PLAYLISTS: Fix playlist heap corruption bug. Would also cause potential crashes on OSX and 3DS at startup
  • SHADERS: Fix shader loading and saving in content-less cores
  • SHADERS: Implement video_shader_delay setting. Screen grabbing software like streaming software can interfere with the loading of shaders, resulting in graphical glitches or freezes. This PR adds a video_shader_delay setting (in ms) and (advanced) menu entries Video -> Auto-Shader Delay, allowing to work around the issue

 

RetroArch 1.7.8 – Released!

RetroArch 1.7.8 has just been released! Grab it here.

If you’d like to show your support, consider donating to us. Check here in order to learn more.

It would be an understatement to say that version 1.7.8 is a pretty big deal. Two major landmark features are added for this version on top of numerous enhancements. In fact, there is so much to talk about again, we have been forced to split this release post up into several separate blog articles.

RetroArch AI Project

Welcome to the future! Sometime ago, a RetroArch bounty got posted proposing OCR (Optical Character Recognition) and Text To Speech services being added to RetroArch.

Some months later, and here we are – a bounty hunter valiantly took on the challenge and there is now a fully fledged AI Service up and running that works seamlessly with RetroArch!

You use the AI Service like this – you enable the AI Service (should be enabled by default), you then setup the server URL (could be a local network address if you have the server up and running in your own network, or a public IP/URL in case you’re going through a service). After that, you only need to bind a button or key to the so-called “AI Service” action. You can bind this key by going to Settings – Input – Hotkeys.

In this video, you can see each of the two modes that the AI Service currently is capable of doing –

Speech Mode – Upon pressing the AI Service button, a quick scan is done of the text, and the recognized text is then translated to speech. You can press the AI Service button at any time and it will try to process the current snapshot of the screen it made. This mode is non-interruptable, meaning the game will continue running when you hit this button, and the output speech will take as long as it takes for the server to respond to your query and pipe the sound to RetroArch.

Image Mode – In image mode, it tries to replace the text onscreen with the output text. For instance, in the video you see above, the game is played in Japanese, so when we hit the AI Service button, it tries to replace the Japanese text with English translated text. This mode is interruptable – this means that when you hit the AI Service button, it pauses the game and shows you an image with the replacement text UNTIL you hit either the AI Service hotkey or the Pause hotkey again, then it will continue playing.

We encourage everybody that wants to submit feedback to us on this amazing revolutionary feature to go to our Discord channel and in specific the retroarch-ai channel. We’d love to hear your feedback and we’d like to develop this feature further, so your input and feedback is not only appreciated but necessary!

Read the instructions on how to set this up here.

Also make sure to read our previous blog articles on this subject, available here.

RetroArch Disc Project

Real CD-ROM functionality is now included in RetroArch 1.7.8 for both Linux and Windows PCs. Please note that this functionality is far from finished and the performance you will be able to get out of this right now is very drive and OS-dependent. Generally it’s fair to say that Linux is the more fleshed out of the two platforms so far, and performance and reliability is best there for the moment.

The following cores have been updated with physical CD-ROM support:

  • Genesis Plus GX
  • Mednafen/Beetle PSX
  • Mednafen/Beetle Saturn
  • Mednafen/Beetle PCE/Fast
  • 4DO

We want to encourage people to test as many drives as possible that they have at their disposal, then report back to us on Discord (channel #discproject).

Also make sure to read our previous blog articles on this subject, available here.

RetroArch Android – now a hybrid 64bit/32bit build

Read this blog article here for more information on this important change. We apologize for the inconvenience but Google’s new store rules force our hand and it was necessary to add the 64bit version to the main release.

To be clear, the only place on which we can provide a 32bit-only version from now on will be our own site. Google’s rules on the Google Play Store requires each app to have both a 64bit and/or 32bit codepath, and on 64bit devices, it would auto default to the 64bit code, with no ability to switch to the 32bit version.

Enhanced core options

New core options: sublabels, localization support, selective hiding, etc.
New core options: sublabels, localization support, selective hiding, etc.

A big flaw of the libretro API was the lack of any internationalization support, or even just a sane way to add a default value without needing it to be the first in a sequential list.

Libretro and RetroArch now bode support for enhanced core options. Core options can now have sublabels, and they can be translated to every single language theoretically.

Core options can also be shown and/or hidden now.

Several cores have already received a Turkish translation of their options.

Audio device selection (Windows)

It is now possible to choose between available audio devices with the XAudio2/DirectSound/WASAPI drivers. You do this by going to Settings -> Audio and pressing left and/or right. You can also set audio_device inside your config file to either the index of the device or its actual name.

Multi-touch lightgun controls (Android/iOS)

With RetroArch 1.7.8, it is be possible to use your fingers as a lightgun on iOS and Android. Not only that, but it supports multi-touch too! (iPhone XS Max shown in this video) What you see here in this video is a demonstration of all the cores that include support for this new feature. The device being used here is an iPhone XS Max, and it’s plenty powerful enough to even run the likes of Mednafen/Beetle Saturn! Here is a list of the cores so far that support this (along with the systems they support):

  1. NES/Famicom (FCEUmm)
  2. Super Nintendo/Super Famicom (Snes9x)
  3. Sega Master System (Genesis Plus GX)
  4. Sega Megadrive/Genesis (Genesis Plus GX)
  5. Sony Playstation (Mednafen/Beetle PSX)
  6. Sega Saturn (Mednafen/Beetle Saturn) 7. Arcade (MAME)

Playlist Thumbnails Updater

This PR adds a new entry to the online updater: Playlist Thumbnails Updater

This opens a menu that displays all existing playlists. When one is selected, each entry of the playlist is scanned, and any missing thumbnails are downloaded.

This is a lighter alternative to using the huge thumbnail zip archives, and it should work on consoles etc. that have limited RAM. (It also saves disk space, since we only download what we’re going to use).

On-demand thumbnail downloading

This will auto-scrape thumbnails for a game when the user hovers over it inside a playlist. You can enable this option inside Online Updater and/or Settings – Network. NOTE: We have disabled this by default since this does do a HTTP request for every playlist entry that does not have thumbnails installed already.

Shader Usability Changes

Some bigger and some smaller changes have been made to shaders and the shader menu

You’ll notice the shader menu was tidied up a bit, all the save options are now in one “Save” submenu and new “Remove” options for auto-loading presets were added.

There’s a new option for a “global” auto-loading preset which, like you can imagine, applies to all content you load.

If you remember, shaders were actually saved automatically once they were loaded in the shader menu.

This had a lot of drawbacks, for example, it wasn’t really possible to have content which doesn’t use any shaders at all without having to turn shaders off completely.

It also meant that any content without any auto-loading preset would use the last menu-loaded shader, which was very unintuitive.

This is why shaders are now only saved manually, giving more control over what content uses which shader.

Under the hood, auto-loading presets have a new trick up their sleeves: the `#reference` directive

In practical terms, auto-loading presets can point to other presets, so if you load any shader preset or save it via ‘Save As’ and then immediately save it as an auto-loading preset, it will point to the original preset.

This is especially useful for presets you built yourself and are still tweaking, because you don’t have to resave them as auto-loading presets every time.

Saved shader presets now use relative paths, which make them portable across systems, allowing for easy sharing of your custom presets. Beware though: If you want to move presets into subfolders, the relative paths need to be readjusted as well.

If that was not enough, there is a also new `–set-shader` command line option, which works like an override for auto-loading presets.

With all these additions came one removal, which is the `video_shader` setting, because it didn’t really fit in into how auto-loading presets worked.

This is the basic gist of all the shader changes.

  1. The online documentation has been updated accordingly, you can find the new shader user guide here: https://docs.libretro.com/guides/shaders/

Miscellaneous

Read our CHANGELOG here.

  • New behavior for Escape key on keyboards – previously, pressing the Escape key would default to immediately exiting the program. Now, you need to press Escape (or any other key bound to “Quit RetroArch”) twice in order to quit. If you dislike this new behavior, go to Settings – Input and turn off ‘Press quit twice’.
  • If the user selects a core that requires a different video driver than the one he is currently using (for instance, the user is using the Direct3D 11 driver while trying to start a core that requires OpenGL), it will now warn the user about this after failing to load the core.
  • The following features have been enabled by default:
    • Per-content playtime logging – Last Played, How many hours/minutes played, etc.
    • Playlist sublabels, showing more information about each playlist entry.
  • Some refinements to the core loading system – after a core is loaded, it won’t show ‘Quick Menu’ until the core is actually running.
    • More refinements – when a core is running, the ‘Load Core’ option is hidden. The user needs to first select ‘Close Content’ before he has the ability to select another core from ‘Load Core’ again. This should lead to an overall stability increase in the program.
  • Ability to hand pick which settings categories get shown (Settings -> User Interface -> Views).
  • Windows/Linux/Mac: Better resizing of the menu graphics when resizing the window in windowed mode.
  • XMB: New settings that allow you to choose between a variety of fancy menu animation effects! Animation Horizontal Highlight, Animation Move Up/Down, Animation Main Menu Opens/Closes.

Core News – PUAE (Amiga emulator) and VICE (Commodore 64)

sonninnos and rsn8887 made a lot of improvements recently to two home computer Libretro cores.

PUAE Amiga core improvements

PUAE Amiga Core IK+
PUAE Amiga Core IK+
  • fix two player controls (sonninnos)
  • Implement new core options with some small print explanations (sonninnos)
  • Implement hotkeys for status bar and virtual keyboard that can be remapped instead of using hardcoded buttons (sonninnos)
  • Combining mouse speed indicator and other status bar indicators (sonninnos)
  • Allow starting the emulated Amiga without content (sonninnos)
  • Add many core options, such as a cycle exact option (sonninnos and rsn8887)
  • Allow to load any single, bootable .hdf hard drive file directly via load content (rsn8887)
  • Allow disabling the use of system/WHDLoad.hdf via a new core option (rsn8887)
  • Fix quickmenu->disk control options for swapping disks on the fly (rsn8887)
  • Change defaults to more sensible values (sonninnos)
  • Add Switch version of the core (rsn8887)
PUAE Amiga Core on Switch
PUAE Amiga Core on Switch

PUAE can play IK+ with sound FX on Nintendo Switch. Prince of Persia plays well too. These games don’t work on standalone UAE4all2. To enable sound fx in IK+, use model type A500 and turn off compatible mode in Quick Menu-> Options.

To swap disks, select Quick Menu -> Disk Control -> Append to insert a new disk in drive df0. When this option is selected, the virtual tray is opened, the disk is inserted, and the virtual tray is closed again. This all happens automatically. A new index number is also created. The disk becomes associated with that number. The cycle tray option ejects the current disk. When the virtual tray is open, one can change the index number in Quick Menu -> Disk controls to choose a different disk index. The menu remembers a history of all appended disks within one session, and assigns index numbers to each disk as you append them one by one. This is useful for games that keep asking for disk swaps back and forth. After manually opening the tray and selecting the next index to insert, choose cycle tray again to close the tray. M3u files loaded as content also populate the index values in disk control options.

New PUAE Options
New PUAE Options

The core automatically switches between Amiga 500 and Amiga 1200 hardware configurations in case the content filename includes (Amiga 500) or (Amiga 1200).

The touch mouse with single-finger tap-to-click and two-finger tap-to-right-click also works on Switch with this core.

Vice C64/C128/C16/Plus4 core improvements

Vice C64 Core on Switch
Vice C64 Core on Switch
  • update to latest Vice version 3.3 (Sonninos)
  • savestates (rsn8887 & sonninnos)
  • fixed Autosave states, it now works as long as some content is loaded (rsn8887)
  • allow holding directions to move more quickly across the virtual keyboard (rsn8887)
  • switched to new core options API, now there are small print descriptions below the core options (rsn8887)
  • more virtual keyboard themes, including some with more transparency (sonninnos)
  • reSID resampling setting, can be set to fast for extra performance, useful on Vita (sonninnos)
  • turbo fire with adjustable speed (sonninnos)
  • datasette control hotkeys (sonninnos)
  • allow using physical cursor keys even when cursor keys act as joy input (sonninnos)
  • allow physical return key to push a button on virtual keyboard (sonninnos)
  • virtual keyboard is much more responsive now, keys can be held down (rsn8887)
  • x64sc core (more accurate) on all platforms (sonninnos and rsn8887)
  • xpet core on all platforms (sonninnos and rsn8887)
  • xplus4 core on all platforms (sonninnos and rsn8887)
  • xvic core on all platforms (sonninnos and rsn8887)
  • x128 core on all platforms (sonninnos and rsn8887)
  • Automatic joyport switching when rom filename ends in _j1 or _j2 like on C64 mini. Only works with extracted roms (sonninnos)
  • Virtual keyboard themes (in tomorrow’s nightly)(sonninnos)
  • Add Display Borders option for larger game screens (rsn8887)
  • Add Autostart Warp option for warping between load command and run command (rsn8887)
  • Fix colodore palette, it didn’t work at all before (rsn8887)
  • Fix issues with on-screen keyboard keys sometimes not working or producing wrong input (sonninnos)
  • Properly implement Quick Menu-> Controls, now users can enable/disable joysticks there (rsn8887)
  • Remove confusing Retrojoy option, use quickmenu->controls to set input to joystick/keyboard/disabled now (sonninnos and rsn8887)
  • Properly use RetroArch system directory, instead of home dir or root folder (rsn8887)
  • Display four joystick inputs instead of two in statusbar (sonninnos)
  • Implement holding down Warp Mode hotkey, however it maxes out at screen refresh rate unless Vsync is turned off in Retroarch->Settings->Video (sonninnos & rsn8887)
  • Allow mapping buttons to blank (unmapped) in quickmenu->options (rsn8887)
  • Implement more logical hotkey mapping in quickmenu->options (sonninnos)
  • Fix problem with up arrow key producing Run/Stop input (sonninnos)
  • Revamp on-screen keyboard layout to fit on one page (sonninnos)
  • Make on-screen keyboard much easier to use: no need to press select anymore to enable dpad control, no need to move a mouse pointer (sonninnos)
  • Add Drive Sound Emulation and Drive Sound Volume options (sonninnos)
  • Aadd Reset option (sonninnos)
  • Remove obsolete Vice Menu GUI, because that can all be configured using core options now (sonninnos)
  • Automatically force drivetype on loading d71 or d81 content (sonninnos)
Vice Core Switch, Bruce Lee
Vice Core Switch, Bruce Lee
Vice C64 Save New York on Switch
Vice C64 Save New York on Switch

PSA: RetroArch 1.7.8 – Important changes for people using the Google Play build

Starting as of September, Google has started requiring app developers to update their apps with 64bit AArch64 support. Any app that fails to comply with this will no longer be able to upload any new APK to the Google Play Store.

Until now, the main RetroArch build has been built for 32bit ARM processors. This means that even on a 64bit device, if you were using this 32bit build, you would still have access to all the 32bit compiled cores.

This all changes now as a result. Under the new model, we are forced to build in both 32bit and 64bit support for the main RetroArch app. What this means is that 64bit devices will default now to the 64bit version, whereas 32bit devices will default to the 32bit version. It’s not possible to boot into 32bit mode for the Google Play Store version.

We unfortunately cannot do anything about this. What this means is the following:

  • Some of the cores available for 64bit ARM might lack a dynamic recompiler. As a result, cores like PCSX ReARMed and Picodrive might be significantly slower now as a result on a 64bit device. Fortunately, work is underway to backport a 64bit dynarec to PCSX ReARMed, and similar for Picodrive.

On the plus side, Aarch64 tends to have about a 10% performance boost in general for RetroArch vs. regular 32bit builds. So it’s not all bad news.

If you’d still like to use a 32bit only build, you can go to our buildbot and download the 32bit only version there. We just are not allowed to upload this version to the Play Store, since every app uploaded from now on has to work for 64bit as well.

Important news for people upgrading

If you are upgrading the app from 1.7.7 to 1.7.8, you might find that the core updater URL is still pointing to the 32bit cores, and you might find that a lot of the cores you downloaded will no longer work (because it boots you into 64bit mode now). 32bit cores cannot be ran on 64bit apps and vice versa. So, what you have to do is

  • First, make sure that you reset the Core Updater URL properly. Go to Settings -> Network, and scroll all the way down to ‘Updater’. Go to the entry ‘Buildbot Cores URL’, and long press. If done correctly ,it should reset the URL. Now exit the program and restart again.
  • From there, you will have to redownload the cores from the Online Updater.

Alternatively, if you don’t want to bother with all this, just reinstall the entire program from scratch, that way it will start out with sane defaults.

Other considerations

What this also means is:

  • The 64bit specific version on the Play Store is pretty much redundant now, and you might as well use the main Play Store version. We are unsure yet if we are going to delist the 64bit only version or have it remain up. Just know that it no longer serves a purpose.
  • RetroArch can now be built using Gradle/Android Studio. This should significantly reduce the barrier to entry for developers wanting to get to grips with RetroArch, but were unable to do so in the past as it required an old Android toolchain as well as tools like ant.
  • It might appear on Android TV soon for 64bit apps.

Hopefully this upgrade process will have as little bumps in the road as possible. We’re sorry for this inconvenience but this is really not our fault, and our hands are tied. As ever, if you want a 32bit version on your 64bit device, go to our buildbot, and download the latest dated version ending with ‘RetroArch_ra32.apk’.

Flycast – Progress Report -HLE BIOS – no longer requires external BIOS!

New version will be available later today on the Buildbot!

Flyinghead has significantly improved HLE BIOS support to the point where 90% of Dreamcast games (both regualr and Windows CE-based games) should now be supported! Previously, compatibility with the HLE BIOS was quite abysmal, to the point where we couldn’t justify enabling it by default. So this marks an important point where users are no longer required to go seek out an external Dreamcast BIOS and can just run a Dreamcast game out of the box without needing to setup a specific BIOS!

A couple of notes:

  • ‘HLE BIOS’ is now enabled by default. If you wish to disable it and rely on a real external BIOS, you go to Quick Menu -> Options, and disable ‘HLE BIOS’ there.
  • The ‘Fast GD-ROM Loading’ option right now doesn’t work with the HLE BIOS. Disable ‘HLE BIOS’ if you want to make use of this feature.
  • Previous savestates are no longer compatible with this current version. Later on, compatibility with these older savestates will be restored. We will let you know when that happens. Until then, we recommend making new savestates.

When do I get to use this?

Today! Updated versions of both Flycast cores (regular and Windows CE versions) are being uploaded to the buildbot as we speak, so you’ll be able to play with this later today if all goes well.

More progress

  • Flyinghead intends to merge the regular and Windows CE versions into one version come September. The inclusion of Windows CE/MMU codepaths should no longer slow down regular non-Windows CE games. On the contrary, SSA and lots of optimizations done for Windows CE will benefit the non-Windows CE games as well, so you can expect this universal version later on to be a bit faster.
  • This closed source emulator recently added support for this – flyinghead has already been able to match this in his branch. Like the other emulator, it should result in Street Fighter III 3rd Strike being rendered correctly, along with in-game screen adjustment being possible. It should be noted though that more regression testing is needed first because changes like these can have an adverse effect on other games that are currently being rendered fine, like Metropolis Street Racer. We rather suspect not enough testing was done to check for regressions in this other emulator since flyinghead was able to see a bunch of regressions as part of this feature being added, so we’d rather not jump the gun.

Open source Dreamcast emulation has seen a tremendous boost ever since flyinghead appeared on the scene. Whereas open source Dreamcast emulators seemed previously hopelessly behind something like Demul from a compatibility and accuracy perspective, right now it seems we are well on track to matching it save for Flycast not being able to emulate certain specialized arcade systems like Naomi 2, which are technically not really Dreamcast/Naomi 1 anyway but its successor.

So, right now, Flycast is in a very good spot:

  • It allows you to run Sega Naomi games. Only other emulators that support this are DEmul and Makaron (both closed-source).
  • It allows you to run Windows CE games. Only other emulator that supports this is DEmul (closed-source).
  • There are no limitations on savestates and internal resolutions, there is no paywall to speak of. Savestate support was added years ago.
  • Modem support. DEmul only supports Broadband Adapter support, but Flycast supports actual modem support (32K/64K models).
  • There is built-in zero configuration online multiplayer support, that works cross-platform with real Dreamcasts as well. Flycast is currently the only Dreamcast emulator available so far that supports this.
  • You can enable VMU support and configure where the VMU screen gets displayed onscreen. Up to 4 VMUs at a time can be displayed onscreen.
  • It has a work-in-progress HLE BIOS implementation that has about a 90% compatibility rate. It even works with Windows CE games.
  • It runs on 32bit systems as well as 64bit systems, and is available for x86 and ARM.
  • It has been available on Android and iOS for years now.

We might even add real CD-ROM support soon to it, so that it can run CD-R based backup discs!

 

 

Upcoming – RetroArch 1.7.8 – AI Service (Machine Translation / OCR / Text-To-Speech)

Written by Barry Rowe

What is the AI Service?

The AI Service lets you translate games, or add automated voice-overs capability in real time.  Instead of using a ROM patch, this is done by RetroArch taking a screenshot and then sending it to the AI Service listed in your config, which will do OCR (optical character recognition), machine translation, and/or text-to-speech.  The service will then return the result and will either be displayed on the screen, or played through the audio output of RetroArch.  As is the nature with AI though, accuracy can be an issue.  However, machine translation can give a good gist of what’s being said, especially for some language pairs, and text-to-speech can be of great benefit for accessibility.

How to set it up

See https://docs.libretro.com/guides/ai-service/ for a more detailed guide about how to setup the AI Service for your use case (translation or voice-over).  Any core using the RGB565 or RGB8888 pixel formats should work.  Cores using a hardware buffer however are not yet supported.  If you’re unsure if your core is supported, see the above documentation on how to check.  The main supported service is the vgtranslate project

Supported Services: VGTranslate, ZTranslate Service

VGTranslate ( https://gitlab.com/spherebeaker/vgtranslate ) is a lightweight server that you can run on windows or linux.  With it running, your RetroArch device can send its screen captures over your home network and the service will translate it and send it back to RetroArch.  This makes it possible to run the computationally expensive AI code off-device, so you can run translation on a Raspberry Pi or other device.  Local only translation is still in an experimental state, so using a Google Cloud key with VGTranslate is currently suggested.
It’s also possible to use an external service instead of running VGTranslate yourself.  ZTranslate.net has such a service listed in its documentation.

Caveats

Certain text will be easier to OCR than others.  Logos/title screens or very stylized text can be difficult for OCR engines to deal with, and some language pairs are easier to translate between than others.  Japanese-to-English in particular seems to be the most difficult use case, since OCR engines can have difficulty with Japanese pixel fonts on textboxes with transparent backgrounds.  Many games will work fine, but some may not work that well, depending on how the game draws the text.  Future developments will help improve this and expand the number of playable games with this feature.

RetroArch on Steam now coming sometime soon Q3 2019!

In order to do the Steam release justice, we have some infrastructure work remaining to do that will take more time. Our new release estimate therefore is sometime later this quarter. We will keep you updated on our progress.

The net positive of this is that we can ensure the release is more polished and that it will meet the user expectations of your average Steam user.

RetroArch 1.7.8 however is going to be imminent within the next two weeks.

RetroArch Disc Project – Alpha testing has begun! Details inside

Ever since the announcement earlier on June 30th, we have been working hard on the RetroArch Disc Project, and we are now getting to the stage where we want users to start alpha testing the latest code.

We invite you to come over to our Discord channel (also linked to on the RetroArch website – click on the tab ‘Discord’)- and join the channel #discordproject.

How to apply for alpha testing

For the purpose of this alpha test, we need you to meet the following requirements:

  • You are using the latest nightly versions of RetroArch (available here).
  • You are using RetroArch on PC, and are running either Linux or Windows with the CDROM support included.
  • Make sure the cores you are going to be testing are the latest up-to-date versions. Update them daily from the Core Updater if unsure – the cores should have physical CDROM support, otherwise the testing won’t work.
  • You have an optical disc drive (either USB or internal, any CD-ROM/DVD-ROM/BD-ROM drive should do).

Report issues you’re having with physical CDROM playback. Be as detailed as possible in your feedback – we are especially interested in which optical disc drive you’re using.

Be prepared that you might be asked by a moderator to run ‘retroarch_debug.exe’ and return a log message back to us in order to learn more about the issues you’re having. ‘retroarch_debug.exe’ is a debug executable that should be shipped with every RetroArch nightly version for Windows. For Linux users, we assume that they can build from source and compile with CDROM_DEBUG=1 manually in order to run these more detailed debug tests.

Compatible cores

Listed below are some of the cores that we added physical CD-ROM support to, and the ones that we would like you to test –

  • Beetle PSX (HW and non-HW)
  • Beetle Saturn
  • Genesis Plus GX
  • 4DO
  • Redbook Audio Player (Audio CD core)

We have also added support to more cores, but for now we want to go with these cores as they have been most extensively tested.

A couple of known edge cases:

  • Beetle PSX HW: The ‘vulkan’ renderer can exhibit issues where either the CD will not work, or some other corruption issue will manifest itself. We recommend you use ‘opengl’ or ‘software’ for now while you test CDROM.
  • Beetle PSX HW: Make sure the core option ‘CD Access Method’ is not set to ‘precache’. If you do, real discs won’t work.

How to load discs

1.You need to first start up the core itself (there is no automatic system detection yet when you insert a disc).
Go to Load Core, and select the core you want to use.

2. Once the core is loaded, select ‘Load Disc’.
3. It will now list all optical drives. Make sure the disc you want to use has been inserted into the optical drive tray and make sure the tray is closed. Then select the drive. The core will now start with your CDROM as input.

How to dump discs

RetroArch can dump discs to internal storage in bin/cue format. The video above will show you how.

  1. Select ‘Dump Disc’.
  2. It will now list all optical drives. Make sure the disc you want to use has been inserted into the optical drive tray and make sure the tray is closed. Then select the drive.

The disc will now be dumped to the ‘Downloads’ directory. It will continue showing the progress bar until the operation has finished. In the meantime, you can play any core/game (as long as it doesn’t involve real CD playback) until the dumping has finished.

Redbook Audio Player – Libretro core for music CD playback!

As a testbed for the Disc Project, we made a redbook audio CD player Libretro core!

You can grab this core for Windows and/or Linux by going to Online Updater, and downloading it from the list (Redbook Audio Player).

Known potential issues

  • Right now, CDROM works better on Linux vs. Windows.
  • FMV playback with Beetle PSX HW has the potential to be slow on some optical disc drives on Windows. Cause yet unconfirmed.
  • There is a known issue with redbook audio – the redbook audio track begins a few seconds later from its starting period.
  • Libcrypt copy-protected PlayStation1 games will not work right now, but any other copy-protected PlayStation1 disc should.
    Here is a listing of some Libcrypt-protected games from Europe: https://hastebin.com/ruyacahuba.http . You can generally assume these won’t work.

RetroArch coming to Steam this month – July 30

RetroArch will be releasing on Steam on July 30, 2019!

https://store.steampowered.com/app/1118310/RetroArch/

Read our release announcement here

So RetroArch is finally coming to Steam two weeks from now!

RetroArch is the official reference frontend of the popular Libretro API. While there is nothing particularly about RetroArch or the Libretro API that has anything to do with emulators, most do it use it for this purpose.

We want to grow our base and as of this month we have been putting a heavy focus into making sure that RetroArch can run originally bought content on game discs. There are further announcements to follow in the coming weeks, and we are open to dialogue with game developers/publishers that have the rights to original IP who want to bring their games over to Steam through the use of RetroArch.

Do note that RetroArch is an agnostic frontend/backend application that can be used to run modular programs. As such, it can run real games, media engines, and emulators, as long as these programs are converted/ported into modular pieces of software known as ‘Libretro cores’.

So, without further ado, here’s the details on our initial release:

  • Free.
  • Windows version first, Linux and macOS versions will release later. We’re a bit wary of the support burden that will come with a much wider audience, so we want to do the Windows version first to make sure we can handle the demand.
  • At the beginning, there will not be any difference between the version you can get on Steam and the one available on our own website. As such, no Steamworks SDK functionality will be present at launch or any additional Steam features. However, after the initial launch, we will begin exploring options on how we can start leveraging Steam’s functionality as a platform.
  • Release date will be approximately 30th of July.

RetroArch as a program serves as the fundamental backbone of many retro gaming machines out there in the wild. Even when it is not deliberately namechecked, chances are it’s running in the backend of said retro program. Same goes for its sister project Libretro. For instance, several programs available on Steam already, such as Grid Cartographer, and New Retro Arcade, integrate Libretro support to allow you to run the software that has been ported to the Libretro API. As for Libretro, this API is being leveraged by several retro gaming companies right now to serve as the backbone of their retro emulation services. Given all this interest and burgeoning activity, we feel now is the time to finally bring the official Libretro frontend to Steam. RetroArch is truly in a class of its own on a technical level when it comes to latency, shader features, and now soon-to-be disc loading and disc dumping. We can’t wait to bring you complete control over your retro gaming library coming this summer on Steam!

RetroArch – In Development – Touchscreen Lightgun for iOS/Android (iPhone XS Max shown)

With the upcoming new RetroArch version, it will be possible to use your fingers as a lightgun on iOS and Android. Not only that, but it supports multi-touch too! (iPhone XS Max shown in this video)

What you see here in this video is a demonstration of all the cores that include support for this new feature. The device being used here is an iPhone XS Max, and it’s plenty powerful enough to even run the likes of Mednafen/Beetle Saturn!

Here is a list of the cores so far that support this (along with the systems they support) –

  • NES/Famicom (FCEUmm)
  • Super Nintendo/Super Famicom (Snes9x)
  • Sega Master System (Genesis Plus GX)
  • Sega Megadrive/Genesis (Genesis Plus GX)
  • Sony Playstation (Mednafen/Beetle PSX)
  • Sega Saturn (Mednafen/Beetle Saturn)
  • Arcade (MAME)

RetroArch Disc Project – Disc dumping to internal storage now possible!

We’ve written about the RetroArch Disc Project some time ago. To refreshen your memory, we want to make it possible to play physical optical discs with RetroArch.

It is our full intent to ship an initial beta version of this in a future version of RetroArch (maybe the next one?).

So far, we have added CDROM support for the following systems:

  • PlayStation1
  • Sega CD
  • Sega Saturn
  • 3DO

Disc dumping

We’ve now added disc dumping as well! Go to the Main Menu, go to ‘Load Disc’. If you have more than one physical drive, you’ll see several disc drives. If no disk drives are detected, it will show nothing here.

Assuming you have a disc already inserted, select the disc drive menu entry and it should now start dumping your inserted media disc to RetroArch’s internal storage. During this time, you can go do something else while you wait for it to load. For instance, you can go load another core/game and just play it while waiting for the menu widget to finish.

By default right now, RetroArch will store all dumped CDROM images to the ‘Downloads’ directory of RetroArch. There might be more options for this coming up soon in the  near future.

Disc images are dumped in bin/cue format. Most of the dumped images work generally very well, but games which rely a lot on redbook audio might still have some random issues

RetroArch Netplay – FlyCast – Dreamcast Online Multiplayer gaming! Now with Windows CE support!

Flycast is an amazing Dreamcast emulator that is perhaps unique for having true zero-configuration online multiplayer capabilities! Flycast WinCE has recently gained support for zero-configuration online connectivity as well, but in this video we will first teach you how to input your ISP settings (most Dreamcast games that supported online multiplayer will require that you have set this up in at least one game once).

In this video (the first of a new series dedicated to online multiplayer gaming with RetroArch), we walk you through how to setup the ‘fake’ ISP online settings that allows you to connect to unofficial Dreamcast servers for the purpose of being able to netplay against other players in online multiplayer-enabled Dreamcast games. Note that Quake III Arena, NFL 2K2 and 4×4 Evolution are some of the only games that allow you to input these ISP settings inside the game itself.

Note also that all the settings you input can be bogus, but make sure the phone number is at least a fictitious 7-digit phone number. It can literally be ‘1234567’ for all we care here.

The online multiplayer is truly cross platform – you can play against other users that are using the standalone Flycast emulator instead of the Libretro core inside RetroArch, but you can even play against people playing with their real Dreamcasts (if they happen to use the same service). To learn more about Dreamcast Live, go to their website <a href=”https://www.dreamcastlive.net/connection-guide”>here</a>.

NOTE: Some games like Starlancer (Windows CE-based game) might require you to input Dial Account 2 as well inside ISP settings. In this video, you only see us setting up Dial Account 1.

Play! Libretro core (PlayStation2 emulator) ready for download on the Libretro/RetroArch buildbot!

So without further ado, upstream versions of Play!, the PlayStation2 emulator, are finally rolling out on the buildbot today!

Currently, the core is available and has been confirmed to run on:

  • Windows (64bit and 32bit)
  • Linux (64bit and 32bit)
  • Android

How to download it

Inside the main menu, go to ‘Online Updater’.

You might want to make sure first you have the latest info files by selecting ‘Update Core Info Files’ first.

From here, go to Core Updater.

Scroll down until you have found ‘Sony – PlayStation 2 (Play!)’. Download it. Go back to ‘Load Core’, and load it. Now go load a backup image file with it.

NOTE: Play! does not require any BIOS for you to dump, it uses its own HLE (High Level Emulation) BIOS.

What is Play! ?

Play! is a Work In Progress PlayStation2 emulator. Thanks to the great efforts of Zer0xFF, who took three days out of his busy schedule to port the emulator to the libretro API, we can start rolling out this emulator to our buildbot soon!

It must be stressed that Play! is a Work In Progress PS2 emulator, and we mean that literally. Don’t expect every game to run perfectly, far from it. However, it has a solid foundation and already has working dynamic recompilers for all the popular architectures, its value which cannot be understated. The libretro core also already has working savestate support.

System requirements

This core will require OpenGL on the desktop and OpenGL ES3 on mobile devices.

Your system should currently be as powerful as possible in order to get the best possible results. As time improves, system requirements will probably reduce.

Game compatibility is entirely dependent on the state of the upstream #Play! emulator. So as Play! improves, so too will the libretro core!

Help PlayStation2 emulation get better by supporting Play!

#Libretro is currently a Patreon backer of the Play! project, and we are very grateful to Zer0xFF from the Play! project for getting this port up and running in less than 3 days! Good open source PlayStation2 emulation deserves to get more funding, and we are happy to do our part. We hope you will as well!

Example video – running on RetroArch Android on a Samsung Galaxy S10+

Some example videos

Online support for Dreamcast Windows CE games coming soon in Flycast!

Online support for Dreamcast Windows CE games coming soon in Flycast!

Courtesy of flyinghead (the brains behind the last two years of Reicast development) – online support for Windows CE… coming soon in Flycast! Available as standalone and available as a Libretro core for use in RetroArch!

The screenshot you see above comes from 4×4 Evolution, a racing game that uses Windows CE on the Dreamcast.

Opensource Dreamcast emulation keeps going strong!

Also, flyinghead has recently fixed a bug on the Naomi side that prevented Gun Survivor 2 from working properly. Expect to see a video on that soon!

RetroArch Disc Project – Run real games off CD-ROM with RetroArch, starting with Sega CD, Sega Saturn, PlayStation1 and 3DO! Coming VERY soon!

So, we just announced the RetroArch Disc Project yesterday. We believe everybody that uses RetroArch and has a CD drive at their disposal should be able to run their own original discs on RetroArch.

We had initial plans of launching with just Sega CD, but a lot can happen in a day. So, without further ado, we’re going to show you our latest work in progress video of actual PlayStation1 games running off the original CD in RetroArch!

July 2: And then the day after, we added Sega Saturn and 3DO to the mix!

So what can you expect?

  • Expect a release of this VERY soon.
  • It will be Windows/Linux only for now. We have no plans right now for bringing it to other systems/platforms, but I’m sure the list of platforms that will have CDROM support will grow as we go on.
  • Expect this initial release to target PlayStation, Sega CD, Sega Saturn and 3DO games for now. If more systems get added to the mix, we will let you know in advance.
  • We are going to get Lakka involved in this from Day One.
  • Will things be perfect on Day One? No. But it will be pretty good for an initial release, and as ever with all things RetroArch, we move fast, and we will make speedy progress!

PS. In case you were wondering what happened to ProjectFuture, you’re looking at it!

Retrogaming should be affordable to all and available to all instead of locked behind overexpensive wasteful hardware. It is all built off the backs of opensource anyway, why should this be locked down again by any single company? It shouldn’t! Preservation and emulation should go hand in hand, and that means being able to run the original discs on open source emulators, on ANY device!

To the Raspberry Pi community and other SBC communities – go nuts with this when it hits!

RetroArch, runahead and Raspberry Pi 4 – the results are in

Thanks to a tester called Namanix, we can tell you in no uncertain terms that runahead with RetroArch works great on Raspberry Pi 4 for systems up to and including the GBA. With runahead configured right, you can get latency BETTER than the original console (on a CRT)!

I repeat again – with Raspberry Pi 4 and RetroArch, latency is NOT A PROBLEM thanks to runahead. You don’t need magic controllers or any fancy tech – but I’ll let the numbers speak for themselves.

  • Mario Kart Advance – VBA Next – 5 frames ahead – runahead – second instance – 65-75 fps
  • Super Mario Advance – VBA Next – 2 frames ahead – 2 instances – 86fps
  • Mario Kart Advance – VBA Next – 2 frames ahead – 2 instances – between 65 – 75 fps full speed
  • Mario Kart Advance – VBA Next – 2 frames ahead – 1 instance – 50fps
  • Super Castlevania 4 – Snes9x 2010 – 5 frames ahead – 1 instance – 68fps
  • Super Castlevania 4 – Snes9x 2010 – 5 frames ahead – 2 instances – 140fps
  • Sonic – Genesis Plus GX – 5 frames ahead – 2 instances – 125fps
  • Streets of Rage 2 – Genesis Plus GX – 2 frames ahead – 1 instance – 117fps
  • Super Castlevania 4 – Snes9x 2010 – 2 frames ahead – 1 instance – 100fps
  • Super Castlevania 4 – Snes9x 2010 – 2 frames ahead – 2 instances – 135fps

So, in other words, RetroArch and runahead is a done deal for NES, SNES, Genesis, and GBA on a Raspberry Pi 4. Better than console latency, better than on a real CRT. Put a fork in it, it’s done! All this for $50 tech, too. Kinda hard to beat in value.

Introducing the RetroArch Disc Project!

You bought all these old games on physical media decades ago. Why should you have to buy it all over again? Why, by that same token, should you have to buy expensive hardware by up and coming startup companies whose main selling point is just to be able to run your physical CD retro games again, but on expensive proprietary hardware built around open source software? Everybody with a CD-ROM drive and with DIY hardware should be able to do this! It’s the year 2019, this stuff should be commonplace and as accessible as drinking water from the tap!

That was our line of thinking when we set about creating the RetroArch Disc Project. We are adding physical CD-ROM support to RetroArch, and you will get to play around with an initial version of this VERY SOON! It will be a case of trial and error, and throughout this process, we will need your help as a community to tell us which CD-ROM drives work, which ones have trouble reading anything, we will need pull requests and code contributions. But we are convinced that at the end of this road, all of us will be finally liberated from the shackles of artificial restrictions surrounding our own legally bought copies.

So, to give you some brief idea of what to expect:

  • The initial version that we intend to release will be targeting Sega CD games for now. We have tested a few games and they seem to work.
  • Bugs might still happen as previously indicated. – There might still be Redbook audio issues, or they might just run fine.
  • We will be targeting Windows and Linux for now.
  • Based on our initial testing, you will have better luck with internal CD drives for now than USB-based CD drives. But your mileage may vary. That is why we need you involved in this project.
  • Games with copy protections will not run for now. Thankfully, they are in the minority.

What is our scope for the project:

  • Better compatibility
  • More system support. PlayStation1 is very likely next.

We hope this project will be a boon for anybody with an SBC (Raspberry Pi or otherwise) and/or anybody with their own desktop PCs! Let’s make RetroArch a platform where we can take our own physical CDs and run them as effortlessly as on the original real game consoles!

As ever, everything we do will be open source.

More to be unveiled soon! Stay tuned…

Play! libretro core already working! Will be on buildbot soon!

Play! is a Work In Progress PlayStation2 emulator. Thanks to the great efforts of Zer0xFF, who took three days out of his busy schedule to port the emulator to the libretro API, we can start rolling out this emulator to our buildbot soon!

It must be stressed that Play! is a Work In Progress PS2 emulator, and we mean that literally. Don’t expect every game to run perfectly, far from it. However, it has a solid foundation and already has working dynamic recompilers for all the popular architectures, its value which cannot be understated. The libretro core also already has working savestate support.

This core will require OpenGL on the desktop and OpenGL ES3 on mobile devices.

Game compatibility is entirely dependent on the state of the upstream #Play! emulator. So as Play! improves, so too will the libretro core!

#Libretro is currently a Patreon backer of the Play! project, and we are very grateful to Zer0xFF from the Play! project for getting this port up and running in less than 3 days! Good open source PlayStation2 emulation deserves to get more funding, and we are happy to do our part. We hope you will as well!

Note too that the PCSX2 core bounty is still alive and well, and can still be picked up by any developer willing to port it to the libretro API.

RetroArch – In Development – World-first text to speech in emulators – Update!

Earlier this month we showed you RetroArch’s world first text to speech implementation for emulators. You can read that previous article here.

Since then, this feature has been immeasurably improved. Onscreen character recognition and live text to speech translation is now done at the press of a button. You bind the AI Service key to a button or key of your choice, and as soon as you press it, a scan of the image will be taken in real-time. Any characters that were recognized as text will then be translated from text to speech.

In this video, we are running a local instance of vgtranslate on the same computer. This cuts down a lot on the latency you could perceive in the previous video. The other big difference is that the core no longer has to be paused manually and then unpaused to do the OCR scan – you now press a hotkey and the game continues running without any interruption. This provides for a much more smooth and seamless experience.

Shown in this video is a test run of several cores and games: Quake 1 with the Tyrquake core, Mega Man 4 with a NES emulator core, Trials of Mana/Seiken Densetsu 3 with a SNES emulator core, and finally Castlevania 3 with a NES emulator core. The OCR/text to speech system works with ANY libretro core that does not use hardware acceleration right now. So any core that doesn’t rely on OpenGL/Vulkan/Direct3D in order to function should be good to go.

Play! (PlayStation2 emulator) getting a libretro core

The PlayStation2 emulator Play! will be seeing a libretro port in the near future. We’ve reached an amicable agreement with two devs to make this happen. We’ll also be supporting their Patreon monthly from now on, just like we’ve supported other Patreon emulator creators for little over a month now as of this writing.

Note that this is separate from the PCSX2 core bounty, which is still ongoing and is still its own thing. We still need to find a bounty hunter for that one, though.

RetroArch – In Development – Touchscreen Lightgun for mobile devices!

With the upcoming new RetroArch version, it will be possible to use your fingers as a lightgun on mobile devices!

The first core you can see here with working support is Beetle Saturn, running at fullspeed in this video on an iPhone XS Max!

We will let you know which cores will support this feature as we get closer to the release of the next RetroArch version. Stay tuned!

RetroArch – In Development – World-first text to speech in emulators! OCR Bounty Progress!

The OCR bounty’s next milestone has been reached! Previously, it was finally possible to recognize patterns of text by the OCR/translation APIs. Now, text to speech has been achieved!

NOTE: This is a work in progress/development, and is not reflective yet of the actual finished product.

In this video, you see us running RetroArch with an old school SNES RPG, Soul Blazer. Right now, this is a very experimental implementation that is far from finished and not really ready for general gameplay, but this will be further developed from this point on.

Anyway, in this video you see us doing the following:

* Whenever we pause RetroArch, the OCR process starts. It will first attempt to recognize text onscreen.

* Once it has recognized text, you will see outlines onscreen surrounding the recognized text.

* Then it passes this off to the Translate Text To Speech engine. Once done, it generates a log message about it (you can see this in the video).

* From this point on, you can unpause RetroArch and you can actually hear the voice over.

NOTE: Just to emphasize, this is NOT how it will work like in the actual finished product. This is a purely ‘WIP developer’ video we’re showing.

Goodbye FBAlpha, Welcome FBNeo

Due to a “controversy”, all devs bar one from FinalBurn Alpha moved to a new fork called FinalBurn Neo. If you were using the FBAlpha core we recommend you move to the new FBNeo core by updating your core list and info files.

FBAlpha/FBNeo is a very active project with exciting features added regularly so it might be a good opportunity to talk about recent additions !

Support for Midway/Williams/Atari classics

A lot of people have been asking about them over the last few years, a lot of them are now playable !

Support for vector games

Tempest, Black Widow and other classic vector games are now playable too, some of them with resolution upscaling !

 

Support for Neo-Geo CD

Neo-Geo CD is now fully playable as a subsystem, including its exclusive title : Samurai Shodown RPG !

NB : this game was only available in Japan, but fan translations exist.

Other noteworthy improvements

  • Many of you might not know, but this core also supports a few consoles as subsystems, and it does it pretty well, recently we even added “Super Game Module” support for CBS ColecoVision.
  • Many control schemes were added to the core recently, you can now play with mouse, trackball or lightgun, there is also keyboard support for ZX Spectrum.
  • There was a major improvement to QSound emulation a week ago, now CPS1/CPS2 sound is clear as day. Actually there was also sound improvements for a lot of other games, leading to faster emulation and clearer sound.
  • There is now RetroAchievements support for popular arcade games, this implementation even added support for cheats as a side effect.

F.A.Q

Check our F.A.Q if you need help ! If your question isn’t already covered, ask on libretro’s forum.

You want to contribute ?

You are a coder ? You want to help the project ? Join us on our forum ! We are always happy to see new contributors. A few things we might be especially interested in :

  • Adding support for CHD.
  • Porting our MIPS3 dynarec to other archs, it’s only available for x64 at the moment.
  • Improving our TMS34010 CPU core, it’s still WIP and its developer can’t find the time to finish it.
  • Adding a SH3 CPU core, preferably interpreter+dynarec(s), if someone can do that we promise you support for cv1k (Cave 3rd generation board) in the near future.

Kronos 1.7.0 (Sega Saturn) – New renderer

Kronos 1.7.0 is now available on the buildbot ! The major change since 1.6.0 is a complete rewrite of the glcore renderer by its author FCare over the last 6 months, it allowed to fix a ton of graphical issues.

As usual, the emulator is a good alternative to beetle-saturn if your CPU isn’t fast enough, or if you want features like resolution upscaling.

The minimal requirement is still a GPU with OpenGL 3.3 support. On a sidenote, there are probably still issues with some Intel gpus, especially on windows, sadly the issue is clearly on Intel drivers’s side so we have no plans to search for a fix any further. However if there is an Intel gpu guru around, help is welcome !

One last exciting thing, writing a Vulkan renderer has been added to the roadmap, don’t ask for an ETA though.

RetroArch 1.7.7 – Released!

UPDATE May 11, 2019: RetroArch 1.7.7 has been updated again. This latest hotfix release should fix several crashing issues that could happen at startup on the 3DS and WiiU. It should also be a generally more stable release than the previous version. If you already downloaded RetroArch before May 11, be sure to download it again and upgrade your existing version!

RetroArch 1.7.7 has just been released! Grab it here.

If you’d like to show your support, consider donating to us. Check here in order to learn more.

Buildbot/release woes – and a new Patreon goal

On a special note, this release took several days due to our buildbot no longer being up to the task of being able to process all of these builds within a timely manner. We have set out a new Patreon goal that would allow us to significantly upgrade our rented servers so that release cycles don’t have to take 10+ hours anymore. Please consider pledging to our Patreon.

New tiers and perks

We have created new tiers, there is now a $1 tier that gives you a special Discord badge and access to a Patron-only Discord channel. The $5 tier gives you all the perks of the $1 tier including a special subflair on our RetroArch subreddit page. There is now also a $10+ tier, if you become a member of this, you can choose to have your name/nickname inserted into RetroArch’s Credits screen in future versions of the program.

So, we reiterate, the release could have happened this past weekend, but unfortunately, we were met with the stark reality of a buildbot that has long since outgrown its shoes, and we now need to throw better hardware at it in order to make it perform much faster. So we ask for your help in that endeavor.

Highlights

Experimental alpha version of UWP/Xbox One version!


NOTE: This is a pre-alpha version of RetroArch for UWP/Xbox One! Please be aware that the current product is far from polished, and that whatever you see here might not be reflective of the finished product later on. Our sole purpose for releasing this is that Dominater01 had already made a release and we felt it would be remiss not to share this with our users, regardless of its current level of polish.

To learn more about this, read this article here.

Desktop UI – Settings

Ever since its inception, RetroArch users on the desktop have been clamoring for a Desktop UI that would allow them to manipulate all of the settings available in RetroArch. The most often heard complaint was that it was cumbersome to change these settings with a gamepad. Of course, our intention is to have a unified UI that mostly works the same across desktop, game consoles and mobile phones, but a reasonable argument could be made that it was counterintuitive to force a desktop user to go through a gamepad-centric UI.

So, to address these criticisms, a few versions back we debuted a companion Desktop UI that can be invoked by pressing F5. This was step 1. We have made this process a bit easier now too for Windows users. You can now go to the menubar, go to ‘Window’ and then select ‘Toggle Desktop Menu’ in order to go to the Desktop UI.

Step 2 was adding an actual settings screen. This has now been done as of version 1.7.7. Thanks to the great efforts of CozmoP and also due to some refactoring on our end, starting as of version 1.7.7, RetroArch will finally allow you to change settings inside the nice and easy Desktop UI (that can be triggered at any time by pressing F5 on your keyboard).

NOTE: The Desktop UI is only available for Mac, Windows and Linux. The desktop UI is powered by Qt 5.

Menu widgets

In this video, you will see some of the widgets in action when:
* Taking a screenshot
* Downloading a core

But there are many more widget elements available, such as:
* Fastforwarding
* Rewinding
* Showing the framerate onscreen
* Achievement notifications

Etc.

This is all courtesy of natinusala. More widgets will be added in the future.

Generic message widget, shader previous/next hotkey

Achievement notification widgets

New OpenGL Core driver supports Slang universal shader spec!


A new OpenGL driver has been made that targets OpenGL 3.2 and up. And unlike the older GL driver, this one supports only slang shaders. This means that this OpenGL driver can now finally use the same shaders as Vulkan, Direct3D 10/11/12, and Metal. This marks an important milestone for us since we are well on our way to having a true universal shader spec now that can cross around graphics API barriers.

To learn more about this, read this article here.

Legacy OpenGL 1.1 driver for GPUs with no vendor-supplied drivers!

Up until now, RetroArch required at least OpenGL 2.x support on the desktop. If your GPU did not have a driver supporting at least OpenGL 2.x, RetroArch would simply not run with the OpenGL driver.

There are plenty of integrated Intel video cards that have no real OpenGL support on Windows 10, so they have to rely on a fallback driver provided by Microsoft called ‘GDI Generic’. This limits these cards to OpenGL 1.1.

Now, those inconvenienced users can still use the OpenGL 1.1 fallback driver. Do note that it will be impossible for shaders to ever work with this video driver – OpenGL 1.1 dates back to 1997. It would take until 2003/2004 before pixel and vertex shaders would become a standard feature of any video card worth its salt.

To learn more about this, read this article here.

RGUI – Particle effect animation system and numerous improvements

RGUI is a low-fi CRT-friendly raster-based menu UI that in the past has been kept purposefully minimalist.

jdgleaver has really taken the bull by the horns and significantly improved upon RGUI, to the point where it now has:

  1. Thumbnail support (with scaling support)
  2. Theme support
  3. Fancy particle animation effects
  4. Drop shadow icons for text
  5. Extended ASCII character support (for accented characters)
  6. Much-needed performance improvements

To learn more about this, read these articles here and here.

Menu framerate is now framerate independent

Previously, the menu would be capped at 60fps. Users acclimatized to higher refresh rates would find the 60fps update to be lacking when they are inside one of the fancy raster menus inside RetroArch (XMB/MaterialUI/Ozone).

The menu framerate in RetroArch is now framerate independent. So, for instance, if you’re using a 120Hz resolution, XMB will animate at 120fps, and you will see smooth animation with menu shader effects like the ribbon effect, snow, or bokeh.

When you’re running a game that is capped at 60fps, it will cap the menu along with it. But once the game with the lower refresh rate cap is loaded out of memory again, the menu should return again to that native framerate.

Menu Font text issues fixed on Android and macOS

Severe font text issues have been fixed on both Android and macOS. Languages like Japanese should now display properly on Android without any of the graphical bugs that appeared on earlier versions.

We are also now using STB_font unicode as our font driver for macOS and iOS, so for the first time languages like Japanese and other non-Western languages should finally be rendered properly.

Press Quit Twice To Exit

RetroArch traditionally exits the program immediately when you press the ‘Escape’ key on your keyboard. This has been one of the most commonly heard complaints usability-wise, so while this is an acquired taste, it’s understandable that some wouldn’t want the program to function like this.

So now there is a new option for those who dislike it – ‘Press Quit Twice To Quit’. Go to Settings – Input, and enable it. You will notice that when you hit the Escape key now to exit, it will remind you through a popup message first that you need to hit the key another time for it to truly exit.

Android phones: Vibrate on touch

You can enable this by going to Settings -> Input, and turning on ‘Vibrate on key touch’.

Your Android phone will vibrate every time you touch an UI element inside the menu or overlay. This could be useful in order to get a sense of tactile feedback from your button interactions while playing a game.

Automatically set the user language based on your system language

This is a new feature at first-time startup. Right now, it should work on Android, Linux and Windows.

When starting up RetroArch for the first time, it will check what your system language is set to, and then make RetroArch use that same language. This way, you don’t have to manually change your language after starting up RetroArch for the first time.

If you find that for whatever reason you want to use either another language or revert to English, you can go to Settings -> User and set Language back to English.

Changes for macOS

The macOS version ‘Apple macOS High Sierra (and later) with Metal2’ now requires Metal, the new graphics API. If your system does not have Metal support, it will not run. There is no backwards compatibility support for OpenGL, as Apple is fast-tracking the deprecation of this API and it might not be there for much longer. This version requires macOS High Sierra and/or later (10.13).

Please be aware that cores which rely on Libretro GL will not work with this version of RetroArch.

Conversely, there is also a separate build where OpenGL support is still a thing, but there is no Metal driver. This version requires macOS/OSX Tiger or higher (10.7).

And so much more…

We could write an entire book about all the new features we added to RetroArch 1.7.7. The list is so exhaustive, in fact, that we had to split this release blog post up into several mini articles in order to properly do justice to all of the major features and platform releases that have happened as a result of this release. We might go into some more of the standout features later on in a future blog post, but for now, below is the massive CHANGELOG of this release.

General changelog

– 3DS: Add unique IDs to prevent cores overwriting each other.
– 3DS: Fix screen tearing when running 50Hz content.
– ANDROID: We now target API level 26 (minimum is still API level 9).
– ANDROID: Add option to vibrate on touch (works in menu or overlay).
– ANDROID: Add device vibration option for cores that support rumble.
– ANDROID: Add gamepad vibration support for cores that support rumble.
– ANDROID: Allow stylus/pen to move mouse without pressing down.
– AUDIO: Avoid deadlocks in certain audio drivers when toggling menu sounds on.
– BLISS-BOX: Support PSX Jogcon (requires firmware 3.0).
– CHEEVOS: Fix crash when reading memory that is out of range.
– CHEEVOS: New Cheevos implementation enabled by default.
– CHEEVOS: Pop-up badges when an achievement is triggered.
– CRT: Dynamic super resolution support.
– DISCORD: Fix potential crash when username is empty and discord is disabled.
– DISCORD: Ask to join support for Linux.
– INPUT/ANDROID: Add “Input Block Timeout” option.
– COMMON: For platforms without HAVE_THREADS, don’t automatically resume content when saving/loading states
– COMMON: Make playlist sorting optional and consistent.
– COMMON: Fix sorting of playlists with blank labels.
– COMMON: Fix content scanner creating false positive playlist entries that also have wrong label and crc32.
– COMMON: Add some MMX-optimized pixel conversion routines.
– COMMON: Fix typo preventing some SSE2-optimized pixel conversions from being used.
– COMMON: Add option to track how long content has been running over time.
– COMMON: Fix buffer overflows in system information.
– COMMON: Add option to change screen orientation via the windowing system (Android, Windows, X11).
– COMMON: Show CPU model name in log.
– COMMON: Add “Help -> Send Debug Info” option (and F10 hotkey) to send diagnostic info to the RetroArch team for help with problems.
– COMMON: Show GPU device name/version in log.
– COMMON: Add menu option to write log info to a file.
– COMMON: Add subsystem support for playlists. Subsystem info is automatically saved to the history playlist for easy relaunching.
– GL: Add new “gl1” OpenGL 1.1 compliant video driver for legacy GPUs and software renderers
– GL: Add a new “glcore” driver with slang support (requires GL 3.2+ or GLES3).
– GL: Draw OSD on top of overlay.
– GONG: Add savestate support.
– GONG: Add video refresh rate core options.
– GONG: Two player support via core option.
– GUI: Fix text alignment when using stb_unicode.
– GUI: Fix text display issues when using Japanese (and other unicode-dependent language) text with stb_unicode.
– GUI: Set language on first startup to the user’s preferred OS language (Windows, *nix and Android).
– INPUT: Add (scaled radial) analog deadzone and sensitivity options.
– LIBRETRO: Add Turkish language support.
– LIBRETRO: Allow non-accelerated video to rotate the display.
– LOCALIZATION: Update Chinese (Simplified) translation.
– LOCALIZATION: Update Chinese (Traditional) translation.
– LOCALIZATION: Update Dutch translation.
– LOCALIZATION: Update French translation.
– LOCALIZATION: Update German translation.
– LOCALIZATION: Update Japanese translation.
– LOCALIZATION: Update Polish translation.
– LOCALIZATION: Update Russian translation.
– LOCALIZATION: Update Spanish translation.
– LOCALIZATION: Add new Turkish translation.
– MIDI: Fix startup crash in midi driver.
– MENU: Bugfix – you can no longer get stuck in Online Updater -> Update Core screen when toggling between ingame and menu.
– MENU: Selectively hide ‘Take Screenshot’ for video drivers that don’t support taking screenshots.
– MENU: Framerate independent menu rendering. MaterialUI/Ozone/XMB/RGUI can now run at higher framerates.
– MENU: Thumbnails work in history list.
– MENU: Menu widgets.
– MENU: Add memory statistics support to more context drivers.
– MENU: Enable ozone driver for UWP builds.
– MENU: Add optional “looping” menu text ticker with configurable speed.
– MENU: Fix core video rendering when using ozone with GL cores that implement the scissor test.
– MENU: Add optional playlist sublabels (associated core + play time, where available).
– MENU: Dropdown list settings now apply immediately.
– MENU: Add setting to require pressing the “Exit RetroArch” hotkey twice to confirm.
– MENU: Now able to run at higher refresh rates than 60Hz.
– MENU: Enable “Add to Favorites” without loading a core.
– MENU: Allow core name to be hidden on history/favorites playlists.
– MENU: Populate crc32 and db_name fields when adding history/favourites playlist entries.
– MENU: Fix TTF files not showing in OSD/menu font selection screen.
– MENU: Fix audio/video filters not showing in file browser.
– MENU/MaterialUI: Add subsystem support.
– MENU/MaterialUI: Add currently selected entry in dropdown menus.
– MENU/OZONE: Add mouse support on entries (no sidebar yet).
– MENU/OZONE: Allow collapsing the sidebar.
– MENU/OZONE: Add thumbnail support.
– MENU/OZONE: Battery notifications.
– MENU/OZONE: Add wifi icon for network entries.
– MENU/QT/WIMP: Add git version and build date to Help->About window.
– MENU/QT/WIMP: Fix content loading via the file browser.
– MENU/QT/WIMP: Add new settings window to control all RetroArch settings.
– MENU/RGUI: Improve playlist titles.
– MENU/RGUI: Add option to hide associated cores in playlists.
– MENU/RGUI: Add internal upscaling option.
– MENU/RGUI: Add subsystem support.
– MENU/RGUI: Add menu sublabel support.
– MENU/RGUI: Re-enable “Load Core” option when content is loaded.
– MENU/RGUI: Add optional “Collections” entry to main menu.
– MENU/RGUI: Add “Lock Menu Aspect Ratio” option.
– MENU/RGUI: Add “full width” layout option.
– MENU/RGUI: Ensure menu color theme is applied immediately.
– MENU/RGUI: Fix “Lock Menu Aspect Ratio” option when using custom viewports.
– MENU/RGUI: Add widescreen support.
– MENU/RGUI: Allow text to be centred when selecting widescreen layouts.
– MENU/RGUI: Add inline playlist thumbnail support.
– MENU/RGUI: Add optional shadow effects.
– MENU/RGUI: Performance optimizations.
– MENU/RGUI: Add optional extended ASCII support.
– MENU/RGUI: Add optional delay when loading thumbnails.
– MENU/RGUI: Add on-screen keyboard.
– MENU/RGUI: Battery notifications.
– MENU/XMB: Prevent crashes when resizing to a tiny window.
– MENU/XMB: XMB honors the ‘show menu sublabels’ setting now – was previously RGUI only
– NETPLAY: Fix stall-out causing total disconnection with >2 players.
– NETPLAY: Different (more intuitive?) default netplay share policy.
– NETPLAY: Add hotkey option to toggle hosting on/off.
– NETWORKING: Encode URLs to allow for spaces in directory names.
– OSX: Prevent crash on exit.
– OSX: Metal is now the default video driver for the RetroArch Metal build.
– OSX: Enable CoreAudio v3 driver for Metal.
– OSX/MACOS/IOS: Now uses the STB Unicode font driver.
– PS2: CDFS support.
– PS2: Implemented analog support for ps2 controllers.
– PS2: Fix audio freeze after restarting core.
– PS2: Fix issues with load state and the font driver.
– PS2: File I/O now works for USB and network host.
– PS2: Support cores with extra padding in their frame buffers.
– SCANNER: New option ‘Scan without core match’. When this is enabled,
supported extensions by all installed cores are not checked, and instead
it will add all content it finds to a playlist. This way, you can install the core you need later on after scanning. Not enabled by default.
– SHADERS: Don’t alphabetize shader presets.
– SWITCH: Add rumble support.
– SWITCH: Add USB keyboard support.
– VITA: Add bluetooth mouse and keyboard support.
– VULKAN: Fix color issues with RGBA8888 swapchains in readback (screenshots).
– WII: Don’t init overlay when RAM is beyond 72MB.
– WII: Skip CRC calculation on content load, can improve load times of larger games by several seconds.
– WINDOWS: Fall back to gl1 driver if accelerated GPU driver is unavailable.
– WINDOWS: Allow winraw and xinput to work without dinput (needed for WinRT).
– WINDOWS: Add MSVC2017 ARM desktop support.
– UWP: Fix rewind by opting for slower codepath.
– UWP: Fix relative path name issues when loading shaders.
– UWP: Optimizations for VFS system.

RetroArch 1.7.7 – Experimental alpha version of UWP/Xbox One version!

NOTE: This is a pre-alpha version of RetroArch for UWP/Xbox One! Please be aware that the current product is far from polished, and that whatever you see here might not be reflective of the finished product later on. Our sole purpose for releasing this is that Dominater01 had already made a release and we felt it would be remiss not to share this with our users, regardless of its current level of polish.

PLEASE BE AWARE, THIS IS A ROUGH DRAFT OF RETROARCH AS A WINDOWS 10/XBOX APP. THE FINAL PRODUCT WILL BE MUCH BETTER AND IN NO WAY IS THIS REFLECTIVE OF THE QUALITY OF THE FINAL PRODUCT.

We ask for your patience while testing this; you might find file system performance lacking and some manual steps might need to be performed that are obviously not user friendly. Do note that we are very conscious of these current limitations and we hope to have them resolved in future versions.

Where to get it

Go to our RetroArch Downloads page.

For Windows 10 PCs, go to the Windows 10 logo and download both the certificate and the .appx file.

For Xbox One users, just go to the Xbox One logo and download the pre-alpha.

NOTE: This won’t replace the regular Windows version on PC. For regular PC users, the UWP port is nothing but a downgraded/gimped version of our main Windows version. You can use this version for academic purposes, but I would not recommend using it primarily on Windows.

Running this on PC

1. Download and extract this version of RetroArch on your PC.

2. Make sure you download the certificate too, you will need it immediately afterwards –
Download certificate here.

3. First, make sure that you can actually install Windows/UWP apps from outside the Windows Store. Go to Settings -> Applications. At ‘Installing Apps’, select ‘Allow apps from anywhere’. In case you’d prefer it to be limited to Store-only apps, you can change this back later after you have finished these instructions and installed RetroArch already on your PC.

Created with GIMP

4. Now we need to install the certificate that we downloaded in step 2. Double click on it.

5. Click on ‘Install Certificate”.

When you are at this screen and it asks for any dependencies, you might have to add this file :

Microsoft.VCLibs.x64.14.00.appx.

6. A Certificate Wizard will now appear. Of the two questions, select “Local Machine”.

7. Check ‘Place all certificates in the following store’, click on ‘Browse…’, and select ‘Trusted Root Certification Authorities’.

8. After we have verified that the certificate is successfully installed, we start up RetroArch.appx. If an app identical to this was already installed, you would not be able to install this program right now. As it is, click on ‘Install’.

Running this on Xbox One

1. Download and extract this version of RetroArch on your PC.

2. Go to your Xbox. Make sure you have changed your Xbox to ‘Developer Mode’ (see here for more information on how to do that).

3. On the Developer home screen, go to “Remote Access Settings” and enable Xbox Device Portal. You might have to setup a username and password as well. You can do this by selecting Remote Control settings.

When you connect to the IP on PC and you see this page, make sure to click ‘Show Advanced’ and click ‘Proceed’.

4. Go to the Device Portal on your PC. This is the IP of your xbox one (it will show up on the Developer home screen) (if its being picky do this https://ip:port)

5. Goto “Add” on device portal and choose the .appxbundle (see step 1) then hit next

6. Goto “Choose File” if there are any dependency files needed (you will have to install all files one at a time) then hit next.

7. It will install. After this is finished, you can go to the Xbox One and run RetroArch.

8. You should now be able to run RetroArch UWP on Xbox One.

Compatibility list

Dominater01 has made a Google Spreadsheet compatibility list for RetroArch on Xbox One.

First-time setup procedures

As has hopefully been stressed before, this is a very early version of RetroArch for UWP devices. As such, the first time you start it up, you need to do some first-time configuration before everything looks properly and is ready to go.

In this video, you can see the first-time setup procedure – it is the same for both Xbox One and Windows 10 –

Set type of RetroArch App on Xbox One to ‘Game’ in order to get faster USB disk access

By default, any app you install gets assigned with type ‘App’. In order for RetroArch to become much quicker at accessing USB storage, we will need to change it to ‘Game’.

Be aware that after making this change, you will need to reboot your Xbox One for the changes to take effect. Otherwise you might run into issues.

NOTE: You will only be able to use USB 3.0 HDDs/storage on Xbox One.

Gain access to files beyond the sandbox

By default, your level of access to the filesystem with an UWP app is limited to the basic sandbox directory your app lives in. This is of course far too limiting for most RetroArch users, so to enable full filesystem access, go to Load Content, and then select ‘Enable external file access’.

You will be presented with a screen looking like this:

Go to ‘Choose Which Apps Can Access your file system’ and make sure that RetroArch is enabled there. This dialog screen might then close, and you might have to restart the program again.

What works

  1. Fully working Direct3D 11 driver
  2. Menu drivers like XMB/MaterialUI/Ozone/RGUI work as you would expect.

Already known issues

  1. Very slow filesystem performance.
  2. [Core issues] Closing content when running a PSP game with PPSSPP crashes RetroArch.
  3. [Core issues] Loading savestates on the PCSX ReARMed core crashes.
  4. [Core issues] Dolphin Core doesn’t work.
  5. GL Cores aren’t compatible/loadable (this is because only Direct3D 11 is being used right now, and we arent’ using ANGLE right now).
  6. RetroArch on Xbox One won’t highlight the text on the onscreen keyboard unless set to a white background.
  7. Having the rewind feature on slows the PCSX core
  8. Setting directories to USB by default isn’t saving correctly.
  9. Scanning content currently does not work.
  10. Leaving retroarch idle for hours crashes.

RetroArch 1.7.7 – Legacy OpenGL 1.1 driver for GPUs with no vendor-supplied drivers!

Brad Parker wrote an OpenGL 1.1 driver for RetroArch 1.7.7.

Who would need this?

The state of OpenGL support on Operating Systems like Windows can be quite abysmal if you happen to have an integrated Intel GPU, especially if you happen to be running Windows 10.

Intel doesn’t supply its own OpenGL driver for a lot of its older integrated graphics cards.

Some examples can be found on this list.

When your graphics vendor does not provide its own driver for the graphics API you’re using, often times it will default to Microsoft’s own driver, “GDI Generic”.

Up until now, RetroArch required at least OpenGL 2.x support on the desktop. If your GPU did not have a driver supporting at least OpenGL 2.x, RetroArch would simply not run with the OpenGL driver.

Now, those inconvenienced users can still use the OpenGL 1.1 fallback driver.

What do you lose in the process?

  1. No shader support
  2. No ability to run OpenGL libretro cores (they historically target OpenGL 2.x/OpenGL ES 2)

How to use it

RetroArch 1.7.7 for most traditional platforms will default to the “gl” driver. However, it will detect if your GPU supports OpenGL 2.x or not. If this is not the case, it will write “gl1” to your settings file and then exit the program.

Once inside RetroArch, go to Settings – Drivers. Go to Video Driver. Select ‘gl1’. After this, go back to the main menu inside RetroArch, and select ‘Quit RetroArch’.

What platforms are supported as of v1.7.7?

So far, the Windows and Linux builds come with the GL 1.1 driver.

It’s enabled for:

  1. Windows
  2. macOS (PowerPC/Intel)
  3. Linux

RetroArch 1.7.7 – New OpenGL Core driver supports Slang universal shader spec!


When RetroArch added support for the Vulkan graphics API back in 2016, we made a new shader spec that was intended to replace the older shader specifications like Cg and GLSL moving forward.

The problem at the time was that only the Vulkan video driver could make use of these shaders. Therefore, if you were using the OpenGL video driver, you could not use the slang shaders but had to resort back to GLSL (or even Cg). This made it cumbersome to switch between video drivers, say starting one game/core that uses OpenGL, then switching back to Vulkan to start another core that uses Vulkan. You couldn’t just load a shader preset for one of the two and expect that to work as well for the other core with a new video driver.

A new OpenGL driver has been made that targets OpenGL 3.2 and up. And unlike the older GL driver, this one supports only slang shaders. This means that this OpenGL driver can now finally use the same shaders as Vulkan, Direct3D 10/11/12, and Metal. This marks an important milestone for us since we are well on our way to having a true universal shader spec now that can cross around graphics API barriers.

List of video drivers supporting slang

Here is a listing of video drivers that support slang in RetroArch:

    1. OpenGL (Core – requires 3.2 or higher)
    2. Vulkan
    3. Metal
    4. Direct3D 10/11/12
    5. WiiU

How to use it

In order to use this video driver, you need to have a GPU with modernday OpenGL drivers. By default, RetroArch starts out on most platforms with the regular GL driver, which requires OpenGL2. We will therefore have to switch over manually to GL Core in order to use it.

Once inside RetroArch, go to Settings – Drivers. Go to Video Driver. Select ‘glcore’. After this, go back to the main menu inside RetroArch, and select ‘Quit RetroArch’.

What platforms are supported as of v1.7.7?

So far, the Windows and Linux builds come with the GL Core driver. macOS might follow later for OSX 10.7 and up.

The GL Core driver is OpenGL ES 3.x compatible, so a port to mobile devices is not inconceivable. We would certainly like to see this driver appearing on Android and iOS.

If for whatever reason your GPU or driver does not supper OpenGL 3.2, RetroArch will quit and set your video driver to “gl”. You will then just have to restart the program in order to boot with the regular OpenGL 2 driver.

Important

Future plans/current limitations

    1. The glcore driver does not support GLSL or Cg shaders, only slang. If you still need to use such shaders, you have to go back to the older OpenGL video driver.
    2. We’d like slang to appear on even more platforms, such as the Microsoft Visual Studio builds below 2012. What prevents this from happening is the usage of C++11. Slang as a shader spec leverages several technologies such as the excellent SPIRV-Cross and glslang, both of which are also C++11 projects. Now, SPIRV-Cross has a C API, so this could be a potential solution towards making a wholly C based solution so that slang could appear in more builds. However, the C API for glslang has been abandoned and deprecated for one or two years. So after 1.7.7, we will have to research alternatives such as Google’s shaderc (which is supposed to still have a C API), and hope they will allow us what we want to do – have wholly C code for the slang shader code for the sake of backwards compatibility and being able to port it to more platforms.

Links

Developing Slang Shaders

BeetleDC WinCE Libretro – Experimental core released!

Courtesy of flyinghead, today we’re releasing a special version of BeetleDC with Windows CE support enabled! Our reason for releasing this is that we want users to report back as many issues as possible so the kinks can be ironed out.

What’s this about?
Windows CE was an option available to Dreamcast developers that made it much easier to port their game from PC to Dreamcast. Windows CE is/was a subset of Win32, stripped down so that it could be used on low-powered embedded devices instead of expensive desktop computers. PC developers that were used to dealing with DirectX on Windows PC could easily convert their game over to Dreamcast using Windows CE. Hence why you saw a lot of ports at the time from PC-centric western developers that would normally not touch game consoles.

Windows CE emulation (or rather, full MMU support) has been one of the biggest things missing from open source Dreamcast emulation up until now. It is often not enabled in main builds because emulating it requires emulating the MMU (Memory Management Unit) of the Dreamcast, which makes emulation much slower. So far, only Demul (a closed-source Dreamcast emulator) has something resembling full MMU support.

Now finally, open source is beginning to catch up. About time. Dreamcast is over 20 years old at this point, the people that grew up with it are all getting older as time goes on, and it shouldn’t taken another 10 years for all of this stuff to be properly preserved and documented. Flyinghead has done an absolutely incredible job over the past year or so in singlehandedly turning BeetleDC from something that was worse than nullDC in compatibility and graphics accuracy into the closest we have to an actual competitor to Demul, and we couldn’t be more happy with that. He spent a lot of time in making sure this release was ready today, and we hope you will put it through its paces.

How to get it

1) First, make sure that you have all core information files installed. Go to RetroArch’s main menu, select ‘Online Updater’, and select ‘Update Core Info Files’.

2) Go to ‘Online Updater’ -> ‘Update Cores’. Scroll down the list until you reach ‘Sega Dreamcast/NAOMI (BeetleDC WinCE)’. Install it.

System requirements

BeetleDC WinCE has higher system requirements than the regular version. The most important things you need to know:

  1. You can only expect borderline acceptable performance right now on PC x64 systems. ARM64 and ARM 32bit will likely be too slow at BeetleDC WinCE to be playable.
  2. The Linux x64 version right now is the fastest of them all. The macOS x64 version should also be comparable in performance.
  3. The Windows x64 version is currently much slower than the Linux/Mac versions.

Consider this core a work-in-progress. Bugs are to be expected, fairly demanding requirementsare likely to be expected for now. Things can only get better from here.

Compatibility

Below is by no means an exhaustive list of all games on Dreamcast that used Windows CE under the hood, along with their current playable status in Beetle WinCE at the time of this writing.

The most complete listing we found so far of Dreamcast WinCE games can be found here.

4×4 EvolutionPlayable
Name Status
Atari Anniversary Edition Playable
Armada Playable
Bang! Gunship Elite Playable
Bust-A-Move 4 Playable
Caesars Palace 2000: Millennium Gold Edition Playable
Championship Surfer Playable
Ducati World Racing Challenge Issues
Half-Life Playable
Happy Lesson Playable
Hidden & Dangerous Playable
KISS: Psycho Circus: The Nightmare Child Playable
Kita e. White Illumination Playable
Maximum Pool Playable
Midway’s Arcade Greatest Hits Volume 1 Playable
Midway’s Arcade Greatest Hits Volume 2 Playable
Nightmare Creatures 2 Playable
Q*bert Issues
Railroad Tycoon II Playable
Railroad Tycoon II (PAL) Playable (set Broadcast to PAL)
Resident Evil 2 Playable
Sega Rally 2 Playable (DIV match must be disabled)
Sno-Cross Championship Racing Playable
South Park: Chef’s Luv Shack Playable
Spirit of Speed 1937 Playable
Starlancer Playable
The Next Tetris Playable
Tomb Raider: The Last Revelation Playable
Tomb Raider Chronicles Playable
Tom Clancy’s Rainbow Six Playable
Virtua Cop 2 Playable
Wild Metal Playable
Who Wants To Beat Up A Millionaire Playable
Worms Armageddon Playable (DIV match must be disabled)
Worms World Party Playable

Notes

  1. Many Windows CE games are region-sensitive. Make sure to set the region and broadcast to the right ones – as most Windows CE games won’t run in a different region (although Default might often times work fine). You can change these settings by going to Quick Menu -> Options.
  2. If performance is lacking, try the Threaded Renderer, this can really help. You can enable or disable this by going to Quick Menu -> Options.
  3. Some Windows CE games will flat out not run if DSP is not enabled. So in case a game doesn’t work, try first turning that on.
  4. Enabling DIV matching can lead to some Windows CE games outright not working. As a general precaution, we advise that you leave DIV matching off. Sega Rally 2, for instance, requires that you leave DIV matching off.
  5. Other enhancement/hackish features, like Fast GD-ROM Loading, are best left off in case you experience compatibility issues.

Screenshot gallery

Videos

Check out these videos by flyinghead –

A website to browse the libretro database – db.libretro.com

A new website is now available at db.libretro.com.

db.libretro.com is an online database of video games. It is generated from the exact same game database that is used in RetroArch for scanning your game collection.

Compiling a database of all the existing games is not an easy task. Thanks to the hard work of no-intro and other preservation teams, libretro-database was started on a very solid basis. However, as we are adding more and more sources of games, maintaining a high level of quality has become a challenge.

We hope that this new tool will have a positive impact on the overhaul quality of libretro-database and libretro-thumbnails which is tightly related. It is primarily intended as a visualization and debug tool for the database maintainers and contributors.

With a little bit of effort, it could become an important pillar of the preservation of the video game history.

RetroArch 1.7.6 – Released!

RetroArch 1.7.6 has just been released! Grab it here.

If you’d like to show your support, consider donating to us. Check here in order to learn more.

NOTE: Currently the following versions have not yet been released – Xbox OG and OSX PowerPC. We will keep you up to date on Twitter and update this blog post accordingly.

Highlights

PlayStation2 port – now available!

RetroArch has been ported to the PlayStation2 by fjtrujy, and starting as of version 1.7.6 you can already try it on your own homebrew-enabled PS2!

A couple of cores have been included as part of this initial release:
* 2048
* FCEUmm (NES emulator)
* QuickNES (NES emulator)
* Picodrive (Mega Drive/Genesis/Master System emulator)

NOTE: To run Picodrive and FCEUmm at fullspeed, you need to set Vsync to off. QuickNES will be fullspeed with vsync on.

How to use it on a PS2

You will need a PS2 capable of running homebrew programs. For the purpose of this quick step-by-step tutorial, we are going to assume you are using something like FreeMcBoot.

  • Start up your PS2.
  • Go to a file manager such as LaunchELF.
  • Take a USB stick, and extract the contents of RetroArch_elf.7z for PS2 to your USB stick. Insert the USB stick into your PS2.
  • Inside LaunchELF, navigate to mass:
  • Start up any of the ELF files depending on the core you want to use.

PlayStation4 port (public release TBD)

RetroArch has been ported to PlayStation4 by Frangarcj, Big Boss and others!

A few cores have been ported and have been confirmed running already, such as SameBoy and 2048.

The PlayStation4 port is using a homebrew SDK called liborbis, and thanks to this SDK we are able to use OpenGLES 2 on the PS4. This means that from Day One we have a fully functioning GL driver and working XMB/MaterialUI/RGUI drivers. It also means that OpenGL hardware accelerated cores should be possible.

Frangarcj wants to wait with a public release until OELF format support has been added to the SDK, so until then we will ask for your patience. It might be possible to provide you with a compilation guide in case you want to build it for yourself later on.

NOTE: In order to use this RetroArch port, you will need a PlayStation4 system that has been jailbroken. Right now this means your system should be on either firmware 4.55 or firmware 5.05.

Xbox One port (public release TBD)


RetroArch has been ported to the Xbox One courtesy of krzys_h! While we want to wait a while longer before we do a public release, we do want to let you know that unofficial builds are already available on the Internet, and it’s up to you to try them out to check the current state of development.

To be specific, the Xbox One port has been made possible as part of a larger endeavor to port RetroArch to Microsoft’s UWP platform. This means it can now function as a Windows 10 UWP app as well as a Xbox One app.

The Xbox One port of RetroArch uses a Direct3D 11 driver (Direct3D 12 for whatever reason turned out to have worse performance, so we aren’t using that). It is already running out of the box with full menu support such as XMB/MaterialUI. Full shader support is provided, and most slang shaders work fine out of the box.

So, to keep a long story short, check some of the unofficial builds out there. In order to use RetroArch on your Xbox One, you simply need to buy Developer Activation from Microsoft, which should only cost you about 20 dollars/Euros (it might even be free right now as part of a special discount going on). You do NOT need to jailbreak your console or anything, which makes RetroArch a very feasible option for the layman on Xbone. Do note that if you want to use RetroArch, you will have to restart into Developer Mode. When you want to go back to playing regular games, you will need to restart again into Retail Mode. This is the only inconvenience to the process.

RetroArch in its full-fat form would not be possible to be published on the Microsoft Store given all the console emulators. A neutered version bereft of all its emulators might be possible to be published, but it’s debatable how many people would be truly interested in that right now. So, Developer Mode is the best compromise/alternative for now.

NOTE: In case you try any of the unofficial builds, do note that one of the reasons we are not releasing a public build yet ourselves is that there are currently some slow file loading issues that we’d like to resolve first.

Apple TV/tvOS port

RetroArch has now been ported to Apple TV/tvOS courtesy of yoshisuga!

Right now it is using the OpenGL video driver for rendering and it’s using the Ozone menu driver by default. Support for Metal is planned, and there are some other developers that have an interest in making that happen as Apple has already begun deprecating OpenGL as of the latest Xcode SDKs.

How to use/install

The following is a non-developer guide to install RetroArch on non-jailbroken iOS devices. We’re going to try to improve the process and possibly include the iOS cores in a download, but until then, here is a way to build RetroArch to get it running on your iPhone, iPad, or Apple TV –

https://docs.libretro.com/guides/install-ios/

Ozone – new menu driver

Written by author natinusula

Created by natinusala, ozone is a new menu driver based on the Nintendo Switch’s user interface, look and feel. It has been developed completely clean-room. In the works since last September, it is finally ready to be used as a daily menu driver. Don’t forget to update your assets!

This new menu driver features a sidebar where you will find the tabs you already know from XMB: Main Menu, Settings, Favorites, History, Netplay Rooms, Import content and all your playlists. You can use the left / right keys to navigate between the main entries and the sidebar. The driver also displays the time and battery level in the status bar, if applicable. Finally, the virtual keyboard has been redesigned to look more like the one of the Switch’s operating system.

The driver has two different themes, a light one and a dark one. The configuration will default to the dark theme, but you can select which one to use in Settings > User Interface > Appearance > Menu Color Theme. On the Switch, the system theme will automatically be used, how handy!

ozone is available on all platforms with hardware acceleration (assuming you use the correct video driver), and is even selected by default on the Switch platform. If your device supports XMB and GLUI / MaterialUI, it will support ozone, the only exception being Android (see the missing features below). You can even use it on Lakka if you want!

The driver is ready to be used, but it still lacks some features such as:
– thumbnails display (both playlists and save states)
– DPI scaling (the menu will look super tiny on a 4K monitor, and super big on a 360p screen)
– touch and mouse support
– portrait layout (for mobile phones)

All those features will be added over time. Nice things are planned for the future of ozone!

RGUI improvements

Written by author jdgleaver
RGUI now has a new ‘theme preset’ configuration file format (e.g. my_theme.cfg). This has the following contents:

rgui_entry_normal_color = “0xAARRGGBB”
rgui_entry_hover_color = “0xAARRGGBB”
rgui_title_color = “0xAARRGGBB”
rgui_bg_dark_color = “0xAARRGGBB”
rgui_bg_light_color = “0xAARRGGBB”
rgui_border_dark_color = “0xAARRGGBB”
rgui_border_light_color = “0xAARRGGBB”
rgui_wallpaper = “wallpaper_file.png”

This also adds wallpaper support. rgui_wallpaper is the (relative) path to a suitable wallpaper file. If it is omitted (or left empty), no wallpaper is used. Wallpaper files must have the following properties:

– A resolution of exactly 320×240.
– They must be pre-converted to a reduced colour depth of 4 bits per pixel.

(NB: Normal background/border colours are still used for message boxes and the title background when showing thumbnails – it looks better this way!)

Theme preset files can be loaded via a new ‘Custom Menu Theme Preset’ option under ‘User Interface > Appearance’. They are enabled by setting ‘Menu Color Theme’ to ‘Custom’.

A small collection of themes have been added as assets. Here are some screenshots of what the included .cfg files look like:

Desktop UI improvements

Detailed file browser

Drag and drop for thumbnails

Discord matchmaking

It is now possible to use our Discord server for matchmaking purposes!
We will describe the process from the perspective of using Windows on PC (on Linux/OSX you can ignore step 5, you will need to continue to start RetroArch before launching the Discord application, otherwise it will not work)
NOTE: Discord matchmaking will not work through the webbrowser. You will need to use the Discord desktop app instead.
NOTE2: Port forwarding needs to be enabled on your router for this to work.

1) Make sure first that the game you want to play with a friend has already been scanned and is inside a playlist. Alternatively, you have to make sure the game is in your Recent History list.
2) Start RetroArch first before launching the Discord desktop application.
2) Make sure that you have the core that the person you want to play with is using. You can tell this by going to their Discord user handle and clicking on them. You will see the core’s name and the game that is being played.
3) Click on the button ‘Ask to Join’.
4) A message will pop up now ‘waiting for user’s game’. If all goes well, the game will start up now and you can play a netplay game with your friend.
5) (Windows only) From now on, you no longer need to start up RetroArch before launching the Discord desktop client. You can just select ‘Ask to join’ and RetroArch will automatically start up.
The Discord matchmaking will also automatically use your Discord username for the game session.

And more

There’s lots more to talk about in this release, but that will be it for now. We might release some followup blog posts in the upcoming days that will go into more detail on some of the other features that have not really been covered during this blog post.

You can also expect further blog posts about important new core updates.

General changelog

– ANDROID: Fix Xperia Play input binding.
– CHEEVOS: Reset when hardcore mode is toggled.
– CHEEVOS: Update the hashing methods to identify NES, SNES and Lynx games (more accurate and accepting headerless ROMs).
– COMMON: Add new JSON playlist format.
– COMMON: Fix playlist corruption when deleting items.
– COMMON: Fix archive progress display calculation.
– COMMON: Fix playlist entries appearing with previously used names.
– COMMON: Fix screenshot filename with no core or content.
– COMMON: Allow compiling without menu support.
– CORE UPDATER: Allow sideloading cores from the menu.
– CPU FILTERS: Add Normal2x filter.
– CRT/LINUX: New Linux switching method partially implemented.
– CRT/LINUX: Linux restore desktop resolution fixed.
– CRT/LINUX: Monitor index switching and auto enumerate for output detection in Linux (still working on the windows method).
– CRT/RASPBERRY PI: Initial support.
– DATE: Add Date / Time style options.
– DEBUGGING: Add an integrated crash handler for debug builds (see https://docs.libretro.com/tech/debugging)
– DISCORD: Discord matchmaking.
– DISCORD: Register the application name properly.
– DISK CONTROL: Remember the last used folder / current active folder to make disk-swapping faster.
– INPUT: Add new menu toggle (hold start button for 2 seconds)
– INPUT: Fix arrow keys being incorrectly bound as numpad keys
– INPUT/SDL: Flush the joypad events. Decreases cpu usage over time with the SDL joypad driver.
– LOCALIZATION: Add Greek translation.
– LOCALIZATION: Update German translation.
– LOCALIZATION: Update Italian translation.
– LOCALIZATION: Update Japanese translation.
– LOCALIZATION: Update Simplified Chinese translation.
– LOCALIZATION: Update Spanish translation.
– MENU: New “ozone” menu driver.
– MENU: Only show CRT SwitchRes if video display server is implemented (Windows/Linux for now)
– MENU: User Interface -> Appearance -> ‘Menu Font Green/Blue Color’ settings now work properly.
– MENU: Add option to enable in-menu sound effects.
– MENU/D3D: Scissoring support (will be used for Ozone and menu widgets).
– MENU/QT/WIMP: Allow building with MSVC2017.
– MENU/QT/WIMP: Add detailed file browser table.
– MENU/QT/WIMP: New grid view implementation that is faster and loads thumbnails on-demand.
– MENU/QT/WIMP: Thumbnail drag and drop support.
– MENU/RGUI: Overhaul custom theme interface + add wallpaper support.
– MENU/RGUI: Thumbnail support and thumbnail downscaling.
– MENU: Hide password values.
– MENU/SOUNDS: Implement in-menu sound effects (not enabled by default for now, still experimental).
– MIDI: Add a Linux ALSA driver for MIDI.
– NETPLAY: Force fast-save-states when netplay is enabled.
– NETPLAY: Allow quick joining subsystem lobbies.
– OSX: Initial CoreAudio V3 audio driver (not yet used in release builds).
– OSX: OpenGL 3.2 Core support for cores.
– PS2: Initial PlayStation2 port.
– PS4: Initial PlayStation4 port.
– RECORDING: Implement recording options in the menu complete with quality profiles, streaming, and proper file naming
– SCANNER: Fix GDI disc scanning.
– SHADERS: Fix auto shader preset loading on D3D10, D3D11, D3D12
– SUBSYSTEM: Allow more than 10 subsystems
– SUBSYSTEM: Cores that use subsystem for complex scenarios can now load content without starting a regular content first
– SUBSYSTEM: Remember the last used folder to make loading subsystem type content faster
– SWITCH/LIBNX: Improve touch scaling calculation.
– SWITCH: Proper button labels.
– TVOS: Initial tvOS port.
– VULKAN: Fix RGUI crashing at startup.
– VULKAN/RGUI: Enable ‘Menu Linear Filter’ option.
– VULKAN: Fix secondary screens in overlays not working.
– WAYLAND: Implement idle-inhibit support (needed for screensaver suspend).
– WAYLAND: Fix fullscreen toggle.
– WIIU: Initial netplay peer-to-peer support. Network information working.
– WINDOWS/WSA: Network Information info is blank until first network operation.
– WINDOWS: Fix an ancient bug that caused wrong mappings for keyboard arrows.
– WINDOWS: Remember window size and position if so desired.
– WINDOWS: SSL/TLS connections now work properly.
– WINDOWS: Fall back to GDI driver if no accelerated graphics driver is found.
– UWP: Initial UWP port.
– VFS: Update to version 3.
– XBONE: Initial Xbox One port.
– XMB/OZONE: Add more icons
– XMB: Add Automatic Inverted theme
– ???: Easter Egg