Live data from Hacker News

Exploring the Halo 1 System Link Protocol

hllmn.net

11–20 of 65 posts

Re: Exploring the Halo 1 System Link Protocol

#11
"age in a bot" might be a truncated form of "message in a bottle."

The PRNG exponentiation scheme is essentially Diffie-Hellman.

> Modifying the fire duration does not seem to have any effect

Including, e.g., plasma pistol?

Very cool investigation and writeup.

Re: Exploring the Halo 1 System Link Protocol

#12
post #9
post #8

Earlier quoted context omitted.

The game was actually close to ship without multiplayer, it was an afterthought. Some devs have talked about this (iirc, Marty O’Donnell was one of them).

I’ve heard this was also the case for Goldeneye on the N64

Goldeneye is one of the best case studies for why companies should give their engineers room to experiment. If I remember correctly, the multiplayer mode was originally a side project of one of the engineers and was added near the end of development.

This isn't to say the campaign mode isn't good, but the ability for boys to play a shooter game against each other on the same console is what made that game.

Re: Exploring the Halo 1 System Link Protocol

#14
post #11

"age in a bot" might be a truncated form of "message in a bottle." The PRNG exponentiation scheme is essentially Diffie-Hellman. > Modifying the fire duration does not seem to have any effect Including, e.g., plasma pistol? Very cool investigation and writeup.

> "age in a bot" might be a truncated form of "message in a bottle."

Yeah, that makes sense, it is a very odd sentence otherwise. Truncating on "bot" might be a play on words for game AI/NPC.

> The PRNG exponentiation scheme is essentially Diffie-Hellman.

Ah, of course, yes, I was thinking it reminded of public-key cryptography.

> Including, e.g., plasma pistol?

Yeah, it seems so, that was the first weapon I was thinking it to be used for. I tried e.g. setting the duration to zero and charging the plasma pistol. It still shoots like normal and does not seem to affect visual effects, audio or damage for neither host nor guest. It is still possible that it is used for something else that I have not noticed. Modifying the host's fire duration does not cause a desync so it might not affect the game state.

> Very cool investigation and writeup.

Thanks!

Re: Exploring the Halo 1 System Link Protocol

#15
post #8

Earlier quoted context omitted.

They were probably already working on it

The game was actually close to ship without multiplayer, it was an afterthought. Some devs have talked about this (iirc, Marty O’Donnell was one of them).

The game being an FPS was an afterthought, too. Originally, they were working on an RTS.

Re: Exploring the Halo 1 System Link Protocol

#16
post #13

It's a shame it's proprietary, but there's a neat service[1] that's been around for over a decade that reverse engineered System Link and similar protocols to make them Internet-enabled. [1]: https://www.teamxlink.co.uk/

I haven't tried this out, I wonder how well the Halo 1 net protocol works over a less reliable connection. I encounter issues as soon as I momentarily minimize the emulator and it does not recover without starting a new game.

I wonder if it is enough for XLink to simply send the packets through a networked tunnel or if it actually needs to modify the packet payload somehow. The consoles might be able to handle everything as long as they are able to communicate with each other?

Re: Exploring the Halo 1 System Link Protocol

#17
post #13

It's a shame it's proprietary, but there's a neat service[1] that's been around for over a decade that reverse engineered System Link and similar protocols to make them Internet-enabled. [1]: https://www.teamxlink.co.uk/

I haven't tried this out, I wonder how well the Halo 1 net protocol works over a less reliable connection. I encounter issues as soon as I momentarily minimize the emulator and it does not recover without starting a new game. I wonder if it is enough for XLink to simply send the packets through a networked tunnel or if it actually needs to modify the packet payload somehow. The consoles might be able to handle everyt…

My friends tried it back in the day and it seemed pretty laggy, like 100ms, even with broadband cable. Hosts definitely had the advantage.

Re: Exploring the Halo 1 System Link Protocol

#18
post #13

It's a shame it's proprietary, but there's a neat service[1] that's been around for over a decade that reverse engineered System Link and similar protocols to make them Internet-enabled. [1]: https://www.teamxlink.co.uk/

They don't really need to reverse engineer the underlying protocol for that service. It's enough to simply bridge the networks in a way that local broadcast still gets through.

Re: Exploring the Halo 1 System Link Protocol

#19
So that's basically most of the lowest layers of the Xbox Live protocol as well. Simply game discovery happens over local broadcast instead of through the Live servers. There's some other specifics that change, such as logging into a host xbox doesn't diffie-hellman anymore but instead key sets are distributed by the server backends with the session information. Additionally the auth side is basically non existent on system link.

Great RE work!

Disclaimer: I created a proof of concept implementation of the Xbox Live server infrastructure here: https://github.com/xombieonline/xombie

Re: Exploring the Halo 1 System Link Protocol

#20
post #8

Earlier quoted context omitted.

The game was actually close to ship without multiplayer, it was an afterthought. Some devs have talked about this (iirc, Marty O’Donnell was one of them).

The game being an FPS was an afterthought, too. Originally, they were working on an RTS .

I wouldn't call it an afterthought per se, more a pivot with a lot of work. It was already an FPS when it was shown off at MacWorld'99.
Post reply on HN