Old Games Not Launching and Eating 100% of the CPU on Windows 7

Discussion in 'Interesting/Unrelated' started by bphlpt, Sep 30, 2019.

  1. bphlpt

    bphlpt A lowly staff member Staff Member

    I don't know if this will apply to anyone besides Trouba and me, and I'm not a gamer at all so I haven't run into this, but I always like to be prepared and I hate something that could potentially bog down the computer so badly. This issue might already be circumvented by one of the various tweaks we already apply to our installs, and if so, then you can ignore this post completely. :) If not, then I'll leave it up to others that know more than I do whether any of this info should be included in any future tweaks. AFAIK, this ONLY applies to Window 7 and not Windows 8.x nor Windows 10.

    I ran into this over at MSFN, and then traced it to several other places. Here are the reference links:

    https://forum.vivaldi.net/topic/38561/windows-7-old-games-failing-to-run
    https://msfn.org/board/topic/179464-old-games-failing-to-launch-and-how-to-fix-it/
    https://sourceforge.net/p/dxwnd/dis...4d48/#93cb/aa2b/c8d5/362b/5586/b64a/370c/4ca9
    https://www.gog.com/forum/general/o..._and_eating_100_of_the_cpu_on_windows_7/page1

    Microsoft has recently nuked the metadata server for their Games Explorer feature that was part of Windows Vista and 7. What this means is that old games that have the GameUX shim are trying to connect to the Microsoft server and hanging forever consuming CPU power. This hang up would also occur in the past if the computer was not connected to the internet, but it is now happening even if connected.

    First, here's the general solution:

    Unpack the attached GameUX_AppCompatFlags.7z to get :
    - No_GameUX_Service_Location.reg
    - GameUX_DisableShims.reg
    - GameUX_EnableShims.reg -- [I don't know why you would need this, but...]

    Open up an Administrator Command Prompt window and enter:
    Code:
    regsvr32 -u c:\windows\system32\gameux.dll
    regsvr32 -u c:\windows\SysWOW64\gameux.dll
    sdbinst -c
    
    Then apply GameUX_DisableShims.reg and No_GameUX_Service_Location.reg. That should do it.

    No_GameUX_Service_Location.reg is just:

    Code:
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\GameUX\ServiceLocation]
    "Games"="127.0.0.1"
    
    and you could change Games" to be "localhost" or "0.0.0.0" if you prefer.

    The above problem should only apply to the games listed under - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX. If you find you are still having any issues with a particular game, then find the game's shim uuid, add it to GameUX_DisableShims.reg (and GameUX_EnableShims.reg if you want), and reapply GameUX_DisableShims.reg. See here - https://sourceforge.net/p/dxwnd/discussion/general/thread/0e06ba4d48/#365b - and afterward for other folk's experience.

    Again, this hasn't happened to me, but here's the background and how to fix or eliminate the problem, as I understand it. (I'll cut-and-paste from the above sites :) )

    =========================================================================

    https://forum.vivaldi.net/topic/38561/windows-7-old-games-failing-to-run

    Since Microsoft added the Game Explorer system to Windows 7 it has been a problem for users with limited access to internet.
    Most affected users will have already disabled GameUX.dll and its registry options, but now Microsoft have killed the domain it used to talk to, the issue will show itself for people with a permanent connection.

    Symptoms you will see if it affects you:

    • Old games fail to open, but can be seen in the task manager.
    • A copy of Rundll32.exe is eating 50% or more CPU.
    • DNS Cache is busy and using lots of CPU.
    • Running a second copy of the game works
    If you look in your Start Menu, you should see a section "Games" and in there you should find a link to the Game Explorer.

    [​IMG]

    Any games you see listed here will have the problem, because Windows is using Rundll32.exe to launch the game but check for updates first.
    You cannot remove the games here, only hide them.
    Even if you set the options to "Never check online for updates or news" it will still block the game from running.

    To remove the games from the list you must remove them from the registry.
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\GameUX

    [​IMG]

    Until now they would just come back unless you disabled the system by unregistering "gameux.dll"

    regsvr32 -u c:\windows\system32\gameux.dll
    regsvr32 -u c:\windows\SysWOW64\gameux.dll

    I have not seen anyone say to unregister another related DLL C:\Windows\system32\GameUXLegacyGDFs.dll
    Possibly it is used for compatibility settings, but I have no idea.

    The service was contacting a Microsoft domain for updates, specifically "https://games.metaservices.microsoft.com/games/SGamesWebService.asmx"
    Now this is gone, the games you remove from the registry should stay gone.
    However, to make sure it will fail properly if the service still tries to work, you can change the location it looks for to "localhost" or "127.0.0.1"
    HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\GameUX\ServiceLocation

    [​IMG]

    Just changing the place it looks for the file should fix the problem, and so the unregistering of the GameUX system and removing the game references should now be optional.

    -----------------------------------------------------------------------------------------------------

    https://msfn.org/board/topic/179464-old-games-failing-to-launch-and-how-to-fix-it/

    UCyborg
    • [​IMG]
    • [​IMG]
    Posted July 7


    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.

    ---------

    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:

    Code:
    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).
     

    Attached Files:

    The Freezer and Trouba like this.
  2. Trouba

    Trouba Administrator Staff Member

    Sounds like something that needs to be added to new images. Thanks, BP :emoji_raised_hands:
     
  3. The Freezer

    The Freezer Just this guy, you know Staff Member

    Wow, that really blows, Microsoft. Way to go. :cautious:
     

Share This Page