Zeroing out Asteroid Damage in WC1/2

Sheppard

Captain
Just what it says on the tin. I can play WC1/2 like old days, but the asteroid fields...ugh.

They move too randomly and crazily for me to bother with them; but if you skip them, mission scores aren't high enough.

Yes, I could just enable the various cheats such as invincibility "wc.exe Origin -k", but that would destroy a lot of the fun of WC if you were invincible.

I was just wondering if it would be possible to find the mass/damage values for Asteroids in the EXE files and then zero them out (or reduce them to 5% of their value), to significantly lessen the aggravation value of the game.
 
For WC1, if you edit the "ship" data, which includes asteroids and other objects, it seems possible to remove the effect of asteroids.

Using the WCToolbox, you can unpack the EXE to XML, make the necessary changes and then repack it. The asteroids are class 9 objects (ships) and if you reduce their radius to 5 they appear to have no effect.
 
Last edited by a moderator:
The Asteroid Fields are not that bad as long as you stick to around 250 KPS which is considered to be the safest speed for flying in Asteroid Fields. If you have to dogfight in a field you could probably boost your speed up to about 320 KPS and still be relatively safe, just keep away from the afterburner.
 
I've unpacked the WC1.EXE file and I'm GUESSING that Asteroids and Mines are these:

Ship: 34: Class: 9; Radius: 100; Mass: 300; Max Scale: 640; Power Plant: 0; Fuel: 0; Damage: -1; Explosive: 0; Max Speed: 0; Cruise Speed: 0; Max Acceleration: 0; Max Yaw/Pitch/Roll: 0/ 1/13; Angular Inertia: 0;
Shields: Fore: 0; Aft: 0; Armor: Front: 0; Rear: 0; Left: 0; Right: 0
Weapon 0: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 1: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 2: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 3: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 4: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 5: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 6: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 7: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 8: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 9: Ship Index: 0; Hardpoint Index: 0; Selected: True

Ship: 35: Class: 9; Radius: 100; Mass: 300; Max Scale: 640; Power Plant: 0; Fuel: 0; Damage: -1; Explosive: 0; Max Speed: 0; Cruise Speed: 0; Max Acceleration: 0; Max Yaw/Pitch/Roll: 0/ 1/12; Angular Inertia: 0;
Shields: Fore: 0; Aft: 0; Armor: Front: 0; Rear: 0; Left: 0; Right: 0
Weapon 0: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 1: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 2: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 3: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 4: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 5: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 6: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 7: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 8: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 9: Ship Index: 0; Hardpoint Index: 0; Selected: True

Ship: 36: Class: 9; Radius: 100; Mass: 300; Max Scale: 640; Power Plant: 0; Fuel: 0; Damage: -1; Explosive: 0; Max Speed: 0; Cruise Speed: 0; Max Acceleration: 0; Max Yaw/Pitch/Roll: 0/ 1/13; Angular Inertia: 0;
Shields: Fore: 0; Aft: 0; Armor: Front: 0; Rear: 0; Left: 0; Right: 0
Weapon 0: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 1: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 2: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 3: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 4: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 5: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 6: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 7: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 8: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 9: Ship Index: 0; Hardpoint Index: 0; Selected: True

Ship: 37: Class: 9; Radius: 100; Mass: 300; Max Scale: 640; Power Plant: 0; Fuel: 0; Damage: -1; Explosive: 0; Max Speed: 0; Cruise Speed: 0; Max Acceleration: 0; Max Yaw/Pitch/Roll: 0/ 1/12; Angular Inertia: 0;
Shields: Fore: 0; Aft: 0; Armor: Front: 0; Rear: 0; Left: 0; Right: 0
Weapon 0: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 1: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 2: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 3: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 4: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 5: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 6: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 7: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 8: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 9: Ship Index: 0; Hardpoint Index: 0; Selected: True

Ship: 38: Class: 9; Radius: 100; Mass: 300; Max Scale: 640; Power Plant: 0; Fuel: 0; Damage: -1; Explosive: 0; Max Speed: 0; Cruise Speed: 0; Max Acceleration: 0; Max Yaw/Pitch/Roll: 0/ 2/13; Angular Inertia: 0;
Shields: Fore: 0; Aft: 0; Armor: Front: 0; Rear: 0; Left: 0; Right: 0
Weapon 0: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 1: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 2: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 3: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 4: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 5: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 6: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 7: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 8: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 9: Ship Index: 0; Hardpoint Index: 0; Selected: True

Ship: 39: Class: 9; Radius: 100; Mass: 300; Max Scale: 640; Power Plant: 0; Fuel: 0; Damage: -1; Explosive: 0; Max Speed: 0; Cruise Speed: 0; Max Acceleration: 0; Max Yaw/Pitch/Roll: 0/ 2/12; Angular Inertia: 0;
Shields: Fore: 0; Aft: 0; Armor: Front: 0; Rear: 0; Left: 0; Right: 0
Weapon 0: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 1: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 2: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 3: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 4: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 5: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 6: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 7: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 8: Ship Index: 0; Hardpoint Index: 0; Selected: True
Weapon 9: Ship Index: 0; Hardpoint Index: 0; Selected: True
 
Here's a zeroed out WC1 EXE with the asteroids reduced to radius 2. Verified it by flying through an asteroid field with no damage.

The WC1 EXE is from the WC1 Deluxe CD-ROM edition. No idea if it works with other installs.
 

Attachments

  • WC1_Zeroed_Asteroids.zip
    135.3 KB · Views: 128
NOTES: This uses the format adopted by UGE, an old DOS program that I use a lot for game hacking).

---------------

WING COMMANDER 1:

Look for

9 0 100 0

(Object data in the WC1 engine is two bytes, hence the 9 0 = 9 and 100 0 = 100.)

You want to change it to

9 0 2 0

to reduce the radius of asteroids to 2. (9 is the unitclass of asteroids and misc stuff).

The Asteroid (Class 9) stuff starts at the following offsets for the GOG versions of the game:

WC1 (WC.EXE): Offset 101804
WC1 Secret Missions 2 (SM2.EXE): Offset 101356

The exact offsets for each two byte entry are:

WC1 (WC.EXE)
Asteroid #1 Radius 101806
Asteroid #2 Radius 101917
Asteroid #3 Radius 102028
Asteroid #4 Radius 102139
Asteroid #5 Radius 102250
Asteroid #6 Radius 102361

WC1 SM (SM2.EXE)
Asteroid #1 Radius 101358
Asteroid #2 Radius 101469
Asteroid #3 Radius 101580
Asteroid #4 Radius 101691
Asteroid #5 Radius 101802
Asteroid #6 Radius 101913
 
Last edited:
Using HCL's old ship editor for WC2 as a guide, I've successfully used UGE to edit the WC2 Ferret to have a 1/1/1 dps manouver rate; confirming that the SHIP.V00 file contains the data for the ships.

Possibly known Vxx file numbers:

0 Ferret Light SHIP.V00
1 Rapier Medium Fighter SHIP.V01
2 BroadSword Bomber SHIP.V02
3 Epee Light SHIP.V03
4 Sabre Heavy SHIP.V04
5 Sartha Light SHIP.V05
6 Drakhri Medium Fighter SHIP.V06
7 Jalkehi Heavy Ftr SHIP.V07
8 Grikath Heavy SHIP.V08
9 Strakha Medium Fighter SHIP.V09
10 Bloodfang Medium Fighter SHIP.V10
11 Clydesdale Capital Ship (13 in WC1) SHIP.V11
12 Free Trader Capital Ship (13 in WC1) SHIP.V12
13 Dorkathi Capital Ship (13 in WC1) SHIP.V13
15 Crossbow Bomber SHIP.V15
16 Kamekh Capital Ship (13 in WC1) SHIP.V16
17 Waterloo Capital Ship (13 in WC1) SHIP.V17
18 Confederation Capital Ship (13 in WC1) SHIP.V18
19 Gilgamesh Capital Ship (13 in WC1) SHIP.V19
20 Ralatha Capital Ship (13 in WC1) SHIP.V20
21 Fralthra Medium Fighter SHIP.V21
23 Human Starbase Capital Ship (13 in WC1) SHIP.V23
24 Human Supply Depot Capital Ship (13 in WC1) SHIP.V24
25 K Supply Depot Capital Ship (13 in WC1) SHIP.V25
26 Kithrak Mang Capital Ship (13 in WC1) SHIP.V26
36 Gothri Heavy Ftr SHIP.V36
41 Morningstar Heavy SHIP.V41
48 Ayer's Rock Capital Ship (13 in WC1) SHIP.V48
50 Wraith Medium Fighter SHIP.V50

Also, each Vxx file seems to have the data in different locations -- I think because Vxx files might also contain compressed image data, which is different for each ship; which also explains why each Vxx file is also a different size; different images compress differently; some more efficiently than others, etc
 
Last edited:
Messing around with FIELD.V00 and FIELD.V02 thinking that they might have asteroid data (Asteroid Field), led to corrupted graphics:

(see attached)

Which makes me think that FIELD.vxx controls the cinematic field for WC2...

OR ...

it stands for starfield, aka the starfield backgrounds.
 

Attachments

  • Field.v.png
    Field.v.png
    30.2 KB · Views: 129
SUCCESS! I has done it!

Here are the radius offsets for all the asteroids in WC2.EXE:

121624
121867
122110
122353
122596
122839

As before, they are two byte entries.

Will do SO1.EXE and SO2.EXE next.

EDIT:

SO1.EXE

121938
122181
122424
122667
122910
123153

SO2.EXE

120504
120747
120990
121233
121476
121719
 
Last edited:
BTW, the max scale of asteroids in WC2 is different than WC1.

WC1=640
WC2=1024

This may be why asteroid fields may be slightly harder in #2 than in the first.
 
Here are zeroed out EXEs for the GOG releases (which is what people will have).

If these infringe on copyrighted stuff, go ahead and take them down.
 

Attachments

  • Zeroed_WC1_GOG_Exes.zip
    270.2 KB · Views: 131
  • Zeroed_WC2_GOG_Exes.zip
    461.9 KB · Views: 129
Very cool, thanks for going back and making the patched files/walkthrough pages for the work you did!
 
"New Patch Removes Asteroid Damage From WC1&2"

Cant say I disagree with this "cheat" (so to speak). Back in the day I got killed more by asteroids than by enemy ships!

Kudos to Sheppard!
 
Just takes some skill. Once you master it you can actually have your enemies hug astroids quite efficiently <g>
 
Back
Top