protonscr

Tower!3D Pro

protonopen appid 588190Game compatibility - Unofficial.NET
ValveSoftware/Proton#8109 · opened 2024-09-20 by joni999 · updated 2025-03-22 · 5 comments · github · game page · search this game
2 matching comments, n / p to jump
Jjoni999 2024-09-20 github

Compatibility Report

  • Name of the game with compatibility issues: Tower!3D Pro
  • Steam AppID of the game: 588190

System Information

  • GPU: RTX 3090ti
  • Video driver version: 560.35.03
  • Kernel version: 6.11.0-5-cachyos-lto
  • Link to full system information report as Gist: Gist
  • Proton version: Proton 9.0-3

I confirm:

  • [x] that I haven't found an existing compatibility report for this game.
  • [x] that I have checked whether there are updates for my system available.

Proton Log:
steam-588190.log

An important error with the speech recognition seems to be:

1561.239:0724:0728:trace:mscoree:wine_mono_assembly_preload_hook_v2_fn "System.Speech, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
1561.240:0724:0728:trace:mscoree:wine_mono_assembly_preload_hook_v2_fn "System.Speech, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" #
Unhandled Exception:
System.TypeLoadException: Could not load type of field 'towerspeakbridge.Speak:synth' (1) due to: Could not load file or assembly 'System.Speech, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.

Symptoms

Speech Recognition does not work.
In this game you can use your voice to give commands to airplanes, similar to real life.
Unfortunately this does not work on Linux as it seems to use some windows components.
Also the pilots in the planes should talk back to you in synthesized/artificial voices, but this also does not work and seems to have the same root cause as the first issue.

The rest of the game works without issue.

Reproduction

  1. Start the game
  2. go into options
  3. Press "Test speech" - You should then hear a synthesized voiceline

To test the voice commands I would recommend to start a round and try inputting voice commands by pressing the "shift" key - After the "ding" sound you should be able to say any command into a connected microphone and it should be recognized and shown up in the top.

Screenshot_20240920_181456

Similar issue in the sequel: #8115

Mmadewokherd 2024-09-21 github

We probably just need version 3 of this assembly forwarded to version 4. But whether that actually helps will depend on the status of speech synthesis in Proton generally, and I'm not sure about that.

Mmadewokherd 2024-09-23 github

Committed a fix to Wine Mono for the library loading error: https://gitlab.winehq.org/mono/mono/-/commit/95d865b7bef9e90b315efb37488c3c87362dd94e

But it's not enough. Now we run into sapi.dll stubs.

AAftermath 2024-09-26 github

I also recently attempted this on Proton Experiemental - bleeding edge, but it didn't occur to me that it was even remotely possible for the voice recognition to ever be in a working state.

Thank you for reporting, and thanks for the work on this!

Jjoni999 2024-12-10 github

With the new Proton Experimental speech synthesis patch I was thinking that maybe the voice output here would start working, but even after installing the new "Proton Voice Files" nothing changed unfortunately :(
I'm talking about the Proton Experimental change mentioned here: https://github.com/ValveSoftware/Proton/wiki/Changelog

Jjoni999 2025-03-22 github

With the new update to Proton Experimental (2025-03-20) it looks like there is a different error message now. It seems to happen for "Test recog" and "Test speech" the same.

1055.327:0360:0364:trace:mscoree:wine_mono_assembly_preload_hook_v2_fn "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
1055.330:0360:0364:trace:loaddll:build_module Loaded L"Z:\\home\\joni\\.local\\share\\Steam\\steamapps\\common\\Proton - Experimental\\files\\share\\wine\\mono\\wine-mono-9.3.1\\lib\\mono\\gac\\System\\4.0.0.0__b77a5c561934e089\\System.dll" at 03E10000: native
1055.330:0360:0364:trace:mscoree:_CorDllMain (03E10000, 1, 00000000)
1055.330:0360:0364:trace:mscoree:wine_mono_assembly_preload_hook_v2_fn found in Mono GAC
1055.341:0360:0364:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\Speech\\Common\\sapi.dll" at 7A120000: builtin
1055.353:0360:0364:trace:mscoree:wine_mono_assembly_preload_hook_v2_fn "System.Speech.resources, Version=4.0.0.0, Culture=en-US, PublicKeyToken=31bf3856ad364e35"
1055.355:0360:0364:trace:seh:NtGetContextThread 0xfffffffe: eax=000000e3 ebx=00000001 ecx=00000000 edx=00000000 esi=00000001 edi=0070f140
1055.355:0360:0364:trace:seh:NtGetContextThread 0xfffffffe: ebp=0070f250 esp=0070f110 eip=7bddc97c cs=0023 ss=002b flags=00000246
1055.355:0360:0364:trace:seh:NtGetContextThread 0xfffffffe: ds=002b es=002b fs=0063 gs=006b
[00000364:] EXCEPTION handling: System.IO.FileNotFoundException: Could not load file or assembly 'Z:\home\joni\.local\share\Steam\steamapps\common\Proton - Experimental\files\share\wine\mono\wine-mono-9.3.1\lib\mono\gac\System.Speech\4.0.0.0__31bf3856ad364e35\en-US\System.Speech.resources.dll' or one of its dependencies.
1055.355:0360:0364:trace:mscoree:wine_mono_assembly_preload_hook_v2_fn "System.Speech.resources, Version=4.0.0.0, Culture=en, PublicKeyToken=31bf3856ad364e35"
[00000364:] EXCEPTION handling: System.IO.FileNotFoundException: Could not load file or assembly 'Z:\home\joni\.local\share\Steam\steamapps\common\Proton - Experimental\files\share\wine\mono\wine-mono-9.3.1\lib\mono\gac\System.Speech\4.0.0.0__31bf3856ad364e35\en\System.Speech.resources.dll' or one of its dependencies.
[00000364:] EXCEPTION handling: System.PlatformNotSupportedException: No voice installed on the system or none available with the current security setting.

Unhandled Exception:
System.PlatformNotSupportedException: No voice installed on the system or none available with the current security setting.^M
  at System.Speech.Internal.Synthesis.VoiceSynthesis..ctor (System.WeakReference speechSynthesizer) [0x001a8] in <6c49a19e934743a9a0f41f069b8823d4>:0 ^M
  at System.Speech.Synthesis.SpeechSynthesizer.get_VoiceSynthesizer () [0x00037] in <6c49a19e934743a9a0f41f069b8823d4>:0 ^M
  at System.Speech.Synthesis.SpeechSynthesizer.GetInstalledVoices () [0x00001] in <6c49a19e934743a9a0f41f069b8823d4>:0 ^M
  at towerspeakbridge.Speak.DumpVoices () [0x00014] in <ec70647af75f413c94da787937dbc86e>:0 ^M
  at towerspeakbridge.Speak..ctor () [0x00006] in <ec70647af75f413c94da787937dbc86e>:0 ^M
  at towerspeakbridge.Program.Main (System.String[] args) [0x000dc] in <ec70647af75f413c94da787937dbc86e>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.PlatformNotSupportedException: No voice installed on the system or none available with the current security setting.^M
  at System.Speech.Internal.Synthesis.VoiceSynthesis..ctor (System.WeakReference speechSynthesizer) [0x001a8] in <6c49a19e934743a9a0f41f069b8823d4>:0 ^M
  at System.Speech.Synthesis.SpeechSynthesizer.get_VoiceSynthesizer () [0x00037] in <6c49a19e934743a9a0f41f069b8823d4>:0 ^M
  at System.Speech.Synthesis.SpeechSynthesizer.GetInstalledVoices () [0x00001] in <6c49a19e934743a9a0f41f069b8823d4>:0 ^M
  at towerspeakbridge.Speak.DumpVoices () [0x00014] in <ec70647af75f413c94da787937dbc86e>:0 ^M
  at towerspeakbridge.Speak..ctor () [0x00006] in <ec70647af75f413c94da787937dbc86e>:0 ^M
1055.365:0360:0364:trace:mscoree:CorExitProcess (1)
1055.365:0360:0364:trace:mscoree:CLRMetaHost_ExitProcess 1
1055.367:0360:0364:trace:mscoree:_CorDllMain (03E10000, 0, 00000001)
1055.367:0360:0364:trace:mscoree:_CorDllMain (03DD0000, 0, 00000001)
1055.367:0360:0364:trace:mscoree:_CorDllMain (03DA0000, 0, 00000001)
1055.367:0360:0364:trace:mscoree:_CorDllMain (10000000, 0, 00000001)
1055.367:0360:0364:trace:mscoree:_CorDllMain (03540000, 0, 00000001)
1055.367:0360:0364:trace:mscoree:DllMain (7BA40000, 0, 00000001)

New log attached:
steam-588190.log

Do I need to install a "voice pack" or something? I already have "Proton Voice Files" installed.

Proton versions

DLLs