https://bugs.winehq.org/show_bug.cgi?id=8051
--- Comment #118 from Luke Horwell luke_horwell@hotmail.co.uk --- For the curious, you can get the retail game to partially work again in the latest Wine (1.7.30) by increasing the maximum number of vertex shaders. Similar to how the previous patch worked for 1.1.36.
By cloning the current git repository, you can make a small change to the source code and then compiling Wine from scratch.
At around line 312 in /dlls/d3d9/d3d9_private.h, change: From: #define D3D9_MAX_VERTEX_SHADER_CONSTANTF 256 To: #define D3D9_MAX_VERTEX_SHADER_CONSTANTF 1024
My system uses the Nvidia GeForce GTX 650 with proprietary drivers, so the results may differ to your configuration. As stated previously, this is not a fix. It gets past the INVALIDCALL error, and The Sims 2 completes it's initialization stage, dependent on hardware.
Notable problems still include: Unrendered 'eagle' Sims, objects that are animating turning red, objects containing video (TV/Computer) remaining black, re-positioned objects temporarily turning red (presumably as it re-renders). Missing 'splash' lines on the loading screen. Resolutions higher than 1024x768 also results in Wine throwing many errors to a point the game crashes.
On the upside, all of the default Sims portraits are rendered initially and there is no flickering (only once after loading the neighbourhood)
Despite the rendering issues, it plays at pretty solid 60 FPS (you can press CTRL+SHIFT+S in-game to see this), so there's hope this game can run really well as soon as the shader implementation issues are ironed out.
I also discovered some game-related files. I don't know if these may be of any use, but the retail game (not sure about the demo) uses some scripts related to determining graphics: /../TSData/Res/Config/Graphics Rules.sgr /../TSData/Res/Config/Video Cards.sgr