Jump to content
DerelictStudios Forums
Xenkan

Windows 2000 Patch For Kane's Wrath And Tiberium Wars

Recommended Posts

 

Hi all,

 

Just wanted to spread the word that I've updated my Windows 2000 patch to work with Command & Conquer 3 Kane's Wrath 1.0 as well as Tiberium Wars 1.0 - 1.9

 

You can download my patch at these sites:

 

http://www.cnc-source.com/forums/index.php...mp;showfile=220

 

http://www.voidshard.net/Xenkan/CNC3Patch/

 

I've tested the patch on my own Windows 2000 PC and it certainly works for me, but if it doesn't work for you, please let me know. Of course, I'd also like to hear from the people who are helped by this patch :)

 

Enjoy!

 

 

Techy stuff:

 

In previous Xenkan patches, I had directly removed from CNC3.exe the Win XP/Vista version checks and the function calls which were not available on Windows 2000. However, with more recent versions of CNC3, EA has added a call to GetModuleHandleExA within the encrypted program cnc3game.dat Because the function call was behind the encrypted copy protection (ugh...) I had to find an alternate technique for patching. This new technique used by my patch is to create a custom kernel32.dll inside the CNC3 directory. Because the custom kernel32.dll is inside CNC3's local directory, it is used only by CNC3. The custom kernel32.dll is then able to intercept all Windows kernel function calls, either choosing to forward them along to the real kernel32.dll, or to override them with custom code. Functions which do not exist in Windows 2000 kernel can be intercepted and handled by the custom kernel32.dll rather than causing a fatal error. In this way, I have created a compatibility layer between CNC3.exe/cnc3game.dat and the real Windows 2000 kernel. I've made the source code to my patch and custom kernel32.dll openly available for download, feel free to take a look at how they work. I've found this technique to be incredibly useful, and hope someone else can also benefit from this information :)

 

Share this post


Link to post
Share on other sites

Thanks Xenkan! Works fine. Even with localizated version of the game.

Does the technique you've described work with other programs reporting the similar error? I get eror with kernel32.dll while trying to use 3D Ripper DX for example.

S.f.m.E.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×