A sample version of The Sims 2: Body Shop. This Create-A-Sim tool can create and customise Sims that can later be transferred to the full game.
Application Details:
Version: | Demo |
License: | Demo |
URL: | https://www.ea.com/en-gb/games... |
Votes: | 1 |
Latest Rating: | Bronze |
Latest Wine Version Tested: | 4.21-staging |
Maintainers: About Maintainership
What works
What does not
Workarounds
What was not tested
Hardware tested
Graphics:
Additional Comments
The application crashes with the following error:
--- Direct3D returned an error: D3DERR_INVALIDCALL! The application will now terminate... ---
Following is the final line of the output text on the terminal:
--- ::: fixme:ddraw:ddraw7_Initialize Ignoring guid {aeb2cdd4-6e41-43ea-941c-8361cc760781}. err:winediag:MIDIMAP_drvOpen No software synthesizer midi port found, Midi sound output probably won't work. fixme:d3d:wined3d_check_device_format_conversion wined3d 0x23c70d8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8X8_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub! fixme:d3d:wined3d_device_set_software_vertex_processing device 0x2321998, software 0x1 stub!
Operating system | Test date | Wine version | Installs? | Runs? | Used Workaround? | Rating | Submitter | ||
Show | Arch Linux | Dec 15 2019 | 4.21-staging | Yes | Yes | Yes | Bronze | Dmytro Kropenko | |
Current | Slackware -current | Feb 06 2020 | 4.0.3 | Yes | No | No | Garbage | Maxim-007 | |
Show | Arch Linux x86_64 | Jul 14 2019 | 4.12.1-staging | Yes | Yes | Yes | Bronze | Dmytro Kropenko | |
Show | Slackware -current | Oct 13 2018 | 3.0.3 | Yes | No | No | Garbage | Maxim-007 | |
Show | Slackware -current | Jun 29 2018 | 3.0.1 | Yes | No | No | Garbage | Maxim-007 |
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:
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:
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.