https://bugs.winehq.org/show_bug.cgi?id=37628
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Component|-unknown |d2d Summary|Unable To Start Korg Legacy |KORG Legacy Collection - |Collection due to Crash in |MS-20 v1.3.0 'Authorizer' |Authorizer |app crashes | |('d2d_factory_CreateDCRende | |rTarget' is a stub) Ever confirmed|0 |1
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/KORG/KORG Legacy
$ WINEDEBUG=+tid,+seh,+relay,+dwrite wine ./MS-20.exe >>log.txt 2>&1 ... 0023:Call KERNEL32.CreateProcessA(0033f1d8 "C:\Program Files\Common Files\KORG\KORG Legacy\MS-20 Authorizer.exe",00000000,00000000,00000000,00000000,00000000,00000000,00000000,0033f0f0,0033f134) ret=00b553d9 ... 0025:Call KERNEL32.__wine_kernel_init() ret=7bc5a259 0023:Ret KERNEL32.CreateProcessA() retval=00000001 ret=00b553d9 ... 0025:fixme:d2d:d2d_factory_CreateDCRenderTarget iface 0x13fce8, desc 0x33f558, render_target 0x33f544 stub! ... <lots of dwrite action> ... 0025:trace:seh:raise_exception code=c0000005 flags=0 addr=0x476b68 ip=00476b68 tid=0025 0025:trace:seh:raise_exception info[0]=00000000 0025:trace:seh:raise_exception info[1]=00000000 0025:trace:seh:raise_exception eax=00000000 ebx=0000006b ecx=000000ff edx=00000000 esi=00a02a98 edi=00000000 0025:trace:seh:raise_exception ebp=0033f494 esp=0033f438 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010202 0025:trace:seh:call_stack_handlers calling handler at 0x4ddf30 code=c0000005 flags=0 ... Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x00476b68). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:00476b68 ESP:0033f438 EBP:0033f494 EFLAGS:00010202( R- -- I - - - ) EAX:00000000 EBX:0000006b ECX:000000ff EDX:00000000 ESI:00a02a98 EDI:00000000 ... Backtrace: =>0 0x00476b68 in ms-20 authorizer (+0x76b68) (0x0033f494) 1 0x00476dad in ms-20 authorizer (+0x76dac) (0x0033f4ec) 2 0x00476efc in ms-20 authorizer (+0x76efb) (0x0033f584) 3 0x004789a6 in ms-20 authorizer (+0x789a5) (0x0033f5f0) 4 0x004ac838 in ms-20 authorizer (+0xac837) (0x0033f678) 5 0x004b1e58 in ms-20 authorizer (+0xb1e57) (0x0033f6ac) 6 0x004b9552 in ms-20 authorizer (+0xb9551) (0x0033f6d8) 7 0x004ba688 in ms-20 authorizer (+0xba687) (0x0033f734) 8 0x004acfb7 in ms-20 authorizer (+0xacfb6) (0x0033f77c) ... 0x00476b68: movl 0x0(%eax),%edx Modules: Module Address Debug info Name (70 modules) PE 400000- 532000 Export ms-20 authorizer ELF 4720e000-47212000 Deferred libxau.so.6 ELF 47322000-4732d000 Deferred libxrender.so.1 ELF 4736d000-4738f000 Deferred libxcb.so.1 ELF 47478000-475b2000 Deferred libx11.so.6 ELF 475e3000-475e7000 Deferred libxinerama.so.1 ELF 47c19000-47c1d000 Deferred libxcomposite.so.1 ELF 4a1e3000-4a1e9000 Deferred libxfixes.so.3 ELF 4a1eb000-4a1fe000 Deferred libxext.so.6 ELF 4a55f000-4a56b000 Deferred libxcursor.so.1 ELF 4a56d000-4a578000 Deferred libxrandr.so.2 ELF 4a62c000-4a63d000 Deferred libxi.so.6 ... ELF 7dcbb000-7dd03000 Deferred dwrite<elf> -PE 7dcc0000-7dd03000 \ dwrite ... Threads: process tid prio (all id:s are in hex) ... 00000022 MS-20.exe 00000023 1 00000024 (D) C:\Program Files\Common Files\KORG\KORG Legacy\MS-20 Authorizer.exe 00000028 1 00000027 0 00000026 0 00000025 0 <== --- snip ---
Was a bit tricky to find as the NULL 'ID2D1DCRenderTarget' gets propagated through multiple call levels - only to be hit on teardown path, after lots of DirectWrite API action. The app doesn't handle the initial failure (E_NOTIMPL) and proceeds just as if nothing happend (which is bad too).
Source: http://source.winehq.org/git/wine.git/blob/0d962da9d3c7a5b3b6509da66c1a05926...
--- snip --- 231 static HRESULT STDMETHODCALLTYPE d2d_factory_CreateDCRenderTarget(ID2D1Factory *iface, 232 const D2D1_RENDER_TARGET_PROPERTIES *desc, ID2D1DCRenderTarget **render_target) 233 { 234 FIXME("iface %p, desc %p, render_target %p stub!\n", iface, desc, render_target); 235 236 return E_NOTIMPL; 237 } --- snip ---
Work around the crash by disabling 'dwrite' (yes, not 'd2d1') component permanently or on command line run with:
--- snip --- $ WINEDLLOVERRIDES=dwrite=d wine ./MS-20.exe --- snip ---
$ sha1sum klc_ms20_win_130.zip 92af28a9770d37ae861691b48ce2b63b9e293278 klc_ms20_win_130.zip
$ du -sh klc_ms20_win_130.zip 63M klc_ms20_win_130.zip
$ wine --version wine-1.7.31-99-g5ecea72
Regards