sandermvanvliet / RoadCaptain

Build and ride custom routes in Zwift
Other
83 stars 4 forks source link

New Zwift version (1.27) breaks RoadCaptain #99

Closed sandermvanvliet closed 2 years ago

sandermvanvliet commented 2 years ago

With the new Zwift update it’s looking like turn commands don’t work anymore which effectively breaks RoadCaptain.

This problem also occurs with Zwift Companion so it seems not directly related to Road Captain, however I’m not sure yet.

Currently I’m investigating this issue as well as the new connection changes in Zwift itself.

Hopefully the next release of Road Captain addresses these issues and you can use the app normally again.

Unfortunately I can’t provide any timeline yet, I would like to ask a bit of your patience while I sort this out.

If you have any feedback please comment on this issue 👍

sandermvanvliet commented 2 years ago

This was sort of announced in #91 but I did not expect it to have this effect as RoadCaptain is still using the legacy connection.

oldnapalm commented 2 years ago

Companion app is broken too (Android at least), looks like only left and right commands work, straight and U-turn don't.

sandermvanvliet commented 2 years ago

Yes I’ve found that as well, see also my post on the Zwift forums here

sandermvanvliet commented 2 years ago

Good news, RoadCaptain now supports the encrypted connection introduced in Zwift 1.27.

A new release will be out soon!

VNT974 commented 2 years ago

Congratulation for this huge huge support. Keep the hard work !

sandermvanvliet commented 2 years ago

@oldnapalm I've documented the encryption process here: https://github.com/sandermvanvliet/RoadCaptain/blob/main/docs/ZwiftEncryption.md If you’ve got any feedback that would be appreciated 👍

oldnapalm commented 2 years ago

@oldnapalm I've documented the encryption process here: https://github.com/sandermvanvliet/RoadCaptain/blob/main/docs/ZwiftEncryption.md If you’ve got any feedback that would be appreciated 👍

Nice work. I have only experimented with communication between game and server (zoffline) but I think this applies to companion as well, the connection id (IV bytes 6-7) is incremented and the seqno (counter) is reset if the connection is closed. But since communication between game and companion is over LAN this will probably never happen.

sandermvanvliet commented 2 years ago

Ah great, I wondered what that was for. I’ll update the docs.

So far I’ve not seen the connection drop between Zwift and ZC on LAN. Theoretically it could happen on wifi as that can see disconnects more than a wired network

sandermvanvliet commented 2 years ago

@oldnapalm I've updated the docs and also included a note on the endianness of the bytes. That threw me off when implementing this...

oldnapalm commented 2 years ago

One thing that triggers TCP reconnection (connection ID increment and seqno reset) in ZwiftApp is leaving a world and joining another.

sandermvanvliet commented 2 years ago

Right, I’ll go test that and see what happens 👍

sandermvanvliet commented 2 years ago

Testing so far shows that it seems to work all right now that #98 has been fixed so I’m closing this issue 👍