ValveSoftware / Proton

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

Yakuza: Like a Dragon (1235140) #4363

Open alosarjos opened 4 years ago

alosarjos commented 4 years ago

Compatibility Report

System Information

I confirm:

Proton Log:

steam-1235140.log

Symptoms

Game won't launch

kisak-valve commented 4 years ago

From the log: Unhandled exception: illegal instruction in 64-bit code (0x000000014442dc0e).

alosarjos commented 4 years ago

Now I'm just getting this

image

Probably is the activation limit because of trying with different Proton builds... Damn it!

rafalcieslak commented 4 years ago

Same here, with Proton 5.13-1: Unhandled exception: illegal instruction in 64-bit code (0x000000014442dc0e). Here's my full log: steam-1235140.log

PSebs commented 4 years ago

I can also confirm that it doesn't boot with 5.13-1 Unhandled exception: illegal instruction in 64-bit code (0x000000014442dc0e) steam-1235140.log

alosarjos commented 4 years ago

In the Steam forums I found this thread: https://steamcommunity.com/app/1235140/discussions/0/3005551013354090886/ There are some people claiming to fix this by:

I can't test it anymore for today because of the DRM. Just tried Kiwami 2 just in case but it runs perfectly.

sonic2kk commented 4 years ago

@alosarjos I'm going to attempt the things you've mentioned and report back. So far disabling the Pachinko DLC didn't fix it, so we can rule that out for now. Thanks for the info though!

alosarjos commented 4 years ago

Sadly it's not like I have lot of faith in the quality of the port (Japanese titles on PC aren't usually great), but I find it weird that after 3 games (All of them running fine on Proton) we encounter this. Could it be a new version of Denuvo or something like that?

sonic2kk commented 4 years ago

I was thinking it could potentially be an issue with Denuvo, however the quality of this "port" should be higher as it was developed alongside the rest of the localisation, as well as the Xbox Series S/X release. It was also developed directly by RGG Studios, however whether or not that's a positive or a negative remains to be seen.

The lower recommended specs yet vastly improved graphics over Yakuza Kiwami 2 did give me hope for the PC port, so I'm going to assume it's either Denuvo or some unimplemented feature of WINE. This happened recently with World of Warcraft's latest expansion, I believe a similar error occurred with that game. So like you, I'm not hopeful that the mfplat.dll fix will really do all that much. So far, it doesn't seem to fix anything, but I'll keep experimenting and see if I come up with anything.

olav-valle commented 4 years ago

Now I'm just getting this [image] Probably is the activation limit because of trying with different Proton builds... Damn it!

I'm not sure this is down to swapping proton builds. I just got this message myself, same url (though it leads to a 404...), and apart from setting it to use Proton-tkg-5.18 before the first launch, I haven't switched builds yet. Screenshot from 2020-11-10 21-21-57 Unless whatever DRM is running here detects a "new machine" after simply installing Media Foundation to the prefix and copying mfplat.dll into the exe directory, the only thing I've done is trying to start the game a handful of times. steam-1235140.log

alosarjos commented 4 years ago

Now I'm just getting this [image] Probably is the activation limit because of trying with different Proton builds... Damn it!

I'm not sure this is down to swapping proton builds. I just got this message myself, same url (though it leads to a 404...), and apart from setting it to use Proton-tkg-5.18 before the first launch, I haven't switched builds yet. Screenshot from 2020-11-10 21-21-57 Unless whatever DRM is running here detects a "new machine" after simply installing Media Foundation to the prefix and copying mfplat.dll into the exe directory, the only thing I've done is trying to start the game a handful of times. steam-1235140.log

Switching Proton builds or removing the compatdata or whatever makes the game run the "Initial launch" will activate the game with Denuvo servers. Sadly there is an activation limit every 24 hours if I'm not mistaken.

PD: I'm getting the 404 too.

sonic2kk commented 4 years ago

I follow up with some sad news. I tried a few workarounds in regards to mfplat.dll being a possible lead, but didn't get anywhere. I tried workarounds mentioned for other games such as installing some winetrick verbs (xact and mf) but wasn't able to get anywhere.

From looking around at other, similar issues with other games, it looks like something that could be related to Denuvo or an unimplemented part of WINE - Likely both are one in the same in our case. At least so far, I don't think it's an issue related to media foundation, and when that's a blocker it seems to produce different errors.

Let's hope someone awesome out there writes a patch in the near future! :+1:

olav-valle commented 4 years ago

Reading through this thread on the steam forums, it seems like this game is pretty much a crap shoot whether or not you get it running on windows. Might be best to save ourselves some head ache and just wait for the smoke to clear before even trying to figure things out for Proton...

sonic2kk commented 4 years ago

Might be a good idea yeah, we should see some patches trickle out on Steam pretty soon regardless. Nice catch on the forum thread!

alosarjos commented 4 years ago

I can confirm that the message was having now it's gone and it was related to activation limit because of the Proton versions switching. I have tried what I see on that Steam thread but seems nothing will work. Looks like a problem with wine... Should we report it or has anyone done it already?

sonic2kk commented 4 years ago

@alosarjos I couldn't find any wine bug reports regarding this error or open issues regarding Denuvo Anti-Tamper, so please do report it! The game always fails at the same address (0x000000014442dc0e) so include that 😄

I can confirm that the message was having now it's gone and it was related to activation limit because of the Proton versions switching.

This is really interesting. Perhaps due to the lack of "support" so to speak in wine, this error is occuring for us. I've played a lot of games with Denuvo under wine and switched wine versions pretty often in the same day, and never had this message show up. Or it could be related to a newer/different version of Denuvo that we haven't seen yet. Though interestingly, I didn't get this message yesterday but then again I didn't try that many different versions, I just switched maybe a dozen times at most. I'd include the error in your bug report too just in case it has anything to do with wine.

Hope that wasn't too demanding, just wanted to give some of my input.

alosarjos commented 4 years ago

@sonic2kk Is the Wine Bug tracking the best place? I'm not sure if Valve is checking this issues by themselves with Wine behind the scenes or some other thing...

sonic2kk commented 4 years ago

@alosarjos Valve to have their own Wine repo but it doesn't seem like that's the best place to file the issue just going by the issue history both current and previously closed. Though previously patches have been submitted to it. I'm not expert though. Also going by previous issues there, it may be faster to submit it to the Wine Bug Tracker directly as there may be more eyes and maintainers on upstream Wine than Valve's flavour.

From what I can tell, it may be better to report this to the Wine bug tracker first at least. This issue is in regards to a game, but there are regularly plenty of game-specific fixes in Wine, even for Steam games. I found one instance of what appears to be a Denuvo fix (Ticket 29168), but it is for a rather old game that I don't think is on Steam. I could not find any fixes specifically relating to game anti-tamper issues for Steam games reported in Wine from my brief searching, but then again as you correctly pointed out other games like Yakuza Kiwami 2 (927380) work fine with Denuvo - I can also vouch for others, such as the whitelisted NieR:Automata (524220). I did find a mention of that game in the patch notes for Wine 5.4, but not anything specific to Denuvo.

It may be something unimplemented in Wine which could only be a good thing to have upstream, however it would also mean that a custom version of Proton would need to be used (e.g. a custom Proton-tkg with the commit patch). Not to say it couldn't be brought into Proton 5.13 vanilla, but it wouldn't happen by default.

Tl;dr - From what I can gather, game specific issues are reported on WineHQ regularly and it should be okay to report them there. Though I can't find Denuvo specific fixes for Steam games, there appear to be fixes for other titles that use Denuvo. But the issue may not be the anti-tamper and may be something that needs implemented (or both!).

sonic2kk commented 4 years ago

Apologies for the double comment, but I did some digging in the logs and found a complaint about warn:seh:irtual_unwind exception data not found in L"YakuzaLikeADragon.exe". This exception is nothing new and has happened for other games in the past, such as most recently Monster Hunter World (582010) where it has recently stopped working. The person who made the comment on this issue was using a custom flavour of Proton, and others were reporting crashes with Proton 5.13. However it seems to be working with Proton-tkg 5.19 and up. I'm not sure what was fixed and with my limited knowledge couldn't find anything relating to the issue we're seeing.

However, there is a patch for Proton-tkg, and that's also in Proton-GE, for Mortal Kombat 11 (976310) which seems to address a similar issue. But if that patch would fix our issue, I think we would have had success with those flavours of Proton.

In any case, both of these games use Denuvo. Both of these games seem to have been updated recently as well. So perhaps this is indeed related to a newer version of the anti-tamper! Yakuza Kiwami 2 hasn't been updated in a while which could mean that these games are indeed using newer versions of the anti-consum- ahem, anti-tamper. At least we can hope that this issue is fixable!

gofman commented 4 years ago

This is an issue with newer Denuvo. The attached patch on top of latest Proton 5.13 should help. With this patch applied I could be able to get in game without issues (tested on Nvidia). Currently this patch is probably there in recent GE (@GloriousEggroll ) custom builds, but I did not test if the game works with that, probably yes but there might be some unrelated issues potentially.

patch.zip

olav-valle commented 4 years ago

Game did not launch with Proton-5.9-GE-8-ST-3. Probably should have known this if I just checked the patches it applies first. Log here. 5.9-GE-8-ST-3-steam-1235140.log

As this game seems to have some pretty sensitive DRM/authentication "features", I'm hesitant to swap proton builds willy-nilly. I'm getting ready to build GE-5.13 with the above patch listed by gofman. I already know that I can build GE's proton successfully, so I'll try that before regular proton (I'm actually not sure how to apply patches to Valve's build method. I can't see anything about it in the readme.) I'll update later if I get any interesting results.

gofman commented 4 years ago

If you want to test this, I guess in the view of Denuvo bans the most sure way is If you can build latest Proton_5.13-next branch according to the official instructions. You only need to apply the patch in proton's 'wine' directory with 'git am patch_file' (patch_file is the unpacked .patch one) before building. This way you have more chances to reproduce exactly what works here. Or maybe I can just upload my redist build somewhere.

olav-valle commented 4 years ago

An uploaded redist would definitely help a lot of people, I think. I'll give Valve proton 5.13-next a try before GE then, since this vagrant setup is taking its sweet time.

sonic2kk commented 4 years ago

@gofman I realise it's again an unofficial flavour but I could try applying the patch you attached to Proton-tkg, unless you know of any reason why it may not work. Fingers crossed!

Oschowa commented 4 years ago

I can confirm the patches by @gofman make the game run, thank you very much! I compiled proton-tkg with the patches and set WINESECCOMP=1 and PROTON_USE_SECCOMP=1 as launch options fwiw (not sure which was needed for -tkg). I'd share the build, but It's (somewhat accidentally) compiled with -march=native, so won't run on CPUs other than zen2, might make a generic one to share later if people need it.

yoyossef commented 4 years ago

I can confirm the patches by @gofman make the game run, thank you very much! I compiled proton-tkg with the patches and set WINESECCOMP=1 and PROTON_USE_SECCOMP=1 as launch options fwiw (not sure which was needed for -tkg). I'd share the build, but It's (somewhat accidentally) compiled with -march=native, so won't run on CPUs other than zen2, might make a generic one to share later if people need it.

I tried applying it with the repo's user patch mechanism (putting the patch in the user patch directory and having a mypatch extension then run makepkg - si) but the apply failed, did you apply it yourself?

gofman commented 4 years ago

I have uploaded my build here: https://yadi.sk/d/Ke7K0_m6yuojkw This is proton_5.13-next with my patch on top. No custom flags are needed.

rafalcieslak commented 4 years ago

I managed to start the game using GloriousEggroll's Proton-5.9-GE-8-ST with PROTON_USE_SECCOMP=1. No extra patches were necessary. The game crashed on the first run, but on second attempt launched just fine.

sonic2kk commented 4 years ago

@gofman can confirm your build allows the game to start up! There are a few other issues I'm running into with the game (crashes when trying to save settings, alt+tab is being a bit awkward, etc) but the issue of the game booting up appears to be solved. I'll try GloriousEggroll and if I can get it to build, Proton-tkg as well with the patch and see how the game runs from there. Many thanks for your efforts!

olav-valle commented 4 years ago

I managed to start the game using GloriousEggroll's Proton-5.9-GE-8-ST with PROTON_USE_SECCOMP=1. No extra patches were necessary. The game crashed on the first run, but on second attempt launched just fine.

Hot damn. This works for 5.9-GE-8-ST. Ran first try, buy quit to desktop when I tried to apply some graphics settings.

Controller doesn't map properly, which is something I rarely have trouble with in Steam (Xbox elite 2). Dpad doesn't map at all. L-stick click is read as Select. R-stick click is read as l-stick. Analogue triggers do nothing.

Edit: I'm seeing discussions on the steam forums about similar issues with controllers natively. However, the solution there seems to be to enable Xbox Configuration Support in the Steam controller settings, which does nothing for me neither off or on. I usually have this on, and rarely have issues even outside of steam games.

sonic2kk commented 4 years ago

A small update on the issues I was having:

In terms of performance, my specs are identical to OPs (same GPU/Driver/Kernel version, specifically I played at 1080p and have a Ryzen 3700X) and with all settings at max I get around 80fps uncapped, and 60fps capped. There was some stutter in cutscenes which was unfortunate. During the game's introduction sequence where was a hang for about 5 seconds before a cutscene played. There were very, very infrequent but noticeable jitters at camera angle switches during the game's opening cutscenes. I stuck to playing the game with vsync off and capped at 60fps.

While walking around Kamurocho, there were framedrops down to as low as 45fps for no more than a second at most, and after roaming around what I could in the beginning for around 10 minutes the stutter virtually vanished. I tried walking in and out of restaurants and shops a few times and it all went very smoothly.

The majority of my testing was done with gofman's build, I only tested to see if the game would open to the main menu with Proton-GE. I can't vouch for performance with this build but in the past I have noticed games get decent performance boosts with Proton-GE (NieR:Automata namely). I would also say performance for the game will improve as the game gets updates. Turning down some of the settings would be a good way to get a higher framerate but it didn't improve the stutter at all in my tests.

Overall, very, very pleasing results and not dissimilar to what Yakuza Kiwami 2 had initially. For context, that game has none of the stutter issues I described now but it did for a few weeks after launch. A combination of game patches and updates to Proton and to graphics drivers fixed it overtime.

Huge thanks to everyone on this issue for solving it! :+1:

EDIT: I just realised I left my PROTON_LOG=1 launch option in and this almost definitely will have had an impact on performance (~40fps hit in most games I've tested). I can't launch the game now because of what I assume is the Denuvo activation limit, but the bottom line is your mileage may vary with performance, and the game does work with the given patch!

olav-valle commented 4 years ago

@sonic2kk Have you tried using a controller at all? If so, I assume everything was fine for you since you make no mention of it?

sonic2kk commented 4 years ago

@olav-valle I used my Steam Controller, it was recognised and worked for the time I used it - My batteries ran out about 5 minutes into playing the game so I didn't test very extensively with it. The rest of my time was spent using the painful keyboard controls heh. I'll do some more testing whenever I can launch the game again and see how I get on!

Oschowa commented 4 years ago

Using a DS4 controller works fine for me only with steam controller configuration turned off, otherwise the d-pad at least doesn't work.
The game also crashes when setting the graphics option "Multisample" to off and it is automatically turned on again when setting it to 0 manually in the config file.

olav-valle commented 4 years ago

The game seems to work with a Switch Pro controller when steam controller config is turned off. The game even switches button prompts to match Nintendo's layout, which I don't think I've ever seen in a game. Didn't know the switch controller was officially supported on PC. Edit: Some mapping errors with the Switch Pro controller aswell. R-stick x-axis is mapped to the y-axis, and the y-axis is unmapped. Every other function seems to be correctly mapped, though.

Still no luck with the Xbox Elite 2, but that may be down to the wireless dongle driver (xow) still being in beta. Or maybe not. 99% of other games work just fine with it, and even wired or in "forced 360 pad compatibility mode" mode it doesn't work.

delamorte commented 4 years ago

I can also run the game with Proton-5.9-GE-8-ST and PROTON_USE_SECCOMP=1.

Regarding the controller (Dualshock 4), at first the dpad didn't work but with Steam Input Forced Off it works perfectly and PS4 button prompts also show correctly. With RDR2 I also had to force steam controller config off after which the controller worked beautifully with correct button prompts.

Changing some of the graphics settings crash the game, but I was able to max the graphics by editing graphics.ini and everything seems to work nicely. Haven't played past the intro yet though.

PSebs commented 4 years ago

It seems like there's an issue with Xbox controllers and other controllers that use Steam Input. It's mapped to incorrect buttons. But it seems to be a common problem with other users. https://steamcommunity.com/app/1235140/discussions/0/2988663148708252594/

PSebs commented 4 years ago

Some of the arcade titles, Space Harrier, Outrun, Super Hang On, and Fantasy Zone don't seem to be having any audio output. Just like in Yakuza 0. Virtua Figher 2 and 5 seem to be fine with the audio

sonic2kk commented 4 years ago

After testing again with my Steam Controller I can confirm that the buttons are incorrectly mapped. The D-Pad is not recognised and the triggers are wrong. Clicking on the right pad acts as the menu button. The game's settings show the correct button inputs as does the Steam Controller Configuration. As @PSebs has rightly pointed out, this seems to be an issue with the game and not a Proton issue. Though interestingly, setting Steam Input to Forced Off didn't work for me so far. Very strange, I'm going to keep testing.

As an aside and followup to earlier: turning the Proton logging off gave me a performance boost of about 20-30fps, I can now run the game at max with around 100-110fps - With texture filtering at 8x and anti-aliasing at FXAA (my own personal preferences) I can get as high as 130fps.

sonic2kk commented 4 years ago

I have tried various things to attempt to fix my Steam Controller, including attempting to use SC-Controller so that Steam would see it as an Xbox One controller. I tried changing Steam Input between Forced On and Forced Off as well. None of what I have attempted so far seems to fix the mapping issues. Very frustrating, as otherwise the game seems to run quite well under Proton!

Edit: Tried a Switch Pro Controller with no luck either, still incorrectly mapped in the exact same way as the Steam Controller.

olav-valle commented 4 years ago

Edit: Tried a Switch Pro Controller with no luck either, still incorrectly mapped in the exact same way as the Steam Controller.

@sonic2kk That's interesting. For me a Switch Pro controller with Steam config off was the closest I got to a fully working controller. Everything was correct apart from the R-stick where y moved x, and y was unbound.

I even dug out an 8BitDo Nes30 Pro, and neither xinput or dinput mode worked properly. This is all super frustrating, and I have no idea where to even start troubleshooting it. Thankfully, KB+M is okay since it's turn based.

Edit: What I can tell from reading through all the threads about controller issues on the steam forums, is that these problems are not directly caused by Proton. There are loads of threads identically describing the issues detailed here (d-pad missing, joystick axes wrong, triggers as r-stick) in relation to the same controller models (mostly xbox one/elite and switch pro, with few/rare mentions of ps4).

The major difference here is that the solution to the problem natively (forcing steam controller config on) doesn't work with proton. I've seen posts making claims that the cause of the issue on Windows is that the game software will attempt to detect controller input itself, and doing so incorrectly. This seems to be the root cause of the incorrect input mappings.

As for why the game refuses to acknowledge Steam configs on Linux, I still have no idea. I've tried to look into ways of removing the native input device, so that only the Steam "virtual" joystick device would be listed and available, thinking that the game was maybe automatically selecting js0 as device. So far I haven't had much luck with this, but if anyone knows a sure-fire way of doing this please call out.

The state of this port being what it is (see official Sega sticky on steam forums), this seems like something that could hopefully be resolved by a patch down the line.

Edit, the second: Got my hands on a PS4 controller, and can confirm that it works almost perfectly with Steam config forced off. Only part seemingly not working is the touch pad to open the map. Turning Steam controller config on makes the game switch to Xbox glyphs instead of PS ones, with the same incorrect/missing mapping that other Xbox pads get. I feel like this is more evidence of the controller issues being the fault of the game's incorrect mapping of specific controller models.

sonic2kk commented 4 years ago

This is some really awesome troubleshooting, thank you for all the detail and extensive testing! The only thing I'd like to add to this is in regards to:

[...] the game software will attempt to detect controller input itself, and doing so incorrectly.

Yakuza games on PC have all had a message at the start of the game that says "Real Yakuza Use a Gamepad", in other words "This game was designed with a controller in mind". However, supposedly, Yakuza: Like a Dragon is meant to tell you that you're a "real yakuza" if using a gamepad. Although the game does indeed detect my controllers although mapped incorrectly, I wonder if your deduction on how the game handles input and this easter egg that doesn't work are related...

HassaanMahmood1999 commented 4 years ago

Im getting the "sorry something went wrong" problem. I am using proton 5.9-GE-8-ST along with the necessary launch option command. Has anyone found a solution to this problem?

sonic2kk commented 4 years ago

@HassaanMahmood1999 That's a DRM issue related to how Denuvo, the DRM the game uses, sees Wine. Each time you change prefix, it thinks you've launched the game from a different PC and it doesn't want you to do that too many times in one day. There isn't a workaround unfortunately, just wait for at most 24 hours and try to launch again.

The launch option listed for Proton-GE, and the patch provided for Proton 5.13 too, aren't to get around that issue. It's to get around the game crashing. Make sure to keep that launch option in when you try to launch again and don't switch Proton versions too much! I've been burned by that while testing and it's quite annoying...

HassaanMahmood1999 commented 4 years ago

@sonic2kk Thanks for the info, Does the 24 hour timer resets each time I attempt to open the game?

sonic2kk commented 4 years ago

@HassaanMahmood1999 It shouldn't, and sometimes I didn't even have to wait 3 hours. But to be safe I'd just leave the game for a while and launch it after a day. It sucks but keep in mind that if you had, say, two PCs and did this then the same thing would happen. It's a DRM issue unfortunately.

sonic2kk commented 4 years ago

@olav-valle This is a major shot in the dark but have you tried any of your controller workarounds with the Steam Overlay turned off?

olav-valle commented 4 years ago

Steam Overlay seems to make no difference, either way. So far the PS4 controller is the only one that works fully (apart from touch pad, but that may be because my system is picking it up and using it as a mouse). Steam Input must be forced off for the game, or PS Configuration Support must be deactivated in General Controller Settings. Otherwise, the game detects the PS4 pad as an Xbox pad (probably because that's what the Steam Input device shows up as if you check the device list of something like jstest) and all its mappings are wrong in the same ways that they are for a real Xbox pad.

Edit: On the subject of the Steam Overlay. If you have it disabled, the game seems to softlock if you access the "DLC/Online Store" menu from your in-game phone. This is supposed to open up the Steam store browser, but since the overlay is disabled, the game simply sits there.

dgurney commented 4 years ago

(apart from touch pad, but that may be because my system is picking it up and using it as a mouse

FWIW I disabled the touchpad detection via xorg.conf, but it still doesn't get picked up by the game.

HassaanMahmood1999 commented 4 years ago

I am no longer getting the DRM issue but now the game window wont even open. My computer's hardware meets the standards of the game and I am using the correct version of proton along with the necessary console command. image image

kisak-valve commented 4 years ago

Hello @HassaanMahmood1999, setting environment variables have to be done before the command that is used to start the game, and having PROTON_USE_SECCOMP=1 alone causes that to be handed to the game. Steam let's us slip environment variables in front of the command by using %command%, so in your case, you probably wanted to test with PROTON_USE_SECCOMP=1 %command% in the game's launch options.