protonscr

Shenmue 1 & 2

protonopen appid 758330Game compatibility - UnofficialXAudio2.NET
ValveSoftware/Proton#1981 · opened 2018-11-16 by NextGenRyo · updated 2024-06-08 · 41 comments · github · game page · search this game
1 matching comments, n / p to jump
NNextGenRyo 2018-11-16 github

Compatibility Report

  • Name of the game with compatibility issues: Shenmue 1 & 2 Save and Launcher not working
  • Steam AppID of the game: 758330

System Information

I confirm:

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

steam-758330.log

Symptoms

Games Launcher will not start and if I bypass the launcher the game will not save on either shenmue 1 or 2.

Kkisak-valve maintainer 2018-11-16 github

err:mscoree:CLRRuntimeInfo_GetRuntimeHost Wine Mono is not installed in the log points towards #18.

NNextGenRyo 2018-11-16 github

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.

Aaqxa1 2018-11-18 github

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.

NNextGenRyo 2018-11-19 github

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 :)

Fflibitijibibo 2018-12-06 github

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.

Aaqxa1 2018-12-12 github

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.

Fflibitijibibo 2019-01-01 github

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.

NNeodamode 2019-01-08 github

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.

steam-758330.log
System information report as gist

Kkisak-valve maintainer 2019-01-08 github

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.

?ghost 2019-02-06 github

@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.

Aaqxa1 2019-03-25 github

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

IInglebard 2019-03-31 github

@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''
Llinuxiorr 2019-05-02 github

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

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
NNeodamode 2019-05-05 github

@linuxiorr Install glibc-devel and binutils.

?ghost 2019-05-28 github

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.

this doesn't work for me every time it tries to compile i just get an error about <windows.h>

?ghost 2019-05-28 github

@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.

?ghost 2019-05-28 github

@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.

i was using winegcc....... @z0z0z

NNeodamode 2019-06-06 github

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).

Ttrytonlux 2019-07-12 github

this doesn't work for me every time it tries to compile i just get an error about <windows.h>

I had this issue and fixed by installing the wine dev package.

Sshoober420 2019-12-29 github

Compatibility Report

System Information

steam-758330.log

Symptoms

Crashes at launch

Reproduction

Open game

I see this is related to .NET, I was just adding my log to possibly help this issue.

Ssoredake 2020-12-15 github

Game does not launch with proton-experimental
steam-758330.log

Ssoredake 2021-01-16 github

Proton 5.13-5, crash on start:
steam-758330.log

Ssoredake 2021-01-16 github

With proton 5.21-GE-1 + @flibitijibibo game starts and sound works, even mod loader is working (WINEDLLOVERRIDES="xinput1_3=n,b" %command% is needed)

Ssoredake 2021-02-25 github

proton-ge 6.1-ge-2, game does not launch

steam-758330.log

NNextGenRyo 2021-02-25 github

@soredake Just tested with proton 5.13-6 with dotnet462 and faudio installed via protontricks and game runs. I remember using 5.13-5 before and had no problems either. Did you install dotnet462 for the launcher and faudio for sound in game?

Ssoredake 2021-02-26 github

@soredake Just tested with proton 5.13-6 with dotnet462 and faudio installed via protontricks and game runs. I remember using 5.13-5 before and had no problems either. Did you install dotnet462 for the launcher and faudio for sound in game?

With dotnet462 launcher crashes after one second.

NNextGenRyo 2021-02-26 github

@soredake uninstall the game and delete the prefix and any remaining game files and do it all again. I've had issues when I tampered a lot with a game i ended up breaking prefix and had to delete the prefix and on some occasion delete the game files also for a clean install.

Ssoredake 2021-02-26 github

@soredake uninstall the game and delete the prefix and any remaining game files and do it all again. I've had issues when I tampered a lot with a game i ended up breaking prefix and had to delete the prefix and on some occasion delete the game files also for a clean install.

I've removing prefix and checking files every time i test new version of proton, so broken prefix is not the case.

NNextGenRyo 2021-02-26 github

@soredake Hmm. Dont check the files just delete them all. I tried with another game to repair file and it kept saying all is fine, but still didnt work. I completely deleted any trace of that game and downloaded and installed again, it then worked fine.
Did you try also dotnet4.5 or 4.0? Also I know that dotnet install is borked on latest wine version over 5.10 or something ( don't remember exact version ) so it might be the same for proton Maybe?

Try the older dotnet versions first. If no luck switch to older proton version for testing. If nothing then keep the older proton version and try installing dotnet462 in that. If it worked then you should be able to switch proton to the latest 5.13-6.

Ss3rg3 2021-04-02 github

Tried it with proton 6.3.1 since it was in the list of new playable games from the change log.

The game launch fine but with my 7.1 audio setup, it produce a buz all the time.

Setting stereo or 5.1 with pulseaudio make the buz disapear, but there is no voice in the intro videos, other sound are playing fine.

Fflibitijibibo 2021-04-02 github

It looks like the WMA data hasn't been processed - in addition to hunting for sailors you'll also have to hunt for the dialog, because I don't think any of it has been fossilized yet.

For the 7.1 audio it almost sounds like it's upmixing artifacts? FAudio supports 7.1 but unless you pass SDL_AUDIO_CHANNELS=8 it might be doing 2->5.1->7.1 and causing a bunch of noise. The channel detection will be fixed in SDL 2.0.16 but the upmixing probably won't be... EDIT: Oh dear

Ss3rg3 2021-04-02 github

Yes probably upmixing artifacts i don't really know, i have a very loud buz and you can hear the other sound but they are lower.

i tried with SDL_AUDIO_CHANNELS=8 %command% but still have the loud noise.

i noticed that setting stereo with pulseaudio icons on my audio receiver is 7.1(probably means that it is upmixed despite setting it to 2.0) and with 5.1 from pulseaudio icons are 5.1.

in alsoft.rc : channels = surround71

in bash_profile : export PULSE_LATENCY_MSEC=60

Fflibitijibibo 2021-04-02 github

Oh, weird... wish I knew more about Pulse, but at this point I'm already halfway to Pipewire and that probably works completely different despite being binary compatible.

WINEDEBUG=+xaudio2 might shine some light on what kind of device they're making - PCGW suggests they make 3.0 contexts for SM1 and 5.0 for SM2:

https://www.pcgamingwiki.com/wiki/Shenmue_I_%26_II#Audio_settings

That would be a little bit weird because most games just use whatever device defaults are provided, but would explain why there are upmixing artifacts even when we have the correct channel count in SDL.

Ss3rg3 2021-04-02 github

i got this one : fixme:dsound:DSOUND_MixerVol There is no support for 8 channels

The buz is starting with the launcher, probably nothing to do with the game itself

Fflibitijibibo 2021-04-02 github

Ah, got it - yeah I think they just use MediaFoundation or something to play an mp3 file in the root folder, if I remember correctly. So that might actually be one of the Wine audio engines?

Ss3rg3 2021-04-02 github

i can't tell you, i am a pure newbie :)

here is the log with the launcher only:
https://pastebin.com/sqnYKc4c

Fflibitijibibo 2021-04-02 github

Looks like the launcher avoids XAudio2 entirely - so it's someone else's problem then, hooray :P

Ss3rg3 2021-04-02 github

it could be some Wine regression, i had the same thing on some other games while testing them with proton in the past.

Mmadewokherd 2021-04-02 github

The launcher uses WPF, and it was most likely fixed by this commit: https://github.com/madewokherd/wpf/commit/072b750f8f93d7c611f5da5f809e51ff61b77b79

So I guess it's probably using Windows Media Player API's via WPF.

Mmadewokherd 2021-04-02 github

Well, by "fixed" I mean that it started to run. My test machine is a mile away and has no speakers, so I had no way of knowing what the audio was doing.

Does the launcher continue to run after the game starts?

Ss3rg3 2021-04-02 github

After the game is launched, i can't see it in windowed mode, but when closing shenmue the launcher is back again.