Saturday, 29 October 2011

[UPDATED GUIDE] New Superuser version breaks Chainfire 3D - guide updated to show you how to fix it!

Trust me, you want this on your Android handset

So a few of you may have noticed a certain "Tegra-only" game release on the Market in the last few days - the utterly epic Shadowgun. If you're like me your first thought would have been "I wonder if I can play that on my non-Tegra device with Chainfire 3D?" If you tried to get it you may have run into a problem Chainfire 3D appears to have completely stopped working. Motivated by the need to get it working again, so I could enjoy me some Shadowgun on my Galaxy S II, I spent some time troubleshooting the problem today. I can happily report that I seem to have cracked the problem, and another editor has verified my fix works (he is currently missing, presumed fragging mutants in Shadowgun on his SGSII).

If Chainfire 3D is no longer working, or possibly never worked for you, read on to find the solution!

[Hint: head to the bottom of the guide if you only need the Superuser fix]

[Pre-reading with important disclaimers here, and here]

OK, I know I said the next [At Your Own Risk] instalment would be about flashing custom ROMs to your phone, dealing specifically with the Galaxy S II as a worked example... ...Well frankly I got bored writing that one and diverted to something I find more interesting - how to play Tegra 'exclusive' titles on your non-Tegra handset. Don't worry, the custom ROM flashing guide is definitely coming, it's just been postponed briefly.

The deal with Tegra 'exclusive' titles is that Tegra wanted to push it's own hardware, and by means of various undisclosed inducements, got some excellent game developers to make titles that would only run on their hardware. Bad Nvidia. That lead to some pretty disappointed owners of non-Tegra handsets, not the least of which were Galaxy S II owners who were packing the best graphics processing unit (GPU) available in any Android handset, but found themselves unable to really put it to use.

To find out how to battle the evil Nvidia Empire's malevolent plans for gaming hardware fragmentation, read on!

So now that you know what Nvidia's up to, the question is what can you do about it?

Enter Chainfire 3D. Chainfire 3D (CF3D hereafter)  is basically an intermediary between a games code and your phones GPU. You can think of it as an interpreter for when a game doesn't speak your GPU's language. We're going to show you how to get CF3D up and running on your Rooted handset in today's guide.

CF3D's driver installation screen
What you'll need:

  1.  A Rooted handset, in the guide I'm using a Galaxy S II specifically
  2. CF3D from the Market - either free or pro (I recommend splashing out for the pro version, more on why later)
  3. The right plug-ins, unfortunately I can't link to them directly here, but suffice to say that a Google search along the lines of "chainfire plugin" might point you in the right direction
  4. In addition to the above some games need specific shader files in order to run - Riptide being the prime example (most up to date Riptide shaders are here)
What to do:
  1. Copy the plug-ins and shader files to your phone (CF3D will scan all available storage, so it doesn't matter where you put them)
  2. Install and run CF3D
  3. Install the CF3D drivers, if you install the beta-drivers you'll have more options later on as you'll see below. Your phone will reboot afterwards
  4. Once it has rebooted open CF3D again, scroll down to Install plugins/shaders and select that option. CF3D will scan your phone to find the files.
  5. Once it's found them install all the ones you want to use
  6. Select Fix Market settings in CF3D - once done you'll be able to see titles in the Market that weren't visible to you before because the Market identified your phones hardware as being incompatible (for example you installed only the Nvidia plugins on your non-Tegra device you'll now be able to see Tegra 'exclusive' titles in the Market, whereas before you couldn't)
  7. Once you've installed the titles you can configure CF3D to use the relevant drivers to run them - this is where the Pro version shines because it will let you have per-app individualised settings
  8. If you installed the beta-drivers in CF3D then you'll have additional options available to you, for example adding up to multi-sample anti-aliasing (MSAA) to improve the games visuals!
...and that's it, you're good to go.

In terms of which Tegra titles are worth your hand-earned I'd recommend Riptide GP (this will soon be coming to all Android handsets via the Market in any case), which sets the high bar for Android gaming graphics, and well as being an excellent game to boot. Sprinkle is a great physics-based puzzler, and Samurai II, Galaxy on Fire II, and the Tegra HD version of Fruit Ninja are all titles worth checking out too. 

An 'exclusive' Tegra title in the
Market on my Galaxy S II
Bear in mind that Chainfire 3D isn't limited to helping you run Tegra titles though, it'll also let you run Gameloft titles that aren't yet available for your phone via the Qualcomm or PowerVR drivers too (or any other title for different hardware that uses one of the plugins available to CF3D).

That's all there is for today's [At Your Own Risk] segment. If you're now blasting some 'incompatible' games on your Rooted Android handset, or if you think we missed something out in the guide, we'd love to hear about it in the comments section below. Ciao!

[Update on how to fix Chainfire 3D problems with Superuser]

Basically the skinny is that the newest version of Superuser doesn't work with Chainfire 3D, so if you updated to it, or like me, flashed a ROM with the latest build pre-packaged into it, you'll need to follow the following simple steps to resurrect CF3D:

  1. Download this older version of Superuser, copy it to your phone
  2. Reboot into recovery and select "Install Zip from SD Card"
  3. Select "Choose zip to install" 
  4. Navigate to the SU zip you saved earlier and flash it
  5. Reboot your phone
  6. Open the Superuser app and check for updates to the SU binary - it will find an update - install it
  7. +1 this article, retweet it, and "Like" our page on Facebook
  8. Chainfire 3D should be functional again, check by running a Tegra game already installed on your device that had stopped working, or select "Fix Market Settings" and search for a Tegra-only app - you should now be able to see them in the Market (my suggestion is search for Shadowgun and install it ASAP!)