ValveSoftware / Proton

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

Indiana Jones® and the Emperor's Tomb™ (560430) #4027

Open springwurm opened 4 years ago

springwurm commented 4 years ago

Compatibility Report

System Information

I confirm:

Symptoms

Reproduction

Logs

Workaround

qsniyg commented 4 years ago

Relevant wine bug report: https://bugs.winehq.org/show_bug.cgi?id=27594

qsniyg commented 4 years ago

I drafted this patch, it allow the game to work on my end without the override: https://source.winehq.org/patches/data/188278

springwurm commented 4 years ago

hallo @qsniyg , i applied your patch to my local proton build and removed the old game prefix, and no it works without vcrun6.

thank you

springwurm commented 4 years ago

i found a graphical bug.

Thin rectangles?/lines a drawn in some areas of the screen.

This issue exist, without the msvcrt patch too.

Log:

Video:

kisak-valve commented 2 years ago

Indiana Jones and the Emperor's Tomb crashing on intro

Issue transferred from https://github.com/ValveSoftware/steam-for-linux/issues/8012. @stixholder posted on 2021-08-23T21:41:22:

Your system information

Please describe your issue in as much detail as possible:

When launching the game, it switches to fullscreen, showing intro clips in the preset resolution of 640x480 in the left upper corner. The intro scene with music and the camera floating along the hallway plays for about 1-2 secs, then a windows error popup shows, the while screen freezes and music plays for a few more seconds:

"(Render) An invalid floating point camera matrix was passed to the D3D driver!"

After pressing "X" on the popup, the game terminates.

Steps for reproducing this issue:

  1. install game Steam / Linux
  2. activating any compatibility Proton version or not, doesn't matter
  3. game always crashes as described

    @mtmkls commented on 2021-08-31T21:37:27:

This is a known Wine bug. https://bugs.winehq.org/show_bug.cgi?id=27594

stixholder commented 2 years ago

Does Valve provide free copies of games to the Wine developers, with the bugs issued here? If not, I strongly recommend to implement such a procedure, which should greatly help speeding up bug fixing.

qsniyg commented 2 years ago

@stixholder I should note that in this case, most of the main wine developers have already tried their hand at fixing this issue, but so far haven't had much luck.

stixholder commented 2 years ago

Is there a chance, that getting this game to work, using plain Wine, trying out a variety of native dll and lib alternatives? I recall getting some game (I think it was Alpah Centauri) to run, by including 'gdiplus' as a dependency. And how could I migrate a Steam-installed game into Wine, e. g. by using Playonlinux, or Winetricks, to test this?

qsniyg commented 2 years ago

@stixholder Did you try the workaround mentioned in the issue?

In theory it should work...

springwurm commented 2 years ago

I'm confused, I thought qsig patch is upstream?

qsniyg commented 2 years ago

@springwurm Unfortunately that one doesn't fix this issue, though it is a step closer to matching the native behavior.

It's possible that the fault does not lie in _control87, but rather in other functions that the game uses (such as trig functions) not using FPs the exact same way that windows uses them, causing a discrepancy when certain fpu control registers are changed.

mtmkls commented 2 years ago

Does Valve provide free copies of games to the Wine developers, with the bugs issued here?

This game has a free demo that can be used to reproduce the issue. You can find the download link in the Wine bug report.

stixholder commented 2 years ago

Tried again with Linux Mint 20.3 Una, base: Ubuntu 20.04 focal, Proton 7.0; here, the intro is completely amiss, only sound is heard, then the loading title screen is displayed and another exception pops up:

EXCEPTION_ACCESS_VIOLATION (Slayer) Exception address 1001535c Àéo IMAGE HELP STACK: MAP FILE STALWALK: public: bool __thiscall CD3DCubeMapTexture::Build(struct TRCubeMaps *)

springwurm commented 1 year ago

Tried again with Linux Mint 20.3 Una, base: Ubuntu 20.04 focal, Proton 7.0; here, the intro is completely amiss, only sound is heard, then the loading title screen is displayed and another exception pops up:

EXCEPTION_ACCESS_VIOLATION (Slayer) Exception address 1001535c Àéo IMAGE HELP STACK: MAP FILE STALWALK: public: bool __thiscall CD3DCubeMapTexture::Build(struct TRCubeMaps *)

did you tried the latest proton-experimental? For me it works so far, except the graphic issue i mentioned in https://github.com/ValveSoftware/Proton/issues/4027#issuecomment-1066274828.

billygoat9 commented 1 year ago

Hi there, for Proton versions 4 & 5 I get this error before the menu loads: (Render) An invalid floating point camera matrix was passed to the D3D driver! For Proton Experimental, I also get a crash before the main menu loads but similar to the reports above. I've read that vcrun6 and vcrun6sp need to be installed and one of the libraries overrided to get this game working. Is there any way to do this on Proton directly? My system is Debian Bullseye and I am running Steam that I downloaded from the website if that helps. I see this game is mentioned in the 7.0 RC as being supported, not in my case, however, I am unable to see the logo videos for LucasArts and another company (and skip them as well) and I get this error before the main menu loads: (Slayer) Exception address 1001535c

Aeo IMAGE HELP STACK:

MAP FILE STALKWALK: public: bool __thiscall CD3DCubeMapTexture::Build(struct TRCubeMaps*)

joshas commented 1 year ago

@billygoat9 Are you sure you switched Proton to RC Beta branch? I've just tested on Fedora and main menu no longer crashes with error message, as it did in previous Proton versions. Also, videos are playing for me (albeit in their original resolution, at the quarter size of 1080p screen), but it could be because I have non-free video codecs installed on this PC.

billygoat9 commented 1 year ago

@joshas, I turned on the beta for release candidate - Proton 7.0-5 RC testing. It's not that the videos are not playing, I do hear the sound of the logo videos, the app just minimizes itself upon launching and will only be restored after both videos are over and the main menu starts loading, but then I get this Exception that I quoted above. It's odd that in Proton 4-5 the game doesn't minimize itself and I can press ESC to skip the videos. I have an Intel iGPU, in case that's any help and I have no issues with the Infernal Machine game. I also tried PROTON_USE_WINED3D=1 %command% but that didn't change anything for me.

joshas commented 1 year ago

@billygoat9 That's really peculiar situation. I just tested this game on laptop with Intel i3-6100U CPU and Intel HD Graphics 520 - it works, same as on PC with AMD Radeon dedicated video card. Using GNOME DE and Wayland. Could minimizing problem be related to WM compositor? I sure hope someone more knowledgeable in inner workings of Proton will be able to assist you.

legluondunet commented 1 year ago

Replying to https://github.com/ValveSoftware/Proton/issues/4027#issuecomment-653743184

About this white line:

Capture d’écran_2022-12-29_17-50-47

Is it a Wine bug? Someone could reproduce this bug on Windows?

stixholder commented 1 year ago

Like billygoat9 I get the same error message, with older Proton versions - which at least produce a working intro - the best result is achieved with 4.11-13, which correctly switches into full screen mode (correctly scaling the intro to full screen, too, not minimized, as e. g. 3.16-9).

Then, the camera floats into the throne room, with "Press Enter" flashing. Upon reaching the throne, finally the following error pops up, after which the program aborts (when clicking OK):

(Render) An invalid floating point camera matrix was passed to the D3D driver!

The above Proton versions seem not to produce sound output. Proton 8.0-2 does, but will only swiftly render a black screen instead of rendering the intro, then minimizing permanently, until the error popup as reported in March 14th, 2022 shows, while Experimental won't start ever at all, if the above starting parameter is used, otherwise it's the same result as with 8.x. As a side note, I can't click the first OK button in the first popup, to generate the actual second error popup, unless all other windows are moved aside, despite the popups are visible - so there might be a hidden focus or layer problem involved.

EDIT: Not sure if I've done it right (if the DLL was installed in the right place), but the 'protontricks' hack from above didn't work for me and didn't give any better visual results.

As said, 4.11-13 gets the best visual results, at least playing the full intro up to the throne - the audio is but played on another output (rear speaker jack instead of HDMI).

UPDATE: After upgrading my system with Kernel 5.15.x and Mesa 22.5.x, the game will now finally work with Proton experimental!

Minor problems:

Big problem/blocker:

waspennator commented 5 months ago

Apparently someone on protondb here managed to solve the white line bug by setting up a version of dgvoodoo2 and including "WINEDLLOVERRIDES="d3d8=n" %command%", otherwise the white line still seems to be a problem without it.

https://www.protondb.com/app/560430#8lHYFeHNKK

waspennator commented 5 months ago

Tested it out on my oled with latest Experimental, seems to work, but looking around, I don't believe these white lines are supposed to be there, least I don't see anyone else on windows or the pc gaming wiki bringing this up. They only show up on certain spots though, just climb up the first ledge, look around and you'll see it. steam-65800.log

download download (1)

legluondunet commented 4 months ago

Apparently someone on protondb here managed to solve the white line bug by setting up a version of dgvoodoo2 and including "WINEDLLOVERRIDES="d3d8=n" %command%", otherwise the white line still seems to be a problem without it.

https://www.protondb.com/app/560430#8lHYFeHNKK

I can confirm uses dgvoodoo2 (MS/x86/d3d8.dll file) fixed the annoying whites lines and in the same time upscale/center cinematics.

stixholder commented 3 months ago

With the latest Proton 9.0-1 version, on my machine the game will start, no problem here. The mentioned white lines are still occurring.

Most notably though, the blocker bug remains, which prevents grabbing a wall's ledge and shimmying around edges, when hanging there, i. e. in the first scene, above the pit where the ivory hunters are encountered, exploring is over:

If I climb up, swing over the gap and steer Indy VERY carefully towards the edge, he but may grab the narrow ledge, but I can't get around the corner. According to the keyboard setting, 'On wall left/right' are bound to NUMPAD1/3, but there's obviously no function mapped to those keys.

NUMPAD 7/9 are also set (I use the first for Ducking), but no bound function is shown in the keys menu for these and they don't seem to have any functionality, either.

Until this is fixed, the game remains unplayable.

legluondunet commented 2 months ago

Replying to https://github.com/ValveSoftware/Proton/issues/4027#issuecomment-2028639134

The best way to play this game is to use dgVoodoo2:

But...Big BUT....

You can not alt+tab: When it looses focus, the game window minimized, then it crashes or can not be restored. Log joined.

alt-tab, game minimized, can not be restored, I finally killed game myself steam-560430.log

alt-tab during intro cinematics, game crashed: steam-560430.log

legluondunet commented 2 months ago

Answer to myself, to avoid alt+tab crash, use Gamescope: WINEDLLOVERRIDES="d3d8=n" gamescope -w 1280 -h 960 -f %command%

Now the game is stable and in a playable state, with scaled cinematics and without white lines.