[Bug 31080] 0ad crashes on startup ('ChangeDisplaySettings' with DM_BITSPERPEL setting only)

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Aug 27 15:45:36 CDT 2014


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
                URL|http://trac.wildfiregames.c |http://downloads.sourceforg
                   |om/wiki/LatestReleaseWindow |e.net/project/zero-ad/relea
                   |s                           |ses/0ad-0.0.16-alpha-win32.
                   |                            |exe
                 CC|                            |focht at gmx.net
          Component|-unknown                    |winex11.drv
         Resolution|---                         |DUPLICATE
            Summary|0ad crashes at start        |0ad crashes on startup
                   |                            |('ChangeDisplaySettings'
                   |                            |with DM_BITSPERPEL setting
                   |                            |only)

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

it's a dupe of bug 13481 which unfortunately was closed as 'WONTFIX'.

That game tries to change display settings and only passes DM_BITSPERPEL.

I suggest to rethink that decision since OP's testcase/patch from bug 13481
seems reasonable and this game clearly depends on this behaviour.

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/0 A.D. alpha/binaries/system
...

$ WINEDEBUG=+tid,+seh,+relay,+x11settings wine ./pyrogenesis.exe >>log.txt 2>&1
0029:Call user32.ChangeDisplaySettingsA(0071ed48,00000004) ret=005eff82
0029:Call
winex11.drv.ChangeDisplaySettingsEx(00000000,0016ae78,00000000,00000004,00000000)
ret=7ed04e83
0029:trace:x11settings:X11DRV_ChangeDisplaySettingsEx
((null),0x16ae78,(nil),0x00000004,(nil))
0029:trace:x11settings:X11DRV_ChangeDisplaySettingsEx flags=FULLSCREEN
0029:trace:x11settings:X11DRV_ChangeDisplaySettingsEx DM_fields=BITSPERPEL
0029:trace:x11settings:X11DRV_ChangeDisplaySettingsEx width=800 height=600
bpp=32 freq=60 (desktop)
0029:warn:x11settings:X11DRV_ChangeDisplaySettingsEx devmode doesn't specify
the resolution: 40000
0029:Ret  winex11.drv.ChangeDisplaySettingsEx() retval=fffffffe ret=7ed04e83
0029:Ret  user32.ChangeDisplaySettingsA() retval=fffffffe ret=005eff82 
...
0029:Call msvcr90._wcsdup(0033d930 L"ChangeDisplaySettings failed with ret=-2")
ret=004c267d
...
0029:Ret  msvcr90._wcsdup() retval=00aeb5c0 ret=004c267d
0029:Call ntdll.wcsrchr(006c1fb0
L"..\\..\\..\\source\\lib\\sysdep\\os\\win\\wsdl.cpp",0000002f) ret=006232c7
0029:Ret  ntdll.wcsrchr() retval=00000000 ret=006232c7
0029:Call ntdll.wcsrchr(006c1fb0
L"..\\..\\..\\source\\lib\\sysdep\\os\\win\\wsdl.cpp",0000005c) ret=006232d1
0029:Ret  ntdll.wcsrchr() retval=006c1ff2 ret=006232d1
0029:Call msvcr90.vswprintf_s(00335054,00004000,006c1900 L"%ls(%d):
%ls\n",0033d064) ret=005ec321
0029:Ret  msvcr90.vswprintf_s() retval=00000038 ret=005ec321
0029:Call KERNEL32.OutputDebugStringW(00335054 L"wsdl.cpp(828):
ChangeDisplaySettings failed with ret=-2\n") ret=005f4c1d
...
--- snip ---

Debugger session:

--- snip ---
Wine-dbg>bt

Backtrace:
=>0 0x7ed3bc68 ChangeDisplaySettingsA(devmode=0x71ed48, flags=0x4)
[/home/focht/projects/wine/wine.repo/src/dlls/user32/sysparams.c:2736] in
user32 (0x0033da80)
  1 0x005f076f OnMessage+0xbe(hWnd=0x10046, uMsg=0x6, wParam=0x1, lParam=0)
[d:\0ad\svn\source\lib\sysdep\os\win\wsdl.cpp:1306] in pyrogenesis (0x0033dab8)
...
  20 0x004a8a0f CVideoMode::InitSDL+0x11e()
[d:\0ad\svn\source\ps\videomode.cpp:253] in pyrogenesis (0x0033ed78)
  21 0x004ad350 InitGraphics+0x5f(args=*** Invalid address 0x00000328 ***
Internal symbol error: unable to access memory location 0x328, flags=***
Invalid address 0x0000032c ***
) [d:\0ad\svn\source\ps\gamesetup\gamesetup.cpp:936] in pyrogenesis
(0x0033fac0)
  22 0xc381fff8 (0x0033fd1c)
  23 0x00403165 main+0x14(argc=0x1, argv=0xab6a38)
[d:\0ad\svn\source\main.cpp:520] in pyrogenesis (0x0033fd2c)
  24 0x005ec245 wmain+0xc4(argc=0x1, argv=0x110380)
[d:\0ad\svn\source\lib\sysdep\os\win\wseh.cpp:380] in pyrogenesis (0x0033fda8)
  25 0x0065ed51 __tmainCRTStartup+0x10e()
[f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c:583] in pyrogenesis
(0x0033fdec)
  26 0x005ec13f CallStartupWithinTryBlock+0x3e()
[d:\0ad\svn\source\lib\sysdep\os\win\wseh.cpp:396] in pyrogenesis (0x0033fe20)

...

Wine-dbg>p *devmode
{dmDeviceName={0x57, 0x69, 0x6e, 0x65, 0x20, 0x58, 0x31, 0x31, 0x20, 0x64,
0x72, 0x69, 0x76, 0x65, 0x72, 0, 0xb1, 0, 0x5246, 0x4545, 0xf8, 0x11, 0xe8,
0x11, 0xf8, 0x11, 0xe8, 0x11, 0x1c00, 0x38, 0xfc00, 0x3f}, dmSpecVersion=0x401,
dmDriverVersion=0x401, dmSize=0xbc, dmDriverExtra=0, dmFields=0x40000,
u1={s1={dmOrientation=0, dmPaperSize=0, dmPaperLength=0, dmPaperWidth=0,
dmScale=0, dmCopies=0, dmDefaultSource=0, dmPrintQuality=0},
s2={dmPosition={x=0, y=0}, dmDisplayOrientation=0, dmDisplayFixedOutput=0}},
dmColor=0, dmDuplex=0, dmYResolution=0, dmTTOption=0, dmCollate=0,
dmFormName={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x20, 0, 0x320,
0, 0x258, 0, 0, 0, 0x3c, 0, 0xf800, 0x1f, 0xfc00, 0x3f, 0xfc00}, dmLogPixels=0,
dmBitsPerPel=0x20, dmPelsWidth=0x320, dmPelsHeight=0x258, u2={dmDisplayFlags=0,
dmNup=0}, dmDisplayFrequency=0x3c, dmICMMethod=0x1100c8, dmICMIntent=0x11,
dmMediaType=0x45455246, dmDitherType=0x110098, dmReserved1=0x110088,
dmReserved2=0, dmPanningWidth=0, dmPanningHeight=0x320}
--- snip ---

$ sha1sum 0ad-0.0.16-alpha-win32.exe 
bcbb8081b5b0520f758f9ab0126b2cb768ba3ae1  0ad-0.0.16-alpha-win32.exe

$ du -sh 0ad-0.0.16-alpha-win32.exe 
538M    0ad-0.0.16-alpha-win32.exe

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

Regards

*** This bug has been marked as a duplicate of bug 13481 ***

-- 
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