the Super Mario 64 PC port from Harbour Masters gets Vulkan, post-processing
7 Sep 2026 at 7:42 am UTC By Liam Squires-HandGhostship is the impressive unofficial PC port of Super Mario 64 from the Harbour Masters crew, newly upgraded with a web player and Vulkan support. It got a Native Linux…
PC Path5 min read

7 Sep 2026 at 7:42 am UTC
By Liam Squires-Hand
Accept Cookies & Show Direct Link 🌐 External Sources: ghostship.net64.dev, GitHub - Ghostship - 3.0.0 Article taken from GamingOnLinux.com. Tags: Nintendo, Open Source, Platformer, Retro 2 Likes Some you may have missed, popular articles from the last month:Ubisoft's FOR HONOR will block SteamOS / Linux on September 10Wine 11.16 brings more ARM64 support improvementsNVIDIA GeForce NOW cloud gaming for Linux levels up and leaves BetaLinux kernel 7.2 is officially out now All posts need to follow our rules. Please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Readers can also email us for any issues or concerns.
By Liam Squires-Hand
Ghostship is the impressive unofficial PC port of Super Mario 64 from the Harbour Masters crew, newly upgraded with a web player and Vulkan support. It got a Native Linux release back in January.
To keep it away from Nintendo lawyers Ghostship does not include any copyrighted assets. You are required to provide a supported copy of the game. But, you can also now play it via the web!
The new "Nautilus - Alfa 3.0.0" release changes are noted below.
Key ChangesNew platforms
- Add an iOS target and CI job by @KiritoDv.
- Add Android support, based on Waterdish's work by @KiritoDv.
- Android on device extraction (rebase of #225) by @KiritoDv in #250.
- Add a web (Emscripten) build with IDBFS persistence and a Pages deploy by @KiritoDv.
Renderer
- Add a Vulkan backend by @KiritoDv.
- Add a full postprocessing system with multipass custom shaders, manifest-driven shader settings, and a Shaders tab in the menu by @KiritoDv.
- Expose engine variables as custom shader uniforms by @KiritoDv.
- Add HD texture support (ported from Jeod) with auto-mipmap generation, async texture loading, and deferred texture frees by @KiritoDv.
- Move sRGB to a postprocess pass; fix viewport and depth clamp with postprocess steps by @KiritoDv.
- Implement G_CD_* noise dithering; multiple LOD fixes by @KiritoDv.
- Fix Metal texture stutter, Metal postprocessing, and the game lagging while unfocused by @KiritoDv.
- Fix the D3D11 vertex stride for lit materials without combiner shade by @KiritoDv.
- Fix missing Vulkan DLLs on Windows builds by @KiritoDv.
- Fix the universal macOS build (tinycc host target leaking into the x86_64 slice) by @KiritoDv.
- Fix blurry menu text on Retina displays by @quarrel07 in #234.
- Fix the menu tab row showing a scrollbar after the Shaders tab was added by @quarrel07 in #249.
Modding API
- Load TCC-compiled mod scripts in memory instead of via a dropped shared library by @KiritoDv.
- Big event pass: engine lifecycle, render pipeline, HUD/text-label, camera, level script, geo layout node, entity distance culling, behavior native-call, save load/flush, file select, and pause menu events by @KiritoDv.
- Add a keyboard input API and KeyboardInput event by @KiritoDv.
- Add ImGui draw callbacks for C mods by @KiritoDv.
- Add a data persistence system for mods (player store, channel store, player identity) by @KiritoDv.
- Export a large set of previously static engine symbols to mods by @KiritoDv.
- Show a readable error when a mod script fails to build by @KiritoDv.
- Fix the mod template to target the main repo and add clang-format to it by @KiritoDv.
- Fix the preprocessor mis-parsing some constructs by @KiritoDv.
Networking
- Move websockets to mbedtls and enable TLS on Linux by @KiritoDv.
- Add relay versioning to avoid conflicts between game versions by @KiritoDv.
- Add a USE_SATELLA build option and an "Enable Satella" toggle in Developer Tools by @KiritoDv.
- Guard Satella behind USE_NETWORKING by @JeodC in #193.
- Fix Satella never connecting on macOS by @quarrel07 in #237.
Gameplay and fixes
- Fix Goombas insta-killing Mario by @KiritoDv.
- Fix crashes when loading saves and improve conversion of old save files by @KiritoDv.
- Fix the current save being wiped after a Game Over by @quarrel07 in #229.
- Fix the title screen background after a Game Over by @quarrel07 in #238.
- Fix the Bowser key being treated like a star with Collecting Stars Will Not Exit Level enabled by @quarrel07 in #243.
- Fix achievements tracking and popping while the toggle is off by @quarrel07 in #239.
- Enable achievements by default by @KiritoDv.
- Fix interpolation of menu text, Mario's hand cursor, and the skybox by @KiritoDv.
- Fix use-after-free crash in audio synthesis on level reset (#133) by @JeodC in #197.
- Fix the crash on quit by @quarrel07 in #244.
- Fix held movement keys opening the macOS accent popup by @quarrel07 in #231.
- Move "Disable LoD" to the Graphics tab by @KiritoDv.
Extraction and assets
- Port the improved extraction flow: re-extract confirmation, single sm64.o2r generation, and word-wrapped Torch errors by @KiritoDv.
- Keep existing sm64.o2r archives working after the Torch CRC byte-order change by @quarrel07 in #248.
- Fix special characters in path #126 by @JeodC in #196.
- Add a full PNG loader (RawTextureFactory) and make merge.py output PNG textures by @KiritoDv.
Build, packaging and CI
- Add a Liquid Glass app icon for macOS by @quarrel07 in #245.
- Fix Mac builds reporting version 0.1.0 by @quarrel07 in #228.
- Fix the macOS build failing against Homebrew's current mbedtls by @quarrel07 in #232.
- Fix the packaged macOS app failing to launch when built with Homebrew's sdl2 by @quarrel07 in #233.
- Fix generator mismatch in cmakelists by @JeodC in #195.
- Fix AppImage packaging by @KiritoDv.
- CI: cut macOS build time from ~86 min to ~15 min by caching MacPorts by @quarrel07 in #247.
You can see their original announcement video on it below:
YouTube videos require cookies, you must accept their cookies to view. View cookie preferences.Accept Cookies & Show Direct Link 🌐 External Sources: ghostship.net64.dev, GitHub - Ghostship - 3.0.0 Article taken from GamingOnLinux.com. Tags: Nintendo, Open Source, Platformer, Retro 2 Likes Some you may have missed, popular articles from the last month:Ubisoft's FOR HONOR will block SteamOS / Linux on September 10Wine 11.16 brings more ARM64 support improvementsNVIDIA GeForce NOW cloud gaming for Linux levels up and leaves BetaLinux kernel 7.2 is officially out now All posts need to follow our rules. Please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Readers can also email us for any issues or concerns.