https://bugs.winehq.org/show_bug.cgi?id=49641
Bug ID: 49641 Summary: Beneath a Steel Sky's Steam version crashes due to incomplete sapi implementation Product: Wine Version: 5.12 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: sapi Assignee: wine-bugs@winehq.org Reporter: qsniyg@mail.com Distribution: ---
Currently it uses ScummVM 2.1.2. The next version of ScummVM should in theory fix this crash due to https://github.com/scummvm/scummvm/commit/9a3e420bd20533e310e80058bcc63adebb...
It currently crashes on: https://github.com/scummvm/scummvm/blob/branch-2-1-2/backends/text-to-speech...
--- snip --- if (SUCCEEDED(hr)) { hr = cpEnum->GetCount(&ulCount); } _voice->SetVolume(0); // <-- here while (SUCCEEDED(hr) && ulCount--) { --- snip ---
This is due to _voice not being initialized. It is supposed to be initialized here: https://github.com/scummvm/scummvm/blob/branch-2-1-2/backends/text-to-speech...
--- snip --- // init voice hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&_voice); // <-- here if (FAILED(hr)) { warning("Could not initialize TTS voice"); return; } --- snip ---
However, it fails earlier in the function: https://github.com/scummvm/scummvm/blob/branch-2-1-2/backends/text-to-speech...
--- snip --- HRESULT hr = CoCreateInstance(CLSID_SpObjectTokenCategory, NULL, CLSCTX_ALL, IID_ISpObjectTokenCategory, (void **)&pTokenCategory); if (SUCCEEDED(hr)) { hr = pTokenCategory->SetId(SPCAT_AUDIOOUT, TRUE); // <-- here if (SUCCEEDED(hr)) { WCHAR *tokenId; hr = pTokenCategory->GetDefaultTokenId(&tokenId); if (SUCCEEDED(hr)) { --- snip ---
It fails because it's unable to find the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioOutput registry key. If speechsdk is installed through winetricks (and the game is run), the registry key will be populated, allowing it to step further, but it will then crash right after on GetDefaultTokenId, as it returns E_NOTIMPL.
https://bugs.winehq.org/show_bug.cgi?id=49641
--- Comment #1 from Gijs Vermeulen gijsvrm@gmail.com --- What's the status of this bug with wine-5.22? I saw some of your patches got in a while back.
https://bugs.winehq.org/show_bug.cgi?id=49641
--- Comment #2 from qsniyg qsniyg@mail.com --- (In reply to Gijs Vermeulen from comment #1)
What's the status of this bug with wine-5.22? I saw some of your patches got in a while back.
Not yet finished (I noticed you sent in some patches for spapi too, but I don't think they affected this particular issue).
I'd have to look into it a bit closer to remember again, but IIRC what's missing is SpAudio, and some glue between them.
https://bugs.winehq.org/show_bug.cgi?id=49641
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |leslie_alistair@hotmail.com Ever confirmed|0 |1 Status|UNCONFIRMED |STAGED Staged patchset| |https://github.com/wine-sta | |ging/wine-staging/tree/mast | |er/patches/sapi-ISpObjectTo | |ken-CreateInstance