If you’ve had the misfortune of purchasing the Master Chief Collections thinking you were going to play through the old games with your friends, then you know what comes next. Pretty much all of the games are unplayable, but Halo 2 won’t even run most of the time. So today, I figured I’d take some time to rant about my experiences and share the countless solutions shared on the internet.
Table of Contents
- Just Wanted to Play Some Co-op Campaign
- The Network Theory and Its Fixes
- Determine NAT Type and Automatically Fix It
- Set Time Automatically
- Enable Windows Firewall
- Disable VPNs
- Manually Forward Appropriate Ports
- Enable UPnP On Your Router
- Run Sketchy Teredo Commands
- Follow Microsoft’s Tips for Addressing Teredo
- Verify that Four Key Windows Services Are Setup Correctly
- Disable Unused Network Adaptors
- Community Oral Tradition, Lore, And Superstition
- Official Support
- The Takeaway
Just Wanted to Play Some Co-op Campaign
At some point in the last couple of months, I found out one of my best friends had never played the halo series. To share with him the joys of my childhood, I figured we could both download the Master Chief Collection from Steam. Turns out that was a big mistake.
Well, to be charitable, we were able to play through the entire Halo 1 campaign without too many issues. Then, when we got to Halo 2, the game played somewhat well early on. That was until we hit Delta Halo. Upon two successive runs of that mission, the game crashed as we were driving the tank around.
If you’re unfamiliar with how crashes work in Master Chief Collections, they basically send all party members to the main menu. When you get back together, there is no way to start from any recent checkpoints. You have to run the mission from the top.
Oh well, we can just skip that mission, right? So, we moved on. Turns out, there’s another huge hurdle: Quarantine Zone. After speedrunning the beginning by racing past the enemies nearly a dozen times, we were able to beat that mission. Then comes Gravemind, a mission that is comically long. It crashed in the last room. After that, we failed to get any of the last three missions to run for more than 90 seconds or so.
As you can imagine, this is a problem that is incredible frustrating. In the end, we never found a fix, so we ended up just watching the following short Halo 2 recap:
That said, just because we couldn’t find a fix, doesn’t mean some of the tricks folks mentioned online couldn’t work for you. As a result, I’ll aggregate all the fun tricks that folks mention across different forums.
The Network Theory and Its Fixes
After spending some time digging through various forums, I’ve come to realize that no one really knows why the co-op campaign is so bad in the Master Chief Collection. However, the primary theory seems to be that of a networking issue. The general belief is that campaign runs off of peer-to-peer networking rather than a dedicated server. As a result, connections are at the mercy of user ISPs and MCC’s old networking infrastructure. So, what do you do? Let’s take a look at some options.
Determine NAT Type and Automatically Fix It
For context, I know basically nothing about networking, but several sources point to NAT type as the main issue. According to PCWorld, you can figure out your NAT type on any Windows 10 PC by launching up the Xbox networking tool in your PC’s settings. If you’re on Windows 11 like me, you’ll need to launch the Xbox Console Companion App. In either case, there’s a networking tab in settings which will show you your NAT type as follows:
As you can see, my server connectivity is blocked. According to PCWorld, there is supposed to be an automatic fix button to open up the NAT and fix this issue, but I don’t see it on my end. Sometimes, when I run it, I even see the worst case scenario:
Without an automatic fix button, this information is somewhat useless, so let’s look at some other tips.
Set Time Automatically
To be honest, I don’t know why this would be a problem on your machine. Regardless, PCWorld recommends that you set your time automatically. Most folks should already have this setting on. Here’s what it looks like on Windows 11:
Once it’s set, your clock should match up with the correct time of day.
Enable Windows Firewall
This is another tip mentioned by PCWorld. Personally, I don’t use Windows Firewall; I have a separate antivirus tool. As a result, the Windows Firewall screen looks like this on Windows 11:
In general, this should be turned on otherwise. I would be surprised if it wasn’t already enabled on your machine.
Disable VPNs
PCWorld recommends checking that your VPN isn’t blocking access to Xbox Live ports. How you would know how to do that is beyond me, so my advice would be to just disable your VPN temporarily. I use one, and disabling it did not seem to open up my NAT or fix any connectivity issues. In fact, disabling my firewall altogether seemed to have no effect.
Manually Forward Appropriate Ports
Port forwarding is an incredibly painful (and possibly dangerous), so I don’t recommend doing it yourself. That said, I tried it using my AT&T router, and I saw no change. Though, it probably doesn’t help that I was unable to find an official list of ports that I should be forwarding. If you want to try your luck, here are various sources sharing port numbers:
If you go down this road, let me know what worked!
Enable UPnP On Your Router
UPnP stands for Universal Plug and Play. I assume it makes online gaming easier. AT&T will not allow me to enable it, so I wasn’t able to give it a shot. Maybe you can!
Run Sketchy Teredo Commands
PCWorld shares a series of PowerShell commands that you can run to toy around with Teredo:
netsh int teredo set state disable netsh int teredo set state type=default netsh int teredo set state enterpriseclient netsh int teredo set state servername=teredo.remlab.net
In the video that accompanies this article, they mention not running the NAT check tool from above. I assume it must overwrite these commands. That said, it all sort of seems like black magic. Run at your own risk.
Follow Microsoft’s Tips for Addressing Teredo
If you don’t want to run the commands above, you can always follow this guide from Microsoft. They recommend first checking if Teredo is disabled in the registry by opening an administrator command prompts and running the following command:
reg query HKLM\System\CurrentControlSet\Services\iphlpsvc\Teredo
If you see “Type REG_DWORD 0x4”, then you can run the follow command to fix it:
netsh interface Teredo set state type=default
Otherwise, you can also try checking if Teredo is named correctly:
netsh interface Teredo show state
If for whatever reason you see “failed to resolve server name”, then Teredo is broken. You can likely fix it by running the following command:
netsh interface Teredo set state servername=default
If not, check out the guide linked above for more tips.
Verify that Four Key Windows Services Are Setup Correctly
Apparently, something else you can check from this Microsoft forum are the following four services.
- IKE and AuthIP IPsec Keying Modules: Automatic (Trigger Start)
- IP Helper: Automatic
- Xbox Live Auth Manager: Manual
- Xbox Live Networking Service: Manual
You can check these by opening the Services app. Feel free to search for it with Cortana.
Disable Unused Network Adaptors
Another thing you can try, according to PCWorld, is disabling network adaptors. On my PC, I use ethernet but also have a Wi-Fi adaptor. To disable it, I just click the Wi-Fi symbol in the Windows menu that pops up from the toolbar. Unsurprisingly, nothing changed on my end, but you might have more success with it.
Community Oral Tradition, Lore, And Superstition
Now, all of the previous techniques described come from “reputable” sources like Microsoft itself and blogs. That said, like me, there are hundreds of folks scouring the web for tips when all else fails. So, I figured why not put together a list of some of the tips from the locals.
Cap FPS to 60
In one forum post, a user stated:
I’m totally with you there on the horrible co-op experience, i’ve made plenty of posts about this on the old Halo Waypoint forum. This is an issue with every halo campaign on MCC especially with H3 (if you all don’t lock your framerate to 60) and with h2 (where there is no known fix). It seems like right now h2 campaign is at it’s worst, for me it disconnects the co-op session even when I make my laptop on a second account join (in the same house ofc). In addition h2 missions take FOREVER to load (it takes longer for these missions to load with each update) and switching the graphics from classic to anniversary or the other way around is almost a guaranteed disconnect in co-op.
In another post, a user stated:
If you are on pc set the frame rate to 60 across H2 i vaguely remember coming across this issue.
I think the general belief around capping frames is that the original game had its frames capped around 60. Therefore, leaving frames uncapped might cause graphical errors or even networking errors somehow. Regardless, you can cap frames on a per game basis from the graphics sections of the MCC settings. For me, they’re under “experimental settings”, and my frames were already capped.
Launch Game in Classic Graphics
In a Reddit post, a user stated:
I think its only two levels we had issues in, i would set it to 60 and basic graphics. I remember we used old graphics also just to make it normal as possible
Apparently, there’s a general belief that playing the game in its original graphics should fix the issue. I can guarantee this isn’t enough, but it’s worth a shot among the other fixes.
Watch Through the Cutscenes
In another Reddit post, a user stated:
If you both watch the cutscenes, or at least the very end of them in classic graphics, it solves the problem and it won’t crash.
Again, I have no clue what the rationale is for this one, but it appeared to work for them. Maybe if you do a backflip in front of your monitor, it might also help balance the world’s karma.
Delete Unused Campaign Files
At one point, I recall reading that deleting unused game files might help. Specifically, in MCC, you can keep all of the campaign files for all games on disk. I deleted the Halo 1 files, and I noticed no change. That said, perhaps deleting all of the other game files may actually help. Unlikely, but it can’t hurt to try.
Make Party Load Game From Same Style of Disk
In yet another Reddit post, I user wrote:
I spoke with my friend who told me that his MCC application was installed on his D drive while my MCC was installed on my C drive. If that comment in the article about running the game on SSD vs HDD was in any way accurate, that could mean that either 1) both players have to have the packages installed on the same drive, OR 2) that whoever hosts the co op session has to have MCC on the SSD (aka the faster loading game).
In short, they argued that all players should be playing the game on the same style of disk (e.g., all SSDs, all M.2s, etc.). As for why this would matter, one user states:
Because the person using the external SSD loads the level a LOT faster than the other one. Since the other guy is taking so long to load, it lags them out of the lobby.
I tried this with no change, but maybe you’ll have more luck.
Trust the Process
Other folks have speculated even more hilarious solutions:
Interestingly avoiding killing the ghosts at the first bridge completely stopped the crashing on this mission. Pretty embarrassing for 343.
One time the game crashed for my buddy and me after I picked up a sword, so we vowed to never even so much as look at it. That didn’t work, but it was good fun between the two of us.
Official Support
It’s worth noting that most of my searching was through obscure queries in Google, so there may be additional resources elsewhere. For instance, I recently found that 343 tracks known issues in their games, so you may find some luck looking through their posts. Here are some known issues I tracked down since originally writing this post back in December 2022:
HALO 2: ANNIVERSARY KNOWN ISSUES as of 12/7/2022 in build 1.3073.0.0
- New – Players in online co-op sessions may be booted to the main menu and receive “Connection Interrupted” errors in the following scenarios:
- When one player triggers a checkpoint while driving a Scorpion and another player is driving a different vehicle.
- When skipping the opening cutscene in the mission Outskirts.
- When playing a Campaign Playlist.
I don’t plan to keep this article necessarily active, but I figured you might find these additional resource useful in your troubles. With that said, you may find it still somewhat frustrating to read through these types of documents as they share “fixes” like the following:
HALO: THE MASTER CHIEF COLLECTION (MCC) UPDATE – JULY 2023
- Campaign Co-Op sessions are now less likely to crash when playing through the mission The Oracle.
- Players are now less likely to encounter a “Network Disconnect” error message while playing through the mission Quarantine Zone in Campaign Co-Op.
I don’t know about y’all, but the phrase “less likely” doesn’t inspire a lot of confidence.
The Takeaway
Given all the different solutions that folks recommend, I have yet to get MCC co-op campaign working, especially for Halo 2. What that tells me is that 343 needs to figure something out soon. This is ridiculous considering folks are still buying the game. They can’t keep getting away with it.
At any rate, I’m going to call it today. The only reason I wrote this article was so I didn’t feel like I wasted all that time trying to get the campaign working. If you liked this rant and want to read more like it, here ya go:
- AT&T Is Just Bad
- What It’s Like Being an AT&T Customer
- AT&T Is a Disaster: The Offer That Never Came to Be
Until next time, take care!
Recent Posts
Python has a cool feature that allows you to overload the operators. Let's talk about what that means and how you might use it!
This week, we're hitting another beginner topic: the assignment operator. While the idea is simple, the concept is rich in related ideas like scope, iterable unpacking, and augmented assignment.