ValveSoftware / Proton

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

Vampire: The Masquerade - Bloodlines (2600) #1804

Open Rabcor opened 5 years ago

Rabcor commented 5 years ago

Whitelist Request

System Information

Note: In Proton 4.2-3 the game does not work out of the box; The main menu won't be rendered after startup. This solution can be solved by using an older version of proton, installing the unofficial patch, setting the resolution to your native resolution and restarting the game in 4.2-3 again.

2024 Edit: On Proton 4.11 you can play if you use the PROTON_USE_D9VK=1 option. On Proton 5.0-7.0 you can play if you use the PROTON_FORCE_LARGE_ADDRESS_AWARE=0 option On Proton 8.0, 9.0 and Experimental you cannot play at all, more info here

If anyone reading this wants a recommended proton version, I suspect quite strongly that proton 7.0 is going to give you the best results.

I confirm:

Issues

Additional Info

I have confirmed the game works with the unofficial patch, but installing it is a little bit more of a hassle (because you need to select the appropriate path for the installation directory). It amazes me that this patch is still being developed and is up to version 10.1, with the latest update having been done on the day I write this (10.1-RC3).

You need to run the game once before doing this

To install unofficial patch you need to download it, and run the following command: WINEPREFIX=/path/to/steamapps/compatdata/2600/pfx wine vampirepatch.exe

Remember to correct the path to the proper steam library where the game is installed, and correct vampirepatch.exe to the name of the downloaded unofficial patch file!!

After opening the installer, to navigate to the path of the game you need to go to the Z:\ drive (which is wine's equivalent for / or root), if you scroll down to the bottom of the browse menu you will find it labeled as /. from there browse to where the game is installed (if you are unsure of where, right click on the game in steam and hit properties, go to local files, and select browse local files, this will open the appropriate directory so you can find it's location).

Then proceed with the installation of the patch. This will enable resolutions of up to 2K in the game, the ResPatcher from extras is required to get a higher resolution than that. This will allow your game to scale properly to a 16:9 resolution and fix a plethora of issues.

In Patch_Extras/Player_Mods (if you installed the patch extras) you will find the ResPatch and files for ENB and SweetFX among other things. Using respatch is done with the same method as the unofficial patch as shown above (just for respatch.exe instead of vampirepatch.exe).

I do not recommend using SweetFX or ENB, below are my results testing both.

The SweetFX installer (ReShade Setup.exe) currently does not work giving the following error:

The entry point method could not be loaded due to Could not load file or assembly 'PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. assembly:PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 type:<unknown type> member:<none>

This is because the installer requires .NET Framework 4.0. Currently the support for installing .NET Framework in Proton is poor (see issue: https://github.com/ValveSoftware/Proton/issues/1786 )

Manually installing SweetFX does not work (game fails to launch), it is possible that an older version of SweetFX can work.

For ENB to work you need to run protontricks 2600 -q d3dx9 (these files only need to be installed, they don't actually have to be set to native) and then running protontricks 2600, select the default wine prefix, and go to winecfg, from there add the d3d9 library (needs to be set to native).

The default ENB settings as provided by the patch look absolutely terrible though (ssao causes too much noise with indirect lighting on, and depth of field ranges are way too small), so you're probably better off not using it unless you enjoy tweaking it yourself.

It should also be known that enabling ENB seems to break a few things (graphical elements) with the current setup; I hear ENB has issues on windows as well, so it would be better to focus efforts on getting SweetFX working if you're in that kind of mood.

That about sums it all up :+1:

anark10n commented 5 years ago

Don't know if this is the right place to post this, but when running ResPatch.exe, there's no way to select hidden folders, even after setting the winecfg to show dot files. How do you get around this?

Rabcor commented 5 years ago

Don't know if this is the right place to post this, but when running ResPatch.exe, there's no way to select hidden folders, even after setting the winecfg to show dot files. How do you get around this?

I did not encounter this issue as I did not need to navigate to any hidden folders. A possible solution would be creating a symbolic link (e.g. ln -s .steam Steam) you'll have to test it to confirm.

Rabcor commented 5 years ago

@kisak-valve Regression: Proton 4.2-3 breaks this game, after the bik videos are rendered (in 4.2-3 the videos properly scale, fixing one of the issues I mentioned in the op) the menu is a garbled mess (does not correctly render)

Forcing proton to use the 3.16 series (3.16-9 beta or older) fixes the issue making the game playable again (but the issue with BIK scaling returns)

After messing around a bit more I found that installing the unofficial patch, launching the game on the 3.16 series, setting the resolution to your screen's native resolution, and the restarting the game with 4.2-3 the game will now work normally on 4.2-3. So there's effectively a workaround for this problem. But it still points to a potentially serious regression in Proton 4.2-3.

kisak-valve commented 5 years ago

Hello @Rabcor, please add PROTON_LOG=1 %command% to the game's launch options, reproduce the regression, and drag and drop the generated $HOME/steam-$APPID.log into the comment box. Also may be nice to drop a screenshot into the comment box and include updated system information in a gist.

Rabcor commented 5 years ago

@kisak-valve steam-2600.log Current system info: https://gist.github.com/Rabcor/1cc205282a7aadd53bab8b98668b512b Screenshot: https://imgur.com/QpZBhQJ.png

Note: In this test I have the unofficial patch installed, but configured the resolution to it's default 800x600 again, This results in 1/4 of the menu being rendered as seen in the screenshot. Without the unofficial patch installed the entire screen would be the garbled mess instead of just 3/4 of it.

Note 2: If I took a screenshot with Steam (F12) it displayed the entire main menu as if nothing was wrong in the resulting screenshot.

Edit(Note3): Also I know Laptops with hybrid graphics can be problematic on linux. mine's set up with PRIME, e.g. it just uses the dedicated graphics card as if it were a desktop. (Only way to get vulkan running)

ghost commented 4 years ago

I can confirm this issue is still present in Proton 4.11-9. After the introductory videos, you can't see the game's main menu. It's just a black screen. Works in Proton 3.16.

Here's my log: steam-2600.log

kisak-valve commented 4 years ago

Some lines of interest from the log: err:x11settings:X11DRV_ChangeDisplaySettingsEx No matching mode found: width=800 height=600 bpp=32 freq=11865632 (XRandR 1.2) err:d3d:wined3d_resource_allocate_sysmem Failed to allocate system memory.

Maybe try PROTON_FORCE_LARGE_ADDRESS_AWARE=1 %command% to the game's launch options?

ghost commented 4 years ago

After adding that to the game's launch options, I received this error, and the game would crash/close:

Screenshot from 2019-12-05 15-50-21

DictumMortuum commented 4 years ago

I am getting crashes on quicksave. Does anyone else experience this?

5.4.13-arch1-1 kernel 4.11-12 proton latest unofficial patch installed "-game Unofficial_Patch" launch options

Grey5246 commented 4 years ago

I am getting crashes on quicksave. Does anyone else experience this?

5.4.13-arch1-1 kernel 4.11-12 proton latest unofficial patch installed "-game Unofficial_Patch" launch options

Hello! I've found a workaround to this issue for now. Figured I'd comment here since this is the only instance of the issue that my google skills can find.

For some reason the built-in quicksave function does crash under wine (at least in my experience) but saving regularly works fine. So you can just bind a shortcut key to the regular save system like this:

The quick parameter is the save's ID. If a matching ID is provided later, the save will overwrite the previous. This means with one bind, you'll have one quicksave slot that will always be overwritten. Alternatively you could do something like this if you wanted: bind "F9" "save quicka QuickSave 1" bind "F10" "save quickb QuickSave 2" bind "F11" "save quickc QuickSave 3"

Be sure to successfully quit after binding your key, as for some reason if you experience a crash it won't save. Once you've got the bind going, you can disable the console if you wish.

Hope this helps.

shoober420 commented 4 years ago

Compatibility Report

System Information

LOG: steam-2600.log

Symptoms

Black screen on launch

Reproduction

Vanilla, no patches

kisak-valve commented 4 years ago

Hello @shoober420, please check if PROTON_FORCE_LARGE_ADDRESS_AWARE=1 %command% has an effect. (Hinted by err: D3D9: Reporting out of memory from tracking. in the log)

shoober420 commented 4 years ago

Using the "PROTON_FORCE_LARGE_ADDRESS_AWARE=1" launch option produces the infamous "Unable to run, less that 15mb memory available" bug (https://www.pcgamingwiki.com/wiki/Vampire:_The_Masquerade_-_Bloodlines#Unable_to_run.2C_less_that_15mb_memory_available).

LOG with "PROTON_FORCE_LARGE_ADDRESS_AWARE=1": steam-2600.log

argorain commented 4 years ago

Hi, I am confirmig what @shoober420 found, it can get fixed by using Unofficial Patch or Proton 3.16. What I found next is that for some reason I cannot select other dialogue option than first. Tried on Steam vanilla and UP, both acting same. Console or remapping shows that keys 1 to 4 as captured correctly but game just ignores all others except 1. Has anyone encountered this? Thanks.

miloslavnosek commented 4 years ago

Hi, I am confirmig what @shoober420 found, it can get fixed by using Unofficial Patch or Proton 3.16. What I found next is that for some reason I cannot select other dialogue option than first. Tried on Steam vanilla and UP, both acting same. Console or remapping shows that keys 1 to 4 as captured correctly but game just ignores all others except 1. Has anyone encountered this? Thanks.

Yes, I can confirm this issue. It works fine under wine-staging but I'm getting this bug under Proton. I don't think this is an issue with key mapping as changing key binding in game console using command bind "2" "anotherkey" doesn't solve this bug.

namtsui commented 3 years ago

Compatibility Report

System Information

I confirm:

Symptoms

I have installed the unofficial patch.

I played the first mission at the Santa Monica beach. It plays but there are some bugs and setup was involved thanks to the tips in this thread.

Bugs:

Reproduction

Setup instructions:

  1. set launch options: PROTON_USE_WINED3D= %command% nouveau does not support dxvk, so use wine's DX9 support.
  2. Force the use of a specific Steam Play compatibility tool: Proton 3.16-9 This is needed otherwise with Proton 5 you get the 15 MB memory error as seen in https://github.com/ValveSoftware/Proton/issues/1804#issuecomment-562370128
  3. Launch game to create a prefix directory then exit game.
  4. Install unofficial patch as @Rabcor had mentioned.

To install unofficial patch you need to download it, and run the following command: WINEPREFIX=/path/to/steamapps/compatdata/2600/pfx wine vampirepatch.exe

However, this did not quite work because the pfx created by steam is 64-bit while the vampirepatch.exe is 32-bit. To resolve this I had to create a 32-bit prefix as described here: https://old.reddit.com/r/linux_gaming/comments/99e0kc/steam_playguide_create_custom_32bit_prefix_to/?utm_source=BD&utm_medium=Search&utm_name=Bing&utm_content=PSR1

Here is a dump of commands where I save the Steam directory from the prefix, create a new 32-bit prefix using wine-staging, create a syswow64 directory, and move Steam back.

cd .steam/steam/steamapps/compatdata/2600/
cp -r pfx/drive_c/Program\ Files\ \(x86\)/Steam .
rm -rf pfx
WINEPREFIX=$PWD/pfx WINEARCH=win32 winecfg
mkdir pfx/drive_c/windows/syswow64
cp -r Steam pfx/drive_c/Program\ Files/
WINEPREFIX=$PWD/pfx wine ~/vampirepatch.exe

With this in place, VTMB can finally run the unofficial patch. Select ~/.steam/steam/steamapps/common/Vampire The Masquerade - Bloodlines when prompted by the unofficial patch for the installer. This should be under the Z:/ or root directory in wine.

  1. Configure launch options again to use the unofficial patch: PROTON_USE_WINED3D= %command% -game Unofficial_Patch

  2. Resolve the quicksave crash as mentioned in the bugs section above.

    steam-2600.log

    Symptoms

    Game throws the error "Available memory is less than 15mb"

    Reproduction

    • Install game
    • Run game
    • See error "Available memory is less than 15mb"
    • Game closes

    Mitigation / Resolution

    • Open game properties
    • Go to Compatibility
    • Force the use of a specific steam play compatibility tool
    • Choose Proton 3.7-8
    • Game now launches

    I shouldn't have to do this to get the game to run. I'm aware there are also "unofficial patches" to get this game to run, but people can still pay £15 for this game on Steam, and it is unplayable on the Steam Deck because of this error.

    There either needs to be some form of regression (is that the right word?) to incorporate why it works with the older proton version, or it should include the unofficial fix.

    Here's the proton log when running with proton 3.7-8:

    steam-2600-proton3.7-8.log

kisak-valve commented 5 months ago

Hello @syberpunk, based on https://github.com/ValveSoftware/Proton/issues/1804#issuecomment-590131659, can you test how the game behaves with the launch options set to PROTON_FORCE_LARGE_ADDRESS_AWARE=0 %command%? That runtime option was enabled by default a fairly long while ago.

syberphunk commented 5 months ago

Hello @syberpunk, based on #1804 (comment), can you test how the game behaves with the launch options set to PROTON_FORCE_LARGE_ADDRESS_AWARE=0 %command%? That runtime option was enabled by default a fairly long while ago.

Hi @kisak-valve , this does not work with the proton 8 version I declared in my report.

AJuujarvi commented 5 months ago

@syberphunk Unfortunately this seems to be a game bug, as I can reproduce this issue on my Linux machines and on my Windows machines. It seems to happen when the RAM is higher then 3.5GB or so. While it appears regressive, it is the intended behavior here due to Proton improving on its WINE implementation. The older Proton version will still be able to play the game, and in my testing it works up to Proton 4.11-13.

syberphunk commented 5 months ago

@syberphunk Unfortunately this seems to be a game bug, as I can reproduce this issue on my Linux machines and on my Windows machines. It seems to happen when the RAM is higher then 3.5GB or so. While it appears regressive, it is the intended behavior here due to Proton improving on its WINE implementation. The older Proton version will still be able to play the game, and in my testing it works up to Proton 4.11-13.

This needs to be handled better, and with better instruction to the user.

The scenario of this which I highlighted in the issue I raised, is that a customer can buy this on the Steam Deck for £15 still, and will have no messaging or instruction that they:

  1. Can play it on the Steam Deck (the 'verified' status is inaccurate)
  2. Need to change their proton version so that it does play on the Steam Deck

There's also some part of me that frankly says I shouldn't have to jump around proton versions to get games working, while that's currently possible and capable, while this is a game that's available for sale and listed for purchase to Valve's ecosystem it makes sense to have either the latest Proton handle this gracefully, or to have better messaging. A recent Proton handling this gracefully at least reduces confusion and reduces effort on the user's part, making for an easy sale for Valve.

Rabcor commented 5 months ago

@kisak-valve I have noticed a regression in 8.0, and another regression in 9.0 as i was testing the game (not sure if the regression from 8.0 carried over to 9.0)

I tried running proton version 4.2-9 again, it behaved fairly similar as in the op, so I had a thought to see if i could replicate the 15mb memory error on it by using PROTON_FORCE_LARGE_ADDRESS_AWARE=1; and I could, using this option made the error happen.

The regression I noticed however is that on newer versions, setting PROTON_FORCE_LARGE_ADDRESS_AWARE=0 does not resolve the issue implying to me quite strongly that disabling Large Address Aware this way does not work at all.

PROTON_FORCE_LARGE_ADDRESS_AWARE=0 on 5.0-10; 5.13-6;7.0-6 allows you to play the game normally PROTON_FORCE_LARGE_ADDRESS_AWARE=0 on 6.3-8 allows you to launch the game but the main menu is just a black screen (this seems like it was fixed by 7.0) PROTON_FORCE_LARGE_ADDRESS_AWARE=0 on 8.0-5 and Experimental, it prevents the error, but the game will not play (just opens a small black window on launch and then doesn't do anything more.) PROTON_FORCE_LARGE_ADDRESS_AWARE=0 on 9.0(Beta) does not prevent the error, e.g. this setting is broken on 9.0 beta. Proton-Ge-Custom is also affected.

So the two regressions are that on 8.0, the game will not launch properly, and on 9.0 the game will not launch at all even if you set the flag that should allow you to launch it.

On another fun note, using the Proton 4.11, using the PROTON_USE_D9VK flag allows you to play the game without the unofficial patch.

All of my testing was on an AMD Radeon 680M iGPU from a Ryzen 6900HX cpu on endeavourOS(arch) with mesa 24.0.4

AJuujarvi commented 2 months ago

@Rabcor Can you try STEAM_COMPAT_CONFIG=noforcelgadd %command% for a launch option? That should work and allow you to play on newer Proton versions. Let me know if you still have problems.

Rabcor commented 2 months ago

STEAM_COMPAT_CONFIG=noforcelgadd

This works!

SuperZoops commented 4 days ago

So I just spent maybe 4 hours pulling my hair with the latest VTMBup115rc11.2 patch version. Turns out it plops a d3d9.dll next to the exe. Renamed it and the game runs again.. Also on recent Proton versions, since I'm running two dGPUs, this is the only game that still needs DXVK_FILTER_DEVICE_NAME, or the main menu will go haywire with flickering.

Hope this helps someone, somewhere.