Hydro Thunder Hurricane Recompiled
Hydro Thunder Hurricane Recompiled is a native PC port of Hydro Thunder Hurricane that offers uncapped frame rates and higher resolutions.
- Type: PC port
- Game: Hydro Thunder Hurricane
- Runs on Windows
- By visibou
- Latest release 2.2.0, 2026-10-30
- Source: https://github.com/visibou/htrecomp
README
A native PC build of the Xbox 360 game Hydro Thunder Hurricane, produced by static recompilation with the rexglue SDK. The game's PowerPC code is translated ahead of time into native x86-64, so this is a real port rather than an emulator running the original executable.
No game content is included, and none ever will be. You supply the files from your own legally obtained copy. See Game files.
What this build adds
Everything here is beyond what the Xbox 360 release could do:
| Uncapped frame rate | The console was locked to 30. Run it as fast as your hardware allows, or cap it at any frame rate you like. |
| Any output resolution | 1080p, 1440p, 4K. The game's own scene render target is a fixed size, so raising the output resolution costs essentially nothing - measured identical frame times from 1080p to 4K. |
| Higher internal resolution | A separate scale for the 3D scene itself, for when you do want to spend the GPU time. |
| 16x anisotropic filtering | Sharpens the surface ahead of you. Nearly free on any modern GPU and the single best-looking change available. |
| Mods | Add new boats with your own handling and new skins, without replacing anything. See Mods. |
| Your own name | Set the name the game calls you by, instead of "User". |
| Field of view | Widen (or narrow) the race camera from the Game tab. The console was fixed at 100 degrees. |
| Tempest Pack DLC | The three extra tracks, installed from your own copy. See DLC. |
| In-game settings menu | Press F5. Display, Graphics, Audio, Input, Game, Mods and Fixes, with search and per-tab reset. No config editing. |
| Frame rate overlay | Press F6 for frame rate, frame time, a history graph and worst-frame tracking, and optionally GPU time per frame. |
| Mouse & keyboard support | Optional, alongside full controller support. |
| Modern display handling | V-Sync or tearing/VRR, letterboxing, safe-area cropping, output dithering, monitor selection. |
Getting started
- Extract the release.
- Run the executable.
- It asks for your copy of the game and unpacks it. This happens once.
Settings, saves and the shader cache are all kept next to the executable, so the whole install stays portable - move the folder and everything comes with it.
Game files
You must provide the game's files yourself, from a copy you own.
The first time you run it, the game walks you through this:
- A message explains that no game content is included.
- A file picker asks for your Hydro Thunder Hurricane package. Hydro Thunder Hurricane was a digital title, so this is a single file whose name is a long string of hex characters, with no file extension.
- The package is unpacked into a
game_datafolder beside the executable. This takes a moment and only happens once. - You are asked whether you also have the DLC. This is optional - see DLC.
After that the game starts, and every later launch goes straight to the title screen.
DLC
The Tempest Pack DLC is supported from 2.0.0: three extra tracks (Bermuda Triangle, Castle Von Boom and Atlantis) with their events and music, two new boats (Whiplash and Psyclone), six "X" versions of the original boats, and new skins. Like the game, it is a single package file named with a long string of hex characters.
There are two ways to add it:
- During setup, answer yes when asked and pick the package. Installs that came from 1.0.0 are asked once, on the first launch after updating.
- At any time, put the package file in a folder called
dlcnext to the executable and start the game. It is installed on that launch, and you can leave the file there or delete it afterwards.
It is unpacked into user_data, so your saves are not touched. The new tracks
then appear at the end of the track list and the new boats at the end of the
boat list. As on the console, they unlock with credits like everything else.
About the game executable
The executable inside a retail package is encrypted and compressed, and the game cannot run it in that state - it would reach the title screen and then close as soon as you press Start.
This is handled for you. xextool.exe ships alongside the game, and the
conversion happens automatically during setup - you will just see a short
message saying it was done. The check runs on every launch, so a game_data
folder you assembled by hand gets converted too.
If you ever need to do it yourself, the command is:
xextool -c u -e u -o default.xex default.xex
If you have a different kind of dump
The picker expects the packaged form. If your copy is already extracted into loose files, skip the prompts entirely by creating the folder yourself before first launch:
Hydro Thunder Hurricane Recompiled/
├─ hydrothunder.exe
├─ rexruntimerd.dll
└─ game_data/
├─ default.xex <- required
├─ Base.apf
├─ Audio/
├─ Video/
└─ ...
default.xex has to sit at the top level of game_data, with the rest of the
game's files and folders beside it as they are laid out in your copy. When that
folder is present the game boots straight into the title screen and never asks.
This project does not provide, and will not help you obtain, game files you do not already own.
Controls
Xbox controllers work out of the box. Mouse and keyboard can be enabled under Input in the settings menu.
| Key | |
|---|---|
| F5 | Settings menu |
| F6 | Frame rate overlay |
The keyboard and mouse bindings are listed, and can be changed, under Input in the settings menu.
Settings worth knowing
-
Resolution (Display) sets the output size and is effectively free. This is the one to raise.
-
Internal resolution scale (Graphics) is the expensive one - it multiplies the cost of the 3D scene, and 2x measures roughly 8x the GPU time. Raise it one step at a time.
-
Frame rate (Display) switches between uncapped and capped; the cap is typed in directly rather than dragged on a slider. On a handheld (ROG Ally, Steam Deck), cap it at a rate the game can always reach, such as 60 or 40: it stays steadier, and the power the CPU no longer spends goes to the GPU.
-
Anisotropic filtering (Graphics) is the best value in the panel.
-
Player name (Game) is the name the game calls you by, up to 15 characters. It takes effect the next time the game starts, and your save stays where it is.
-
Field of view (Game) widens the race camera. 0 keeps the game's own 100 degrees; 110 to 120 suits a wide monitor. It takes effect when the next race starts. A wider view draws more of the track: 140 measured about 10% slower than the default.
-
GPU timing: with
ht_gpu_perf = trueinhydrothunder.toml, F6 also shows the GPU's time per frame and how much of it goes to render target copies, resolves and texture loads. Include it when reporting performance.
Settings are written to hydrothunder.toml beside the executable when the
panel closes. The file is merged rather than rewritten, so any comments and
hand-edits you add to it survive.
Editing saves
The save is user_data/<profile>/5841096A/00000001/ht2save.dat/ht2save.dat.
It is not encrypted, but it carries a checksum, and the game discards a save
whose checksum does not match. tools/ht_save_edit.py (Python 3) edits it and
fixes the checksum for you:
python tools/ht_save_edit.py <save> # list every value
python tools/ht_save_edit.py <save> --set TotalCredits=50000 # edit
python tools/ht_save_edit.py <save> --export save.json # or edit as JSON...
python tools/ht_save_edit.py <save> --import save.json # ...and write it back
python tools/ht_save_edit.py <save> --fix # after a hex edit
Every write backs the save up to ~/.ht_save_backups/ first. Close the game
before editing.
Mods
Mods add new boats (an existing boat's model with your own handling) and new skins, for the game's boats or your own. They never replace anything, and removing one leaves your save working. Everything a mod adds is unlocked from the start.
Installing a mod
Put the mod's folder in mods/ next to the executable and start the game:
Hydro Thunder Hurricane Recompiled/
├─ hydrothunder.exe
└─ mods/
└─ speedvector/
└─ mod.toml
F5 > Mods lists what is installed, shows why a mod did not load, and turns mods on and off. Changes take effect the next time the game starts.
Tutorial: your first mod
This makes a faster Vector called Rocket, with a skin of your own.
1. Get a template to paint over. Start the game, press F5, open
Mods and press Export skin templates. Each boat's skin is written to
mods/_templates/ as a PNG, with its settings as JSON. Close the game.
2. Make the mod's folder. Create mods/rocket/, and a skins/ folder
inside it.
3. Paint the skin. Copy mods/_templates/Vector.png to
mods/rocket/skins/rocket.png and paint over it in any image editor. Keep it
1024x1024. The layout is Vector's own, so the paint lands where you expect on
the boat.
4. Describe the mod. Create mods/rocket/mod.toml with this in it:
id = "rocket"
name = "Rocket"
version = "1.0"
author = "you"
[[boat]]
id = "Rocket"
base = "Vector"
name = "Rocket"
description = "A Vector with a far bigger engine."
[boat.tuning]
Engine = { "Max Forward Speed" = 200, "Max Thrust" = 180000 }
Stats = { TopSpeed = 9, Acceleration = 9 }
[[skin]]
id = "Red"
boats = ["Rocket", "Vector"]
name = "Rocket Red"
texture = "skins/rocket.png"
idis the mod's name inside the game: lowercase letters and digits. Everything the mod adds is named after it, which is what keeps mods from ever overwriting anything.[[boat]]adds a boat.baseis the boat it starts from, and[boat.tuning]lists only what you change. Vector's own values are 140 and 104000;mods/_templates/Vector.jsonhas every setting there is.Statsare the 0-10 bars in the boat menu.[[skin]]adds a skin, here to both Rocket and the original Vector.
5. Play it. Start the game. Rocket is at the end of the boat list, wearing your skin, and Vector has your skin as an extra choice. If something is wrong, F5 > Mods says what, and the game runs without the mod until you fix it.
To share the mod, share the mods/rocket/ folder, which holds only your own
files. MODDING.md is the full reference, and
examples/mods/speedvector/ is another mod to start from.
Building from source
Requires CMake 3.25+, Ninja, and Clang - rexglue requires Clang, so MSVC is not supported. On Windows the toolchain that ships with Visual Studio's "C++ Clang tools for Windows" component works.
The rexglue SDK is not part of this
repository. Put it in third_party/rexglue-sdk/ (or point REXSDK_DIR at it)
and apply the changes described in SDK_PATCHES.md.
cmake --preset relwithdebinfo
cmake --build --preset relwithdebinfo -- -j3
The recompiled C++ is committed under generated/, so building does not
need the game. Only running it does.
Keep the job count modest. The generated translation units are large and each
one can take 1-2 GB in the compiler; an unbounded --parallel will exhaust
memory on a 16 GB machine.
A build has no developer tools in it. To get the SDK's debug overlay (F3),
log console (backtick) and raw settings dialog (F4) back while working on the
port, configure with -DCMAKE_CXX_FLAGS=-DHT_DEV_TOOLS=1.
Known limitations
- DLC copied in by hand. If you placed DLC files under
user_datayourself and moved or renamed anything insideAudio, the DLC tracks lose their music. The package's odd-looking layout (Audio/Xbox360Pack01Track01.fsbnext to tinyAudio/Xbox360/Pack01Track01.fsbfiles) is what the game reads. Deleteuser_data/0000000000000000/5841096A/and add the DLC again with one of the methods above. - Mods add boats and skins only, for now. A mod boat uses an existing boat's model; new models, tracks and music are not supported yet.
- Mod changes need a restart. Mods are built when the game starts, so adding, changing or switching off a mod takes effect on the next launch.
Credits
-
rexglue SDK - the recompilation SDK this project is built on.
-
Xenia - whose Xbox 360 research underpins much of the tooling this ecosystem relies on.
-
HydroThunderPORT - whose measurements showed where the GPU time went, and whose ideas - drawing the game's 4x MSAA clears at 1x, direct texture loads, direct resolves and resolving straight to textures - are reimplemented here for Direct3D 12. The implementations here are this project's own.
Note that HydroThunderPORT is itself built on top of this project's 1.0 code: its own
provenance.jsonlists this repository (github.com/visibou/htrecomp, commitecae518) as the app it starts from. Its README does not credit this project anywhere. The recompilation, the game fixes and the features it inherited were done here first. -
XEXTool by xorloser - bundled with this release and used to convert the game executable during setup. All credit for that tool goes to its author; it is included unmodified.
Hydro Thunder Hurricane is the property of its respective owners. This project is an unofficial, non-commercial port and is not affiliated with or endorsed by them.