sc2 with wine on amd64

Mickaël Maillot mickael.maillot at gmail.com
Fri Jul 30 18:43:16 UTC 2010


FYI: sc2 works fine with 8-STABLE r210231+
sound works if you install audio/openal-soft and remove
--without-openal in wine's Makefile.

2010/7/20 Mickaël Maillot <mickael.maillot at gmail.com>:
> oh nice, all works fine with your patch. thanks Tijil
>
> 2010/7/20 Tijl Coosemans <tijl at coosemans.org>:
>> On Sunday 11 July 2010 12:17:23 Mickaël Maillot wrote:
>>> i try to play StarCraft 2 with wine on my amd64 8-STABLE desktop.
>>> first there is a patch to get the game working:
>>> http://freelooser.fr/freebsd/patch-dlls__wined3d__swapchain_base.c
>>> see bug: http://bugs.winehq.org/show_bug.cgi?id=23556
>>>
>>> now the problem related to amd64, when i start the game with windbg:
>>>
>>> WineDbg starting on pid 0019
>>> First chance exception: page fault on write access to 0x00370000 in
>>> 32-bit code (0x7e66468f).
>>> Register dump:
>>>  CS:0033 SS:003b DS:003b ES:003b FS:0013 GS:001b
>>>  EIP:7e66468f ESP:0034f930 EBP:0034f9b8 EFLAGS:00010a02(  R- --O I   - - - )
>>>  EAX:00370000 EBX:7e75f32c ECX:00000003 EDX:00000067
>>>  ESI:00000010 EDI:00000010
>>> Stack dump:
>>> 0x0034f930:  0000031c 00000000 00000000 00000010
>>> 0x0034f940:  00000010 00000000 00000000 00000010
>>> 0x0034f950:  00000010 7ea66a1c 00133cd0 00000000
>>> 0x0034f960:  00cc0020 7e80dbc4 80808081 00000000
>>> 0x0034f970:  00010020 00370000 00000000 00000010
>>> 0x0034f980:  00000010 00000040 00200001 00000000
>>> Backtrace:
>>> =>0 0x7e66468f create_alpha_bitmap+0x2af(color=0x318, mask=0x314,
>>> src_info=0x133cd0, color_bits=0x7ea66a1c)
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/user32/cursoricon.c:771]
>>> in user32 (0x0034fa38)
>>>   1 0x7e664ada create_icon_bitmaps+0x389(bmi=0x7ea669f4, width=0x0010,
>>> height=0x0010, color=0x34fa70, mask=0x34fa6c, alpha=0x34fa68)
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/user32/cursoricon.c:837]
>>> in user32 (0x0034fa98)
>>>   2 0x7e664ecb CURSORICON_CreateIconFromBMI+0x23a(bmi=0x7ea669f4,
>>> hotspot={x=0x0008, y=0x0008}, bIcon=0x0001, dwVersion=0x30000,
>>> width=0x0010, height=0x0010, cFlag=0x8000)
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/user32/cursoricon.c:917]
>>> in user32 (0x0034faf8)
>>>   3 0x7e665914 CreateIconFromResourceEx+0x153(bits="(", cbSize=0x0468,
>>> bIcon=0x0001, dwVersion=0x30000, width=0x0010, height=0x0010,
>>> cFlag=0x8000) [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/user32/cursoricon.c:1159]
>>> in user32 (0x0034fb78)
>>> wineserver: file_set_error() can't map error: Bad address
>>>   4 0x7e665f42 CURSORICON_Load+0x311(hInstance=0x7e950000, name=***
>>> invalid address 0x1 ***, width=0x0010, height=0x0010, depth=0x0020,
>>> fCursor=0, loadflags=0x8000)
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/user32/cursoricon.c:1292]
>>> in user32 (0x0034fbc8)
>>> wineserver: file_set_error() can't map error: Bad address
>>>   5 0x7e6693cb LoadImageW+0x1fa(hinst=0x7e950000, name=*** invalid
>>> address 0x1 ***, type=0x0001, desiredx=0x0010, desiredy=0x0010,
>>> loadflags=0x8000)
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/user32/cursoricon.c:2392]
>>> in user32 (0x0034fc68)
>>> wineserver: file_set_error() can't map error: Bad address
>>>   6 0x7e668fed LoadImageA+0x4c(hinst=0x7e950000, name=*** invalid
>>> address 0x1 ***, type=0x0001, desiredx=0x0010, desiredy=0x0010,
>>> loadflags=0x8000)
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/user32/cursoricon.c:2333]
>>> in user32 (0x0034fcc8)
>>>   7 0x7e97119e SIC_Initialize+0x1bd()
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/shell32/iconcache.c:417]
>>> in shell32 (0x0034fd08)
>>>   8 0x7e97e8c5 DllMain+0xe4(hinstDLL=0x7e950000, fdwReason=0x0001,
>>> fImpLoad=0x1) [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/shell32/shell32_main.c:1166]
>>> in shell32 (0x0034fd38)
>>>   9 0x7e9c9e1a __wine_spec_dll_entry+0x69(inst=0x7e950000,
>>> reason=0x0001, reserved=0x1)
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/winecrt0/dll_entry.c:40]
>>> in shell32 (0x0034fd58)
>>>   10 0x7e44a925 call_dll_entry_point+0x14() in ntdll (0x0034fe58)
>>>   11 0x7e44ce77 MODULE_InitDLL+0x216(wm=0x1191e0, reason=0x0001,
>>> lpReserved=0x1)
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/ntdll/loader.c:982]
>>> in ntdll (0x0034fec8)
>>>   12 0x7e44d211 process_attach+0x190(wm=0x1191e0, lpReserved=0x1)
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/ntdll/loader.c:1071]
>>> in ntdll (0x0034ff38)
>>>   13 0x7e44d1c3 process_attach+0x142(wm=0x119130, lpReserved=0x1)
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/ntdll/loader.c:1063]
>>> in ntdll (0x0034ffa8)
>>>   14 0x7e44d1c3 process_attach+0x142(wm=0x1186f8, lpReserved=0x1)
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/ntdll/loader.c:1063]
>>> in ntdll (0x0034ffe8)
>>>   15 0x7e4515e4 attach_process_dlls+0x53(wm=0x1186f8)
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/ntdll/loader.c:2541]
>>> in ntdll (0x00000000)
>>> 0x7e66468f create_alpha_bitmap+0x2af
>>> [/usr/ports/emulators/wine/work/wine-1.2-rc7/dlls/user32/cursoricon.c:771]
>>> in user32: movb       %dl,0x0(%eax)
>>> Unable to open file ''
>>> Wine-dbg>
>>>
>>> the cursor does not have its bitmaps.
>>> the game crash few second laster with also a memory access problem.
>>
>> Recently a patch was committed to 8-STABLE to fix Warcraft on amd64.
>> Perhaps Starcraft is affected as well, so you might want to update
>> your system.
>>
>> That said, the above backtrace looks unrelated. So something else you
>> can try is to change the wine port Makefile with the attached patch.
>> Then rebuild wine.
>>
>> cd /usr/ports/emulators/wine
>> patch < /path/to/wine-Makefile.diff
>> make install
>>
>


More information about the freebsd-emulation mailing list