Am I allowed to upload network code for a Wii U game that has NEX servers, but no one did a network dump for them

I used Google Gemini to help me locate decompile network code so I can submit the code to pretendo (the code is a “.c” file) but idk if I am even allowed to submit the network code

Almost all games that used NEX will be supported eventually. There are just other priorities for the devs at the current moment.

Out of curiosity, what game is this for?

Ninja Gaiden 3: Razor’s Edge, I was trying to get the game revived, and I thought submitting network files that I pulled from the executable would help revive the game

Just bare in mind that code generated by LLMs is prone to hallucination. Pretendo may not even accept LLM generated code (their GH repo probably signifies their stance)

To clearify, there is no “AI Generated code”. The AI just helped find code that already existed within the executable, which in this case, the network code for Ninja Gaiden 3 razors edge was found. But I looked into legal issues of sharing decompiled code and if I did upload it, pretendo servers would be shut down all because of me, so instead I got a .txt with a clean-room functional specification document, and a packet capture, I’ll have to ask Jon if he can allow me to upload a capture that was taken today

No, firmly. I’ll explain why just so this can be pointed back to, but this is firm.

Not only do I not want to allow AI generated slop in general here, but it also just wouldn’t be helpful to us and could actually put us at risk (see the second part of my response). No one submitted dumps for that game, but it also doesn’t use anything special that standard NEX games of the same version don’t use, and it uses a NEX version that is already very well researched (3.0.1) nor does it use any protocols that aren’t either already well understood or already documented (prior to the Nintendo Network shutdown, I spent a very long time fuzzing the official game servers with a custom client and documented nearly all behavior possible, which is slowly being rolled into our new wiki, an example of which can be found here DataStoreProtocol - Nintendo Wiki). And anything that it might have that we don’t already know about, we can figure out for ourselves without needing to use the billion dollar hallucination machine.

The only missing pieces network dumps would fill in for us in this case would be things like some unique identifiers (like what IDs does the game assign to it’s game modes and such), but those are all just opaque bits of metadata, the server doesn’t have to care about what they are and the official servers just let you assign any values most instances without issue so it was all very generic, and even if we did have to know the specifics (such as in rare cases like SMM where the game requests an “application config” list from the server) we can just watch how the game tries to talk with our own servers to get those values. And in the rare case where we do need to know a server-side value not sent by the client, and we lack network dumps that show the value, just having general networking code (I’m assuming all you did was feed the AI the symbols from the game and throw it at IDA or something) won’t do us any good. Knowing how the game sends/parses network requests/responses doesn’t (by itself) tell us how the game USES the data, for that you’d need to decompile MUCH more of the game and I highly doubt Gemini could even come close to finding that out without completely breaking down with a ton of hallucinations.

We also already have several tools to help automate certain tasks without relying on any AI at all, such as https://github.com/PretendoNetwork/nex-documentation-generator which scans game executables for their leftover debug data and builds Markdown documentation based off it.

An AI policy is something being tossed around, but we don’t have an official one at the moment. Unofficially though, the majority of the core development team is anti-generative-AI. Obviously individual opinions vary, and even those who are anti-AI can at times have nuanced opinions (some members are anti-AI entirely, some are accepting for minor tasks like repetitive things, etc.) but in general things lean more anti-AI than pro. I can very confidently say though that no matter what the policy ends up looking like, I won’t be approving of a policy that allows AI generated code for game servers, even if it’s more lenient in other places like the Discord bots or websites and such. We have to be EXTREMELY careful with how we implement things, any wrong move could get us nuked by Nintendo and so we take aggressive action against those trying to use things like console SDKs to contribute. Since the SDKs for these consoles have been leaked for years, and LLMs are trained on any data they can get their hands on with no regard to copyright or legality, they are ABSOLUTELY trained on leaked SDK docs/C headers/etc. This is especially a problem after the gigaleak happened, which means LLMs could very well not only be trained on SDK headers/docs, but entire leaked source code (especially ones that train off data from GitHub, since I know for a fact that at least one game from the gigaleak is still to this day available on GitHub). So we can’t trust any LLM to touch anything relating to game servers, as we have no way of knowing where the information it got is coming from and I’m simply not taking that risk.

1 Like