https://bugs.winehq.org/show_bug.cgi?id=47965
Bug ID: 47965 Summary: Regression: Head Over Heels crashes Product: Wine Version: 4.17 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: dav75uk@yahoo.co.uk Distribution: ---
This game used to work and now fails at least at 4.17.
Unfortunately it's now no longer free from retrospec and is on steam. The bug relates to the retrospec version.
0067:err:winediag:wined3d_dll_init Disabling 3D support. wine: Unhandled page fault on read access to 0x003f8000 at address 1006776C (thread 0069), starting debugger... 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module Unhandled exception: page fault on read access to 0x003f8000 in 32-bit code (0x1006776c). 006f:fixme:dbghelp:elf_search_auxv can't find symbol in module Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:1006776c ESP:012bf6b0 EBP:00000000 EFLAGS:00010286( R- -- I S - -P- ) EAX:00000500 EBX:00003c00 ECX:fffda40c EDX:00000000 ESI:003f8000 EDI:09df64d0 Stack dump: 0x012bf6b0: 001b9c1c 012bf7ec 001b9e94 00000000 0x012bf6c0: 1005f975 012bf6d8 012bf6e8 00000000 0x012bf6d0: 7eb148e0 00000000 00000000 00000000 0x012bf6e0: 00000500 00361030 00000640 012bf7b0 0x012bf6f0: 00003c00 09cc8530 0000006c 0000100f 0x012bf700: 000001e0 00000280 00000500 00000000 Backtrace: =>0 0x1006776c EntryPoint+0xffffffff() in alleg40 (0x00000000) 0x1006776c EntryPoint+0xffffffff in alleg40: movd 0x0(%esi),%mm0 Modules: Module Address Debug info Name (90 modules) PE 400000- a5d000 Deferred hoh PE 10000000-100b2000 Export alleg40 PE 66650000-666a4000 Deferred usp10 ELF 7a800000-7a94a000 Deferred opengl32<elf> -PE 7a840000-7a94a000 \ opengl32 ELF 7b400000-7b82a000 Deferred kernel32<elf> -PE 7b420000-7b82a000 \ kernel32 ELF 7bc00000-7bd42000 Deferred ntdll<elf> -PE 7bc30000-7bd42000 \ ntdll ELF 7c000000-7c004000 Deferred <wine-loader> ELF 7ca60000-7ca9d000 Deferred uxtheme<elf> -PE 7ca70000-7ca9d000 \ uxtheme ELF 7ca9d000-7caa4000 Deferred libxfixes.so.3 ELF 7caa4000-7cab0000 Deferred libxcursor.so.1 ELF 7cab0000-7cac3000 Deferred libxi.so.6 ELF 7cac3000-7cac7000 Deferred libxcomposite.so.1 ELF 7cbc7000-7cbd4000 Deferred libxrandr.so.2 ELF 7cbd4000-7cbe0000 Deferred libxrender.so.1 ELF 7cbe0000-7cc6b000 Deferred setupapi<elf> -PE 7cbf0000-7cc6b000 \ setupapi ELF 7cc6b000-7cc99000 Deferred libxcb.so.1 ELF 7cc99000-7cde9000 Deferred libx11.so.6 ELF 7cde9000-7cdff000 Deferred libxext.so.6 ELF 7cdff000-7ceb9000 Deferred winex11<elf> -PE 7ce20000-7ceb9000 \ winex11 ELF 7d121000-7d153000 Deferred libexpat.so.1 ELF 7d153000-7d19f000 Deferred libfontconfig.so.1 ELF 7d19f000-7d1ee000 Deferred libpng16.so.16 ELF 7d1ee000-7d20a000 Deferred libbz2.so.1 ELF 7d20a000-7d2b7000 Deferred libfreetype.so.6 ELF 7d2b7000-7d2e2000 Deferred libtinfo.so.6 ELF 7d2e2000-7d30f000 Deferred libncurses.so.6 ELF 7d30f000-7d34b000 Deferred ws2_32<elf> -PE 7d320000-7d34b000 \ ws2_32 ELF 7d34b000-7d371000 Deferred shcore<elf> -PE 7d350000-7d371000 \ shcore ELF 7d371000-7dd83000 Deferred shell32<elf> -PE 7d3a0000-7dd83000 \ shell32 ELF 7dd83000-7ddea000 Deferred shlwapi<elf> -PE 7dd90000-7ddea000 \ shlwapi ELF 7ddea000-7de17000 Deferred mpr<elf> -PE 7ddf0000-7de17000 \ mpr ELF 7de17000-7de30000 Deferred libz.so.1 ELF 7de3f000-7de55000 Deferred winejoystick<elf> -PE 7de40000-7de55000 \ winejoystick ELF 7de55000-7def9000 Deferred wininet<elf> -PE 7de70000-7def9000 \ wininet ELF 7def9000-7df28000 Deferred msacm32<elf> -PE 7df00000-7df28000 \ msacm32 ELF 7df28000-7e046000 Deferred ucrtbase<elf> -PE 7df60000-7e046000 \ ucrtbase ELF 7e06b000-7e072000 Deferred libxxf86vm.so.1 ELF 7e07e000-7e147000 Deferred winmm<elf> -PE 7e090000-7e147000 \ winmm ELF 7e147000-7e197000 Deferred dsound<elf> -PE 7e150000-7e197000 \ dsound ELF 7e197000-7e22f000 Deferred rpcrt4<elf> -PE 7e1b0000-7e22f000 \ rpcrt4 ELF 7e22f000-7e39e000 Deferred ole32<elf> -PE 7e260000-7e39e000 \ ole32 ELF 7e39e000-7e3c3000 Deferred imm32<elf> -PE 7e3b0000-7e3c3000 \ imm32 ELF 7e3c3000-7e521000 Deferred comctl32<elf> -PE 7e3e0000-7e521000 \ comctl32 ELF 7e521000-7e585000 Deferred dinput<elf> -PE 7e530000-7e585000 \ dinput ELF 7e585000-7e714000 Deferred wined3d<elf> -PE 7e5d0000-7e714000 \ wined3d ELF 7e714000-7e791000 Deferred ddraw<elf> -PE 7e730000-7e791000 \ ddraw ELF 7e791000-7e86a000 Deferred msvcrt<elf> -PE 7e7c0000-7e86a000 \ msvcrt ELF 7e86a000-7e8ef000 Deferred advapi32<elf> -PE 7e880000-7e8ef000 \ advapi32 ELF 7e8ef000-7ea49000 Deferred gdi32<elf> -PE 7e910000-7ea49000 \ gdi32 ELF 7ea49000-7ec82000 Deferred user32<elf> -PE 7ea70000-7ec82000 \ user32 ELF 7ee03000-7eeb1000 Deferred kernelbase<elf> -PE 7ee20000-7eeb1000 \ kernelbase ELF 7eee6000-7efdb000 Deferred libm.so.6 ELF 7efdd000-7efe2000 Deferred libxau.so.6 ELF 7efe9000-7f000000 Deferred version<elf> -PE 7eff0000-7f000000 \ version ELF f7370000-f7374000 Deferred libxinerama.so.1 ELF f737c000-f7381000 Deferred libdl.so.2 ELF f7381000-f755c000 Deferred libc.so.6 ELF f755c000-f757b000 Deferred libpthread.so.0 ELF f75a0000-f7757000 Dwarf libwine.so.1 ELF f7759000-f7781000 Deferred ld-linux.so.2 Threads: process tid prio (all id:s are in hex) 00000008 CBase11.exe 00000065 -1 00000062 0 00000009 1 0000000e services.exe 00000020 0 0000001b 0 00000013 0 00000010 0 0000000f 0 00000011 winedevice.exe 00000018 0 00000017 0 00000016 0 00000012 0 00000019 plugplay.exe 0000001d 0 0000001c 0 0000001a 0 0000001e winedevice.exe 00000026 0 00000023 0 00000022 0 00000021 0 0000001f 0 00000024 explorer.exe 00000031 0 00000030 0 0000002f 0 00000025 0 00000066 (D) C:\Program Files\HeadOverHeels\HoH.exe 00000070 0 0000006d 0 0000006c 15 0000006b 0 0000006a 1 00000069 0 <== 00000068 0 00000067 0 System information: Wine build: wine-4.17 Platform: i386 (WOW64) Version: Windows Vista Host system: Linux Host version: 4.12.14-lp151.28.20-default
https://bugs.winehq.org/show_bug.cgi?id=47965
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
--- Comment #1 from Fabian Maurer dark.shadow4@web.de --- Did you try in a clean WINEPREFIX? Can you do a regression test, see https://wiki.winehq.org/Regression_Testing?
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #2 from David dav75uk@yahoo.co.uk --- I don't have the time to do regression testing, but I have some older versions of wine available going back to 4.11, I might put 4.11 on at some point and see if it works back then, if so I'll increment until it breaks.
https://bugs.winehq.org/show_bug.cgi?id=47965
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEEDINFO Summary|Regression: Head Over Heels |Head Over Heels crashes |crashes |
--- Comment #3 from Ken Sharp imwellcushtymelike@gmail.com --- A regression test is required BEFORE logging a bug report.
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #4 from David dav75uk@yahoo.co.uk --- Given the capitals used in that last reply which came across unfriendly I think this is justified.
Woah woah, hold on a minute there. I realise you're a volunteer, but I'm a member of the public, unconnected with wine aside being a user of it, and I'd like to see wine work better and obviously I get more utility of it working better as the software I run with it will also work better. Thus I inform the project of problems I find in the hope that it at least indicates there is a problem and given this now broken game was free software until not long ago and there is no legal problem owning this game if you can find (likely) a free download still, it is possible for others to test and probably others maybe will have seen this issue or something similar with the software they run.
I have a very busy life and real clients of my own which pay money and they expect results, so my time gets focused there and the time I have left is focused on my own relaxation, my family and hobbies. If I get the time to do some regression testing (which to be fair is not a five minute job or an hour job even), and I'm probably only therefore likely to get time to track it to a version rather than a commit I will do so and upload the logs at that point. If this is no good for you, then I just won't bother. If wine developers can't write proper comprehensive tests so they don't break stuff every other version that is not my problem.
I suggest a rethink and be grateful for any support you do get from your users even if it's perhaps not as full and comprehensive as you'd like it to be. Thank you for free software, but you shouldn't be expecting users to do investigation work and should be happy at least for a bug report which might cross reference with something. If you want my time right away rather than when I can donate some, I will send my day rate across.
</rant>
https://bugs.winehq.org/show_bug.cgi?id=47965
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |leslie_alistair@hotmail.com
--- Comment #5 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- (In reply to David from comment #0)
0067:err:winediag:wined3d_dll_init Disabling 3D support.
Can you please check the registry key HKCU\Software\Wine\AppDefaults\HoH.exe\Direct3D\renderer or DirectDrawRenderer
It would appear you have 3d rendering disabled.
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #6 from Austin English austinenglish@gmail.com --- (In reply to Ken Sharp from comment #3)
A regression test is required BEFORE logging a bug report.
It's not, but it's highly encouraged.
To David's point, most of us are volunteers, and users also have limited time. But since most volunteers likely don't care about your particular program, your issue is much more likely to get attention if the user runs the regression test. Depending on a volunteer group not only for free software, but to also spend particularly dedicated time to a program they don't know or care about is unlikely to yield the expected results.
Regardless, be nice people. We all want wine to be better, no need to attach each other.
https://bugs.winehq.org/show_bug.cgi?id=47965
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #7 from David dav75uk@yahoo.co.uk --- Absolutely. I can understand that fixing a possible esoteric bug in a piece of software which is not commonly used may take a lower priority and any work done by the user may expedite a fix. I've worked on free software before and understand the pressures of finding time to work on it and satisfying users with their must fix issues which are often little more than it doesn't work. I'll have a try toggling the registry key as suggested to see if it works.
As for regression testing, you can understand having to get wine to build, install it in a clean wine prefix and binary chop down is a very slow and tedious process. Thus unless it's a real disaster not many will have the time and will to attempt it. Anything that could be done to automate it so that the only real input the user need do is test their software when prompted and indicate whether it passed or failed would be a great productivity boost.
I was being a little 'tongue in check' by suggesting that testing could be better. I realise that getting Windows compatibility without looking at the source and difficult APIs in such a complex project is extremely difficult. However, awaiting major releases because they might be more stable at least for the software I commonly use probably isn't an option either as not too many others will be using it so better to upgrade every version which may run into temporary bugs too.
But once again, thanks for the free software and the effort that is put in.
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #8 from David dav75uk@yahoo.co.uk --- I couldn't find that path, but if I search in regedit for renderer I get HKEY_USERS->S-1-5-21-0-0-0-1000-Software-Wine-Direct3D where DirectDrawRenderer has the value gdi.
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #9 from David dav75uk@yahoo.co.uk --- It might also be a possibility that my rpm for openSuSE isn't checking some prerequisite as I've not run this piece of software since I last upgraded openSuSE and thus could be missing a library or config maybe?
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #10 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- (In reply to Alistair Leslie-Hughes from comment #5)
(In reply to David from comment #0)
0067:err:winediag:wined3d_dll_init Disabling 3D support.
Can you please check the registry key HKCU\Software\Wine\AppDefaults\HoH.exe\Direct3D\renderer or DirectDrawRenderer
It would appear you have 3d rendering disabled.
Cool, try removing/renaming this key and try again.
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #11 from Henri Verbeet hverbeet@gmail.com --- (In reply to David from comment #7)
time and will to attempt it. Anything that could be done to automate it so that the only real input the user need do is test their software when prompted and indicate whether it passed or failed would be a great productivity boost.
In case it helps, it's indeed not entirely trivial to build Wine yourself the first time, mostly because of 32-bit dependencies. Once you have that working though, git bisect does end up being mostly a matter of marking builds as either "good" or "bad". Also, you can run Wine from the build tree, no need to install for a bisect.
To your other point, the bug tracker isn't the ideal place for having that discussion, but I can say that many Wine developers would agree with the position that with very few exceptions, anyone reporting a bug in the bug tracker is doing the project a favour, and being rude to the people reporting those bugs is harmful to the project.
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #12 from David dav75uk@yahoo.co.uk --- Unfortunately that didn't fix it, which is probably not surprising as it's a 2D isometric game. However it did fix the problem I had with the 3D board in ChessBase so will get appdb updated and close that bug.
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #13 from David dav75uk@yahoo.co.uk --- (that's https://bugs.winehq.org/show_bug.cgi?id=43025 ) which can be closed
https://bugs.winehq.org/show_bug.cgi?id=47965
Andrew Eikum aeikum@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |aeikum@codeweavers.com
--- Comment #14 from Andrew Eikum aeikum@codeweavers.com --- Created attachment 66238 --> https://bugs.winehq.org/attachment.cgi?id=66238 +ddraw,+d3d log
I am able to reproduce this problem with Wine 5.0-rc5, using Head Over Heels as shipped on Steam. However, it's inconsistent. About 1 in 4 launches, the game will actually launch and work. So maybe a race condition.
Attached is a +d3d,+ddraw log. Possibly relevant warnings:
0009:warn:ddraw:ddraw_attach_d3d_device No window for the Direct3DDevice, created hidden window 00030042. 0009:warn:ddraw:ddraw_attach_d3d_device No window for the Direct3DDevice, created hidden window 00040042. 0030:warn:d3d:wined3d_texture_gl_load_texture Trying to load a texture from sysmem, but no simple location is valid. 0030:warn:d3d:wined3d_texture_load_location Operation requires 0x2 access, but texture only has 0x1. 0030:warn:d3d:wined3d_texture_check_box_dimensions Box (520, 294, 0)-(520, 294, 1) is invalid. 0030:warn:d3d:texture_resource_sub_resource_map Map box is invalid. 0030:warn:d3d:wined3d_texture_check_box_dimensions Box (0, 0, 0)-(0, 0, 1) is invalid. 0030:warn:d3d:texture_resource_sub_resource_map Map box is invalid.
$ md5sum HoH.exe a6e6e56b044c374800d74338da93873a HoH.exe
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #15 from Andrew Eikum aeikum@codeweavers.com --- Created attachment 66239 --> https://bugs.winehq.org/attachment.cgi?id=66239 successful log with +d3d,+ddraw
And here is a log of a successful run. Notably, some of those warnings are gone:
0009:warn:ddraw:ddraw_attach_d3d_device No window for the Direct3DDevice, created hidden window 00030042. 0009:warn:ddraw:ddraw_attach_d3d_device No window for the Direct3DDevice, created hidden window 00040042. 0032:warn:d3d:wined3d_texture_gl_load_texture Trying to load a texture from sysmem, but no simple location is valid. 0032:warn:d3d:wined3d_texture_load_location Operation requires 0x2 access, but texture only has 0x1. 0038:warn:ddraw:DllMain DirectDraw object 00C5A898 has reference counts {0, 0, 0, 1, 0}. 0038:warn:ddraw:DllMain Surface 0204E370 has reference counts {0, 0, 0, 1, 0, 0}. 0038:warn:ddraw:DllMain Surface 0204DFA8 has reference counts {0, 0, 0, 1, 0, 0}.
https://bugs.winehq.org/show_bug.cgi?id=47965
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gofmanp@gmail.com
--- Comment #16 from Paul Gofman gofmanp@gmail.com --- Created attachment 66242 --> https://bugs.winehq.org/attachment.cgi?id=66242 poc hack
I've tested the game and could reliably reproduce the problem (under Gnome WM which might be important).
First of all, it doesn't look like a regression to me, at least relatively recent one. The problem is reproducible with stable 4.0 Wine version.
The crash is triggered by the game window proc receiving WM_PAINT with empty clip rectangle, that is, when rcPaint in PAINTSTRUCT returned from BeginPaint() contains zero rectangle. The game maps a ddraw surface, and if rcPaint is zero it gets confused by that and accesses the mapped surface past end the surface size (640x480).
The game does not crash if Wine is run with 'Emulate Windows desktop' set in winecfg. Another workaround is to disable 'Allow the window manager to control the windows'. It also doesn't crash if previously configured to work in fullscreen mode. Also when I use LXDE instead of Gnome I can start the game without virtual desktop most of the time, while sometimes it still crashes.
I have identified two cases when game receives a "bad" paint request when run without workaround mentioned above:
1. WM expose even processing in winex11.drv/event.c:X11DRV_Expose(), when event x y are 0 and event width, height are 1.
2. MoveWindow() called from application itself to move the window to the center of the screen. What probably makes the difference with LXDE is that I get the game window already centered at start (unlike that with Gnome when I get the window in the upper left corner first and it is always moved).
I am attaching the patch which hacks around these two cases, with this patch applied I could not reproduce the crashes.
Summarizing all this, I am not sure these results point to exact root cause of the issue, though probably explain what it is about. It doesn't look like a regression introduced during the last development cycle, the issue is probably much older.
Maybe there is a room for further digging on what is the difference in message sequence / details in respect to MoveWindow. It looks though that the source of the difference comes from WM interference.
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #17 from David dav75uk@yahoo.co.uk --- Interesting. This used to be a problem where the retrospec version would often fail at start up but occasionally work. The problem seemed to go away. Maybe it never was fixed just the timing changed.
https://bugs.winehq.org/show_bug.cgi?id=22065
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #18 from David dav75uk@yahoo.co.uk --- I tried 10-15 times and couldn't start it. I'm running it under KDE on OpenSuse Leap 15.1 if that helps.
Of course the steam version might be slightly different to the retrospec version.
https://bugs.winehq.org/show_bug.cgi?id=47965
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |user32 Keywords| |patch
https://bugs.winehq.org/show_bug.cgi?id=47965
Alex Henrie alexhenrie24@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alexhenrie24@gmail.com Keywords|regression |
https://bugs.winehq.org/show_bug.cgi?id=47965
--- Comment #19 from David dav75uk@yahoo.co.uk --- Just to note this is currently working using 8.0-rc1 on OpenSuse 15.3 currently with winetricks gdiplus.dll (from a different bug test).
The only thing to note is that when quitting the game from the ingame menu you get the message:
'The futex facility returned an unexpected error code.'