Old Games in Windows 11

Games randomly crashing

Since most (or even all) old games running DirectX 9 and below usually randomly close while playing in Windows 11, you can use the same fix for games that exhibit the problem.

For DirectX 9 games, use DXVK

For DirectX 8 games, use a combination of ENB Convertor and DXVK (WineD3D might also work, but it's not a 100% guarantee)

For DirectX 7 games and older, use dgVoodoo2 with ATI or NVIDIA GPU selection. Extract the DDraw.dll and D3DImm.dll files from MS\x86 and extract dgVoodooCpl.exe and dgVoodoo.conf, use dgVoodooCpl.exe to set it up (again, WineD3D might also work, but it's not a 100% guarantee).

You can use dgVoodoo2 for DX9 and DX8 games as well (extract D3D8.dll and D3D9.dll instead) if you don't have a Vulkan GPU or if the above doesn't work properly

An example on how to use them can be found in the The Sims 2 Fix.

Setup.exe won't run / is running without doing anything

Please refer to this problem.

Windows 11 The Sims 2 Fix

Download the latest DXVK .tar.gz archive from here, browse the x32 directory, and copy d3d9.dll to (path of the most recent expansion pack)\TSBin

For example: The Sims 2 Mansion and Garden Stuff\TSBin

Open up (path of the most recent expansion pack)\TSData\Res\Config and open Graphics rules.sgr with your favorite text editor and replace below with:

seti Low 3

seti Medium 3

seti High 3


seti MediumButDefaultLow 4


seti memoryLevelHigh 512

seti memoryLevelMedium 512

seti memoryLevelLow 512

seti memoryLevelUnknown 512

Note: the part ABOVE is not required if you follow the next two paragraphs! ("How to fix DXVK Graphics glitches" and "Texture memory only detected as 32 MB, or it's impossible to set Texture Quality above the lowest setting")

Save and you should be good to go. For additional quality you can create a dxvk.conf file and add:

d3d9.forceSwapchainMSAA = 8

d3d9.samplerAnisotropy = 16

Update: How to fix DXVK Graphics glitches

When reporting the NVIDIA GeForce 7800 GTX as the GPU in DXVK, the graphics will be glitched, especially when there's no movement on the screen. In order to workaround the issue, you can try to report a different GPU to The Sims 2 (for example, yours).

This is probably caused by the fact that the driver fixes in The Sims 2 related to the 7800 GTX are incompatible in some ways with modern GPUs. It is notable that The Sims 2 had a lot of driver fixes for NVIDIA GPUs in its graphics scripts, some according to your GPU specific model or even GPU series.

Go to your Device Manager, double click on your GPU, go to Details and change to Hardware IDs.

You will get an ID on top, in case of my NVIDIA GeForce RTX 2070 it's "PCI\VEN_10DE&DEV_1F02&SUBSYS_3FDA1458&REV_A1".

The parts we're interested in are the VEN_ and DEV_ parts. in my case VEN_10DE and DEV_1F02.

Open up dxvk.conf (or create it) and edit accordingly:

d3d9.customDeviceId = 1F02

d3d9.customVendorId = 10DE

d3d9.customDeviceDesc = "NVIDIA GeForce RTX 2070"

Obviously replace the DeviceId with your string that is right after DEV_, the VendorId with your string that is right after VEN_ and the customDeviceDesc with your GPU description.

If you have a NVIDIA card also add this:

dxgi.nvapiHack = False

This is a DXGI configuration line, but it appears in the DXVK log even when their custom dxgi.dll is not loaded. I never bothered to check DXVK's source code, but since it appears in the log, I'd add that line as well since it seems like it's still loaded in the "Effective configuration" (as the log claims). What this line does, according to the docs, is reporting NVIDIA GPUs as AMD GPUs (as far as I understand) so it might probably cause problems when using a custom device.

Note: It is actually required to also change the customDeviceDesc, so don't simply think it's unnecessary just because you added vendor and device ID. If The Sims 2 won't find the Graphics Card in the "Video Cards.sgr" definition script (vendor + device), the internal name of the GPU will just fall back to whatever the driver GPU description is (which DXVK will still report as a GeForce 7800 GTX if not changed), because The Sims 2 has a database with GPU name assignments according to vendor and device ID. Since the graphics scripts of The Sims 2 only account for the ${cardName} variable (which contains either the GPU name reported by the driver or by the internal GPU database), it is very likely going to be a problem since most scripts in The Sims 2 will still think that you're using a 7800 GTX, even though you changed the actual IDs.

You can also add your GPU to the internal GPU database of The Sims 2 in order to avoid further problems. In order to do that, open up the Video Cards.sgr file, find your vendor (ATI is the same thing as AMD) and add your GPU below it, following script's syntax, for example, with my RTX 2070, I would add the following:

card 0x1F02 "GeForce RTX 2070"

(note: the 0x part is required). This will also override the driver GPU description in case you didn't replace that in DXVK's configuration.

The Graphics glitches should now be gone.

Update: Texture memory only detected as 32 MB, or it's impossible to set Texture Quality above the lowest setting

In some systems, The Sims 2 might just decide to detect the GPU memory as 32 MB (instead of a maximum of 2047 MB, which is the value that is normally supplied by Windows 11 to the game whenever you have a capable GPU).

In order to fix this problem, you can force the texture memory of your graphics card by editing the "Graphics Rules.sgr" script. Reach the part of the script that says Determine if gfx device is supported, force software rendering if not and you will see that this part of the script actually checks for specific vendors and disables 3D acceleration for specific GPU models for those vendors, and it also forces software rendering for unknown vendors. This script doesn't actually force any texture memory, because it is normally detected by the early launch scripts of the game, but we can force the game to detect a specific amount of texture memory. My modified script, for example, looks like this:

...

elseif (match("${cardVendor}", "NVidia"))

if (match("${cardName}", "NV 1") or match("${cardName}", "NV 2") or match("${cardName}", "*Riva*") or match("${cardName}", "*TNT*"))

setb useSoftwareRasterizer true

elseif (match("${cardName}", "GeForce RTX 2070") or match("${cardName}", "GeForce 7800 GTX"))

seti textureMemory 512

setb textureMemorySizeOK true

endif

...

Note: the GPU name MUST match the GPU name that is declared in "Video Cards.sgr". In this case, I used 512 MB of texture memory, which is USUALLY way far more than enough to handle the game even at 4K resolution and ultra settings. Feel free to raise the texture memory without exceeding your GPU memory. I don't suggest going above 2047 for technical reasons.

Note2: It is not required to use setb useSoftwareRasterizer false because 3D acceleration is enabled by default and THEN the script eventually forces it off on certain models and unknown vendors, which is not our case. If you're paranoid, you can add this line, but it won't do anything.

The game should now detect your video memory just fine and should also allow you to change the texture quality.

Only if you have issues with DXVK or if you don't have Vulkan in your GPU:

If you have graphics glitches with DXVK, please follow the previous paragraph. If you have different problems, feel free to continue reading.

Remove DXVK from the directory. Download dgVoodoo from here. Extract MS\x86\d3d9.dll to (path of the most recent expansion pack)\TSBin

Extract dgVoodooCpl.exe and dxVoodoo.conf to (path of the most recent expansion pack)\TSBin

Open up dgVoodooCpl.exe from the game directory. Go to DirectX tab and untick "dgVoodoo watermark", set the Videocard to GeForce FX 5700 Ultra and VRAM to 256 MB. Save and quit.

Do the same thing above with the Graphics rules.sgr file but instead of 512 do 256:

seti memoryLevelHigh 256

seti memoryLevelMedium 256

seti memoryLevelLow 256

seti memoryLevelUnknown 256

Save and you should be good to go.

Resolutions above 1600x900 not showing up

Open up Graphics rules.sgr and look for maxResWidth and maxResHeight under setting $High. Set them to the desired width and height, for example:

uintProp maxResWidth 1920

uintProp maxResHeight 1080

Windows 11 Syberia Fix

Set Game.exe to run as Administrator and Windows XP Service Pack 3. Download dgVoodoo from here. Extract DDraw.dll and D3DImm.dll from MS\x86 to the game directory. Extract dgVoodooCpl.exe and dgVoodoo.conf to the game directory.

Run dgVoodooCpl.exe in the game directory, go to DirectX tab and set the Videocard to GeForce FX 5700 Ultra, VRAM to 256 MB, untick "dgVoodoo watermark". Save and quit. You should be good to go. You can also mess with resolution settings.

Rayman 3

I'm looking for a fix for this game, so if you know one please join my Discord and tell me!

Post your own fix or ask questions

Join me on my Discord: http://discord.gg/6TMHU63