An open-source implementation of the servers for Nintendo Badge Arcade.
Nintendo Badge Arcade uses NEX as a communication method between the game and the servers. The previous servers I made weren't using NEX. Instead, they were more like a patch to store the game saves locally.
Currently, I am working on implementing proper servers over NEX. You can find the current progress on the folders of this project:
badge-arcade-authentication
contains the NEX authentication server.badge-arcade-secure
contains the NEX secure server.original
contains the original implementation.
This is the guide to self host the simplified AWS implementation.
First, installl the dependencies using npm
under the original
folder:
npm install .
When the server is installed, copy the example.config.json
to config.json
and personalize it to your needs.
After that, run the server using NodeJS:
node src/server.js
This will create the data
folder, which will host the main data for each account.
Now, use a proxy server to redirect your traffic from your Nintendo 3DS to the server. If you will use mitmproxy
, you can use the Python script available with the code (not before also customizing the script (not before also customizing the script):
mitmproxy -s badge-arcade.py --no-http2
Disclaimer: You may need to use a custom mitmproxy repository like mitmproxy-nintendo
, which include the patches for mitmproxy to work under the 3DS.
- Connect to the servers
- GET your saved data
- POST new data
- Handle creating new accounts
Documentation is being moved to 3dbrew. You can check out the website to see the internal workings.
Special thanks to:
- The Pretendo Network team and the developers of all of the reverse-engineering tools.
- The documentation of the NEX protocol made by kinnay.
The codebase of this project is based on Pretendo Network's BOSS servers.