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
What works
Manual installation and launching the game.
What does not
The game can not load, freezes with an error that says:
Direct3D returned an error: D3DERR_INVALIDCALL! The application will now terminate.
CD detection of second disk failed in install with 4 cd version for me.
Workarounds
What was not tested
The game play.
Hardware tested
Graphics:
Additional Comments
Would be wonderfull if someone could find solution for this problem.
Operating system | Test date | Wine version | Installs? | Runs? | Used Workaround? | Rating | Submitter | ||
Show | Arch Linux x86_64 | Nov 18 2022 | 7.20 | Yes | No | No | Garbage | Luke Horwell | |
Show | Manjaro Linux 18.0.0 | Jul 14 2019 | 4.11-staging | Yes | Yes | No | Bronze | Luke Horwell | |
Show | Ubuntu 18.04 "Bionic" amd64 (+variants like Kubuntu) | Sep 01 2018 | 3.15 | Yes | No | No | Garbage | Korbinian | |
Current | Ubuntu 12.04 "Precise" i386 (+ variants like Kubuntu) | Nov 17 2012 | 1.5.17 | Yes | No | Garbage | an anonymous user | ||
Show | Arch Linux x86_64 | Jun 26 2012 | 1.5.7 | Yes | No | Garbage | Emily Marriott |
Simply install DXVK (https://github.com/doitsujin/dxvk) into your prefix using winetricks
winetricks dxvk
and any version of Sims 2 will be fully playable without any glitches whatsoever!
Note that DXVK requires Vulkan-compatible graphics and fresh graphics drivers (at the time of writing this note, it was version 440.64 of Nvidia's proprietary driver and Mesa 20.0).
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_b...
Option A: Obtain a patched version of Wine
The following GitHub repository maintains the latest Wine source release with the patches to enable The Sims 2 to start. Compiled binaries can be downloaded for use with a 32-bit wine prefix (which could be used with front-ends like PlayOnLinux). Known graphical issues and build instructions for building from source are also documented:
https://github.com/lah7/sims-2...
Option B: Lutris
Lutris is a platform for installing games in a unified interface on Linux, an installer is available for this game: https://lutris.net/games/the-s...
Graphical Glitches Inevitable!
While the patch enables the game to play fairly well (dependant on hardware), there may be issues including:
Do not submit test reports!
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" until the hardcoded limit is raised and there is a solution to adding the missing undocumented shader interface.
The following comments are owned by whoever posted them. WineHQ is not responsible for what they say.
by Katherine Williams on Saturday January 14th 2017, 4:54
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?
by Alexandr Oleynikov on Saturday September 1st 2018, 13:44
by Luke Horwell on Friday December 4th 2015, 10:04
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! :)
by Robert Showalter on Tuesday January 19th 2010, 15:27
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.
by Charles Simmons on Monday December 19th 2011, 15:21
Hibba.
by Luke Horwell on Friday November 7th 2014, 7:51
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.
by Jason Mills on Sunday October 25th 2015, 4:02
by Luke Horwell on Monday October 26th 2015, 9:41
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. :)
by Jason Mills on Monday October 26th 2015, 13:29
by William J May on Sunday January 17th 2010, 5:10
Will try winetricks dx9 later...
by Robert Showalter on Tuesday January 19th 2010, 15:17
by Robert Showalter on Saturday December 5th 2009, 15:29
by Robert Showalter on Saturday December 5th 2009, 15:38
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?
by Robert Showalter on Tuesday January 19th 2010, 14:00
by William J May on Tuesday December 1st 2009, 2:57
Could we maybe reiterate that command to save other ppl some frustration?
by Daniel Rammelt on Friday February 27th 2009, 13:53
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?