If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Hydro Thunder (Arcade)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Hydro Thunder

Developer: Midway Games
Publisher: Midway Games
Platform: Arcade (Midway Quicksilver II)
Released in US: March 1999[1]
Released in EU: 1999


AreasIcon.png This game has unused areas.
DevMessageIcon.png This game has a hidden developer message.
DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.


This game is basically the concoction of a situation if Wave Race 64 was given to Midway, they up-rezed the game, changed the type of boats, and put it in arcades.

It's an okay game in that sense.

Unused Text

Developer Message

James Cameron Rules

A developer message found at 0x10D415 in HYDRO.EXE and the beginning of HT.R2. This message can also be found in Offroad Thunder which was developed by the same team.

(Source: Ferrox)

Debugging Text

**** Test data *****


Midway Home Entertainment..
Midway employees only beyond this point....
Hydro Thunder v0.00
Self-test script v0.00a
continue on abort..
continue....
use local filesystem.
no input available.
pause 5....
confirm existence of a hard-drive.
sound test.
done with tests.
end....
switches....
memory test....
disk access test....
3dfx
NOT ENOUGH MEMORY FOR ALL OF GREEK FLAGS!
NOT ENOUGH MEMORY FOR ALL OF COAST GUARD FLAGS!
NOT ENOUGH MEMORY FOR ALL OF PIRATE FLAGS!
>>>Error: Physicscraft physics file %s not found for mesh, world ob not added.
>>>Error: Physicscraft phys_InitBoat failed, world ob not added.
Unknown Sliding TC arg!
THERE ARE TOO MANY TC SLIDING MESHES, SEE STARICH!!!!
TOO MANY ITEMS IN DISPLAY GROUP NUMBER %d! TALK TO STARICH!
ONLY 1 LIGHTHOUSE IS PERMITTED, TALK TO STARICH!
Could not find the finish line's material
WARNING: Nile couldn't get a free WorldLt.
WARNING: Sarcophagus is not in a pathsector. Will not fall!!
WARNING: Falling sarcophagi are not supported on looped tracks.
>>>audio_Call %d (%s) not present in any bank
>>>audio_Call %d not present in any bank
>>>audio_Call made with invalid nGameID: %d
Found Uncached Audio Bank %d - %s
>>>Error: sound index file not found, audio system not enabled.
>>>Error: sound index file not the correct version, audio system not enabled.
>>>Error: audio_driver_Init failed, audio system not enabled.
AUDIO_MGR: NO FREE OB SOUNDS, INCREASE THE AMOUNT AVAILABLE!
UNHANDLED AMOUNT OF LAPS, NO SOUNDCALL MADE!
THIS IS NOT A LOOPED TRACK, WHY ARE WE TRYING TO CALL THE LAP NUMBER?
AUDIO MGR: %d could not be loaded!
AUDIO MGR: Main engine sounds could not be loaded!
AUDIO MGR: drone could not be loaded!
AUDIO MGR: Drone engine sounds could not be loaded!
AUDIO_SPKR: NO FREE SPEAKERS, INCREASE THE AMOUNT AVAILABLE!
Player Lod
High Lod
Drone Lod
Tracking numbers could not load, no numbers will be drawn above the boats!
ERROR: COULD NOT LOAD A BOAT, THIS COULD SPELL TROUBLE!
NOT ENOUGH MEMORY FOR ALL OF BANSHEE!
Banshee's %s used %d bytes of texture space
ERROR: WHY IS THE COP BOAT BEING LOADED AS A DRONE?
NOT ENOUGH MEMORY FOR ALL OF THE SECRET COP BOAT!
The MP Boat's %s used %d bytes of texture space
NOT ENOUGH MEMORY FOR ALL OF THE MP BOAT!
NOT ENOUGH MEMORY FOR ALL OF CUT THROAT!
Cut Throat's %s used %d bytes of texture space
NOT ENOUGH MEMORY FOR ALL OF DAMN!
Damn's %s used %d bytes of texture space
ERROR: WHY IS THE HOVERCRAFT BEING LOADED AS A DRONE?
NOT ENOUGH MEMORY FOR ALL OF THE HOVERCRAFT!
Hovercraft's %s used %d bytes of texture space
NOT ENOUGH MEMORY FOR ALL OF HOVERCRAFT!
NOT ENOUGH MEMORY FOR ALL OF MISS BEHAVE!
Miss Behave's %s used %d bytes of texture space
NOT ENOUGH MEMORY FOR ALL OF MIDWAY!
Midway's %s used %d bytes of texture space
NOT ENOUGH MEMORY FOR ALL OF RAD HAZARD!
Rad Hazard's %s used %d bytes of texture space
NOT ENOUGH MEMORY FOR ALL OF RAZORBACK!
Razorback's %s used %d bytes of texture space
ERROR: WHY IS THE SEADOG BEING LOADED AS A DRONE?
NOT ENOUGH MEMORY FOR ALL OF THE SEADOG!
NOT ENOUGH MEMORY FOR ALL OF SEADOG!
Seadog's %s used %d bytes of texture space
NOT ENOUGH MEMORY FOR ALL OF TIDAL BLADE!
Tidal Blade's %s used %d bytes of texture space
NOT ENOUGH MEMORY FOR ALL OF THRESHER!
Thresher's %s used %d bytes of texture space
ERROR: WHY IS TINY TANIC BEING LOADED AS A DRONE?
NOT ENOUGH MEMORY FOR ALL OF TINY TANIC!
Tiny Tanic's %s used %d bytes of texture space
CONTROLS, THE START BUTTON IS NOT MAPPED TO A FUNCTION!
CONTROLS, VIEW BUTTON 1 IS NOT MAPPED TO A FUNCTION!
view changed
gamecoll: Object Identifier '%s':
No collision sphere list.
Collisions for this object have been disabled.
gamecoll_Alloc(): Out of memory (1).
gamecoll_Alloc(): Out of memory (2).
BUOY or FLOATING set for non-motion-based object!
Overriding to type BREAKAWAY.
RACER set with no intelligence!
gameinit_SetFPUMode()
FPU Mode Change DID NOT STICK !!!!!
Gameloop started.
booting.lin finish_next track_%02d.lin
Gameloop exited.
OS_ERROR_RESERT**************************
Forced Halt:
File %s
Func %s
Line %i
Heap 0x%08X
OS_ERROR_ALIGNMENT
OS_ERROR_PROTECTION
OS_ERROR_FLOATING_POINT
OS_ERROR_NO:%08x
HUD: textures could not load, turning the hud off!
THIS TRACK IS NOT LOOPED, USE THE REGULAR CHECKPT/FINISHLINE TRIPWIRES!
HUD: THERE WAS A TIE, WOW!
Loaded radar map '%s' of size: %i bytes.
OUT OF SYNC WITH UNIT %d
MAJOR ART PROBLEM: Object %s has infinite LOD list.
Disabling LODs for this object. FIX THIS PROBLEM ASAP.
WARNING: More than %d dynamic lights
lighting an object.
Allocated %i bytes for mesh3d caches.
NETCOMM: Error trying to register a unit with our unit id
NETCOMM: Error trying to register an invalid unit num
NETCOMM: Error, tried to send a msg to invalid unit num!
NETCOMM: Error, must be in multicast group to send msgs to it!
NETLINK: OUT OF SYNC WITH UNIT %d, AT FRAME %d, MOTION ERROR %d
NETLINK: LinearFriction_BS: mine: %.10f, %.10f, %.10f his: %.10f, %.10f, %.10f
NETLINK: AngularFriction_BS: mine: %.10f, %.10f, %.10f his: %.10f, %.10f, %.10f
NETLINK: ForceSum_WS: mine: %.10f, %.10f, %.10f his: %.10f, %.10f, %.10f
NETLINK: TorqueSum_WS: mine: %.10f, %.10f, %.10f his: %.10f, %.10f, %.10f
NETLINK: LinearVelocity_WS: mine: %.10f, %.10f, %.10f his: %.10f, %.10f, %.10f
NETLINK: AngularVelocity_WS: mine: %.10f, %.10f, %.10f his: %.10f, %.10f, %.10f
NETLINK: AngularMomentum_WS: mine: %.10f, %.10f, %.10f his: %.10f, %.10f, %.10f
NETLINK: FirstPlacePos: mine: %.10f, %.10f, %.10f his: %.10f, %.10f, %.10f
NETLINK: FirstPlaceHullDir: mine: %.10f, %.10f, %.10f his: %.10f, %.10f, %.10f
NETLINK: Pos: mine: %.10f, %.10f, %.10f his: %.10f, %.10f, %.10f
NETLINK: Phys Flags are out of whack!
NETLINK: Error, unit %d has not pinged us in time
NETLINK: Sent ERROR, error code = %d
NETLINK: Unit %d removed from our group, size = %d
NETLINK: Cannot add or remove unit %d from our group cause that unit is not online
NETLINK: Unit %d removed from our link, size = %d
NET_LINK: unit mask %d REMOVED from our select mask
NET_LINK: nobody in select mode, resetting track to -1
NETLINK: Unit %d added to our group, size = %d
NETLINK: Unit %d added to our link, size = %d
NETLINK: Error trying to register unit's %d network id, turning unit off
NETLINK: we have an old game msg, throw it away
NETLINK: Recd GAMESEED from unit %d
NETLINK: We have received %d gameseeds
NETLINK: Recd HereIAm from unit %d
NETLINK: Recd HereIAmReply from unit %d
NETLINK: Recd Online from unit %d
NET_LINK: unit mask %d ADDED to our select mask
NETLINK: Setting our track number to %d
NETLINK: Overwrote selected track %d, with %d
NETLINK: Recd SEED from unit %d
NETLINK: Recd AttractEnter from unit %d
NETLINK: Recd AttractReply from unit %d
NETLINK: Recd AttractSync, sync count = %d!
NETLINK: Recd AttractAdvance!
NETLINK: Recd AttractReset!
NETLINK: Recd SELECT_ENTER from unit %d
NETLINK: Recd SELECT_TRACK from unit %d
NETLINK: Recd SELECT_BOAT from unit %d
NETLINK: Recd GAMESEED_GROUPSIZE from unit %d
NETLINK: Recd GAMESEED_JOIN from unit %d
NETLINK: Recd GAMESEED_GO from unit %d, count = %d
NETLINK: Recd RELINK msg
NETLINK: Recd END_RELINK from unit %d
NETLINK: Unit %d, is switching to the error state
NETLINK: error msg received, from unit %d, kicking everyone but me off the link
NETLINK: error msg received, from unit %d, kicking unit %d off the link
NETLINK: Unit %d, is turning off, kicking him off the link!
NETLINK: Unlocked group
NETLINK: Locked group
NETLINK: Group reset! size = 1
NETLINK: THE GAME MSG FAILED TO SEND!!!
NETLINK: Had to resend the game msg, could spell trouble!
NETLINK: FAILED TO RESEND THE GAME MSG!!!
NETLINK: Did not recieve unit %d game msg in time, kicking him off the link!
NETLINK: Sent HEREIAM
NETLINK: Sent HEREIAM_REPLY
NETLINK: Sent ONLINE, we are now online!
NETLINK: Sent SEED
NETLINK: Sent ATTRACT_ENTER
NETLINK: Sent ATTRACT_REPLY
NETLINK: Sent ATTRACT_SYNC, sync count = %d!
NETLINK: Sent SELECT_ENTER
NETLINK: Sent SELECT_TRACK
NETLINK: Sent ATTRACT ADVANCE
NETLINK: Sent ATTRACT RESET
NETLINK: Sent SELECT_BOAT
NETLINK: Sent GAMESEED_GROUPSIZE
NETLINK: Sent GAMESEED_JOIN
NETLINK: Sent GAMESEED_GO, count = %d
NETLINK: Sent GAMESEED_GO to unit %d, count = %d
NETLINK: Sent RELINK
NETLINK: Sent END_RELINK
NETLINK: Had to resend our gameseed msg, num rcvd = %d, mask = %d!
NETLINK: Sent GameSeed
 NETLINK: Send GameSeed
OBJECTID: Unknown worldob id or arg field %d %d
>>> Object %s references non-existant object %s.
WARNING: Not enough texture memory to load '%s'.
>>> Object %s doesn't exist in R2.
!! Could not find TrackEndPathSector !!
>>> A Path Sector pNext was NULL and required correction.
>>> A Path Sector pPrev was NULL and required correction.
ERROR: Phys - Boat name '%s' unknown.
ERROR: Phys - Water collision mesh '%s' not found.
ERROR: Phys - Water collision mesh '%s' has no points.
Waterspray emitter mesh '%s' could not be loaded for %s.
GBFCOLLFLH0 physcoll: Could not load 'GBFCOLLFLH0'.
ERROR in physics data file '%s'.
--> Void keyword.
--> Remainder of file skipped.
--> Keyword length too long [%s].
--> Maximum length is %i.
--> Value skipped.
--> Parameter string length too long [%s].
--> Invalid data type [%i].

--> %s parameter must be quoted string.
--> Specified boat [%s] is unknown.
--> Specified boat [%s] is incorrect for this R2P.
--> No boat name has been specified.
--> Keyword [%s] unrecognized.
--> Keyword [%s] requires a float parameter.
ERROR: Physics data file '%s' has unsupported format code %i.
Physics override data NOT read for '%s'.
Allocated %i bytes for physics data tables.
>>> Error reading R2 directory.
>>> Unsupported R2 version: %i
>>> Unsupported R2 header size: %i
>>> Invalid R2 header signature: '%s'
THE LOOPED FINISHLINE TRIPWIRE MUST BE PRESENT ON ALL LOOPED TRACKS
STATEMGR: Switching to LINK_BOOTUP mode!
STATEMGR: Switching to STATEMGR_GAMESEED mode!
STATEMGR: Switching to STATEMGR_RACE mode!
STATEMGR: Switching to STATEMGR_HISCORE mode!
STATEMGR: Times up, switching to ATTRACT mode!
STATEMGR: COULD NOT LOAD THE WRAPPER BANK
STATEMGR: ERROR, COULD NOT LOAD THE COMMON BANK
STATEMGR: ERROR, COULD NOT LOAD THE GAME COMMON BANK
!!!!!! NO STARTS SET UP IN TRACK !!!!!!
Not enough starts, setting the start to 0'th
!! Could not find starting PathSector for boat start position !!
Not enough memory to load all objects.
 Could not Load track '%s'.
Loaded track '%s': %i bytes.
TEXT: Unhandled font texture format
ERROR: Timer %d, Is not allocated
WARNING: 2MB texture boundary crossed in TMU %i.
%i bytes wasted.
WARNING: Water textures could not be loaded.
TRIPWIRE: Unknown tripwire id %d
Allocated %i bytes for TWS Intersect pool.
numpoints >
R2H Error: Invalid water type %i.
R2H Water Error: Split sector is a flume.
R2H Water Error: Split edge is marked as a waterfall.
R2H Water Error: Split edge adjacent to flume sector.
Building water net...
Allocated %i bytes for water system.
WARNING: Waterfall too wide. Truncated.
WARNING: Out of water spray emitters.
Waterspray mesh '%s' could not be loaded.
Waterspray mesh '%s' has no groups.
Waterspray mesh '%s' has more than one group.
Waterspray mesh '%s' has no triange lists.
Waterspray mesh '%s' has no materials.
Waterspray mesh '%s' has no trianges.
Waterspray mesh '%s' has no vertices.
Waterspray mesh '%s' has an invalid material ID %i.
Waterspray mesh '%s' has too many triangles in material ID %i.
Waterspray mesh '%s' has a triangle with no vertex at the origin.
Waterspray mesh '%s' has a triangle with more than one vertex at the origin.
Waterspray mesh '%s' has duplicate triangles.
Allocated %i bytes for waterspray system.
Not enough memory for terrain light objects.
Allocated %i bytes for sector cache.
worldcoll: Maximum collisions per frame exceded!
worldcoll_Alloc(): Out of memory.
Allocated %i bytes for World Light pool.
Not enough memory for World Object lights.
Error in attract mode script, hi score display track num invalid, using track 0 instead
UNKNOWN COMMAND IN ATTRACT SCRIPT, CHECK LINE NUMBER %d
ATTRACT SCRIPT LINE %d HAS %d PARAMETERS, IT SHOULD HAVE %d
ATTRACT MODE
Stage number %d
Time (secs) %f
Static screen here.
Waiting to sync up.
=== end of lin for demo ===
The 3d Floating Font could not be loaded!
File Not Found:%s
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>func:%s,free:0X%08X
>>>Heap Size:%d
>>>Free:%d
>>>Alloc:%d
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>func:%s,malloc:0X%08X
Free Memory Size:%d
invalid version number for texture palette
invalid decriptors number for texture palette
%s-->ngcTexLoadFromTplFile:%s
failed to open lin: %s
APPLICATION BREAK.
music unpaused...
music paused...
sfx uspaused...
sfx paused...
File %s Is Opened Already
File %s Not Found.
(Source: Ferrox)

Test Map

To access the test map simply known as TEST, go to 0x163FDB in HYDRO.EXE and replace BXWLOO1LS10 and HXTLOO1TRH0 with BLWLOSALS10 and HLTLOSATRH0 respectively, then choose Thunder Park and you'll appear in the test map.

The map is a large rectangular area containing a few objects at the start. There's numbers that go from 0 to 11 along the length of the map. The water becomes more choppy as you progress to the other side of the map. One of the computer players will drive to the other side of the map.

(Source: Ferrox)

Unused Graphics

HTArcade-comingsoon.png

Present among the track selection graphics is a coming soon graphic likely a leftover from a demo version of the game.

HTArcade-oldhud.png

An earlier version of the HUD graphics.

HTArcade-programmerart.png

A placeholder title screen.

HTArcade-testred.pngHTArcade-testgreen.pngHTArcade-testblue.pngHTArcade-testyellow.pngHTArcade-testpink.pngHTArcade-testorange.png

Some test graphics likely meant for a menu.

HTArcade-testtrackscreen.png

A loading screen for the test track.

HTArcade-unused1.pngHTArcade-unused2.pngHTArcade-unused3.png

Three development related graphics.

HTArcade-wrongway.png

A wrong way graphic that is never used since the game automatically turns you in the right direction if you try to go the wrong way.

(Source: Ferrox)

Hidden Notes

HydroThunderArcade-hiddennotes.png

The texture for the fisherman in the Chumdinger boat has some notes which are never seen in-game.

(Source: Ferrox)

References