Wednesday, November 05, 2008

W2K, XP Games and You

Besides my first rig, I've always built my own. I got W2K and never went with XP once it was out since I never had any gaming issues. Now with W2K's support gone I'm starting to notice more and more games won't install or need missing/edited dlls to run. GRAW 2, Bioshock and Two Worlds were the first few I had issues with led to me to find out the dll tricks to get the games to run. My rig is a Barton 2500 oc'd to 3200, 2GB RAM and a 7600GT 256MB vc that isn't quite ready to give up the ghost since its got a decent backlog it can play and a few new games as well.

The basics are if the game gets installed, see what dll the error message asks for and then download it. Place the dll in the game's folder and run the game, though sometimes multiple dlls are needed. Another common occurance is a message about some function not being in the dll due to W2K and XP/Vista dll changes, such as xinput1_3.dll having a 'tracemessage' error, which is fixed by hex editing 'tracemessage' to 'getusernamea'. Newer game are starting to require even more complicated tricks.

I stumbled across how to fix these from random message boards. I just recently came across a good active board - win2kgaming - with a dll pack and posts about different games W2K users have got running along with how they did it. Its nice having all the information in just one place.

XP games requiring W2K tweaks that I've successfully run:

GRAW 2 - Download or grab from another install (I used Farcry) the file "dbghelp.dll" and put it in the GRAW2 folder that has GRAW2.exe. So far I've only tried the demo but don't see why retail would not work, unless you need to bypass an OS check.

Bioshock - (1) Like GRAW2 above, grab "dbghelp.dll" and place it in the same folder as the bioshock.exe. (2) Download or grab from the DX install files that came with the demo/game the dll file "xinput1_3.dll". Then hexedit this dll by changing "TraceMessage" to "GetUserNameA" (Some logging command for xbox360controller).

Two Worlds - Same as Bioshock but also need to grab dll file "x3daudio1_1.dll from either DX install zip files or online. A no_cd site also has a pack of files for TW but they used a different command for the xinput dll. I fixed a sound issue by having the latest DirectX installed and opening a video file in TW/Video folder with WMC to download the needed codec. You also have to copy xactengine2_7.dll, msvcrl.dll and register.bat (from nocd download site under TW files) to WINNT/System32 and run bat to register xactengine dll. I also placed x3daudio1_1.dll in System32 folder but seems to work fine in TW folder. Before fixing the audio issue to get the game to run without sound I disabled ShowIntro, ShowMainMenuCutscene, and ShowSlideShow using regedit in order to prevent the game from crashing. These were reenabled once I had the updated codec. The retail version did have a OS check that needs to be bypassed. I did it a really convoluted way that I really don't want to go into that involves using another games setup.ini.

Fallout 3 - I used the latest W2K dll pack from win2kgaming. The needed ones were: advapi32.dll, kernel32.dll, msidcrl40.dll, xinput1_3.dll, xlive.dll and the org dlls for advapi32 and kernel32. I then ran the exclude from known dll registry thing from the pack. Then I updated the Fallout3.ini's bBackground Mouse setting by changing it from 0 to 1. Otherwise the mouse keeps recentering in menu's making selections hard to impossible. So far after more than 4hrs of play I've only had 1 crash and it runs fine with medium settings, low water and no shadows at 1440x900. Runs comparable to Oblivion and looks fine as least to a low rig runner like me.

Stalker - Clear Sky - I had install issues due to Tages DRM but it just might have been my BIOS settings. Tages support team helped me troubleshoot my error code (13:10). I first updated my Tages driver from their website which then gave me error code (13:30). They had mentioned I might still get this. Then following their instructions I set my BIOS Write Protect settings from Enabled to Disabled and was able to activate and play the game. Once in game my mouse wouldn't work and after wasted time messing with mouse drivers I used "input_exclusive_mode 0" in the game's console and the mouse worked (Tried added it to user.ltx and marking it read only but it still gets reset and I have to reenter it in console). Found the tip on a Apple WINE forum but it works for W2K users too. They did note you have to change the mode back to 1 for map/pda functionality so I will probably bind 2 keys to switch between modes.