http://bugs.winehq.org/show_bug.cgi?id=9842
Summary: StarCraft segfaults when DirectDrawRenderer is set to opengl Product: Wine Version: 0.9.46. Platform: All OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-directx-ddraw AssignedTo: wine-bugs@winehq.org ReportedBy: niskel+bugs@gmail.com
As of Wine 0.9.45 (still present in 0.9.46), StarCraft has stopped working when the DirectDraw renderer is set to "opengl".
HKEY_CURRENT_USER\Software\Wine\AppDefaults\starcraft.exe\Direct3D\DirectDrawRenderer = "opengl"
The game will start as usual and reach the menu screen and then segfault. The game is unplayable on my machine without this registry entry. This has worked fine in Wine 0.9.44.
Here is the output Wine gives me:
fixme:advapi:SetSecurityInfo stub fixme:win:EnumDisplayDevicesW ((null),0,0x34f448,0x00000000), stub! fixme:ddraw:IDirectDrawImpl_SetCooperativeLevel (0x123190)->(0x10024,0000001 fixme:xrandr:X11DRV_XRandR_SetCurrentMode Cannot change screen BPP from 32 t ALSA lib conf.c:3939:(snd_config_expand) Unknown parameters 0 ALSA lib control.c:910:(snd_ctl_open_noupdate) Invalid CTL default:0 ALSA lib pcm_softvol.c:889:(_snd_pcm_softvol_open) Unknown field max_dB fixme:ntdll:find_reg_tz_info Can't find matching timezone information in the registry for bias 240, std (d/m/y): 4/11/2007, dlt (d/m/y): 11/03/2007 wine: Unhandled page fault on read access to 0x00000000 at address 0x7cd1938 1 (thread 0009), starting debugger... Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x7cd19381). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:7cd19381 ESP:0034f5e0 EBP:0034fa88 EFLAGS:00010246( - 00 -RIZP1) EAX:000001e0 EBX:7cd6eff4 ECX:02ca0020 EDX:02ca0020 ESI:00000000 EDI:00000000 Stack dump: 0x0034f5e0: 00000000 00000000 00000000 00000000 0x0034f5f0: 00000000 00000056 00000000 00000000 0x0034f600: 00000000 beef0201 00000a00 00000280 0x0034f610: 000001e0 00000001 00000000 00000008 0x0034f620: 00000000 00000040 00000000 00000000 0x0034f630: 00000000 00000000 00000000 00000000 Backtrace: =>1 0x7cd19381 d3dfmt_convert_surface+0x722() in wined3d (0x0034fa88) 2 0x7cd1a39b in wined3d (+0x6a39b) (0x0034fb58) 3 0x7cd208e8 in wined3d (+0x708e8) (0x0034fbe8) 4 0x7cda6910 in ddraw (+0x26910) (0x0034fc18) 5 0x7cda934e in ddraw (+0x2934e) (0x0034fc28) 6 0x1503992f in storm (+0x3992f) (0x0034fc3c) 7 0x00417462 in starcraft (+0x17462) (0x0034fc78) 8 0x004ef167 in starcraft (+0xef167) (0x0034fcbc) 9 0x0041c9ce in starcraft (+0x1c9ce) (0x0034fcec) 10 0x0041ceaa in starcraft (+0x1ceaa) (0x0034fd2c) 11 0x0041e393 in starcraft (+0x1e393) (0x0034fd5c) 12 0x0041cb18 in starcraft (+0x1cb18) (0x0034fd74) 13 0x0041a0cd in starcraft (+0x1a0cd) (0x0034fd84) 14 0x004db63e in starcraft (+0xdb63e) (0x0034fda4) 15 0x004de099 in starcraft (+0xde099) (0x0034fdbc) 16 0x004e0617 in starcraft (+0xe0617) (0x0034fdd4) 17 0x004e06e0 in starcraft (+0xe06e0) (0x0034fde0) 18 0x00404da5 in starcraft (+0x4da5) (0x0034ff08) 19 0x7ee26576 in kernel32 (+0x56576) (0x0034ffe8) 20 0xf7e3ca6f wine_switch_to_stack+0x17() in libwine.so.1 (0x00000000) 0x7cd19381 d3dfmt_convert_surface+0x722 in wined3d: movzbl 0x0(%esi),%e dx Modules: Module Address Debug info Name (91 modules) PE 400000- 6ec000 Export starcraft PE 2000000- 2011000 Deferred local PE 10000000-1001a000 Deferred smackw32 PE 15000000-15069000 Export storm ELF 7bf00000-7bf04000 Deferred <wine-loader> ELF 7cc92000-7cd71000 Export wined3d<elf> -PE 7ccb0000-7cd71000 \ wined3d ELF 7cd71000-7cdc4000 Export ddraw<elf> -PE 7cd80000-7cdc4000 \ ddraw ELF 7ced5000-7cf03000 Deferred libcrypt.so.1 ELF 7cf03000-7cf31000 Deferred libcups.so.2 ELF 7cf7c000-7cfd5000 Deferred rpcrt4<elf> -PE 7cf90000-7cfd5000 \ rpcrt4 ELF 7cfd5000-7d073000 Deferred ole32<elf> -PE 7cff0000-7d073000 \ ole32 ELF 7d2c3000-7d381000 Deferred libasound.so.2 ELF 7d3a9000-7d3bd000 Deferred libresolv.so.2 ELF 7d3e4000-7d418000 Deferred uxtheme<elf> -PE 7d3f0000-7d418000 \ uxtheme ELF 7d418000-7d41b000 Deferred libxinerama.so.1 ELF 7d41b000-7d43b000 Deferred iphlpapi<elf> -PE 7d420000-7d43b000 \ iphlpapi ELF 7d472000-7d488000 Deferred midimap<elf> -PE 7d480000-7d488000 \ midimap ELF 7d488000-7d4b0000 Deferred msacm32<elf> -PE 7d490000-7d4b0000 \ msacm32 ELF 7d4b0000-7d4c9000 Deferred msacm32<elf> -PE 7d4c0000-7d4c9000 \ msacm32 ELF 7d4ca000-7d501000 Deferred winealsa<elf> -PE 7d4e0000-7d501000 \ winealsa ELF 7d501000-7d590000 Deferred winmm<elf> -PE 7d510000-7d590000 \ winmm ELF 7d590000-7d5d9000 Deferred dsound<elf> -PE 7d5a0000-7d5d9000 \ dsound ELF 7da23000-7e3bb000 Deferred libglcore.so.1 ELF 7e3bb000-7e451000 Deferred libgl.so.1 ELF 7e451000-7e456000 Deferred libxdmcp.so.6 ELF 7e456000-7e459000 Deferred libxau.so.6 ELF 7e459000-7e544000 Deferred libx11.so.6 ELF 7e544000-7e552000 Deferred libxext.so.6 ELF 7e552000-7e557000 Deferred libxxf86vm.so.1 ELF 7e557000-7e56e000 Deferred libice.so.6 ELF 7e56e000-7e577000 Deferred libsm.so.6 ELF 7e577000-7e580000 Deferred libxcursor.so.1 ELF 7e580000-7e585000 Deferred libxfixes.so.3 ELF 7e585000-7e588000 Deferred libxcomposite.so.1 ELF 7e588000-7e58c000 Deferred libxrandr.so.2 ELF 7e58c000-7e594000 Deferred libxrender.so.1 ELF 7e59e000-7e62e000 Deferred winex11<elf> -PE 7e5b0000-7e62e000 \ winex11 ELF 7e676000-7e695000 Deferred libexpat.so.0 ELF 7e695000-7e6bf000 Deferred libfontconfig.so.1 ELF 7e6bf000-7e6d1000 Deferred libz.so.1 ELF 7e6d1000-7e736000 Deferred libfreetype.so.6 ELF 7e75d000-7e793000 Deferred winspool<elf> -PE 7e770000-7e793000 \ winspool ELF 7e793000-7e834000 Deferred comdlg32<elf> -PE 7e7a0000-7e834000 \ comdlg32 ELF 7e834000-7e8f1000 Deferred comctl32<elf> -PE 7e840000-7e8f1000 \ comctl32 ELF 7e8f1000-7e94b000 Deferred shlwapi<elf> -PE 7e900000-7e94b000 \ shlwapi ELF 7e94b000-7ea4b000 Deferred shell32<elf> -PE 7e960000-7ea4b000 \ shell32 ELF 7ea4b000-7ea60000 Deferred lz32<elf> -PE 7ea50000-7ea60000 \ lz32 ELF 7ea60000-7ea7a000 Deferred version<elf> -PE 7ea70000-7ea7a000 \ version ELF 7ea7a000-7eac3000 Deferred advapi32<elf> -PE 7ea90000-7eac3000 \ advapi32 ELF 7eac3000-7eb5c000 Deferred gdi32<elf> -PE 7eae0000-7eb5c000 \ gdi32 ELF 7eb5c000-7ec95000 Deferred user32<elf> -PE 7eb80000-7ec95000 \ user32 ELF 7edb4000-7eed9000 Export kernel32<elf> -PE 7edd0000-7eed9000 \ kernel32 ELF 7eed9000-7eee4000 Deferred libnss_files.so.2 ELF 7eee4000-7eeef000 Deferred libnss_nis.so.2 ELF 7eeef000-7ef09000 Deferred libnsl.so.1 ELF 7ef09000-7ef12000 Deferred libnss_compat.so.2 ELF 7ef12000-7ef38000 Deferred libm.so.6 ELF 7ef38000-7ef3a000 Deferred libnvidia-tls.so.1 ELF 7ef41000-7ef5f000 Deferred imm32<elf> -PE 7ef50000-7ef5f000 \ imm32 ELF 7ef5f000-7f000000 Deferred ntdll<elf> -PE 7ef70000-7f000000 \ ntdll ELF f7caa000-f7cae000 Deferred libdl.so.2 ELF f7cae000-f7df7000 Deferred libc.so.6 ELF f7df7000-f7e0e000 Deferred libpthread.so.0 ELF f7e35000-f7f49000 Export libwine.so.1 ELF f7f4a000-f7f69000 Deferred ld-linux.so.2 Threads: process tid prio (all id:s are in hex) 0000000b 0000000c 0 00000008 (D) H:.wine\drive_c\Program Files\Starcraft\StarCraft.exe 0000000e 0 0000000d 15 0000000a 1 00000009 0 <== fixme:ddraw:IDirectDrawImpl_SetCooperativeLevel (0x123190)->((nil),00000008) Segmentation fault