Skip to content

The cutting room floor

Vehicles that exist only as metadata, commands wired to functions that do nothing, models the game asks for but never shipped, and packet fields the client reads and throws away.

This page collects what reverse engineering the Wulfram II client has turned up so far. It is a record of findings, not a complete inventory of everything unused in the executable. Each entry is scoped to the code path that was actually inspected.

Several different things can look “unused”, and they are kept apart here:

  • No-op or ignored. The inspected code runs but does nothing with a command or value. The surrounding feature or packet is usually still active.
  • Dormant. Code or metadata exists, but the normal game path in the inspected build never reaches it.
  • Missing from the shipped data. The client asks for a file that is not in the distribution. That does not prove the requesting code is dead.
  • Unavailable service. Client code is present, but the official service behind it is gone.

A “no consumer found” result means none was found in the paths examined. Callbacks, tables, other configurations or other builds could still reach it. Addresses are in the original Wulfram2.exe.

The client’s model registry and type-to-model mapping (0x005730CC, 0x004EB2C0, 0x004E3BD0) name several model families that are absent from the shipped shapes.zip. recovered

Requested model namesNotes
heavy_missile_1, heavy_missile_2Used by the Heavy Missile and Cruise Missile type mappings.
shield_1, shield_2Simplified _s variants also absent.
heavy_silo_1, heavy_silo_2Simplified _s variants also absent.
portal_1, portal_2Simplified _s variants also absent.
bug_1, bug_2The Spy Bug family; simplified _s variants also absent.
unit_boxFallback name for decorations.

When a model is missing, the loader falls back through 0x004EB0C0 to a plain eight-vertex box, 8 units on a side, with zero texture coordinates. recovered

These are missing files, not proof that the entity types were never used. Another data distribution, or a normal gameplay path that spawns them, could change the picture.

During ordinary play, a model’s material asks for a texture named cargosdG. The shipped base.zip contains cargosd and cargosdR, but no cargosdG, and neither do the landscape or interface packs. The material lookup at 0x00493730 falls back to texture zero. recovered

The type metadata names Assault Platform (2), Bomber (3) and Transport (4), but the local-player controller factory at 0x0046AE60 only builds Tank (0) and Scout (1). The vehicle selection uses a two-entry table at 0x00577F50. recovered

That does not mean the Bomber was stripped out. The bomber and bomber_s models ship with the game, the model registry and behavior reader both include the Bomber, and physics dispatch has a Bomber routine at 0x00501A50. Types 3 and 4 both map to the bomber model; type 2 maps to refuel-pad geometry. What is missing is a way for a local player to drive them on the inspected path. recovered

The Bomber’s behavior packet also has a quirk: seven of its eleven parsed tuning values (ay_mag, forward_mag, low_airspeed, angfac, turn_low, turn_high, turn_zero) are replaced by hard-coded constants in the inspected Bomber physics routine. The other four are used. Whether that was legacy compatibility, unfinished work or a bug is unknown. recovered

Entity type 37 is a decoration, but the runtime decoration catalogue inspected at 0x004E6D10 was empty. The load and save routines for map supplementals (0x00437B90, 0x00437CA0) sit on editor paths. The shipped maps include 46 supplementals files, yet none of the 37 inspected state / db_state files contain decoration rows. recovered

The data and editor code exist; normal map loading just doesn’t appear to use them. The decoration fields in the protocol are still partly consumed, so they are not globally unused.

The bindable commands add_target_to_watch_list and clear_watch_list both point at 0x0041BA80, which is three bytes: xor eax,eax; ret. The commands are registered, but there is no watchlist behind them. recovered

The targeting system accepts the rank names furthest, rearward, not_under_reticle, ahead and behind, but all five point at 0x00449CE0, a lone RET. They don’t rank anything despite their names. Other filters and ranks in the same query still work. recovered

The same empty function turns up again as all four Help document callbacks in the table at 0x00577E78. Help navigation and the four help_*.txt documents still work through other code.

An alternate joystick routine at 0x004B1C40 just returns false. The normal DirectInput joystick path at 0x004B1C50 is active, so this is a stub for another input branch, not missing joystick support. recovered

The Tank physics reads control channel 7 as an explicit roll input, but no stock rolling axis or key binding was found, so it normally stays at zero. Automatic roll still works. recovered

  • 0x004F9790 handles ground clearance greater than 1.0, but the routine that produces that value (0x004DE840) already clamps it to 1.0. A Tank model field used only by that branch is effectively vestigial. recovered
  • A collision-event flag selects an emergency recovery for bodies that start a step already overlapping, but no normal code was found that sets it. recovered

The player-list routine at 0x004750F0 can draw (dead) next to a player, but only in an association state that the ordinary death-notice handler (0x00476070) never sets. No other source of that state has been found. recovered

The Uplink request picker only offers unit types whose metadata enables them: 25, 26, 27, 29, 30, 32, 33 and 35. Shield (28), Heavy Missile Silo (31), Portal (34) and Spy Bug (36) are excluded, even though they have metadata and cargo codes. Model families named shield, heavy_silo, portal and bug are also missing from shapes.zip, although which model each of these unit types would use has not been confirmed. recovered

This shows only what the shipped picker offers. It doesn’t prove those units never appeared in the game.

These assets ship with the game, but the inspected code draws something else. None of them is proven globally unused.

assetwhere it’s skippedwhat happens instead
marble/28, blue/03Escape menu, built at 0x004644C0 and drawn by 0x004634B0The menu shades the existing screen and draws text and arrows; the two textures are loaded but not drawn.
radarblip_spaceship_red, radarblip_spaceship_blueMap overview and both HUD radarsThe overview draws the ship from pixel spans with blinking tips (0x00406AB0); the radars skip it or draw plain pixels.
Ms000, spk000Ground-hit smoke and spark animations registered at 0x00484F50Both sequences start at frame 1, so they play Ms001–Ms017 and spk001–spk018.
flak_shell on the FlareWorld drawing of entity 17 (0x004413F0)The Flare skips the model and draws team-colored light sprites. Real flak shells still use the mesh.
ZOOMIN_MID, ZOOMOUT_MID and sound IDs 94–96Zoom feedback (0x0043F750)Zoom plays an ambient sound and direction-specific start and end sounds instead. The two MID samples ship and are marked as loops.
gunshot4Line 67 of the shipped sound indexThat row is commented out and replaced by tank_gun_once on the next line.
recovered

The client reads these values to stay aligned with the packet, then does nothing with them in the inspected handler. The fields still have to be sent.

packethandlerignored part
0x12 LAG_FIX0x0046CD40Its whole payload: an integer and a byte are read into locals and never used.
0x24 behavior0x0046DC00Seven values in the 95-byte header (offsets 5, 13, 17, 41, 61, 73 and 94) are stored with no reader found.
0x30 WARP_STATUS—Three 32-bit header words before the cell flags are discarded. Their original meaning is unknown.
0x36 STRING_VALUE—Selector 2 and unknown selectors do nothing; selector 3 carries match statistics.
0x3C beacon0x0046DE20Fields 8 and 28 have no consumer found. Field 24 is used, as the Crashpoint’s linked entity.
0x3E LOAD—The string and start time are stored, with no other reader found. There is no evidence of an original loading screen driven by it.
Translation records0x0046E8C0The second of three integers per record is read but not used locally.
recovered

Some ignored values sit inside otherwise active systems: transient effect type 4 does nothing in 0x00449490, and the continuous-sound handler 0x00488850 ignores sound ID −1. Terrain compound tags carry a template token that the parser at 0x00465E90 skips; the game picks the template from the texture type instead.

The protocol audit also found no game handler or sender for opcodes 0x05–0x07 or 0x56. Opcode 0x55 has a DEBUG_COORDS name but no established callback. Separate service protocols were outside that audit. recovered

  • zero_push (0.40) in tank_jet_misc.misc has no consumer recovered in the Tank hover path. recovered
  • A global at 0x005730C8 stores the larger of the two Tank variants’ full height extents (about 9.657). Its only reference found is the write. recovered
  • Collision code records which features and partner entity took part in a body-pair contact (0x004F2440, 0x004E7120). Nothing found reads them back, and they don’t change the collision result. recovered

Two earlier conclusions were reversed by closer inspection:

  • Scout beam frames. The Scout repair beam’s renderer only references shockred001 and shockblue001, so frames 002–005 first looked unused. The registration at 0x00484F50 in fact builds two five-frame, 50 ms sequences, and a shared texture-alias animator swaps the frames underneath the renderer. All ten frames are active. recovered
  • WORLD_STATS “unused” fields. An old reading described a flag and map ID as unused. They are the strategic map’s column and row counts. recovered

The client still contains working code and protocol for voice chat, squads, account and login helpers, Kudos and donations, the military rank table, video and player history. The official services behind them no longer exist. That makes them unavailable, not dormant: the original client could reach them. recovered

  • Did any Wulfram II distribution ship the heavy missile, shield, heavy silo, portal and spy bug models, and were those units ever spawned in normal play?
  • Was there ever a local path for driving the Assault Platform, Bomber or Transport?
  • Why does the Bomber routine replace seven of its parsed values with constants?
  • What did the official server put in the ignored LAG_FIX, WARP_STATUS and behavior-header fields?
  • Did map supplementals and decorations ever reach live play, or were they only an editor feature?

reviewed 2026-09-25

A fan preservation project, not affiliated with the original developers. No original game files are hosted. Text licensed CC BY 4.0; site code MIT.