Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Help with MK8 implementation #125

Open
Takabrycheri opened this issue Aug 21, 2024 · 12 comments
Open

Help with MK8 implementation #125

Takabrycheri opened this issue Aug 21, 2024 · 12 comments
Labels
support Request for support

Comments

@Takabrycheri
Copy link

Hi, I'm trying to implement the server for Mario Kart 8, I think it's apparently set up correctly but when I try to go online from the game I get this error in the secure server log:

[func (*KerberosEncryption).Decrypt() github.com/PretendoNetwork/nex-go/kerberos.go:32] : Keberos hmac validation failed
[func (*PacketV1).Decode() github.com/PretendoNetwork/nex-go/packet_v1.go:167] : PRUDPv1 calculated signature did not match

I can't figure out where the problem might be coming from since in the setup-environment.sh I create the password the same way as in other games and it is uploaded to both the secure and authentication servers...
Could you give me some pointers on where the problem might be coming from? Thanks

@MatthewL246 MatthewL246 added the question Question about the project label Aug 21, 2024
@MatthewL246
Copy link
Owner

MatthewL246 commented Aug 21, 2024

Sorry, I'm not very experienced with the internals of NEX, so I'm not sure what's going wrong here. It might be a bug in the server, since I see that Mario Kart 8 is still using nex-go v1.

@Takabrycheri
Copy link
Author

Sorry, I'm not very experienced with the internals of NEX, so I'm not sure what's going wrong here. It might be a bug in the server, since I see that Mario Kart 8 is still using nex-go v1.

Ok, thanks anyway. I thought it was related to the Kerberos password that is set as an environment variable in the config and instead it seems to be an "internal" problem to the server. I'll try to investigate :)

@MatthewL246
Copy link
Owner

I took a look at your fork, and as far as I can tell you're setting up the Kerberos password in the same way as the other servers, which should be correct.

@Takabrycheri
Copy link
Author

Takabrycheri commented Aug 22, 2024

That's exactly what I can't understand, anyway I haven't pushed all the changes yet, but in the end the situation isn't changing much... I'm trying to understand what's happening by also looking at the version of nex-go used in the mk8 server, but for now I still have no idea why it fails...

Also, regarding the nex-go version, I think it is irrelevant, I think. Because it uses the version that was there when the last push of the mk8-secure repo was made, but since it is still an internal system to the server itself, it should not interact with the other servers that have the new version. So either we are missing something or that repo was published in a non-functional state (?)

@Dr-Wily
Copy link

Dr-Wily commented Sep 26, 2024

@Takabrycheri Hello, can you share your compose.yml with us to help to setup a MK8 server ?

EDIT : Oh sorry I'am just figure out that I can find it on your pretendo-docker fork on your profile... sometimes I get a bit distracted.

@ReynoldsCahoon
Copy link

Any updates on your project @Takabrycheri ?

I've recently set up pretendo-docker and hadn't realized there's no Mario Kart 8 server included. Are there any guides or suggestions for adding Mario Kart 8 support?

@AToska21
Copy link

AToska21 commented Oct 8, 2024

Pretty sure you can run it separately and just add it to the servers collection in the pretendo_account db.

@MatthewL246 MatthewL246 added support Request for support and removed question Question about the project labels Oct 20, 2024
@Takabrycheri
Copy link
Author

@Dr-Wily @ReynoldsCahoon

Sorry but for some reason GitHub did not send me notifications… in any case I never managed to make it work. Apparently it can't work because the currently public Mk8 repository uses an old version of nex-go, I would try to implement a more recent version but I think I am not able to do it (or I don't have enough time to try)

@Dr-Wily
Copy link

Dr-Wily commented Dec 13, 2024

@Takabrycheri That's exactly what's strange about this project. On the one hand we have open source repositories that should work but on the other nothing working. On the top of that, the official pretendo servers seem to have a working version of the MK8 server. In my opinion they reserve a working version and do not publish it publicly for unknown reasons... I think this is not very fair.

I also don't understand why Pretendo Docker doesn't include a server for MK8 when it's probably one of the most popular games on the WiiU. It doesn't make a lot of sense.

@Takabrycheri
Copy link
Author

I also don't understand why Pretendo Docker doesn't include a server for MK8 when it's probably one of the most popular games on the WiiU. It doesn't make a lot of sense.

Pretendo Docker does not support Mk8 because for this very reason it cannot be started and it is not an official Pretendo repository… I also read that once the first Pretendo server was written in Python and subsequently the developer who followed the development abandoned the Pretendo project. So in reality it is still not clear to me whether there has ever been a version of mk8 in go that works or not. In any case it seems to me that few repositories have been updated to the new nex-go 2, but I have not checked for months so I am not sure of what I am saying.

@MatthewL246
Copy link
Owner

MatthewL246 commented Dec 14, 2024

I will be honest with you, the Pretendo deployment situation is a bit messy right now. Code changes and server hotpatches sometimes take longer than they should to get pushed into the open-source repositories. I can assure you that this is not malicious and they're not purposefully being kept private... it's just disorganized. There is a major infrastructure modernization project that has been planned privately for the past few months, which, among other things, will require the code to be pushed to GitHub and built in CI before deployment. This should hopefully improve the organization of code changes and server deployments.

Regarding Mario Kart 8 specifically, I am aware that Pretendo is not currently using their own Mario Kart 8 server implementation. Instead, they've been using the Python NEX server by a former developer that @Takabrycheri mentioned: https://github.com/Newtendo-Network/nex_mario_kart_8. It seems that the Pretendo Mario Kart 8 server isn't currently functional.

I'm somewhat conflicted about adding the Python server to pretendo-docker: on one hand, it's not an official Pretendo project, but on the other hand, it was made by a Pretendo developer and has been running in production for a long time. At this point, I would probably be fine with including it and would accept a PR, at least until Pretendo's Go NEX server is working. Just quickly looking at the Python MK8 server's configuration file, it would definitely require a bit of modification to load settings from environment variables. There may also be other issues setting it up, but I don't even know yet.

@ReynoldsCahoon
Copy link

Appreciate the explanation and transparency. Thanks so much for your work on this and other Pretendo related projects. I have a crazy home project involving a custom 3d printed rack mount for 8 WiiU's and it all relies heavily on Pretendo services to allow them to play together.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
support Request for support
Projects
None yet
Development

No branches or pull requests

5 participants