- Wing Commander EXE/DLL patches -


The most common way to patch a game is, without a doubt, to hex-edit the files that define it's content: there are different files for meshes, missions, textures, stats, etc, and by modifying these you can directly add new content to the game. This works very well, it's the essence of modding a game... however there are limits to the modifications made this way, since many things hard-coded on the EXE.

In an ideal world, Origin and Electronic Arts would have released the source code of Wing Commander games, so fans could tweak the games to their needs. Personally, i hope the decision of releasing the code is one that will eventually be made. However, while that doesn't happen, there's only a way to modify certain aspects of the games: to hex-edit the EXE and DLLs of the game, and even create our DLLs and make the game load them (which is a very powerful method of adding new features to our beloved WC games, without having the source code). This section will be entirely dedicated to these patches.

Source code to fan-made DLLs (available below) is free, with no restrictions of use. I only ask that, if you make modifications to this source code, you too make it available to everyone, so the WC community benefits of your changes and improvements :)

If you want me to host your patches, e-mail them to mbrito@student.dei.uc.pt and they will be placed below.




WC Prophecy High-res patch
Release date: February 23rd, 2003
Author: Mario "HCl" Brito - Programming, EXE/DLL patching, beta testing
Blackwolf - Beta testing of resolutions higher than 1024x768
Screenshots: First WCP mission: approaching the Fralthi II wreck - 1024x768
The TCS Midway - 1024x768
Cockpit view: firing a missile - 1280x1024
Cockpit view: mission accomplished - 1280x1024
Downloads: WCP High-res, Version 1.0
(fixed installer)
Notes: An install program is being used, so this should work in every resolution your card and monitor supports.

Blackwolf will be helping beta-testing the higher resolutions, as my hardware can't handle resolutions above 1024x768. Also, thanks must go to Quarto for the original research in the area of cockpit resizing.

Update: I've uploaded a new installer to fix a very rare problem, which only seems to happen when using certain versions of MFC (this version of MFC doesn't seem to null-terminate strings when using the GetLine method). If you try to make the patch work at 1024x768 and you get an error saying that the game cannot run at 1024x7684x16, this will fix it.



WC1 High-res patch
Release date: N/A, under development; announcement date: January 20th, 2003
Author: Mario "HCl" Brito
Downloads: N/A
Notes: Currently under development, this project aims to improve the visual quality of Wing Commander 1 (Kilrathi Saga version).

The first phase will consist in exploring the use of anti-aliasing methods to improve visual quality as much as possible. If all goes well, phase 2 will be to find a way to replace the existing sprites with more detailed ones. At that point, the patch will be ported to Wing Commander 2 (due to engine similarity, this should prove simple enough).

The first phase is well underway, with Direct3D code implemented for sprite rendering, taking into account sprite rotation and scaling, although some bugs persist at this point (no releases are likely until these are fixed).

The display resolution has been doubled (from 320x200 to 640x400) and color depth is now 16-bit (enough for the linear texture filters used by Direct3D). Other resolutions may be considered, although may not be too useful due to the resolution of the original WC1 sprites. More news soon regarding the progress of this project!



DLL Patches - How To
Release date: January 13th, 2003
Author: Mario "HCl" Brito
Downloads: DLL Patches: How To
Notes: This document contains information on how to modify an EXE to load a new DLL containing one or several patches.



Secret Ops High-res Patch - Source Code
Release date: January 13th, 2003
Author: Mario "HCl" Brito
Downloads: Source code of the DLL used to implement the high-res patch.
Notes: This is the DLL which allows using a high resolution on Secret Ops. Useful to see how a DLL patch works.

The BtnST code was created by Davide Calabro'



Unknown Enemy DLL - Source Code
Release date: January 13th, 2003
Author: Mario "HCl" Brito
Downloads: Source code of the DLL which implements the collection of patches used by the Unknown Enemy project.
Notes: This is the DLL used by the Unknown Enemy project to implement several patches and new mission commands (new mission commands start with the "HCL_" prefix).

This source code is, unfortunately, a messy mix of Assembly and C code :( It fully works, although it could use a bit of a "house-cleaning". I have attempted to comment it a bit however, so you should be able to tell what does what nevertheless.

The most interesting points of this DLL are probably the new mission commands and the functions which make use of the game objects (as under-documented as they are), since they give useful information regarding the game's inner workings.



Privateer2 Slowdown Patch
Release date: January 12th, 2003
Author: Jonathan Scobbie
Downloads: Patching program
Notes: Jonathan's program patches the Windows' version of Privateer2, so it's playable in modern machines, by introducing small delays on critical game cycles. More details on the readme file.

Very nicely done, good work! :)