ValveSoftware / Proton

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

Sonic Adventure 2 (213610) #502

Open Houtworm opened 5 years ago

Houtworm commented 5 years ago

Game does not run, Crashes immediately in Steam Runtime on Arch Linux https://gist.github.com/Houtworm/558ff15ddcf153de8a6e81f9f827e708

kisak-valve commented 5 years ago

Hello @Houtworm, 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.

Houtworm commented 5 years ago

added my system information in the main post :)

aljelly commented 5 years ago

The launcher uses the .NET Framework and therefore requires either Mono (see #18) or .NET. The game itself might require it too but I'm not completely sure on this seems to not need it OTOH.

aljelly commented 5 years ago

Update: You can get it to work with this workaround:

  1. Go to /home/[USERNAME]/.local/share/Steam/steamapps/common/Sonic Adventure 2/Config/
  2. Create a file called UserConfig.cfg and put this in:
    <?xml version="1.0" ?>
    <Configs FullScreen="1" Display="0" Res="22" Width="640" Height="480" RefreshRate="60" Language="0" Analytics="0" />
  3. Create a file named Keyboard.cfg and put this in:
    <?xml version="1.0" ?>
    <Setup Layout="0" />
    <Players>
    <Player InputWay="1" Vibrate="0">
    <key index="83" />
    <key index="65" />
    <key index="73" />
    <key index="79" />
    <key index="5" />
    <key index="52" />
    <key index="56" />
    <key index="54" />
    <key index="25" />
    <key index="16" />
    <key index="37" />
    <key index="23" />
    <key index="4" />
    <key index="37" />
    <key index="27" />
    <key index="67" />
    </Player>
    <Player InputWay="0" Vibrate="0">
    <key index="22" />
    <key index="18" />
    <key index="0" />
    <key index="3" />
    <key index="102" />
    <key index="98" />
    <key index="101" />
    <key index="99" />
    <key index="66" />
    <key index="104" />
    <key index="37" />
    <key index="76" />
    <key index="105" />
    <key index="37" />
    <key index="28" />
    <key index="111" />
    </Player>
    </Players>
  4. Go back one directory, rename Launcher.exe to LauncherOld.exe and rename sonic2app.exe to Launcher.exe.
  5. Press play in Steam. It should work.

You'll have to adjust the configs by hand (or run Launcher.exe on Windows) if you want to change the settings. Or try running Launcher.exe after installing .NET in the game's wineprefix.


I tried to install wine-mono into the game's wineprefix (the .msi that Wine prompts you to install) and run the Launcher.exe. It at least got past the "no .NET" error but then the launcher crashed (the last thing it did was load opengl32.dll).

If anyone wants to try that, this is what I ran (assuming you've installed non-Proton Wine and ran wineboot):

WINEPREFIX="/home/[USERNAME]/.local/share/Steam/steamapps/compatdata/213610/pfx/" "/home/[USERNAME]/.local/share/Steam/steamapps/common/Proton 3.16/dist/bin/wine" msiexec /i ~/.cache/wine/wine-mono-4.7.3.msi

(Haven't tried .NET.)

flibitijibibo commented 5 years ago

@kisak-valve Requesting an XAudio2 label for this game...

CRTX commented 5 years ago

I just wanted to share my personal workaround.

create the file launcher.sh

#!/bin/bash

#Copy and paste your gameDirectory path and proton path here
gameDirectory=/.../SteamLibrary/steamapps/common/Sonic\ Adventure\ 2
proton=/.../SteamLibrary/steamapps/common/Proton\ 4.2/dist/bin/wine

installDirectory="$gameDirectory"/pfx
export WINEPREFIX=$installDirectory

if [ ! -d "$installDirectory" ]; then
    export WINEARCH=win32
    winetricks dotnet20 d3dx9
    "$proton" "$gameDirectory"/Launcher.exe
else
    "$proton" "$gameDirectory"/Launcher.exe
fi

make it executable with chmod +x launcher.sh

run launcher.sh and accept the dotnet20 prompt. after the first time you run it, it may fail. In that case run launcher.sh again and it should work.

You can move this shortcut anywhere you want. The only downside is that it won't be launchable from steam but the game's GUI control configuration launcher and game should work like this.

PhoenixLandPirate commented 4 years ago

I just wanted to share my personal workaround.

create the file launcher.sh

#!/bin/bash

#Copy and paste your gameDirectory path and proton path here
gameDirectory=/.../SteamLibrary/steamapps/common/Sonic\ Adventure\ 2
proton=/.../SteamLibrary/steamapps/common/Proton\ 4.2/dist/bin/wine

installDirectory="$gameDirectory"/pfx
export WINEPREFIX=$installDirectory

if [ ! -d "$installDirectory" ]; then
    export WINEARCH=win32
    winetricks dotnet20 d3dx9
    "$proton" "$gameDirectory"/Launcher.exe
else
    "$proton" "$gameDirectory"/Launcher.exe
fi

make it executable with chmod +x launcher.sh

run launcher.sh and accept the dotnet20 prompt. after the first time you run it, it may fail. In that case run launcher.sh again and it should work.

You can move this shortcut anywhere you want. The only downside is that it won't be launchable from steam but the game's GUI control configuration launcher and game should work like this.

I tried your fix, and then tried to play about with it to make it work, I don't know much about proton, or making it work, but when coming down to the script, all I changed was the location to make it work with my locations, bumped up the proton version, tho idk if that helps or hinders, and skipped the launcher, however, skipping the launcher didn't fix anything.

#!/bin/bash

#Copy and paste your gameDirectory path and proton path here
gameDirectory=/run/media/ragingkitten/Video\ Games/steamapps/common/Sonic\ Adventure\ 2
proton=/run/media/ragingkitten/Video\ Games/steamapps/common/Proton\ 4.11/dist/bin/wine

installDirectory="$gameDirectory"/pfx
export WINEPREFIX=$installDirectory

if [ ! -d "$installDirectory" ]; then
    export WINEARCH=win32
    winetricks dotnet20 d3dx9
    "$proton" "$gameDirectory"/sonic2app.exe
else
    "$proton" "$gameDirectory"/sonic2app.exe
fi 

However, after all that, if I launch via the launcher you created, I get

0025:fixme:msvcrt:__clean_type_info_names_internal (0x64083a50) stub
./launcher.sh 
wineserver: using server-side synchronization.
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
000b:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2).
0009:err:module:load_library somehow failed to load steamclient
0026:fixme:msvcrt:__clean_type_info_names_internal (0x64083a50) stub

I had to get rid of some dependency's issues first, such as libpng libmpg and libudev, but after I found packaged for them, this is a s far as I could get, I'll keep trying to find solutions, thank you guys for reading.

Ruedii commented 4 years ago

Looks like this is another one where the interaction between a stub in an msvcrt call and wine-mono.

The Sims 3 has the same issue.

faissaloo commented 3 years ago

I'm also getting a crash that seems to have something to do with XInput https://pastebin.com/d4SY9wEY

Ruedii commented 3 years ago

Could someone get the needed config files for this up on Gist (I would presume they don't fall under copyright since they are generated on the fly.)

Ruedii commented 3 years ago

The Sims 3 has the same issue.

I should say similar, not the same. It's not the same call, but a broken native call through Microsoft VC Runtime from WineMono is still the source of the crash. Closely related, not identical.

I would note that while this launcher still hangs, the one from Sims 3 now crashes to desktop. So it is definatelly a different fault, even if clearly related to both being issues with native calls from Wine-Mono.

Ruedii commented 2 years ago

Launcher now works out of box on Proton Experimental.

I haven't tested the rest of the game but it worked before. I didn't notice any audio issues (the other concern.)

svin24 commented 2 years ago

proton with proton experimental and proton 6.3.8 Graphics do not appear to render, menus do

image

(model of character should appear here)

This is an Intel i7-4600U with intel HD 4000

EDIT: the game works properly with PROTON_USE_WINED3D=1 %command%

kisak-valve commented 2 years ago

Hello @SViN24, the Vulkan driver for Intel's Ivybridge generation is experimental and not spec-compliant. Graphical artifacts and crashes are expected on your system. That would be an issue for your video driver vendor to take a look at.

Subarasheese commented 2 years ago

The game runs out of the box on current Proton builds, however, it runs too fast if we attempt to run the game through a monitor with a high refresh rate, as if the game isn't respecting the 60hz from its display configuration.

The workaround is to use an external tool to limit the framerate (libstrangle, with the command "strangle 60 %command%" for the game), but it would be nice if this problem was fixed to make it work out of the box.

madewokherd commented 2 years ago

Is the configuration it produces correct in this case? Just wondering if the launcher is still broken.

SeongGino commented 2 years ago

It's taken me a while to realize this, but some minor effects are missing in-game. Mainly certain explosions on enemy deaths and rockets, as well as the latter not releasing trails when they should. Seems fixed with PROTON_USE_WINED3D for the moment, so it might be a DXVK quirk?

Arch, NVIDIA 510.60, Proton Experimental. Can any AMD users in the audience confirm this? Very few reports of these missing effects, and all of them seem to come from NV users.