Found a post on XDA about building Super Mario 64 for Android using Termux, & figured I’d try it out for fun.
Source: XDA Developers: Super Mario 64 can be natively run on Android without a Nintendo 64 emulator
Their instructions worked fine, so below is really just a copy & paste from the XDA post:
➜ ~ pkg install git wget make python getconf zip apksigner clang
Checking availability of current mirror: ok
Reading package lists... Done
Building dependency tree
Reading state information... Done
apksigner is already the newest version (29.0.2-5).
clang is already the newest version (10.0.1-2).
getconf is already the newest version (0.5-1).
git is already the newest version (2.28.0).
make is already the newest version (4.3-1).
python is already the newest version (3.8.5).
wget is already the newest version (1.20.3-3).
zip is already the newest version (3.0-5).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
➜ ~ cd Development
➜ Development git clone https://github.com/VDavid003/sm64-port-android
Cloning into 'sm64-port-android'...
remote: Enumerating objects: 15616, done.
remote: Total 15616 (delta 0), reused 0 (delta 0), pack-reused 15616
Receiving objects: 100% (15616/15616), 22.76 MiB | 5.71 MiB/s, done.
Resolving deltas: 100% (7567/7567), done.
➜ Development cd sm64-port-android
➜ sm64-port-android git:(master) cp ~/storage/shared/Super\ Mario\ 64\ \(USA\).z64 baserom.us.z64
➜ sm64-port-android git:(master) sha256 baserom.us.z64
The program openssl is not installed. Install it by executing:
pkg install openssl-tool
➜ sm64-port-android git:(master) pkg install openssl-tool
Checking availability of current mirror: ok
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
openssl-tool
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 185 kB of archives.
After this operation, 643 kB of additional disk space will be used.
Get:1 https://dl.bintray.com/termux/termux-packages-24 stable/main aarch64 openssl-tool aarch64 1.1.1g-4 [185 kB]
Fetched 185 kB in 0s (214 kB/s)
Selecting previously unselected package openssl-tool.
(Reading database ... 14219 files and directories currently installed.)
Preparing to unpack .../openssl-tool_1.1.1g-4_aarch64.deb ...
Unpacking openssl-tool (1.1.1g-4) ...
Setting up openssl-tool (1.1.1g-4) ...
➜ sm64-port-android git:(master) sha256 baserom.us.z64
SHA256(baserom.us.z64)= 17ce077343c6133f8c9f2d6d6d9a4ab62c8cd2aa57c40aea1f490b4c8bb21d91
➜ sm64-port-android git:(master) md5sum baserom.us.z64
20b854b239203baf6c961b850a4a51a2 baserom.us.z64
➜ sm64-port-android git:(master) ./getSDL.sh
~/Development/sm64-port-android/SDL ~/Development/sm64-port-android
--2020-09-20 11:56:47-- https://www.libsdl.org/release/SDL2-2.0.12.zip
Resolving www.libsdl.org... 2604:a880:1:20::181:e001, 192.241.223.99
Connecting to www.libsdl.org|2604:a880:1:20::181:e001|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6784187 (6.5M) [application/zip]
Saving to: ‘SDL2-2.0.12.zip’
SDL2-2.0.12.zip 100%[=======================================================================>] 6.47M 5.65MB/s in 1.1s
2020-09-20 11:56:49 (5.65 MB/s) - ‘SDL2-2.0.12.zip’ saved [6784187/6784187]
~/Development/sm64-port-android
➜ sm64-port-android git:(master) make --jobs 4
...
cp build/us_pc/sm64.us.f3dex2e.unsigned.apk build/us_pc/sm64.us.f3dex2e.apk
apksigner sign --cert certificate.pem --key key.pk8 build/us_pc/sm64.us.f3dex2e.apk
➜ sm64-port-android git:(master) ls
Android.mk Makefile.split assets charmap.txt enhancements key.pk8 sm64.jp.sha1 text
CHANGES README.md assets.json charmap_menu.txt extract_assets.py levels sm64.ld textures
Dockerfile SDL baserom.us.z64 data first-diff.py lib sm64.sh.sha1 tools
Doxyfile actors bin diff.py format.sh rename_sym.sh sm64.us.sha1 undefined_syms.txt
Jenkinsfile android build diff_settings.py getSDL.sh rsp sound
Makefile asm certificate.pem doxygen include sm64.eu.sha1 src
➜ sm64-port-android git:(master) ls build
us_pc
➜ sm64-port-android git:(master) ls build/us_pc
actors bin endian-and-bitwidth level_rules.mk lib rsp sm64.us.f3dex2e.unsigned.apk src textures
assets data include levels libmain.so sm64.us.f3dex2e.apk sound text
➜ sm64-port-android git:(master)