TechSpot

Crysis & Crysis Warhead Win2K Fixes

By Per Hansson
Nov 1, 2007
Topic Status:
Not open for further replies.
  1. EDIT; The problem I had with getting the fix working on the retail version has been fixed, it was just me being asleep and forgetting to pad GetRawInputData with zeroes, new fix for retail version linked below...

    To play the Crysis Demo or Retail or Warhead on Windows 2000 you need three files, powrprof.dll, dbghelp.dll and xinput1_3.dll

    You can get powrprof.dll from a Windows XP or 2003 install, the version I used which worked was 6.0.3790.3959 from a 2003 SP2 server install.
    dbghelp.dll is used by many games, the version I took was from my Steam directory, version 6.7.5.0

    You can find the xinput1_3.dll in the latest DirectX monthly redist (or the Bioshock DVD if you followed that guide too ;))
    In the extracted archive open the file APR2007_xinput_x86.cab and extract the xinput1_3.dll file

    Now you need to open xinput1_3.dll in a HEX Editor, I use Hex Workshop.
    Search for the textstring: "TraceMessage" and replace that with "GetUserNameA"

    Next we will need to modify two of the games own dll files, because it checks if we are running WinXP!
    Open CryInput.dll and search for GetRawInputData, replace with; MessageBoxA
    Pad the text "Data" with zeroes
    Next open up CrySystem.dll, at Offset 0x598E3 change "77" to "EB" (replaces "w" with a dot to jump this check...)
    If you are modifying the Retail version the Offset is; 0x598A3 instead
    v1.1 is at 0x59E23
    v1.2.1 is at 0x59733
    With Warhead Retail the offset is at 0x59313

    Place all dll files in the games install dir under \Bin32
    (Don't overwrite the files in your winnt/system32 dir!)

    Please post any problems or issues in this thread, my Win2K install is not very "clean" so more fixes might be needed... Oh, make sure to install the latest nVidia beta display driver for Crysis too, as of this writing 177.92 (same applies to ATI/AMD of course)

    And for our readers who don't have a fetish for HEX Editors here is a winrar archive with the already modified dll files ;)
    Choose the appropriate version depending on if you are running the Demo or Retail version! (And what patch if any you have installed if Retail)
    Crysis_Demo_Win2K_Fix.rar
    Crysis_Retail_Win2K_Fix.rar (ingame build number; 1.1.1.5767)
    Crysis_v1.1_Retail_Win2K_Fix.rar (ingame build number; 1.1.1.5879)
    Crysis_v1.2.1_Retail_Win2K_Fix.rar (ingame build number; 1.1.1.6156)
    Crysis_Warhead_Retail_Win2K_Fix.rar (ingame build number; 1.1.1.687)


    What the XInput fix does is replace the call TraceMessage with something we will have access to, the side effect to this fix is that it should not be possible to use an X-Box Controller for the game (well I suppose there never was since xinput does not get installed at all for Win2K anyway so...)

    And now some keywords for the google bot

    The procedure entry point ReadProcessorPwrScheme could not be located in the dynamic link library POWRPROF.dll

    The procedure entry point SymFromAddr could not be located in the dynamic link library dbghelp.dll

    The instruction at "0x36503a01" referenced memory at "0x00000000". The memory could not be "read".

    ERROR: CryInput.dll could not be loaded!
    ---------------------------
    CryInput.dll could not be loaded. This is likely due to not having XInput support installed.
    Please install the most recent version of the DirectX runtime.
  2. bushwhacker

    bushwhacker TechSpot Chancellor Posts: 1,086

    Yes! I Love You Man!
  3. SNGX1275

    SNGX1275 TS Forces Special Posts: 12,525   +300

    Cool. What about the performance vs XP?
  4. Per Hansson

    Per Hansson TS Server Guru Topic Starter Posts: 1,930   +123 Staff Member

    I posted some results in this thread.

    With the same settings on both tries I get: 25.75fps in Vista and 34.94fps in Windows 2000

    I will under the weekend test performance in Windows XP 32 and 64 bit plus Vista 32 and 64 bit
    My hunch is that Windows XP 32 bit will be tied vs 2000 but that XP X64 will win big time!
  5. bushwhacker

    bushwhacker TechSpot Chancellor Posts: 1,086

    If that happens, I will upgrade to xp x64. :)
  6. Per Hansson

    Per Hansson TS Server Guru Topic Starter Posts: 1,930   +123 Staff Member

    Well, so much for hunches, reply posted here;
    http://www.techspot.com/vb/showpost.php?p=528042&postcount=18
  7. jeremymtc

    jeremymtc TS Rookie

    Thanks for your efforts, Per. I very much appreciate your work in getting the Demo and game running in 2k. I'm hoping for an eventual resolution, but for now, I'm playing with the retail maps in the Demo engine :grinthumb . It's not perfect, but it's tiding me over.
  8. groundloss

    groundloss TS Rookie

    Hi, I downloaded your winrar archive and unpacked all the files into Bin32.
    Unfortunatly all i get is "Crysis.exe caused an error, please restart ..." different from your error message.

    Running Win2k SP4 (german language set).
  9. Per Hansson

    Per Hansson TS Server Guru Topic Starter Posts: 1,930   +123 Staff Member

    groundloss; those files are only for the demo, the full version has very different files... I have not uploaded those yet, as they still do not help you run the game...

    But I've also ran into another problem or two, first is that this game indeed does climb up to a virtual address space usage of more then 2GB. This of course causes the game to crash on all 32bit operating systems (Win2K, WinXP, Vista 32bit)

    So to be able to play this game you will either need a 64bit OS, WinXP x64 is what I would recommend, or to change the kernel/application virtual address space allocation from 2gb/kernel 2gb/user space to 1gb/kernel 3gb/user space, that should help but might cause other problems of it's own...

    http://msdn2.microsoft.com/EN-US/library/ms791558.aspx

    I've also managed to kill my 7900GT, so right now I have a 2MB Matrox Mystique :D
    Will get new components from Elfa in a day or two so I can attempt to repair it...
  10. jeremymtc

    jeremymtc TS Rookie

    Edit - This workaround is now obsolete, much thanks to Mr. Hansson


    Groundloss,

    If you would like to play through the game using Win2K, there is a workaround to do this. It's ugly, but it works:

    1) DL & Install the Crysis SP Demo, and patch as per Per's instructions in the first post. Make a backup copy of your patched Demo directory just in case.

    2) Copy the the entire folder titled "Game" from your full retail installation into the Demo installation: Crytek\Crysis\Game >> Crytek\Crysis SP Demo\Game.

    3) Copy the full retail executable, "Crysis.exe" from Crytek\Crysis\Bin32\Crysis.exe >> Crytek\Crysis SP Demo\Bin32\Crysis.exe

    4) Open Crytek\Crysis SP Demo\Game\Levels. Create a folder inside called "renamed".

    5) Inside your new folder "renamed", create the following folders (you'll want to include the numbers 1-11 just like below, so you know which order to load the maps in):

    01 Contact
    02 Recovery
    03 Relic
    04 Assault
    05 Onslaught
    06 Awakening
    07 Core
    08 Paradise Lost
    09 Exodus
    10 Ascension
    11 Reckoning

    6) In the demo installation, which is all that will currently work under Windows 2K, map loading is restricted in the in-game console (but not in the editor). To get around this, we will have to rename each level to "island", the starting level which does load, just like anyone who is loading a custom Sandbox map into the demo engine.

    To keep things simple and organized, we're just going to make a duplicate directory of renamed levels inside of the folder "renamed", without disturbing the originals. The level names though, do not always correspond with the actual map names. This is how the levels and maps are reconciled:

    01 Contact = "island"
    02 Recovery = "village"
    03 Relic = "rescue"
    04 Assault = "harbor"
    05 Onslaught = "tank"
    06 Awakening = "mine"
    07 Core = "core"
    08 Paradise Lost = "ice"
    09 Exodus = "sphere"
    10 Ascension = "ascension"
    11 Reckoning = "fleet"

    You will need to place the various maps into the folders as shown above.

    7) We're almost there. Each level folder contains 3 files that we will need to rename. As an example, we'll use the folder "village". The files "village.cry", "village.dds", and "village.xml" will each need to renamed to "island.cry", "island.dds", and "island.xml". The folder "village" will also need to be renamed to "island" - this is why it helps to have a separate directory to keep all of your renamed maps in.

    You will need to repeat the same process for each of the level folders in your "renamed" directory.

    8) You will want to make a backup of the original "island" level inside Crytek\Crysis SP Demo\Game\Levels, so copy/paste it into "Levels" as "island_orig".

    You can now run the Crysis demo, with access to each of these maps. When you complete a level, the game will just loop back to the beginning of the level you've just completed. You'll need to quit the game, and copy/paste the next level from your "renamed" folder to the "Levels" folder. Essentially you are just updating "island" to the subsequent level each time you advance. The above method involving duplicates just keeps it more organized, and makes level changes very quick and easy.

    You will need to select "new game" each time you manually load a new level. The main drawback here is that you will start each level with only the default weapons loadout for that level. Also, I'd recommend creating and using a separate in-game profile for saves on each level - this way, you won't overwrite any previous saves from earlier levels.

    Hope this helps, and please feel free to ask if you need any clarification =)
  11. Per Hansson

    Per Hansson TS Server Guru Topic Starter Posts: 1,930   +123 Staff Member

    There, files uploaded for the retail version now

    The fix actually worked, it was just me being out of sleep (and possibly wanting to play Crysis very much :D) that made me make a small mistake when modifying the Retail dll files...

    I've also fixed up my 7900GT, so now it's time for playing some Crysis under Win2K!
    Note; if you played in another OS before the save games and config files will be found under; \My Documents\My Games\Crysis
    For the user logged in when playing, for example;
    F:\Documents and Settings\Administrator\My Documents\My Games\Crysis
     
  12. jeremymtc

    jeremymtc TS Rookie

    Per, you are DA MAN! Thanks so much for all the help, it really is appreciated. My workaround is now obsolete! Hoooray!
  13. OldBoy2k

    OldBoy2k TS Member Posts: 27

    Hi all,

    first i would like to thankyou Per Hannson soooooooooo much for his work on BioShock and Crysis Windows2k fixes.All your work and spend time is so much valued and welcome.Thank you very very much!

    second: greets to all techspot members!So nice to be here!

    greets to sweden
    Mad
  14. Bigchris

    Bigchris TS Rookie

    Please pardon my confusion...

    I read that Crysis can be made to work successfully on a 32 bit Win2k system and then in a later post that there are memory size problems that cause a system crash and a 64 bit system is needed. I'd like to run Crysis on a P4 system under Win2k. Is that doable and if so, will 2Gb ram be enough?
    Thanks!
  15. Per Hansson

    Per Hansson TS Server Guru Topic Starter Posts: 1,930   +123 Staff Member

    Erm, yea, if you cared to read the first post everything is explained there so?
  16. Bigchris

    Bigchris TS Rookie

    Per, I've got my fingers crossed that the EDIT at the beginning of the first post refers to (and corrects) the memory overflow problem, but since it doesn't say so specifically, I'd only be guessing. If you can confirm that you'd make my day. Everything else is perfectly clear.
    Thanks!
  17. Per Hansson

    Per Hansson TS Server Guru Topic Starter Posts: 1,930   +123 Staff Member

    Umm, no, the game will crash on any 32bit OS as soon at it tries to allocate more than 2GB of virtual memory (this has nothing to do with how much physical RAM is in the machine)

    This is simply how all applications will behave when they try to allocate more than 2GB of virtual address space on a 32bit OS, Windows or Linux

    The application could be made to warn you when it does this (or right before it) but most don't and thus simply crash to the desktop... Sometimes with some obscure error message
  18. Bigchris

    Bigchris TS Rookie

    It would seem then that this is a bug in the program that must someday be patched because Crysis is supposed to run on 32bit XP. No?
  19. jeremymtc

    jeremymtc TS Rookie

    Chris,

    Crysis works fine in Win2K on a P4 system, patched as per Per's procedure (see my specs above). Per is surely correct about the memory utilization, technically speaking, but in a physical sense I have had zero problems running the game on my 2k system - no errors or CTDs.

    Go for it bud (and thank Per while you're at it)!

    Report here if you encounter any problems.
  20. Per Hansson

    Per Hansson TS Server Guru Topic Starter Posts: 1,930   +123 Staff Member

    The bug I'm taking about is the same with any 32bit app

    Crank up the res and settings to max, have a GFX card with allot of memory so it uses even more virtual memory.
    After a while of playing the virtual memory usage will creep above 2gb and the game crashes...
    It's just normal behaviour, I've seen it 2 times in Windows XP...

    But generally you will stay below the 2GB barrier... So then it's not a problem, just something to keep in mind if the game crashes after a few hours of playing straight...
  21. Bigchris

    Bigchris TS Rookie

    Thanks very much Jeremy and Per! And thanks especially to Per for letting me add one more (final?) game to my collection. I'm a Linux convert and refuse to buy another MS O/S for gaming so my opportunities for new games are dwindling fast. Here's hoping the game developers wake up and smell the coffee. I just ran the COD4 demo and found another game I won't be buying unless Per has worked his magic there too. ;-)
    Thanks again guys!
    Chris
  22. stumped01

    stumped01 TS Rookie

    Per:

    Downloaded the retail Crysis rar fix file and installed on my Win 2K system per directions. I've updated to the latest video drivers AND loaded the latest DirectX runtime as you suggest. Still getting the 'CryInput.dll could not be loaded" error-just a gray screen where you would expect to be seeing intro menu stuff.

    Any ideas?
  23. Per Hansson

    Per Hansson TS Server Guru Topic Starter Posts: 1,930   +123 Staff Member

    stumped01; Sorry, not much I can help you with then :(

    Make sure you replaced the files properly
  24. stumped01

    stumped01 TS Rookie

    Per:

    Uninstalled and reinstalled the game. Installed your retail fix rar files. And....

    IT WORKS!!!!!!!!!!!

    The earlier install(s) were done using an external disk drive. Now I've got a good working internal dvd drive, used that this time.

    Was just starting to think I'd bought a very expensive coaster. Many, many thanks for putting this together for people like me.
  25. Per Hansson

    Per Hansson TS Server Guru Topic Starter Posts: 1,930   +123 Staff Member

    Glad to hear it worked our for ya ;)
Topic Status:
Not open for further replies.


Add New Comment

TechSpot Members
Login or sign up for free,
it takes about 30 seconds.
You may also...


Get complete access to the TechSpot community. Join thousands of technology enthusiasts that contribute and share knowledge in our forum. Get a private inbox, upload your own photo gallery and more.