Tuesday, August 14, 2012

RESOLVE IT FINALLY! Game Explorer AKA rundll32.exe problem with Games!

OK, i was looking for the solution for a long long time.

Resolving script download, straight to the business

The stupid damn annoying problem! When you launch a game without internet connection (or with outbound firewall enabled and blocking everything unlisted in rules), the game doesn't launch.
Instead, a rundll32.exe process starts. And it consumes 12%-16%-25%-33%-50%-100% CPU (depending on how much cores you CPU has). In other words, consumes full power of one CPU core.
There are workarounds:
1) Rename game's executable file (doesn't always work, i.e. didn't work with Jedi Outcast)
2) Use No-cd or No-dvd launcher with different name (not always suitable, i.e. I may want to play Diablo II @ battle.net so using 3rd-party software is not acceptable unless you want your CD-key banned)
3) Launch the game 2 times. Second copy will launch. Then, minimize game, kill first game instance (don't miss :)) and the rundll32.exe process (also not universal way, not all games support minimizing or having the process launched 2 times)
4) Launch game. Suspend rundll32.exe. Kill game's process (rundll32.exe will remain, but won't use CPU as its suspended). Launch game again. OK, this is quite universal, but:
a) Too much actions to just launch a game!
b) Some applications may not work properly if you forget to terminate rundll32.exe. Really! I.e. I got Firefox hanging on files downloading when this process was hanging.

So I was using option 4 for some time. But the recent b) point fucking pissed me off. Good that I was able to find out what was the source of the problem right after I started blaming Firefox (and Firefox is not as good as it was in the 3.6.x days you know... all the browsers are going to hell)

So I googled the problem. Once more time. For the 100-th time. And you know, I found suggestions to rename the gameux.dll file that rundll32.exe uses.
The advice was to rename it in System32 folder. That didn't work. But thank Talos I'm a bit experienced windows user. I found the same file in SysWOW64 folder. And that finally helped!!! Read further!

For ones that are looking the guide how to resolve, here it is:

1) If you're x64 OS, go to windows\syswow64\ and rename gameux.dll to something without .dll extension
2) If you're x86 OS, go to windows\system32\ and rename gameux.dll to something without .dll extension
In both cases you'll have to take ownership and add file permissions.

If you don't know how, here is a BAT file that will do it for you: https://docs.google.com/open?id=0BzmX0_bU30dRaGJWdi1iRnV2S0k

The script automatically detects if you have x64 or x86 windows, so you don't have to worry. Of course, you must run the script as Administrator.

Here's a funny thing.
If you're running x64 os and will restrict access (by setting "deny" permissions) to syswow64\gameux.dll file, when you launch any game you will get following error:
---------------------------
RunDLL
---------------------------
There was a problem starting C:\Windows\system32\gameux.dll

Access is denied.


---------------------------
OK
---------------------------

You see I've restricted access to the file in syswow64, but error message tells me that it can't access the file in system32 :)

15 comments :

  1. This comment has been removed by the author.

    ReplyDelete
  2. Thank you very much! This helped me a lot!!

    ReplyDelete
  3. replying to your last point
    this is how WOW system works
    WOW stands for Windows on Windows
    currently x64 is really a x86 windows with x64 compatibility because the wow is for 64 on 86 not the other way around
    there is wow on x86 and it's for 16bit applications
    basically it works like a sandbox for your applications, when a x64 program asks for the path for your system folder it gives him c:\windows\system32 because it's the default
    when the program calls a dll from the system folder the wow system looks for a x64 copy of the dll and gives it to the program as if it was in system32

    ReplyDelete
  4. Thanks a lot! This fixed my issue on Windows 7 x64 SP1. RunDLL32.exe was using 100% of my CPU and RAM on my i7 computer when I initially launched games such as Star Wars Jedi Knight 2 Jedi Outcast, Urban Chaos, Road Rash, and anything else that was old. With this fix, everything works properly, and I no longer have to start the game twice to get it to run.

    Thank you so much! You rock!

    ReplyDelete
  5. Your fix Works perfect (in windows 7 Professional)....
    thanks :)

    ReplyDelete
  6. Thanks a million dude

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. It worked! The .bat file (GameUxFixed-Ubeogesh) that I downloaded. A million thanks! THX! damned Rundll32.exe!

    ReplyDelete
  9. Finally resolved for me also!!
    Thanks so much for this solution ( I only changed the Game dll in System32 and that did not work, but changing it in WOW 64 was an instant success)

    ReplyDelete
  10. Just worked for me - after years of starting in Win 7 Pro 64 perfectly happily it suddenly started the two-start business. Ran your script and seems to be okay. Many thanks.

    ReplyDelete
  11. Sorry forgot to game FS2004.

    ReplyDelete
  12. Thank you so much. It really fixed the problem. Yes Im still using Win 7 in 2021, playing aoe2 and diablo2.

    ReplyDelete