I’m not responsible for anything that happens to you or your devices as a result of your actions, whether you’re following my instructions or not. Also I cannot provide support if you try any of this, only suggestions. Same disclaimer applies to anything I say, unless you are paying me money for tech support.
Q: Why is this “A crazy man’s guide?”
A: Because I often come up with solutions that cause more problems than they solve. This definitely qualifies.
Q: So what’s the overview of how this works on Android?
A: Start with an Android device, install Debian on it, download and build Citra from source, run Citra on Debian on Android.
Q: And Raspberry Pi?
A: Start with a RPi with Linux installed, download and build Citra, run Citra.
What does text that looks like this mean?
A: That text is formatted as code on reddit. I formatted it that way to indicate terminal commands.
Q: Can you include instructions for Arch, Unix, Linux From Scratch, etc.?
A: I could. But this guide is mainly aimed at Debian and Debian based Linux flavors (Debian, Raspbian, Ubuntu, Linux Mint, etc) so I won’t. If you ask nicely, I might come up with a Google search for you, but I won’t find answers for you.
Q: How do I know my device is capable?
A: I don’t guarantee capability. But you can try this: Google your device’s CPU. Dig around to see if it’s 64-bit. An easy indicator is if your device says it’s core architecture is ARM Cortex-A35 or higher.
Q: Will this even work?
A: I’ll be honest. I have no clue. I’m guessing it won’t even run and if it does, it won’t run properly. I could be wrong. YMMV.
Q: If you don’t know if it will work, why post a guide?
A: Because people are asking about Citra on Android, and people keep saying it won’t work. With this post, I’ve explained how it might work, if it can even work at all.
Q: Your guide is too advanced, can you make it any simpler to understand?
A: This is a bad idea in the first place. Hence why I set the bar where I did. If you don’t understand what’s going on, DO NOT PROCEED! I can’t stress that enough. I can’t save you from stupidity if you insist on being stupid.
Q: Too many links! Put it all in your post!
A: That’s not a question. It sounds like a demand. There’s a couple reasons why I can’t/won’t. 1) I did that on purpose, to encourage you digging for you own information. 2) I think it might blow the 40000 character limit of reddit text posts if I include everything and I’m not willing/too lazy to find out.
Required: A 64-bit device running Android, or a Raspberry Pi (or a competing board such as the Pine64) with a 64-bit CPU running either Android or Linux (Linux is preferred)
Highly suggested: Skills in Android, Linux, compiling programs from source, and Google-Fu.
Anything else: Having an uncluttered Android environment helps, if you have MultiROM or a device you don’t use, find a stripped down custom ROM so Debian has as many free system resources to use as possible. Or you can try running Debian bare metal on your device. If you get it working, that would help with the resource problem immensely.
#Step 0 (Android devices not already running Linux in some fashion, start here)
Find a way to run Debian on Android. If you’re rooted, you can look for a method using chroot. I haven’t gotten any of those working on my Shield Tablet (non-K1, rooted stock Android 7.0). What I have gotten working is GNURoot Debian by following this guide. You don’t need root to use GNURoot Debian.
#Step 1 (All other devices, start here)
Make sure you have
sudo is also a great thing to have installed so you don’t have to use
su (and if you don’t know why, use your Google-Fu)
Check your OpenGL version. You may need to install the Mesa utilities. If you need to, install OpenGL. If you’re OpenGL version is lower than 3.3, update it if possible. Google-Fu may be required. If updating to or past OpenGL 3.3 is not possible, unfortunately, you cannot run Citra.
Find a folder to clone Citra into. On my laptop, I have a folder named git in the root of my /home partition. You can put yours wherever. You can make a directory with
mkdir [FOLDER_NAME] and move into it with
Clone Cirta in git.
git clone --recursive https://github.com/citra-emu/citra This will make a folder named citra. Once the cloning operation is done, move into the citra folder
Build Citra, install it if you want, and run it (or attempt to). The instructions are here.
The only ARM based devices I can imagine running Citra are ones that use the Tegra X1 chipset, including the Nintendo Switch, assuming someone put a custom OS on the Switch and overclocked it’s X1 processor. Out of the 3 consumer available devices (Shield TV, Pixel C, and Switch), the Shield TV has the best shot at running Citra since it can push it’s CPU harder for longer.
Feel free to ask questions. I’ll probably be responding while on mobile so your questions won’t be added to the Q&A section until I can edit it on my laptop.
I posted this on the Citra subreddit as well.
The link to the reddit post is in code because the 2 I already have are essential and I needed 3. My reddit post has more links. I seriously suggest using that one since the links explain a few things.