WineHQ

The Sims 2

The original CD-ROM release of the base game spanned across 4 discs.

Application Details:

Version: CD
License: Retail
URL: https://www.ea.com/en-gb/games...
Votes: 178
Latest Rating: Garbage
Latest Wine Version Tested: 7.20

Maintainers: About Maintainership

Link CD/DVD 1.0.0.1022 Patch

Test Results

Old test results
The test results you have selected are very old and may not represent the current state of Wine.
Selected Test Results

What works

Installed using standard retail 4-CD set.

The installer no longer seems to exhibit any problems of old.  Bug 12116 no longer seems to apply here (i.e. the progress bar appeared perfectly correct during installation.)

Installation appears to work (does require using "wine eject" between discs), but the game does not...

What does not

The game itself.  However, the game can be hacked to partially run, read discussion about vertex shaders in Bug 8051 and the comments section below.

Workarounds

What was not tested

Nothing beyond installing is able to be tested.

Hardware tested

Graphics:

  • GPU:
  • Driver:

Additional Comments

Per discussion in Bug 8051, it should be noted that the main problem appears to be with vertex shaders. Specifically, Sims 2 is requesting 1024 vertex shader constants, but Wine (and current GPUs??) is limited to 256. In the REAL Direct3D 9, it supports up to 8192, and the remainder that are not hardware supported fall into software emulation. Wine currently lacks this. You CAN get Sims 2 to run somewhat (with graphics errors that generally render it unplayable) in Wine 1.1.36 by doing a couple modifications to the source to override the default maximum. But this is not a fix, only a hack to get it to function a little for the curious. See my comments.

selected in Test Results table below
Operating systemTest dateWine versionInstalls?Runs?Used
Workaround?
RatingSubmitter
ShowArch Linux x86_64Nov 18 20227.20Yes No NoGarbageLuke Horwell 
ShowManjaro Linux 18.0.0Jul 14 20194.11-stagingYes Yes NoBronzeLuke Horwell 
ShowUbuntu 18.04 "Bionic" amd64 (+variants like Kubuntu)Sep 01 20183.15Yes No NoGarbageKorbinian 
ShowUbuntu 12.04 "Precise" i386 (+ variants like Kubuntu)Nov 17 20121.5.17Yes No NoGarbagean anonymous user 
ShowArch Linux x86_64Jun 26 20121.5.7Yes No NoGarbageEmily Marriott 

Known Bugs

Bug # Description Status Resolution Other apps affected
8051 The Sims 2 demo needs support for software vertex processing STAGED View

Show all bugs

HowTo / Notes

Other ways to run The Sims 2

This game does not run under regular Wine. The game crashes with D3DERR_INVALIDCALL because The Sims 2 requests 1024 vertex shader constants, but Wine has a hardcoded limit of 256. Direct3D 9 normally supports up to 8192, using hardware shaders first (where available), followed by software emulation. Software emulation is not currently supported in Wine.

Wine Staging helps improve the situation, but may result in an unstable gameplay as reflected in test reports.

Below documents some third party solutions, which cannot be submitted as test reports here.


1. DXVK

If you have a Vulkan-enabled graphic card, install dxvk through Winetricks and enjoy a fully playable experience without much (if any) glitches specific to Wine. DXVK is a Direct3D to Vulkan translation layer.

Note that Steam's Proton includes DXVK, which may work too.


2. Lutris

Lutris is a platform for installing games in a unified interface on Linux, an installer is available for this game.


3. Manually patching Wine

There is an old repository that documents patches and glitches for an older (now unsupported) version of Wine:

https://github.com/lah7/sims2-wine-patches

Technical analysis of The Sims 2 under Wine

While still far from perfect and prone to unexpected crashes (dependent on hardware), it is possible to run The Sims 2 under Wine.

The infamous D3DERR_INVALIDCALL error is due to the fact Wine is hardcoded to supply 256 vertex shaders instead of 1024 that The Sims 2 demands. By patching this constraint, as well as providing "dummy" code for unimplemented shader interfaces, enables the game to play to surprising results.


Acknowledgements

A thank you goes to swswine for initially discovering the game's major unimplemented undocumented shader interface and for writing the patch to demonstrate this in bug report 8051. Further contributors include Robert Walker, Alexandr Oleynikov and Paul Gofman.

https://bugs.winehq.org/show_bug.cgi?id=8051


Graphical Glitches Inevitable!

While the patch enables the game to play fairly well (dependant on hardware), there may be issues including:

  • Family thumbnails rendering red "t-pose" Sims.
  • Some skin tones look lighter on the character's head than the rest of their body.
  • Icons above sim head (like when a Sim gains a new friend) can cause a temporary polygon explosion.
  • Changing resolution mid game in household mode can sometimes result in a black screen.


Do not submit test reports for patched versions!

Please do not submit test results here as this is a hack to get the game running. Continue to submit tests for vanilla Wine or wine-staging (as long as this is explicitly stated), but it seems unlikely we'll see improvements from "Garbage" for regular Wine until the missing undocumented shader interfaces are implemented.

Comments

The following comments are owned by whoever posted them. WineHQ is not responsible for what they say.

Sims 2 not starting anymore after new graphics card kernel-upgrade and amdgpu
by Katherine Williams on Saturday January 14th 2017, 4:54
I got an RX 480 for Christmas, I upgraded to a newer Linux kernel, installed amdgpu and the newest mesa and now Sims 2 does not start anymore.
It opens a window and then it stays blue, and I have to force quit it after a while.. Which of the changes is the problem and can i make it work again?
RE: Sims 2 not starting anymore after new graphics card kernel-upgrade and amdgpu
by Alexandr Oleynikov on Saturday September 1st 2018, 13:44
it's the driver probably. same thing happens with NVidia.
Partially Playable Again under Wine 1.8-rc2 (Comment 124 on bug 8051)
by Luke Horwell on Friday December 4th 2015, 10:04
Another user has made an interesting discovery of how shader validation has been failing and is causing "red error eagles" to appear. A patch has been provided that proves this and can be used as a way to troubleshoot and identify any "unimplemented" features. (It's not a fix or a workaround!)

What I've found out is that disabling the game's lighting engine via the console (boolProp lightingEnabled false) while forcing shader version 2 stops these rendering glitches and allows the game to be playable for the first time (without lighting, of course).

Here's a video to demonstrate:
www.youtube.com/watch?v=j-pFDlEtnC0

A pre-compiled source of wine-1.8-rc2 with the patch is provided in the video's description if you'd like to try it for yourself.

I take no credit for the patch, it's great to see this game has potential! :)
How to hack Sims 2 into partial function in Wine 1.1.36
by Robert Showalter on Tuesday January 19th 2010, 15:27
Per discussion in Bug 8051, it should be noted that the main problem appears to be with vertex shaders. Specifically, Sims 2 is requesting 1024 vertex shader constants, but Wine (and current GPUs??) is limited to 256. In the REAL Direct3D 9, it supports up to 8192, and the remainder that are not hardware supported fall into software emulation. Wine currently lacks this.

You CAN get Sims 2 to run somewhat (with graphics errors that generally render it unplayable) in Wine 1.1.36 by doing a couple modifications to the source to override the default maximum. NOTE: This is NOT a FIX, only a hack to get it to function a little for the curious.

Based on part of an old patch -- bugs2.winehq.org/attachment.cgi?id=12615 -- modify dlls/wined3d/device.c and in the function IWineD3DDeviceImpl_SetVertexShaderConstantF, under the TRACE line, add the following block:

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

/* FIXME: when doing software vertex processing d3d9 allows up to
* 8192 shader constants. gfx card limits doesn't matter in this case.
* for now just make sure we're not accessing more constants than we have.*/
if(start + count > This->d3d_vshader_constantF) {
WARN("app want more ConstantsF than available: %d (available: %d) - limited to %d\n",
start + count, This->d3d_vshader_constantF, This->d3d_vshader_constantF - start);
count = This->d3d_vshader_constantF - start;
}

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

And in dlls/d3d9/d3d9_private.h, change the constant D3D9_MAX_VERTEX_SHADER_CONSTANTF from 256 to 1024.

Doing both of these mods will basically sidestep the actual issue and get the game to start, but there will be severe graphics errors. Specifically, all Sims and some objects will show up in glowing red color (and, from what I've seen, not animate at all and retain a "spread eagle" pose) and seemingly randomly they will also just vanish from view on occasion. The specific cause of the former is beyond me, the latter may be related to the Wine console error "Unsupp depthstencil blit", suggesting a depth stencil isn't being updated correctly and likely causing the disappearance of Sims.

Whether or not performance will improve with a graphics card that DOES support more than 256 shaders in hardware I do not know. There is talk under Bug 8051 that a software vertex shader solution could be implemented but as yet is not a priority. This is all beyond my current knowledge, but if anyone knows something about it, you should look into it.
RE: How to hack Sims 2 into partial function in Wine 1.1.36
by Charles Simmons on Monday December 19th 2011, 15:21
Hey, thanks for writing this guide on how to mod Wine to let TS2 start. Do you know how/if we can do this in more recent versions of Wine to see if it runs any better/worse? Thanks!

Hibba.
Sims 2 partially works in Wine 1.7.30
by Luke Horwell on Friday November 7th 2014, 7:51
Even though your comment is from 3 years ago: I've been poking through the source code for the latest Wine (1.7.30) and yes, you can quite easily get the game to start, but with graphical errors.

It was as simple as changing one line in this file:
/dlls/d3d9/d3d9_private.h

At around line 312, change:
#define D3D9_MAX_VERTEX_SHADER_CONSTANTF 256
=> to 1024 and then compiling Wine (i386)

While Sims (and animated objects) do not render, the game seems on par with Windows in terms of performance - only flickering once and the rare "The application has crashed and will now terminate." when the game becomes overwhelmed with "out of memory" debug errors (mainly happens when attempting resolutions higher than 1024x768)

My system's got an Nvidia GeForce GTX 650 (with proprietary drivers) so other cards may vary. Things did start to get worst after installing the Bon Voyage expansion pack (the latest one I have) where all objects had no textures, and the neighbourhood may render triangles for the scenery. This could be down to needing more shaders.

Overall, if anyone's eager to only build houses and knows how to compile Wine from scratch, this may be satisfactory. For most players: No rendered Sims, no easy way to increase vertex shader constraint, and ultimately, no fully working shader implementation - the game will stay 'Garbage' under stock Wine.

It'll be great the day The Sims 2 works flawlessly under Wine. It has potential, but it's still not ready yet.
RE: Sims 2 partially works in Wine 1.7.30
by Jason Mills on Sunday October 25th 2015, 4:02
I ended up figuring out how to get around the rendering issues the game gets if you install any expansions; It's as simple as copying this peculiar file named "Materials.package" and replacing the latest expansion version of that file with that of the base game. Interesting to note is that once this is done, the TV functions as it should, and displays the AVI videos the game uses, whereas in the base game, it didn't do that. And as I said, it does indeed fix the rendering issues in the neighborhood screen, and fixes the non-textured objects, but nothing else. I do know that the game itself has a software mode it can use if the video card isn't detected, but I already tried force-enabling it and the game wouldn't start (it would show a blank purple screen, but the sound plays and I was able to blindly click my way into the neighborhood, but no luck after that). I've got a feeling this will never be fixed since it's probably a huge undertaking to implement something like this. On top of that, Sims 2 is 11 years old already, and 2 more sequels have been done.
RE: Sims 2 partially works in Wine 1.7.30
by Luke Horwell on Monday October 26th 2015, 9:41
Thanks for sharing that (maybe adding a comment to bug report #8051 is a way to spark discussion) - I'll have to give this game another test run too.

I do wonder if (technically), the shaders could be handled purely by the graphics card, as they're much more powerful than 11 years ago. I'm no programmer in C/C++/Direct3D or Wine to understand or even attempt this. :(

I would play The Sims 2 again over 3 (or 4) any day. It's also #5 in the Top 25 Wine list, being the highest voted garbage game. I still have hope it'll work one day. :)
RE: Sims 2 partially works in Wine 1.7.30
by Jason Mills on Monday October 26th 2015, 13:29
Same here. I agree on your point with playing the 2nd over the 3rd and 4th any day. And to be honest, I literally would most likely switch over to Linux entirely if this game can work the way it is intended to. And, that is very interesting it is #5 on the top 25 list, and the highest rated "Garbage" game, though it is shocking nobody has even attempted to fix this. I would have assumed that in the 11 years it's been around, somebody would have at least tried, though I have no room to talk, since as I stated before, I've never programmed a thing in my life, and for all I Know, it would take a ton of hard work to implement this.
failed again
by William J May on Sunday January 17th 2010, 5:10
Won't post offical results yet, but installed successfully only to crash on startup. D3D Error:INVALIDCALL
Will try winetricks dx9 later...
RE: failed again
by Robert Showalter on Tuesday January 19th 2010, 15:17
This will not help. The full native DirectX runtime will abort with the infamous GDIEntry.1 failure (which, from what I understand, is something very Windows specific and will "never work" under Wine.) Using the native d3d9_?? package will not help either since that doesn't seem to be where the problem lies.
Debugger detected
by Robert Showalter on Saturday December 5th 2009, 15:29
Tried Wine 1.1.34 today, stock Sims2.exe is reporting the old "A debugger has been detected" -- "Unload the debugger and try again", though I was not receiving that with Wine 1.1.33 that I tried last night. Using a No-CD cracked executable produced the DirectX 9.0c error. I also was playing with VirtualBox and it was reporting the same DirectX 9.0c error. I wonder if Sims 2 is attempting to discern a supported card by its name or some other strange method?
RE: Debugger detected
by Robert Showalter on Saturday December 5th 2009, 15:38
Actually, here's a trip: If I run Sims 2 (No-CD) from my home directory

wine .wine/drive_c/Program\ Files/EA\ GAMES/The\ Sims\ 2/TSBin/Sims2.exe

I get the DirectX 9.0c error, but if I run Sims 2 within its installed directory

wine Sims2.exe

I get the D3DERR_INVALIDCALL! error, which appears to be caused by:

err:d3d:resource_init Out of adapter memory
err:d3d9:device_parent_CreateSurface (0x1d45d4c) CreateSurface failed, returning 0x8876017c
fixme:d3d_texture:texture_init Failed to create surface 0x1ae6388, hr 0x8876017c
err:d3d:resource_init Out of adapter memory

I wonder what the difference is? And which result can actually be trusted?
RE: Debugger detected
by Robert Showalter on Tuesday January 19th 2010, 14:00
I just want to say that this problem has disappeared in Wine-1.1.36 so it shouldn't be considered an issue
CD set
by William J May on Tuesday December 1st 2009, 2:57
I have the full version on CD (set of four), and I was stuck on the mounting issue. About to give up, I checked the test results to find 'wine eject'.
Could we maybe reiterate that command to save other ppl some frustration?
Sims 2 DVD on 1.1.15-git
by Daniel Rammelt on Friday February 27th 2009, 13:53
Installs fine from DVD. After changing to Forced desktop and installing directx9, all directx dlls were changed to Native (Winetricks sets several dlls to builtin). This allowed the game to load further than usual. Otherwise I got the same crashes as everyone else.
Now crashes with... wine: Call from 0x11e42ad to unimplemented function GDI32.dll.GdiEntry1, aborting

I dont see anyway to override GDI32.dll so I guess its just a bug in wine?
Back