The Legend of Zelda: Ocarina of Time · Ship of Harkinian (PS4)
The Legend of Zelda: Ocarina of Time
About the project
The Legend of Zelda: Ocarina of Time es un videojuego de acción-aventura de 1998 desarrollado por la filial Nintendo EAD y publicado por Nintendo para la consola Nintendo 64. Fue lanzado en Japón el 21 de noviembre de 1998, mientras que a Norteamérica llegó dos días después, el 23 de noviembre, y en Europa se estrenó el 11 de diciembre de ese mismo año. Para el caso de Sudamérica, fue presentado en Chile el 23 de noviembre de 1998 en un evento especial para periodistas.
12 versions of The Legend of Zelda: Ocarina of Time
You're viewing: Ship of Harkinian (PS4)
Ship of Harkinian (PS4)github.com/alechurri/shipofharkinian-ps4
Ocarina of Time (GameCube) Decompilationgithub.com/zeldaret/oot-gc
Ocarina of Time (PC, ray traced)github.com/JonB-Dev/oot-recompiled
The Legend of Zelda: Ocarina of Timegithub.com/zeldaret/oot
oot vr · Android (gibranfelix)github.com/gibranfelix/oot-vr
Ship of Harkiniangithub.com/HarbourMasters/Shipwright
Ship of Harkinian (Android)github.com/linkzenic/Shipwright-Android
Shipwright Androidgithub.com/please-be-nice/Shipwright-android
Shipwright Android (Outdated)github.com/Waterdish/Shipwright-Android
The Legend of Zelda: Ocarina of Time (oot-dc)github.com/jnmartin84/oot-dc
The Legend of Zelda: Ocarina of Time (Wii Virtual Console)github.com/zeldaret/oot-vcOfficial project information
Ship of Harkinian for PS4
An experimental native port of Ship of Harkinian 9.2.3 "Ackbar Delta" (the PC port of the Ocarina of Time decompilation) to jailbroken PS4 consoles. It is built with the OpenOrbis toolchain and renders through Piglet, Sony's OpenGL ES 2.0 implementation. It is not an emulator.
Download: the installable package is on the Releases page.
Majora's Mask is ported too, in its own repository: alechurri/2ship2harkinian-ps4.
Where everything lives:
| Repository | Contents |
|---|---|
| alechurri/shipofharkinian-ps4 (this one) | Releases, build scripts, CMake toolchain, tests, documentation |
alechurri/Shipwright, branch ps4 | Ship of Harkinian 9.2.3 with the PS4 changes applied |
alechurri/libultraship, branch ps4 | libultraship with the PS4 platform layer and renderer |
None of this contains game assets or Sony binaries. You need your own legally obtained ROM, and the two Piglet modules described in the install guide.
Tested on: PS4 Pro, firmware 12.02, GoldHEN (the author's console), and a PS4 Pro on firmware 9.60 with GoldHEN v2.4b18.12 (reported by a user). Nothing is known yet about the base PS4 or other firmwares. Reports are welcome.
What works
- Graphics, audio, DualShock 4, saves
- 60 fps with frame interpolation, internal resolution up to about 150%
- The full SoH menu: graphics options, enhancements, mod manager
- Master Quest (with an
oot-mq.o2rnext tooot.o2r) - Mods in the old
.otrformat, uploaded as is (tested with eight character, item and dialogue mods at once). See docs/MODS.md.
Not tested yet: Randomizer, Boss Rush, and mods in .o2r format.
Known limitations
- No MSAA and no gyro aiming.
- Light glows and lens flares are never hidden by walls (GLES2 cannot read the depth buffer back).
- Offscreen framebuffers use 16-bit depth.
- The first run compiles shaders on demand (hitches of about 0.2 s). From the second run on they are precompiled at boot, which makes startup 10 to 15 seconds longer.
- No ROM extractor on the console; assets are generated on a PC.
Installing
Full walkthrough: docs/INSTALL.md. In short:
- Generate
oot.o2rfrom your ROM with Ship of Harkinian 9.2.3 on a PC. - Copy
oot.o2rto/data/soh/and the two Piglet modules to/data/self/system/common/lib/on the console over FTP, in binary mode (other modes damage the files). - Install the
.pkgwith GoldHEN's Package Installer and launch the game.
Controls
| DualShock 4 | N64 |
|---|---|
| Cross | A |
| Circle | B |
| L2 | Z |
| R2 | R |
| L1 | L |
| OPTIONS | Start |
| Right stick | C buttons |
| D-pad | D-pad |
| Touchpad click | opens / closes the SoH menu |
Everything can be remapped from the SoH menu.
Building
See docs/BUILDING.md. The build runs on Windows (Git Bash) with portable copies of LLVM 18, CMake, Ninja and the OpenOrbis toolchain; nothing has to be installed system-wide.
How it works
docs/TECHNICAL.md describes the port and, more usefully for anyone attempting something similar, the PS4-specific problems that only showed up on real hardware.
Disclosure
The person who published this port is not a C++ developer. The code was written with an AI coding assistant (Claude) and debugged by installing builds on a console and feeding the logs back. It has had no review by anyone who knows the Ship of Harkinian or libultraship codebases; review and corrections are very welcome.
Credits
- The HarbourMasters team for Ship of Harkinian and libultraship, which is where all of the actual game port lives.
- The OpenOrbis team for the toolchain.
- flat_z and the orbisdev contributors for the Piglet research, and OsirizX's Super Mario 64 PS4 port, which showed how to bring Piglet up with runtime shader compilation.
License
The build scripts, CMake files, tests and documentation in this repository are released under the
MIT License. The files under patches/ are modifications of Ship of Harkinian and
libultraship and remain subject to the terms of those projects.
This project is not affiliated with or endorsed by Nintendo or Sony.