Go Back   Steam Users' Forums > Steam Game Discussions > T - Z > XCOM: Enemy Unknown

Reply
 
Thread Tools Display Modes
Old 10-09-2012, 10:47 AM   #1
KawaiiSara
 
KawaiiSara's Avatar
 
XSEED Games
Join Date: Apr 2009
Reputation: 164
Posts: 543
Running Enemy Unknown on XP (Guide)

Here is how you can get Enemy Unknown to run on XP.

This should also work with the demo version of the game, although filenames may be slightly different.

You see, the game is using some file functions that are only available on Vista or later. This is the only thing that is preventing the game from running, amusingly enough. There is an API from MS itself that will allow these functions on XP, but it has not been implemented in the game. Find that library here:
http://www.microsoft.com/en-us/downl....aspx?id=22599
You do not need it but this is just noted so that you are aware of what is used.
  1. You need a DLL replacement for kernel32 -- just for the game -- that implements the missing file functions. I have created this and posted it here.

    There is a small chance that a virus scanner may pick this "ZERNEL32.DLL" up as a false positive. It is not a virus and is simply acting as a pass-through for the functions. To show this, I'm also giving you the Visual Studio projects for the DLL, which you can look through and compile for yourself. Find it here.

  2. Run the game at least once through Steam before modifying it in any way through this next step! The game needs to "Finalize" before we proceed, even though running it will not be successful yet.

  3. Now, making the game work with these DLLs. I will not do this step for you because posting these files would be questionable in legality. Instead, I will instruct you on how to do this step yourself.

    First, find a hex editor. Any should do. You can use the freeware one XVI32.

    With your hex editor in hand, first open XComGame.exe (located in steamapps\common\XCom-Enemy-Unknown\Binaries\Win32). Do a text search. In XVI32 we pick "Search" then "Find". This text search should be case-insensitive (disable "case sensitive").

    Search for "kernel32.dll". Replace the K in all instances you find with a Z. Do the same with XComGame.com. I don't know if that part is necessary but it can't hurt. This will make the game open our "zernel32" passthrough dll instead of kernel32.dll.

  4. With the changes made and the DLLs (fileextd.dll and zernel32.dll) in hand, place these files in the same folder as the game EXE (steamapps\common\XCom-Enemy-Unknown\Binaries\Win32).

  5. With all three previous steps complete, the game should now be able to run. Give it a shot. Please let me know if this works for you.

Disclaimer: I can't promise the game will work perfectly with these changes, no warranties are given etc. and this was done without the consent of the developers. I will gladly remove this post if the developers or Valve request it. My intent is only to allow more people to play this fine game. Please note that this is not supported officially and that the developers are unlikely to give support for any issues the game has with Windows XP. Please do not buy this game on XP if you have not confirmed that the demo already works for you.

__________________
Sara Leen, Localization Programmer, XSEED Games.

Last edited by KawaiiSara: 10-15-2012 at 04:42 PM.
KawaiiSara is offline  
Reply With Quote
Old 10-09-2012, 10:58 AM   #2
Wulf2k
 
Join Date: May 2011
Reputation: 107
Posts: 822
Sounds like good work, and I'll assume it's all legit.

I would however recommend nobody touch your DLL for the sole reason that it's all that is needed to give somebody complete control over the system.
Wulf2k is offline   Reply With Quote
Old 10-09-2012, 10:59 AM   #3
KawaiiSara
 
KawaiiSara's Avatar
 
XSEED Games
Join Date: Apr 2009
Reputation: 164
Posts: 543
Quote:
Originally Posted by Wulf2k View Post
Sounds like good work, and I'll assume it's all legit.

I would however recommend nobody touch your DLL for the sole reason that it's all that is needed to give somebody complete control over the system.
Indeed. That very reason is why I provide the original project and source code for the DLL. I would recommend compiling all of it for yourself instead rather than risk the idea that I'm not trustworthy.

Please feel free to look the project files over completely if you are afraid that I'm doing anything shady as well.

Edit: Just to note, the DLL literally does nothing except export and pass all XP kernel32 functions to the normal kernel32.dll and export and pass the missing file functions to fileextd.dll. A quick look over it should confirm that. The thing is: Make your own judgment and confirm that for yourself. Don't just trust random people. I agree with that.

__________________
Sara Leen, Localization Programmer, XSEED Games.

Last edited by KawaiiSara: 10-09-2012 at 11:06 AM.
KawaiiSara is offline   Reply With Quote
Old 10-09-2012, 01:53 PM   #4
roy7
 
Join Date: Dec 2008
Reputation: 0
Posts: 34
Talking

Thanks so much. I'm upgrading to Windows 8 anyway when it comes out, but that's a few weeks off still. I didn't want to install the Release Preview just to play xcom. I'm impressed someone found a workaround so quickly. And since the solution was so simple, maybe they will add it into the base code sometime soon so a workaround isn't needed.

Thanks again.
roy7 is offline   Reply With Quote
Old 10-09-2012, 01:59 PM   #5
claiminglight
 
Join Date: May 2011
Reputation: 0
Posts: 6
Wow, you saved my butt.

Thanks so much, KawaiiSara!!

I bought this game without looking closely enough at the reqs. You saved my butt!
claiminglight is offline   Reply With Quote
Old 10-09-2012, 08:05 PM   #6
Freyar
 
 
 
Join Date: Jul 2006
Reputation: 1434
Posts: 16,480
I added this "community fix" to the FAQ I'm building.

http://steamcommunity.com/app/200510...8299956044436/
Freyar is offline   Reply With Quote
Old 10-09-2012, 09:08 PM   #7
CaptainJack
 
Join Date: Jan 2007
Reputation: 0
Posts: 22
I can confirm this fix works for the demo at least. Doesn't run perfectly (loading screens are a bit choppy) on my machine at 1080p but at least it runs. Thanks for posting this fix and the source to quell the doomsayers. This thread should be stickied.
CaptainJack is offline   Reply With Quote
Old 10-10-2012, 12:16 AM   #8
CaptainBligh314
 
Join Date: Jun 2010
Reputation: 15
Posts: 11
Working for me. Thank you KawaiiSara!
CaptainBligh314 is offline   Reply With Quote
Old 10-10-2012, 04:35 AM   #9
palessan
 
Join Date: May 2011
Reputation: 0
Posts: 5
Thumbs up Thank you!!!

Thank you!!!
palessan is offline   Reply With Quote
Old 10-10-2012, 05:31 AM   #10
th3v3N1N
 
 
 
Join Date: Dec 2011
Reputation: 0
Posts: 2
I followed the steps and didn´t work for me. I get the same Kernel32.dll error.
I need the Win32 FileID API Library file?
th3v3N1N is offline   Reply With Quote
Old 10-10-2012, 05:45 AM   #11
KawaiiSara
 
KawaiiSara's Avatar
 
XSEED Games
Join Date: Apr 2009
Reputation: 164
Posts: 543
Quote:
Originally Posted by th3v3N1N View Post
I followed the steps and didn´t work for me. I get the same Kernel32.dll error.
I need the Win32 FileID API Library file?
If you still got errors then you did not replace all instances of the original DLL name.
Please be sure that your search is not case-sensitive.

__________________
Sara Leen, Localization Programmer, XSEED Games.
KawaiiSara is offline   Reply With Quote
Old 10-10-2012, 05:57 AM   #12
scr3wpa
 
Join Date: Nov 2009
Reputation: 0
Posts: 19
I got further than before I tried this. Before I did this the game did not start up at all. I think think a steam window came up and said it was loading, and then nothing happened. Now I get to the initial developer/publisher videos. After that the game closes and a steam window comes up saying the game is currently unavailable (application running).
scr3wpa is offline   Reply With Quote
Old 10-10-2012, 06:05 AM   #13
KawaiiSara
 
KawaiiSara's Avatar
 
XSEED Games
Join Date: Apr 2009
Reputation: 164
Posts: 543
Quote:
Originally Posted by scr3wpa View Post
I got further than before I tried this. Before I did this the game did not start up at all. I think think a steam window came up and said it was loading, and then nothing happened. Now I get to the initial developer/publisher videos. After that the game closes and a steam window comes up saying the game is currently unavailable (application running).
If it crashes after those logos you may want to update your video drivers and DirectX.
Please be absolutely sure that you meet all system requirements aside from OS as well.

__________________
Sara Leen, Localization Programmer, XSEED Games.
KawaiiSara is offline   Reply With Quote
Old 10-10-2012, 06:55 AM   #14
emperorzorn
 
Join Date: Mar 2011
Reputation: 6
Posts: 43
I followed all of your steps but I still get an error:
Couldn't find "InitOnceExecuteOnce" in the DLL "zernel32.dll"
emperorzorn is offline   Reply With Quote
Old 10-10-2012, 07:01 AM   #15
KawaiiSara
 
KawaiiSara's Avatar
 
XSEED Games
Join Date: Apr 2009
Reputation: 164
Posts: 543
Quote:
Originally Posted by emperorzorn View Post
I followed all of your steps but I still get an error:
Couldn't find "InitOnceExecuteOnce" in the DLL "zernel32.dll"
You are using a pirated version of the game, and the pirated version of the game requires more Vista-and-later-specific functions that are not available in my DLL. This will not be changing.

If this is somehow not the case (and I apologize if so), please make sure that your game is fully up to date. That function should not exist in the current legitimate version of the game.

__________________
Sara Leen, Localization Programmer, XSEED Games.
KawaiiSara is offline   Reply With Quote
Reply

Go Back   Steam Users' Forums > Steam Game Discussions > T - Z > XCOM: Enemy Unknown


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



All times are GMT -7. The time now is 07:25 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
Site Content Copyright Valve Corporation 1998-2014, All Rights Reserved.