3DS
This guide will show you how to access your server from a 3DS console.
You may now dump the BOSS keys from your console for use in the BOSS (SpotPass) server. These keys are only required if you want to create new 3DS SpotPass content.
These steps are based on the guide from the boss-crypto repository.
- Download the
Citra key dumper GodMode9 script
and run it in GodMode9. Then, copy the
SD:/gm9/aes_keys.txt
file from your SD card to theconsole-files
directory in this repo. - Run
./scripts/get-boss-keys.sh
to validate the dumped keys. It will show you if the keys are missing or incorrect. - If it reports that the Wii U BOSS keys are valid, run
./scripts/setup-environment.sh
to reconfigure the servers with the BOSS keys.
Connecting
Due to the 3DS's account system, using a local Pretendo Network server with it requires making some potentially dangerous modifications to the system save data.
Create a NAND backup before proceeding.
-
Follow the official Pretendo Network 3DS installation guide to install the patches. At this point, you should be connected to the official Pretendo Network server.
-
Open
System Settings => Internet Settings => Connection Settings => (Your current internet connection) => Change Settings
. -
Go to
Proxy Settings => Yes => Detailed Setup
. Set the proxy server to your server's IP address and the port to 8080. Then, tapOK => Don't Use Authentication
. -
Save the settings and go back to the Home Menu. Check your mitmproxy logs at 127.0.0.1:8081 to verify that the console is sending HTTP requests through your proxy.
- If you open the Friends List now, you will get a message that "This device's access to online services has been restricted by Nintendo." Your 3DS is not banned. This is expected. The console is trying to log into your local Pretendo server using a NEX account (from the official Pretendo server) that doesn't exist in your local server's database. This causes that misleading error message.
-
Start ftpd on your console and run
./scripts/upload-3ds-files.sh
to upload the required files to your console. -
This is the potentially dangerous part that modifies your system save data. As the official Pretendo docs explain, Nimbus works by setting up a second Friends account using a test environment instead of prod. On the first run, it creates this account, and on subsequent runs, it switches to the already-existing test account. Unfortunately, Nimbus cannot create a third test account, but what you can do is back up the save data for the Friends and account system modules and then reset the test account.
CreditsTrace (
@traceentertains
on Discord) created a modified version of Nimbus that resets the Friends test environment (originally released on the Pretendo Network Discord server asmanual_override.3dsx
). All credit for the Friends test account reset program goes to Trace.- Reboot into GodMode9 and open the scripts menu.
- Run the
FriendsAccountSwitcher
script and select "Create a new save slot". Name the slot something descriptive likepretendo_official
. - Reboot into the Home Menu and open the Homebrew Launcher. From there, run the
ResetFriendsTestAccount.3dsx
app and press A after a white line appears at the top of the screen. - Open the Friend List applet. You should be "online" and have a new friend code that is different from your friend code on the official servers. If you don't go online, you have not successfully connected to your self-hosted server. Check your mitmproxy logs at 127.0.0.1:8081.
- Reboot into GodMode9, run the
FriendsAccountSwitcher
script again, and select "Create a new save slot". Name the slot something descriptive likelocal_server
. - You now have multiple test Friends accounts saved on your SD card at
SD:/gm9/out/friends_accounts/
. You can switch between them by running theFriendsAccountSwitcher
script, selecting "Load a save slot", and following the instructions.
-
Open System Settings using your
local_server
Friends test account and create a new PNID or sign in to one you created on your Wii U or website.
The Friends Account Switcher script simply implements "save slots" for the Friends and account system modules, similarly to what Checkpoint does for games.
Each of your Friends saves contains both your prod (Nintendo) and test (Pretendo) account data, as well as a config that
determines which account is currently active. So, your pretendo_official
slot contains your Nintendo prod friends
account, your official Pretendo test account, and a config that makes the test account active. Your local_server
slot
contains the same prod account but a different test account, and with the config making the test account active. (The
account sysmodule save data works in a similar way.)
Note that if you save a slot while Nimbus is set to Nintendo, your save slot's config will be set to making the prod
account active. You can switch it back to Pretendo by using Nimbus again. It is recommended to use the
pretendo_official
slot when using your NNID to keep things consistent with your NNID save data, but either will work.
Changing which server you are connected to
Nimbus setting | Juxt certificate | Proxy settings | Friends account switcher | |
---|---|---|---|---|
Self-hosted Pretendo server | Pretendo Network | Custom (run ./scripts/upload-3ds-files.sh ) | Enabled, set to the server IP, port 8080 | local_server |
Official Pretendo server | Pretendo Network | Official (run ./scripts/upload-3ds-files.sh --reset ) | Disabled | pretendo_official |
Nintendo server | Nintendo Network | N/A | Disabled | pretendo_official |