Hello my friends!
I'm Carlos Teixeira from Portugal, long time visitor of Wing Commander CIC but only registered today. I consider myself a veteran Wing Commander player, since the first time i played was sometime in 1991/1992.
I'm also an avid retro gamer and i play my old DOS games on my custom built MS-DOS PC. Wanting to play Wing Commander on all its glory, including a real Roland MT-32, the speed sensitive nature of the first game executable is a real show stopper. Not being amazingly talented in software reverse engineering i rolled up my sleeves, applied some elbow grease and started to work on a solution. I could build a 386SX33 just for Wing Commander, but i don't have a lot of space, and i decided to settle on only 3 MS-DOS computers. An IBM 5160 for early CGA/CGA Composite stuff, a Tandy 1000 SL for mid to early 90's 16 color stuff and my main AMDK6-3+ DOS PC. The latter is very flexible as the CPU multiplier can be controlled by software and i can disable all caches via software too. So why don't i just disable all the caches, reduce multiplier and enjoy WC? It actually runs decently on this config. Well, firstly because it's not perfect and because WC being as hard as it is, i don't need any additional quirks. Enough of this rambling, let's get to the good stuff.
So i'm sure that everybody is aware that SM2.EXE (executable for Secret Missions 2) does not suffer from the speed problem WC.EXE suffers. So a common solution is to rename the SAVEGAME.WLD to CRUSADE.WLD, and play that way with the known caveats. You know, Paladin now has DOOMSDAY graphics and Bossman is now JAZZ. So i decided to try to remove all the caveats i could.
So this is basically some hex editing and graphics swapping, thanks to the wonderful WC TOOLS pack, so i'm including 2 executables. WC1.EXE and SM1.EXE. Both these files are basically SM2.EXE HEX edited to use the proper graphically swapped files and to start its proper campaign. So far i've been playing and found no issues gamebreaking issues. Only thing i haven't been able to solve is the campaign flag on the savegame file. Both WC1.EXE and SM1.EXE now use a different savegame file: SAVEGAM.WLD, and the .EXE files still save the games with a byte value of 2 which means the Secret Missions 2 campaign. I haven't been able to find where in the .EXE it saves that byte. It needs to have a value of 0 for Vega Campaign and 1 for Secret Missions 1. You can always use the tool WCSAV to change it properly, but everytime you save the game it will always save the byte with value of 2. That byte can be found on a save game file if you count 1AA hex starting from each save slot.
I'm not so good with this so if anybody experience can help me out that would be great. I tried IDA but i'm not really good looking at assembly code.
Give it a try! Put all the .EXE files on your main game folder, and the others on the gamedat folder. Again this is for the DOS version, and i've been editing the version sold on GoG.com.
EDIT: Please i want to make it clear that the intention is not to distribute a full game, only the files necessary for the workaround to work. Anyone wanting to try this patch is required to own the game.
I'm Carlos Teixeira from Portugal, long time visitor of Wing Commander CIC but only registered today. I consider myself a veteran Wing Commander player, since the first time i played was sometime in 1991/1992.
I'm also an avid retro gamer and i play my old DOS games on my custom built MS-DOS PC. Wanting to play Wing Commander on all its glory, including a real Roland MT-32, the speed sensitive nature of the first game executable is a real show stopper. Not being amazingly talented in software reverse engineering i rolled up my sleeves, applied some elbow grease and started to work on a solution. I could build a 386SX33 just for Wing Commander, but i don't have a lot of space, and i decided to settle on only 3 MS-DOS computers. An IBM 5160 for early CGA/CGA Composite stuff, a Tandy 1000 SL for mid to early 90's 16 color stuff and my main AMDK6-3+ DOS PC. The latter is very flexible as the CPU multiplier can be controlled by software and i can disable all caches via software too. So why don't i just disable all the caches, reduce multiplier and enjoy WC? It actually runs decently on this config. Well, firstly because it's not perfect and because WC being as hard as it is, i don't need any additional quirks. Enough of this rambling, let's get to the good stuff.
So i'm sure that everybody is aware that SM2.EXE (executable for Secret Missions 2) does not suffer from the speed problem WC.EXE suffers. So a common solution is to rename the SAVEGAME.WLD to CRUSADE.WLD, and play that way with the known caveats. You know, Paladin now has DOOMSDAY graphics and Bossman is now JAZZ. So i decided to try to remove all the caveats i could.
So this is basically some hex editing and graphics swapping, thanks to the wonderful WC TOOLS pack, so i'm including 2 executables. WC1.EXE and SM1.EXE. Both these files are basically SM2.EXE HEX edited to use the proper graphically swapped files and to start its proper campaign. So far i've been playing and found no issues gamebreaking issues. Only thing i haven't been able to solve is the campaign flag on the savegame file. Both WC1.EXE and SM1.EXE now use a different savegame file: SAVEGAM.WLD, and the .EXE files still save the games with a byte value of 2 which means the Secret Missions 2 campaign. I haven't been able to find where in the .EXE it saves that byte. It needs to have a value of 0 for Vega Campaign and 1 for Secret Missions 1. You can always use the tool WCSAV to change it properly, but everytime you save the game it will always save the byte with value of 2. That byte can be found on a save game file if you count 1AA hex starting from each save slot.
I'm not so good with this so if anybody experience can help me out that would be great. I tried IDA but i'm not really good looking at assembly code.
Give it a try! Put all the .EXE files on your main game folder, and the others on the gamedat folder. Again this is for the DOS version, and i've been editing the version sold on GoG.com.
EDIT: Please i want to make it clear that the intention is not to distribute a full game, only the files necessary for the workaround to work. Anyone wanting to try this patch is required to own the game.
Attachments
Last edited: