Kit Kat Issues & Fixes

There are several issues with Kit Kat that may affect your Shield device.  The two big ones are the SD Card security issues and the reported slow downs with various emulators like the Broglia series and even the popular RetroArch.

Emulator Issues

Broglia acknowledges the issues with his emulators:

Hi, this is a known issue and from my testing I found 2 problems with the 4.4 update:

1. The CPU speed decreases to very low levels if you don’t push any buttons on the gamepad, causing dropped frames
2. The refresh rate is now incorrectly reported as 60.03Hz when it’s actually 59.94Hz causing timing issues
I reported these problems to Nvidia and they said they’re looking into it. Hopefully they can fix this in the next OS update.

While some emulators seem unaffected, many suffer from stuttering, slowdown, audio hiccups and other performance issues.  It isn’t documented completely just how many emulators and apps are affected – but there are many.

MicroSD Card Issues

The Kit Kat SD Card security restrictions are very much public knowledge.  For those that may not be familiar with this – it goes something like this.

Apps and games can only alter files and write to folders in the ones that they create. They can READ from them all, but they cannot update any files in a folder they didn’t create nor can they create new files in any folder they didn’t create.

At first glance, this doesn’t sound very restrictive, does it?

Consider this. Let’s say you have a really fun NES emulator that you love and have been happily using under Jelly Bean (Android 4.3). You have a microSD card with a folder in it called ROMS and within that is a folder called NES. Within that folder you have Mario Bros. and a couple other games (which of course you rightfully own – no piracy going on here). Your fun NES emulator is loaded with features; it can used ZIPped rom files, it does save states while you’re playing – and even more.

You take the update to KitKat. At first, all seems right with the world. Some of your games work, but others crash the emulator all the sudden. Your save states load, but when you try to save a new state, the emu crashes again. What the heck is going on? Maybe your NES emulator won’t even run anymore.

This was all because of KitKat’s security changes to your microSD card. Games that were already unzipped loaded and played fine, but ZIPped ones couldn’t because the emulator tries to unzip them in the same folder (it didn’t create the folder, so it can’t write to it). You can load your original save states because KitKat allowed it to read the .sav files – but you can’t create new ones because KitKat won’t let it write them to the folder. Your emulator might not even RUN anymore because it saved it’s own config file info in that folder, and on startup it tries to update that config with a “last run” date and time – which crashes the emulator completely.

Solutions

Rolling back to Jellybean has been a popular solution for many Shield owners.  There are tons of posts out there from people that have rolled back to 4.3 and are falling back in love with their Shield.  That means, of course, that you can’t take any future update from Nvidia – and it really isn’t what you should have to do in order to use your device.

Since your CPU is being throttled back when there is no game pad activity, a better solution is to restrict just how low the operating system can actually throttle down.

This can be accomplished by using a tool to force your CPU to stay within a certain min/max range.  The tool we’ll use is SetCPU.

SetCPU requires root access which we cover in this article.  It is pretty quick and simple – and you don’t have to unlock the bootloader.

Once you have root and SetCPU installed, you have a few options.  You can permanently set your system to stay running faster and avoid the issues all together.  This is as simple as tapping the SET AT BOOT option and setting the MIN CPU speed to 918 (or possibly a notch higher).  Set it, forget it.  Next reboot, the settings will be set again for you.

Unfortunately, this will tax your battery and you will definitely see the difference.

You could just set this value on demand (as seen in my video) when you need it and revert it when you’re done.  That could be a nuisance though.

Your last option it to use PROFILES within SetCPU.  This lets you choose CPU profiles per application.  The new CPU settings only kick in when you are actually running that application.  This can be set to run at boot up, meaning you can fire and forget it.

NES emulators need 918, while SNES might require something higher.  You might have to experiment to get the exact results you desire.

The other solution that seems to work is to switch the Shield into Console Mode.  When you’re using HDMI out to a TV and in Console Mode, this Kit Kat effect doesn’t appear to be present.  I imagine the Shield kicks up the CPU when it needs to output in 1080p.

Leave a Reply