ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.34k stars 1.02k forks source link

Franchise Hockey Manager 10 (2384610) #7552

Open Pieman711 opened 4 months ago

Pieman711 commented 4 months ago

Compatibility Report

System Information Steam deck without modification

I confirm:

steam-2384610.log

Symptoms

The game runs fine, unless you try to watch a simulated ice hockey match. It then crashes completely.

I wonder if the issue is to do with the text to speech API this is the start of the backtrace: =>0 0x0000000003ee4774 EntryPoint+0xffffffffffffffff() in qtexttospeech_sapi (0x0000000000219d39)

It looks like text to speech was added for the part of the game where it crashes in the iteration of the game prior to this one (FHM9)

Reproduction

This is fully reproduceable. It happens on my steam deck and on my PC.

Steps to reproduce: Happens any time a game is "watched" rather than autosimulated but the quickest way to reproduce is: start game select "new exhibition game" click play click continue click play game

this is when it crashes

I've also attached a log where the programme hasn't crashed (opened and closed the game properly without attempting to watch a game).

steam-2384610_NO_CRASH.log

Here is the part of the log from the unhandled exception from when it did crash: ``` 546.817:00b8:00bc:trace:module:LdrGetDllHandle L"C:\\windows\\system32\\steamclient64.dll" -> 0x64c80000 (load path L"Z:\\media\\data\\steamlibrary\\steamapps\\common\\Franchise Hockey Manager 10;C:\\windows\\system32;C:\\windows\\system;C:\\windows;C:\\Program Files (x86)\\Steam;.;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem;C:\\windows\\system32\\WindowsPowershell\\v1.0") Unhandled exception: page fault on read access to 0x00000000 in 64-bit code (0x0000000003ee4774). 546.824:0188:018c:fixme:dbghelp:elf_search_auxv can't find symbol in module 546.853:0188:018c:fixme:dbghelp:interpret_function_table_entry PUSH_MACHFRAME 6 546.854:0188:018c:fixme:dbghelp:interpret_function_table_entry PUSH_MACHFRAME 6 Register dump: rip:0000000003ee4774 rsp:0000000000219c90 rbp:0000000000219d39 eflags:00010206 ( R- -- I - -P- ) rax:0000000080004001 rbx:00000000128ba8f0 rcx:00000000128ba8f0 rdx:0000000000219e40 rsi:0000000001478f80 rdi:0000000000000000 r8:0000000000000000 r9:0000000000000030 r10:0000000000000010 r11:0000000000000000 r12:0000000000219e90 r13:000000000021a3a8 r14:0000000000219ef0 r15:0000000141373270 Stack dump: 0x0000000000219c90: 0000000000000000 0000000000000000 0x0000000000219ca0: 0000000000000000 0000000000000000 0x0000000000219cb0: 00000000014600a8 0000000000000000 0x0000000000219cc0: 0000000000000000 000000000ea70000 0x0000000000219cd0: 0000000000000000 0000000000000000 0x0000000000219ce0: 0000000000000000 0000000000000000 0x0000000000219cf0: 0000000000000000 0000000000000000 0x0000000000219d00: 0000000000000000 0000000000000000 0x0000000000219d10: 0000000000000000 0000000000000000 0x0000000000219d20: 0000000000000000 0000000000000000 0x0000000000219d30: 0000000000000000 0000000000000000 0x0000000000219d40: 00000000128ba8f0 0000000000219e90 Backtrace: =>0 0x0000000003ee4774 EntryPoint+0xffffffffffffffff() in qtexttospeech_sapi (0x0000000000219d39) 1 0x0000000003ee2231 EntryPoint+0xffffffffffffffff() in qtexttospeech_sapi (0x0000000000219fb0) 2 0x0000000003ee148d EntryPoint+0xffffffffffffffff() in qtexttospeech_sapi (0x0000000000219fb0) 3 0x00000000011119cc EntryPoint+0xffffffffffffffff() in qt5texttospeech (0x0000000000219fb0) 4 0x0000000140c988b7 in fhm10 (+0xc988b6) (0x0000000000219fb0) 0x0000000003ee4774 EntryPoint+0xffffffffffffffff in qtexttospeech_sapi: movq (%r8),%rax Modules: Module Address Debug info Name (181 modules) PE 220000- 2b2000 Deferred msvcp140 PE 2c0000- 2d9000 Deferred vcruntime140 PE 2e0000- 2e4000 Deferred api-ms-win-crt-heap-l1-1-0 PE 2f0000- 2fc000 Deferred vcruntime140_1 PE 300000- 916000 Deferred qt5gui PE 920000- 958000 Deferred qt5sql PE 960000- 9b6000 Deferred qt5opengl PE 9c0000- f05000 Deferred qt5widgets PE f10000- 1047000 Deferred qt5network PE 1050000- 1109000 Deferred qt5multimedia PE 1110000- 1121000 Export qt5texttospeech PE 1570000- 16d6000 Deferred qwindows PE 1d60000- 1d6f000 Deferred qico PE 1d70000- 1d7f000 Deferred qgif PE 1d80000- 1d91000 Deferred qicns PE 1da0000- 1dae000 Deferred qwbmp PE 2440000- 2499000 Deferred qjpeg PE 24a0000- 2523000 Deferred qwebp PE 2650000- 2665000 Deferred qtaudio_windows PE 3d60000- 3df7000 Deferred openvr_api_dxvk PE 3ee0000- 3ef2000 Export qtexttospeech_sapi PE 61540000- 61544000 Deferred api-ms-win-crt-locale-l1-1-0 PE 620c0000- 620c4000 Deferred api-ms-win-crt-filesystem-l1-1-0 PE 62140000- 62145000 Deferred uxtheme PE 62240000- 624c8000 Deferred d3d9 PE 63140000- 63145000 Deferred api-ms-win-crt-runtime-l1-1-0 PE 637c0000- 6383f000 Deferred winmm PE 638c0000- 638c5000 Deferred dwmapi PE 64340000- 64347000 Deferred winhttp PE 64940000- 64945000 Deferred shcore PE 64c80000- 64c84000 Deferred steamclient64 PE 64d40000- 64d47000 Deferred vulkan-1 PE 65000000- 6502c000 Deferred ole32 PE 65780000- 65785000 Deferred version PE 66440000- 6644a000 Deferred msacm32 PE 67d00000- 67d04000 Deferred userenv PE 68a40000- 68a4f000 Deferred shlwapi PE 68ac0000- 68ac4000 Deferred api-ms-win-crt-time-l1-1-0 PE 69380000- 69385000 Deferred api-ms-win-crt-stdio-l1-1-0 PE 69b80000- 69b84000 Deferred api-ms-win-crt-environment-l1-1-0 PE 6a100000- 6a10d000 Deferred oleaut32 PE 6a4c0000- 6a4c4000 Deferred api-ms-win-crt-utility-l1-1-0 PE 6a700000- 6a717000 Deferred setupapi PE 6b880000- 6b884000 Deferred api-ms-win-core-fibers-l1-1-1 PE 6bd00000- 6bd44000 Deferred sapi PE 6bec0000- 6bec6000 Deferred imm32 PE 6d580000- 6d585000 Deferred api-ms-win-crt-convert-l1-1-0 PE 6d9c0000- 6d9cd000 Deferred mpr PE 6dd80000- 6dd85000 Deferred api-ms-win-crt-string-l1-1-0 PE 6e340000- 6e344000 Deferred api-ms-win-core-synch-l1-2-0 PE 6e6c0000- 6e6c4000 Deferred api-ms-win-core-localization-l1-2-1 PE 6eb00000- 6eb06000 Deferred wintab32 PE 6fbc0000- 6fbcb000 Deferred rpcrt4 PE 70140000- 70145000 Deferred mmdevapi PE 70580000- 70586000 Deferred api-ms-win-crt-math-l1-1-0 PE 70a00000- 70a04000 Deferred dhcpcsvc PE 71240000- 71246000 Deferred jsproxy ELF 7a800000- 7aa0a000 Deferred opengl32 \-PE 7a850000- 7aa0a000 \ opengl32 PE 7b000000- 7b013000 Deferred kernelbase ELF 7b400000- 7b682000 Deferred kernel32 \-PE 7b410000- 7b682000 \ kernel32 ELF 7bc00000- 7bf19000 Deferred ntdll \-PE 7bc20000- 7bf19000 \ ntdll ELF 7c000000- 7c003000 Deferred PE 13b400000- 13b444000 Deferred steam_api64 PE 140000000- 141e81000 Export fhm10 PE 180000000- 1805ae000 Deferred qt5core ELF 7fc5adef5000- 7fc5aed70000 Deferred libnvidia-glvkspirv.so.470.239.06 ELF 7fc5b02cd000- 7fc5b02fd000 Deferred libtinfo.so.6 ELF 7fc5b078a000- 7fc5b5f40000 Deferred libllvm-12.so.1 ELF 7fc5b5f40000- 7fc5b8000000 Deferred libnvidia-glcore.so.470.239.06 ELF 7fc5c4020000- 7fc5c4058000 Deferred libedit.so.2 ELF 7fc5c4a09000- 7fc5c4c82000 Deferred libvulkan.so.1 ELF 7fc5c4c82000- 7fc5c4cd9000 Deferred winevulkan \-PE 7fc5c4c90000- 7fc5c4cd9000 \ winevulkan ELF 7fc5c5131000- 7fc5c514e000 Deferred libxcb-glx.so.0 ELF 7fc5c514e000- 7fc5c5353000 Deferred libnvidia-tls.so.470.239.06 ELF 7fc5c5353000- 7fc5c55f6000 Deferred libnvidia-glsi.so.470.239.06 ELF 7fc5c55f6000- 7fc5c5933000 Deferred libglx_nvidia.so.0 ELF 7fc5c5979000- 7fc5c5a20000 Deferred dwrite \-PE 7fc5c5980000- 7fc5c5a20000 \ dwrite ELF 7fc5c5a27000- 7fc5c5a4a000 Deferred libgpg-error.so.0 ELF 7fc5c5a4a000- 7fc5c5af5000 Deferred libvorbisenc.so.2 ELF 7fc5c5af5000- 7fc5c5b23000 Deferred libvorbis.so.0 ELF 7fc5c5b23000- 7fc5c5b30000 Deferred libogg.so.0 ELF 7fc5c5b30000- 7fc5c5b6e000 Deferred libflac.so.8 ELF 7fc5c5b6e000- 7fc5c5c8c000 Deferred libgcrypt.so.20 ELF 7fc5c5c8c000- 7fc5c5cad000 Deferred liblz4.so.1 ELF 7fc5c5cad000- 7fc5c5cd6000 Deferred liblzma.so.5 ELF 7fc5c5cd6000- 7fc5c5edc000 Deferred libasyncns.so.0 ELF 7fc5c5edc000- 7fc5c5f5b000 Deferred libsndfile.so.1 ELF 7fc5c5f5b000- 7fc5c600a000 Deferred libsystemd.so.0 ELF 7fc5c600a000- 7fc5c605b000 Deferred libdbus-1.so.3 ELF 7fc5c605b000- 7fc5c60dd000 Deferred libpulsecommon-13.99.so ELF 7fc5c60dd000- 7fc5c6132000 Deferred libpulse.so.0 ELF 7fc5c6132000- 7fc5c6167000 Deferred winepulse \-PE 7fc5c6140000- 7fc5c6167000 \ winepulse ELF 7fc5c61b9000- 7fc5c61cf000 Deferred libdrm.so.2 ELF 7fc5c6425000- 7fc5c643a000 Deferred libapparmor.so.1 ELF 7fc5c643a000- 7fc5c6662000 Deferred libpng12.so.0 ELF 7fc5c677d000- 7fc5c8aed000 Deferred steamclient.so ELF 7fc5c8aed000- 7fc5c8e93000 Deferred lsteamclient \-PE 7fc5c8c10000- 7fc5c8e93000 \ lsteamclient ELF 7fc5c8e94000- 7fc5c8ea0000 Deferred libwrap.so.0 ELF 7fc5c8ea0000- 7fc5c8ea8000 Deferred libnss_dns.so.2 ELF 7fc5c8ea8000- 7fc5c8eae000 Deferred libnss_mdns4_minimal.so.2 ELF 7fc5c8edb000- 7fc5c8ee3000 Deferred libxfixes.so.3 ELF 7fc5c8ee3000- 7fc5c8ef0000 Deferred libxcursor.so.1 ELF 7fc5c8ef0000- 7fc5c8f02000 Deferred libxi.so.6 ELF 7fc5c8f02000- 7fc5c8f07000 Deferred libxcomposite.so.1 ELF 7fc5c8f07000- 7fc5c8f14000 Deferred libxrandr.so.2 ELF 7fc5c8f14000- 7fc5c911e000 Deferred libxrender.so.1 ELF 7fc5c911e000- 7fc5c9125000 Deferred libxxf86vm.so.1 ELF 7fc5c9125000- 7fc5c912a000 Deferred libxinerama.so.1 ELF 7fc5c912a000- 7fc5c913f000 Deferred libxext.so.6 ELF 7fc5c913f000- 7fc5c920b000 Deferred winex11 \-PE 7fc5c9150000- 7fc5c920b000 \ winex11 ELF 7fc5c920b000- 7fc5c9217000 Deferred libffi.so.7 ELF 7fc5c9217000- 7fc5c929b000 Deferred libgmp.so.10 ELF 7fc5c929b000- 7fc5c92d2000 Deferred libhogweed.so.5 ELF 7fc5c92d2000- 7fc5c930c000 Deferred libnettle.so.7 ELF 7fc5c930c000- 7fc5c9322000 Deferred libtasn1.so.6 ELF 7fc5c9322000- 7fc5c94a4000 Deferred libunistring.so.2 ELF 7fc5c94a4000- 7fc5c94c5000 Deferred libidn2.so.0 ELF 7fc5c94c5000- 7fc5c95fb000 Deferred libp11-kit.so.0 ELF 7fc5c95fb000- 7fc5c97d0000 Deferred libgnutls.so.30 ELF 7fc5c98cd000- 7fc5c98d6000 Deferred libuuid.so.1 ELF 7fc5c98d6000- 7fc5c9904000 Deferred libexpat.so.1 ELF 7fc5c9904000- 7fc5c994b000 Deferred libfontconfig.so.1 ELF 7fc5c994b000- 7fc5c9967000 Deferred libz.so.1 ELF 7fc5c9967000- 7fc5c999f000 Deferred libpng16.so.16 ELF 7fc5c999f000- 7fc5c9a5e000 Deferred libfreetype.so.6 ELF 7fc5c9a5e000- 7fc5c9a85000 Deferred bcrypt \-PE 7fc5c9a60000- 7fc5c9a85000 \ bcrypt ELF 7fc5c9a85000- 7fc5c9b8d000 Deferred crypt32 \-PE 7fc5c9a90000- 7fc5c9b8d000 \ crypt32 ELF 7fc5c9b8d000- 7fc5c9ba9000 Deferred libresolv.so.2 ELF 7fc5c9ba9000- 7fc5c9bd1000 Deferred dnsapi \-PE 7fc5c9bb0000- 7fc5c9bd1000 \ dnsapi ELF 7fc5c9bd1000- 7fc5c9d0c000 Deferred ucrtbase \-PE 7fc5c9c00000- 7fc5c9d0c000 \ ucrtbase ELF 7fc5c9d0c000- 7fc5ca758000 Deferred shell32 \-PE 7fc5c9d30000- 7fc5ca758000 \ shell32 ELF 7fc5ca758000- 7fc5ca79a000 Deferred ws2_32 \-PE 7fc5ca760000- 7fc5ca79a000 \ ws2_32 ELF 7fc5ca79a000- 7fc5ca7cd000 Deferred iphlpapi \-PE 7fc5ca7a0000- 7fc5ca7cd000 \ iphlpapi ELF 7fc5ca7cd000- 7fc5ca817000 Deferred netapi32 \-PE 7fc5ca7e0000- 7fc5ca817000 \ netapi32 ELF 7fc5ca817000- 7fc5ca9c7000 Deferred gdi32 \-PE 7fc5ca830000- 7fc5ca9c7000 \ gdi32 ELF 7fc5ca9c7000- 7fc5cac4d000 Deferred user32 \-PE 7fc5ca9f0000- 7fc5cac4d000 \ user32 ELF 7fc5cac4d000- 7fc5cad39000 Deferred msvcrt \-PE 7fc5cac70000- 7fc5cad39000 \ msvcrt ELF 7fc5cad39000- 7fc5cad7d000 Deferred sechost \-PE 7fc5cad40000- 7fc5cad7d000 \ sechost ELF 7fc5cae7d000- 7fc5caef7000 Deferred advapi32 \-PE 7fc5cae90000- 7fc5caef7000 \ advapi32 ELF 7fc5cb567000- 7fc5cb57b000 Deferred libnss_files.so.2 ELF 7fc5cb57b000- 7fc5cb598000 Deferred libnsl.so.1 ELF 7fc5cb598000- 7fc5cb5a6000 Deferred libnss_nis.so.2 ELF 7fc5cb5a6000- 7fc5cb5b2000 Deferred libnss_compat.so.2 ELF 7fc5cb7b2000- 7fc5cb7cd000 Deferred libgcc_s.so.1 ELF 7fc5cccaa000- 7fc5cccc4000 Deferred libbsd.so.0 ELF 7fc5cccc6000- 7fc5cccce000 Deferred libxdmcp.so.6 ELF 7fc5cccce000- 7fc5cccd4000 Deferred libxau.so.6 ELF 7fc5cccd4000- 7fc5cccfe000 Deferred libxcb.so.1 ELF 7fc5cccfe000- 7fc5cce3b000 Deferred libx11.so.6 ELF 7fc5cce3b000- 7fc5cce6f000 Deferred libglx.so.0 ELF 7fc5cce71000- 7fc5ccf29000 Deferred libgldispatch.so.0 ELF 7fc5ccf29000- 7fc5cd078000 Deferred libm.so.6 ELF 7fc5cd078000- 7fc5cd100000 Deferred libgl.so.1 ELF 7fc5cd100000- 7fc5cd10a000 Deferred librt.so.1 ELF 7fc5cd10a000- 7fc5cd110000 Deferred libdl.so.2 ELF 7fc5cd110000- 7fc5cd302000 Deferred libc.so.6 ELF 7fc5cd304000- 7fc5cd327000 Deferred libpthread.so.0 ELF 7fc5cd327000- 7fc5cd6c9000 Export libwine.so.1 ELF 7fc5cd6c9000- 7fc5cd71b000 Deferred gameoverlayrenderer.so ELF 7fc5cd71d000- 7fc5cd74d000 Deferred ld-linux-x86-64.so.2 Threads: process tid prio (all id:s are in hex) 00000020 steam.exe 00000090 0 00000024 0 00000030 services.exe 00000080 0 00000060 0 00000044 0 00000038 0 00000034 0 0000003c plugplay.exe 00000054 0 00000050 0 00000040 0 00000058 winedevice.exe 00000074 0 00000070 0 0000006c 0 00000068 0 00000064 0 0000005c 0 00000078 winedevice.exe 0000008c 0 00000088 0 00000084 0 0000007c 0 00000094 explorer.exe 000000ac 0 000000a8 0 0000009c 0 00000098 0 000000b8 (D) Z:\media\data\steamlibrary\steamapps\common\Franchise Hockey Manager 10\fhm10.exe 00000184 15 00000180 0 000000e0 15 000000d8 0 000000d4 0 000000c4 0 000000c0 0 000000bc 0 <== ```
kisak-valve commented 4 months ago

Hello @Pieman711, can you test how this game behaves with Proton Experimental?

Pieman711 commented 4 months ago

I've updated the report above to fill in some more details.

I've tried with proton 8 and proton eperimental. Both times it gets to the same point but instead of crashing back to steam it freeze and then I get a dialogue asking if I want to "wait" or "force quit". I don't get a log for it then. Is there anyway to get a log output even if I force quit?

with proton-GE 6 it doesn't start at all and I think this may be the error

wine: failed to open L"C:\windows\system32\steam.exe": c0000135 1362.189:00f4:00f8:trace:module:FindResourceExW 0000000140000000 #0006 #0007 0000 1362.189:00f4:00f8:trace:module:LoadResource 0000000140000000 000000014000A188 Application could not be started, or no application associated with the specified file. ShellExecuteEx failed: Module not found.

Pieman711 commented 3 months ago

I've found the problem with not getting logs when the programme freezes rather than crashes. If I use PROTON_LOG=1 rather than WINDDEBG it works properly and I get logs.

When I use Proton 8, 9 or experimental the game doesn't crash/close at that point but does hang/freeze.

The log file for this was about 300mb big, but seemed to be the same 255 lines repeating over and over. This is the output immediately before the recurring 255 lines of log:

1780.731:0124:0128:trace:loaddll:build_module Loaded L"Z:\media\data\steamlibrary\steamapps\common\Franchise Hockey Manager 10\texttospeech\qtexttospeech_sapi.dll" at 00006FFFFBB20000: native 1780.732:0124:0128:trace:loaddll:build_module Loaded L"C:\windows\system32\Speech\Common\sapi.dll" at 00006FFFFBAC0000: builtin 1780.732:0124:0128:fixme:sapi:spvoice_SetInterest (000000001407BBD8, 24000fffe, 24000fffe): stub. 1780.732:0124:0128:fixme:sapi:spvoice_SetNotifyCallbackInterface (000000001407BBD8, 0000000001A5CE90, 0, 0): stub. 1780.733:0124:0128:fixme:sapi:data_key_EnumValues stub 1780.733:0124:0128:warn:seh:OutputDebugStringW L"ISpDataKey::EnumValues failed\n"

this is the recurring lines of log output:

steam-2384610_recurring_snippet.log

I tried with the launch options: WINEDLLOVERRIDES=sapi=d nd WINEDLLOVERRIDES=sapi=N

and it would revert to the previous behaviour with the crash rather than the freeze, and the log looked like how it did with the proton 5.10 log at the top of this report.

I'm sure the issue is the text to speech part and the sapi.dll, but could wrong.

Pieman711 commented 3 months ago

I think I've cracked it!

The issue is the texttospeech dll that's included with the game. Deleting the dll file seems to stop it crashing or hanging. It means the text to speech function won't work, but it's a big improvement than not running at all.

The "fix" seems to be to remove:

qtexttospeech-sapi-dll

(or rename it qtexttospeech-sapi-dll.BACKUP)

from the path: steamlibrary\steamapps\common\Franchise Hockey Manager 10\texttospeech\

(alternatively you can use the launch option:

WINEDLLOVERRIDES=qtexttospeech-sapi-dll=d

To have the same effect)

then it appears to behave properly!

I haven't had a full play to see if there are any other errors, but if this was fixed more formally I think it would make the game 100% playable

Pieman711 commented 3 months ago

As far as I can see it now works flawlessly on my ubuntu computer, but there are some serious graphic glitches on my steam deck (players, stadium, puck, goals not displayed. It's a grey screen with a logo in the middle). Do I need to open that as a new issue or continue working through it here?

Pieman711 commented 3 months ago

More testing and pouring through logs...

I think the issue may be how the steam deck handles QPainter. I see this issue in the deck log that I don't see in the Ubuntu log (where the graphics render properly)

QPainter::begin paint device returned engine == 0, type 2.

Does anyone have a suggestion as to why this may only happen on the deck?

Pieman711 commented 3 months ago

I've deleted and reinstalled the game and the graphics bug has gone. It's not a steam deck/proton issue after all.

With the workaround above to disable the text to speech dll it now seems to work perfectly on the deck and Ubuntu.