Super Mario 64 Aptoide
Super Mario 64 can be natively run on Android without a Nintendo 64 emulator
Super Mario 64 is one of the most iconic and influential video games of all time. It was released in 1996 for the Nintendo 64 console and introduced many innovations to the 3D platforming genre, such as a dynamic camera system, analog control, and large open worlds. The game has been re-released twice, once for the Nintendo DS in 2004 and once for the Nintendo Switch in 2020, as part of the Super Mario 3D All-Stars collection. However, if you want to play this classic game on your Android device, you have two options: either use a Nintendo 64 emulator or compile and run the game natively.
An emulator is a software that mimics the hardware and software of another system, allowing you to run games and applications that are not designed for your device. There are many Nintendo 64 emulators available for Android, such as Mupen64Plus FZ, N64oid, and RetroArch. However, emulation has its drawbacks, such as performance issues, compatibility problems, and legal concerns. Emulation also requires you to have a copy of the original game ROM, which is a digital file that contains the game data.
A native port is a software that has been rewritten or adapted to run on a different system than the original one, without the need for emulation. A native port can offer better performance, scalability, and customization than an emulator. However, creating a native port requires access to the source code of the original software, which is often not available or protected by intellectual property rights. This is why some developers resort to reverse engineering, which is the process of analyzing and recreating the functionality of a software from its binary code.
In 2019, a group of developers started an open source project called the "Super Mario 64 decomp project", which aimed to reverse engineer the Super Mario 64 ROM into an equivalent C codebase. The project was based on an earlier effort by another developer who managed to decompile the game's executable file into assembly code. The C codebase generated by the project can be compiled and run on various platforms, such as Windows, Linux, macOS, and even web browsers. The project also allows for modifications and enhancements to the game, such as adding new levels, characters, graphics, and features.
In 2020, another developer named VDavid003 took the C codebase from the Super Mario 64 decomp project and ported it to Android using Simple DirectMedia Layer (SDL) with OpenGL ES 2.0. SDL is a cross-platform library that provides low-level access to audio, keyboard, mouse, joystick, and graphics hardware. OpenGL ES is a subset of OpenGL that is designed for embedded systems such as mobile devices. VDavid003's port can be compiled and run on any Android device that supports OpenGL ES 2.0 or higher. The port also supports saving and loading game progress, as well as using external controllers.
To compile and run Super Mario 64 natively on Android, you will need a few things: a copy of the Super Mario 64 ROM (which you must provide yourself), a PC running Windows or Linux (or an Android device with Termux installed), and some basic knowledge of command line tools. You will also need to clone VDavid003's GitHub repository, which contains the source code and instructions for building the port. Once you have everything ready, you can follow these steps:
If you are using a PC, install the required dependencies for your operating system (such as git, wget, make, python, zip, apksigner, clang, etc.). If you are using an Android device with Termux, install the dependencies inside the Termux environment using this command: pkg install git wget make python getconf zip apksigner clang
Clone VDavid003's repository using git: git clone
Copy your Super Mario 64 ROM file (which must be named baserom.us.z64) into the cloned repository folder using this command: cp /path/to/your/baserom.z64 ./sm64-port-android/baserom.us.z64
Get the SDL includes using this command: ./sm64-port-android/getSDL.sh
Start the build using this command: make --jobs 4. You can increase the value of the "jobs" parameter depending on how many CPU cores you can devote to the building process.
If the build is successful, you will find the resulting Super Mario 64 APK file inside the "build" folder. You can then transfer it to your Android device and install it using a file manager or adb.
Congratulations, you have just compiled and run Super Mario 64 natively on Android! You can now enjoy this classic game on your device without any emulation. However, keep in mind that this port is not an official product of Nintendo and may contain bugs or glitches. Also, be aware of the legal implications of reverse engineering and distributing Nintendo's intellectual property. If you encounter any issues with the port, you can report them to VDavid003 on GitHub or join the Super Mario 64 decomp project Discord server. Happy gaming!