-
Notifications
You must be signed in to change notification settings - Fork 68
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
Server usage examples #124
Comments
This repo has an example server found in the examples folder https://github.com/kinnay/NintendoClients/blob/master/examples/custom/server.py You would use the other protocol classes the same way. As for the actual logic behind them, that's an implementation detail and really up to you how you implement it. Also some NEX versions have slightly different requirements especially with matchmaking, so your implementation would also vary by game We've had instances like this several times over at Pretendo, where one game may expect a matchmaking notification and another may not (as an example) |
@jonbarrow is right. No other examples unfortunately. If you have a specific question about the match making protocol, feel free to ask and we can try to help. |
This is very useful, thanks! I was looking at the matchmaking_mk8d code to try serve it, since it has the full server code and as far as I understand I need to run the servers mk8d uses |
This example is good enough and it tells what parts are coded specifically for SMB35 and which ones are the base code needed |
It has the skeleton of the protocol but you'll still need to implement all the actual functionality by hand. You'll also probably need to run your own account server, unless there's some other way to force the game to connect? I haven't looked much into the Switch's architecture myself yet, to be honest. I assume it gets the NEX servers location from the account server much like the WiiU/3DS do |
Oh, that makes a lot of sense, thanks! |
No, the Switch finds the game servers by DNS lookup. The easiest way to connect with a custom server is to write an IPS patch that replaces the game server URL. This is what I did with SMB35 as well. |
That's right, my bad. I remember that from your wiki now, ignore me |
And what about the dauth/nso check switch does on connection, how to bypass that? I presume a patch too? |
Yes. It depends on the game, but you probably want to look for the following functions:
|
And does F-Zero 99 use libeagle too? It seems so, but it's not mentioned in the wiki. |
Yes it does, I just checked and updated the wiki. Its version string is 2.5.5, so the protocol is probably the same as in SMB 35 and Pac-Man 99. |
Great to know, thanks! |
I have a question on this. Instead of the patch for the game server url, couldn't you disable certificate check and custom DNS to point into your game/authentication server?. Same logic could go on dauth/nso checks?, I could run my own dauth/nso servers with certificate check and custom DNS, correct? |
Correct. Here's a repo that disables certificate checks: https://github.com/misson20000/exefs_patches. |
Kinnay, would you appreciate implementations for the dauth/nso servers in the repo? |
Not here, but I have a server implementation elsewhere: https://github.com/nintendo-playground/. It currently implements dauth and aauth up to system version 14.1.2. |
I found this package very useful, however there are no examples on how to use things like nintendo.nex.matchmaking. MatchMakingServer. Are there any examples (other than the SMB35 repo) for those server classes?
The text was updated successfully, but these errors were encountered: