Wing Commander Toolbox

Quarto

Unknown Enemy
I... don't recall. I don't think anybody did, and certainly my files don't hold anything like that, but there may be something I'm not recalling.
 

UnnamedCharacter

2nd Lieutenant
The weapon values (guns and missiles) are in the EXEs. The toolbox has support for the WC1 EXE, but not for WC2. Use the following command to extract the data:

WC1ToolsCmd.exe extract WC.EXE​

This will create a text file with all the supported data from the WC1 EXE. Here is a small snippet:

Code:
...
Ship 28: Class: 11; Radius:  20; Fuel:    120; Damage:   4; Explosive Force: 14500; Max Speed: 1300; ...
Ship 29: Class: 11; Radius:  20; Fuel:    140; Damage:   4; Explosive Force: 13500; Max Speed: 1100; ...
Ship 30: Class: 11; Radius:  20; Fuel:    160; Damage:   4; Explosive Force: 10500; Max Speed:  900; ...
...

The object class 8 are for the guns, class 10 is the mine, and class 11 are the missiles:

Code:
Index 24   Class  8   Gun       Laser cannon
Index 25   Class  8   Gun       Neutron gun
Index 26   Class  8   Gun       Mass driver
Index 27   Class  8   Gun     
Index 28   Class 11   Missile   Dart DF
Index 29   Class 11   Missile   Javelin HS
Index 30   Class 11   Missile   Pilum FF
Index 31   Class 11   Missile   Spiculum IR
Index 32   Class 11   Missile 
Index 33   Class 10   Mine      Porcupine
 

FekLeyrTarg

Commodore
It's probably a very long way off, but I'd be interested in finding the weapons values for WC3 and WC4 to nerf the latter's missiles at some point. :)
 

Iceblade

Admiral
Code:
Ship: 24: Class:  8; Radius:  10; Mass:     0; Max Scale:  512; Power Plant:   7; Fuel:     30; Damage:  25; Explosive Force:     0; Max Speed: 1600; Cruise Speed:   0; Max Acceleration:   0; Max Yaw/Pitch/Roll:  0/ 0/ 0; Angular Inertia:     0
Shields: Fore:   0; Aft:   0; Armor: Front:   0; Rear:   0; Left:   0; Right:   0

Ship: 25: Class:  8; Radius:  10; Mass:     1; Max Scale:  832; Power Plant:  14; Fuel:     20; Damage:  40; Explosive Force:     0; Max Speed: 1400; Cruise Speed:   0; Max Acceleration:   0; Max Yaw/Pitch/Roll:  0/ 0/ 0; Angular Inertia:     0
Shields: Fore:   0; Aft:   0; Armor: Front:   0; Rear:   0; Left:   0; Right:   0

Ship: 26: Class:  8; Radius:  10; Mass:     0; Max Scale:  512; Power Plant:   9; Fuel:     25; Damage:  30; Explosive Force:     0; Max Speed: 1200; Cruise Speed:   0; Max Acceleration:   0; Max Yaw/Pitch/Roll:  0/ 0/ 0; Angular Inertia:     0
Shields: Fore:   0; Aft:   0; Armor: Front:   0; Rear:   0; Left:   0; Right:   0

Ship: 27: Class:  8; Radius:  15; Mass:     0; Max Scale:  832; Power Plant:  15; Fuel:     40; Damage:  50; Explosive Force:  1000; Max Speed: 1500; Cruise Speed:   0; Max Acceleration:   0; Max Yaw/Pitch/Roll:  0/ 0/ 0; Angular Inertia:     0
Shields: Fore:   0; Aft:   0; Armor: Front:   0; Rear:   0; Left:   0; Right:   0

Ship: 28: Class: 11; Radius:  20; Mass:     5; Max Scale:  768; Power Plant: 500; Fuel:    120; Damage:   4; Explosive Force: 14500; Max Speed: 1300; Cruise Speed:   0; Max Acceleration: 1433; Max Yaw/Pitch/Roll: 15/15/15; Angular Inertia:   100
Shields: Fore:   0; Aft:   0; Armor: Front:   0; Rear:   0; Left:   0; Right:   0

Ship: 29: Class: 11; Radius:  20; Mass:     5; Max Scale:  768; Power Plant: 400; Fuel:    140; Damage:   4; Explosive Force: 13500; Max Speed: 1100; Cruise Speed:   0; Max Acceleration: 1689; Max Yaw/Pitch/Roll: 11/11/11; Angular Inertia:   100
Shields: Fore:   0; Aft:   0; Armor: Front:   0; Rear:   0; Left:   0; Right:   0

Ship: 30: Class: 11; Radius:  20; Mass:     5; Max Scale:  768; Power Plant: 400; Fuel:    160; Damage:   4; Explosive Force: 10500; Max Speed:  900; Cruise Speed:   0; Max Acceleration: 1689; Max Yaw/Pitch/Roll: 11/11/11; Angular Inertia:   100
Shields: Fore:   0; Aft:   0; Armor: Front:   0; Rear:   0; Left:   0; Right:   0

Ship: 31: Class: 11; Radius:  20; Mass:     5; Max Scale:  768; Power Plant: 400; Fuel:    110; Damage:   4; Explosive Force: 11500; Max Speed: 1100; Cruise Speed:   0; Max Acceleration: 1689; Max Yaw/Pitch/Roll: 11/11/11; Angular Inertia:   100
Shields: Fore:   0; Aft:   0; Armor: Front:   0; Rear:   0; Left:   0; Right:   0

Ship: 32: Class: 11; Radius:  25; Mass:    10; Max Scale:  768; Power Plant: 400; Fuel:    200; Damage:   4; Explosive Force: 30000; Max Speed:  500; Cruise Speed:   0; Max Acceleration: 1280; Max Yaw/Pitch/Roll: 10/10/10; Angular Inertia:   100
Shields: Fore:   0; Aft:   0; Armor: Front:   0; Rear:   0; Left:   0; Right:   0

Ship: 33: Class: 10; Radius:  20; Mass:     5; Max Scale:  768; Power Plant: 110; Fuel:    120; Damage:   4; Explosive Force: 10000; Max Speed:  200; Cruise Speed: 200; Max Acceleration:   0; Max Yaw/Pitch/Roll:  0/ 2/ 2; Angular Inertia:     0
Shields: Fore:   0; Aft:   0; Armor: Front:   0; Rear:   0; Left:   0; Right:   0
Huh, Number 32 reads like a torpedo: high damage, longer range, slow speed.

As for damage, it is clear that the Explosive Force is representative of the damage done. However, it is not clear how this translates into damage done on a hit. For instance 14500 is a lot of damage even when treating it as millimeters of shield/armor.
 

AllTinker

Veteran Spaceman
WCToolbox is fantastic, just being able to dump structural info and raw values has sped up my own efforts enormously. Thanks!

Your tool extracting values from the EXE means clean-room reverse engineered projects like mine don't have to use nearly as many guesstimates, which is awesome.
 

ChrisReid

Super Soaker Collector / Administrator
Armada is absolutely ripe for some hardcore modding. Speaking as someone who actually went to people's houses to do split screen two-player-on-one-machine Armada combat way back in 1994 to my epic live streaming showdown with Dundradal a few weeks ago, I'm a huge Armada fan and would play the hell out of a fan revamp.

I have no place to talk about actual difficulty or feasibility in doing the work, but there's so much potential for expansion. Just right off the top of my head: streamlining the multiplayer connection process, increasing the resolution to see more map, adding in 3 or 4 player ability, adding in ships, greater control over the sectors, adjusting the probabilities of the quick combat, adding other cap ships (destroyers/cruisers that act like mobile fortresses... potentially capship combat), adding other planetside structures (advanced shipyards that can do higher tier fighters/capships/etc), and adding drag-and-drop movement to streamline all the transit clicking would be amazing. That's just for the strategic mode. There's improvements that can be made to the coop gauntlet and tons of stuff for the five player proving grounds arena combat as well.
 

Pedro

Admiral
No need for convincing, I'm already working on Armada. I'm finishing work on something else and then will prepare for an initial release. It won't be complete support for the game, but a start.
We've mostly focused on WC4 but Grim and I have started digging into the data and identified the two decompression techniques being used.
I've actually found it's essential to start with WC3 and then move onto WC4 as WC3 uses identifiers for almost every variable but WC4 is more fond of blocks of data (presumably to speed up loading). Since it's the same engine I assume there will be a lot of overlap with Armada.
It's still early days for me and Grim but we'd love to compare notes. Since such a tool would be invaluable for us we'd contribute anything we can.
 
Last edited:

UnnamedCharacter

2nd Lieutenant
Pedro said:
Since it's the same engine I assume there will be a lot of overlap with Armada.
I am assuming the same thing myself. In part, this is why I am progressing chronologically, being able to leverage the knowledge of each previous game. It's worked-out pretty well so far.

Pedro said:
It's still early days for me and Grim but we'd love to compare notes.
Same here. No doubt you guys are way ahead than I am. At this point, my knowledge of the RealSpace engine formats is quite limited. I have not spent a lot of time on the internal data structures and I have not even looked at the format of the 3d models. I am essentially adapting the Privateer tooling to Armada, serving as a starting point and then I will add specifics.
 

Pedro

Admiral
I sent you a PM with what we have so far; I imagine you know most of it already if you've started on Armada but hopefully it's useful.
Look forward to seeing what you come up with.
 

-danr-

Vice Admiral
Armada is absolutely ripe for some hardcore modding. Speaking as someone who actually went to people's houses to do split screen two-player-on-one-machine Armada combat way back in 1994 to my epic live streaming showdown with Dundradal a few weeks ago, I'm a huge Armada fan and would play the hell out of a fan revamp.

I have no place to talk about actual difficulty or feasibility in doing the work, but there's so much potential for expansion. Just right off the top of my head: streamlining the multiplayer connection process, increasing the resolution to see more map, adding in 3 or 4 player ability, adding in ships, greater control over the sectors, adjusting the probabilities of the quick combat, adding other cap ships (destroyers/cruisers that act like mobile fortresses... potentially capship combat), adding other planetside structures (advanced shipyards that can do higher tier fighters/capships/etc), and adding drag-and-drop movement to streamline all the transit clicking would be amazing. That's just for the strategic mode. There's improvements that can be made to the coop gauntlet and tons of stuff for the five player proving grounds arena combat as well.
I don't know if it's just poor memory because I haven't played Armada for 15 years, but I always recall the space flight to be less smooth than WC3 despite sharing an engine. Maybe it had a lower native frame rate or maybe the hardware I was using at the time didn't cope with it as well, but if it really is as choppy as I remember, it'd be great to find a way to mod it into being as smooth as WC3.
 

ChrisReid

Super Soaker Collector / Administrator
I'm not sure I'd call Armada choppy, but it's certainly an earlier build than WC3 with a few differences. Sense of speed and AI tactics were definitely unique. The AI is overly focused on "jousting," which leads to a lot of spinning around and face-off runs which are a bit off. It's certainly possible to overcome this with your own flying technique, but it doesn't feel quite as solid as most WC games in that regard. This is much less of an issue for human on human combat.
 

Pedro

Admiral
I'm not sure I'd call Armada choppy, but it's certainly an earlier build than WC3 with a few differences. Sense of speed and AI tactics were definitely unique. The AI is overly focused on "jousting," which leads to a lot of spinning around and face-off runs which are a bit off. It's certainly possible to overcome this with your own flying technique, but it doesn't feel quite as solid as most WC games in that regard. This is much less of an issue for human on human combat.
I always felt all the games in the real space engine felt "choppy". Rotation wasn't yet smooth as it would be in Prophecy - and that fact wasn't masked by the use of sprites as it was in the earlier games. I didn't spend a lot of time with Armada but I remember really noticing it in WC3, especially KS. I swear they bumped up the framerate so the precision issues were amplified - making mouse/joystick controls feel worse.
 

UnnamedCharacter

2nd Lieutenant
I do not have an update for the toolbox, but instead a utility program for viewing a snapshot of in-memory game data. It is an outgrowth of the WC1LiveViewer program, except not live anymore and with much more data. It is a bit slow, but it works for my needs.

default2.png


The Data tab provides a fairly extensive hierarchical view of the game data set and can be filtered using keywords. The InFlight and Mission tabs provide a specialized view of a subset of the data.

See the first post of this thread for the download.


Support is limited to the Kilrathi Saga version of the game (WC1.EXE). To use the inspector, start the game, then the inspector program. If it recognizes the running process, it will populate the program with a snapshot of game data. Since the game data is continuously updating you can refresh (F5) the program to update the snapshot.

As an example, let us enter an asteroid field. Using the data tab and filtering on hazards, we can see the values for the asteroid field. The game has populated in-flight object slots 13 to 20 as asteroids and from the in-flight tab we can see related values grouped together. If the object has an image block associated with it, a preview will be shown.

asteroids0.png asteroids1.png asteroids2.png
 
Last edited:
Top