Problems after updating to Jelly Bean

I’ve been having problems with RetroArch since upgrading my Motorola Electrify M (Razr M with a different name) from Ice Cream Sandwich to Jelly Bean (4.1.2). RetroArch used to work without any issues prior to the update.

The first problem is that games will slow down and audio with crack. I read the guide on here, but the problem still occurs regardless of settings. I’ve tried all sorts of Forced and Calibrated Refresh Rates with and without VSync or any Shader options, but the problem persists. The game will either start off messy state or it’ll eventually become messy.

The second issue is that buttons will sometimes stop working. The game will be running smoothly and the X button will randomly stop working. I’m using an overlay and the jammed virtual button won’t work again until my character is killed. I assume this issue is related to the first.

The cores I use are PCSX-reARMed, FCEUmm, and Gambatte. The above issues can occur in all these cores, but it consistently happens in the PCSX-reARMed core. I play Einhander with the PSX core. I’ve also tried uninstalling and reinstalling the app. I also checked for an enabled Power Saver Mode, but I don’t believe Motorola added one in the Jelly Bean update.

This might be not what you want to hear, but it’s very possible the cause of this is in fact the upgrade to Jelly Bean (4.1.2).

Android is a notoriously resource-hungry and bloated OS, and with every new version the system specs keep increasing. It could be that the vendor screwed something up with the OS update, or Google screwed something up, or one of the ‘bundled’ Java services decides to have a garbage collector party, and so on…

With Android it’s the garbage collector that is your biggest enemy - the garbage collector can at any and all times kick into gear and start ‘cleaning up memory’ - this can be enacted through something as stupid as a weather display app through Google’s own Play Store services which have continuous intervals at which they do ‘store updates’. There is absolutely no way to turn off these ‘services’ from doing what they want to do while an app is running.

These ‘garbage collector stalls’ mess up the audio/video sync in RetroArch, and this causes the bad performance hiccups since after the first GC cleanup there is bound to be a further trashing later on, and then again later on, ad it goes on and on. General games and multimedia video apps I believe just buffer ahead and don’t really have the same kind of issues as emulators that are reliant on relatively stable video/audio sync. Realtime audio apps also perform very badly on Android so maybe that usecase is slightly comparable to the ones we face with emulators (and basically anything that revolves around zero frameskip and a more-or-less consistent refresh rate for audio/video sync).

If you had great runtime performance before with Ice Cream Sandwich then that is what I would recommend going back to. You simply can’t take it to the bank that an OS upgrade in Android land will be necessarily an ‘improvement’ on any host device - it’s entirely dependent on how much crap Google bolted onto this latest update AND what your vendor added to the mix as well. Add to that ever-increasing RAM requirements, ever-increasing CPU requirements and it’s generally a safe bet that you should stick to the Android version that came with your device as it will be generally most optimal for your given device.

AFAIK that is exactly what Sony decided on with Xperia Play when forgoing to upgrade to Android 4.0 and/or Jelly Bean. And there have been other vendors that have chosen their own cut-off points after which they provide no more US upgrades.

These and various other reasons is why I have a very bad impression of Android these days as these kind of huge performance issues simply do not happen on iOS and/or QNX (Blackberry).