[Bug 30266] Cygnus Fractal eXtreme crashes after trial dialog ( expects gdi32 GetDIBits() returning number of scan lines when bits parameter is NULL)
wine-bugs at winehq.org
wine-bugs at winehq.org
Sat May 12 04:28:05 CDT 2018
https://bugs.winehq.org/show_bug.cgi?id=30266
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |INVALID
--- Comment #4 from Anastasius Focht <focht at 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
--
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