Jump to content

Old games failing to launch (and how to fix it)


IntMD

Recommended Posts

(Thread inspired by Dr. Flay's thread:  https://forum.vivaldi.net/topic/38561/windows-7-old-games-failing-to-run)

Ever since Games Explorer was introduced in Windows Vista, it has caused problems for users with limited access to the internet.

Most affected users would have already disabled it by editing GameUX's registry settings or by unregistering the dll (GameUX.dll), but last month Microsoft has taken the domain the Games Explorer system used to phone for game-related metadata and updates out of commission (specifically: "https://games.metaservices.microsoft.com/games/SGamesWebService.asmx"), thus the problem will also show for users which have permanent connection to the internet.

Symptoms related to this problem:

  • Game fails to open, but their processes can be seen in the taskmgr
  • The rundll32.exe process related to gameux.dll spikes up to >50% of CPU usage
  • Running a second copy of the game or renaming the game executable works around it

Any old game that has been added by Games Explorer itself is affected to this problem, since Windows is using the rundll32.exe process to check the game updates before launching the game. Note that you can't remove said games from Games Explorer itself, only hide it. Even changing the options within the Games Explorer to never check online for game updates and news won't fix this problem.

The fix which tackles the problem at its core is to use these registry files provided by user UCyborg (Make sure to read the whole post!):

The second fix (or rather a workaround) which is more simpler, but doesn't remove the problem at its core (less recommended than the first one): All you have to do is to open regedit, go to this key:

 

HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\GameUX\ServiceLocation

Changing the server address in the "Games" value to either '127.0.0.1', 'localhost' or '0.0.0.0' ought to fix it.

Edited by IntMD
minor edits
Link to comment
Share on other sites


I wonder if this problem manifests in Windows Vista, 8.x and the versions of 10 that still have GameUX (I think they removed the Games Explorer in version 1803?).

Also, it's kinda funny how the server variant of 7 is not affected by this problem, since it lacks this component.

Link to comment
Share on other sites

54 minutes ago, greenhillmaniac said:

I wonder if this problem manifests in Windows Vista, 8.x and the versions of 10 that still have GameUX (I think they removed the Games Explorer in version 1803?).

Also, it's kinda funny how the server variant of 7 is not affected by this problem, since it lacks this component.

As of the Win10 question, Last time gameux.dll existed in it's deprecated form (from 8.x upwards) was in the Anniversary Update (builld 14393 (version 1607); LTSB).

Assuming that the GameUX regkey (especially the ServiceLocation subkey containing the Games string value) exist most importantly and with gameux.dll being second, they might be vulnerable.

My friend who uses Windows 8.1 has checked if the registry key and gameux.dll exists. The HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\GameUX key doesn't exist at all whilst the gameux.dll does.

Edited by IntMD
Added info about Windows 8.1's situation
Link to comment
Share on other sites

Thanks for this additional information about these matters especially that in the first post which confirms that I was not going mad and/or my (Win7) OS was stuffed up. It was MS removing services without any warning yet again.

I was perplexed by the fact one game: Tomb Raider 5 suddenly started provoking the behaviour described ie. very high CPU use and the process would continue even when the game was shut down. Reinstalling it did not work and I thought I must have just not noticed these problems when I first installed and played the game 18 months ago. 

A batch file fix I was pointed to via another forum provided in this blog worked perfectly for me and there have been no consequence since I ran it.    

Edited by WalksInSilence
Link to comment
Share on other sites

I don't like any of the solutions mentioned either here or at other places. Neither tackle the problem at its core. GameUX invocation code is baked in the Shim Engine (I guess it's in %WinDir%\AppPatch\AcGenral.dll). The system compatibility database (%WinDir%\AppPatch\sysmain.sdb) contains entries for 2165 games; executable name and usually some of its properties and/or accompanying files' names for the purpose of matching the executable file to the game and invoking GameUX). It can be viewed with Compatibility Administrator (32-bit) that comes with Application Compatibility Toolkit 5.6 (for Windows 8+, there's Windows Assessment and Deployment Kit (ADK) for specific version).

So the best way is to just tell the Shim Engine to ignore those entries so it doesn't even try invoking GameUX. There are two registry files in the ZIP file below, GameUX_DisableShims.reg disables the entries while the other restores the initial state. If particular game has already been launched before importing GameUX_DisableShims.reg, visiting the game's executable properties, selecting Compatibility tab and clicking OK is required for changes to take effect.

https://drive.google.com/open?id=1G45mk_NUtUKGkC2TmREqGx9jhbUlN1RU

GameUX shim has been removed from Windows 8 onwards, the issue is Windows 7 specific. Vista has GameUX, but no bug there.

Edited by UCyborg
Link to comment
Share on other sites

It is not clear to me so apologies for my ignorance or stupidity: if somebody wants to use those two registry files UCyborg has so helpfully provided provided as an alternative fix for this problem where, precisely, are they to be installed?

Link to comment
Share on other sites

3 hours ago, WalksInSilence said:

It is not clear to me so apologies for my ignorance or stupidity: if somebody wants to use those two registry files UCyborg has so helpfully provided provided as an alternative fix for this problem where, precisely, are they to be installed?

Just double click' em. The registry entries in the file will be merged with you PC's registry. Quite simple, really :yes:

Link to comment
Share on other sites

Thanks, information appreciated.

Obviously you would not make changes to the registry without backing it up first so it could be reversed (can't think why in this case, but you might want to) so it would be useful to know where they end up or, if that is not how they work, what registry values they are actually altering.

Link to comment
Share on other sites

On 7/8/2019 at 5:47 PM, WalksInSilence said:

Thanks, information appreciated.

Obviously you would not make changes to the registry without backing it up first so it could be reversed (can't think why in this case, but you might want to) so it would be useful to know where they end up or, if that is not how they work, what registry values they are actually altering.

A .reg file is a simple .txt file, you can open it in - say - Notepad just fine.

All changes go to:

Quote

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags]

The Disable Shim adds values *like*:

Quote

"{6999b73a-bf55-4b3a-9804-5119e72c6b3a}"=dword:00000077

The Enable Shim deletes the same values *like*:

Quote

"{6999b73a-bf55-4b3a-9804-5119e72c6b3a}"=-

See:

http://www.zeda.nl/index.php/en/remove-keys-using-reg-files

jaclaz

Link to comment
Share on other sites

  • 1 month later...

I edited my post a while back (got some things wrong), forgot to mention it back then.

Anyway, the registry changes are rather trivial. The same entries are added that would be added if you went disabling GameUX entries one-by-one with Compatibility Administrator. But something's wrong with Win7 compatible version of Compatibility Administrator and it puts the entries in the 32-bit part of the registry, where they're ignored.

About the stubborn cache kept somewhere by the OS that tracks compatibility related settings and may be refreshed on the per-app basis if the settings don't take effect immediately (always the case except if the application has never been run before), there's this undocumented command line parameter taken by sdbinst utility, the one that is used for installing user-created compatibility databases:

sdbinst -c

Run this from administrative Command Prompt and you don't have to do the thing on Compatibility tab for every game in question (source - thanks to dippy dipper for pointing it out).

Edited by UCyborg
Added missing word in the last paragraph
Link to comment
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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...