Multiple MSI-based installers fail to advance progress bar in InstallFiles action (schedule_install_files already moves and clamps to max value + MSI integer overflow)
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: failed again by Robert Showalter on
Tuesday January 19th 2010, 15:17
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?
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?