https://bugs.winehq.org/show_bug.cgi?id=51512
Bug ID: 51512 Summary: "Warning forever" game doesn't start, crashes Product: Wine Version: 6.12 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: pezcurrel@tiscali.it Distribution: ---
Trying to run "Warning forever" (http://www.hikware.com/Prod/index.html#wf) with Wine 6.12, it crashes soon after the configuration dialog.
0024:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION 0024:fixme:ddraw:ddraw7_Initialize Ignoring guid {aeb2cdd4-6e41-43ea-941c-8361cc760781}. wine: Unhandled division by zero at address 0040C108 (thread 0024), starting debugger... Unhandled exception: divide by zero in 32-bit code (0x0040c108). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:0040c108 ESP:0032fd8c EBP:00000000 EFLAGS:00210206( R- -- I - -P- ) EAX:00000100 EBX:00000100 ECX:0032fbf0 EDX:00000000 ESI:00541520 EDI:00000000 Stack dump: 0x0032fd8c: 00467538 00467328 0032ff30 00000001 0x0032fd9c: ffffffff fffffc00 00467ec0 0045f430 0x0032fdac: 00451fdc 01000100 04000020 00e63b60 0x0032fdbc: 0032fde0 00450308 00000000 00401291 0x0032fdcc: 004512c8 00000000 004018da 00467538 0x0032fddc: 00467538 0032ff20 0044fedb ffffffff Backtrace: =>0 0x0040c108 EntryPoint+0xffffffff() in wf (0x00000000) 0x0040c108 EntryPoint+0xffffffff in wf: idivl 0x44(%esp),%eax Modules: Module Address Debug info Name (28 modules) PE 400000- 46c000 Export wf PE 580000- 6b1000 Deferred ole32 PE 6c0000- 826000 Deferred comctl32 PE 61740000-61782000 Deferred advapi32 PE 62fc0000-6304f000 Deferred rpcrt4 PE 63480000-6348c000 Deferred version PE 64ec0000-64feb000 Deferred oleaut32 PE 67d40000-67d6c000 Deferred mmdevapi PE 682c0000-6831d000 Deferred dsound PE 68500000-6855b000 Deferred combase PE 68700000-6872e000 Deferred uxtheme PE 697c0000-69840000 Deferred ddraw PE 6a040000-6a062000 Deferred msacm32 PE 6a400000-6a4bc000 Deferred winmm PE 6bc00000-6bc2a000 Deferred sechost PE 6bcc0000-6bd40000 Deferred setupapi PE 6c9c0000-6cc52000 Deferred gdi32 PE 6ed00000-6ef24000 Deferred user32 PE 70b40000-70c1f000 Deferred ucrtbase PE 71200000-7121b000 Deferred imm32 PE 7a840000-7a844000 Deferred opengl32 PE 7b000000-7b0e8000 Deferred kernelbase PE 7b600000-7b81b000 Deferred kernel32 PE 7bc00000-7bc9f000 Deferred ntdll PE 7d800000-7d803000 Deferred winealsa PE 7e160000-7e164000 Deferred winex11 PE 7e800000-7e80b000 Deferred dinput PE 7e890000-7e894000 Deferred wined3d Threads: process tid prio (all id:s are in hex) 00000020 (D) Z:\sharing\windos\giochiwin\WarningForever\wf.exe 00000024 0 <== 000000ec 0 00000118 0 0000011c 0 00000120 15 00000124 0 00000128 15 00000134 0 00000030 services.exe 00000034 0 00000038 0 00000080 0 000000b4 0 00000044 explorer.exe 00000048 0 00000054 0 00000078 winedevice.exe 0000007c 0 00000088 0 0000008c 0 00000090 0 000000ac winedevice.exe 000000b0 0 000000b8 0 000000bc 0 000000c0 0 000000c4 0 000000c8 0 000000d4 0 000000d8 conhost.exe 000000dc 0 System information: Wine build: wine-6.12 Platform: i386 (WOW64) Version: Windows 7 Host system: Linux Host version: 5.12.15-arch1-1
https://bugs.winehq.org/show_bug.cgi?id=51512
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
--- Comment #1 from Fabian Maurer dark.shadow4@web.de --- Seems to work perfectly fine for me. Did you use the latest version of the game?
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #2 from pezcurrel pezcurrel@tiscali.it --- (In reply to Fabian Maurer from comment #1)
Seems to work perfectly fine for me. Did you use the latest version of the game?
Yep, I used v1.08 from here: http://www.hikware.com/Prod/dlcount.cgi?product=wf
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #3 from Fabian Maurer dark.shadow4@web.de --- Did you use a clean WINEPREFIX? Also, what distro are you on?
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #4 from pezcurrel pezcurrel@tiscali.it --- (In reply to Fabian Maurer from comment #3)
Did you use a clean WINEPREFIX? Also, what distro are you on?
Yes, I tried with a clean WINEPREFIX. The distro is an up-to-date Arch Linux.
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #5 from pezcurrel pezcurrel@tiscali.it --- Meanwhile, Arch's Wine has been updated from 6.12 to 6.14, but I still have the issue.
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #6 from Fabian Maurer dark.shadow4@web.de --- That's weird, because I too have the latest Arch Linux..
Stupid question, does "LIBGL_ALWAYS_SOFTWARE=1 wine wf" work? Also, did you try different configurations? Maybe select keyboard and unplug the gamepad?
Also, could you perhaps provide a WINEDEBUG=+relay log?
https://bugs.winehq.org/show_bug.cgi?id=51512
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #7 from joaopa jeremielapuree@yahoo.fr --- Works fine for me with wine-6.18.
https://bugs.winehq.org/show_bug.cgi?id=51512
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEEDINFO Ever confirmed|0 |1
--- Comment #8 from Fabian Maurer dark.shadow4@web.de --- Please retest. We can't reproduce the issue.
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #9 from pezcurrel pezcurrel@tiscali.it --- I tried again, same issue. Here you can download a debug log I did with "LIBGL_ALWAYS_SOFTWARE=1 WINEDEBUG=+relay wine wf.exe": https://drive.google.com/file/d/1TEh8ch-NUsneRqOAUB-xUSjMxWwDvkVs/view?usp=s...
https://bugs.winehq.org/show_bug.cgi?id=51512
Louis Lenders xerox.xerox2000x@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |xerox.xerox2000x@gmail.com
--- Comment #10 from Louis Lenders xerox.xerox2000x@gmail.com --- (In reply to pezcurrel from comment #9)
I tried again, same issue. Here you can download a debug log I did with "LIBGL_ALWAYS_SOFTWARE=1 WINEDEBUG=+relay wine wf.exe": https://drive.google.com/file/d/1TEh8ch-NUsneRqOAUB-xUSjMxWwDvkVs/ view?usp=sharing
Just to rule out a possible cause:
Does disabling sound by disabling winealsa.drv or mmdevapi change anything?
WINEDLLOVERRIDES=winealsa.drv=d wine wf.exe
or
WINEDLLOVERRIDES=mmdevapi=d wine wf.exe
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #11 from Fabian Maurer dark.shadow4@web.de --- I looked at the crashing instruction, and it seems to affect the loaded bitmaps. Not sure why it divides by zero, for me it is a divide by one.
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #12 from pezcurrel pezcurrel@tiscali.it --- (In reply to Louis Lenders from comment #10)
(In reply to pezcurrel from comment #9)
I tried again, same issue. Here you can download a debug log I did with "LIBGL_ALWAYS_SOFTWARE=1 WINEDEBUG=+relay wine wf.exe": https://drive.google.com/file/d/1TEh8ch-NUsneRqOAUB-xUSjMxWwDvkVs/ view?usp=sharing
Just to rule out a possible cause:
Does disabling sound by disabling winealsa.drv or mmdevapi change anything?
WINEDLLOVERRIDES=winealsa.drv=d wine wf.exe
or
WINEDLLOVERRIDES=mmdevapi=d wine wf.exe
Nope. Could it be useful if I tried with both? How could I? I tried with "WINEDLLOVERRIDES=winealsa.drv=d WINEDLLOVERRIDES=mmdevapi=d wine wf.exe" but I really think it's not correct.
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #13 from pezcurrel pezcurrel@tiscali.it --- (In reply to Fabian Maurer from comment #11)
I looked at the crashing instruction, and it seems to affect the loaded bitmaps. Not sure why it divides by zero, for me it is a divide by one.
I really don't know, I tried with another pc of mine and it works. Both pcs have an intel cpu, but the other also has intel graphics, while this one (the failing one) has nvidia, could it be related?
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #14 from pezcurrel pezcurrel@tiscali.it --- (In reply to pezcurrel from comment #13)
(In reply to Fabian Maurer from comment #11)
I looked at the crashing instruction, and it seems to affect the loaded bitmaps. Not sure why it divides by zero, for me it is a divide by one.
I really don't know, I tried with another pc of mine and it works. Both pcs have an intel cpu, but the other also has intel graphics, while this one (the failing one) has nvidia, could it be related?
Yep: I tried with nouveau driver instead of nvidia proprietary driver and it works.
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #15 from Fabian Maurer dark.shadow4@web.de --- Created attachment 71613 --> https://bugs.winehq.org/attachment.cgi?id=71613 Hack for the waf.exe
Interesting, someone else has NVIDIA proprietary driver here?
Could you try this patch on top of waf.exe? Just "git apply 0001-waf-hack.patch" This just turns the "divide by zero" into a "divide by one" and I'm curious as to what happens.
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #16 from Fabian Maurer dark.shadow4@web.de --- Say, could you please attach a +ddraw log?
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #17 from pezcurrel pezcurrel@tiscali.it --- Created attachment 71618 --> https://bugs.winehq.org/attachment.cgi?id=71618 +ddraw debug log
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #18 from pezcurrel pezcurrel@tiscali.it --- Did it.
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #19 from pezcurrel pezcurrel@tiscali.it --- (In reply to Fabian Maurer from comment #15)
Created attachment 71613 [details] Hack for the waf.exe
Interesting, someone else has NVIDIA proprietary driver here?
Could you try this patch on top of waf.exe? Just "git apply 0001-waf-hack.patch" This just turns the "divide by zero" into a "divide by one" and I'm curious as to what happens.
I'd rather apply a more human readable patch :)
https://bugs.winehq.org/show_bug.cgi?id=51512
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|"Warning forever" game |"Warning forever" game |doesn't start, crashes |crashes on start with | |proprietary NVIDIA drivers Status|NEEDINFO |NEW
--- Comment #20 from Fabian Maurer dark.shadow4@web.de ---
0024:trace:ddraw:ddraw7_CreateSurface iface 004883C0, surface_desc 0032FCF8, surface 00467EC8, outer_unknown 00000000. 0024:trace:ddraw:ddraw_surface_create ddraw 004883C0, surface_desc 0032FCF8, surface 0032FC54, outer_unknown 00000000, version 7. 0024:trace:ddraw:ddraw_surface_create Requesting surface desc: 0024:trace:ddraw:DDRAW_dump_members - DDSD_CAPS : DDSCAPS_TEXTURE 0024:trace:ddraw:DDRAW_dump_members - DDSD_HEIGHT : 1 0024:trace:ddraw:DDRAW_dump_members - DDSD_WIDTH : 1
Well, that at least shows the problem: The game tries to create textures with the wrong height/width. For me, it's 256x256, not 1x1. Although I don't know where it gets the wrong dimensions from, according to what I know it does the following:
1) open data.bin (you can extract it with binwalk) 2) find and open png 3) read png manually 4) call ddraw7_CreateSurface repeat for all textures.
A +relay log shows it does read the png but doesn't call any interesting WINAPI functions. Really not sure how the driver can change that.
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #21 from Fabian Maurer dark.shadow4@web.de --- Created attachment 71627 --> https://bugs.winehq.org/attachment.cgi?id=71627 Snippet of a +all log showing how a texture is read
Adding a partial +all log that should show how the PNG is turned into a texture.
https://bugs.winehq.org/show_bug.cgi?id=51512
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.hikware.com/Arch | |ive/wf108.zip
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #22 from Fabian Maurer dark.shadow4@web.de --- I'm running out of ideas here. Could you provide a +all trace? Shouldn't get *too* big since it crashes soon...
Anyways, does it show a window for you at all or does it crash before?
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #23 from Fabian Maurer dark.shadow4@web.de --- Out of curiosity, does it work with older wine (e.g. 4.0), especially when using the DirectDrawRenderer registry key set to gdi ?
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #24 from pezcurrel pezcurrel@tiscali.it --- (In reply to Fabian Maurer from comment #22)
I'm running out of ideas here. Could you provide a +all trace? Shouldn't get *too* big since it crashes soon...
Here it is: https://drive.google.com/file/d/1tcwfduqWdwA3pckXOaTglL4qLeS2vxVd/view?usp=s...
Anyways, does it show a window for you at all or does it crash before?
Yes, it shows the config window, then the game window, all black, and the wine error window.
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #25 from pezcurrel pezcurrel@tiscali.it --- (In reply to Fabian Maurer from comment #23)
Out of curiosity, does it work with older wine (e.g. 4.0), especially when using the DirectDrawRenderer registry key set to gdi ?
Sorry, I'd rather not download and build older wine.
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #26 from Fabian Maurer dark.shadow4@web.de --- Any news on this, did anything change with current wine?
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #27 from pezcurrel pezcurrel@tiscali.it --- (In reply to Fabian Maurer from comment #26)
Any news on this, did anything change with current wine?
Nope (wine 7.7)
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #28 from Fabian Maurer dark.shadow4@web.de --- Created attachment 72364 --> https://bugs.winehq.org/attachment.cgi?id=72364 Test patch to "fix" texture issues
Thanks for the quick answer. I got an idea what could be the reason, could you try the attached patch? Does this make it work using the official NVIDIA driver?
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #29 from pezcurrel pezcurrel@tiscali.it --- I can, but i don't know when, i don't have much time in these days, but i think i'll succeed doing it during this week :)
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #30 from Fabian Maurer dark.shadow4@web.de --- Any news on this?
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #31 from Gijs Vermeulen gijsvrm@gmail.com --- (In reply to Fabian Maurer from comment #28)
Created attachment 72364 [details] Test patch to "fix" texture issues
Thanks for the quick answer. I got an idea what could be the reason, could you try the attached patch? Does this make it work using the official NVIDIA driver?
I can confirm a crash with wine-7.9-35-g9e034dc103b and this patch fixes the crash for me. I'm running a GTX 1080Ti with drivers 515.43.04.
https://bugs.winehq.org/show_bug.cgi?id=51512
temp82@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |temp82@luukku.com
--- Comment #32 from temp82@luukku.com --- i tried the download with wine 7.9 and amd GPU and mesa driver. works here with no issues, I just thought if it could be narrowed at NVIDIA issue.
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #33 from Fabian Maurer dark.shadow4@web.de --- Perfect, thanks you. That proves my theory. The game seems to blindly assume the maximum texture size can fit a 16bit integer. Your GPU is too new, allowing 32768x32768. Which is one too big for a 16bit integer, causing sign overflow.
Could you please check if the proper fix also helps? See https://gitlab.winehq.org/wine/wine/-/merge_requests/126
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #34 from pezcurrel pezcurrel@tiscali.it --- (In reply to Fabian Maurer from comment #33)
Perfect, thanks you. That proves my theory. The game seems to blindly assume the maximum texture size can fit a 16bit integer. Your GPU is too new, allowing 32768x32768. Which is one too big for a 16bit integer, causing sign overflow.
Could you please check if the proper fix also helps? See https://gitlab.winehq.org/wine/wine/-/merge_requests/126
Sorry for the delay. I tried both the patch in this thread and the proper fix and they both work. Thank you so much. Can you make an estimation of when the proper fix will be merged into the official wine?
https://bugs.winehq.org/show_bug.cgi?id=51512
--- Comment #35 from Fabian Maurer dark.shadow4@web.de --- Sorry, I don't know. It needs more work, and my patches always takev ery long to be accepted anyways...