https://bugs.winehq.org/show_bug.cgi?id=30266
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
it seems the author of the software changed related code which makes it work now. I found an unspecific mention of a Wine bugfix in the release notes of version 2.22, May 2013 which might be related to this.
http://www.cygnus-software.com/whybuyfx/releasenotes.htm
--- quote --- Version 2.22, May 2013
A fix was made to correct a bug that prevented Fractal eXtreme from running under Wine. --- quote ---
It seems he saw my comment #3, made a fix and begone. Good guy, how nice of him of putting a notice to this ticket. Wait. What? Its not that he didn't benefit from it ... but well.
For the documentation:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files (x86)/Cygnus Software/Fractal eXtreme 32-bit
$ WINEDEBUG=+tid,+seh,+relay,+snoop,+bitmap wine ./FractalX.exe >> log.txt 2>&1 ... 002e:Call gdi32.CreateDIBSection(003d00bb,0055de98,00000000,0055de88,00000000,00000000) ret=00452f55 002e:trace:bitmap:CreateDIBSection format (110,110), planes 1, bpp 8, BI_RGB, size 12320 RGB 002e:Ret gdi32.CreateDIBSection() retval=000700ca ret=00452f55 ... 002e:Call msvcr100.fopen_s(0033d44c,0033d510 "C:\users\focht\My Documents\Fractal eXtreme\plugin_stamps\Mandelbrot_Mandelbrot.bmp",0033d450 "wb") ret=0044f07a ... 002e:Call KERNEL32.CreateFileW(0055e2d8 L"C:\users\focht\My Documents\Fractal eXtreme\plugin_stamps\Mandelbrot_Mandelbrot.bmp",40000000,00000003,0033d1fc,00000002,00000080,00000000) ret=7e9acc5e 002e:Ret KERNEL32.CreateFileW() retval=00000258 ret=7e9acc5e ... 002e:Ret msvcr100.fopen_s() retval=00000000 ret=0044f07a 002e:Call gdi32.SetDIBColorTable(003e00bb,00000000,00000100,0055dec0) ret=00453193 002e:Ret gdi32.SetDIBColorTable() retval=00000100 ret=00453193 002e:Call msvcr100.ftell(7ea35700) ret=004476ca 002e:Call KERNEL32.SetFilePointer(00000258,00000000,0033ce14,00000001) ret=7e9aa8b1 002e:Ret KERNEL32.SetFilePointer() retval=00000000 ret=7e9aa8b1 002e:Ret msvcr100.ftell() retval=00000000 ret=004476ca 002e:Call msvcr100.fwrite(0033d400,00000001,0000000e,7ea35700) ret=00447641 002e:Call ntdll.RtlAllocateHeap(00550000,00000008,00001000) ret=7e9b424a 002e:Ret ntdll.RtlAllocateHeap() retval=0055e2d8 ret=7e9b424a 002e:Ret msvcr100.fwrite() retval=0000000e ret=00447641 002e:Call gdi32.GetDIBits(003e00bb,000800ca,00000000,0000006e,00000000,0033cfd4,00000000) ret=0044edc8 002e:Ret gdi32.GetDIBits() retval=00000001 ret=0044edc8 002e:Call msvcr100.malloc(00003020) ret=0044eddd 002e:Call ntdll.RtlAllocateHeap(00550000,00000000,00003020) ret=7e9b424a 002e:Ret ntdll.RtlAllocateHeap() retval=0055f2e0 ret=7e9b424a 002e:Ret msvcr100.malloc() retval=0055f2e0 ret=0044eddd 002e:Call gdi32.GetDIBits(003e00bb,000800ca,00000000,0000006e,0055f2e0,0033cfd4,00000000) ret=0044ee16 002e:Ret gdi32.GetDIBits() retval=00000000 ret=0044ee16 002e:Call msvcr100.fwrite(0033cfd4,00000001,00000028,7ea35700) ret=00447641 002e:Ret msvcr100.fwrite() retval=00000028 ret=00447641 002e:Call gdi32.SetDIBColorTable(003e00bb,00000000,00000100,0055dec0) ret=00453193 002e:Ret gdi32.SetDIBColorTable() retval=00000100 ret=00453193 002e:Call msvcr100.fwrite(0055dec0,00000001,00000400,7ea35700) ret=00447641 002e:Ret msvcr100.fwrite() retval=00000400 ret=00447641 002e:Call msvcr100.fwrite(0055f2e0,00000001,00003020,7ea35700) ret=00447641 002e:Call KERNEL32.WriteFile(00000258,0055e2d8,00001000,0033cdf8,00000000) ret=7e9af862 002e:Ret KERNEL32.WriteFile() retval=00000001 ret=7e9af862 002e:Call KERNEL32.WriteFile(00000258,0055feaa,00002000,0033ce28,00000000) ret=7e9af862 002e:Ret KERNEL32.WriteFile() retval=00000001 ret=7e9af862 002e:Ret msvcr100.fwrite() retval=00003020 ret=00447641 ... --- snip ---
--- snip --- 0044EDBF 8B1D 88C04A00 MOV EBX,DWORD PTR DS:[<&GDI32.GetDIBits>] 0044EDC5 50 PUSH EAX ; hDC 0044EDC6 FFD3 CALL EBX 0044EDC8 85C0 TEST EAX,EAX ; 1 -> TRUE 0044EDCA 74 4F JE SHORT FractalX.0044EE1B 0044EDCC 8B85 D0FBFFFF MOV EAX,DWORD PTR SS:[EBP-430] ; 0x3020 -> 12320 0044EDD2 85C0 TEST EAX,EAX 0044EDD4 74 45 JE SHORT FractalX.0044EE1B 0044EDD6 50 PUSH EAX 0044EDD7 FF15 48C44A00 CALL DWORD PTR DS:[<&MSVCR100.malloc>] 0044EDDD 83C4 04 ADD ESP,4 0044EDE0 8985 B0FBFFFF MOV DWORD PTR SS:[EBP-450],EAX ; lpvBits 0044EDE6 85C0 TEST EAX,EAX 0044EDE8 74 31 JE SHORT FractalX.0044EE1B 0044EDEA 8B95 B0FBFFFF MOV EDX,DWORD PTR SS:[EBP-450] 0044EDF0 8B46 08 MOV EAX,DWORD PTR DS:[ESI+8] 0044EDF3 6A 00 PUSH 0 ; uUsage 0044EDF5 8D8D BCFBFFFF LEA ECX,DWORD PTR SS:[EBP-444] 0044EDFB 51 PUSH ECX ; lpbi 0044EDFC 52 PUSH EDX ; lpvBits 0044EDFD 50 PUSH EAX ; cScanLines = 110 0044EDFE 8B06 MOV EAX,DWORD PTR DS:[ESI] 0044EE00 8B50 14 MOV EDX,DWORD PTR DS:[EAX+14] 0044EE03 6A 00 PUSH 0 ; uStartScan = 0 0044EE05 8BCE MOV ECX,ESI 0044EE07 FFD2 CALL EDX 0044EE09 50 PUSH EAX ; hbmp 0044EE0A 8B06 MOV EAX,DWORD PTR DS:[ESI] 0044EE0C 8B50 10 MOV EDX,DWORD PTR DS:[EAX+10] 0044EE0F 8BCE MOV ECX,ESI 0044EE11 FFD2 CALL EDX 0044EE13 50 PUSH EAX ; hDC 0044EE14 FFD3 CALL EBX ; GDI32.GetDIBits ... --- snip ---
I still think he had Win9x-ish code there that works in native Windows. Unfortunately I didn't save the old app version.
Anyway, further investigation seems wasted time. Resolving 'invalid' here.
$ sha1sum fxsetup.msi 836895f51cd11b0d1d3dee3ba7314ea673268a63 fxsetup.msi
$ du -sh fxsetup.msi 6.2M fxsetup.msi
$ wine --version wine-3.8
Regards