n64-featured

ANDROID EMULATION: Nintendo 64 – Get N, or get Out!

Eighteen years ago Sony’s Playstation was ravaging across the globe with little to no competition at all. In an attempt to make the best console ever, Sega unfortunately overcomplicated the hardware design of their Saturn console, effectively keeping the developers at bay as they found the platform to be too demanding to develop for. Two years later, Nintendo decided to step in and tame down Playstation’s domination by introducing the “Project Reality” or, as we know it, Nintendo 64.

A bit of history

Nintendo’s decision to keep using the expensive ROM cartridges limited by their small amount of storage space (about 64mb iirc) in combination with the draconian licensing fees, made many faithful 3rd party developers that previously supported the the NES and SNES (read Square and Enix), turn their heads and start publishing for the competition (Sony and Sega). This resulted in a reduced game library counting a little over 380 games, when even the Saturn had nearly 600 and the Playstation was far ahead with over a 1000 titles. Nevertheless, Nintendo and their 2nd party developers, such as Rare, succeeded fueling the N64 with quality titles, securing its place in history as one of the best family consoles of all time.

Only 3 years after Nintendo 64’s release date, emulators started popping out on the PC. Granted, they were too slow and buggy to do pretty much anything useful in the beginning, until two developers (“RealityMan” and “Epsilon”)  successfully implemented the Glide API into their program that was later known as “UltraHLE”, the first (and only?) emulator that could emulate playable games for a commercially available system (N64 was discontinued in 2003) and demonstrated how powerful (3dfx) GPU chips can be when utilized in real-time emulation. In 2001 the first “Mupen64” emulator was released by “Hacktarux”. The original Mupen64 branched into several different projects few years later, one of which was the Mupen64Plus by Richard Goedeken. Mupen64Plus project undertook a major re-design in 2009, introducing the new plugin API and placing the user interface code in a single software module in order to make the project cross-platform friendly. So, now for the real reason why you’re here. Is Nintendo 64 emulation possible on current gen Android devices? Absolutely.

n64 (1)

How about Android?

All (and by all I mean both) Nintendo 64 emulators on the Android platform are ports of the original Mupen64Plus. The first one is Mupen64+AE (Android Edition) by Paul Lamb, available on the Play Store and the second one is N64oid by “yongzh” that was removed from the Play Store some time ago and is now exclusively distributed by the SlideMe appstore. I tried to get a working copy of N64oid in order to compare it with Mupen64+AE head-to-head, but SlideMe.org refused to charge my credit card for some reason and the source files available here are of no use to me as I neither have the time nor the knowledge to compile it myself. As of the reason why N64oid was removed from the Play Store, all I know is that it had something to do with the GPL licensing (don’t quote me on this). I was really looking forward to try it myself since many people claim it works like a charm and if I manage to obtain a legitimate copy of the emulator any time soon, I will be more than happy to update this article.

But wait, if there are only two Nintendo 64 emulators on the Android, why am I seeing so many apps on the Play Store when I search for “Nintendo 64 emulator”? Because all of them are forks or modifications of the previously mentioned apps. Lots of developers recompile the code implementing their own tweaks or plugins, making adjustments and all sorts of customizations. It’s the beauty of the open-source software. Of course there are people  trying to abuse this by recompiling the software, bloating it up with ads or payment requirements, re-branding it and selling it on the Play Store. So yeah, check twice before you buy.

 

Mupen+AE

There are two versions of this emulator on the Play Store, one is free and the other one costs $0.99. Those 99 cents are for donation only and will not offer more features or better compatibility, but will make you feel good about yourself. Mupen+AE is still in beta which means it is a work in progress. Many games suffer from graphical and sound glitches, speed problems or don’t run at all, but the developer is constantly updating the app, implementing fixes and (most importantly) actively participating in forum discussions regarding his project.

What do I need to get started?

You need the emulator itself and the rom (game) file. Mupen64+AE supports roms in .n64, .v64, or .z64 formats. It can also read zipped roms (.zip), but keep in mind that it will still have to “unzip” them on-the-fly before starting the game and occupy considerable amount of RAM in the process, so don’t be lazy and unzip the roms before transferring them to your SD card. Once you are done copying all the games you need, disconnect the cable and launch the emulator. Mupen64+AE will automatically scan all your removable media for compatible games and all you have to do is choose the right one and tap start. That’s it.

One of the best features of Mupen64+AE is the support for external controllers. Basically, anything will work as long as it pairs with your device. Just connect the USB cable of your external gamepad (or pair it over Bluetooth), launch the app, tap settings, tap controller and map all your buttons. When done, click the profiles tab and save the profile for future use. If you happen to use some of the more popular gamepads such as the Xbox360 or the PS3 Sixaxis, you can just load the predefined profile and be done with it. Yes, even the Xperia Play is fully supported.

If you still live in denial and want to lie to yourself that playing with the touchscreen is fun, Mupen64+AE will provide you with suitable on-screen buttons that you can happily bash while struggling to get Mario perform a double jump :) There is nothing wrong with the on-screen buttons, or the emulator itself, it’s just the flat surface of the touchscreen that breaks the moment and your fingers covering the better part of the screen unless you play on some tablet with gigantic proportions. No, seriously, if you wish to experience the emulation “in all its glory”, buy some cheap gamepad. *(ads conveniently placed at the bottom of this page)

n64 (30)

Different games will require different settings, or even different video plugins. This is one of the biggest drawbacks of Mupen64+AE at the moment, as it does not support per-game settings. The developer however, confirmed that this option should be available in the next major release (v 3.0) of the emulator, but for now you will have to switch back and forth between plugins and settings as you change games.  This is completely situational and hardware dependable. There are no “default” settings that work across all devices. If you experience some graphical glitches, the first thing you should try is change the video plugin by visiting the settings menu, tapping the “Plug-ins” sub-menu and tapping “Video”.

Here you can choose one of the 3 plugins (by default), the gles2n64, gles2rice and gles2glide64 and the Null (None) option that disables the video completely (you don’t want that obviously).  Once you find a plugin that works for you, but you are experiencing low fps or jerky gameplay, you can tweak the video options even further by going in the settings menu and tapping the “Video” sub-menu. If that doesn’t help you can also disable the sound completely by re-visiting the “Plug-ins” section and choosing the “Audio plugin” sub-menu.

Mupen64+AE offers all the standard features such as instant game saves, adjusting the game speed and cheats. Whether you quite the game intentionally, or the gameplay is interrupted by other means (receiving a phone-call for example), Mupen64+AE will auto save the state before quitting, so you can comfortably resume later without fear of losing your progress.

This covers the basics you need to know. If you wish to get involved in the development, testing,  bug-fixes, or simply want to participate in the community, ask for help and hang around, visit Paul’s forum dedicated to Mupen64+AE. Just remember, when asking for help, provide all the necessary info’s including your device model, Android version, emulator version, the game in question and detailed description of the problem. To wrap it up, here is a list of all the games I tried on various devices and the settings used.

  • Super Mario 64 – default video plugin. Runs fine on Samsung i9100 (JB 4.1), Nexus 7 (JB 4.1), needed frame skipping (3-4) on Motorola OG Droid (GB 2.3.7) overclocked to 1 ghz
  • Paper Mario – gles2glide64 provided best results and no flickering. Worked fine on both i9100 and Nexus 7, did not run on OG Droid
  • Mario Party 3 – gles2n64 turn off “Depth Test” in video options, decent speed on all devices
  • Mario Kart 64 – gles2n64 decent speed on i9100, some slowdowns on Nexus 7, big slowdowns on OG Droid
  • Zelda Ocarina of Time – gles2glide64, slowdowns on i9100, decent speed on the Nexus 7, unplayeable on OG Droid

by Dejan B.

If you wish to try your luck with N64oid instead, follow this link.

Mupen64+AE

Mupen64+AE FREE (N64 Emulator)
Developer: Paul Lamb
Price: Free

Mupen64+AE – donation to support the developer

Mupen64Plus AE (N64 Emulator)
Developer: Paul Lamb
Price: $0.99

SuperN64 – variation of Mupen64+AE with performance enhancements for specific devices such as Nexus 4 and Galaxy S4