The Legend of Zelda: Ocarina of Time [1] – Emulation on Android

I decided to finally continue my Legend of Zelda Challenge. Since I now have an Archos Gamepad, I can play it on the go (for the most part). Of course, this meant I had to set up N64 emulation on the Gamepad and, more importantly, set it up to make Ocarina of Time work with minimal issues. Nintendo 64 emulation leaves something to be desired even on PC, so I had some work before me. Thankfully, I managed to find the proper emulator and tweak the settings to the point where the game runs pretty well, works with few issues and looks pretty good.

 The best Android Nintendo 64 Emulator?

Beats me!

What I can say, though is that, out of all the emulators I tried out, Ocarina of Time runs the best on Mupen 64 Plus AE. I didn’t try out too many, but it beats the Retroarch N64 core and the N64oid out of the water. There are two versions of the emulator on the Play Store. One costs 99 cents, while the other is completely free and both are exactly the same. The paid one exists purely if people want to show support to the developer.

Ocarina of Time -Gohma

Pictured: An early screenshot. After I fixed the issues, but before I upped the graphics a bit.

On default settings, the game did not run well, though, so I had to do some testing and tweaking.

Referential hardware

As I said, and will repeat several times through this article, I’m emulating Ocarina of Time on an Archos Gamepad. It’s a 7″ tablet with physical buttons, intended to be a gaming device. It’s low-budget and not very powerful, but it’s able to emulate PlayStation and Nintendo 64 games adequately. Just for reference, I’ll list its hardware specifications.

  • Screen: 7″, 1024 by 600 resolution, 170 points per inch.
  • CPU: ARM Cortex A9, Dual Core, 1600 MHz
  • GPU: Mali-400, Quad Core
  • RAM: 1 GB
  • Storage: 8 GB, with Micro SD slot.
  • Physical Buttons: Dual Analog, PSP style, D-Pad, 4 main face buttons. Two triggers, two extra buttons on each side, above the analog sticks. Start and Select buttons below the analog sticks.
Archos Gamepad

Pictured: The Archos Gamepad, to make the button arrangement clearer.

Optimal Mupen64 Plus AE settings for Ocarina of Time

Let’s do this screen by screen.

Since we have to choose the correct plugins first, let’s go to the Plugins sub-menu.

Settings > Plugins

  • Video -> gles2rice
  • Input -> inputandroid
  • Audio -> mupen64plus-audio-sdl, v2.0
  • Reality signal processor (RSP) -> mupen64plus-rsp-hle, v.20
  • Emulation core -> mupen64plus-core, v2.0
  • R4300 emulator -> dynamic recompiler (dynarec)

The video plugin is the most important here and with the other two (gles2n64, gles2glide64), I couldn’t get rid of texture flickering during gameplay. This one also had flickering on default settings, but I was able to tweak them to the point of getting rid of them.

Ocarina of Time -Meeting Zelda

Pictured: The memorable moment when Link meets Zelda.

Now that plugins have been selected, it’s time to set up each of them individually.

Settings > Video

  • Screen orientation -> landscape. This is purely by preference, but I’ll mention it anyway
  • Vertical screen position -> middle. This is also preference.
  • Rendered resolution -> 800×600. This will affect game speed. My Archos Gamepad handles this resolution fine and could even go a bit higher. Go lower if there’s stuttering or other types of low performance.
  • Screen scaling -> stretch. Without his, too much screen real estate seems wasted on my device. Purists will probably go with Zoom here, since it fills up as much screen as possible while not distorting anything.
  • Action bar opacity -> 30%. Again, pure preference. Doesn’t really affect much.
  • Display framerate -> Never. Enable it to test out speed, but no need to show it during actual gameplay.
  • Flicker reduction -> Auto-detect from phone/tablet model. The plugin seems to detect it fine on my device and flicker is completely gone. If it doesn’t work on your device, try out all the settings in order. If none work, you’ll need to try a different video plugin.
  • RGBA_8888 mode -> off. I haven’t noticed any difference on my device.
  • Auto frameskip -> off. The game runs on full speed, but when I enable this, it starts to lag.
  • Fast texture loading -> on. Works, and I haven’t seen any downside to it.
  • Texture filtering -> on. Works and game still runs on full screen on my device.
  • Screen update method -> First CI change. When switching to a wrong setting, I get a black screen here, so if you get the same, this might be the culprit.
  • Texture upscaling/enhancement -> None. I find that this works better with 2D games, usually.
  • High resolution textures -> off. This is outside the scope of the setup. I haven’t been using it, but it enables you to load a custom texture set, making the game potentially look way different. There are different packs made by different groups of fans, so give it a try if you’re into experimentation.
  • Fog -> on. Works for me and makes the game look slightly better. Turn it off if it causes slow down or glitches.

Settings > Audio

This is another set of important settings. If configured incorrectly, sound will badly stutter during gameplay. The actual settings are simple, though.

  • Audio buffer size -> Ultra low latency (experimental). Any other option here causes stuttering on my device.
  • Swap audio channels -> off. I guess turn it on if you notice the directionality of the sounds you hear is the opposite of what it should be.
  • Resampling algorithm -> sinc (fastest). Any other setting here causes stuttering on my device.

Settings > Input

You’ll have to go by preference here and if you’re on a regular tablet or phone, you’ll have to stick to an on-screen touch gamepad. If you have physical buttons, though, a few tips specific to Ocarina of Time will now follow.

  • The Z-button is far more important than the L button, so consider putting the Z-button as the left shoulder button and delegating the L button to some other, less prominent place. If you have two pairs of shoulder buttons, then there’s no issue really.
  • The C buttons are also quite important. The Archos Gamepad has dual analog sticks, so I’ve mapped the C-buttons to the right stick. It works fine, since you don’t need a huge amount of precision with them, only the ability to quickly press them.
  • A and B are by far the most used, so set them up as face buttons, the way they should be.

The best case scenario for Ocarina of Time is a physical gamepad with two pairs of shoulder buttons, a proper analogue stick and a set of six face buttons. I have yet to see something like that, though.

General thoughts on the playability of Ocarina of Time on Android

In my opinion, physical buttons are a must here. The game is complex and you’ll be frequently pushing a lot of keys simultaneously. Precision is also required in most cases so a touch screen gamepad will just be annoying.

Ocarina of Time -Fairy Fountain

Pictured: A typical fairy fountain.

With the settings above, the game runs smoothly on my Archos Gamepad, but there are still cases when it will simply lock-up. In that case, leaving the emulator will cause it to auto-save and you won’t be able to reload from that save state any longer, or any other state you save into at that point. Basically, the only way to continue after the game locks up is by loading an actual, proper, in-game save, so do make sure you save often, or face losing a lot of progress.

Ocarina of Time -Death Mountain

Pictured: The path to Death Mountain. Sadly, I’m unable to get rid of the black bottom bar on Android 4.1.

Luckily, you can save your progress at any time. Your location doesn’t stay memorized, so you start back at home and need to run back to where the game crashed, but the progress itself will be saved. Simply go to the start menu and press the B button to save at any point in the game. Do it often.

My progress in Ocarina of Time

I had a lot of issues when I initially tried to play the game on my Archos, to the point where I wanted to immediately give up on it and play it on PC at some later point.

After managing to set it up and getting past the Deku Tree dungeon, I had my first lock up happen to me, making me waste about fifteen minutes of progression. That was my second consideration of giving up.

Ocarina of Time -Dodongo

Pictured: The Dodongo Boss Battle

Now, I’m three dungeons in and I’ve explored a big part of the world out of order, so I’m basically too deep into it to give up. Hopefully, I won’t have something game-breaking happen to me and if it does happen, I’m sure I’ll be able to somehow transfer the ROM and the save to the PC and continue there.

I’m enjoying myself. As different as this first 3D Zelda is to classic Zelda games, I find it at least as charming as I did A Link to the Past.

I’m also taking it easy, trying not to resort to guides or walkthroughs. Even when I’m not sure where to go next exactly, I’m still able to explore and progress in some way, thanks to all the secrets and side-quests the game contains.

The fighting is fun to and the controls work fine on my device after a period of getting used to them.

One thing is for sure, though. It does play differently to A Link to the Past. Way differently. The underlying formula is the same, but how you go through it is totally different.