WING HARD (Difficulty Adjuster, WC1/2)

Sheppard

Rear Admiral
WING HARD version 1.5
(Hosted on my site as CIC won't let you attach 3~ MB ZIP Files.

This is an outgrowth of previous research into zeroing out asteroid damage:

Link

This program lets you fine tune WC1 and WC2 (GOG releases) difficulty to what you feel is correct.

Basically, I programmed in all the offsets for Terran Confederation Ships/Craft's shield/armor values, along with their stock base values.

So for example, if you enter a multiplier of 1.5 for difficulty for Terran Ships; the game becomes easier because you now have more armor.

WC1's Hornet has 40 stock value = 4.0 cm front shields stock.

Multiplying that, it becomes 40 * 1.5 = 60 (or 6.0 cm in game).

Likewise, entering a multiplier of say 0.8, the game becomes harder because you have less armor.

Over in asteroids; difficulty is changed via changing the radius of asteroids in the game via a multiplier.

Radius is effectively the size of the in-game collision hitbox. Stock Asteroids have a radius of 100 in both WC1 and WC2.

You can now adjust how "hard" asteroid fields are -- eliminating them entirely, if you enter 0.05, it computes a radius of 5, effectively removing them as a threat in the game.

The reason for the huge file size (for what it does) is because it's written in Python v3.x; and if you want to make a distributable executable for python scripts, the packager puts EVERYTHING IN, i.e. an entire python distribution is scrunched into the executable.

Filesize issues are offset by the fact that Python is much more pleasant to program for as a hobbyist doing hobbyist things, and there's more tutorials or answered questions for things I want to do in Python.

DEV NOTES:

In WC1, everything (ship damage, asteroid radius) is all held within the executable files (WC1.exe and SM2.exe)

In WC2, only asteroid radius is in the executable (WC2.exe, SO1.exe and SO2.exe). Ship values are held in the (SHIP.Vxx) files in GAMEDAT directory.

Here's a listing of the SHIP.Vxx files

SHIP.V00---------FERRET
SHIP.V01---------RAPIER
SHIP.V02---------BROADSWORD
SHIP.V03---------EPEE
SHIP.V04---------SABRE
SHIP.V05---------SARTHA
SHIP.V06---------DRAKHRI
SHIP.V07---------JALKEHI
SHIP.V08---------GRIKATH
SHIP.V09---------STRAKHA
SHIP.V10---------BLOODFANG
SHIP.V11---------CLYDESDALE
SHIP.V12---------FREE TRADER
SHIP.V13---------DORKATHI
SHIP.V15---------CROSSBOW
SHIP.V16---------KAMEHKH
SHIP.V17---------WATERLOO
SHIP.V18---------CONFEDERATION
SHIP.V19---------GILGAMESH
SHIP.V20---------RALATHA
SHIP.V21---------FRALTHRA
SHIP.V23---------HUMAN STARBASE
SHIP.V24---------HUMAN SUPPLY DEPOT
SHIP.V25---------KILRATHI SUPPLY DEPOT
SHIP.V26---------KITHRAK MANG
SHIP.V36---------GOTHRI (S01)
SHIP.V41---------MORNINGSTAR
SHIP.V48---------AYERS ROCK
SHIP.V50---------GOTHRI (S02)

NOTE: As of version 1.5; ALTSHIPS editing is not included in WING HARD, as I'm tired and sleepy.

ALTSHIPS.000---------CONCORDIA II
ALTSHIPS.000---------SABRE TORP
ALTSHIPS.000---------EPEE NO MISSILE
ALTSHIPS.000---------SABRE TORP II
ALTSHIPS.000---------SABRE NO GUNNER
ALTSHIPS.000---------BROADSWORD II

ALTSHIPS.001---------CONCORDIA II
ALTSHIPS.001---------SABRE TORP
ALTSHIPS.001---------EPEE NO MISSILE
ALTSHIPS.001---------SABRE TORP II
ALTSHIPS.001---------SABRE NO GUNNER
ALTSHIPS.001---------BROADSWORD II
ALTSHIPS.001---------PIRATE FERRET
ALTSHIPS.001---------FERRET MARK II
ALTSHIPS.001---------PIRATE EPEE
ALTSHIPS.001---------GOTHRI
ALTSHIPS.001---------CROSSBOW II
ALTSHIPS.001---------CROSSBOW III

ALTSHIPS.002---------CONCORDIA II
ALTSHIPS.002---------SABRE TORP
ALTSHIPS.002---------EPEE NO MISSILE
ALTSHIPS.002---------SABRE TORP II
ALTSHIPS.002---------SABRE NO GUNNER
ALTSHIPS.002---------BROADSWORD II
ALTSHIPS.002---------PIRATE FERRET
ALTSHIPS.002---------FERRET MARK II
ALTSHIPS.002---------PIRATE EPEE
ALTSHIPS.002---------GOTHRI
ALTSHIPS.002---------CROSSBOW II
ALTSHIPS.002---------CROSSBOW III
ALTSHIPS.002---------MORNINGSTAR
ALTSHIPS.002---------SABRE MAND
ALTSHIPS.002---------JAZZ STAR
ALTSHIPS.002---------MAND SWORD
ALTSHIPS.002---------DORKATHI NO GUNS
ALTSHIPS.002---------CONFEDORKATHI
ALTSHIPS.002---------MANIAC STAR
 
After many years, I returned and rewrote it in Turbo C++ 3.0 as a pure native DOS program, so you can run it inside DOSBOX now; and this shrunk the file size dramatically.

The new readme is now below:
==========================

WINGHARD v2.0 README (1 January 2025)

WHAT IS IT?


WINGHARD is a "difficulty" editor for the original Wing Commander series (WC1/WC2) and their addons (SM/SO).

WHY DO WE NEED IT?

A lot of O.G. Wingnauts are in their forties (or fifties) now and we just don't have the time anymore to suffer through some of Chris Roberts' design decisions made to extend the playability of the games.

I'm talking about the asteroid fields (mostly).

Yes, you can just enable the invincibility cheats such as:

"wc.exe Origin -k"


But that destroys a lot of the playability of Wing Commander if you are just invincible and zipping through the game.

So I set out to find a way to get rid of asteroids; and I found it through WingLoader which gave me the values I needed to search for it in the game files.

HOW DOES IT WORK:

You simply place WINGHARD.exe into your WC1 or WC2 install directory and run it before you play Wing Commander 1 (or 2).

It will recognize the game folder it's in and switch program logic accordingly.

WINGHARD lets you fine tune WC1 and WC2 (GOG releases) difficulty to what you feel is correct.

The difficulty is adjusted via three different sets of variables:

1.) Confederation Fighter/Capital Ship Shield/Armor Values.

2.) Asteroid Radius Values.

3.) Mine Radius/Damage Values.


(NOTE: Mine editing may or may not work in WC2 as of version 2.0; so be warned).

Through a multiplier, where 1.0 = stock game values.

As an example, you enter 1.5 as the multiplier for Terran fighters; and the WC1 Hornet is changed as follows:

WC1 Hornet = 40 stock = 4.0 cm front shields.

With a 1.5 multiplier; it becomes 40 * 1.5 = 60 (or 6.0 cm front shields in game).

Likewise, entering a multiplier of say 0.8, the game becomes harder because you have less armor/shields.

For Asteroids; game difficulty is changed via changing the radius of asteroids in the game via a multiplier.

Radius is effectively the size of the in-game collision hitbox in the first-generation WC engine. Stock Asteroids have a radius of 100 in both WC1 and WC2.

You can now adjust how "hard" asteroid fields are -- eliminating them entirely, if you enter 0.05, it computes a radius of 5, effectively removing them as a threat in the game.

FILES THAT THIS EDITS:

This is so that you can backup ahead of time, and avoid having to reinstall.

WC1: WC1.EXE and SM2.EXE

WC2: WC2.EXE, SO1.EXE, SO2.EXE and all SHIP.Vxx files in the GAMEDAT directory.

VERSION NOTES:

All WINGHARD versions prior to 2.0 were written in Python. Their sources are in the Source_Python Directory.

From 2.0 onwards; WINGHARD is written (and compiled in) Borland Turbo C++ 3.0 in a DOS environment to run natively in DOSBOX. Sources are in Source_TurboC directory.

DEVELOPER NOTES:

In WC1, everything (ship damage, asteroid radius, mines) is all held within the executable files (WC1.exe and SM2.exe)

In WC2, only asteroid radius and mine data is in the executable (WC2.exe, SO1.exe and SO2.exe). Ship values are held in the (SHIP.Vxx) files in GAMEDAT directory.

WC2 SHIP.Vxx files are:

SHIP.V00---------FERRET
SHIP.V01---------RAPIER
SHIP.V02---------BROADSWORD
SHIP.V03---------EPEE
SHIP.V04---------SABRE
SHIP.V05---------SARTHA
SHIP.V06---------DRAKHRI
SHIP.V07---------JALKEHI
SHIP.V08---------GRIKATH
SHIP.V09---------STRAKHA
SHIP.V10---------BLOODFANG
SHIP.V11---------CLYDESDALE
SHIP.V12---------FREE TRADER
SHIP.V13---------DORKATHI
SHIP.V15---------CROSSBOW
SHIP.V16---------KAMEHKH
SHIP.V17---------WATERLOO
SHIP.V18---------CONFEDERATION
SHIP.V19---------GILGAMESH
SHIP.V20---------RALATHA
SHIP.V21---------FRALTHRA
SHIP.V23---------HUMAN STARBASE
SHIP.V24---------HUMAN SUPPLY DEPOT
SHIP.V25---------KILRATHI SUPPLY DEPOT
SHIP.V26---------KITHRAK MANG
SHIP.V36---------GOTHRI (S01)
SHIP.V41---------MORNINGSTAR
SHIP.V48---------AYERS ROCK
SHIP.V50---------GOTHRI (S02)

There's also the ALTSHIPS series; which as of v2.0 aren't included in editing as I don't know how they interact (are they player ones, or semi friendly NPCs?)

ALTSHIPS.000---------CONCORDIA II
ALTSHIPS.000---------SABRE TORP
ALTSHIPS.000---------EPEE NO MISSILE
ALTSHIPS.000---------SABRE TORP II
ALTSHIPS.000---------SABRE NO GUNNER
ALTSHIPS.000---------BROADSWORD II

ALTSHIPS.001---------CONCORDIA II
ALTSHIPS.001---------SABRE TORP
ALTSHIPS.001---------EPEE NO MISSILE
ALTSHIPS.001---------SABRE TORP II
ALTSHIPS.001---------SABRE NO GUNNER
ALTSHIPS.001---------BROADSWORD II
ALTSHIPS.001---------PIRATE FERRET
ALTSHIPS.001---------FERRET MARK II
ALTSHIPS.001---------PIRATE EPEE
ALTSHIPS.001---------GOTHRI
ALTSHIPS.001---------CROSSBOW II
ALTSHIPS.001---------CROSSBOW III

ALTSHIPS.002---------CONCORDIA II
ALTSHIPS.002---------SABRE TORP
ALTSHIPS.002---------EPEE NO MISSILE
ALTSHIPS.002---------SABRE TORP II
ALTSHIPS.002---------SABRE NO GUNNER
ALTSHIPS.002---------BROADSWORD II
ALTSHIPS.002---------PIRATE FERRET
ALTSHIPS.002---------FERRET MARK II
ALTSHIPS.002---------PIRATE EPEE
ALTSHIPS.002---------GOTHRI
ALTSHIPS.002---------CROSSBOW II
ALTSHIPS.002---------CROSSBOW III
ALTSHIPS.002---------MORNINGSTAR
ALTSHIPS.002---------SABRE MAND
ALTSHIPS.002---------JAZZ STAR
ALTSHIPS.002---------MAND SWORD
ALTSHIPS.002---------DORKATHI NO GUNS
ALTSHIPS.002---------CONFEDORKATHI
ALTSHIPS.002---------MANIAC STAR

Development notes (and spreadsheets) are in the Source_Notes folder.
 

Attachments

Back
Top