Repository navigation
Combo Ship for Android 0.4.5
Combo Ship for Android 0.4.5, the Ocarina of Time + Majora's Mask combo randomizer for Android phones. It is an unofficial Android port of ComboShip, a cross-game randomizer inspired by OoTMM and built on Ship of Harkinian and 2 Ship 2 Harkinian. Both games run natively in one app, with no emulator and no PC needed.
No ROMs are included. You need your own legally obtained OoT and MM ROMs. This is an unofficial fan project, not affiliated with Nintendo, Harbour Masters, the 2 Ship 2 Harkinian team, the OoTMM team or upstream ComboShip.
The README explains everything the app includes and how it differs from upstream ComboShip.
New in 0.4.5: the OoT view now has the same D-pad and right-stick ocarina switches as MM, Home presets follow OoTMM 32.3's Default, Beginner and Allsanity presets, and MM's save prompt has an English SAVE title.
Download and install
- On your phone, under Assets below, tap
ComboShip-Android-0.4.5-arm64.apk(about 45 MB), not "Source code". If your browser warns about the file, choose Download anyway. - Open it. If Android asks, allow your browser or file manager to install unknown apps. The app is not from Google Play and is signed with a development key, so Google Play Protect may warn you. You can still install it, usually with More details, then Install anyway.
- First install: copy your two ROM files to the phone first (unzip them if they are in a
.zip). Open Combo Ship and tap Allow file access. On Android 11 and newer, turn on the switch Android shows, then go back. Choose your OoT ROM, then your MM ROM. The game starts by itself; choose Extract on the ROM Setup panel. At the file select, tap Menu, then Apply preset on Home, then Randomizer → Generate → Generate combined seed. Tap Return to game, pick an empty file (File 1 unless you changed it), wait for Seed ready for OoT + MM, and choose Start Randomizer. Full steps: README. - Updating an earlier Combo Ship build: install over it. Do not uninstall first or clear app data. Your ROMs, saves and settings are kept, and saves keep their seeds. The first launch after an update may take a few extra seconds. Installing 0.4.5 over earlier builds has not been tried on a phone yet, so make a backup first with App options → Back up saves and settings.
An APK built by someone else, including one you built yourself, has a different signature. This APK cannot install over it.
Requirements
- Android 9 or newer, 64-bit ARM (arm64-v8a), OpenGL ES 3.0.
- Your own ROMs, as raw
.z64,.v64or.n64files (not ZIP):- Ocarina of Time: a normal (not Master Quest) ROM that Ship of Harkinian accepts. Tested: N64 USA 1.0.
- Majora's Mask: N64 USA 1.0 or GameCube USA. Tested: N64 USA 1.0.
What's new
- D-pad and right-stick ocarina in OoT. Settings > Controls > Ocarina input now shows "D-pad ocarina" and "Right stick ocarina" in both the OoT and MM views. Each view's switches set that game only, so turn them on in each view you want. Before, OoT's switches were hidden inside Controller mapping. If you had already turned OoT's on there, it stays on.
- Home > Apply preset follows OoTMM 32.3's Default, Beginner and Allsanity presets for every option Combo Ship has. For example, Allsanity now turns on the MM spells, boots and tunics with their shared versions, and Beginner shares only what OoTMM's Beginner shares. A file only changes when you apply a preset to it. The remaining small differences are listed in the changelog.
- MM's pause "Would you like to save?" page has an English SAVE title, the one OoT's save page uses. 0.4.4 showed no title.
How this build was tested
- Native ARM64 build, APK packaging, lint and APK checks passed.
- 129 automated tests, run on the developer's Windows PC, pass. 2 tests that cannot run on Windows were skipped.
- On an Android 15 emulator (ARM64 code through translation, software GPU, audio off), on the 0.4.5 candidate:
- With OoT's D-pad ocarina on, Zelda's Lullaby played on the D-pad was recognised; with it off, the D-pad did nothing. The OoT and MM switches are independent.
- MM's save prompt shows the SAVE title.
- Seeds from the Allsanity and Default presets generated and passed the generator's automatic playthrough check, which confirms in logic that a seed can be finished. The Allsanity seed has the MM spells, boots and tunics on. Beginner was not generated on the emulator.
- Every menu tab opened in both views. No crashes.
- Also checked on 0.4.4 since its release: the OoT tracker marks the Tektite grotto's underwater item and the cow grotto's Gold Skulltula token as Seen; adult Link in MM entered by three routes, made round trips, climbed, fought, transformed and rode Epona; the Zora Tunic and Hover Boots work in MM.
- Not tested on a phone. No Combo Ship build has had a complete seed playthrough so far.
Known issues
- Song of Soaring in OoT works at any age. In OoTMM it works only as child unless Ageless Soaring is on.
- Adult Link playing an ocarina in MM uses MM's normal ocarina camera, as in OoTMM, so his hands can hide part of his face. This is intended.
Known limits
- Early build. Most testing is on an emulator, plus some checks on the owner's own phone.
- Touch controls and game controllers both work on the owner's phone.
- Not yet checked on a real device: audio delay and quality, keyboards, SD card storage, mods, MM cycle resets, multiplayer over the Internet.
- Seeds and patches from the OoTMM website do not work. Use the built-in generator.
- MM and cross-game entrance shuffle are not available yet.
- No Windows, Linux or macOS builds here. On a PC, use upstream ComboShip.
- Based on upstream ComboShip as of September 17, 2026. Later upstream changes are not included.
- Not on Google Play, and the app does not check for updates.
Help wanted
- Back up first, then install over your earlier build. Your saves should load as before in both games.
- In the OoT view, turn on D-pad ocarina and play a song with the D-pad.
- As adult Link in MM (Cross-Games Age), jump a fence on Epona, open a chest, and try a hot floor with and without the Goron Tunic. These were not reachable on the emulator.
Report problems in Issues, not to upstream projects. Include the app version, your phone model and Android version. App options → Back up saves and settings makes a ZIP with logs. It has no ROMs, but it does include spoiler logs.
Checksums
- APK SHA-256:
ea49f0c33c531a452aafe47ff9c2731abc5090c5bd62de5c0cb090d2b9a11ccf - Signing certificate SHA-256 (Android Debug, same key as earlier Combo Ship builds):
162c4deb267e71cee159fffe81be7a0dc582f2aad126b599d3a43bd7d6246676 - Source: tag
v0.4.5-android, commita2fb18a7.
Licenses
License notices: see THIRD-PARTY-NOTICES.txt under Assets below, and the README. It adds the Fast3D, ZAPDTR, OTRExporter and OoT-Randomizer license texts that the 0.4.5 APK does not include yet.
Full changelog: ComboAndroid/docs/CHANGELOG.md
Unofficial fan project, not affiliated with Nintendo, Harbour Masters, the 2 Ship 2 Harkinian team, the OoTMM team or upstream ComboShip. Built largely with AI coding agents. No ROMs or ROM-extracted game archives are included.