New nightlies

We’ve been trying to get out nightlies for as many platforms.
Recently we added OSX (64 bit) and iOS nightlies, as well as 3DS and PS Vita.

This week we’ve added cydia and f-droid repositories to out buildbot. These builds are on the bleeding edge, usually a few minutes behind the latest commit.
The URL for the cydia repository is:
And the URL for the f-droid repository is:

The Android builds are signed with the same key as the nightlies so updating from those should be seamless.
Alternatively you may scan these to get the URL:



Have fun!

Note: We know it’s not working on iOS9

About donations

RetroArch is and will always be free software. Unfortunately sometimes we need to pay for hosting providers or developer hardware.

A few months back, the company that was providing our (then free) hosting service was bought by another company which in turn meant we could no longer have the VPS we were using to build the nightlies nor the VPS that was used to host the actual downloads, so we had to scramble yet again, to get back on our feet.

At the moment we are still building on donated hardware but we have moved our web sites to DigitalOcean (which is not free), so after a lot of debate we’ve decided to start accepting donations.
Donations will be handled by Paypal and will help us with:

– Hosting fees
– Developer hardware

We will review donations on a monthly basis, if all of sudden we have more than we need, we may close donations temporarily until we need them again.

Just to be clear, we expect donations to be with no strings attached, donating doesn’t mean we’ll scramble to implement features on request or port RetroArch to a specific platform or port any particular piece of software to RetroArch. We’ll be providing the same software on the same manner as we are now.

We plan to add the donation buttons next week.

RetroArch 1.2.2 released – for Android/Windows/OSX/Wii/Gamecube/PSP

Time for another update. Let’s get right to it.

Download it here!

OSX version

NOTE: If the OSX version doesn’t work for you, you might have to install the Cg framework first. To do that, download this and install it:

The OSX version is back! We have two versions because we care about backwards compatibility, one for 32-bit Intel Macs (OSX 10.6 Snow Leopard and up), and one for 64-bit Intel Macs (OSX 10.7 and up). Later on we’ll go even an extra mile beyond this by releasing the PowerPC version too, which should be compatible from OSX 10.5 and up. It would be nice to push the OSX requirements down even further in time.

Some caveats right now: the guy who did our buildbot releases (IKarith – TJCarter) – I don’t know what fate befell him and whether or not he is still doing fine (I hope he is), but these builds seem to be no longer being pushed out to our buildbot, the last update was somewhere around the end of June. So we will have to be looking fast for a solution for this on our buildbot so that we can have 0-day updated cores again for iOS and OSX (the iOS version is not yet released but will be coming up next hopefully).

PSP version

The PSP version has been usable for a long time but I think we should finally just release it as part of the new stable releases. Of course things are not going to be perfect but I hope just us going the extra mile and releasing this for a pretty much dead platform will mean something in and of itself to the people who use this platform.

PSP is a pretty performance-hamstrung system so it requires plenty of edits and novel workarounds to make cores work fast enough on it. Right now we have cores like Gambatte working fullspeed and the PC Engine port also should be pretty impressive considering this is based on Mednafen PC Engine Fast, which should be far more compatible and accurate than something like Hugo.

A sincere call to arms here for more PSP developers who want to be part of the effort: we have every intention of making as many ports run well on the PSP but the crucial thing here is that all of this costs work. If you are a capable PSP dev and you’d like to help out please let us know.

Wii version

There were some problems with the last release. FBA CPS1 was missing and FBA CPS2 was not working. Both are rectified now and included again.

Android version

A major issue that popped up in version 1.2.1 should now be fixed. The new font renderer we introduced back in version 1.2.1 was causing some problems on phones / phablets / tablets with very high DPI (i.e. above 480dpi). This should now be fixed. So apologies if you saw indecipherable glyphs in the previous version, that should hopefully be a thing of the past by now.

Other changes

Here is a summary of most of the major things changed in this release:

– OSX version released!
– PSP version released!
– (OSX 10.6 32-bit version) All cores that the 32bit version supports are currently included into the ZIP itself because our buildbot does not yet serve up 32bit cores for OSX yet. Apologies for this, we’re trying to come up with a solution.
– (OSX/iOS in general) The guy who did our buildbot nightlies for OSX/iOS is currently MIA. We will have to come up with a new solution fast for this. Due to this you might experience some outdated cores right now for these platforms.
– (Android) Fixed XX/XXXHDPI font issues with GLUI (was leading to corrupted fonts)
– Initial Spanish translation.
– Add advanced help system.
– (Android) Add Nvidia Shield Portable hack – back button should bring up menu properly now.
– Fixed some issues with hotkeys.
– When ‘Hide In Menu’ is enabled, overlays should reappear now when we select ‘Resume Content’, ‘Load State’, or ‘Save State’
– (Wii) Fix FBA CPS1/CPS2 cores.
– (GLUI) Better ticker speed.
– (GLUI) Labels should use more screen estate when available.

So what’s next?

The next version after this will be RetroArch v1.2.3. We still have PlayStation3 to go now, iOS, Blackberry 10, and OG Xbox 1 (2001). Let’s see how fast we can get all this stuff out of the way. In the meantime, have fun with v1.2.2 on the platforms that have all been covered up to this point.

RetroArch 1.2.1 released – for Android/Windows/Wii/Gamecube

So, the latest release of RetroArch, version 1.2.1, has just been released. Allow me to fill you in on everything that has changed.

Download your respective version here!

Rushed 1.2 release

First of all, we admit that the 1.2 release was rushed and we regret that we were in such a rush to get something out there that we might have lost the forest for thre trees at some point. Bear with us here, it has been over a year since we had started a very big initiative to rewrite the entire codebase from scratch so that it could be future proof from now on, and there is only so much that can be tested in a controlled environment. Once it gets out in the wild, a lot more potential usecases can be tested and therefore, issues can pop to the surface that you didn’t anticipate before.

Now, not to make apologies for anything, we have been working our ass off this past week dealing with the feedback and improving things. So, let’s start with that.


Usability improvements

The Android release has seen several great improvements (and do note – most upcoming mobile versions like iOS and Blackberry 10 will benefit from these improvements) –

Some of these big improvements are in the UI. First of all, the fonts were a bit low-resolution in the 1.2 version for Android because we defaulted to a bitmap font renderer there. Now we have upgraded that to a Truetype-based font renderer which uses the internal Android system Holo fonts. It should therefore look a lot more visually appealing now than before. (courtesy of heuripedes, one of our developers)

In other usability improvements, touch dragging has now been improved (by one of our developers, kivutar). When you drag in the menu by pressing and holding your finger on the screen and then making swipes, inertia now gets applied. So you can do a forceful swipe and the scrolling should be done much quicker. Previously there was no inertia at all so trying to scroll before could feel pretty iffy and not comfortable at all like what you’d expect from native UIs on mobile devices.

Some other usability improvements are less pronounced but still welcome. We noticed that the ‘ticker speed’ was very slow in the default Android menu (GLUI), so we made that a bit faster. We also took some time out to fix some graphics glitches that could happen from time to time.

Control improvements

There were a LOT of control issues in 1.2. Users found that they could no longer use the back button with certain pads to return to the menu, or they found their previous menu toggle key no longer working.

I believe we ironed out most of those issues now. What’s more, we’ve given you some tools to fall back on – there are several ways to trigger a menu toggle now. Let’s discuss some:

1 – By using a button combo –

There are two predefined button combos you can choose from – pressing ‘Down + L1 + R1 + Y’ or “L3 + R3” will trigger a menu toggle so that you can go back to the menu and/or by pressing it a second time, return to the game. Go to Input Settings to select one of the two.

2 – Map Back Button As Menu Toggle –

In case a gamepad or some other device has not been autconfigured automatically, by enabling this option you can ensure that by pressing the back button, you can go back to the menu and/or resume the game.

Gamepad support control improvements

We really dropped the ball on this one for v1.2 on Android, let’s just get that out of the way. Now, it should be possible to completely manually bind a controller by hand in case there is no matching autoconfiguration file for the pad.

Also, to make this even more convenient, it is now possible to save your configured gamepad to a file by selecting ‘User # Save Autoconfig’.


So we were boasting about our new touch-friendly UI, right? Well, we didn’t really think through what kind of perception it would have on people if we would just drop them headfirst into this UI with an onscreen gamepad overlay, when most of these people would probably not think first to disable the overlay when not playing games. And obviously we can and should do better.
So for 1.2.1, we created some new options and enabled them by default which should enhance the user experience. How it works now on mobile devices is that when you enter the default menu (GLUI), you use touch controls. However, when the game actually starts up, the gamepad overlay will appear onscreen. When you go back to the menu, this gamepad overlay will disappear again until you go back to the game again.

If you dislike this behavior there’s always the possibility to turn these settings on/off in Input Overlay Settings. But I’m guessing you will pretty much like the new defaults.

Default paths

There were a LOT of problems with the new default paths in this new RetroArch version. For 1.2.1, radius has been doing the thankless task of really going to town with improving this situation.

For instance, on Android, whenever you download content now (from – say – Add Content -> Download Core Content), it will download this stuff now to your Android device’s default Downloads directory. Similarly, every picture you take from RetroArch with ‘Take Screenshot’, gets saved now to Android’s default Pictures directory. So it is possible for you as a user to more easily have access to these files.

It should also now be possible again to use the directory of the game you’re running for savestates/saveram.

Dead Android UI

Consider this us not properly arranging a burial for the dead in time for v1.2. From now on, everything is controllable in an easy way from RetroArch’s built-in menu. We have removed all of the outdated upper-layer Android UI menu options and we hope this will provide for a consistent, seamless, one way to control RetroArch from every platform now. I think the menu system has been improved enough by now that it’s no longer necessary to rely on an upper-layer UI. We want RetroArch to be a consistent C-oriented codebase where any other upper-layer UI can instead be catered to through a companion UI – more on that later in the future. But we are no longer going to have duplicate settings inside one external Android UI and then a bunch of settings in the built-in RetroArch menu, no.

Game & Watch core troubles

We fixed numerous crashes with Game & Watch games by simply recompiling RetroArch with Google’s latest NDK toolchain. We’ll leave it up to voodoo I guess since none of these bugs make much sense anymore, the only thing I can surmise is that Google must have a habit of randomly breaking stuff inbetween toolchain revisions.

So now, with all of that out of the way, I’m sure you can agree that we really went to town trying to improve the Android user experience immeasurably. Let’s now move onto Gamecube/Wii…


Long time since the last release dropped. But we do have something to show for it, and no doubt we will have plenty of more to show for it in the upcoming weeks and months too.

It is now possible to connect a Sony DualShock 3 gamepad to your Wii through USB and use it for playing games with! This is made possible through the libsicksaxis API that was made by xerpi, and netux79 gave us some code that made this finally work with RetroArch.

I’ve tested it and while it can still be improved, it already plays great. I haven’t tested wireless operation though so you’re on your own still with that.

Also note: this will probably be improved upon a lot in the future. I’ve already asked ToadKing whether he would be interested in coming up with some USB HID driver for the Wii which, when finally implemented, would probably replace libsicksaxis entirely. With this, it will be possible to not only use DualShock 3 pads, but also DualShock 4 pads, maybe even more in the future. This USB HID driver already exists on certain RetroArch versions like the Linux and Mac versions, where it is possible to use a DualShock 3, Dual Shock 4 and/or a Wiimote Classic without the host OS even needing to supply any HID drivers for these pads to make it possible.

Anyway, stay tuned for more exciting news to follow us here. In future versions I’d also like to flesh out the WIi version’s netcode out some more so that we can actually provide the downloader feature options that are now available on Anroid and Windows.

So what’s not done yet? What’s still coming up?

All these platforms are obviously still waiting for a new RetroArch release:

  • PlayStation3
  • Mac OS X
  • Blackberry 10
  • iOS
  • Xbox 1 (OG )

Bear with us here. I’m working round the clock to make sure we finally have the latest version of RetroArch on all platforms again. This past year has been a truckload of work and I will be pleased to see this chapter finally end so that I can move on to the next phase of development. Rest assured that the PlayStation3 version will have some awesome features and that the iOS and BB10 versions will not disappoint.

And after I have these platforms out of the way, I can finally start looking again at the Windows Phone/WinRT port in general…

Thanks for reading this post and stay tuned for more big news this coming month. Things will be moving fast from now on, with plenty of results.

RetroArch 1.2 – July 4 release kickoff

Download here!

First things first – we are back. It has taken us a very long time to make a new release of RetroArch due to numerous complications, so apologies for missing numerous release dates before (first Christmas, then somewhere in April, etc.). It tells something about the development hell we’ve been through that I’ve just skipped an entire version number (1.1) and gone straight to 1.2.

Let me first get some important stuff out of the way before we continue. For our iOS and Blackberry 10 users: we were not ready today (July 4) to launch on these platforms, you’ll unfortunately have to hold out for one more week before we have something for you. Rest assured that there will be plenty to enjoy a week from now.

With that out of the way…

What is RetroArch being released on today and tomorrow?

  • Android (DONE) (Uploading to Play Store right now)
  • Windows (DONE)
  • Linux (DONE) (Repo packagers, go ahead and update the respective packages)
  • Mac (Maybe July 5 2015)
  • Consoles (Wii / PS3 / PSP ) (July 5 2015)
  • Consoles (Xbox 1 OG)        (Maybe July 5 2015)
  • iOS (Next week)
  • Blackberry 10 (Next week)

Other platforms will have to wait, but rest assured the wait is not much longer.  *
I could write an entire book about all of the new features in RetroArch, but instead I’m just going to summarize it up in a few bullet points so that you can get the gist of it. In the upcoming weeks you will see plenty of more big announcements coming from us, and we will also provide you with much-needed user documentation on everything you can do with RetroArch now.

— Brand new eye candy menus to choose from! —

RetroArch now lets you select between three menu display modes: RGUI (a very classic, low-resolution menu), GLUI (a more advanced GL-based menu that lends itself well to touch-based devices), and XMB (a horizontal crossbar menu that is the most eyecandy-rich of all three right now).

Thanks to improved touch support, you should now be easily able to control RetroArch’s menu by dragging up or down and clicking on items. And thanks to built-in DPI awareness support, menu elements should now be scaled according to the DPI (Dots Per Inch) reported by your system.*

* NOTE: The XMB menu driver’s touch support right now is kinda iffy. We recommend that you use GLUI on touchscreen-based devices, like mobile (Android/iOS/etc).

— Scan files/directories and add them to game system collections! —

You can now scan files and/or directories, and RetroArch will look for a match inside its database. If it finds a match with a known game on a given system, it will then add this game to a collection based on the system of that game. This way, you can have ordered collections of games without having to browse your filesystem all the time looking for a ROM/game to play.

To use this feature, go to ‘Add Content’ and select either ‘Scan Directory’ or ‘Scan File’. *

* NOTE: Some programs right now might not yet have a database system in place to allow you to scan said content. Some of the current ones that still need to be addressed are MAME and CD-based systems such as the PlayStation. You will see this rectified in an upcoming RetroArch update.

— View database information about each game once added to a collection! —

Once you have a few collections, you will be able to view detailed information about the game, provided by RetroArch’s new database features. You will be able to view the developer of the game, the year it was released at, any kind of special hardware it used on the ROM cart package, the publisher that released the game, etc. *

* NOTE: The amount of information provided per game can vary and is dependent on the database’s completion. We encourage contributors to help us out building up these databases.

— Download programs (‘cores’) online —
RetroArch no longer comes with programs preinstalled, instead you download these now from our buildbot from within the program. Go to Online Updater -> Core Updater and select any of the cores you’d like to have installed. It will then download that core from our buildbot. This way, you are in control of exactly which programs you have installed and RetroArch does not take up any additional space for things you don’t need.*

We add new cores onto our buildbot routinely, so as soon as they will be uploaded you will be able to download them and use them with your current copy of RetroArch without even having to update the main program. Stay posted for more exciting new stuff coming up ahead.

* NOTE: We make no guarantees about server availability or uptime.

— Update everything! —

It isn’t just program cores that you can install this way from our buildbot. You can also update all of the asset files that RetroArch depends on. You will always be able to download the latest shaders, onscreen gamepad overlays, cheat files and whatnot directly from our servers from within the app.

All of this content is updated on a daily basis, so you can be sure there will be plenty of new things to check out on a weekly basis.

— Download Game & Watch games and play them with our exclusive Game & Watch emulator ! —


People in their early to mid-30s might have seen these things in the wild back n their day and will probably be familiar with these old standalone handheld games that predated the Game Boy, but don’t let their age fool you: these games still are very useful time killers and their age if anything gives them even more charm appeal.

Go to ‘Add Content -> Download Content’ to download any of these Game & Watch games. From there, you can play them with our Game & Watch emulator which has been built from scratch by a valued libretro contributor. Some of the standout features include faithful reproduction of the handheld’s screen layout, high-resolution bezels, nice simulation of the sound effects, etc. Give these a try.*

* NOTE: We owe a certain amount of thanks to Madrigal’s simulators for being able to offer these games to you.

— Built-in input mapping —
It is now possible to bind your gamepad from within the program without having to go through the chores of previous versions. Go to Settings -> Input Settings and select ‘Bind All’ to bind each and every button one at a time, or bind the actions individually. If you are using a gamepad which is supported by us, it will be autodetected and autoconfigured to align with our gamepad abstraction, the RetroPad.

— Ability to remap controls —
An often-heard complaint before was the inability to change the controls. We have made this possible now. Once a game is loaded, go to the ‘Quick Menu’ and select ‘Core Input Remapping Options’. From there you can change the controls per core, and you can also save these changes to a config file.

— Ability to enter and load cheats —
It is now possible to input cheats and apply them to the currently running game. This was also an often-heard complaint and omission pointed out by users, so we have provided this as well this time around. *

* NOTE: Some programs might not yet have cheat support integrated. As soon as we include cheat support for these cores, you will be able to download the updated core from within the app (see ‘Download program cores online’).

— Multi-language support! —

This release comes with (preliminary) multi-language support. Go to Settings -> User Settings and choose a language. Right now we provide translations for Dutch, German, Portuguese, and French.*

* NOTE: Some of the language translations might be more incomplete than others. Others (like Japanese/Chinese/Russian) are not available right now, and we seek translators for those as well.

— Over 80+ programs now and counting —
RetroArch and the libretro ecosystem has expanded in scope dramatically since the last release over a year ago. There are now over 80+ programs to choose from among its collection, and you can be sure that number is bound to increase from here on out. *

* NOTE: The amount of program cores available might vary based on the system you are using.

— Built-in image viewer (and media player) ! —

We have thrown in an image viewer inside RetroArch now. It is possible to display JPEG, PNG, TGA and BMP images.*

As if that is not enough, for the Windows release we now have an integrated media player. It is possible to play music and movie files now from within RetroArch. This might seem like an unorthodox way to use RetroArch, but it has certain tricks up its sleeve that other media players do not, such as frame interpolation and a wide array of shaders and audio filters to choose from. ** ***

* NOTE: Expect this feature to be improved in the coming weeks, there are still some power management issues to sort out with high-resolution images.

** NOTE: Expect this feature to be heavily improved later on. We will want to start supporting remote controls and also to provide a fancy overlay for video playback purposes. Also, expect a very nice audio visualizer soon for the playback of music files.

*** NOTE: The integrated media player support is available for any version of RetroArch that comes with built-in ffmpeg support. RetroArch is dependent on ffmpeg for making it possible to playback these files.

— Tons more besides to discover and enjoy —

This quick writeup does not even scratch the surface of everything that has been added to RetroArch over the span of a year. We worked hard on making this release happen and as such did not have the time to write about every single new feature in detail before dropping this release. Over the next few weeks we will have a more increased Youtube channel presence where we will drop videos which will show you all you can do with RetroArch right now. Please look forward to these videos.

Also, don’t hesitate to contact us with your ideas on what could make RetroArch better and how to improve it. We definitely want you to provide us with a lot of feedback on this release so that we can improve the next release in response to user feedback.

From now on, you can expect continuous updates. It took us a long time to set the entire infrastructure up to make all this possible and we also had to rewrite RetroArch entirely at least 5 to 6 times over the past year, but rest assured that this huge media dropout was a one-off event.

If things are not perfect today (and nothing will ever be perfect), be rest assured that from here on out, updates will be quick to arrive. We are not going to have a repeat of this endless delay schedule that has plagued us since last year, and above all we now want continuous user feedback so that we can improve things as we go along. Most importantly, me and others have practically worked themselves to death on this release for over a year and we really want to push this release out now so that people have something in their hands and we can go from there.

Oh yeah, there will be another big blog post after this that will detail some other new projects we’re working on shortly, but for now I have to focus on actually pushing this release out. So let’s see if we can get that done today and we’ll drop all the other major announcements shortly after.

Some other notes (Xbox 360 missing, etc)

* The only exception to this release promise is the Xbox 360 port. I have been routinely screwed and scammed by the ‘underground’ console hacking scene and right now I’m sitting on this paperweight RGH Xbox 360 that is useless for development, so that port is on indefinite hold until somebody can get me either the XDK back that I gave somebody in good confidence that it would go to Ced2901 (but it never did apparently), and I presume the guy I gave it to just hoarded it. or we can get a replacement for it. I won’t mention names but the guy who took my XDK and never gave it to the person he said he was going to give it to knows who he is. Anyway, if you guys still consider this Xbox 360 version important, let me know but I’m not going to go and take money out of my own coffers again to make that happen. I’m done with the console scene shenanigans.

Some other notes (3DS / PSP version)

We could maybe push out a PSP version of RetroArch 1.2 in the upcoming weeks. I’m hoping to get back with the main contributor (aliaspider) who worked on these ports so that we can be assured that we can at least push out the PSP version in a more or less stable and decent state.

Regarding RetroArch 3DS: it’s still very much a work-in-progress and I don’t think either me or aliaspider would feel comfortable to ship anything right now in terms of official release at this stage, and we need a lot of work done on the cores before we can render some of them playable on the slow 3DS (it’s even slower than the PSP it seems).

“In the run-up to RetroArch 1.1 – what’s new pt. 5

We’ve been away for half a year so there is a lot to talk about in this new upcoming release. Rest assured I’m working hard as hell to meet the Christmas sweet spot.  It will take a couple of blog posts to go through it all. So let’s start with the first one. I’m putting these articles out now because I really don’t fancy having to write all this stuff later on in the holidays when I drop this stuff.

In this blog post, let’s talk some more about new cores

Dungeon Crawler Stone Soup


Meancoot made this libretro port a year ago or so but it was never really in a shippable state until now. I’ve rebased the port and I’ve made sure changes from upstream can be easily pulled in.

So what is it? It’s an old-school dungeon crawler in the vein of Rogue and Nethack. The game is meant to be played in single-player mode and is originally played with the keyboard (you can even use vim bindings). Quite popular, and the libretro port supports the tile-based graphics that make the game somewhat more graphically appealing.

What’s been done right now?

– Should work on iOS, Android (not tested yet) and PC.

– Has rudimentary RetroPad joypad controls (not recommended though), and working touch controls. Also has RetroKeyboard and RetroMouse support.

– Save states in the libretro sense are not ‘implemented’ but it supports the game’s basic ‘saving’ routines so it should work the same as the standalone version in that respect.

What’s to be done in the future?

– Meancoot originally added a Libretro GL-based render path which could result in some even better performance on platforms where GL is supported. Right now the current version is using software rendering which is still fast enough for our needs.

– Problem with the upstream Dungeon Crawler codebase is that they have been ‘upgrading’ to C++11 and as a result it will no longer compile on older compilers/systems where C++11 support can not be taken for granted. I’m undecided as to whether I should add hacks to the current shallow fork so that it can also compile as C++98 or whether I should just keep maintaining the year-old previous port by meancoot which should still be C++98-compliant. We will see. I’d definitely like to see this core running on older systems since it’s such a graphically low-key game anyway.

TGB Dual


This is a Game Boy/Game Boy Color emulator made by a Japanese developer. It dates back to 2001. It has been around as a libretro core for some time but only recently have some very important things been added to it.

For instance, it now has split-screen multiplayer support. This means that you can play GB Link games on the same screen with Player 1 and Player 2 controlling either of the two virtual Game Boys.

Some games that used GB Link support to good effect include but are not limited to : Tetris, Dr. Mario, Super Mario Bros. Deluxe and (of course) the Pokemon games. So for people that’d like to play two-player Game Boy games on the same device, this will be quite a nice addition.

What’s to be done in the future?

– Make it endian-safe so it can run on big-endian targets like game consoles (PlayStation3/Wii/etc) and PowerPC Macs.

In the run-up to RetroArch 1.1 – what’s ‘new’ pt. 4 (PowerPC Mac)

We’ve been away for half a year so there is a lot to talk about in this new upcoming release. Rest assured I’m working hard as hell to meet the Christmas sweet spot.  It will take a couple of blog posts to go through it all. So let’s start with the first one. I’m putting these articles out now because I really don’t fancy having to write all this stuff later on in the holidays when I drop this stuff.

In this blog post, let’s talk about something else than cores that’s going to be new in v1.1

RetroArch on PowerPC Mac


Some generous gifter called nogagplz has been sending me some PowerPC Mac-based laptops over the past year and that stuff hasn’t been gathering dust to say the very least.

So RetroArch now runs on Mac OS X PowerPC. The cores that are known to be endian-safe (basically all the cores out now for the big-endian PowerPC based game consoles like the Wii, PlayStation3, etc) will be making an appearance on RetroArch PPC OSX.

Not sure how big the Mac PowerPC community still is but my main motivations for getting RetroArch out on this (by now obsolete) platform is that it is a lot easier to debug code on something resembling a PC than it is to be mucking about with gimped consoles that don’t even support gdb out of the box. So it makes PowerPC development a lot easier and what’s more, I personally want to see libretro (and by extension RetroArch) running on everything. So going even further back in time in the past and making sure RA runs on that is all part of the plan.

What’s been done?

– RetroArch OSX PPC runs on OSX starting from 10.5. It might be possible to lessen the requirements even more. Only time will tell.

What’s to be done in the future?

– Get better performance out of it (could be better at least on my iBook G4). The OpenGL renderpath must be suboptimal given how ancient and suboptimal GL implementations must have been back in those days. Hopefully there’s something lower-level to tap into.

OS9 port after v1.1??!

If I’m REALLY crazy (no promises) I might attempt a port of RetroArch on even OS9. The only main motivation for this would be that the guy who supplied me the Powerbook G3 stocked that HDD with a truckload of old classic games, some of which are quite some nice ports that are actually better than their PC equivalents (Wolfenstein 3D, Doom, Hexen, Quake II is a solid port, Killing Time, Carmageddon, etc, etc) so it’s quite a nice game box right now. Having RetroArch on here would sweeten the deal even more and it would add yet another platform to RetroArch’s belt.

In the run-up to RetroArch 1.1 – what’s ‘new’ pt. 3

We’ve been away for half a year so there is a lot to talk about in this new upcoming release. Rest assured I’m working hard as hell to meet the Christmas sweet spot.  It will take a couple of blog posts to go through it all. So let’s start with the first one. I’m putting these articles out now because I really don’t fancy having to write all this stuff later on in the holidays when I drop this stuff.

In this blog post, let’s talk about some more about new cores and some fixes to existing cores


This is a Sony PlayStation emulator. A core for this has already existed for quite some time. You’ll notice though that with the release of Android 5.0, the current version on the Google Play Store is broken. The new version that we’re pushing out fixes this.

Beetle/Mednafen PSX

Apart from some updates, we also added an optional widescreen hack courtesy of PCSXR. In the long run I want to look at introducing more enhancement features like this.


Even though we already have a lot of Super Nintendo emulator cores (well, let’s make that ‘the most amount of SNES cores out of any project’), a lot of them still had too high performance requirements for some really low-power devices out there. CatSFC is a libretro fork of SNES9x based on SNES9x 1.43. It should be a lot faster than SNES9x Next (our current fastest SNES core if you exclude PocketSNES).

The nice thing about our fork of CatSFC is that we added some stuff to it in the progress. For instance, SNES9x’s sound pre-blargg APU has always been quite bad. So what we did with CatSFC was put it in optionally. Even with the blargg APU it’s still a lot faster than SNES9x Next.

Obviously this core might only be interesting for people that have devices where power is not at a premium, like the Raspberry Pi, Xperia Play and similar low-power systems like that. The more choice the merrier.

What will be done in the future?

– Should already be endian-safe but you never know. Will give this some test runs on some PowerPC-based Macs I currently have where even SNES9x Next can be too slow right now.

– The reason we (or well, aliaspider) originally started this CatSFC core is because we wanted a SNES emulator with a bit more performance than SNES9x Next running on the PSP.  Right now it still doesn’t run at fullspeed on PSP, so we haven’t yet succeeded at this. However, Raspberry Pi users and other devices like that should already be reaping the fruits of the labor being done right now.

In the run-up to RetroArch 1.1 – what’s ‘new’ pt. 2

We’ve been away for half a year so there is a lot to talk about in this new upcoming release. Rest assured I’m working hard as hell to meet the Christmas sweet spot.  It will take a couple of blog posts to go through it all. So let’s start with the first one. I’m putting these articles out now because I really don’t fancy having to write all this stuff later on in the holidays when I drop this stuff.

In this blog post, let’s talk about some other new cores you can expect.

4DO – 3DO core

We ported over an emulator that emulates the 3DO. The emulator in question is 4DO, itself a fork of 3DOh.

In case you don’t know, 3DO was a short-lived game console released in the early ’90s. It was one of the first ‘next-generation’ 32bit game consoles that were released, and it predated the Sega Saturn and Sony PlayStation by about a year. Studio 3DO had some lofty ambitions at the time where the 3DO would grow up to become a video game standard like VHS where every licensee would just make a 3DO-compatible player. Unfortunately, the hardware was a bit too weak and after PlayStation/Saturn launched, 3DO died a slow death.

The few standout games for this platform can probably be counted on one hand but there was some notable stuff. A great port of Super Street Fighter II Turbo with nice redbook CD audio, Electronic Arts at the time made some good games like Need For Speed and Road Rash (both probably still better than what these franchises have become in the current-day), and Gex by Crystal Dynamics first made its appearance here. It also has the dubious distinction of playing host to the first Naughty Dog game, a game called Way Of The Warrior. It’s a standard one-on-one beat ’em up, a bit of a Mortal Kombat/Street Fighter II derivative of the day. Guess we all have to start somewhere.

Anyway, regarding the core implementation – things are up and running, you will need a pretty powerful device for this so the faster your CPU is, the more chance you have of actually running this at fullspeed. There is a core option that lets you play games at 640×480 instead of the original framebuffer resolution. Do keep in mind that this will raise performance requirements even more. Save states are implemented but they can cause issues with certain games right now. It’s something we still have to fix.

What’s done?

– Core works, save states work but still have bugs, etc.

What’s to be done in the future?

– Backport more stuff over from 3Doh-related forks.

– Make it big-endian compatible so that it can run on big-endian consoles and old PowerPC Macs.

– Look into the multithreading speedhacks done in an Xbox 360 port of 3Doh assuming this doesn’t come too much at the cost of accuracy and can remain a toggleable option.

In the run-up to RetroArch 1.1 – what’s ‘new’ pt. 1

We’ve been away for half a year so there is a lot to talk about in this new upcoming release. Rest assured I’m working hard as hell to meet the Christmas sweet spot.  It will take a couple of blog posts to go through it all. So let’s start with the first one. I’m putting these articles out now because I really don’t fancy having to write all this stuff later on in the holidays when I drop this stuff.

In this blog post, let’s talk about one of the big new cores you can expect – gpSP.


There has been some complaints in the past that the Game Boy Advance libretro cores are a bit too slow on some older systems. So people with lower-performance devices should probably be glad by the arrival of this core.

This is a Game Boy Advance emulator written by Exophase originally for the PSP.  It was a fast and reasonably compatible GBA emulator that later on made an appearance on platforms like iOS and Android by unofficial porters.

Exophase stopped working on this emulator around 2009 and ever since then the codebase has been gradually decaying. The interpreter CPU core was broken on 64-bit CPUs, the x86 dynarec was 32-bit only, and there is just no central repository that aimed at making this a reasonable first-class citizen that could compete against things like VBA-M and bgba.

So the libretro core is an attempt to do all that. It uses as a base notaz’ gpsp repo but strips out the Pandora/Raspberry Pi/GP2x-specific code and aims for a more general-purpose codebase. We managed to get the ARM dynarec working on Android with some code edits, and we also fixed a few bugs that was preventing the interpreter core from working on Intel 64bit architecture.

Performance-wise, the main substantial difference is when the dynarec is enabled obviously. This core should be substantially faster right now on ARM 32bit systems (Android/iOS/Blackberry, etc) than VBA-M and the VBA-Next cores ever did. It should be fast enough on Raspberry Pi and low-end Android devices like the Xperia Play. The 32-bit x86 dynarec should also be very beneficial for users that don’t mind putting up with 32bit code. Getting a 64-bit dynarec up and running is something that is on the installment plan (for me anyway).

Savestates should work but don’t expect to be able to use savestates from other gpSP-based emulators like Gameboid or whatever.  We had to change the savestate format/size during our 64bit compatibility patches, so this is unavoidable. Though really you shouldn’t expect savestates made with non-libretro based cores to be compatible with libretro cores necessarily anyway, so let’s not pretend like this is an issue.

As for how the performance is like with the interpreter? It varies from game to game. Games like Tekken Advance and Super Mario Advance are actually slower with the interpreter core than the same games on VBA Next, but then you have the odd exceptions like Metroid, Zelda, Wario Land, Donkey Kong Country games and Astro Boy where the performance with interpreter gpSP is at least twice as fast as VBA Next. Hopefully in the long run we can fix these remaining bottlenecks with interpreter core so that there is a nice counterweight to VBA-based emulators that is at least substantially faster even with just the interpreter core.

So what’s done?

– Runs on Android with the dynarec.

– Runs on 32-bit Intel with the dynarec.

– 64bit compatibility patches so that interpreter core runs on 64bit CPUs.

– Savestates work, SRAM works, most general features you’d expect from libretro, etc.

What still needs to be done in the future?

– Get the ARM dynarec working on iOS which requires some more patches. For now, the iOS port is using the interpreter so performance is not yet as great as it should be.

– Find some way to drop support in for Normatt’s open-source BIOS replacement so that users don’t necessarily have to use the ‘official’ GBA BIOS.

– Make the performance with the interpreter core a lot more even across games. Some games getting easily twice the performance as VBA Next while some games are actually 100fps lower than VBA Next seems to indicate that there is room for improvement here.

– Do the same as what I did with VBA Next/VBA-M cores and just ‘bake in’ the needed ‘assets’ that this emulator needs. Right now it needs a file called ‘game_config.txt’ present in the system directory which enables some idle loop optimization speedhacks among other things. This should all just be baked into the core later on.

– Make it big-endian compatible so it can run on consoles and PowerPC-based Macs.

– (If I have time to waste) write a PPC dynarec so we can really have a fast GBA core on PowerPC-based targets.