[Bug 37188] Counterclockwise (CCW) 1.1 crashes on startup (invalid 'iPixelType' value 0x18 passed to 'ChoosePixelFormat' function)

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Aug 27 14:35:03 CDT 2014


https://bugs.winehq.org/show_bug.cgi?id=37188

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
            Version|unspecified                 |1.7.25
                URL|                            |http://www.16x16.org/downlo
                   |                            |ad/ccw/ccw_1_1.zip
           Keywords|                            |download
          Component|ntdll                       |-unknown
                 CC|                            |focht at gmx.net
     Ever confirmed|0                           |1
            Summary|[counterclockwise] unable   |Counterclockwise (CCW) 1.1
                   |to start                    |crashes on startup (invalid
                   |                            |'iPixelType' value 0x18
                   |                            |passed to
                   |                            |'ChoosePixelFormat'
                   |                            |function)

--- Comment #2 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming.

It seems the game requests a stupid pixel format which causes failure to set up
GL context later.

At one point it calls 'glGetString(GL_EXTENSIONS)' on that GL context which
returns NULL by design since the context doesn't exist due to earlier failure.

--- snip ---
$ WINEDEBUG=+tid,+seh,+relay,+opengl wine ./ccw.exe >>log.txt 2>&1
...
0023:Call gdi32.ChoosePixelFormat(001c0033,00566180) ret=004ec466
0023:Call opengl32.wglChoosePixelFormat(001c0033,00566180) ret=7ea618e2
0023:trace:wgl:wglChoosePixelFormat 0x1c0033 0x566180: size 40 version 1 flags
37 type 24 color 0 0,0,0,0 accum 0 depth 0 stencil 0 aux 0
...
<all mismatches>
...
0023:trace:wgl:glxdrv_wglDescribePixelFormat (0x1c0033,164,40,0x77f4dc)
0023:trace:wgl:get_pixel_format Returning fmt_id=0x19c for iPixelFormat=164
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - size / version : 40 / 1
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - dwFlags : PFD_DRAW_TO_WINDOW
PFD_SUPPORT_OPENGL 
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - iPixelType : PFD_TYPE_RGBA
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - Color   : 32
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - Red     : 8
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - Green   : 8
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - Blue    : 8
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - Alpha   : 8
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - Accum   : 64
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - Depth   : 24
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - Stencil : 8
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - Aux     : 4
0023:trace:wgl:dump_PIXELFORMATDESCRIPTOR   - iLayerType : PFD_MAIN_PLANE
0023:trace:wgl:wglChoosePixelFormat pixel type mismatch for iPixelFormat=164
0023:trace:wgl:wglChoosePixelFormat returning 0
0023:Ret  opengl32.wglChoosePixelFormat() retval=00000000 ret=7ea618e2
0023:Ret  gdi32.ChoosePixelFormat() retval=00000000 ret=004ec466
0023:Call gdi32.SetPixelFormat(001c0033,00000000,00566180) ret=004ec484
0023:Call opengl32.wglSetPixelFormat(001c0033,00000000,00566180) ret=7ea61ad3
0023:Call gdi32.__wine_get_wgl_driver(001c0033,0000000b) ret=7dffd669
0023:Ret  gdi32.__wine_get_wgl_driver() retval=7de3b020 ret=7dffd669
0023:trace:wgl:set_pixel_format (0x1c0033,0)
0023:err:wgl:set_pixel_format Invalid format 0
0023:Ret  opengl32.wglSetPixelFormat() retval=00000000 ret=7ea61ad3
0023:Ret  gdi32.SetPixelFormat() retval=00000000 ret=004ec484
0023:Call opengl32.wglCreateContext(001c0033) ret=004ec498
0023:Call gdi32.__wine_get_wgl_driver(001c0033,0000000b) ret=7dffd669
0023:Ret  gdi32.__wine_get_wgl_driver() retval=7de3b020 ret=7dffd669
0023:Ret  opengl32.wglCreateContext() retval=00000000 ret=004ec498
0023:Call opengl32.wglMakeCurrent(001c0033,00000000) ret=004ec4b3
0023:Ret  opengl32.wglMakeCurrent() retval=00000001 ret=004ec4b3 
...
0023:Call opengl32.glGetString(00001f03) ret=004a6d2f
0023:Ret  opengl32.glGetString() retval=00000000 ret=004a6d2f
0023:Call msvcrt.strlen(0056b014 "basic_string::_S_construct NULL not valid")
ret=005365cb
0023:Ret  msvcrt.strlen() retval=00000029 ret=005365cb
...
0023:Call KERNEL32.MultiByteToWideChar(00000000,00000000,7e7aa53a "Runtime
error!",0000000e,0077ef20,00000400) ret=7e7764dc
0023:Ret  KERNEL32.MultiByteToWideChar() retval=0000000e ret=7e7764dc
0023:Call KERNEL32.MultiByteToWideChar(00000000,00000000,7e7aa563 "abnormal
program termination",0000001c,0077e720,00000400) ret=7e7764dc
0023:Ret  KERNEL32.MultiByteToWideChar() retval=0000001c ret=7e7764dc 
...
0023:Call user32.MessageBoxIndirectW(0077e6d4) ret=7e75a65a 
--- snip ---

Dumping the descriptor:

--- snip ---
Wine-dbg>p *pfd
{nSize=0x28, nVersion=0x1, dwFlags=0x25, iPixelType=24, cColorBits=0,
cRedBits=0, cRedShift=0, cGreenBits=0, cGreenShift=0, cBlueBits=0,
cBlueShift=0, cAlphaBits=0, cAlphaShift=0, cAccumBits=0, cAccumRedBits=0,
cAccumGreenBits=0, cAccumBlueBits=0, cAccumAlphaBits=16, cDepthBits=0,
cStencilBits=0, cAuxBuffers=0, iLayerType=0, bReserved=0, dwLayerMask=0,
dwVisibleMask=0, dwDamageMask=0}
--- snip ---

The descriptor iPixelType value 0x18  is _hard_ coded from PE '.data' section,
there is no mistake here.

Maybe Windows has a different heuristics here, still finding/providing a match
given that stupid 'iPixelType' value.

$ du -sh ccw_1_1.zip 
7.1M    ccw_1_1.zip

$ sha1sum ccw_1_1.zip 
cd9f753e2d4a98a491bbbc201530e2861bf377f8  ccw_1_1.zip

$ wine --version
wine-1.7.25-21-gc87901d

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list