Games Launcher will not start and if I bypass the launcher the game will not save on either shenmue 1 or 2.
err:mscoree:CLRRuntimeInfo_GetRuntimeHost Wine Mono is not installed in the log points towards #18.
I do have mono installed version 4.7.3 I see it when i run "WINEPREFIX=~/.steam/steam/steamapps/compatdata/758330/pfx/ wine64 uninstaller" in the terminal.
You can workaround the problem with this guide.
Basically, edit the run script to point to the game executable which should keep Steam integration, and therefore, saving.
Thanks,
That was the first place I looked, however I made a mistake because I miss read one bit of it. I had to manually start the "run" script from the terminal and have steam open at the same time for everything to just work. Now the game is running as it should. Now lets just wait for those fixes to get into proton :)
Seems this got closed, though we still need to deal with the launcher and XAudio2. The latter works with FAudio, the launcher is a .NET issue.
Audio looks to be fixed with Proton 3.16-5 due to FAudio support. The launcher is still broken, however.
EDIT: Never mind, voices are still missing without xaudio2 installed. Suspect a custom version of faudio is needed since IIRC wma is used by the game.
EDIT 2: Okay, it works with faudio compiled with WMA support. However, voices have a decent amount of distortion (worse than native xaudio2). Also, if you use the Proton bundled version of faudio, the game will crash when a voice is played.
Additionally, the ALSA implementation seems to be trying to grab a hardware device and subsequently fails, so only Pulseaudio works. That's beyond the scope of this bug, though.
Wrote a dumb thing to get past the launcher:
#include <windows.h>
int main(int argc, char **argv)
{
const char *name, *dir;
STARTUPINFO startup;
PROCESS_INFORMATION process;
/* Any parameter means load Shenmue 2 */
if (argc > 1)
{
name = "sm2/Shenmue2.exe";
dir = "sm2";
}
else
{
name = "sm1/Shenmue.exe";
dir = "sm1";
}
ZeroMemory(&startup, sizeof(startup));
ZeroMemory(&process, sizeof(process));
startup.cb = sizeof(startup);
if (CreateProcess(
name,
NULL,
NULL,
NULL,
TRUE,
0,
NULL,
dir,
&startup,
&process
)) {
WaitForSingleObject(process.hProcess, INFINITE);
CloseHandle(process.hProcess);
CloseHandle(process.hThread);
}
return 0;
}
Build with x86_64-w64-mingw32-gcc flibitSMLaunch.c -o SteamLauncher.exe and the game should jump straight to Shenmue 1. To boot Shenmue 2, throw in a random arbitrary parameter as a Launch Option.
The audio gets corrupted with FAudio when being near a Tomato Convenience Store (in both games). Same thing happens when playing some cassette tapes in S1.
Also, all the loading screens flicker with proton 3.16 and 3.16beta. However, they are all right with proton 3.7. I'm on NVIDIA 415.25.
Hello @Neodamode, please copy your system information from steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.
@flibitijibibo
Thank you this works great you're a genius.
I did need to set xaudio2_7 to native in the prefix with winecfg or else voices and other audio were missing. I think both games work perfectly now though, including controller support.
Regarding the launcher workaround by @flibitijibibo , you can also use winegcc if you have Wine, but not mingw installed:
winegcc flibitSMLaunch.c -o SteamLauncher.exe
You'll just need to copy SteamLauncher.exe.so in addition to SteamLauncher.exe
@flibitijibibo @thirdeyefunction I don't know why, but with the "flibitSMLaunch.c" workaround, the first time I launch it after a reboot, it crashed steam. The second time it works.
Edit more info :
JS method call Storage.SetString with 3 arguments
GameAction [AppID 758330, ActionID 1] : LaunchApp changed task to ProcessingInstallScript with ""
Proton: Missing or invalid openvrpaths.vrpath file! [Errno 2] No such file or directory: '/home/david/.config/openvr/openvrpaths.vrpath'
Proton: Missing or invalid openvrpaths.vrpath file! [Errno 2] No such file or directory: '/home/david/.config/openvr/openvrpaths.vrpath'
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
Proton: Missing or invalid openvrpaths.vrpath file! [Errno 2] No such file or directory: '/home/david/.config/openvr/openvrpaths.vrpath'
Proton: Missing or invalid openvrpaths.vrpath file! [Errno 2] No such file or directory: '/home/david/.config/openvr/openvrpaths.vrpath'
../common/pipes.cpp (766) : CClientPipe::BWriteAndReadResult: BWaitResult failed, disconnected
../common/pipes.cpp (766) : Fatal assert failed: ../common/pipes.cpp, line 766. Application exiting.
crash_20190331230244_1.dmp[2330]: Uploading dump (out-of-process)
/tmp/dumps/crash_20190331230244_1.dmp
assert_20190331230352_2.dmp[2335]: Uploading dump (out-of-process)
/tmp/dumps/assert_20190331230352_2.dmp
assert_20190331230352_2.dmp[2335]: Finished uploading minidump (out-of-process): success = yes
assert_20190331230352_2.dmp[2335]: response: Discarded=1
assert_20190331230352_2.dmp[2335]: file ''/tmp/dumps/assert_20190331230352_2.dmp'', upload yes: ''Discarded=1''
crash_20190331230244_1.dmp[2330]: Finished uploading minidump (out-of-process): success = yes
crash_20190331230244_1.dmp[2330]: response: CrashID=bp-78ef0244-d434-4033-bc09-516dc2190331
crash_20190331230244_1.dmp[2330]: file ''/tmp/dumps/crash_20190331230244_1.dmp'', upload yes: ''CrashID=bp-78ef0244-d434-4033-bc09-516dc2190331''
../common/pipes.cpp (766) : CClientPipe::BWriteAndReadResult: BWaitResult failed, disconnected
../common/pipes.cpp (766) : CClientPipe::BWriteAndReadResult: BWaitResult failed, disconnected
../common/pipes.cpp (766) : Fatal assert failed: ../common/pipes.cpp, line 766. Application exiting.
../common/pipes.cpp (766) : Fatal assert failed: ../common/pipes.cpp, line 766. Application exiting.
/home/david/.local/share/Steam/steam.sh : ligne 910 : 2005 Erreur de segmentation (core dumped)$STEAM_DEBUGGER "$STEAMROOT/$STEAMEXEPATH" "$@"
assert_20190331230355_2.dmp[2356]: Uploading dump (out-of-process)
/tmp/dumps/assert_20190331230355_2.dmp
_ExitOnFatalAssert
assert_20190331230355_2.dmp[2356]: Finished uploading minidump (out-of-process): success = yes
assert_20190331230355_2.dmp[2356]: response: Discarded=1
assert_20190331230355_2.dmp[2356]: file ''/tmp/dumps/assert_20190331230355_2.dmp'', upload yes: ''Discarded=1''
Regarding the launcher workaround by @flibitijibibo , you can also use winegcc if you have Wine, but not mingw installed:
winegcc flibitSMLaunch.c -o SteamLauncher.exeYou'll just need to copy SteamLauncher.exe.so in addition to SteamLauncher.exe
I don't have the SteamLauncher.exe.so file - where do I find it and where do I put it? I tried copying SteamLauncher.exe and renaming it to SteamLauncher.exe.so (I put it in the SMLaunch directory), but it didn't work.
After running winegcc flibitSMLaunch.c -o SteamLauncher.exe I got the following output:
winegcc: x86_64-solus-linux-gcc failed
Edit:
OK, turns out I didn't have GCC installed, after installing it, I now get the following output.
In file included from /usr/include/wine/windows/windef.h:279,
from /usr/include/wine/windows/windows.h:37,
from flibitSMLaunch.c:1:
/usr/include/wine/windows/winnt.h:28:10: fatal error: ctype.h: No such file or directory
#include <ctype.h>
^~~~~~~~~
compilation terminated.
winegcc: x86_64-solus-linux-gcc failed
@linuxiorr Install glibc-devel and binutils.
Wrote a dumb thing to get past the launcher:
#include <windows.h> int main(int argc, char **argv) { const char *name, *dir; STARTUPINFO startup; PROCESS_INFORMATION process; /* Any parameter means load Shenmue 2 */ if (argc > 1) { name = "sm2/Shenmue2.exe"; dir = "sm2"; } else { name = "sm1/Shenmue.exe"; dir = "sm1"; } ZeroMemory(&startup, sizeof(startup)); ZeroMemory(&process, sizeof(process)); startup.cb = sizeof(startup); if (CreateProcess( name, NULL, NULL, NULL, TRUE, 0, NULL, dir, &startup, &process )) { WaitForSingleObject(process.hProcess, INFINITE); CloseHandle(process.hProcess); CloseHandle(process.hThread); } return 0; }Build with
x86_64-w64-mingw32-gcc flibitSMLaunch.c -o SteamLauncher.exeand the game should jump straight to Shenmue 1. To boot Shenmue 2, throw in a random arbitrary parameter as a Launch Option.
this doesn't work for me every time it tries to compile i just get an error about
@Madserge11 How are you trying to compile it? Seems like you're probably using normal GCC to compile a Linux binary. You need to use mingw or winegcc to compile a Windows binary. Worked for me with just winegcc.
winegcc shenmue.c Then copy a.out.so toSteamLauncher.exe in the Shenmue folder.
@Madserge11 How are you trying to compile it? Seems like you're probably using normal GCC to compile a Linux binary. You need to use mingw or winegcc to compile a Windows binary. Worked for me with just winegcc.
winegcc shenmue.cThen copya.out.sotoSteamLauncher.exein the Shenmue folder.
i was using winegcc....... @z0z0z
Also, all the loading screens flicker with proton 3.16 and 3.16beta. However, they are all right with proton 3.7. I'm on NVIDIA 415.25.
Disabling "Allow Flipping" in nvidia-settings solves this. Proton 3.7 seems to force blitting (whatever that is).
this doesn't work for me every time it tries to compile i just get an error about
I had this issue and fixed by installing the wine dev package.
Crashes at launch
Open game
I see this is related to .NET, I was just adding my log to possibly help this issue.
Most helpful comment
Wrote a dumb thing to get past the launcher:
Build with
x86_64-w64-mingw32-gcc flibitSMLaunch.c -o SteamLauncher.exeand the game should jump straight to Shenmue 1. To boot Shenmue 2, throw in a random arbitrary parameter as a Launch Option.