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!
#Dreamcast on Switch will go strong in the future, with the arrivial of flyinghead's Flycast! Mats is currently working on it, runs on Interpreter now. I will shine in and fix the dynarec and work on the exceptions, so everyone can enjoy the full experience! pic.twitter.com/GFlKFjCCfm
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)
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 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!
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.
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):
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) 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.
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.
sonninnos and rsn8887 made a lot of improvements recently to two home computer Libretro cores.
PUAE Amiga core improvements
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 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
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
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 LeeVice C64 Save New York on Switch
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’.
This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful. We are using cookies to give you the best experience on our website. We collect users data for personalisation of ads, and also Google will use your personal data when you give consent on our site. Check this link to Google’s Privacy & Terms site.
Strictly Necessary Cookies
Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.
If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.
3rd Party Cookies
This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.
Keeping this cookie enabled helps us to improve our website.
Please enable Strictly Necessary Cookies first so that we can save your preferences!