Repository navigation
Combo Ship for Android 0.4.6
Combo Ship for Android 0.4.6, 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.6: shuffled silver rupees keep their own checks instead of refilling a room with other items.
Download and install
- On your phone, under Assets below, tap
ComboShip-Android-0.4.6-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.6 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
- Shuffled silver rupees no longer refill a room with new items. Each silver rupee works out which check it is from a counter that should restart whenever a room loads. The restart never ran, so on later visits a room's rupees took other checks' numbers and showed their items. Each rupee now always shows its own check, and a collected one stays gone, as in OoTMM. Items already picked up this way are kept, and those checks count as collected.
- An OoT room kept shut by a missing enemy soul now opens normally once you have the soul and come back.
How this build was tested
- Native ARM64 build, APK packaging, lint and APK checks passed.
- 128 automated tests pass (3 skipped on Windows), including a new check that the room restart stays connected.
- An independent code review traced the restart through room loads, doorway transitions, scene loads, voids and save loads.
- This fix was released for phone testing without an emulator run. Not tested on a phone.
Known issues
- MM's missing-enemy-soul room lock has the same missing restart: an MM room kept shut by a missing soul can stay shut after you get the soul. A fix is planned for the next build.
- Adult Link playing an ocarina in MM uses MM's normal ocarina camera, as in OoTMM. 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
If you play with shuffled silver rupees, please check that a silver rupee room keeps the same items when you leave and come back, and that collected ones stay gone.
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:
3546611eb7eb4ec6370c977774fbdcfe4dee1c3b6e5d5b6263b72b3b816afc2b - Signing certificate SHA-256 (Android Debug, same key as earlier Combo Ship builds):
162c4deb267e71cee159fffe81be7a0dc582f2aad126b599d3a43bd7d6246676 - Source: tag
v0.4.6-android, commit5518055d.
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.6 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.