The Sims 2 with dgvoodoo 2

General information and assistance with dgVoodoo.

The Sims 2 with dgvoodoo 2

Postby V15UAL K3YS » 2019-8-01 @ 03:41

Hey,

I've been taking advantage of the awesome fact that dgVoodoo 2 now has DirectX 9.0 support for DirectX 9 games, and have been using it to see if I could successfully run it on The Sims 2. The game is originally plagued with many issues when running it on modern PCs, and my current issue I had with it was because of the infamous "flashing pink" issue; no matter what fixes I applied and no matter what I tried (which was literally everything I could find) nothing worked.

When I had found out about the newly implemented DX9 support I tried to see if I could work around this issue using dgVoodoo 2. The game loads up and runs only when I load up the game using the ATI Radeon 8500 graphics card, which is one of the supported graphics cards in the game. However, I get a "flashing red" issue with the sims and they do the same thing as with the flashing pink issue, except that they flash red instead. If I try using the GeForce4 Ti 4800 it immediately crashes on startup and if I use the FX 5700 it crashes when loading a neighborhood. I have also entered the vendor and device id for my actual graphics card (GeForce GTX 1080Ti) into the dgVoodoo.conf file, ran the game using the Internal 3d Graphics Driver that is built into dgVoodoo 2 and it still crashes upon loading the neighborhood, with an EXCEPTION log created in the Logs folder of The Sims 2. It is having an ACCESS VIOLATION and the module is the user32.dll file. This doesn't happen when I load it up using the ATI Radeon 8500 video card in the dgVoodoo 2 control panel, but as mentioned above, that video card won't work.

I have attached both the exception log and the dgVoodoo config file to check out. I should also note I am using the DVD version of the game and have all the expansion packs, so I am running the game from the Sims2EP9.exe file. Any help would be greatly appreciated :)

SPECS:
GPU: NVIDIA GeForce GTX 1080Ti
CPU: Intel i7-7700k
RAM: 32GB DDR4 2400MHz
OS: Windows 10 x64
Attachments
dgVoodoo.conf
dgVoodoo Config File
(13.66 KiB) Downloaded 1 time
Sims2Exception 2019.07.31 21.31.15.txt
Exception Log
(15.02 KiB) Downloaded 3 times
V15UAL K3YS
Newbie
 
Posts: 21
Joined: 2018-4-01 @ 18:11

Re: The Sims 2 with dgvoodoo 2

Postby Dege » 2019-8-03 @ 18:43

Weird. It runs for me.
It can be run in either forced windowed mode (like on the attached screenshot) or in fullscreen with option GeneralExt\EnableGDIHooking enabled.

I can't see a single reason though why this game should be played through dgVoodoo.
Sims2 is completely software rendered. It only uses D3D9 to set the display mode (800x600) and do its vertex shading calculations through D3D9 in software, which literally means multiplying some vectors by a transformation matrix ( :D :D) for most cases. No GPU is involved at all.

So, the rendering technique of this game in itself is really weird. No dgVoodoo needed.

Image
Dege
Oldbie
 
Posts: 1434
Joined: 2003-9-04 @ 11:06

Re: The Sims 2 with dgvoodoo 2

Postby V15UAL K3YS » 2019-8-04 @ 04:20

Dege wrote:Weird. It runs for me.
It can be run in either forced windowed mode (like on the attached screenshot) or in fullscreen with option GeneralExt\EnableGDIHooking enabled.

I can't see a single reason though why this game should be played through dgVoodoo.
Sims2 is completely software rendered. It only uses D3D9 to set the display mode (800x600) and do its vertex shading calculations through D3D9 in software, which literally means multiplying some vectors by a transformation matrix ( :D :D) for most cases. No GPU is involved at all.

So, the rendering technique of this game in itself is really weird. No dgVoodoo needed.


I'm sorry but I believe you are mistaken. The game will run in software rendering mode when using the internal 3d graphics card in the dgVooodoo 2 control panel because The Sims 2 doesn't detect that graphics card in the game's database. Therefore, the game assumes that the PC in question doesn't have a GPU and therefore forces the game to run in software rendering mode.

To prove this, I have uploaded a screenshot of me running the Sims 2 in Hardware rendering mode, using the ATI Radeon 8500 graphics card in dgVoodoo 2 (which is a GPU supported by the Sims 2) with all settings maxed out and in 800x600 resolution. With GDI Hooking enabled, I can also run this game at 1440p resolution effortlessly; the only problem that still remains is the graphics glitches that I have mentioned.

This is why I stated that I put the vendor id and device id in the dgVoodoo 2 config file. You have to do this when using the internal 3d graphics card in dgVoodoo 2 so that the game can recognize that there is a graphics card. Not doing this will cause the game to run only in software rendering mode.

This website: https://www.simsnetwork.com/tools/graphics-rules-maker
Has a program called "Graphics Rules Maker" and if you are running a modern system and are trying to play the Sims 2, you have to use this tool; there is a manual way to do it but basically, the program registers your current GPU into The Sims 2 system files so that the game properly detects your graphics card and runs it in hardware rendering mode. This goes back to why I decided to try to use dgVoodoo 2 to run the Sims 2, which in Hardware Rendering mode, has an infamous issue known as "pink flashing" where certain sims, houses, neighborhoods, etc, will flash pink because of shader file issues and GPU memory problems. It's in the game itself. I hope that helps to clarify some things. :happy:
Attachments
The Sims 2 Hardware Rendering.png
Hardware Rendering Screenshot
V15UAL K3YS
Newbie
 
Posts: 21
Joined: 2018-4-01 @ 18:11

Re: The Sims 2 with dgvoodoo 2

Postby V15UAL K3YS » 2019-8-11 @ 18:29

UPDATE!

I have successfully managed to get farther with hardware rendering in the Sims 2, but it was only with dgVoodoo 2.6. The lack of HLSL support in 2.6.1 makes it impossible to properly run The Sims 2 with Hardware Rendering, so I had to revert back to 2.6 to properly run it.

In the dgVoodoo.conf file, you have to set ShaderCodeGenerating = 2 and use the d3dcomplier_43 and d3dcomplier_47 in the file where the Sims 2 executable is. Without using this the game has an issue with the DirectX 9 calls being made by dgVoodoo 2 itself and therefore crashes upon loading the neighborhood (the game apparently doesn't like the internal shader code generator). By using this though, I have successfully managed to load the neighborhood with the Internal 3d Virtual Card and thus have gotten farther.

Here is an image of me doing so, running Sims 2 in 1440p with all settings maxed out. Image

However, this leads me to another issue. With ShaderCodeGenerating = 2 (using the internal shader code in any way makes the game unplayable) I can finally load a sim in Create A Sim without the game crashing. However, I do get serious graphical issues and this impairs my ability to play the game. I have uploaded an image of such graphical issues to further clarify. It doesn't look as extreme in the image as it is a still shot but the textures are constantly glitching and the areas where the glitched textures should be are completely invisible. However, I have not yet seen the red-flashing issue I have mentioned earlier and it only appears in the game's thumbnails.
Attachments
Sims 2 Graphic Glitches.png
Sims 2 Graphic Glitches
V15UAL K3YS
Newbie
 
Posts: 21
Joined: 2018-4-01 @ 18:11

Re: The Sims 2 with dgvoodoo 2

Postby roshiahito » 2019-8-12 @ 10:38

You might want to use master build of D9VK with Sims 2, it has ProcessVertices implemented. Dgvoodoo2 lacks it and that's why stuff explodes.
roshiahito
Newbie
 
Posts: 28
Joined: 2018-8-30 @ 10:45

Re: The Sims 2 with dgvoodoo 2

Postby Dege » 2019-8-13 @ 13:52

dgVoodoo has full ProcessVertices implementation for all d3d versions.
Dege
Oldbie
 
Posts: 1434
Joined: 2003-9-04 @ 11:06

Re: The Sims 2 with dgvoodoo 2

Postby Dege » 2019-8-13 @ 13:53

Ok, so the sw rendering is just a fallback path of this game...
I'll check it out. Hopefully it's some shader creation bug.

Thx for the clarification!
Dege
Oldbie
 
Posts: 1434
Joined: 2003-9-04 @ 11:06

Re: The Sims 2 with dgvoodoo 2

Postby Dege » 2019-8-14 @ 13:26

Ok, I found a bug in the code generator that causes the crash and another causing the polygon corruption.

As for the flashing pink issue: when it occurs then the game draws with a vs/ps pair that transform a single position vector and emits a constant color.
I don't know what the appearance of the problem is relying on but it seems, as if some textures or other needed objects couldn't be loaded earlier and the renderer fell back to some very primitive shaders. Or sg like that. According to my observation the game eats up a lot of the address space with "too much" video memory available. And probably can't create all of its objects later.

Anyway, I think I managed to make it work: I selected the GF 5700 Ultra with 128MB. It's a card from 2004 with SM2.x support, contemporary of the game.
I played the game for some time (mainly the tutorial levels) with my limited knowledge and experience and it worked fine, no flashing red/pink polygons appeared (unlike with the internal card with much video memory).
But, it may appears after playing for, say, more than a half an hour, or with some very complex scene. I'm not sure. :S
Dege
Oldbie
 
Posts: 1434
Joined: 2003-9-04 @ 11:06

Re: The Sims 2 with dgvoodoo 2

Postby V15UAL K3YS » 2019-8-16 @ 05:16

Dege wrote:Ok, I found a bug in the code generator that causes the crash and another causing the polygon corruption.

As for the flashing pink issue: when it occurs then the game draws with a vs/ps pair that transform a single position vector and emits a constant color.
I don't know what the appearance of the problem is relying on but it seems, as if some textures or other needed objects couldn't be loaded earlier and the renderer fell back to some very primitive shaders. Or sg like that. According to my observation the game eats up a lot of the address space with "too much" video memory available. And probably can't create all of its objects later.

Anyway, I think I managed to make it work: I selected the GF 5700 Ultra with 128MB. It's a card from 2004 with SM2.x support, contemporary of the game.
I played the game for some time (mainly the tutorial levels) with my limited knowledge and experience and it worked fine, no flashing red/pink polygons appeared (unlike with the internal card with much video memory).
But, it may appears after playing for, say, more than a half an hour, or with some very complex scene. I'm not sure. :S


I see. I'm glad that we are making progress! :cool: :D

I downloaded your new WIP build and I gave Sims 2 a go again. I can run the game in 1440p with the new WIP thanks to the bug fixes you implemented no problem. Ran the game at 1440p with all settings maxed out using the internal 3d video card and 2048 MB VRAM. Played the game for over an hour on a lot and had no visible graphics bugs as of yet, no pink flashing either (it strangely appears in thumbnails sometimes but it didn't appear as I was playing a lot with sims). This is the furthest I have ever gotten in this game and it is cool to be able to play it maxed out without any graphical glitches or issues atm.

I think your VRAM issue is also related to the game internally. The game will automatically force the game to run with only 32MB of VRAM because it's in the game's graphics configuration files. If you go to My Documents/EA Games/The Sims 2/Logs/ there is a log file named *your pc name*-config-log.txt and it will log certain events that go on in the game. You can tell if your graphics memory is being limited if you go under "===graphics device info===" and see "Texture memory: 32MB"

This is how to fix that issue.

Go into your main Sims 2 game directory where the game executable folder is (not where the .exe is located but the folder that is outside of that where you see CSBin, TSBin, TSData, and a few other files). Go into this directory "TSData/Res/". You'll see a Config and CSConfig folder. Open the Config folder and you'll see a file called Graphics Rules.sgr

You can open this file with notepad, and you'll see a section that starts with "# Identify gfx device" and another section following it saying "# Configuration override controlled by command line option -cardConfig". Before the latter section and after the "endif" in the "# Identify gfx device" section, add this line:
# GraphicsRulesMaker Tweak: Force memory size
seti textureMemory 2048


That way the game is forced to allocate 2GB of VRAM for loading textures, and the game properly registers it to use 2GB of VRAM as in the dgVoodoo 2 internal gpu, instead of making the game use a sleazy 32MB. Save this graphics rules.sgr file (make a backup of course lol) and copy this file over to the other CSConfig folder as well, overwriting that Graphics Rules.sgr too. This way, the game is essentially forced to allocolate that ram and make the game run better.

That is the way to do it manually. You can go onto this website to see other fixes for the Sims 2 to get it to work its best on Windows 10. Hope this helps, (and with your programming knowledge maybe there are things you can find in this Graphics Rules.sgr file that I can't lol).
https://pleasantsims.com/sims-2-windows-10/
V15UAL K3YS
Newbie
 
Posts: 21
Joined: 2018-4-01 @ 18:11

Re: The Sims 2 with dgvoodoo 2

Postby Dege » 2019-8-18 @ 14:46

Thanks, that's an extensive description. Didn't yet try it but I think you have noteworthy knowledge about this game. :)
Dege
Oldbie
 
Posts: 1434
Joined: 2003-9-04 @ 11:06

Re: The Sims 2 with dgvoodoo 2

Postby V15UAL K3YS » 2019-8-21 @ 18:02

Dege wrote:Thanks, that's an extensive description. Didn't yet try it but I think you have noteworthy knowledge about this game. :)

With this game, you kind of have to have it lol. This game is a pain to properly get running correctly on modern systems.
V15UAL K3YS
Newbie
 
Posts: 21
Joined: 2018-4-01 @ 18:11


Return to dgVoodoo General

Who is online

Users browsing this forum: No registered users and 0 guests