Proton: Halo: The Master Chief Collection (976730)

Created on 24 Jul 2019  Â·  525Comments  Â·  Source: ValveSoftware/Proton

Compatibility Report

  • Name of the game with compatibility issues: Halo: The Master Chief Collection
  • Steam AppID of the game: 976730

System Information

  • GPU:
  • Driver/LLVM version:
  • Kernel version:
  • Link to full system information report as Gist:
  • Proton version:

I confirm:

  • [ ] that I haven't found an existing compatibility report for this game.

Symptoms

Game will not launch

Reproduction

  1. Start Game
    2.Will not show Microsoft Login Prompt

Notes

I do not have this game but I got the details of this issue from this reddit post.

https://www.reddit.com/r/linux_gaming/comments/c6xh55/halo_reach_through_proton/

Game compatibility - Unofficial Mesa drivers XAudio2

Most helpful comment

I got it working :)

My code is an awful hack, but I just wanted to get it working at all at the moment.
The important part is that BCryptSignHash is expected to compute the SHA1 hash and return a IEEE P1363 formatted DSA signature:
https://stackoverflow.com/questions/20992760/understanding-bcryptsignhash-output-signature
Cutting the result of pgnutls_privkey_sign_hash in half and truncating the remainder or filling it with zeroes worked often enough to log in in.
It will take a few tries though.
A proper implementation should extract r and s properly from GnuTLS's signature format.

I hope this helps.

For completeness, I attatched the diff to the current wine repo with all wine-staging patches applied:
halo_mcc_hack.txt
However, I recommend you implement it properly from scratch.
reach_on_linux

Update: try the second version.
Many comments claim to have issues with that one,
but at least for me it completely avoids the retries that are necessary with the first version and any issues the resulting failed connection attempts might bring with them (such as your IP being temporarily blocked from signing in).

All 525 comments

I can also confirm that the issue is that Microsoft login prompt doesn show up.

Hello @warriormaster12, please add PROTON_LOG=1 %command% to the game's launch options and drag and drop the generated $HOME/steam-$APPID.log into the comment box.

Dug into the latest Flighting build. Notes:

  • EAC binaries in the root folder
  • Appears to use UE4's Chromium support?!
  • Audio is FMOD-based EDIT: Still references XAudio2, fsbs are just l18n...
  • Movies appear to be Bink2 this time around (previously it was WMA)

The game boots but fails to prep Xbox Live, so not much has changed.

steam-1064280.log

Also tried, goes to the menu screen but get error when trying to proceed further.

+1 comments don't extend the discussion. Just use thumbs up.

I've tried adding win10 and dxvk to no avail, maybe dependant on some gfwl libs?

I do not have the beta but I heard this game is supported for Windows 7. Maybe try setting the wine config to Windows 7 to get the Xbox Live part to work?

I do not have the beta but I heard this game is supported for Windows 7. Maybe try setting the wine config to Windows 7 to get the Xbox Live part to work?

It looks like the default is Windows 7 from what I saw in winecfg. I attempted to set to Windows 10 and got the same result.

Like you said, since the game is supposed to work under Windows 7, it seems it would have the necessary pieces to login to Xbox Live in the actual game, but not sure.

Maybe there's something wrong with the loading of CEF itself to show the login window. Are there any necessary manually installed libraries for the webview to work for other games/tools?

CEF by design is pretty much 100% standalone, though lots of files get involved even in a minimal package. Where things get bad, in my experience, is the Chromium subprocesses. I have zero evidence that it’s relevant here.

Apparently I’m insanely far behind on my MCC news. The core UI engine is actually UE4 now! So it’s UE4 at the base with each game’s original engine running on top. This is likely because Scaleform’s dead, so they had to move to _something_...

If there exists a UE4 CEF demo app, that might be a good thing to test with upstream Wine.

It's possible they are using the ue4 web browser (https://docs.unrealengine.com/en-US/Engine/UMG/UserGuide/WidgetTypeReference/WebBrowser/index.html), unless they did their own implementation of the cef integration.

It could also be useful to try cef by itself. From what I remember these packages have example cef browsers that could be useful for determining compatibility: http://opensource.spotify.com/cefbuilds/index.html

I saw that a while back people were recommending using wine staging patches for cef to work properly in wine, not sure if that's still the case

As an experiment, I took the Windows 64-bit sample app from cefbuilds and ran it on the following:

  • wine-4.13 - webview portion blank
  • Proton 4.11 - webview portion blank
  • Proton-GE 4.14 - webview loads, trying to go anywhere but google redirects back, may be limitation of sample app
  • Proton-tgk 4.12 - webview loads, trying to go anywhere but google redirects back, may be limitation of sample app

The last two proton forks look to provide the wine staging patches, with some of them probably helping with getting CEF to work. I tried MCC with Proton-GE 4.14, and got a different result, where pressing enter caused a "Fatal Error" popup to occur. I've attached the logs below, it may be getting a bit closer: steam-1064280.log

This issue is for Halo: The Master Chief Collection - INSIDER, app id 1064280 and should probably be updated to keep pre-release issues separate from release issues.

There does appear to be a lot of OutputDebugString calls for HttpClient, with the addresses and functions lining up with this library here:

https://github.com/microsoft/libHttpClient

Kind of makes me wonder what the CEF part is all about if the Xbox Live sign-in is going through this instead.

https://www.protondb.com/app/976730

It will appear that this game uses EasyAntiCheat. I hope Anti Cheat can be worked around in the near future.

steam-1064280.log

Here's another log. Same issue, Error signing into XBox Live. Sign in dialogue doesn't show. Also don't seem to hear any sound in the menus and during the logo animations.

Log from the Flight 3 build:

steam-1064280.log.zip

Audio seems fine here, as are all the videos now that they're on Bink2. The base engine appears to use standard UE4 audio through XAudio2, but Reach's audio is stored as FMOD Studio banks and the FMOD library is statically linked into the game DLL. Logging in still doesn't work, still seems to be HttpClient compatibility issues.

Steam release, running the EAC-disabled version I get stuck at the xbox live login screen.

Log below.

steam-976730.log

Tried the release version with 4.11 with an updated bcrypt+winhttp, didn't get past login. Noticing that it hits a stub for WSALookupServiceBeginW.

steam-976730.log

Stuck on connecting to xbox live.

KDE neon User Edition 5.17
5.0.0-37 kernel

steam-976730.log

So I launched the game, got a dialog box: one with anti cheat and one without. When trying the without anti cheat option I have the same issue with the xbox live login.

Here is my steam log
steam-976730.log

Game launches but doesn't manage to get to the login, "Errors encountered while signing into Xbox Live"

Running the game without EAC: steam-976730.log

i have the same issue as everybody else it seems. gets to title screen, but cannot proceed because of an Xbox Live error.
steam-976730.log

i believe this is the error causing the xbox live issue.
ERROR:network_change_notifier_win.cc(156)] WSALookupServiceBegin failed with: 8

The game is launching but couldn't signing into Xbox Live

steam-976730.log

Screenshot from 2019-12-04 00-16-04

i have the same error can't sign in
steam-976730.log

Manjaro
Nvidia

Does the following line indicate an issue:
fixme:bcrypt:key_asymmetric_generate algorithm 11 not supported
?
Wine spews it each time I try to hit 'Retry'.
P. S. 11 corresponds to the ALG_ID_ECDSA_P256 enumeration value.

looks like an issue with wine's bcrypt and winhttp implementations.
is there a way to force Proton to use a newer version of wine instead of the default 4.11?
there have been a number of commits to wine that relate to bcrypt since 4.11.

@mathew2214 It doesn't work on a recent wine staging with windows steam either, I'm taking a look at fixing this.

This game is pretty broken even on Windows. As in I've been troubleshooting all day and can't get the damn thing to get past that sign in error even on an actual Windows 10 Pro installation.

It's ironic that at this rate, the Linux community might get it working in Linux before it's even functional for most people on Windows.

Update: I've refactored bcrypt's key_asymmetric_sign to use pgnutls_privkey_sign_hash2 and handle more hash/sign algorithms.

However, Halo passes in 0 for flags, meaning we have no way to tell gnutls what hashing algorithm generated the data.

This case isn't documented by the MSDN, and a quick test of it yields STATUS_INVALID_PARAMETER on Windows 10 with the RSA signing algorithm. Maybe there is a special case for the ECDSA signing algorithm.

I can confirm that Halo passing in 0 is not a bug triggered by wine, as disassembling Halo reveals it unconditionally passes in 0.

I'll look further tomorrow.

Apparently, lines related to bcrypt library are not so important.
I've just tried a quick patch with private key signature generation implemented for ECDSA algos, and the error still occurs.
P. S. Spoke too soon, it looks like I was wasting my time with it...

@Guy1524 According to this: https://github.com/microsoft/Windows-classic-samples/blob/master/Samples/Security/SignHashAndVerifySignature/cpp/SignHashAndVerifySignature.cpp#L327 it's okay to specify empty padding flags and algorithm specifier when using DSA. Maybe 11 actually means DSA and not ECDSA-256 after all...

IDK if it helps, but dumping wine staging 4.20 winhttp.dll.so into the proton directory makes no change in the error's outputted.

I got it working :)

My code is an awful hack, but I just wanted to get it working at all at the moment.
The important part is that BCryptSignHash is expected to compute the SHA1 hash and return a IEEE P1363 formatted DSA signature:
https://stackoverflow.com/questions/20992760/understanding-bcryptsignhash-output-signature
Cutting the result of pgnutls_privkey_sign_hash in half and truncating the remainder or filling it with zeroes worked often enough to log in in.
It will take a few tries though.
A proper implementation should extract r and s properly from GnuTLS's signature format.

I hope this helps.

For completeness, I attatched the diff to the current wine repo with all wine-staging patches applied:
halo_mcc_hack.txt
However, I recommend you implement it properly from scratch.
reach_on_linux

Update: try the second version.
Many comments claim to have issues with that one,
but at least for me it completely avoids the retries that are necessary with the first version and any issues the resulting failed connection attempts might bring with them (such as your IP being temporarily blocked from signing in).

@LukasRuppert Do you have an ETA for a quicker, cleaner version of this patch, or possibly a wine fork repo with this patch?

Kudos on the find, though. I hope something like this can get implemented into the master wine stream.

Hopefully @GloriousEggroll will be able to add this workaround into proton tricks in a newer proton ge build

The patch looks like it applied nicely when added to proton-ge-custom's set of wine patches. I'm running an experiment building it locally to see if it works. Something like the below should work:

  1. Clone https://github.com/GloriousEggroll/proton-ge-custom with command in README
  2. Drop halo_mcc_hack.txt file in game-patches-testing/wine-patches and name it halo_mcc_hack.patch
  3. Run ./game-patches-testing/proton-prep.sh &> patchlog.txt as shown in README
  4. Follow the rest of the steps in README to build proton-ge-custom

@d10sfan how do you then go on to use proton-ge-custom in steam? For those of us who are new to this sort of thing

he is building a proton for it now using the patch

@d10sfan how do you then go on to use proton-ge-custom in steam? For those of us who are new to this sort of thing

When the build finishes, the last command will give a tar.gz archive file. This can then be extracted into the ~/.steam/root/compatibilitytools.d/ folder, and it'd show up in Steam after a restart. So it's the same procedure that can be used for GloriousEggroll's usual builds. This'd be my first time trying to build one from scratch using his repo.

Keep us posted. :)

I just kicked off a build on my machine as well. Will report back.

I tried it here and got a "Fatal Error popup" after clicking the enter key (and seeing it spin for a while).

I've attached a proton log: steam-976730.log

EAC off?

Yes, this is with EAC off. I just tried it again and getting better results this time (no build changes so I guess it's a bit flaky).

This time the popup to login showed up, but when I tried to login it would either come up with a no internet connection message or it would go back to the can't connect to xbox live message.

This shows the login prompt.
20191203235128_1
20191203235130_1

Internet connection issue error message
20191203235020_1

@d10sfan do you have a logfile from that test?

OP of the patch did mention it might take a few tries.

works with eac off, takes a few tries to login, uploading modified ge
halomc
build shortly

LOL You just saved me some CPU cycles. :)

Nice work everyone involved.

Awesome! Will try that soon as well, I'm continuing trying to login on this end as well :)

And of course my build had to finish now.

has anybody had luck with non-EAC multiplayer using @LukasRuppert 's hack?

@mathew2214 Do you own the game? If so, happy to try on Steam w/ you after the build is uploaded or mine finishes compiling.

@hilts-vaughan if my build ever finishes, then yes.

:laughing: Sounds good. I should have spun up a nice 64 core machine on a GCE instance or something. ;)

We need a Discord channel or something.

It worked for me just now with the build I made. It seems (at least from my attempts) that enabling the logging makes it worse. Not sure why that'd be, but I crashes 5 times in a row with logging on. Turned it off, and after seeing the can't connect message popup a few times, it was able to login.

[edit] After doing it again, it got the fatal error with logging off, so it seems it's just luck of the draw.

@LukasRuppert I was wondering, does the game send any data back to Microsoft when you do the login?

I am worried if this patch would send any weird or invalid responses back to Microsoft's servers. I don't want Microsoft to ban Linux users from being able to (or at least attempt to) login because of how this patch works.

@CuriousTommy you run that risk no matter what game you run in proton/steam play/wine as you are ultimately running it on software it was not intended for, on a platform it was not intended for. It is up to the discretion of the company that makes the game to decide if a ban is given whether or not it's valid, however they are not entitled to give you a free pass for running the game on an unsupported platform.

That being said, you are probably safer running the no anti-cheat version, but I can't guarantee that and neither can anyone else but Microsoft.

Having trouble using the proton build that @hilts-vaughan provided. Can't get passed the login and hitting retry a couple of times doesn't seem to amount to anything. Same outcome from building my own copy of Proton GE as well.

Distro: Manjaro 18.1.3
Kernel: 5.3.12
Proton Runner: Proton-4.21-GE-1-MCC

That build is bad. Something didn't go right. :) I'll try again.

My build is finishing up, I'll post it here once I verify it is functional.

lol I was about to ask about that, @hilts-vaughan . So I guess my build worked. I'll upload it if I can confirm it works.

For those following the above: from the README -- you need to make sure you actually _applied_ the patch: game-patches-testing/proton-prep.sh

and remember to include the --recurse-submodules flag when cloning the repo

@hilts-vaughan unfortunately your build doesn't look like it's letting me in there even after spamming the retry button like a madman.

edit: ah. makes sense now.

I managed to get to the login pop-up using this build: (EDIT: lol nvm)

Can't get past that yet, maybe somebody else will have better luck?

I'm still stuck at the "retry" logging into Xbox Live with my build it seems.

https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/4.21-GE-1-MCC

Same as all the others - login is hit or miss but eventually it works.

How many times did you have to retry?

@rjbozzol I'm able to reach the login for XBL, but once I submit my credentials it can't connect and I have to retry again. Has this happened to you?

@Gman0064 exactly the same thing. I'm trying @GloriousEggroll 's release now.

Yeah, my new build I j ust tested as well has the same problem.

I guess -- how many is "eventually"? ;)

I did a quick diff of my build versus GE's and there's a few differences here and there, so it's entirely possible I did something wrong.

Funny thing is that I was able to reset my password for my account in the game, it was only when I submit it that it messes up.
I'm assuming this is the "hit or miss" patch on bcrypt?

@CuriousTommy you run that risk no matter what game you run in proton/steam play/wine as you are ultimately running it on software it was not intended for, on a platform it was not intended for. It is up to the discretion of the company that makes the game to decide if a ban is given whether or not it's valid, however they are not entitled to give you a free pass for running the game on an unsupported platform.

That being said, you are probably safer running the no anti-cheat version, but I can't guarantee that and neither can anyone else but Microsoft.

@GloriousEggroll I don't disagree, but we shouldn't be reckless with our implementation. I don't want to have another dumb ban like the Destiny 2 fiasco.

It's one thing to ban user because of they are using wine/proton. It another thing if the ban was caused by a bad 3rd party patch.

I am having no luck with any of the builds. It pretends it's connecting and after about 10 seconds it gives a "Unreal Engine Fatal Error". I never even get to the login screen.

Tested with @GloriousEggroll's new build. After roughly 4-5 attempts at signing in I'm passed the login screen

I am having no luck with any of the builds. It pretends it's connecting and after about 10 seconds it gives a "Unreal Engine Fatal Error". I never even get to the login screen.

What graphics hardware are you running?

Updated version using gnutls_decode_rs_value:
halo_mcc_hack.txt

@vsod99 AMD RX 5700 :smile:

Unsure if it's a graphics issue, the game keeps running in the background until I close the error message.

@LukasRuppert Thanks for the update! I'll get started on a new build

@vsod99 AMD RX 5700 smile
Did you make sure to install the correct drivers for use with Proton?
See here

@vsod99 Of course. The 5700 is a modern card, only runs on AMDGPU + Mesa with full Vulkan support and all the bells and whistles. Don't confuse it with the 10 year old HD 5000 series.

I'm having an interesting issue myself with the current build - my game crashes after the "Xbox Game Studios" intro. Did not have this issue with Proton 4.11-9, other than the obvious lack of a live login box..

@dennis1248 just wanted to make sure to eliminate the obvious

Edit: no longer crashing at the intro, but I am hanging at a black screen with a cursor

@LukasRuppert sweet, I can't try it tonight but I'll check it out tomorrow morning. Did you have any issues logging in with it?

@CuriousTommy you run that risk no matter what game you run in proton/steam play/wine as you are ultimately running it on software it was not intended for, on a platform it was not intended for. It is up to the discretion of the company that makes the game to decide if a ban is given whether or not it's valid, however they are not entitled to give you a free pass for running the game on an unsupported platform.
That being said, you are probably safer running the no anti-cheat version, but I can't guarantee that and neither can anyone else but Microsoft.

@GloriousEggroll I don't disagree, but we shouldn't be reckless with our implementation. I don't want to have another dumb ban like the Destiny 2 fiasco.

It's one thing to ban user because of they are using wine/proton. It another thing if the ban was caused by a bad 3rd party patch.

There was never a "reckless implementation" with Destiny 2. It was a custom patch that had a very large disclaimer on the bug report stating "don't use this" -and- removed an important callback without replacing it with proper functionality, yet people did anyway.

The same thing applies here - if you don't want to risk a ban, don't use it. It's not provided by Valve, CodeWeavers, Microsoft or any officially involved source currently.

@LukasRuppert

../../../../proton/wine/dlls/bcrypt/gnutls.c:1183:13: error: called object 'pgnutls_decode_rs_value' is not a function or function pointer
             pgnutls_decode_rs_value(&signature, &r, &s);
             ^

typo of "gnutls_decode_rs_value"?

Edit 2: This isn't a typo, just a pointer. Make sure to add
MAKE_FUNCPTR(gnutls_decode_rs_value);

and

LOAD_FUNCPTR(gnutls_decode_rs_value);

@LukasRuppert

../../../../proton/wine/dlls/bcrypt/gnutls.c:1183:13: error: called object 'pgnutls_decode_rs_value' is not a function or function pointer
             pgnutls_decode_rs_value(&signature, &r, &s);
             ^

You need to add

   MAKE_FUNCPTR(gnutls_decode_rs_value);

and

   LOAD_FUNCPTR(gnutls_decode_rs_value);

in gnutls.c
which is new in the updated patch.

Otherwise, I had not much time to test it so far.
But the one time I did start Halo, the login worked first time.

With the previous one I also started getting login issues (xbox live telling me I was offline).

Building with those changes now, no hunk errors in the log, we'll see how it goes!

Hey everybody,

I'm a bit of a dummy, but I've been trying to follow along...

I downloaded the tar from:
https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/4.21-GE-1-MCC
and I extracted and copied it to the compatibility.d folder after creating it. I am able to launch this custom proton on my game.

I am getting same error as dennis1248 with the fail error.

This is probably because I have not copied the halo_mcc_hack.txt into the game fixes folder... Where would this folder be located? Also once I have copied it over, is that all that is left?

Sorry if I'm being dumb/ ignorant. I did try a good google

@David-Stanley You don't need the .txt. The .txt just contains the patch which is already patched in to Proton build you downloaded. When you get that error you did it right. Keep trying, eventually the game will launch like normal and you can login. When you login it will also fail most of the time, keep trying until it works.

I managed to login by just trying over and over. (Just a shame the game is unplayable for me because 5700 drivers..)

@David-Stanley You don't need the .txt. The .txt just contains the patch which is already patched in to Proton build you downloaded. When you get that error you did it right. Keep trying, eventually the game will launch like normal and you can login. When you login it will also fail most of the time, keep trying until it works.

I managed to login by just trying over and over. (Just a shame the game is unplayable for me because 5700 drivers..)

Ok, so I'm meant to get a fatal error? Cool, I'll keep trying. Annoying the game keeps crashing tho, but so excited to play!

I'm lucky I'm using a gtx 970 I guess then

Also thanks for reply!

It seems the build was successful, I'm about to test in game but I'll also upload it for all y'all. Not sure if it'll work for me because of aformentioned black screen issue.

Edit: I still get the black screen but I did with the earlier version too. I pushed up a build for anyone to try, see below

For anyone distributing builds to other users, make redist is the best target for that. You can tarball up the result and hand it off to someone else to unpack into their ~/.steam/steam/compatibilitytools.d/ directory. It'll then appear in Steam as a new Proton build after a restart.

Ok, so I'm meant to get a fatal error?

I had fatal error also, and it easy to fix

fatal error happened becuse old-prefix, I fix it by setting Proton version to Proton 4.2-9(default build in to steam) pressing launch(it will launch to menu) then select that custom 4.21-GE-1-MCC version, and it launch (to menu also)

im still stuck on login, now I have no error, it inf-spinning...update - wow I have login screen https://i.imgur.com/2NwhfV6.png , login prompt popup, still error on login(click like 10 times)

i cant get proton to compile at all with this patch.
every attempt i make fails with
make: *** [../proton/build/makefile_base.mak:17: nested_make] Error 2
how are you guys working around this to make proton build?

Ok, so I'm meant to get a fatal error?

I had fatal error also, and it easy to fix

fatal error happened becuse old-prefix, I fix it by setting Proton version to Proton 4.2-9(default build in to steam) pressing launch(it will launch to menu) then select that custom 4.21-GE-1-MCC version, and it launch (to menu also)

im still stuck on login, now I have no error, it inf-spinning...update - wow I have login screen https://i.imgur.com/2NwhfV6.png , login prompt popup, still error on login(click like 10 times)

Have you tried the newer release? https://github.com/vsod99/mcc_linux_builds/releases

i cant get proton to compile at all with this patch.
every attempt i make fails with
make: *** [../proton/build/makefile_base.mak:17: nested_make] Error 2
how are you guys working around this to make proton build?

Did you make sure to run ./game-patches-testing/proton-prep.sh &> patchlog.txt and take a look at the output before building?

@vsod99 i did run that script before attempting to compile. i remade my vagrant machine and am trying a clean build now.
UPDATE: a clean build makes no difference. i must be misinterpreting the readme file.

Have you tried the newer release?

same, inf spinner, and randomly once per 5-10 restarts I have login popup, login accept data(login/pass) but repeat login again, max I have it "try again" web-button after my profile popup(in that web window)...

i have the same problem as you danilw
steam-976730.log
spinning and crash with vsod99 build
this is with GE's build spinning and crash, if im lucky i type in my login data and get this error "Make sure that you're online, then try again. We can't connect at the moment."
steam-976730.log

Strange, it seems the updated patch may not be working as intended then.

Any thoughts @LukasRuppert

I can check with my wine build again in a couple of hours.
Currently, I don't have time to test it myself.
There may very well still be a bug in there.
It's really just a quick and dirty implementation which worked for me this morning.

sounds like the second patch is a regression.
is the game fully playable with the original patch? once past the first login screen, does the game work reliably? or is there crashing/disconnections mid-gameplay?

With first patch (GE build), game seems to be fully playable once past the random "Fatal error" crashes and the many failed login attempts.
Almost finished the entire campaign so far with not a single strangeness except for some shader compilation stutters.

It took me several dozen tries, but I was finally able to log in using @GloriousEggroll 's build! Thanks!

I tried using @LukasRuppert 's patch (plus typo fix for pgnutls), but I started running into what I think are dependency issues in the build. First it was GNUTLS, then some other package... so I tried a build completely from scratch, and it somehow made it worse.

No idea what went wrong, and now that I have the game running I'd rather play for a bit before going to work. I'll experiment with this again tonight.

It's not a typo.
If you change it you will get a linker error.

MAKE_FUNCPTR(gnutls_decode_rs_value);

creates the function pointer

pgnutls_decode_rs_value

and

LOAD_FUNCPTR(gnutls_decode_rs_value);

takes care of the linking.

@LukasRuppert oh, interesting. Okay, I'll try that again later then.

@LukasRuppert oh, interesting. Okay, I'll try that again later then.

My build has these fixes implemented but it seems to still be having issues. I'll be interested to see if yours fairs better

"Test release - MCC" build of Proton GE is crashed too on my system.
steam-976730.log
Screenshot from 2019-12-04 20-39-01

@LukasRuppert My tired eyes did not catch this error in my output log last night:
patch: ** malformed patch at line 29: #undef MAKE_FUNCPTR

@NTMan yes that comes up, you have to keep trying and eventually you get a login.

@mathew2214 did you add the patch to game-patches-testing/proton-prep.sh and add a patch line for it under #WINE CUSTOM PATCHES before running ./game-patches-testing/proton-prep.sh &> patchlog.txt?

@Skivet i did. i just nuked that entire build and am starting from scratch with another attempt.
every time i try to run proton-prep.sh, it doesnt work. it cant find the files to patch and prompts me for them.

@mathew2214 you should run the script from the root directory, not from game-patches-testing. Use ./game-patches-testing/proton-prep.sh as @Skivet suggested.

@rkfg that was my issue. the script runs now. thank you.

I had the same issue. It's a good practice to cd to the expected directory in the beginning of the script so that the user won't have to suffer. I usually add cd "$(dirname "$0")" so I know all the paths are now relative to the script file itself. Of course, it only applies to such tools that are only run from one specific directory and operate on the known files.

Can't compile Proton-GE with the second patch. I succeeded with the first. The error is:

../../../../proton/wine/dlls/bcrypt/gnutls.c:103:14: error: 'gnutls_decode_rs_value' undeclared here (not in a function)                                                                                             
 MAKE_FUNCPTR(gnutls_decode_rs_value);                                                                                                                                                                               
              ^                                                                                                                                                                                                      
../../../../proton/wine/dlls/bcrypt/gnutls.c:90:39: note: in definition of macro 'MAKE_FUNCPTR'                                                                                                                      
 #define MAKE_FUNCPTR(f) static typeof(f) * p##f                                                                                                                                                                     
                                       ^                                                                                                                                                                             
In file included from ../../../../proton/wine/dlls/bcrypt/gnutls.c:40:0:                                                                                                                                             
../../../../proton/wine/dlls/bcrypt/gnutls.c: In function 'key_asymmetric_sign':                                                                                                                                     
../../../../proton/wine/dlls/bcrypt/gnutls.c:1130:20: warning: format '%s' expects argument of type 'char *', but argument 5 has type 'LPCWSTR {aka const short unsigned int *}' [-Wformat=]
             FIXME( "padding: %s\n", pad->pszAlgId );                                                     
                    ^                                
../../../../proton/wine/include/wine/debug.h:93:49: note: in definition of macro '__WINE_DBG_LOG'                                                                                                                    
     wine_dbg_log( __dbcl, __dbch, __FUNCTION__, args); } } while(0)                                                                                                                                                 
                                                 ^                                                        
../../../../proton/wine/include/wine/debug.h:484:36: note: in expansion of macro '__WINE_DPRINTF'                                                                                                                    
 #define WINE_FIXME                 __WINE_DPRINTF(_FIXME,__wine_dbch___default)                                                                                                                                     
                                    ^                                                                     
../../../../proton/wine/include/wine/debug.h:523:36: note: in expansion of macro 'WINE_FIXME'                                                                                                                        
 #define FIXME                      WINE_FIXME                                                            
                                    ^                                                                     
../../../../proton/wine/dlls/bcrypt/gnutls.c:1130:13: note: in expansion of macro 'FIXME'                                                                                                                            
             FIXME( "padding: %s\n", pad->pszAlgId );                                                     
             ^                                       
../../../../proton/wine/dlls/bcrypt/gnutls.c:1183:13: error: called object 'pgnutls_decode_rs_value' is not a function or function pointer
             pgnutls_decode_rs_value(&signature, &r, &s);                                                 
             ^                                       
../../../../proton/wine/dlls/bcrypt/gnutls.c:90:44: note: declared here                                                                                                                                              
 #define MAKE_FUNCPTR(f) static typeof(f) * p##f                                                          
                                            ^                                                             
../../../../proton/wine/dlls/bcrypt/gnutls.c:103:1: note: in expansion of macro 'MAKE_FUNCPTR'                                                                                                                       
 MAKE_FUNCPTR(gnutls_decode_rs_value);                                                                    
 ^                                                   
make[1]: *** [Makefile:206: gnutls.o] Error 1                                                             

I have no idea why this happens as gnutls_decode_rs_value definitely exists in /srv/chroot/proton_crosscc/usr/include/gnutls/crypto.h but for some reason gcc fails to find it. Any ideas?

@LiamDawe After a lot of unsuccessful attempts trying enter to Xbox Live account with build @GloriousEggroll ProtonGE. I decided to try another build from @vsod99 and with this build ProtonGE I could login to Xbox Live account from the third attempt.

I hope this information would be useful for another users.

Screenshot from 2019-12-04 22-10-52

@LiamDawe After a lot of unsuccessful attempts trying enter to Xbox Live account with build @GloriousEggroll ProtonGE. I decided to try another build from @vsod99 and with this build ProtonGE I could login to Xbox Live account from the third attempt.

correct me if im wrong, but the first patch never worked for you, but the second patch worked third try?

So I added the function definiton before the macro and it seems to compile further...

int gnutls_decode_rs_value(const gnutls_datum_t * sig_value, gnutls_datum_t *r, gnutls_datum_t *s);
#define MAKE_FUNCPTR(f) static typeof(f) * p##f

Pretty weird as only this function produced an error, all others are fine... And I see no conditional compilation in crypto.h either.

I just tested my code from the updated version again a few times.
It signs me in the first time each try.

The many failed attempts caused by the early first version might get you locked out for a while as some of us have experienced with the "offline" message.

One issue might be incompatible GnuTLS versions which do not yet export

gnutls_decode_rs_value

you can check using

nm -gD /usr/lib64/libgnutls.so | grep gnutls_decode_rs_value

(you may need to adjust the path)
If it helps, I'm using libgnutls.so.30.23.2

Another thing to keep in mind:
I only tested using wine, not proton.
(using the current wine repo with all patches from the wine-staging repo applied)

If it's not working for you, you can also check if

~/.steam/steam/steamapps/compatdata/976730/pfx/drive_c/windows/system32/bcrypt.dll

matches

<your proton version here>/dist/share/default_pfx/drive_c/windows/system32/bcrypt.dll

During development I had some crashes when that file belonged to a different wine version.

If you don't have any savegames to lose, you can also try deleting (or renaming) the entire wine environment for Halo

~/.steam/steam/steamapps/compatdata/976730

I applied the new patch to Proton-GE, see here: https://github.com/rkfg/proton-ge-custom/commit/246632ca855666937049931bbb80819dcab38303

Also, if you get weird errors like vkd3d.h not found try to do vagrant provision, it should update something and then it builds fine. A radical way would be nuking the VM but it takes too long to install/update everything. A less radical way is to delete ~/build and ~/proton in the VM, then do vagrant halt, vagrant up and vagrant provision.

Can confirm that I login from the first try using the second patch and Proton I built myself. I used GitHub login for that (lol), it's in advanced sign-in options.

Many thanks @LukasRuppert!

@rkfg can you upload your self build proton file here?

@McMarius11 sure, I pushed a release: https://github.com/rkfg/proton-ge-custom/releases/tag/halo_mcc_test

It also has a custom name Proton-MCC so you'll not mistake it for another Proton-GE build.

IT WORKS i tried all version, you guys are the best <3
thanks @rkfg and @LukasRuppert and @vsod99 all other involved
i tried to log in 5/5 times it worked flawless

@McMarius11 sure, I pushed a release: https://github.com/rkfg/proton-ge-custom/releases/tag/halo_mcc_test

It also has a custom name Proton-MCC so you'll not mistake it for another Proton-GE build.

Just beat me to it. Nice work, time to see if it actually runs on my uncooperative machine.
All of my issues from last night were resolved by appling the patch on an older commit of Proton-GE (because of the first patch, there were conflicts) >_<

Thanks everyone! It indeed works flawless on the first try.

@rkfg your build is best! I login into Xbox Live account always with first attempt even after game restart. When I use build from @vsod99 after game restart I am again have problem with login and game crashes after each login attempt it's really annoying.
Great work, thanks.

Are there any extra steps to get @rkfg 's Proton build working with this? I get no login window popup and eventually just get a "fatal error" popup and then the game closes.

Edit; (I have tried with a clean prefix)
Edit 2; After restarting a few times I'm just getting the old "error while signing into Xbox Live" issue.

the second patch works once. other times it just spins forever at the title screen.
i have to remake the prefix every time i want to play the game.

@exezin not that I'm aware of. You might be locked out for some time due to previous failed attempts, just wait and try again.

@rkfg Is a login screen meant to pop up at all? I've not seen one after 10 or so restarts of the game.

@exezin if you're not seeing anything (except for the loading icon), that most likely means something crashed.
Try creating a log, maybe we can figure it out.

Here's the log.

steam-976730.log

And there is your problem: (Line 221)

3696.755:002e:002f:err:bcrypt:gnutls_initialize failed to load gnutls_decode_rs_value

Try updating the gnutls library.

Works for me on archlinux w/ the most recent patch - Has anyone tried/asked MS about the version with anticheat? I'd be weary to try, but it officially supports win 7 so maybe wine supports the version of easyAC it uses?

here is my log from trying to use the second patch without deleting Halo's prefix first.
steam-976730.log

here is my log from trying to use the second patch without deleting Halo's prefix first.
steam-976730.log

@mathew2214 i think your using the old Proton version
please download https://github.com/rkfg/proton-ge-custom/releases/download/halo_mcc_test/Proton-MCC.tar.gz extract it and copy it into the /home/username/.steam/steam/compatibilitytools.d/ folder and restart steam and use it,

@McMarius11 that build doesnt even launch the game.
here's the log.
steam-976730.log

@exezin @LukasRuppert

Steam currently ships libgnutls 26.21.8 and 30.6.2.

STEAM_RUNTIME_PREFER_HOST_LIBRARIES=1 fixes the issue, as long as your distribution has an up-to-date version of libgnutls.

@McMarius11 that build doesnt even launch the game.
here's the log.
steam-976730.log

@mathew2214 try to launch the game with launch option "PROTON_NO_ESYNC=1 %command%" without the ""
or try to use "PROTON_NO_FSYNC=1 %command%" or "PROTON_NO_FSYNC=0 %command%"

Kind of a jerk request, but can we please start using gist instead of direct uploads? With Gists we wouldn't need to download the logs to peruse them.

@LukasRuppert I'm already on libgnutls30, the latest on my distro (lubuntu 18.04.3 LTS). What version would you suggest?

@davidebeatrici @exezin adding that to the launch options seems to have fixed it for me, on KDE Neon 5.17 (an Ubuntu 18.04 variant). I'd forgotten about the steam runtime option and was thinking I'd have to build/install gnutls 3.6.6 directly (the distro shipped with 3.5).

I was able to log in with my Microsoft account and get to the main menu. I'm using the build from @rkfg.

@McMarius11 using both those arguments, that proton build behaves exactly the same as my own. it works once after i delete the prefix, then it will always spin for a few seconds and crash.
https://gist.github.com/mathew2214/966d11905790fe9a2fcf3cf874407cb0

@davidebeatrici What do we consider an up-to-date version to be? I'm on libgnutls30 at the moment, those flags prevent crashing but I still can't get any login screen to pop up.

I found the cause of the inconsistency. I have an updated patch with tests added that I will submit upstream later today.

@Guy1524 any chance of a patch file one could apply to an existing proton build environment?

@exezin gnutls/gnutls@d5f226c

That is, gnutls 3.6.0 or newer.

For the record, I don't use STEAM_RUNTIME_PREFER_HOST_LIBRARIES=1 and my host libgnutls30 is of version 3.6.10-5 (Debian testing). Also, I run Steam Beta if it's important.

Here is the updated patch excluding the tests I'm working on. Thought I'd upload it since the tests will take more time.

Line 104 shows my workaround for some strange behavior in gnutls causing the inconsistency.

@exezin gnutls/gnutls@d5f226c

That is, gnutls 3.6.0 or newer.

Interesting, I had just built 3.6.6 from source when I saw the reminder to use host libraries; and I thought that option was what got it working. I'd expected to have to do more work to get proton to use the newly built gnutls but it might've picked it up right away. In that case, both STEAM_RUNTIME_PREFER_HOST_LIBRARIES=1 and gnutls 3.6 are necessary.

Anyone trying to install gnutls 3.6 on a 18.04 distro via dpkg may run into dependency issues, instructions on building the source are here: https://gitlab.com/gnutls/gnutls/blob/master/INSTALL.md

Unfortunately I'm out of debugging time for today, but here's a few more compat notes for where I'm at:

  • I'm on KDE Neon 5.17
  • I built gnutls 3.6.6 into my /usr/local, I'm not actually certain whether proton is picking that up or not
  • I've been using the EAC-disabled option, haven't tried the other yet.
  • If I remove the steamapps/compatdata/976730 folder, the game will start up correctly and ask for a login, which succeeds and I can get into the main menu.
  • If I exit and run the game a second time, the game seems to get stuck at a black screen until I remove the compatdata folder and try again
  • On first launch with a new compatdata folder, I can launch a campaign mission and move around a bit, performance seems fine
  • After a couple seconds of actually being in the game (or immediately on the first mission/quickstart) I get a GPU reset and screen corruption, but I think that might be a separate issue (amdgpu RX Vega 64, VM_L2_PROTECTION_FAULT then ring gfx timeout, dmesg snippet

Does Halo not remember the login? I need to do it on every launch and it says I'm logged in somewhere already.

@rkfg I also need to login anew each time.

@mathew2214 Your log looks fine until it loads api-ms-win-core-localization-l1-2-1.dll
Maybe some localization issue?
You could try changing the language in Steam. Maybe that improves things.
Otherwise, concerning bcrypt, the only log entry is that is being loaded, so nothing suspicious there.

Edit: forget about the localization thing. The log of the working version looks just the same there.

i built @GloriousEggroll 's Proton-GE with @Guy1524 's recent patch.
https://drive.google.com/file/d/1EpA9-lTr19Hc8909g7MgGy7ZTdxdokfd/view?usp=sharing

for me, it behaves exactly as my previous attempts to run this game. it only works if i delete the prefix before launching. else i get the title screen spinner for around a minute and the game crashes.
https://gist.github.com/mathew2214/e8c641e102d91b045e9d7453184461ea

@crespyl Probably the wrong place to discuss this but I can't find a solution anywhere else. Any advice on building gnutls on 18.04, assuming you've managed to do so? I'm running into a depend issue:

~~
Libnettle 3.4.1 was not found.
~
~

Even though I have compiled gmp and nettle from source.

@exezin you can get nettle from here: https://www.lysator.liu.se/~nisse/nettle/

The configure/make/make-install process should set up everything gnutls needs to build, I don't think I had to do anything special.

The gnutls INSTALL.md document has some extra information about building nettle which might help.

i built @GloriousEggroll 's Proton-GE with @Guy1524 's recent patch.
https://drive.google.com/file/d/1EpA9-lTr19Hc8909g7MgGy7ZTdxdokfd/view?usp=sharing

for me, it behaves exactly as my previous attempts to run this game. it only works if i delete the prefix before launching. else i get the title screen spinner for around a minute and the game crashes.
https://gist.github.com/mathew2214/e8c641e102d91b045e9d7453184461ea

@mathew2214
If I'm not missing something, it really does seem like PROTON_LOG=1 causes me to have infinite loading screen (and crash). If you have that option then try removing it. Makes it really complicated to resolve this issue though

I can confirm with the latest GE prelease that logging in does work but it did take about 20-30 times for it to go through.

I just submitted the patch to wine-devel, I hope this can make it into the next proton release somehow.

Andrew and I discussed ways to access pgnutls_decode_rs_value from the Steam Runtime's current version of gnutls. It turns out that the function exists in the runtime's version of the library, but isn't exported.

Because of this valve should either backport the commit that adds the needed function, or we can extract its address from its Frame Descriptor Entry.

@Guy1524 is that patch identical to this one? I can build Proton with it as well then!

Oh ok so I was using the official GE MCC prerelease but as it turns out this newer one worked first time

https://github.com/rkfg/proton-ge-custom/releases/tag/halo_mcc_test

Launched and no errors at all and logged in first time.

I still get the "signed in elsewhere" on relaunch but hitting sign in signs right in without asking for any info.

@rkfg It's similar, just a little bit more accurate. Both should work fine with MCC.

You can find the one I submitted to wine-devel here: https://source.winehq.org/patches/data/175029

@Guy1524 great, thanks! Will apply it to Proton and build. I'll also apply a workaround for gnutls since the function isn't exported properly but just declaring it manually seems to work. At least for some people, until a proper fix is released.

I've tried and tried and had no luck upgrading to a later gnutls version, it simply won't compile on my system (18.04 lubuntu), constantly complains about missing nettle features that I know exist because I've successfully compiled and installed the very latest version from source, including gmp.

Any other options I can try to get this working on my end? I just get an endless sign-in error with every Proton version and I never get a login screen pop up.

Any other options I can try to get this working on my end?

Upgrade to 18.10 or newer? I'm guessing you have a good reason for staying on 18.04 though.

@leifmetcalf Well, I would have to ditch LTS for that.

@exezin you can manually download a .deb, unpack it and replace the library (make a backup first!). For example, this one.

I wonder why it works for me if I don't use host libraries. Will check what exactly gets loaded with the game.

@rkfg That sounds like a nightmare waiting to happen, but I'll give it a go :|

@exezin temporary replacing just one file (and symlinks) is easy and safe as long as it's not a very fundamental library like libc. This libgnutls might need a newer libc so it won't work but in that case you can simply replace it with the backup and wait for a better fix.

Oh wait, actually, there's a better solution (I think). Steam now prefers host libraries it seems. Here's what STEAM_RUNTIME_LIBRARY_PATH looks like for me, extracted from the running game (Steam is installed to /opt/SteamLinux):

/opt/SteamLinux/ubuntu12_32/steam-runtime/pinned_libs_32:
/opt/SteamLinux/ubuntu12_32/steam-runtime/pinned_libs_64:
/usr/lib/x86_64-linux-gnu/libfakeroot:
/lib/i386-linux-gnu:/usr/lib/i386-linux-gnu:/usr/local/lib:
/usr/local/lib/libstrangle/lib32:
/usr/local/lib/libstrangle/lib64:
/usr/local/lib/x86_64-linux-gnu:
/lib/x86_64-linux-gnu:
/usr/lib/x86_64-linux-gnu:/lib32:/usr/lib32:/libx32:
/usr/libx32:/lib:/usr/lib:/usr/lib/i386-linux-gnu/i686:
/usr/lib/i386-linux-gnu/tls:/usr/lib/i386-linux-gnu/sse2:/usr/lib/x86_64-linux-gnu/tls:
/usr/lib32/tls:/usr/lib/tls:/opt/SteamLinux/ubuntu12_32/steam-runtime/lib/i386-linux-gnu:
/opt/SteamLinux/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu:
/opt/SteamLinux/ubuntu12_32/steam-runtime/lib/x86_64-linux-gnu:
/opt/SteamLinux/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu:
/opt/SteamLinux/ubuntu12_32/steam-runtime/lib:
/opt/SteamLinux/ubuntu12_32/steam-runtime/usr/lib

Line breaks added for readability. You can put the unpacked library to %STEAMROOT%/ubuntu12_32/steam-runtime/pinned_libs_64 and the game should load it instead of the system one. Granted, there would be no issues with too old libc.

Bit late to the party here, but if I run the release from @rkfg, the one found here: https://github.com/rkfg/proton-ge-custom/releases/tag/halo_mcc_test

The game behaves exactly the same as it would under any standard Proton build; that is, it shows the "Sign in Error: Error encountered while signing into Xbox Live" message. Upon spamming the rety button, it only repeats this message. My procedure to set this up was extracting the tarball into the compatabilitytools.d folder and then starting MCC. I'm running this on Ubuntu 18.04. Is there something I'm not doing right?

Oh wait, actually, there's a better solution (I think). Steam now prefers host libraries it seems. Here's what STEAM_RUNTIME_LIBRARY_PATH looks like for me, extracted from the running game (Steam is installed to /opt/SteamLinux):

/opt/SteamLinux/ubuntu12_32/steam-runtime/pinned_libs_32:
/opt/SteamLinux/ubuntu12_32/steam-runtime/pinned_libs_64:
/usr/lib/x86_64-linux-gnu/libfakeroot:
/lib/i386-linux-gnu:/usr/lib/i386-linux-gnu:/usr/local/lib:
/usr/local/lib/libstrangle/lib32:
/usr/local/lib/libstrangle/lib64:
/usr/local/lib/x86_64-linux-gnu:
/lib/x86_64-linux-gnu:
/usr/lib/x86_64-linux-gnu:/lib32:/usr/lib32:/libx32:
/usr/libx32:/lib:/usr/lib:/usr/lib/i386-linux-gnu/i686:
/usr/lib/i386-linux-gnu/tls:/usr/lib/i386-linux-gnu/sse2:/usr/lib/x86_64-linux-gnu/tls:
/usr/lib32/tls:/usr/lib/tls:/opt/SteamLinux/ubuntu12_32/steam-runtime/lib/i386-linux-gnu:
/opt/SteamLinux/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu:
/opt/SteamLinux/ubuntu12_32/steam-runtime/lib/x86_64-linux-gnu:
/opt/SteamLinux/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu:
/opt/SteamLinux/ubuntu12_32/steam-runtime/lib:
/opt/SteamLinux/ubuntu12_32/steam-runtime/usr/lib

Line breaks added for readability. You can put the unpacked library to %STEAMROOT%/ubuntu12_32/steam-runtime/pinned_libs_64 and the game should load it instead of the system one. Granted, there would be no issues with too old libc.

Please don't do this, the pinned_libs_* folders get wiped out on Steam Runtime updates. Instead, tuck your library somewhere out of the way and add a symlink to the pinned_libs_* folders for your experiments. Also, if something goes horribly wrong, you can delete the pinned_libs_* folders and Steam will regenerate them on the next run.

@rkfg Adding those to the pinned_libs directory just results in the game not even starting for me, guess I won't be playing this one for now :/

Bit late to the party here, but if I run the release from @rkfg, the one found here: https://github.com/rkfg/proton-ge-custom/releases/tag/halo_mcc_test

The game behaves exactly the same as it would under any standard Proton build; that is, it shows the "Sign in Error: Error encountered while signing into Xbox Live" message. Upon spamming the rety button, it only repeats this message. My procedure to set this up was extracting the tarball into the compatabilitytools.d folder and then starting MCC. I'm running this on Ubuntu 18.04. Is there something I'm not doing right?

This version works excellent for me on Pop!_os 19.10. Login worked first try and had no issues logging in again on relaunching. Played a few campaign missions without any real hiccups, only a few stutters from shader compilation. Attempting to start matchmaking results in a popup saying Easy Anti Cheat is not enabled. Though I didn't expected it to work, I thought I would clarify it as I haven't seen anybody mention it yet. Multiplayer matchmaking is therefore unavailable however it looks like custom games work.

Halo-MCC-PopOS19 10-CustomMatch
Halo-MCC-PopOS19 10-EAC-Disabled

@protonpunisher make sure you've selected this unpacked Proton version in the game properties (Force the use of a specific Steam Play compatibility tool).

Anyway, here's a build with the patch from @Guy1524: https://github.com/rkfg/proton-ge-custom/releases/tag/Guy1524 No visible difference for me but if it's more correct then it has to be better.

I can't get the game to launch at all with any of the various posted versions of Proton. I can get it to launch with the expected login error using the default Proton.

Success! I got it working by putting this version of libgnutls in the STEAMROOT%/ubuntu12_32/steam-runtime/pinned_libs_64, none of the other versions would work for some reason, not even an earlier 3.6.x version.

(Using the patched version by @Guy1524 here)

2019-12-05-011440_1916x1075_scrot

@exezin did you try any versions newer than 3.6.4?

@leifmetcalf I tried a few, yeah. The game didn't want to load with any of them. This is likely due to me being on 18.04 though, with older libraries in general. So later versions of gnutls probably aren't compatible with my other libraries etc.

@leifmetcalf I actually just tried version 3.6.5 of gnutils and had no problem getting the game to work.

@exezin I'm on 18.04 LTS myself and even with the pinned libs and the exact version of proton you're running, the game doesn't even start. :(

@cybik If you want to replicate my exact setup when I got it working, make sure you don't have any launch commands in Steam set and make sure you're forcing the correct version of Proton.

Also double check you've placed the files in the correct pinned libs directory, don't mistake the folder you want .steam/root/ubuntu12_32/steam-runtime/pinned_libs_64 with the folder you don't want root/ubuntu12_64/steam-runtime/pinned_libs_64.

And maybe make sure your system packages are all up to date as well.

I'm also running on a GTX 1070 with driver version 440.31.

@exezin no Launch commands/options, put the libs in the _32 pinned, system's only outdated for QT and qemu. :(

@cybik Post a log (PROTON_LOG=1) I suppose.

https://gist.github.com/cybik/f32f095f76d42b58157c4c47c7c5994b

essentially, 603916.884:0039:003a:err:esync:esync_init Failed to open esync shared memory file; make sure no stale wineserver instances are running without WINEESYNC.

wat

@cybik Try the launch command PROTON_NO_ESYNC=1, also maybe try PROTON_NO_FSYNC=1

@cybik try to use the launch option PROTON_NO_ESYNC=1 %command%, I had this before and it helped. But probably it's what it says, another wineserver without esync support is still running so you need to kill it.

Yeah I grepped through ps and there's no wine anywhere, i'm'a kill esync quick.

WINEPREFIX="path/to/SteamLibrary/steamapps/compatdata/976730/pfx" wineserver -k normally does the trick for me

First shotted mates. Disabling esync did it!

edit: And I got a fatal error mid-beginning-the-mission.

Anybody else playing on Navi and having issues like this?
976730_20191204211128_1

Anything close up looks fine, but anything far away starts showing graphical corruption. I'm not sure if it's an ACO issue, because I get a GPU hang when trying with LLVM.

Using LLVM 9.0 with Mesa master (currently c9acf07)

EDIT: Achievements also appear to not be unlocking for me, I'm using Mathew2214's build of 4.21-GE-1 with Guy1524's patch.

@exezin @rkfg @Guy1524 the build you guys linked/released/coded worked on the first try! Amazing stuff!

After updating my kernel to 5.3, getting the latest Mesa/ACO drivers from the oibaf ppa (setting the RADV_PERFTEST=aco option) and using the @rkfg proton build everything seems to work correctly.

As an aside the 5.3 kernel seems to have fixed the issues I was getting with amdgpu not being able to reset and recover itself after a crash, I no longer need to restart Xorg after every hang.

Performance seems kinda crap on my laptop ( 860m, i7-4810MQ, ubuntu 18.04)

Using this proton and the linked libraries above

Playing at 1600x900. Anyone have performance tips? Other than performance, seems good - no trouble signing in ever, no crashes, etc

EDIT: Performance is better with borderless window, res scale turned down, vs even 320x180 fullscreen, weird.

I've used the newest release that has guy's patch, but I'm still not getting successes. I've forced the proton version appropriately, but I still see no difference from vanilla proton.

proton

My launch options are empty, all other properties settings are unchanged from default except the "steam play compatibility tool", which I've set in the screenshot above.

If I use eggroll's first release, I can get it to sometimes open up a login window, but I've never successfully logged in, and it randomly crashes constantly with the fatal error.

What am I not doing that I'm supposed to be?

Can someone tell me the path to extract to in order to install this custom proton build? I'm on Elementary 5.1 and unsure how to proceed.

I downloaded steam, MCC, ran into the error, then downloaded this, but I cannot find the location to extract it to in order for it to show up as a compatibility tool. Someone also mentioned custom libraries, are those necessary? If so, can I get a link and a location to put them?

I have done some googling, this is really specific and new so I didn't have much luck.

@sudoWiz You can place custom compatibility tools in ~/.steam/root/compatibilitytools.d. By default, Steam should already have created the ~/.steam/root folder, but compatibilitytools.d won't exist, you can just make the folder yourself and place the (extracted) custom proton version in there. You should have one folder for each custom version of proton.

Hmmm. So I can open the game just fine now, but I'm running into regular freezes. The game just stops for a few seconds and then keeps going. I'm not sure at all what could be causing it. I suspect maybe thermal throttling, so I'm trying to verify that first... but I'm not too sure, since I can play other more resource-intense games with no problem.

EDIT: thermal throttling is probably not it. I'm playing A Hat In Time and the laptop's about the same temperature, with no freezes.

Specs: Core i7-8950HK, 32GB RAM, nVidia RTX2070 Max-Q (hence my suspicions about throttling of some sort)

Here's a gist with my Halo MCC logs, in case somebody wants to help me take a look: https://gist.github.com/rjbozzol/a0e06c287fae223c33505ef4a22f1656

@sudoWiz You can place custom compatibility tools in ~/.steam/root/compatibilitytools.d. By default, Steam should already have created the ~/.steam/root folder, but compatibilitytools.d won't exist, you can just make the folder yourself and place the (extracted) custom proton version in there. You should have one folder for each custom version of proton.

Thank you! This worked. I was able to launch the game and get to the sign-in screen. I keep getting Fatal Error after a few seconds with the game open though...

i few updates from my testing over the past few hours:

i found a fix for https://github.com/ValveSoftware/Proton/issues/2907#issuecomment-561843781
disabling PROTON_LOG makes the game work fine on an already existing prefix.
as far as i can tell, the game runs almost flawlessly with this configuration. with the exceptions that performance is terrible if Vsync is enabled. sometimes there is sound, sometimes there isnt.
however, i need to sign into Xbox Live every launch.

this build: https://github.com/rkfg/proton-ge-custom/releases/tag/Guy1524 does not launch the game at all. even if ESYNC and FSYNC are both disabled.

Just chiming to say that Halo Reach (campaign) works great for me when using this version of proton: https://github.com/rkfg/proton-ge-custom/releases/tag/Guy1524 It didn't work with stock versions of proton. I didn't need to do anything special aside from downloading that custom release and making steam use it.

My specs:
8700k/1080ti
ubuntu 19.04 / 5.0.0-32
nvidia 418.56 (installed using ubuntu's built in tooling)

@bendamschke a log file would be great :)
use PROTON_LOG=1 %command% as launch options
i tested Proton-4.21-Guy1524 and it works as good as the one before :)

I was only able to try a few things so far that all did not work out. Proton-GE patch on the 5.4 kernel got me an xbox sign in, but signing in kept on restarting anew and always ended with the retry button. Then I went to the genric kernel 5.0.0 and tried to compile proton-ge myself. Here launching the game with proton-ge always gives me a fatal error and launching with the version by @rkfg has no xbox sign in but always only the retry button.
The custom wine build died in the vagrant vm during the make process with a row of fatal errors all related to the dxvk files upon compiling with mingw. Is there something to add to mingw or dxvk in the VM ? I tried to compile proton-GE.

P.S.: yet have to try this version: https://github.com/rkfg/proton-ge-custom/releases/tag/Guy1524

Anybody else playing on Navi and having issues like this?
Using LLVM 9.0 with Mesa master (currently c9acf07)

@jerbear64 I'm seeing the same artifacts with my 5700 XT on mesa 19.2.6-1 (LLVM 9.0) with linux 5.3.9-3

@jerbear64 Playing on a 5700, can confirm also have these issues. I had these issues on both MESA 20-git and 19.2.6-1 with Linux 5.4.1.

Performance seems kinda crap on my laptop ( 860m, i7-4810MQ, ubuntu 18.04)

Can I ask what driver branch you're using @gburgwardt ? I also have the 860m and the textures for terrain are rending in as just black. Night vision still outlines them properly.

On Ubuntu 18.04 with kernel 5.3.0-22-generic, python complains about an unknown URL type in a file from the patched proton version on game launch. Here's what seems to be the relevant line:

File "/home/jfoo/.local/share/Steam/compatibilitytools.d/Proton-4.21-Guy1524/protonfixes/corefonts.py", line 48, in download_file with urllib.request.urlopen(url, files) as font:

Here's the full output:

Exception in thread Thread-1: Traceback (most recent call last): File "/usr/local/lib/python3.6/threading.py", line 916, in _bootstrap_inner self.run() File "/usr/local/lib/python3.6/threading.py", line 864, in run self._target(*self._args, **self._kwargs) File "/home/jfoo/.local/share/Steam/compatibilitytools.d/Proton-4.21-Guy1524/protonfixes/corefonts.py", line 48, in download_file with urllib.request.urlopen(url, files) as font: File "/usr/local/lib/python3.6/urllib/request.py", line 223, in urlopen return opener.open(url, data, timeout) File "/usr/local/lib/python3.6/urllib/request.py", line 526, in open response = self._open(req, data) File "/usr/local/lib/python3.6/urllib/request.py", line 549, in _open 'unknown_open', req) File "/usr/local/lib/python3.6/urllib/request.py", line 504, in _call_chain result = func(*args) File "/usr/local/lib/python3.6/urllib/request.py", line 1388, in unknown_open raise URLError('unknown url type: %s' % type) urllib.error.URLError: <urlopen error unknown url type: https>
This is only one thread's output, but this exact output is repeated for threads 2 through 11. This seems to be the bug that causes the xbox live error. I'll start working on a fix for this later today.

@protonpunisher this seems to be relevant. Your Python installation might be broken: HTTPS support is only available if the socket module was compiled with SSL support.

I got it working :)

My code is an awful hack, but I just wanted to get it working at all at the moment.
The important part is that BCryptSignHash is expected to compute the SHA1 hash and return a IEEE P1363 formatted DSA signature:
https://stackoverflow.com/questions/20992760/understanding-bcryptsignhash-output-signature
Cutting the result of pgnutls_privkey_sign_hash in half and truncating the remainder or filling it with zeroes worked often enough to log in in.
It will take a few tries though.
A proper implementation should extract r and s properly from GnuTLS's signature format.

I hope this helps.

For completeness, I attatched the diff to the current wine repo with all wine-staging patches applied:
halo_mcc_hack.txt
However, I recommend you implement it properly from scratch.
reach_on_linux

Update: try the second version.
Many comments claim to have issues with that one,
but at least for me it completely avoids the retries that are necessary with the first version and any issues the resulting failed connection attempts might bring with them (such as your IP being temporarily blocked from signing in).

Where do you place the diff patch at? That tidbit would have been nice to include in the fix.

Performance seems kinda crap on my laptop ( 860m, i7-4810MQ, ubuntu 18.04)

Can I ask what driver branch you're using @gburgwardt ? I also have the 860m and the textures for terrain are rending in as just black. Night vision still outlines them properly.

I can check for sure when I get home but I'm pretty sure it's just whatever Ubuntu 18.04 installed automatically

So I'm still having my weird hanging at menu with black background (and halo logo, music playing) where the entire system freezes and I have to force a reboot.
steam-976730.log

Edit: system info

Anyone have any thoughts?

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

Just putting this here, I orginially tried all three different protons (Proton-4.21-GE-1/Proton-4.21-Guy1524/Proton-MCC) and none of them worked. However, I looked further up in this forum at @exezin's posts and worked on upgrading that lib. To get the game running, I ended up installing dev-libs/nettle (4.3.1) and net-libs/gnutls (3.6.7) while using the Guy1524 version of proton. (Launch option:PROTON_NO_ESYNC=1) This post might help someone else.

Ok I got till here, then didnt know what to enter :dancer: xD

Bildschirmfoto vom 2019-12-05 18-48-26

Seems that the kernel matters too. On 5.0.0 I always got only the retry window immediantly, disregardless of what wine compilation. On 5.4.2 it works with the version from Glorious Eggroll ! But only one time so far and the performance is 1 fps or so lol

You need a Microsoft account.

work for me, but floor/ground if black same as in jerbear64 post
thanks for great work @Guy1524

@rkfg @Guy1524

I hurried up saying that there are no problems. After four episodes I went to bed, the next day I found out that the game crashes when I log again into Xbox Live account. I tried uses in turn both builds https://github.com/rkfg/proton-ge-custom/releases/tag/halo_mcc_test and https://github.com/rkfg/proton-ge-custom/releases/tag/Guy1524
But the game crashes again and again. I decided to try to remove the Wine prefix folder and it solve the problem. But when I had quit the game and launch again the crash is reproduced again.

So I can describe this problem:
After successful login information about login is stored in the user profile in wine prefix and after restart the game, this information tries used and causes the game crash.

steam-976730.log

Screenshot from 2019-12-05 23-54-24

@rkfg @Guy1524

I hurried up saying that there are no problems. After four episodes I went to bed, the next day I found out that the game crashes when I log again into Xbox Live account. I tried uses in turn both builds https://github.com/rkfg/proton-ge-custom/releases/tag/halo_mcc_test and https://github.com/rkfg/proton-ge-custom/releases/tag/Guy1524
But the game crashes again and again. I decided to try to remove the Wine prefix folder and it solve the problem. But when I had quit the game and launch again the crash is reproduced again.

So I can describe this problem:
After successful login information about login is stored in the user profile in wine prefix and after restart the game, this information tries used and causes the game crash.

steam-976730.log

does the game behave differently for you if you remove all launch options, but keep "%command%"?

Halo: MCC does not launch for me on Fedora 31. As soon as I click play, it closes. There isn't even a splash screen. My launch options in Steam are PROTON_LOG=1 PROTON_NO_ESYNC=1 %command%.

  • OS: Fedora 31
  • Kernel: 5.3.13-300.fc31.x86_64
  • Proton: 4.21-GE-1-MCC-3-gab720e2
  • GPU: GTX 1080 Ti

    • Nouveau

    • RPMFusion

    • Negativo17 (current)

    • Manual installation of Nvidia's drivers

Any ideas as to what I am doing wrong? Thanks

======================
Proton: 1575502137 4.21-GE-1-MCC-3-gab720e2
SteamGameId: 976730
Command: ['/mnt/84940C56940C4CDC/Games/SteamLibrary/steamapps/common/Halo The Master Chief Collection/MCC/Binaries/Win64/MCC-Win64-Shipping.exe']
Options: {'noesync'}
======================
ERROR: ld.so: object '/home/administrator/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
wine: /mnt/84940C56940C4CDC/Games/SteamLibrary/steamapps/compatdata/976730/pfx is not owned by you
ERROR: ld.so: object '/home/administrator/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/administrator/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
wine: /mnt/84940C56940C4CDC/Games/SteamLibrary/steamapps/compatdata/976730/pfx is not owned by you

Edit:

Either moving the game to the drive where GNU/Linux is installed or following https://github.com/ValveSoftware/Proton/issues/1180 works on my end. There is also this guide which may help, however if you have a syntax error in /etc/fstab, you will fall back into emergency mode: https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows

I've built python 3.6.9 with openssl support, and now the error messages I posted earlier are gone. However, the behavior of the game is unchanged; I still get the xbox live error message. Spamming retry does no good.

Moreover if I try to relaunch it after an initial attempt, the game will not start. As soon as I click play, it closes, no splash screen; just like @bendamschke described.

Kernel: 5.3.0-22-generic
OS: Ubuntu 18.04

@bendamschke

wine: /mnt/84940C56940C4CDC/Games/SteamLibrary/steamapps/compatdata/976730/pfx is not owned by you

try chmod -R 755 /mnt/84940C56940C4CDC/Games/SteamLibrary/steamapps/compatdata/976730/pfx
a bad practice i know, but it should work.

does the game behave differently for you if you remove all launch options, but keep "%command%"?

Yes, this is weird, but deleting the key PROTON_LOG=1 really helped solve this error.
It's possible fix this bug?

@bendamschke Did you perhaps run something via sudo/root at some point? I'd recommend deleting the prefix and try to run the game again, making sure you're running steam/etc as your user, not root. This includes manually running things like winecfg.

@bendamschke Run ls -l in the prefix and see what user/group owns the files and folders. Are you perhaps running this in a partition/drive that uses some non-unix filesystem like NTFS or something?

@bendamschke you need to chown the directory. chown -R myusername:myusername path/to/pfx, use with caution though.

@bendamschke The steam compatdata directory (the directory you mentioned in your previous comment), yes.

@bendamschke what filesystem is /mnt/84940C56940C4CDC ?

Edit; You also likely need to run chown as root, seeing as the directory is currently owned by root.

Am I able to change the directory of the Proton's prefix? I'll change it to the home directory if so.

I believe the prefix directory is in the same steam library as the game, so if you can try moving the games install location to a steam library in your ~/ directory if that's what you want.

Otherwise, I have no idea how to manually define the prefix directory for Proton to use. Hopefully someone else here can fill you in on how to do that.

Have you tried running sudo chown -R myuser:myuser path/to/prefix yet?

I suspect its a filesystem issue, then. Do other Proton games installed to the same partition work?

@NTMan

It's possible fix this bug?

anything is possible. but we'd need alot more information about this bug.

Does anyone know where MCC stores its video settings on the disk? Still trying to diagnose my freezing issue and I'd like to try to set it to launch windowed...

I just made an updated patch which allows bcrypt to fallback to an identical internal function with the same signature if the public one isn't available. While even this function isn't present in the gnutls of the Steam Runtime, it is present in the gnutls of Ubuntu 18.04.

An automatic cherry-pick can be used to get this function into the Steam Runtime, but I haven't been able to test if this works on the Steam Runtime, as for some strange reason I can't get any version of Proton (even a Valve build) to actually use the steam runtime libraries over my Arch system libraries.

If this also happens on 18.04 (using system libraries over runtime libraries), this Proton build should work there to. Testers very much appreciated:

Patch

Build

@Guy1524 Do I need the full 7zip or can I untar the proton-dist.tar?

I think you just extract the contents of the archive I sent into a folder name of your choosing in compatibilitytools.d, but I'm not certain. Pinging @GloriousEggroll and @Tk-Glitch as they might know.

Looks like Steam doesn't recognize the build. Might try building it with proton-ge-4.21 myself

Oh! It's because you're missing a compatibilitytool.vdf.

Hmm, I wonder why that didn't generate w/ make deploy, it did generate when I used make install

I always end up with errors when I try to build proton-ge-4.21 . The nested error I can at least rule out with NO_NESTED_MAKE=1 when invoking make, dunno if thats good tho.

make[2]: *** [Source/CMakeFiles/ctest.dir/build.make:99: bin/ctest] Error 1 make[2]: Leaving directory '/home/vagrant/build/obj-cmake32' make[1]: *** [CMakeFiles/Makefile2:2418: Source/CMakeFiles/ctest.dir/all] Error 2 make[1]: Leaving directory '/home/vagrant/build/obj-cmake32' make: *** [Makefile:163: all] Error 2 make: Leaving directory '/home/vagrant/build/obj-cmake32' make[1]: *** [../proton/build/makefile_base.mak:1067: cmake32-intermediate] Error 2 make[1]: Leaving directory '/home/vagrant/build' make: *** [../proton/build/makefile_base.mak:17: nested_make] Error 2

@Guy1524 Well, ran it and my game no longer freezes at launch, but the halo logo on the right is infinitely doing a loading thing and elementary wants to kill the game for being unresponsive. Gonna try a few things

@vsod99 can you send me both a PROTON_LOG w/ WINEDEBUG=+bcrypt and the output cat /proc/(halo PID)/maps | grep gnutls when it is running?

@Guy1524, please use make redist when sharing a Proton build (from https://github.com/ValveSoftware/Proton/issues/2907#issuecomment-561641922).

On the Vega it runs perfect with proton-ge-4.21 the very first version:

www.youtube.com/watch?v=q72YGmByBMs

Thank you Kisak, here it is.

I've also built gnutls 3.4.10 (the version in the steam runtime) with commit 2409d03e applied. If my recent proton build isn't working, try replacing the library in your steam runtime with this build. Make sure to back your current one first.

Path: $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libgnutls.so.30.6.2

@mathew2214

anything is possible. but we'd need alot more information about this bug.

Which additional information are needed?
I am ready for provide any debug logs. Please guide me, I am want to help.

Thank you Kisak, here it is.

Thanks! Hopefully this isn't coincidental but that worked first time(launched twice successfully in a row), so far none others have worked for me except GE's version which would take like 10 fatal errors and 10 attempts to get in.
This version also automatically logged me in too which was nice. Thanks for yours and everyone else's efforts :)

I'm having an issue with campaign coop, playing with a friend who is on Windows running the EAC-disabled version, after a few minutes we get booted to the menu with a popup that states "an error occurred during co-op play".

We also tried some multiplayer PVP, this seems to work fine and we where playing for a good 10 minutes or so without any issues cropping up.

Can't get a log though, as enabling PROTON_LOG=1 causes the game to give a fatal error when loading up.

Still using this version of Proton, and this (30_3.6.4) version of gnutls.

Can also confirm that this is specific to coop, singleplayer campaign runs without any issues at all.

Same issue with campaign coop and EAC disabled, it's probably triggered on checkpoints. We've had one successful checkpoint saved, though. It was the very first one at the start of the first mission, Noble Actual.
P. S. If anyone can explain how to tell game to write its log to a file, that would be great. I've tried adding LOG=MCC.log (and -log LOG=MCC.log) to the command-line arguments, but the game doesn't produce a file.

@Mattiox Glad to hear that it works. Out of curiosity, what distribution are you on?

is anybody able to get a log from the co-op campaign crash? i tried but my game crashes at title screen if i enable logging.

@Mattiox Glad to hear that it works. Out of curiosity, what distribution are you on?

Ubuntu 18.04 LTS, kernel 5.2.5

By the way someone mentioned not getting achievements earlier and that's the same for me, has anyone else got achievements? Not super important but curious to know if it's just me.

@Mattiox Glad to hear that it works. Out of curiosity, what distribution are you on?

Ubuntu 18.04 LTS, kernel 5.2.5

By the way someone mentioned not getting achievements earlier and that's the same for me, has anyone else got achievements? Not super important but curious to know if it's just me.

nope, none

@Mattiox Glad to hear that it works. Out of curiosity, what distribution are you on?

Ubuntu 18.04 LTS, kernel 5.2.5
By the way someone mentioned not getting achievements earlier and that's the same for me, has anyone else got achievements? Not super important but curious to know if it's just me.

nope, none

I did. I have like 2 achievements. I think I might've gotten them on GE and not the MCC proton version with the pinned libraries.

Having the xbox live connection failure regardless of which Proton build or pinned libraries are used above.

Ubuntu 18.04, nVidia card, gets to the startup screen but fails to connect to xbox live. Any ideas on getting this working since no idea thus far from this has worked?

Having the xbox live connection failure regardless of which Proton build or pinned libraries are used above.

Ubuntu 18.04, nVidia card, gets to the startup screen but fails to connect to xbox live. Any ideas on getting this working since no idea thus far from this has worked?

So far for me on Ubuntu only proton-ge-4.21 by glorious eggroll works. I delete the winepfx upon startup and then press retry undtil the login pops up. Then I login and do that for a couple of times, until it clings and logs in.
So far tho I only succeeded two times with that.

I'm still experiencing the exact same thing as teward with the same OS, Ubuntu 18.04, and an Nvidia card.

@Mattiox are you using any launch options? Are you using an Nvidia card?

I'm on 18.04 with kernel 5.3.0-22-generic and I can't get past the login screen, even with the latest build.

@teward It appears that the libgnutls30 package isn't a default package in Ubuntu 18.04. Until the version of the library in the runtime is updated, try installing the package via sudo apt install libgnutls30.

Holy shit boys. I did it.
If anyone experiences an unresponsive frozen window on launch, here is what worked for me:
Go to $HOME/.steam/steam/steamapps/compatdata/976730/pfx/drive_c/users/steamuser/AppData/LocalLow/MCC/Saved/Config/WindowsNoEditor/ and open GameUserSettings.ini
Scroll down and look for ResolutionSizeX, you should see a bunch of flags here like this
Set the following:

ResolutionSizeX=640
ResolutionSizeY=480
LastUserConfirmedResolutionSizeX=640
LastUserConfirmedResolutionSizeY=480
WindowPosX=0
WindowPosY=0
FullscreenMode=2
LastConfirmedFullscreenMode=2
PreferredFullscreenMode=0

Make sure the resolution sizes and the last user confirmed resolutions sizes match or this won't work!

Once you get a successful launch, you can adjust graphics settings as necessary.

Alternatively, I'll upload my configuration file here in a moment.

@Guy1524 build works great so far!

System info: https://gist.github.com/vsod99/d681243b444291af1f4f4be8337dd79b
Kernel Version: 4.15.0-72-generic
Mesa-vulkan-drivers version: 19.2.1-1ubuntu1-18.04.1-ppa2
Startup Flags: PROTON_LOG=1 PROTON_NO_ESYNC=1 DXVK_HUD=1 %command%

@Mattiox are you using any launch options? Are you using an Nvidia card?

I'm on 18.04 with kernel 5.3.0-22-generic and I can't get past the login screen, even with the latest build.

No launch options and I'm on Nvidia too(1060, driver 430.50), I haven't done anything fancy other than having libgnutls30 installed like Guy1524 said above.

Hello @vsod99, %command% in a game's launch options allows you to put env variables in front of the game executable. There should only be one. EX: FOO=bar PROTON_VAR=1 %command% -gameopt

Hello @vsod99, %command% in a game's launch options allows you to put env variables in front of the game executable. There should only be one. EX: FOO=bar PROTON_VAR=1 %command% -gameopt

Good call, just got lazy with copy pastes haha. Thanks.

Here's an updated Proton-GE release with Guy's latest patch added. I launched the game twice and was able to login with no issues both times. I also did not have to modify the steam runtime or do anything with gnutls:

https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/4.21-GE-1-MCC-2

@teward It appears that the libgnutls30 package isn't a default package in Ubuntu 18.04. Until the version of the library in the runtime is updated, try installing the package via sudo apt install libgnutls30.

Will look once I get in front of my computer again and see if that fixes it. More to come...

im getting many graphic artifacts.
Debian 10, Linux 5.3.9, Navi 10, mesa 19.2.6-1 (LLVM 9).

nothing that is close to me has any artifacting at all. its only once things are a distance away.

Screenshots:

20191205170424_1
20191205170426_1
20191205170743_1
20191205170747_1
20191205170809_1
20191205170811_1
20191205171358_1
20191205171926_1
20191205172033_1
20191205172233_1
20191205172347_1
20191205172402_1
20191205172429_1
20191205172454_1
20191205172715_1

Here's an updated Proton-GE release with Guy's latest patch added. I launched the game twice and was able to login with no issues both times. I also did not have to modify the steam runtime or do anything with gnutls:

https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/4.21-GE-1-MCC-2

Awesome works on first shot and the second and the third :).
Thanks @GloriousEggroll and @LukasRuppert

@Guy1524 doesn't work here, because I have that installed. Will have to do some testing with the latest GE build that was just stated

Here's an updated Proton-GE release with Guy's latest patch added. I launched the game twice and was able to login with no issues both times. I also did not have to modify the steam runtime or do anything with gnutls:

https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/4.21-GE-1-MCC-2

Sweet holy crap, this works perfectly with gnutls installed. No issues on first launch under this! Time to go and Single Player the heck out of this again!

Thank you Kisak, here it is.

How do we implement the patch?

im getting many graphic artifacts.
Debian 10, Linux 5.3.9, Navi 10, mesa 19.2.6-1 (LLVM 9).

nothing that is close to me has any artifacting at all. its only once things are a distance away.

Screenshots:

I am not up to speed regarding Navi support but being on the 5.4 kernel and using mesa 20.0, you should do with AMD. So far always going for the latest has worked out well on the Vega.

I'd like to say a huge thank you to @GloriousEggroll and everyone else who worked on this! eggroll's latest patch is the first one that has let me log in and get to the main menu. I got in a firefight custom game and just started walking around. This is a huge success. Thanks again to all who worked on this. I'll do some more testing and report if anything unusual comes up.

The latest Proton-4.21-Guy1524 works for me on Debian 10 stable with 4.19.0-6 kernel, Nvidia 970 with proprietary driver 418.74, in both no-EAC and EAC modes. I did not try multiplayer. I'm not getting achievements but maybe it's on purpose? (I would be curious to know)

mathew2214: im getting many graphic artifacts.
Debian 10, Linux 5.3.9, Navi 10, mesa 19.2.6-1 (LLVM 9).

nothing that is close to me has any artifacting at all. its only once things are a distance away.

Yeah, Navi seems to have issues at the moment. Your artifacts look identical to mine. I captured a Renderdoc yesterday and plan to file a RADV bug report later tonight. I got a GPU hang trying to start the game with LLVM, and got the artifacts on ACO, but running the renderdoc on LLVM shows the same results, and since it works fine for most other people, I'm willing to bet it's a general RADV issue.

Performance seems kinda crap on my laptop ( 860m, i7-4810MQ, ubuntu 18.04)

Can I ask what driver branch you're using @gburgwardt ? I also have the 860m and the textures for terrain are rending in as just black. Night vision still outlines them properly.

nvidia-smi outputs

```+-----------------------------------------------------------------------------+
| NVIDIA-SMI 435.21 Driver Version: 435.21 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 860M Off | 00000000:01:00.0 Off | N/A |
| N/A 68C P0 N/A / N/A | 1911MiB / 2004MiB | 71% Default |
+-------------------------------+----------------------+----------------------+

I'd like to say a huge thank you to @GloriousEggroll and everyone else who worked on this! eggroll's latest patch is the first one that has let me log in and get to the main menu. I got in a firefight custom game and just started walking around. This is a huge success. Thanks again to all who worked on this. I'll do some more testing and report if anything unusual comes up.

It was @Guy1524 's patch that got it working, I just updated my build with it. Props to him and @LukasRuppert for the original patchwork

PROTON_LOG=1 %command% on Proton-4.21-GE-1-MCC-B2 tag showing co-op campaign disconnect/desync.

Sorry about the excessive size, had to wait 10 minutes or so for my testing partner to be available. Exited the game immediately after desync.

steam-976730.log

Also had a "MCC has crashed" error about 15 seconds into another firefight. Wasn't running with PROTON_LOG=1 at the time so no log for that.

Possible line of interest from the log: fixme:bcrypt:key_import_pair algorithm 11 does not yet support importing blob of type L"ECCPRIVATEBLOB"

I submitted a bug report for the Navi artifacting at https://gitlab.freedesktop.org/mesa/mesa/issues/2188.

Also having co-op campaign disconnecting us. Host is my girlfriend's log, and Client is my log.
steam-976730-host.log
steam-976730-client.log

Edit:
Using https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/4.21-GE-1-MCC-2

In the meantime, I can confirm the Navi issues are not present on AMDVLK v2019.Q4.3.

Using GE's proton, I am in game. Running a Vega VII and kernel 5.4.1 with RADV I hit some sort of kernel halt (see attached). Seems fine so far with AMDVLK though.

Note for others if they have an issue of starting the game again: I was able to log in successfully once, but after the hard-crash when trying to pass the [press enter to continue] first part of the loading screen (which I assume connects to your account) the game would continue to just error out with "Fatal Error!". Unfourtunatly I lost the steam+proton logs of that event, sorry. But for those who have that issue of "Fatal Error before sign in", try purging the credential-manager cache to force a re-login. Protontricks is useful here protontricks 976730 regedit and delete keys under HKU\Software\Wine\CredentialManager\ (but not CM itself I assume). Screenshot also attached.

image

For the RADV hard-crash, I will continue poking that to see if I can capture more info on it and work with upstream... if I am not distracted by playing the game itself via AMDVLK instead. RADV kernel log snippet:
RADV-MCC-KernHalt.log

Kernel: 5.4.1-050401-generic (Ubuntu mainline tool based)
Mesa: Mesa 20.0.0-devel (git-0eb78a0 2019-11-30 bionic-oibaf-ppa)
GPU: Radeon VII (VEGA20)

Also having co-op issues didn't think to grab logs will update when I can. Anyone else have co-op working at all?

if the Navi artifacting gets fixed. PLEASE do not fix the ghosts.


Screenshots

20191205195349_1

20191205195350_1

20191205195353_1
20191205195355_1
20191205195358_1
20191205195359_1
20191205200201_1
20191205200203_1
20191205200204_1
20191205200212_1
20191205200213_1
20191205201720_1
20191205201721_1
20191205201722_1
20191205210920_1
20191205210920_2
20191205210921_1

I am experiencing co-op disconnects, which are preceded by horrible lag.

Firefight co-op, both spartan vs elite and two spartans, run perfectly. No issues to be found with firefight.

Game was super slow to load the "Player ID" menu from the main menu, but it did load.

Has anybody the anti-cheat enabled multiplayer? I've started the game with anti cheat enabled and can confirm that the game launches and lets you log in, but I haven't played on any multiplayer servers for fear of being banned.

I can also confirm that 2 player custom game slayer matches run perfectly.

Running this on Ubuntu 18.04 with an Nvidia card.

Reporting in: with the latest _MCC Eggroll Special_ build and shoving gnutls override libs in the pinned directory, I've been able to play a sustained 60fps (maybe some framedrops) single-player session of about an hour, with no crashes.

i7-8700k, 32GB DDR4 RAM, GTX1070 Ti, nVidia Binary Drivers 435.21, Ubuntu 18.04 LTS

Has anybody the anti-cheat enabled multiplayer? I've started the game with anti cheat enabled and can confirm that the game launches and lets you log in, but I haven't played on any multiplayer servers for fear of being banned.

Even if you start the game in EAC-enabled mode, attempting to join a multiplayer match gives a "EAC not enabled" error.

Has anybody the anti-cheat enabled multiplayer? I've started the game with anti cheat enabled and can confirm that the game launches and lets you log in, but I haven't played on any multiplayer servers for fear of being banned.

Even if you start the game in EAC-enabled mode, attempting to join a multiplayer match gives a "EAC not enabled" error.

That's odd. So the EAC enabled mode doesn't function properly and matchmaking is inaccessible.

I've experienced strange sound bugs, but the sound is mostly solid. I've only had a single crash so far.

In terms of achievements unlocking, is it possible it needs to go through Xbox live first? I noticed that adding friends in MCC to Xbox live did not actually add them.

In terms of Co-op campaign, perhaps the game is looking for EasyAntiCheat (or Xbox Live) to be enabled as well, just as the Multiplayer does. However, it just doesn't have a GUI blocker? SinglePlayer Campaign seems to run just fine. (The game's website states that the Co-op game should be using a P2P connection.)

Possible line of interest from the log: fixme:bcrypt:key_import_pair algorithm 11 does not yet support importing blob of type L"ECCPRIVATEBLOB"

@aeikum That's not the the one, I think. I have the fixme from above implemented, and the error during campaign co-op playthrough still occurs.

I wonder what those lines could mean, though:

warn:seh:OutputDebugStringA "data_mine_usability_set_mission_segment: mission_start\n"
warn:seh:OutputDebugStringA "data_mine_usability_set_mission_segment: m10_01_1stbowl\n"

The disconnect seems to be happening some time after the last message appears...

Looks like the GE build makes this game run for the most part! Will Valve add these patches/fixes into the next release of Proton so all you will have to do is download the correct Proton version within steam and set Halo MMC to that Proton version and have a working game?

Or will we have to always use the GE builds and jump through some hoops to install the GE versions.

Looks like the GE build makes this game run for the most part! Will Valve add these patches/fixes into the next release of Proton so all you will have to do is download the correct Proton version within steam and set Halo MMC to that Proton version and have a working game?

Or will we have to always use the GE builds and jump through some hoops to install the GE versions.

Have you tested matchmaking ?

Have you tested matchmaking ?

I do not own the game sadly, but by reading this page it seems the campaign works which is progress compared to before no one was able to get passed the xbox live login screen.

@trymeouteh

  • Campaign works with some graphical issues
  • Firefight works, though had a desync issue at one point and had to restart game client to get it working again. Might not be related to proton, could be a base game issue
  • Co-op campaign desync's after a random number of checkpoints are reached. Had it desync on first checkpoint my first test, and on second checkpoint my second test
  • Uses Easy AntiCheat for matchmaking, so any matchmaking/PvP won't work

@valarnin just to note, PvP does work via custom lobbies, you just can't use matchmaking. I've played for about 10 minutes or so with a friend who was on Windows and we had no desync/disconnection issues in PvP.

I get some weird graphics glitches with an nVidia 1070 gtx and the 435.19.03 drivers running on 4.21-GE-1-MCC-2. I'll update to latest 435 release and test again, but can confirm that the current setup really doesn't like the helicopter blades and some other stuff, including some potentially-epilepsy-inducing flashing in firefight.

@valarnin on the same GPU (GTX 1070) but driver version 440.31, I'm not getting any graphical glitches, the helicopter blades are also fine for me.

Firefight also works fine for me, no graphical glitches at all that I can notice.

played firefight with 2 friemds on windows clients in a custom lobby. went for about 2 hrs before i got a GPU hang out of nowhere.

Played using the Latest GE last night had 2 Crashes, Played custom matches with about 12 people for several hours, then played Firefight with 2 friends for another hour or two. Everyone else was on Windows, and everything worked as expected. Tried Co-op campaign can't get past the second checkpoint without desync. Didn't have logs running will try later when I find someone that actually wants to test things with me.

Managed to finish the entire campaign almost entirely on the first patched GE build, though upgraded to the latest one to get rid of the login failures.
Not a single graphical issue I could see throughout, with an RX580 and Mesa 19.2.1.

Haven't gotten any friends together to try firefight or custom games, though they both seem to work just fine solo. Matchmaking is of course nonfunctional, and achievements seem to not work either.

is this the error we need to chase with coop?
"[1205/214417.550:WARNING:cert_verify_proc_win.cc(111)] Unknown error -2146762482 mapped to net::ERR_FAILED\n"

it could also be this:
1612.413:002c:002d:warn:seh:OutputDebugStringA "[1205/214405.441:ERROR:network_change_notifier_win.cc(156)] WSALookupServiceBegin failed with: 8\n"

Looks like the GE build makes this game run for the most part! Will Valve add these patches/fixes into the next release of Proton so all you will have to do is download the correct Proton version within steam and set Halo MMC to that Proton version and have a working game?

Or will we have to always use the GE builds and jump through some hoops to install the GE versions.

The plan is to include @Guy1524's work in the next 4.11 release, yes.

Running the latest GE build, and things are interesting with textures. Loaded up and started a firefight just fine. Played a little of that and decided to try campaign again since it seemed fixed. Started the campaign up, and terrain textures not loading again. I've got that log file that should cover both the good firefight and the bad campaign rendering.

GPU: nvidia 860m
Drivers: 440 branch

I saw someone using the 435 drivers for the same gpu just fine, but hadn't given it a go.

Also, unfortunately the log file is roughly 80mb, so I'm having trouble finding a way to get github to upload it as a gist.
steam-976730.zip

Hello @LordLemons, in general Proton logs compress well. You can try throwing it in an archive before drag and dropping it to the comment box.

Looks like the GE build makes this game run for the most part! Will Valve add these patches/fixes into the next release of Proton so all you will have to do is download the correct Proton version within steam and set Halo MMC to that Proton version and have a working game?
Or will we have to always use the GE builds and jump through some hoops to install the GE versions.

The plan is to include @Guy1524's work in the next 4.11 release, yes.

Awesome - any progress on EAC? (don't mean to be pushy, just curious)

Looks like the GE build makes this game run for the most part! Will Valve add these patches/fixes into the next release of Proton so all you will have to do is download the correct Proton version within steam and set Halo MMC to that Proton version and have a working game?
Or will we have to always use the GE builds and jump through some hoops to install the GE versions.

The plan is to include @Guy1524's work in the next 4.11 release, yes.

Awesome - any progress on EAC? (don't mean to be pushy, just curious)

There's absolutely no way we're gonna be able to run the Windows Version of EAC without EAC working with us because of how EAC works, and then Microsoft would have to opt in to supporting that. Unfortunately that means we're probably SOL on that front.

Looks like the GE build makes this game run for the most part! Will Valve add these patches/fixes into the next release of Proton so all you will have to do is download the correct Proton version within steam and set Halo MMC to that Proton version and have a working game?
Or will we have to always use the GE builds and jump through some hoops to install the GE versions.

The plan is to include @Guy1524's work in the next 4.11 release, yes.

Awesome - any progress on EAC? (don't mean to be pushy, just curious)

There's absolutely no way we're gonna be able to run the Windows Version of EAC without EAC working with us because of how EAC works, and then Microsoft would have to opt in to supporting that. Unfortunately that means we're probably SOL on that front.

Any way end-users could help with this? Reaching out to Microsoft perhaps? (I know it's a long shot but still)

@kisak-valve thanks, was able to upload and edit the post.

is this the error we need to chase with coop?
"[1205/214417.550:WARNING:cert_verify_proc_win.cc(111)] Unknown error -2146762482 mapped to net::ERR_FAILED\n"

it could also be this:
1612.413:002c:002d:warn:seh:OutputDebugStringA "[1205/214405.441:ERROR:network_change_notifier_win.cc(156)] WSALookupServiceBegin failed with: 8\n"

Inverse Integer Error?
`"[1205/214417.550:WARNING:cert_verify_proc_win.cc(111)] Unknown error -2146762482 mapped to net::ERR_FAILED\n"``
It pops up a few times it looks like. I don't know enough about what this is doing other than to point out that that looks suspicious to me.

Here is log for the crash when PROTON_LOG=1 is set. The loading animation spins for a few minutes and then the game exits. Tried with and without esync/fsync.

Full launch options: PROTON_LOG=1 PROTON_NO_ESYNC=1 PROTON_NO_FSYNC=1 DXVK_HUD=fps %command%

I also have random crashes after 5-30 minutes of playing but I can't get a log of those because of this issue.

Full system info
steam-976730.log

@delet-this I don't see anything wrong in the steam log. Could try taking a look at 'Z:/data/SteamLibrary/steamapps/common/Halo The Master Chief Collection/crash_info.txt' to see if there is anything inside there.

@Promethus029 Basically nothing, just a build number and player session id

While doing some digging the files, I found logs for EAC's launch for Halo. In short, it's trying to download a wine64 version of EAC, but there is none. It successfully connects with a browser and returns a downloadable file of 0 bytes. Just thought that was interesting.

Loader file: actual attempt at downloading
gamelauncher: EAC's result

gamelauncher.log
loader.log

@Promethus029 Yes, this is well known, EAC looks for wine specific exports and checks to see if the game supports wine AC.

In the past, smite has supported this, but now no games have a wine AC blob.

It is trivial to hide these exports from EAC, but then it will try launching the windows version of the AC involving a kernel driver, and that will likely never work in wine. (I spent months working on it before giving up :stuck_out_tongue: )

@Promethus029 Yes, this is well known, EAC looks for wine specific exports and checks to see if the game supports wine AC.

In the past, smite has supported this, but now no games have a wine AC blob.

It is trivial to hide these exports from EAC, but then it will try launching the windows version of the AC involving a kernel driver, and that will likely never work in wine. (I spent months working on it before giving up stuck_out_tongue )

I was under the impression that Epic was involved in getting wine support rolling eventually, though.

e.g. https://twitter.com/TeddyEAC/status/1125678854390067200
https://twitter.com/TimSweeneyEpic/status/1150536446807334914

Though I imagine this will require initiative on the developer's part, which I'm not super confident for especially in Microsoft's case...

Though I imagine this will require initiative on the developer's part, which I'm not super confident for especially in Microsoft's case...

This is why getting vocal about it could help, especially since "Microsoft loves Linux" marketing ; it would not be a good stand point to now being "top opensource contributor" and not allowing paying customers not to get what they paid for, especially in this "DRM is evil" climate. Yes, I know I make it sounds very simple and basic on all aspects, but I wanted it to be as summarized as possible.

To keep it simple and objective: Microsoft likes Linux when it meets business objectives (i.e; Azure, GitHub); this is unrelated to those business objectives.

To keep it simple and objective: Microsoft likes Linux when it meets business objectives (i.e; Azure, GitHub); this is unrelated to those business objectives.

It's not objective: Microsoft marketing is "just" "Microsoft loves Linux". It's not targeted marketing such as "Azure loves Linux". To keep it simple, like you said: you have then every right to call Microsoft out for any of their products linked to Linux, especially when the work is almost already done for them. Remember that a lot of Microsoft customers use Wine as well. And now we are beyond general public use.

5% of 2mil is 100k people
so around 100k people in Steam use Halo MCC under linux
maybe its enough to make EAC work...idc

While doing some digging the files, I found logs for EAC's launch for Halo. In short, it's trying to download a wine64 version of EAC, but there is none. It successfully connects with a browser and returns a downloadable file of 0 bytes. Just thought that was interesting.

Loader file: actual attempt at downloading
gamelauncher: EAC's result

gamelauncher.log
loader.log

@Promethus029 That's very important, I would create a ticket: https://www.easy.ac/en-us/support/game/contact/tech

We all need to make some noise online and highly request this game to work on Linux within Wine and Proton.

Installing wininet with winetricks gets rid of the WSALookupServiceBegin error, but then I get errors with

wine: Call from 0x7bc8edac to unimplemented function urlmon.dll.414, aborting
wine: Call from 0x7bc8edac to unimplemented function urlmon.dll.414, aborting
wine: Call from 0x7bc8edac to unimplemented function urlmon.dll.414, aborting
wine: Unimplemented function urlmon.dll.414 called at address 000000007BC8EDAC (thread 00f6), starting debugger...

which ultimately crashes the game within a couple minutes of starting.
I'm not sure what to do with this information, but I figure it might be helpful?
Edit: I suppose I should mention I'm using Proton-4.21-GE-1 (The one labeled MCC-2 in Releases).

That's interesting, actually. Maybe it's related to something used for Achievements? (Half into the game, no achievements here)

@trymeouteh Make noise where, though? Perhaps we should all discuss this at an appropriate location and figure out who we would be best off contacting about it to get our voices heard, and formulate some sort of emailing template which we could pass around on linux gaming subreddits and such.

Can we direct the petitioning Microsoft talk to another place, I'm not against it but it's cluttering up the reporting.
@SingularityAzure do you have any way of testing the spots you crashed at to see if you get achievements for those areas, I guess i might setup a Windows install to see if the speculation I'm seeing is correct.

@HadetTheUndying I didn't manage to make it past any of the menus. Crashes happened too soon after starting.

@HadetTheUndying I am dual booting on Ubuntu 19.04 and Windows 10. Feel free to poke me if you need any testing to be done.

For anyone interested, I have a friend on windows who confirmed, booting without EAC will not give achievements. They played level 4 without EAC and played level 5 with EAC, and level 5 unlocked achievements, while level 4 achievement remained locked.

For anyone interested, I have a friend on windows who confirmed, booting without EAC will not give achievements. They played level 4 without EAC and played level 5 with EAC, and level 5 unlocked achievements, while level 4 achievement remained locked.

are you saying they get COOP working under proton?
My mate is runing Ubuntu 19.04 and after 30-40 seconds in a mission we both get a generic "error has occured" and then we get booted from the co-op session.

I also get the generic coop error message. I was playing with a friend, we both had EAC disabled, and after a few minutes we got the error. I think the coop is p2p, so there's probably something going bad under the hood causing the game to desync.

I have made a thread on the Steam Forums asking for EAC support and documenting some Linux stuff
https://steamcommunity.com/app/976730/discussions/0/1752394382345304666/

Someone who offered to do some testing, test a campaign mission with two windows boxes, both with EAC off. If you get that generic error, it's EAC. If you don't and complete the mission, it's a desync issue.

I was going to have two of my squad mates do it, but they're almost never on at the same time.

Someone who offered to do some testing, test a campaign mission with two windows boxes, both with EAC off. If you get that generic error, it's EAC. If you don't and complete the mission, it's a desync issue.

I'll try to look into this this week if I manage to find a friend online to play with.

Someone who offered to do some testing, test a campaign mission with two windows boxes, both with EAC off.

I with my friend pass campaign in co-op we are both using Linux.

Linux(EAC off) + Linux(EAC off) = Campaign Error
Linux(EAC off) + Windows(EAC off) = Campaign Error
Linux(EAC off) + Windows(EAC on) = Campaign Error
Windows(EAC on) + Windows(EAC on) = Campaign Works
Windows(EAC off) + Windows(EAC off) = ????

If the Windows boxes get a campaign error with EAC off, it can imply that EAC is attempting to work while in this 'P2P' connection. If the Windows boxes are able to complete a mission such as 'Winter Contingency' then it implies more towards a desync issue with Linux and the game. The error should occur within 3 minutes of gameplay, as that seems to be a common theme with this game, and attempting multiplayer with Insurgency:Sandstorm.

If my boys are on, I'll see if I get them to test this. Might be a while though

Linux(EAC off) + Linux(EAC off) = Campaign Error

Do not mislead people. This is not true.

Linux(EAC off) + Linux(EAC off) = Campaign Error

Do not mislead people. This is not true.

it's not misleading as this has been the experience of everyone in this thread aside from you. did you do anything special to get it working?

Yesterday we played coop campaign with NTMan with Linux(EAC on) + Linux(EAC on), everything was fine, Halo is just starting with "eac-nop-loaded" key, will check ASAP with "EAC off" option.

@macktab @NTMan If you want to inform us on how to turn on EAC for linux, that would be great. Both MCC launch options causes Halo to start with EAC disabled for majority of users here, hence why Linux always has EAC off in the chart. In addition, EAC won't download because there is no available Wine64 EAC for MCC.
EAC reference:
loader.log
If these two are playing together, then that should indicate that Windows EAC off test should result with the users being able to complete the mission. This still needs to be tested though.

As I mentioned, halo is starting with "eac-nop-loaded" key, I think, it is disabling EAC.
But I just mean, that we starting Halo from steam NOT with "disable eac" button.

Coop campaign is working, even when we run game from "Play Halo: MCC Anti-Cheat Disabled (Mods an.."! Believe my noble word... :)


Proof that co-op campaign working on Linux

Screenshot from 2019-12-10 01-42-58
Screenshot from 2019-12-10 01-43-04
Screenshot from 2019-12-10 01-43-14
Screenshot from 2019-12-10 01-43-25
Screenshot from 2019-12-10 01-44-01

Gotcha, which means the rest of the community is experiencing desync or latency issues. How's your ping between each other?

We are using same provider, but I am pretty sure, that halo not using (as all another modern games) p2p connection (dedicated server). Will check tomorrow.

[root@workstation ~]# ping NTMan-ip-address
PING NTMan-ip-address (NTMan-ip-address) 56(84) bytes of data.
64 bytes from NTMan-ip-address: icmp_seq=1 ttl=62 time=0.748 ms

64 bytes from NTMan-ip-address: icmp_seq=384 ttl=62 time=0.843 ms
^C
--- NTMan-ip-address ping statistics ---
384 packets transmitted, 384 received, 0% packet loss, time 392141ms
rtt min/avg/max/mdev = 0.568/0.711/0.923/0.056 ms

Two Windows boxes with EAC off results in campaign coop working. This means its something to do with the Linux networks or packages. Macktab and NTMan, if you guys could report your distro and any packages that you may have used to get this working together.
Also, there's a reddit post EAC for Proton MCC: https://www.reddit.com/r/halo/comments/e8g9hd/pc_steam_mcc_enable_eac_for_protonwine64/

Proton https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/4.21-GE-1-MCC-2 .
mesa https://copr-be.cloud.fedoraproject.org/results/xxmitsu/mesa-and-llvm-git/ .
Other sysinfo https://gist.github.com/macktab/31d239bfb7ded7f841b38b2a587af18d .
NTMan have pretty same conf, except more modern CPU and more RAM.
But, as you understand, the main thing is proton. Which version everybody are using in this thread?
I saw early here comments from GloriousEggroll, thanks a lot for Proton builds...

just tested coop with my friend who is on Windows 10. i am using Debian 10.
at the beginning of Winter Contingency, there seems to be a loading trigger right before you see ostriches for the first time. every time one of us hits this trigger, we get the Xbox live error.

i have no log as my game does not work at all when PROTON_LOG=1 is enabled.

however, the behavior of my game is consistent with people who were able to get the logs and specific errors.
see: https://github.com/ValveSoftware/Proton/issues/2907#issuecomment-562692872

it seems for some reason, the game find it necessary to encrypt gameplay data but fails to do so on Proton.

if my friend on Windows 10 hosts, i am unable to join. i get a black screen when the match starts, the game boots my friend to the main menu. my client never progresses past this black screen, and i have to kill the game's process.

FWIW, it's strongly recommended to use, at least, Mesa 19.3 and LLVM 10 (master) with Navi. A bunch of issues have been fixed lately. Also note that if you have some GPU hangs with LLVM 9.0.1, you might want to try with LLVM 10. As for the graphic artifacts, I haven't looked into them yet.

Halo: MCC should now be playable with Proton 4.11-10 as shipped by Steam. There are some known issues (campaign dropping; missing EAC support).

@aeikum can we expect to see a fix for campaign anytime soon?

I don't think we've seen any real progress on that one yet.

@aeikum did you solve the libgnutls issue when the required function isn't available in the older version? I personally don't have this problem but LTS users reported it before and I'm curious if it's fixed.

@rkfg Yes, see https://github.com/ValveSoftware/wine/commit/36c61c095cf1b32c8177a4fc724073ab3eed4ef8 This internal function is exported on gnutls >= 3.5.4, and the runtime version of gnutls ships it now, too.

Nothing in the logs generated by PROTON_LOG=1 seemed to be relevant to the campaign disconnect/desync issue as far as I've seen. Would it help to generate it with a WINEDEBUG higher setting as well?

Just have tested with NTman online coop campaign with new valve proton 4.11-10, just have finished halo reach... No errors were found.

@macktab have you been able to successfully play coop with a partner that's using windows?

No, I have no friends with windows... :) (it is joke)

@macktab can you please provide more details about the setup you used for campaign to work? i seem to be unable to get past the part in winter contingency when you first see an ostrich. this happens with both windows and linux coop partners.

i am using:
Debain 10 (Buster)
Linux 5.3.9 (with Valve's fsync patch)
AMD Ryzen Threadripper 1950X
AMD NAVI10 (Mesa 19.2.6, LLVM 9.0.0)
Valve's Proton 4.11-10
MCC Launch options: %command%

i was using gnutls 3.6.7-4
after upgrading to 3.6.11 and then running the game with PROTON_NO_FSYNC=1 there was no change in the behavior of the game. still disconnects right around the first encounter of an ostrich in Winter Contingency.
neither Linux 5.5 or Mesa 20 are available on Debian so i am unable to test if that is what's making it work for you.
my sysinfo
https://gist.github.com/mathew2214/6a94044b865372510a1c02ed94033296

Which version of proton you are using?

Valve's 4.11-10 with no modifications

I'm using GloriousEggrolls' custom build, and I'm also getting the crash after the ostriches. I'm on ArchLinux and my friend is on Windows 10, and it boots both of us to the lobby at the same time.

switching to the build mentioned in https://github.com/ValveSoftware/Proton/issues/2907#issuecomment-565588715 produced no change in the game's behavior. still disconnect around the ostriches.

Maybe, if you will attach proton log, somebody can give some advice?

here's my proton log of this happening.
https://gist.github.com/mathew2214/313271b8ea7f645131e557be60219834

i believe these specific errors to be the problem:
7395.627:0039:003a:warn:debugstr:OutputDebugStringA "[1213/145307.792:ERROR:network_change_notifier_win.cc(156)] WSALookupServiceBegin failed with: 8\n"

[1213/145307.792:ERROR:network_change_notifier_win.cc(156)] WSALookupServiceBegin failed with: 8

7403.546:0039:00c5:warn:debugstr:OutputDebugStringA "[1213/145315.710:WARNING:cert_verify_proc_win.cc(111)] Unknown error -2146762482 mapped to net::ERR_FAILED\n"

[1213/145315.710:WARNING:cert_verify_proc_win.cc(111)] Unknown error -2146762482 mapped to net::ERR_FAILED

Hey @Guy1524 , first of all thanks for submitting a proper patch to wine.
It's great to see Halo: MCC working out of the box in Steam now.
Also a big thank you to everyone else involved in the wine and proton projects in general.

I just had a look at your patch and, if I'm not mistaken, there is a small memory leak in there.
r.data and s.data are malloced by pgnutls_decode_rs_value (see here and here), so they should be freed.

I upgraded my Kernel on Gentoo from 4.19.14 to 5.4.2 yesterday and added multiple crypt algorithms into the kernel and no change for me. Just attempted Valve's 4.11.10 proton and also no change. My attempt is towards Windows Clients as most of my mates play on Windows. (For Campaign Coop)

Now that the game is running on Proton, there are a few bugs that I have encountered:

  1. On fullscreen mode, it is impossible to set resolution to 1920x1080. It automatically changes to 1920x800.
  2. Once in a while, the game crashes with a "Fatal Error" dialogue box. I haven't managed to capture a log.
  3. There are strange stutters while moving which seem related to background loading.
  4. The game requires the XBox sign in everytime it is launched. If the game is exited and then launched quickly, it complains that the account is logged in somewhere else.

@namandixit i also had the stuttering, but only when fsync was disabled. does enabling fsync fix stuttering for you?

@mathew2214 By "enabling fsync", you mean PROTON_NO_FSYNC=0 or PROTON_NO_FSYNC=1? Also, I am using the official Proton image (4.11-10), has Fsync made it into the official versions?

@namandixit proton supports fsync by default, but have you built fsync support into your kernel in order for proton to be able to use it?

@mathew2214 I am running default Fedora kernel (v. 5.3.15-300); so, I don't think so. I'll try to install the patched version, then report back.

In the level "Long Night of Solace", the audio randomly becomes very choppy. The choppiness continues until the last checkpoint is restored in game.

System Information

  • GPU: Nvidia MX 150
  • Driver/LLVM version: Nvidia 440.36
  • Kernel version: 5.3.15-300.fc31.x86_64
  • Proton version: 4.11-10

Here are some instructions for you guys to get an apitrace for the campaign issues on linux.

  1. Install trace packages from package manager. (apitrace lib32-apitrace for arch)
  2. Open terminal
  3. Run this command in terminal to trace halo reach.
    DEBUGGER="apitrace trace" steam steam://rungameid/1064220 -eac-nop-loaded
  4. Look in these places for the .trace log files: (launch options will affect where they go)

    • Halo Reach's folder where game is installed and EXE is located

    • Halo Reach's prefix's desktop folder directory

    • In your steam installation folder

Then someone should run the game in a windows VM and run a trace in it too. See the info on DXVK's help page about tracing but it will be easier to figure out on windows as you will just start apitrace.exe and you don't need to hunt down .trace logs as much.

Sort the trace files, dxvk log files, and steam log files into subfolders based on steam launch commands and which extra packages you guys installed using winetricks. Then package them up and post them. Also list which GPU/mesa version yall are using in case any of the crashes are Navi related.

I saw some of yall reporting the game would crash when PROTON_LOG=1 was enabled. When this is enabled there are extra log files generated from dxvk and other things so there is probably a code path difference somewhere. By providing all of these trace and log files grouped together per game launch it can help narrow down the problems.

Edit: Added eac disable command from freedg below.

@BillFleming Running DEBUGGER="apitrace trace" steam steam://rungameid/1064220 or DEBUGGER="apitrace trace" steam steam://rungameid/976730 launches the game with Anti-cheat turned on, which might lead to troubles (bans, etc.) down the road. Is there any way to get the popup (that Steam shows when launching the game) from command line to select the anti-cheat free version of the game? Failing that, we need to wait to find out what command-line args, etc. can be used to instruct the launcher to not use anti-cheat.

I don't have the game yet but if my research is correct here is where the launch options would be documented. https://steamdb.info/app/976730/config/ So either try using "-oldui" or rename the executables first so it launches the no EAC build by default, which we probably want to do anyway on linux.

@namandixit -eac-nop-loaded disables EAC

@BillFleming:

rename the executables first so it launches the no EAC build by default

The game has a very strange way of launching itself. Running the game launches mcclauncher.exe which then probably runs MCC-Win64-Shipping.exe and/or UnrealCEFSubProcess.exe; then, at some point, they also probably load in haloreach.dll (This is all guesswork on my part). Point is, there is no separate executable which disables EAC, the whole thing is a weird mish-mash of Unreal Engine, Blam Engine and CEF browser.

@freedg:

@namandixit -eac-nop-loaded disables EAC

Running any of the following:

DEBUGGER="apitrace trace" steam steam://rungameid/1064220//-eac-nop-loaded
DEBUGGER="apitrace trace" steam -applaunch 1064220 -eac-nop-loaded
DEBUGGER="apitrace trace" steam steam://rungameid/976730//-eac-nop-loaded
DEBUGGER="apitrace trace" steam -applaunch 976730 -eac-nop-loaded

still shows the EAC splash screen. (The URI details from here)

does the game use EAC if the launch options are set to
DEBUGGER="apitrace trace" %command% -eac-nop-loaded

I use Solus (No that it matters) but no matter how I start the game on Steam I always get EAC off, as I try to play "social games" the application confirms that EAC is off.

@mathew2214 If launching from Steam UI, we can just choose to start the game with EAC disabled. However, I can't find any trace file anywhere (if any were generated).

@Sethox You don't see a EAC splash screen for a second right before the MCC splash screen?

@namandixit I see a MCC logo, either than that I do not know (it's too fast). So maybe it loads but I cannot see it.

Either way, the only way I confirmed it being disabled is by the application itself (as I mentioned before).

@namandixit I do see the EAC splash but once in game it'll tell me I can't matchmake because EAC is disabled.

upon further review of my coop disconnect logs. i have found another potential point of interest.

7398.544:0039:00c1:trace:seh:RtlRestoreContext returning to 14249654b stack 4d46f3a0 7398.552:0039:00c1:fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform 7398.552:0039:00c1:fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported

it should be noted that my logs are flooded with repeats of this error.
fixme:bcrypt:BCryptCreateHash ignoring object buffer

i have tried out the MCC updated that went out today. with the new Proton-GE-Custom build that also released today.
Co-Op still doesnt work.
https://gist.github.com/mathew2214/c8a19bab38ae1b62c3c6c894d6752f29

steam-976730-firefight1.zip
I'm back, and confused as ever. Playing firefight, some levels the textures for terrain loaded properly. Others didn't. The attached firefight1 zip contains a log of a session playing a map that did and and one that didn't.

I tried reinstalling the game, and that fixed the textures to the campaign level I was on, Nightfall. However, as I got to the part where you meet the smugglers, the textures started to not wok again. When in night vision, if the flashlight was shining on the terrain, it would render properly with the nv effect, otherwise just black. This persisted into the next level, tip of the spear, where the terrain started out not loading correctly. I have the log for this, but I can only compress it into a zip file of about 36 MiB, so I can't upload it here.

Hello @LordLemons, your log has a bunch of non-trivial err: DxvkMemoryAllocator: Memory allocation failed and the game is expected to be 64 bit, so PROTON_FORCE_LARGE_ADDRESS_AWARE shouldn't help in this situation. It reads like you're hitting a 2GB VRAM ceiling and DXVK is failing to allocate textures instead of taking a performance hit. If the game let's you turn down the texture quality, that's your best bet to save some VRAM.

That VRAM ceiling makes sense since the 860m only has 2GB. The min spec card listed has 1, so I set the graphics to performance, and it worked, sort of. Firefight maps loaded with no trouble. I couldn't test it with the campaign, it crashed while loading a level. The log I was left with was about 1GB large, so I'll delete that and try just loading the campaign level in the morning for the log.

The log I was left with was about 1GB large, so I'll delete that and try just loading the campaign level in the morning for the log.

FWIW, log files tend to compress quite well (gzip is quite good at it). However, it is indeed much easier to find relevant information in a smaller log file.

IIRC, a few issues were fixed in recent Mesa/DXVK updates, but I don't recall seeing anything about yours.

The glitches should now be fixed on Navi with https://gitlab.freedesktop.org/mesa/mesa/commit/824bd0830e811a7b6347bbd5c30e0a76bc7daf60

Can you please update your mesa and re-test? Thanks!

testing with new MCC update that got pushed to steam earlier today.
no change in the game's behavior.
relevant info:
https://gist.github.com/mathew2214/b31042d6c75aa9c7230d754593ce34fd

Games works great in linux, performance its at least as good as in windows 10 (I feel it faster but that might be because in linux I dont have the anti cheat performance penalty).

At this point all whats left is to see if support for the anticheat in proton will ever happen. I want achievements and multiplayer. And hopefully we can try halo ce in some few weeks.

Games works great in linux, performance its at least as good as in windows 10 (I feel it faster but that might be because in linux I dont have the anti cheat performance penalty).

At this point all whats left is to see if support for the anticheat in proton will ever happen. I want achievements and multiplayer. And hopefully we can try halo ce in some few weeks.

What I want is if someone finds the progress (links, site, discussions between the developers from i343, M$, Proton, Wine, etc).

@hakzsam I can confirm that the game seems to work well with Mesa 19.3.2 on an AMD 5700. I have played the campaign up to Tip of the Spear and all textures appear to load normally. The only bug I see is odd radial spikes of light during explosions. They extend out all the way to the edge of the screen, lasting no more than a couple frames (the length of the explosion).

The only bug I see is odd radial spikes of light during explosions. They extend out all the way to the edge of the screen, lasting no more than a couple frames (the length of the explosion).

Hello, has anyone with an nVidia or Intel video card seen this quirk?

For me the game doesn't even launch
Edit :
OS: LinuxMint 19.3
GPU : 5700xt
Proton : 4.11

Hello @mritunjaymusale, please add PROTON_LOG=1 %command% to the game's launch options and drag and drop the generated $HOME/steam-$APPID.log into the comment box. Also, 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.

It doesn't launch for me either. I've been using Proton 4.11 and running without EAC.
https://gist.github.com/qirdo/6d1bae3b052cfc1e751aa6cfb737a6ae
steam-976730.log

These look like the problem:

98161.536:0031:0032:err:module:import_dll Library d3d11.dll (which is needed by L"Z:\\home\\username\\Storage\\games\\steam\\steamapps\\common\\Halo The Master Chief Collection\\MCC\\Binaries\\Win64\\MCC-Win64-Shipping.exe") not found
98161.557:0031:0032:err:module:LdrInitializeThunk Importing dlls for L"Z:\\home\\username\\Storage\\games\\steam\\steamapps\\common\\Halo The Master Chief Collection\\MCC\\Binaries\\Win64\\MCC-Win64-Shipping.exe" failed, status c0000135

Reinstalling seems to have solved the problem. Sorry if I wasted anyone's time.

steam-976730.log

No audio, intermittent stuttering, freezes after about 3 minutes of gameplay.

https://gist.github.com/Gooberpatrol66/80d3f0d82fd89a5fa363ee0cc9850c17

Hello @Gooberpatrol66, this look like a line of interest from your log:
fixme:pulse:pulse_channel_map_to_channel_mask Unhandled channel aux0
For aux0-aux9 channels, leading to:

err:pulse:pulse_spec_from_waveformat Invalid channel mask: 8/18 and 63f(63f)
err:pulse:pulse_spec_from_waveformat Invalid format! Channel spec valid: 0, format: 5

Possibly an uncommon pulseaudio config?

Halo_Reach_Rendering_Issue

Proton 4.11-12

Here is an example of the bug I mentioned a few weeks ago. It occurs very commonly in this mission, and in all other missions when an explosion occurs. These radial glowing spikes appear when some fire is rendered and when explosions happen.

The nature of the bug has changed in Proton 5.0-3:

Halo_Reach_Bug_50-3

As shown here, the spikes are no longer glowing. Furthermore, I do not see these spikes from fire as shown in the first picture. They now seem limited to explosions.

Specs (Latest Manjaro Stable):
Intel 6600k
AMD 5700
16 GB Ram
Mesa 19.3.4
Kernel 5.5

Just confirming that MCC Co-op issue is a desync issue, as the HALO:CE campaign doesn't kick the player, but ends up misplacing the player from the host. If played long enough, the player's game will freeze and be unable to move(or shoot), but will be able to look around with the mouse. (Linux and WinBox)

I cannot get the game to run. Using Proton 5.0-3 running on Elementary OS (Ubuntu derivative). I get the following error message and then it just stops

image

Here's my Proton log:
https://gist.github.com/sergiofenoll/b551f51acef4404768775577a2b47887

Hello @sergiofenoll, info: Required Vulkan extension VK_KHR_surface not supported looks like the line of interest in your log and hints there's an issue with Vulkan driver support on your system. 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.

@kisak-valve thank you for the response! Here's the gist you requested: https://gist.github.com/sergiofenoll/b133a4f10f6eb5970b5ee13c0f4c41af

Thanks, the s-r-t-info output confirms you don't have any Vulkan drivers installed. Please double check this with something like apt policy mesa-vulkan-drivers mesa-vulkan-drivers:i386 and install them with sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:i386.

@kisak-valve Thank you! Installing those packages resolved the issue :D

Hello. PopOS here with hybrid gpus. My game is not even launching. Tried 5.0-5 and 5.4-GE-2 but no luck. When i start steam direct it recognizes only intel uhd 630. But i have to run via Lutris to get run on my GTX 1060. Here is my gist of system information: https://gist.github.com/mcalago/78ea6d4494fed79e28692569ad9ca006
Also here's a video of mine trying to launch game: https://www.reddit.com/r/pop_os/comments/fnhul1/is_anyone_able_to_run_halomcc_i_have_tried_all/
steam-976730.log

Hello @mcalago, wine: /mnt/567CFB2F7CFB088F/Program Files/steamapps/compatdata/976730/pfx is not owned by you in your log is the line of interest to focus on. This hints that you're using an NTFS partition and interactions between Proton and NTFS are known to be finicky. Please give https://github.com/ValveSoftware/Proton/wiki/Proton-FAQ#none-of-my-games-are-launching--prefix-not-owned-by-you-error / https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows a read.

@kisak-valve Thanks for relpying. [UPDATE: IT WORKED! Thank you so much!]

+1 with co-op having a desync. I've been trying to play with someone on Linux from Windows, and the game will kick us out after a specific in game event. For reach, it was an item being picked up at the start of the winter contingency mission that seemed to have caused it. Hopefully this helps with testing.

I seem to be experiencing a bug with this game and Proton that I haven't seen be mentioned specifically so far, and for the life of me can't figure out, though I suspect it is DX11 related. I'm not running into the login problems, for me the game won't even start at all.

Interesting part is that I have an Nvidia Optimus laptop... if I run the game while using my Intel GPU, it actually works flawlessly. I'm able to log in and play the game (though performance isn't great but that is to be expected). But if I switch to my Nvidia GPU and try to launch the game it crashes on start -- no config changes otherwise.

I'm using the latest stock Proton 5.0-5, my dedicated GPU is a GTX 1060, my kernel version is 5.3. Here's a screenshot of the error:

Screenshot from 2020-04-05 01-59-53

And here's my log produced by PROTON_LOG=1: https://gist.github.com/sagebind/124c9a99a384522f026d9f05de5c42a0

Anyone have any ideas? Thanks.

Hello @sagebind, how are you "switching" to the nVidia gpu? You may want to give https://download.nvidia.com/XFree86/Linux-x86_64/435.17/README/primerenderoffload.html a read.

@kisak-valve That's exactly the mechanism I am currently using is prime offloading. Here are my launch options:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia PROTON_LOG=1 %command%

FYI, I also reconfigured my system to disable prime offloading and reboot use the nvidia GPU exclusively. Under that configuration (Nvidia card without offloading) the game fails to launch with the same error. So it has to do with the card itself (or GLX libraries...) somehow, it isn't prime offloading causing the issue.

Update: My issue is definitely related to DXVK and Nvidia somehow, because disabling DXVK for DX11 allows the game to launch. (Launch options PROTON_USE_WINED3D=1 added.) The game launches and I am able to play the game, though the OpenGL implementation of DX11 is (not surprisingly) hardly playable -- performance is poor, and when anniversary graphics are toggled there are glaring visual glitches with shadows:

Screenshot from 2020-04-05 15-38-16

Classic graphics mode doesn't have visual glitches, but still performs poorly:

Screenshot from 2020-04-05 15-38-23

Update: My issue is definitely related to DXVK and Nvidia somehow, because disabling DXVK for DX11 allows the game to launch. (Launch options PROTON_USE_WINED3D=1 added.) The game launches and I am able to play the game, though the OpenGL implementation of DX11 is (not surprisingly) hardly playable -- performance is poor, and when anniversary graphics are toggled there are glaring visual glitches with shadows:

You should read the DXVK wiki pages: https://github.com/doitsujin/dxvk/wiki/Driver-support

@Sethox Not seeing much useful on that page? My driver version is 440.64.0.

Hi @kisak-valve,

I'm getting a similar issue with Halo MCC as @sergiofenoll.

Proton: 1584918606 proton-5.0-5b
OS: Ubuntu 18.04.4 (kernel: 5.5.16-050516-generic)
Renderer : AMD Radeon R9 200 Series (HAWAII, DRM 3.36.0, 5.5.16-050516-generic, LLVM 9.0.0)
Version : 4.5 (Compatibility Profile) Mesa 19.2.8
Vulkan: mesa-vulkan-drivers is already the newest version (19.2.8-0ubuntu0\~18.04.3).
Vulkan32: mesa-vulkan-drivers:i386 is already the newest version (19.2.8-0ubuntu0\~18.04.3)
LOG: steam-976730.log

Whenever I try to run it from Steam desktop window, I get an option to chose normal or with Anti-Cheat disabled. Both options lead to the same screen and a pop-up window of "Fatal error".
Would really appreciate if you can help me resolve this! Thanks in advance!

Hello @StatusCode404, looking at your log, the game is hitting an access violation shortly after bringing up DXVK (search for c0000005), which leads too wine: Unhandled page fault on execute access to 0000000000000000 at address 0000000000000000 (thread 003c), starting debugger.... This is a weak indicator that you might have hit a video driver issue.

Maybe try a newer version of mesa from oibaf or kisak-mesa PPA?

Thanks @kisak-valve for the prompt reply!
Before signing off yesterday I tried proton 4.11-13 and it worked! However it stutters every now and then.

I'm currently on mesa 19.2.8 and it works with proton 4.11-13.
Not sure why it would regress with 5.0-5 with mesa 19.2.8?

I'll stick with mesa 19.2.8 ubuntu-x team stable for now with proton 4.11-13 as I also use this rig for work and I have been burned in the past by Oibaf; and can't afford to have a broken rig.

I'll wait for the official ubuntu-x team to release the newer mesa which I assume will be after their newest LTS distro comes out. Which after I assume they'll backport to ubuntu 18.04 on that link.

All that said, like I said above, it looks and smells like a bug because it worked with the previous version.

Proton 5.0-6 Test
Just an update on my previous comments...
LOG: steam-976730.log

I tried Halo MCC on the just release 5.0-6 with mesa 19.2.8 with R9-290X and same failure and effect as 5.0-5.
Looks like regression was NOT fixed.

Works OK with occasional stutter with proton 4.11-13, mesa 19.2.8 with R9-290X.

Hello all, it appears I am able to play the game. While playing multiplayer with Anti-Cheat disabled, there is a sync issue whereby after I die, I am desync from my friends. A shortwhile after respawning, I will stop moving and can only look around. The world stops moving as well. Everything is frozen in place except for the trees, whose leaves are still shuffling in the breeze...

Hi @kisak-valve,

Summary:
I finally got around to trying your advice and installing your mesa 20.0.6 ppa with my R9-290X and proton 5.0-7; and I got the same error as before "Fatal error" as before.
The game works OK with ACO on 4.11-13 (I have finished both Reach and Halo CE with this proton version)

Config:
Proton: 1588276332 proton-5.0-7
OS: Ubuntu 18.04.4 (kernel: 5.6.11-050611-generic)
Renderer : AMD Radeon R9 200 Series (HAWAII, DRM 3.36.0, 5.6.11-050611-generic, LLVM 10.0.0)
Version : 4.6 (Core Profile) Mesa 20.0.6 - kisak-mesa PPA
LOG: steam-976730.log

Results proton-5.0-7:
Whenever I try to run it from Steam desktop window, I get an option to chose normal or with Anti-Cheat disabled. Both options lead to the same screen and a pop-up window of "Fatal error".
Same error happens with or without ACO.

Results proton-4.11-13:
Works perfectly with or without ACO. No issues.

Something has definitely regressed with Proton for Hawaii generation GPU.
See log attached above

Hi @kisak-valve,

Summary:
I finally got around to trying your advice and installing your mesa 20.0.6 ppa with my R9-290X and proton 5.0-7; and I got the same error as before "Fatal error" as before.
The game works OK with ACO on 4.11-13 (I have finished both Reach and Halo CE with this proton version)

Config:
Proton: 1588276332 proton-5.0-7
OS: Ubuntu 18.04.4 (kernel: 5.6.11-050611-generic)
Renderer : AMD Radeon R9 200 Series (HAWAII, DRM 3.36.0, 5.6.11-050611-generic, LLVM 10.0.0)
Version : 4.6 (Core Profile) Mesa 20.0.6 - kisak-mesa PPA
LOG: steam-976730.log

Results proton-5.0-7:
Whenever I try to run it from Steam desktop window, I get an option to chose normal or with Anti-Cheat disabled. Both options lead to the same screen and a pop-up window of "Fatal error".
Same error happens with or without ACO.

Results proton-4.11-13:
Works perfectly with or without ACO. No issues.

Something has definitely regressed with Proton for Hawaii generation GPU.
See log attached above

My brother got a r9 290 and it works for him just fine. He is using Mesa 19.3.4 on Solus. We tried to play co op but the game desync after awhile. Though I have a hypophysis that ping not available the game just doesn't sync up again. So we tried to add ping to the wine, the bad news is that we couldn't test this because his proton got wrecked. He had to reset his installation.

Back to the point though, yeah it works for him with a 290 card.

@Sethox, as I said in my post above, works for me as well with 4.11-13 and mesa 20.0.6 ppa (from Kisak.)
It is 5.0-x that fails.

What Proton does your brother have configured with mesa 19.3.4? Is it 4.11-13?

Proton 5.0-7.
With launch options: "RADV_PERFTEST=aco PROTON_NO_ESYNC=1 PROTON_NO_FSYNC=1 gamemoderun %command%"

I tried those options, didn't work.

proton 4.11-13 works out of the box.

I tried those options, didn't work.

proton 4.11-13 works out of the box.

Same here for me on RX480+Ryzen 5 1600X. Had to revert back to 4.11 to make MCC launch successfully, I think that I've played MCC with 5.0 before so I do think that the problem started with either 5.0-6 or 5.0-7.

~Just tried Halo 2 and when I try to start a campaign I just get a never-ending black screen while the menu music plays in the background.~

Nevermind, I removed the Halo 2 DLC from the Steam properties, added it again, waited for the re-download/install and it's working perfectly!

Ubuntu 20.04, Proton 5.0-7, Nvidia GTX 1070 with driver version 440.

I tried those options, didn't work.
proton 4.11-13 works out of the box.

Same here for me on RX480+Ryzen 5 1600X. Had to revert back to 4.11 to make MCC launch successfully, I think that I've played MCC with 5.0 before so I do think that the problem started with either 5.0-6 or 5.0-7.

@HenrikHolst please reply back with your log and address Kisak so he can have a look. Perhaps there's commonality between our issues.

I tried those options, didn't work.
proton 4.11-13 works out of the box.

Same here for me on RX480+Ryzen 5 1600X. Had to revert back to 4.11 to make MCC launch successfully, I think that I've played MCC with 5.0 before so I do think that the problem started with either 5.0-6 or 5.0-7.

@HenrikHolst please reply back with your log and address Kisak so he can have a look. Perhaps there's commonality between our issues.

@kisak-valve

I've included a proton log using 5.0-7 when MCC breaks with "Fatal Error!"
steam-976730.zip

Hello @HenrikHolst, your log looks similar to https://github.com/ValveSoftware/Proton/issues/2907#issuecomment-61343745,. so it might be related to what @StatusCode404 is experiencing, but I don't know what's actually happening there.

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.

Hello @HenrikHolst, your log looks similar to #2907 (comment),. so it might be related to what @StatusCode404 is experiencing, but I don't know what's actually happening there.

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.

done:
https://gist.github.com/HenrikHolst/09c3e8b565384e10bc8e59d53f33254b

Looking at your system information, you have some very old vulkan icd files in /etc/vulkan/icd.d/. Can you check where they came from and move/remove them?

Looking at your system information, you have some very old vulkan icd files in /etc/vulkan/icd.d/. Can you check where they came from and move/remove them?

Thanks! Removing those files made MCC work in Proton 5.0-7! I cannot see where the files came from "apt-file returned no answer", but this is a system that I've been constantly upgrading since at least Ubuntu 10.04 so they where probably created by some package that is no longer left on the system.

Perhaps @StatusCode404 should check that directory out as well to see if there are any old files there.

@kisak-valve and @HenrikHolst
It worked! I'm now using 5.0-7!

Thanks guys!

Update: Co-op still doesn't work on Halo2 release, however, I've noticed in my proton log that it complains about a unhandled protocol when a player joins the lobby for campaign.
"fixme:winsock:convert_proto_w2u unhandled Windows socket protocol 132"
"fixme:winsock:WS_setsockopt Unknown IPPROTO_IPV6 optname 0x00000013"
I've enabled SCTP through my kernel and enabled the flag in openssl, but proton continues to complain that this protocol is unhandled. Thoughts?

steam-976730.log
(Log file after enabling SCTP + Kerberos (probably unneeded))
Tested with Proton 5.0-7 & Proton 5.8-GE-1-MF

In wine/dlls/ws2_32/socket.c there is a map between known windows protocol ids and the corresponding unix protocol ids: ws_proto_map.
The individual protocol ids are defined in wine/include/winsock.h
As SCTP (132) is not part of that list, convert_proto_w2u will set the protocol id to -1.
The log does not show if this is used by WSASocketW to setup a socket,
or by WS_getaddrinfo, which will just set the invalid protocol id to 0
and should then still be able to resolve the IP-address for a given hostname.
Expanding the protocol list should be rather easy to try out.

The optname looks like SO_DEBUG|SO_ACCEPTCONN|SO_DONTROUTE.
However, WS_setsockopt expects only one of these values at a time, so this seems a bit strange.
Maybe it is something else entirely.

What may also help in tracking this down, would be to enable tracing for winsock.
I.e., WINEDEBUG=+winsock. But be aware that the resulting log file will contain your hostname.

Works ootb here, also with the latest 5.8-ge proton release. Performance is worse than expected but I don't have Windows for a proper comparison. Framerate seems to tank when dynamic lighting comes into play (e.g. tunnels, turning on flashlight). Classic visuals perform better but still not perfect.

Radeon HD 7850 on amdgpu / Ubuntu 19.10. It's possible I just need a new GPU...

I fixed my problem, turns out the ROCm drivers that I was planning to use for deep learning were the ones causing the problem, so I removed them and did a clean reinstall of Linux Mint (for sanity), it now works on open source drivers with no problems, so far.
Also if anyone from dev team is reading this can you look into ROCm support that would help a lot because that would help me in playing and getting my work done.

System Info:
Manjaro
AMD 5700
Intel 6600k
Kernel 5.7.2
Mesa 20.1.1
Proton 5.0-9

Halo 2 completely crashes my system when starting up. The game runs perfectly until I try to load a level in Halo 2, then it completely crashes. It will hang on the loading screen, then freeze, then eventually my screen shows many random green dots and the system is unresponsive, requiring a hard reboot.

On Proton 4.11, I can play Halo 2, and even play through entire levels without any crashes, but performance is much worse than I would expect on my system.

Problem persists with RADV_PERFTEST=aco. Problem persists with other linux kernel versions. Problem persists with older versions of Mesa. I have noticed a similar crash once on The Witcher 3, which only happened when using Proton 5.0.

I see a few warnings in PROTON_LOG.
warn: D3D11CoreCreateDevice: Adapter is not a DXVK adapter
warn: OpenVR: Failed to initialize OpenVR
warn: DXGI: VK_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
warn: D3D11DXGIDevice::QueryInterface: Unknown interface query
warn:debugstr:OutputDebugStringA "Warning: DirectSound playback reset due to non-moving playback cursor (buggy sound driver) time: 36220 play: 29928 write: 31692.

These all seem to appear many times in the log.

Hello @WaterWhorl, please attach a Proton log of the crash with Proton 5.0.

All halo games run great with pds kernel and 1070 r5 3600 at 4.5ghz on arch zero issues holds 60fps at 1440p

Sent from my iPhone

On Jun 17, 2020, at 4:01 PM, kisak-valve notifications@github.com wrote:


Hello @WaterWhorl, please attach a Proton log of the crash with Proton 5.0.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thanks, I think that err: DxvkSubmissionQueue: Command submission failed: VK_ERROR_DEVICE_LOST in your log hints that there was a video driver issue, and

info:    Device name:     : AMD Radeon RX 5700
info:    Driver version   : 2.0.147

seems fishy for mesa 20.1.1. I expected to read something like:

info:    Device name:     : AMD RADV/ACO NAVI10 (LLVM 10.0.0)
info:    Driver version   : 20.1.1

Are you using amdvlk or amdgpu-pro and can you retest with mesa/radv?

Looks like I had both vulkan-radeon and amdvlk installed. The Arch Wiki suggests this might be ok, but uninstalling amdvlk keeps the system from crashing, so I expect that was the problem. DXVK_HUD shows 20.1.1 as the driver version now.

With a short test, it looks like the game is running well, at least with gamemoderun RADV_PERFTEST=aco %command% added to launch options.

Whilst playing the game the game it doesn't seem to understand the difference between Lshift or Rshift, I had to remap the keyboard input for sprint in Reach to capslock for it work, maybe a Wine issue or game just being horribly ported for PC.

As of the latest update Halo Reach and Halo 3 have no in-game audio, but the menu does.

Seen others have the same issue but it doesn't affect everyone. Be interesting to find out what's different between people who do and don't have audio.

I have tried Proton 5.0-9 and Proton GE, same across both.

@LiamDawe Thanks for reporting. Can you grab a log showing the issue with +xaudio2,+dsound,+winmm added to the default log channels?

For the sake of reporting, using the 5.11-GE-3-MF Proton Pack, I was able to play a tiny bit of the first Halo 3 mission just fine. No audio glitches.

Specs:

* OS: Pop!_OS 20.04 LTS x86_64
* Kernel: 5.4.0-7634-generic
* DE: Plasma
* WM: KWin
* CPU: Intel i7-8700K (12) @ 4.700GHz
* GPU: NVIDIA GeForce GTX 1070 Ti

Audio active during session (via Pulseaudio) [info via alsamixer]:

* Card: Yeti Stereo Microphone
* Chip: USB Mixer

I've got the issue as well. Arch Linux, Kernel 5.7.7. I tried with Proton GE, and 5.0-9. 5.0-9 fails to start, and GE has the same audio issues reported by others.

Some kind of codec issue, maybe?

I can get in the game, but get no audio when the campaign runs. Sound is locked to the menu. Seems like the audio is isolating the sound to the UE4 component and not shifting over to the actual game when it's in focus. Additionally, in PulseEffects, I'm noticing that there's 3 different threads of MCC.exe running for audio, each of them running across 2 channels (headphoens or speakers for me).

- OS: Manjaro
- Kernel: 5.4.0
- DE Plasma
- WM: KWin
- CPU: Zen2 3800X (8/16) @ stock
- GPU: NVIDIA GeForce GTX 1080 Ti
- FiiO USB DAC for Audio Out

No Audio in Reach campaign as well, I would assume the same goes for Halo 3 based on other reports but I haven't tested that yet.

OS: Arch Linux
Kernel: 5.6.19-37-tkg-pds
DE: Plasma
WM: KWin
CPU: AMD Ryzen 9 3900X
GPU: NVIDIA GeForce RTX 2080 Ti (Driver: 450.56.01)

Proton builds I've tried:

Proton-5.11-GE-3-MF
Proton-5.9-GE-3-ST

I get the same issue. I have some info from trying to learn about this pooled together here that I hope may be useful.

The MCC June 2020 development update article explains a little bit of the audio changes for 3 and Reach. They worked with the company Waves to re-implement most of the original audio effects:
https://www.halowaypoint.com/en-us/news/mcc-development-update-june-2020

In the article it is mentioned that they had to switch to XAudio 2.9. The xaudio2_9redist.dll is now included with the Halo 3 PC release update:
https://steamdb.info/patchnotes/5254556/

There are dll's and xps's in 'MCC-dir/halo3/waves/' that seem to be related to those new Waves effects implementation. I mention this because there are reports of Halo 2 and CE still working fine, and the main menu and pause menu UI sounds still work, so I figure these files may want to be known.

And here's a relevant Microsoft developer doc regarding the redistributable of 2.9:
https://docs.microsoft.com/en-us/windows/win32/xaudio2/xaudio2-redistributable

If you're an Arch user and the game isn't running at all, it's likely an unrelated bug: the latest update to vulkan-icd-loader caused Proton to start crashing if Steam's shader cache is enabled.

This will be fixed in the next update, but until then you can disable shader caching as a temporary fix, although this may degrade performance.

BlueA10: I mention this because there are reports of Halo 2 and CE still working fine, and the main menu and pause menu UI sounds still work, so I figure these files may want to be known.

I can concur this is correct.

Halo CE and Halo 2 are perfectly fine. Menus and options are working fine.
However Halo 3 In-Game and cutscenes the sound doesn't exist.

Solutions tried: Without success (Basic tests)

  • Reinstallation of the Game (Both From Steam and Inside the game)
  • Steam verified the files
  • Restarted Steam multiple times and restarted machine.

I was able to get in-game audio working in Halo: Reach by changing the prefix to Windows 7, rather than Windows 10 in winecfg. I'll be trying out Halo 3 in a bit unless someone does it before me.

Edit: Halo 3 audio working now as well.

Can confirm running Archlinux, with the following relevant system setup

faudio: 20.07-1
kernel: 5.7.8-arch1-1
pulseaudio: 13.0-3
proton: Proton-5.11-GE-3-MF

Using cyrsigil's suggestions fixes sound for both Halo Reach and Halo 3 for me

Can confirm, switching to Win7 worked.

I still don't know why.

Heading to bed, but before I do, I found this, it appears as though when loaded with a win7 prefix it loads xaudio2.7, unsure exactly whether this replaces xaudio2.9 or not though, since both seem to suggest xaudio2.9redist was loaded from halo's files

win7 prefix: grep -i xaudio ~/steam-976730.log
produces:
77000.911:00b4:00b8:trace:loaddll:build_module Loaded L"<path-to-steam-library>\\steamapps\\common\\Halo The Master Chief Collection\\XAudio2_9Redist.dll" at 0x180000000: native 77003.461:00b4:00b8:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\xaudio2_8.dll" at 0x7f 7ee01e0000: builtin 77015.912:00b4:0168:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\XAudio2_7.dll" at 0x7f 7ec6820000: builtin

win10 prefix: grep -i xaudio ~/steam-976730.log
produces:
77230.717:00b4:00b8:trace:loaddll:build_module Loaded L"<path-to-steam-library>\\steamapps\\common\\Halo The Master Chief Collection\\XAudio2_9Redist.dll" at 0x180000000: native 77233.180:00b4:00b8:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\xaudio2_8.dll" at 0x7f 72e9300000: builtin 77248.719:00b4:0168:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\XAudio2_9.dll" at 0x7f 72d0040000: builtin PE 180000000- 1800d3000 Deferred xaudio2_9redist PE 7f72d0040000- 7f72d0155000 Deferred xaudio2_9 PE 7f72e9300000- 7f72e9415000 Deferred xaudio2_8

If no headway is made by the time I'm awake enough to sanitize more than snippets of my logs, I'd be more than willing to provide anything that might be of use.

Yeah I have an old prefix from before the Windows 10 was set as default for newly created. Worked fine last night. No sound issues.

[parker@wolfcola ~]$ grep ProductName /run/media/parker/dd64c0b4-4357-4847-8ca1-ef83f5fc2244/SteamLibrary/steamapps/compatdata/976730/pfx/system.reg 
"ProductName"="Microsoft Visual C++ 2017 x64 Additional Runtime - 14.10.25008"
"ProductName"="Microsoft Visual C++ 2017 x64 Minimum Runtime - 14.10.25008"
"ProductName"="Microsoft Visual C++ 2017 x86 Minimum Runtime - 14.10.25008"
"ProductName"="Microsoft Visual C++ 2017 x86 Additional Runtime - 14.10.25008"
"ProductName"="Microsoft Windows 7"
"ProductName"="Microsoft Windows 7"

Can also confirm that switching to Win7 makes the audio work for me.

I was able to get in-game audio working in Halo: Reach by changing the prefix to Windows 7, rather than Windows 10 in winecfg. I'll be trying out Halo 3 in a bit unless someone does it before me.

Edit: Halo 3 audio working now as well.

Confirmed that this is working.

protontricks 976730 --gui

  • change wine cfg
  • default settings = win10 > win7
  • exit

Start game.

Bump, @PraetorianSC4 's steps work to resolve this for Halo 3 and Reach

Changing the prefix to win7 has also fixed it for me, audio is now working in Halo 3. I don't have Reach installed so can't test it at this time.

I'd like to try this, what's the winecfg equivalent for Proton?

It's winecfg.

But that's not normally accessible. Protontricks lets you run winetricks on a proton prefix, and you can run winecfg using that.

Sorry, probably wrong place to ask, but is there a way to run protontricks when using the Steam flatpak?

@wallzero There is no need to use Protontricks, you can also use Winecfg for this.

If you are running the Steam client inside of a Flatpak all you have to do is open a terminal and point Winecfg at the game's WINE prefix. Like so: env WINEPREFIX="/home/$USER/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/compatdata/976730/pfx" winecfg

The game has to be launched once to create the prefix. Make sure the filepath is correct if you are running in to issues, it needs to be an absolute filepath.

I think (didn't try) you can also edit $SteamLibrary/steamapps/compatdata/976730/pfx/system.reg

Under [Software\\Microsoft\\Windows NT\\CurrentVersion], this is what I have for a windows 7 prefix:

"CSDVersion"="Service Pack 1"
"CurrentBuild"="7601"
"CurrentBuildNumber"="7601"
"CurrentType"="Uniprocessor Free"
"CurrentVersion"="6.1"
"InstallDate"=dword:4be5019a
"ProductId"="12345-oem-0000001-54321"
"ProductName"="Microsoft Windows 7"
"RegisteredOrganization"=""
"RegisteredOwner"=""
"SystemRoot"="C:\\windows"

I'll let someone else provide a one-liner, but protontricks is easier to use (or just winecfg if you set the wine prefix environment variable to the pfx directory :) ).

I had my protontricks set the game to Windows 7. For some reason when playing Halo 3, I can bind the Shift key in-game but can not actually use it during gameplay.

@scoronado12 Had this issue as well, but it also is generalized where LShift doesnt seem to work, as this same issue is also present in Halo Reach, for its abilities as well.

@CDAGaming It's been a while since I've played Reach, but I thought I was able to use sprint then

So in proton 5.9 (and the next branch as well) the game runs properly. But when you click on playing a new game, instead of the level loading screen, you get a black screen and after that it crashes.

I also deleted the compatdata folder of the specific game. Probably because of latest MCC update.

I'm getting a "You're signed in to this game on another account" message now whenever I login to Windows Live on each startup. It's just an extra button I have to click, and I still get to the main menu fine, but I'm wondering why this happens all of a sudden now

I've had that happen to me if the game crashes on exit or if I cause it to exit abnormally (pkill etc) in the event of a lockup.

I've had that happen to me if the game crashes on exit or if I cause it to exit abnormally (pkill etc) in the event of a lockup.

It's happening a good portion of the time even when I quit from the main menu, so I guess it's not gracefully quitting?

Seems that way.

I think I'm using Proton-GE-custom right now. So you might try that.

Update: Co-op still doesn't work on Halo2 release, however, I've noticed in my proton log that it complains about a unhandled protocol when a player joins the lobby for campaign.
"fixme:winsock:convert_proto_w2u unhandled Windows socket protocol 132"
"fixme:winsock:WS_setsockopt Unknown IPPROTO_IPV6 optname 0x00000013"
I've enabled SCTP through my kernel and enabled the flag in openssl, but proton continues to complain that this protocol is unhandled. Thoughts?

steam-976730.log
(Log file after enabling SCTP + Kerberos (probably unneeded))
Tested with Proton 5.0-7 & Proton 5.8-GE-1-MF

I finally got around to taking a closer look at this.
So far, coop sadly still desyncs after about a minute or so (tested in Halo 3).

I've got a gist here of the sockets that are created when starting a coop campaign.
I've also made some modifications to wine, which you can find here.

There are 4 sockets created, two for IPv4 and two for IPv6 listening on 0.0.0.0 and :: respectively.
Two of them using UDP and two using SCTP on top of a raw socket.

To enable raw sockets at all, you need to follow this guide, otherwise they will just fail.
Also, for the raw socket, setting IPV6_V6ONLY always fails with EINVAL.
But my guess is that the UDP sockets are anyway used as a fallback for SCTP over UDP,
so the raw sockets might not even be necessary.

What's special about these sockets in particular is that they all have very short recieve timeouts of just 100ms.
Wine will set that to a minimum of 500ms, though.
According to this source it should always add 500ms instead, at least for older versions of Windows.
All other sockets either have no timeouts or at least 20 seconds

For these sockets I also get countless log entries for timed out receives, e.g. WS2_recv_base -> ERROR 10060 (WSAETIMEDOUT),
which I think persist even after coop has disconnected and I'm back to the lobby.
I'm not even sure if they ever receive anything.
I mean, they would only be reachable from within the local network. (Unless there is some automatic port forwarding going on?)
This might just be optimization for coop in a LAN, and might not even be related to the larger coop issue at all.

Concerning the Unknown IPPROTO_IPV6 optname 0x00000013, that turned out to be IPV6_PKTINFO,
for which I added support to hand over the flag (IPV6_RECVPKTINFO on linux), but not yet for handling the additional control message that should be generated when receiving data, as none appear to have been generated during testing,
most likely since no data has ever been received by these sockets.

Does anyone of you have some further ideas on this?

they would only be reachable from within the local network. (Unless there is some automatic port forwarding going on?

The original Halo games did peer-to-peer networking, and by all accounts MCC does the same. That is to say, a host is selected from the set of players in the game and that host acts as the server. The standard mechanism for making this work across NATs is a system known as hole-punching, with a fallback to slower relays if that fails.

TL;DR, those sockets are probably supposed to be receiving connections from peers (or connecting to them) via NAT traversal.

IIRC, MCC does have LAN support, which would eliminate the need for this traversal. If you think that's part of the issue, you can use Hamachi, ZeroTier, OpenVPN, Wireguard, or whatever else you want to setup a VLAN (or try coop over your actual LAN) and see if that works. But I doubt that's the issue because if it was Co-op likely wouldn't work at all.

Guessing for now to get past the sign in issue I need a custom proton runner? I'd that's so, which one and anyone have a link ok adding it to the selectable menu for the game?

Guessing for now to get past the sign in issue I need a custom proton runner? I'd that's so, which one and anyone have a link ok adding it to the selectable menu for the game?

That has been fixed for about half a year now.
Stock Proton 5.0-9 works just fine (and several older versions probably as well).

Update: Seemingly @PraetorianSC4 s advice towards changing the OS to Windows 7 also have worked for another game, Hello Neighbor Alpha 1. Since it is only an alpha, I won't be making a compatibility notice on that until probably later, though I'm leaving the tidbit here in case anyone else has this issue

TL;DR -> The same Sound Issues present in some areas of MCC are also persistent in Hello Neighbor 2's alpha, with the same fix/workaround working with it.

Guessing for now to get past the sign in issue I need a custom proton runner? I'd that's so, which one and anyone have a link ok adding it to the selectable menu for the game?

That has been fixed for about half a year now.
Stock Proton 5.0-9 works just fine (and several older versions probably as well).

I am running SteamOS :) I'll have to see what proton version I am stuck on.

Test result using latest Proton / Steam on openSUSE Tumbleweed:

  • No audio ingame. Audio is working in the menus, but when the campaign starts there's nothing from the game itself.
  • Can only play campaign (multiplayer keeps saying Anti-Cheat is not enabled, even though I see the logo for it when the game starts)

    • The sign in to Xbox live is working, but the game refuses to let me play because of whatever funk the Anti-Cheat system is in.

  • Cannot use Left shift to sprint
  • In Halo Reach campaign, the character's arm or leg seems to be "stuck"* when holding the pistol (not sure if intentional??) (*see bottom left of the screen)

    • halo_reach

@avindra
1) For the Audio, the fix/workaround was highlighted in previous comments, involving changing the winecfg via protontricks to report Windows 7 not Windows 10
2) Left Shift also reported by myself and others too in prior comments

The rest however is new info.

I'd like to add that I've seen the anti-cheat logo on launch since just after the game released. However, EAC still fails to launch correctly.

@CDAGaming Thanks for the synopsis of the audio fix.

I would really hope that steam/proton and The MCC could soon work for users right out of the box.

It's been a shame not to be able to play such a landmark title (especially after I bought it)

Audio works via:
(get pipx for your distro, for ubuntu it's python3-pipx)
pipx install protontricks
pipx ensurepath
start a new terminal
protontricks 976730 win7

Only played Halo Reach so far, works well, black textures appear on models after a while, have not found a workaround for that.

Audio works via:
(get pipx for your distro, for ubuntu it's python3-pipx)
pipx install protontricks
pipx ensurepath
start a new terminal
protontricks 976730 win7

Only played Halo Reach so far, works well, black textures appear on models after a while, have not found a workaround for that.

@zaggynl Does audio in Halo 3 work for you?

As far as I can recall, it uses a different audio engine than reach

For me so far, after the windows 7 thing, I've had no further issues with the entirety of Halo MCC, besides rare crashes and the LShift issue

@CDAGaming

Oh nice!

Does multIplayer work?

@mkrupczak3 Multiplayer does work! Kind of.

With Easy Anti-Cheat disabled, the only multiplayer modes available are (1) Custom Multiplayer and (2) the Campaign. Using Proton 5.0-9 on Ubuntu 20.04.1 to play Halo CE, I was able to play Custom Multiplayer games online with my friends. The Campaign does not work. The loading screen will appear but then both me and my friend would get the same error message:

CONNECTION INTERRUPTED
Your connection to the game session was interrupted.

That interrupted thing also occurs on Windows as well, even if my friend was with me side-by-side on the same network...

I played the campaigns with 5.9 everything seems to be fine. The only thing I noticed is that if you use a controller the monitor will eventually go to sleep. Other games use to have this issue but it has been fixed with them so hoping it can get fixed with this game as well.

Any one else have to sign in with your Xbox account every time you launch the game? I don't have to type in my username and password, I just have to click on "sign-in". My profile picture is already there. Sometimes it says I'm already signed in on another device.
T_20200901_104154
T_20200901_104206

I'm also getting some low frame rates in the outside areas of Halo CE.

@PopeRigby Yes, I've had that issue since day 1. I didn't realize it was unusual until you brought it up just now. A consequence is I'm unable to play the game if I don't have an extremely solid internet connection. If I can't sign in, I'm locked out of the entire game--full always-on DRM style--and those pages don't load unless your connection has basically 0% packet loss.

I've been Googling it and talking to tech support about it this whole time and gotten nowhere, because almost nobody has this issue. A nonzero amount of Windows users have it, though.

This whole time I assumed the problem was that it forces me to login when I'm offline--but from your post I'm realizing the problem might actually be that it never saves my login between instances of the game, meaning no login is saved when I launch it without internet.

From the latest development update for Halo MCC [1], this is the current status of some issues reported in this GitHub thread. There are still definitely issues with the game itself. Co-op campaign missions (for all games except Halo 2: Anniversary edition) might now work thanks to a server-side update they made.

Multiplayer:

Unable to play Halo 2: Anniversary Co-op Campaign: This issue is under investigation and we are working with the community who has submitted support tickets to understand the core issue. If you have not yet submitted a ticket on this and are experiencing it, please submit a ticket at the Halo Support site.

...

Co-op Disconnect Issues: We have released a handful of server-side updates to address issues with connectivity when playing co-op Campaign. If you are still encountering disconnects, please submit a ticket at the Halo Support site.

Players Unable to Matchmake on the Same Internet Connection: There have been some reports relating to this that we are trying to investigate and work through. If you have not yet submitted a ticket on this and are experiencing it, please submit a ticket at the Halo Support site.

Login:

Inability to Login and Play: Our team is actively investigating reports relating to this issue. If you are experiencing any issues where you can’t get past the login screen or beyond the main menu, please submit a ticket at the Halo Support site.
  1. Halo MCC Development Update - August 2020

Hey, I'm trying to play Halo Master Chief Collection, specifically Reach, on Arch linux but when I click play the game will start and stop immediatly. I have tried every version of Proton including 4.21-GE-1, 5.11-GE-3-MF, and 5.9-GE-5-ST. I am running kernel version 5.8.4 with the lastest Nvidia drivers for the GTX 1070. If anyone could help me out that would be great.

@JacobMcDonnell have you tried the latest non-GE (native Steam) proton?

@avindra yes I have tried 4.11 to 5.0-9 and the game starts then stop immediately.

Strange, 5.0-9 works for me.

On another note, after trying to load into the first mission of Halo 2, it crashes my entire computer. The screen goes white, and then my monitor continually cycles through it's input. I then have to reboot.

On ElementaryOS with AMD (RX580, 2700X) I can run Halo 3 with 5.0-9, but I only get menu audio. Forcing Steam to use 4.11-13 fixed that and seems to be running fine. Seems like a regression.

Proton 5.9-GE-8-ST
protontricks 976730 win7

Linux-Windows Co-op Campaign works, disconnection/desync seems to be fixed.
seems to run near-flawlessly. some minor graphical artifacts on Navi10 (Mesa 20.1)
noticeable shader compilation stutter, even on ACO. much worse on LLVM.

Hello. Halo 3's audio should be fixed in Proton 5.13. IWHBYD.

@mathew2214 Same setup here but I'm still getting the desync/disconnection issue in Halo 3 and can't play with someone on Windows for more than about a minute, did you do anything aside from setting the prefix to win7?

@mathew2214 Same setup here but I'm still getting the desync/disconnection issue in Halo 3 and can't play with someone on Windows for more than about a minute, did you do anything aside from setting the prefix to win7?

what Proton version? 5.9-GE-8-ST is the only build with the co-op fix applied.

@mathew2214 Same setup here but I'm still getting the desync/disconnection issue in Halo 3 and can't play with someone on Windows for more than about a minute, did you do anything aside from setting the prefix to win7?

I'm happy to confirm that it's working fine for me. (So far, I only tested Halo 1).
I think the main change is that vcrun2019 from winetricks/protontricks is applied.
You can check ~/.steam/steam/steamapps/compatdata/397540/pfx/user.reg for the corresponding overrides:
"ucrtbase"="native,builtin", "vcruntime140"="native,builtin", ...

I'm also using 5.9-GE-8-ST and vcrun2019 does appear to be applied to 976730/pfx/, still getting the desync/disconnect. Will investigate more I suppose.

Confirmed Halo Co-op working against Linux-Windows Pair. I left the Windows Version at default.
https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/5.9-GE-8-ST

So I get a UE4 fatal error when I try to launch Halo 3: ODST Campaign. I'm using 5.9-GE-8-ST. I launched it with MCC anti-cheat disabled. Any ideas on how to fix it?
I've attached the log file below.
steam-976730.log

So I get a UE4 fatal error when I try to launch Halo 3: ODST Campaign. I'm using 5.9-GE-8-ST. I launched it with MCC anti-cheat disabled. Any ideas on how to fix it?
I've attached the log file below.
steam-976730.log

TL;DR: Probably an XAudio2.9 issue. Try switching to Windows 7 mode. From your log, it seems like you're set to Windows 10.

Your log shows a write to a null pointer in line 30164.
I've had a quick look at the disassembly in IDA:
That pointer is either uninitialized or set to the return value of a function that appears to initialize XAudio2.9 (using the redistributable bundled with Halo: MCC).
Your log shows that it's loading wine's builtin xaudio2_9, whereas mine only loads xaudio2_7 and xaudio2_8.

Switching to windows 7 works. Thanks!

Syed Anas Ghazanfar

On Thu, 5 Nov 2020, 13:31 LukasRuppert, notifications@github.com wrote:

So I get a UE4 fatal error when I try to launch Halo 3: ODST Campaign. I'm
using 5.9-GE-8-ST. I launched it with MCC anti-cheat disabled. Any ideas on
how to fix it?
I've attached the log file below.
steam-976730.log
https://github.com/ValveSoftware/Proton/files/5473745/steam-976730.log

TL;DR: Probably an XAudio2.9 issue. Try switching to Windows 7 mode. From
your log, it seems like you're set to Windows 10.

Your log shows a write to a null pointer in line 30164.
I've had a quick look at the disassembly in IDA:
That pointer is either uninitialized or set to the return value of a
function that appears to initialize XAudio2.9 (using the redistributable
bundled with Halo: MCC).
Your log shows that it's loading wine's builtin xaudio2_9, whereas mine
only loads xaudio2_7 and xaudio2_8.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ValveSoftware/Proton/issues/2907#issuecomment-722593018,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARTGUHQMWOBJ77CE6N6ZIGDSOL4PTANCNFSM4IGTWRCA
.

FWIW, Halo ODST's campaign is working fine for me out of the box with Proton 5.13.

What's the best workaround for left shift not being able to be bound to anything?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

shaphanpena1 picture shaphanpena1  Â·  3Comments

AwesamLinux picture AwesamLinux  Â·  3Comments

prototype99 picture prototype99  Â·  3Comments

matou68 picture matou68  Â·  3Comments

AwesamLinux picture AwesamLinux  Â·  3Comments