http://bugs.winehq.org/show_bug.cgi?id=5253
------- Additional Comments From the3dfxdude@gmail.com 2006-27-06 19:53 ------- Created an attachment (id=2766) --> (http://bugs.winehq.org/attachment.cgi?id=2766&action=view) ddraw log from Jesse Allen
This is a better log with WINEDEBUG=+ddraw,+d3d_surface and latest CVS. I can reproduce a crash.
It shows an Unhandled page fault on write access to 0x7d85b000 at address 0x7e4c01a4 Which follows a trace:ddraw:IDirectDrawSurfaceImpl_Lock locked surface returning description : - DDSD_CAPS : DDSCAPS_FRONTBUFFER DDSCAPS_PRIMARYSURFACE DDSCAPS_VIDEOMEMORY DD SCAPS_VISIBLE DDSCAPS_LOCALVIDMEM - DDSD_HEIGHT : 480 - DDSD_WIDTH : 640 - DDSD_PITCH : 640 - DDSD_LPSURFACE : 0x7d810000 - DDSD_PIXELFORMAT : ( DDPF_PALETTEINDEXED8 DDPF_RGB , RGB bits: 8, R 00 G 00
B 00)
My guess is 640*480*bpp in hex is 0x4b000 plus the base address of 0x7d810000 equals 0x7d85b000. That is probably beyond the end of buffer -- should be at 0x7d85bfff? So the program is locking the main surface to set pixels directly and goes beyond end of buffer. There has to be an explanation somewhere...