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!)

16 comments:

  1. Will CF3D on my Sensation let me play Order & Chaos?

    ReplyDelete
  2. In principle yes, since I see in the XDA Sensation forums that CF3D does work for the Sensation. Not all games will run perfectly though and some have graphical glitches and so forth. Worth asking at XDA for confirmation that someone else has tried it (unless you can afford to potentially throw away the $7).

    ReplyDelete
  3. After it says checking for su update it does nothing and its still not working

    ReplyDelete
  4. I see you replied to the thread at XDA too - any chance you give some more details over there? Like it was working before/never working/ROM/SU and busybox versions etc...

    ReplyDelete
  5. I have followed all of the steps to a tee. Unfortunately Shadow gun still won't open "Unable to start shadowgun. YOUR DEVICE IS NOT SUPPORTED" Using galaxy s2 W. Please help!!!

    ReplyDelete
  6. it doesn't work. I tried to flash the SU in recovery mode but it freezes at the flashing screen. error message: "E:signature verification fail" or something similar.

    Any clue please?

    Thanks.

    ReplyDelete
  7. @Shadowgunisfun: that sounds like Shadowgun hasn't been configured in Chainfire 3D - how have you set it up there?

    @Anon: there seems to be a myriad of issues, I know that Chainfire's latest Root kernel for the Note seems to play nice with SU - he is writing an update for the SGSII to match it (might even be out now actually). I would flash that one and see if issues are sorted. As to the specific issue with the signature fail - maybe try and redownload the SU file, I've now used that file in my SGSII and one of my Note's and it worked fine.

    ReplyDelete
  8. Got it working finally! smooking...!

    ReplyDelete
  9. try flashing in clockwork mod recovery (shame on you if it's not installed and have a rooted system) and ensure the settings are set to ignore signatures. I had a problem once when I thought I flashed a custom kernel but for some reason CWM didn't work (I was getting the regular recovery mode instead of CWM recovery, and everything I tried to install spit out an error saying can't verify whole file signature). Reflashing the custom Kernal fixed that issue.

    ReplyDelete
  10. Please help. I have a Samsung Galaxy Note that has been rooted. I have the latest version of Chainfire Pro and SuperUser. Everthing works fine but I still cannot see tegra or Gameloft games on the market

    ReplyDelete
  11. Chainfire opens and then it shuts down. Pls help.

    Samsung Galaxy 3 i5800
    Kyrillos 9.4

    ReplyDelete
  12. Chainfire opens and closes within a second
    Samsung Galaxy 3 i5800
    Kyrillos 9.5

    and i installed the "older version of Superuser" too

    ReplyDelete
  13. Still won't work for me, I tried several times.
    I thought maybe it's the binary update and I tried fixing the settings before I updated...

    Still nothing.
    SGN

    ReplyDelete
    Replies
    1. edit: I can play tegra games if I have the apk, it's just the "fix market settings" thing that won't work for me...

      Still SGN

      Delete
  14. 6. Open the Superuser app and check for updates to the SU binary - it will find an update - install it

    i cant update the su

    ReplyDelete
  15. chainfire 3d was working fine a few days ago on my funbook p300. suddenly chainfire shows 'is your device rooted, if yes then reboot may solve the problem'. after reboot, no progress, shows the same.
    while using superuser, when i update binary, it shows access to root directory 'fail'.
    please help.
    thanks in advance...

    ReplyDelete