HydroThunderPORT
PC port of Hydro Thunder Hurricane
- RecompilationPort Type
- monscriserDeveloper
- 2 Nov 2026Page Updated
Overview
HydroThunderPORT is an experimental, unofficial native PC port of Hydro Thunder Hurricane, the 2010 Xbox Live Arcade boat racer, for Windows and Linux. It is built by static recompilation with ReXGlue, with a Vulkan graphics backend and Xbox 360 compatibility work informed by Xenia.
A configuration launcher guides the setup of the game, its DLC and its title update, keeps saves next to the chosen install and has a Controls tab with remappable keys. FSR 1, experimental FSR 3.1, FXAA, resolution and display settings, frame-rate limits and persistent shader caches are included, and the developer has play-tested it on a ROG Ally, with Steam Deck testing still going on.
It is a separate project from the CrownParkComputing native port of the same game, also listed here. Game files, DLC and title updates are not provided.
How to Set It Up
- Windows: download and extract the Windows package and run
Launcher-Config.exe. - Linux: download the AppImage, make it executable (
chmod +x) and open it. - Choose your own game, DLC and title update files, set the video and input options, and click Play.
- After that,
HydroThunder.execan be started directly. The launcher manages settings and saves and can add a Steam shortcut.
Advertisement
Download HydroThunderPORT
What's new in v0.9.1Hydro Thunder Hurricane (native port) — Revision 9.1
Hydro Thunder Hurricane: Recompiled — 9.1.0
Everything since 8.8: two stability/visual fixes, a reworked launcher Controls tab, and five engine optimizations (CPU and GPU) that raise FPS without lowering resolution, MSAA, effects or precision. Every optimization has an on/off switch, an exact-equivalence verifier and a positive control (a deliberately broken reference that the verifier must catch).
Performance at a glance
Measured on the developer’s PC (RTX 5060 Ti, internal 1280×720 → 1080p output, FSR 1), uncapped FPS, Asgard track. The scene is the same boat-at-the-dock spot in every run, so results are directly comparable. Each step was A/B-tested with the same binaries and only its switch toggled.
Uncapped FPS - same Asgard scene (higher is better)
8.9.2 ███████████████████████████▏ 178 FPS
9.0.0 █████████████████████████████████▉ 222 FPS
9.1.0 ████████████████████████████████████ 236 FPS
Command-thread CPU time per frame (lower is better)
8.9.2 ████████████████████████████████████ 5.6 ms
9.0.0 ████████████████████████████▉ 4.5 ms
9.1.0 ████████████████████████▍ 3.8 ms
| Version | Uncapped FPS | Command-thread CPU (ms/frame) | GPU (ms/frame) |
|---|---|---|---|
| 8.9.2 | ~178 | ~5.6 | ~2.2 |
| 9.0.0 | ~222 (+25%) | ~4.5 | ~2.0 |
| 9.1.0 | ~236 (+33% vs 8.9.2) | ~3.8 | ~2.0 |
After 9.1.0 the remaining limit on this PC is the game’s own logic thread, not the emulation layer.
ROG Ally Z1 Extreme (Linux)
Real gameplay with 9.1.0 on a ROG Ally Z1 Extreme (Linux, launched from Steam Game Mode) at a 25 W TDP, across the first four tracks:
- Around 120 FPS on average most of the time, and it rarely drops below 100 FPS.
- Shader loading is effectively instant: no compilation stutter when new scenes appear.
This is a hands-on play report, not an instrumented benchmark.
Tip: on SteamOS/CachyOS handhelds, play from Steam Game Mode. Desktop Mode adds stutter to every game.
What changed since 8.8
Fixes
- Crash when quitting from the in-game menu (8.9). The game crashed (heap corruption) when it exited by itself, because the window was released before the input driver. The app now shuts down the same safe way as closing the window.
- Lights showing through walls (8.9.2). Occlusion-query results from different lights were sharing a slot. They are now keyed by their full address. Leaks went from 37,729 to 41 in 184,000 queries. This also allowed fewer GPU submissions per frame (9–11 down to 3).
Launcher (8.9.1)
- New Controls tab: 14 actions, 2 keys each, with conflict swapping and “Restore defaults”.
- “Saves” now holds only save actions, and “Add to Steam” sits under “Manage installation”.
- The footer keeps only Play and a hint with the current keys.
Optimizations
| Version | Switch (hydrothunder.toml) | What it does | Measured effect |
|---|---|---|---|
| 8.9.1 | ht_request_range_fast | Fast path for memory requests that are already up to date (~2000 per frame) | −32% per call |
| 9.0.0 | ht_zpd_batch | Occlusion queries reset in blocks outside render passes, instead of closing a pass for every query | ~20% fewer render passes, GPU −8% |
| 9.0.0 | ht_dynamic_constants | Dynamic uniform buffers: reuse descriptor sets and change only offsets | binding cost −25% per draw |
| 9.0.0 | ht_cp_fast_registers | PM4 type-0 register runs written in bulk; a name-based setting lookup (mutex + string + hash) moved out of the per-draw path | +11% FPS, command CPU −15% |
| 9.1.0 | ht_async_submit | Mid-frame command buffers are recorded and submitted on a second thread, in order | command CPU −16%, +6% FPS |
All switches default to true. Set one to false and restart to compare.
How correctness was verified
…
88ddf105ede1e77e190405830f531fff7cc7addad7992b573b7bc0503eec95a0
e2cf93e11bacb82c0dab616d55ceba3f11306f9defc6a16d1cab923697ae138c


