3
.gitignore
vendored
|
|
@ -57,6 +57,9 @@ typings/
|
|||
# vscode settings
|
||||
.vscode
|
||||
|
||||
# JetBrains settings
|
||||
.idea
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
"SYS-015-5006",
|
||||
"SYS-015-5007",
|
||||
"SYS-015-5015",
|
||||
"SYS-102-2482",
|
||||
"SYS-115-2004",
|
||||
"SYS-115-5001",
|
||||
"SYS-115-5002",
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@ Your Pretendo Network ID has been limited from posting on Juxt.
|
|||
|
||||
This typically occurs because of a violation of the Juxt Code of Conduct, or other offense on the Network or the Discord server.
|
||||
|
||||
For more information, launch the Miiverse app, or request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
For more information, launch the Miiverse app, or request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
||||
---
|
||||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@ Your Pretendo Network ID has been temporarily banned from Juxt.
|
|||
|
||||
This typically occurs because of a violation of the Juxt Code of Conduct, or other offense on the Network or the Discord server.
|
||||
|
||||
For more information, launch the Miiverse app, or request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
For more information, launch the Miiverse app, or request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
||||
---
|
||||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@ Your Pretendo Network ID has been permanently banned from Juxt.
|
|||
|
||||
This typically occurs because of a violation of the Juxt Code of Conduct, or other offense on the Network or the Discord server.
|
||||
|
||||
For more information, launch the Miiverse app, or request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
For more information, launch the Miiverse app, or request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
||||
---
|
||||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -13,4 +13,4 @@ Please ensure that the account you are using is indeed the one created for the P
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -31,4 +31,4 @@ Once the patcher is done running and your console has rebooted, you're done! Hav
|
|||
|
||||
<img src="/assets/images/docs/install/juxt/martini-success.png" width=100% height=auto/>
|
||||
|
||||
If you encountered any errors, try [searching](/docs/search) for the error code. If that doesn't work, get in touch with a developer in our [Discord](https://discord.gg/pretendo).
|
||||
If you encountered any errors, try [searching](/docs/search) for the error code. If that doesn't work, get in touch with a developer in our [Discord](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -9,4 +9,4 @@ The console's CFW is not compatible with Pretendo's patcher. If you are using Ha
|
|||
Browserhax or similar, please [upgrade to Tiramisu or Aroma](https://wiiu.hacks.guide) and try again.
|
||||
|
||||
If you're sure you're using Tiramisu or Aroma, reboot the console and try again. If the same error occurs, get in touch
|
||||
with a developer in our [Discord](https://discord.gg/pretendo).
|
||||
with a developer in our [Discord](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -6,5 +6,5 @@
|
|||
***Note:*** This error relates to the Martini patches, which are now deprecated.
|
||||
|
||||
The patcher could not find a Miiverse applet installed on your console, or you have several Miiverses installed. If this
|
||||
is the case, get in touch with a developer in our [Discord](https://discord.gg/pretendo) - we'd love to know what kind
|
||||
is the case, get in touch with a developer in our [Discord](https://invite.gg/pretendo) - we'd love to know what kind
|
||||
of devkit you have!
|
||||
|
|
|
|||
|
|
@ -9,4 +9,4 @@ The console's CFW is not compatible with Pretendo's patcher. If you are using Ha
|
|||
Browserhax or similar, please [upgrade to Tiramisu or Aroma](https://wiiu.hacks.guide) and try again.
|
||||
|
||||
If you're sure you're using Tiramisu or Aroma, reboot the console and try again. If the same error occurs, get in touch
|
||||
with a developer in our [Discord](https://discord.gg/pretendo).
|
||||
with a developer in our [Discord](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -10,4 +10,4 @@ Coldboot Haxchi, Indexiine, Browserhax or similar, please [upgrade to Tiramisu o
|
|||
try again.
|
||||
|
||||
If you're sure you're using Tiramisu or Aroma and rebooting didn't fix it, get in touch with a developer in our
|
||||
[Discord](https://discord.gg/pretendo).
|
||||
[Discord](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ become corrupted, or you have a version too old or too new for the patcher to re
|
|||
- If you have manually modified your Miiverse applet, reinstall a clean copy from a backup. Instructions for this
|
||||
cannot be provided by Pretendo.
|
||||
|
||||
If all of these failed, get in touch on our [Discord](https://discord.gg/pretendo).
|
||||
If all of these failed, get in touch on our [Discord](https://invite.gg/pretendo).
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ recognise.
|
|||
- If you have manually modified your SSL certificates - such as when using a proxy - reinstall a clean copy from a
|
||||
backup. Instructions for this cannot be provided by Pretendo.
|
||||
|
||||
If all of these failed, get in touch on our [Discord](https://discord.gg/pretendo).
|
||||
If all of these failed, get in touch on our [Discord](https://invite.gg/pretendo).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -23,4 +23,4 @@ Compatible SSL certificate versions:
|
|||
- `0005001B10054000 v32` (ALL 5.5.3 - 5.5.6)
|
||||
|
||||
`v20` (ALL 5.0.0 - 5.5.2) may also be compatible, but this is unconfirmed. Let us know on
|
||||
[Discord](https://discord.gg/pretendo) if it works for you.
|
||||
[Discord](https://invite.gg/pretendo) if it works for you.
|
||||
|
|
|
|||
|
|
@ -11,4 +11,4 @@ corrupted NAND.
|
|||
Try updating to the [latest Tiramisu](https://tiramisu.foryour.cafe) or
|
||||
[latest Aroma](https://aroma.foryour.cafe) build, as these often contain fixes to the CFW.
|
||||
|
||||
If the issue persists, get in touch in our [Discord](https://discord.gg/pretendo).
|
||||
If the issue persists, get in touch in our [Discord](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -8,4 +8,4 @@
|
|||
The patcher failed to create a patched version of a file. The original file has not been modified.
|
||||
|
||||
Reboot your console and try again. If the issue persists, this is most likely a bug in the Martini patcher - please get
|
||||
in touch with a developer on our [Discord](https://discord.gg/pretendo).
|
||||
in touch with a developer on our [Discord](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -8,4 +8,4 @@
|
|||
The patcher failed to create a patched version of a file. The original file has not been modified.
|
||||
|
||||
Reboot your console and try again. If the issue persists, this is most likely a bug in the Martini patcher - please get
|
||||
in touch with a developer on our [Discord](https://discord.gg/pretendo).
|
||||
in touch with a developer on our [Discord](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -13,11 +13,11 @@ and your system is in an unknown state, though there should be no risk of bricki
|
|||
|
||||
<div class="tip">
|
||||
⚠️ <b>Do not reboot your console</b>, return to the Wii U Menu or open the Miiverse applet. If you're uncomfortable
|
||||
diagnosing the issue yourself, reach out on our <a href="https://discord.gg/pretendo" target="_blank">Discord</a>.
|
||||
diagnosing the issue yourself, reach out on our <a href="https://invite.gg/pretendo" target="_blank">Discord</a>.
|
||||
</div>
|
||||
|
||||
If you know what `udplogserver` is, start it now and save the output. Press HOME to exit the Martini patcher, then
|
||||
immediately open it again. If you see an error code, view its [documentation page](/docs/search), but remember not to
|
||||
reboot your console until the system is in a known state again. If, instead, you progress to the confirmation page, and
|
||||
you have the option to uninstall patches by pressing X, you may do so. If you are not given the option to uninstall any
|
||||
patches, reach out on our [Discord](https://discord.gg/pretendo), and include a photo of the confirmation screen.
|
||||
patches, reach out on our [Discord](https://invite.gg/pretendo), and include a photo of the confirmation screen.
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
The patcher encountered an error when applying the patched certificate to your system. Files essential to your Wii U's
|
||||
functionality have been modified and the system may be unbootable. **Immediate action is required to avoid a brick.**
|
||||
|
||||
Reach out on our [Discord](https://discord.gg/pretendo). State your error code and that you have a cert brick. Be
|
||||
Reach out on our [Discord](https://invite.gg/pretendo). State your error code and that you have a cert brick. Be
|
||||
loud and ping mods - this is the only time you're allowed ;)
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -8,5 +8,5 @@
|
|||
The patcher failed to restore a file from its backup. The patched file remains in place.
|
||||
|
||||
Reboot your console and try again. If the issue persists, this is most likely a bug in the Martini patcher - please get
|
||||
in touch with a developer on our [Discord](https://discord.gg/pretendo).
|
||||
in touch with a developer on our [Discord](https://invite.gg/pretendo).
|
||||
|
||||
|
|
|
|||
|
|
@ -19,4 +19,4 @@ This error indicates a connection problem with the server.
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -21,4 +21,4 @@ This error should not occur under normal conditions when connected to the Preten
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -12,4 +12,4 @@ This error occurs when you have never opened the Miiverse app before attempting
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -5,11 +5,11 @@
|
|||
|
||||
- "The server is currently undergoing maintenance. Please Try again later."
|
||||
|
||||
Juxtaposition is currently undergoing maintenance. Check our [Network Status page](https://stats.uptimerobot.com/R7E4wiGjJq) or join our [Discord server](https://discord.gg/pretendo) for updates.
|
||||
Juxtaposition is currently undergoing maintenance. Check our [Network Status page](https://stats.uptimerobot.com/R7E4wiGjJq) or join our [Discord server](https://invite.gg/pretendo) for updates.
|
||||
|
||||
---
|
||||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
||||
|
|
|
|||
|
|
@ -21,4 +21,4 @@ This error should not occur under normal conditions when connected to the Preten
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -33,5 +33,5 @@ This error occurs when Miiverse has been disallowed by Parental Controls. Follow
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
||||
|
|
|
|||
|
|
@ -33,5 +33,5 @@ Parental Controls should now be disabled for Miiverse.
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@ This typically occurs because you are attempting to connect to Juxt with a **Nin
|
|||
|
||||
This can also occur if your Pretendo Network ID has been banned from using Juxt.
|
||||
|
||||
For more information, launch the Miiverse app, or request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
For more information, launch the Miiverse app, or request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
||||
---
|
||||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -20,4 +20,4 @@ This error indicates a connection problem with the server.
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
31
docs/en_US/errors/SYS-102-2482.md
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# Error Code: 102-2482
|
||||
**Applies to:** Wii U
|
||||
|
||||
---
|
||||
|
||||
- "Unable to connect to the server. Please try again later. If the problem persists, please make a note of the error code and visit support.nintendo.com."
|
||||
|
||||
This error indicates one of the following:
|
||||
1. The server you're connecting to is offline for maintenance.
|
||||
2. Pretendo does not yet support the game or application in question.
|
||||
3. The game or application's server is still in development and isn't available to your account yet. For example, beta
|
||||
servers are generally only available to [supporters](https://pretendo.network/account/upgrade).
|
||||
|
||||
### Possible Solutions
|
||||
|
||||
- **Check our network status information**
|
||||
> Check our [Network Status page](https://stats.uptimerobot.com/R7E4wiGjJq) and ensure that there are no ongoing service outages.
|
||||
|
||||
- **Check Pretendo has a server for your game**
|
||||
> Check our [Progress page](https://pretendo.network/progress) to see if a server exists and is in development. We don't
|
||||
> support everything yet!
|
||||
|
||||
- **Upgrade your account**
|
||||
> Certain beta and development servers are available to supporters for beta-testing. If you'd like to help test these
|
||||
> ahead of a public release, [consider supporting Pretendo](https://pretendo.network/account/upgrade).
|
||||
|
||||
---
|
||||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
@ -19,4 +19,4 @@ This error indicates a connection problem with the server.
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -24,4 +24,4 @@ This error should not occur under normal conditions when connected to the Preten
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -11,4 +11,4 @@ This error occurs when you have never opened the Miiverse app before attempting
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -5,11 +5,11 @@
|
|||
|
||||
- "The server is currently undergoing maintenance. Please Try again later."
|
||||
|
||||
Juxtaposition is currently undergoing maintenance. Check our [Network Status page](https://stats.uptimerobot.com/R7E4wiGjJq) or join our [Discord server](https://discord.gg/pretendo) for updates.
|
||||
Juxtaposition is currently undergoing maintenance. Check our [Network Status page](https://stats.uptimerobot.com/R7E4wiGjJq) or join our [Discord server](https://invite.gg/pretendo) for updates.
|
||||
|
||||
---
|
||||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
||||
|
|
|
|||
|
|
@ -20,5 +20,5 @@ This error should not occur under normal conditions when connected to the Preten
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
||||
|
|
|
|||
|
|
@ -27,5 +27,5 @@ Parental Controls should now be disabled for Miiverse.
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
||||
|
|
|
|||
|
|
@ -27,5 +27,5 @@ Parental Controls should now be disabled for Miiverse.
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@ This typically occurs because you are attempting to connect to Juxt with a **Nin
|
|||
|
||||
This can also occur if your Pretendo Network ID has been banned from using Juxt.
|
||||
|
||||
For more information, launch the Miiverse app, or request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
For more information, launch the Miiverse app, or request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
||||
---
|
||||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -20,4 +20,4 @@ This error indicates a connection problem with the server.
|
|||
|
||||
If you have not yet connected to Pretendo, please follow the instructions [here](/docs/install) to get started.
|
||||
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://discord.gg/pretendo).
|
||||
If you are still unable to connect, please request to speak to a moderator in the [Discord server](https://invite.gg/pretendo).
|
||||
|
|
|
|||
|
|
@ -1,35 +1,99 @@
|
|||
# 3DS/2DS Family
|
||||
|
||||
<div class="tip">
|
||||
ℹ️ This guide assumes that you have a <b>Homebrewed System</b>, if you don't please follow this <a href="https://3ds.hacks.guide/" target="_blank">guide</a> on how to homebrew your system first.
|
||||
ℹ️ This guide assumes that you have a <b>Homebrewed System running the latest version of Luma3DS (13+)</b>, if you don't please follow this <a href="https://3ds.hacks.guide/" target="_blank">guide</a> on how to homebrew your system first.
|
||||
</div>
|
||||
|
||||
To connect to Pretendo Network using a 3DS/2DS system you must use the Nimbus homebrew and Luma patches
|
||||
The following steps are required for you to connect to the Pretendo Network:
|
||||
1. [Downloading Nimbus](#downloading-nimbus)
|
||||
2. [Enabling Luma patches](#luma-patches)
|
||||
3. [Nimbus](#using-nimbus)
|
||||
|
||||
Navigate to the [releases](https://github.com/PretendoNetwork/Nimbus) page on the Nimbus GitHub repository
|
||||
## Downloading Nimbus
|
||||
|
||||
<img src="/assets/images/docs/install/3ds/releases-highlight.png" width=100% height=auto/>
|
||||
<div class="tip">
|
||||
ℹ️ Nimbus is also available on <a href="https://db.universal-team.net/3ds/nimbus" target="_blank">Universal-Updater</a>. If you do not have Universal-Updater, you may follow this <a href="https://universal-team.net/projects/universal-updater.html" target="_blank">guide</a>. You may download the required files from there, rather than GitHub, or install/update the app directly from your console.
|
||||
<br>
|
||||
<br>
|
||||
ℹ️ If installed directly from your console for the first time, you will still be required to install the associated IPS patches from GitHub. Once installed, updates may be managed purely from Universal-Updater
|
||||
</div>
|
||||
|
||||
Now download the `nimbus.zip` file from the latest release
|
||||
Before you start, power off your console and insert its SD card into your computer.
|
||||
|
||||
Once inserted, download the latest [Nimbus release](https://github.com/PretendoNetwork/Nimbus/releases/latest).
|
||||
|
||||
Nimbus is available as both a 3DSX app and an installable CIA. The releases page offers downloads for both. Select the version you would like to use, or select the `combined.[version].zip` archive to use both.
|
||||
|
||||
<img src="/assets/images/docs/install/3ds/zip-highlight.png" width=100% height=auto/>
|
||||
|
||||
Extract `nimbus.zip` and copy the `3ds` and `luma` folders to the root of your SD card. You should now have the `0004013000002F02`, `0004013000003202`, and `0004013000003802` Luma patches along with the `nimbus.3dsx` homebrew
|
||||
Extract the contents of the zip archive to the root of your SD card. If you are asked to merge or overwrite files, accept the changes.
|
||||
|
||||
<img src="/assets/images/docs/install/3ds/sd-card-luma.png" width=100% height=auto/>
|
||||
<img src="/assets/images/docs/install/3ds/sd-card-3ds.png" width=100% height=auto/>
|
||||
Ensure your SD card has all the following files
|
||||
|
||||
Place your SD card back into your console. Boot your console and ensure Luma patches are enabled. Run the Nimbus homebrew and select the network you wish to use (Nintendo Network, or Pretendo Network)
|
||||
- `SD:/luma/titles/000400300000BC02/code.ips` (Miiverse, JPN)
|
||||
- `SD:/luma/titles/000400300000BD02/code.ips` (Miiverse, USA)
|
||||
- `SD:/luma/titles/000400300000BE02/code.ips` (Miiverse, EUR)
|
||||
- `SD:/luma/sysmodules/0004013000002F02.ips` (SSL)
|
||||
- `SD:/luma/sysmodules/0004013000003202.ips` (FRD/Friends)
|
||||
- `SD:/luma/sysmodules/0004013000003802.ips` (ACT/NNID)
|
||||
- `SD:/3ds/juxt-prod.pem` (Juxtaposition certificate)
|
||||
|
||||
If not installed through Universal-Updater, ensure at least one of the following also exists
|
||||
|
||||
- `SD:/cias/nimbus.cia`
|
||||
- `SD:/3ds/nimbus.3dsx`
|
||||
|
||||
Insert your SD card back into your console.
|
||||
|
||||
## Luma patches
|
||||
We make use of 3 Luma patches to connect your console to Pretendo:
|
||||
|
||||
1) `0004013000002F02` - SSL system module. This patch disables SSL verification, allowing your console to establish an SSL connection with our servers
|
||||
2) `0004013000003202` - Friends system module. This patch replaces the `https://nasc.nintendowifi.net` URL with our servers URL
|
||||
3) `0004013000003802` - act system module. This patch replaces the `https://account.nintendo.net/v1/api/` URL with our servers URL
|
||||
<div class="tip">
|
||||
ℹ️ <b>Skip this step if you've already enabled the required patches on your console for Pretendo Network.</b>
|
||||
</div>
|
||||
|
||||
## How does it work?
|
||||
In order to make use of the Pretendo Network service, you will need to enable Luma patches on your console. Hold the `SELECT` button on your 3DS and power it on.
|
||||
|
||||
On the screen that is displayed, make sure that these following options are enabled:
|
||||
|
||||
- `Enable loading external FIRMS and modules`
|
||||
- `Enable game patching`
|
||||
|
||||
Press `START` to save and continue with these changes.
|
||||
|
||||
## Installing Nimbus to HOME Menu
|
||||
|
||||
<div class="tip">
|
||||
ℹ️ <b>Skip this step if you downloaded the 3DSX only zip file.</b>
|
||||
</div>
|
||||
|
||||
If you downloaded the combined or cia archives, you can install Nimbus to the HOME Menu for quick and easy access.
|
||||
|
||||
Open FBI. If you do not have FBI, download the latest release from [GitHub](https://github.com/Steveice10/FBI/releases/latest). Select `SD`, then `cias`. Find and select `nimbus.cia`. Select either `Install CIA` or `Install and delete CIA`.
|
||||
|
||||
Once it has finished installing, press the HOME button and exit FBI. You should see a message that a new application has been added to the HOME Menu. Click OK and you'll now have Nimbus on your HOME Menu.
|
||||
|
||||
## Using Nimbus
|
||||
|
||||
Depending on how you installed Nimbus, launch it either through the Homebrew Launcher or the 3DS HOME Menu. Select either `Pretendo` or `Nintendo` to swap between services.
|
||||
|
||||
Your selection persists between reboots.
|
||||
|
||||
## Signing into your PNID
|
||||
|
||||
The 3DS does not rely on NNIDs for the vast majority of it's game servers. Because of this, using a PNID is also not required for most games<sup><a>[[1]](#footnote-1)</a></sup>.
|
||||
|
||||
Setting up a PNID on the 3DS is the same as setting up a NNID. You may either create the PNID on your console, or register from an account [on our website](/account/register) and link it to your console at a later date
|
||||
|
||||
It is recommended to register the PNID on your device at this time, as registering on the website does not currently allow you to change your user data
|
||||
|
||||
## Other information
|
||||
|
||||
### How does Nimbus work?
|
||||
Nimbus will create a 2nd local account set to the `test` NASC environment. The IPS patches will set the `test` NASC environment URLs to point to Pretendo. You may freely switch between Pretendo and Nintendo. Your selected mode will persist between reboots.
|
||||
|
||||
## 2nd local account?
|
||||
You may have thought to yourself; _"2nd local account? What's that? I thought the 3DS only had one account?"_ And you'd be half right. The 3DS only _normally_ supports one account, and you may only have one account active at a time. However Nintendo implemented support for multiple local accounts on the 3DS/2DS which remains unused on all retail units. On a normal retail unit only one local account is ever made, which is set to the `prod` NASC environment. Local accounts may be set to `prod`, `test` or `dev`. Nimbus makes use of this unused feature to create sandboxed local accounts with different environments
|
||||
### 2nd local account?
|
||||
You may have thought to yourself; _"2nd local account? What's that? I thought the 3DS only had one account?"_ And you'd be half right. The 3DS only _normally_ supports one account, and you may only have one account active at a time. However Nintendo implemented support for multiple local accounts on the 3DS/2DS which remains unused on all retail units. On a normal retail unit only one local account is ever made, which is set to the `prod` NASC environment. Local accounts may be set to `prod`, `test` or `dev`. Nimbus makes use of this unused feature to create sandboxed local accounts with different environments
|
||||
|
||||
<ul id="footnotes">
|
||||
<li id="footnote-1"><sup>[1]</sup> Some games may require a PNID for certain actions, such as eShop purchases. The only known game which requires a PNID for general use is Nintendo Badge Arcade, which is not yet supported</li>
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -10,23 +10,6 @@
|
|||
|
||||
Cemu 2.0 has official built-in support for Pretendo as of October 10, 2022. Head to the Cemu GitHub [releases](https://github.com/cemu-project/Cemu/releases) page and download the latest Cemu experimental release (tagged as `Pre-release`). Only `Cemu 2.0-5 (Experimental)` and above is supported at the moment. Additionally you may build Cemu from source using the provided [build instructions](https://github.com/cemu-project/Cemu/blob/main/BUILD.md)
|
||||
|
||||
## Online files
|
||||
Cemu requires the use of several files obtained via dumping from real hardware. You may use those files if you have a physical Wii U, they will work just fine when connecting to Pretendo. If you _don't_ have a real Wii U navigate to [your account page](/account) and select <strong>`Download account files`</strong>
|
||||
|
||||
<center><img src="/assets/images/docs/install/cemu/download-account-files.png"/></center>
|
||||
|
||||
<div class="tip red">
|
||||
<strong>Note:</strong>
|
||||
These online files are scrubbed of all console information and are stubbed enough for Cemu to think they are from real hardware. These files <strong>MAY</strong> fail to work correctly. Support for these files is very limited, and it is recommended to use files from a real console
|
||||
</div>
|
||||
|
||||
## Setup Cemu for online
|
||||
After obtaining the files needed for online play refer to the official [Cemu Online Play](https://cemu.cfw.guide/online-play.html) guide
|
||||
|
||||
<div class="tip">
|
||||
<strong>Note! If you downloaded the account files from your Pretendo Network account you may skip the steps on the Cemu guide which dumps them from a console. However these files will not work on Nintendo Network. For compatibility with both servers, use files dumped from a real console</strong>
|
||||
</div>
|
||||
|
||||
## Connecting to Pretendo
|
||||
Once you have Cemu setup for online play navigate to `Options > General settings > Account`. You should now see a section titled `Network Service`. Select your PNID from the `Active account` menu and select the `Pretendo` Network Service option. Cemu should now be connected to Pretendo's servers
|
||||
|
||||
|
|
|
|||
|
|
@ -4,66 +4,34 @@
|
|||
ℹ️ This guide assumes that you have a <b>Homebrewed System</b>, and have already connected to Pretendo. If you have not yet set up your Pretendo Network ID, follow this <a href="/docs/install" target="_blank">guide</a> to get started.
|
||||
</div>
|
||||
|
||||
<div class="tip yellow">
|
||||
ℹ️ <b>Pretendo Network is currently in a closed beta. Not all features, including game servers and Miiverse, are open to the public</b>.
|
||||
</div>
|
||||
|
||||
Juxtaposition is the Pretendo Network replacement for the now defunct Miiverse service
|
||||
|
||||
## Select your console
|
||||
|
||||
- ### [Wii U (Tiramisu)](#wii-u-tiramisu-1)
|
||||
- ### [Wii U](#wii-u)
|
||||
- ### [3DS](#3ds-1)
|
||||
|
||||
# Wii U (Tiramisu)
|
||||
# Wii U
|
||||
|
||||
<div class="tip">
|
||||
ℹ️ <b>Aroma users</b>: The Aroma patcher already handles ingame patches and redirects the Miiverse applet to Juxtaposition - no further setup is needed.
|
||||
The below instructions are <b>only for Tiramisu users</b>.<br/>
|
||||
ℹ️ Inkay already handles all the required patches for Miiverse. If you do not have Inkay installed, follow this <a href="/docs/install/wiiu" target="_blank">guide</a> to get started.
|
||||
</div>
|
||||
<div class="tip">
|
||||
⚠️ Note that Tiramisu is no longer supported by Pretendo and cannot receive the latest network and <b>security patches</b>. These instructions
|
||||
are kept for legacy users only.
|
||||
</div>
|
||||
|
||||
Navigate to the [releases](https://github.com/PretendoNetwork/Martini/releases) page on the Martini GitHub repository
|
||||
|
||||
<img src="/assets/images/docs/install/juxt/martini-highlight.png" width=100% height=auto/>
|
||||
|
||||
Select the `martini-juxt-patcher.rpx` to download it
|
||||
|
||||
<img src="/assets/images/docs/install/juxt/martini-download.png" width=100% height=auto/>
|
||||
|
||||
Copy `martini-juxt-patcher.rpx` and place it on your SD card at `sd:/wiiu/apps/`
|
||||
|
||||
<img src="/assets/images/docs/install/juxt/martini-sd-card.png" width=100% height=auto/>
|
||||
|
||||
Place your SD card back into your console and boot like normal.
|
||||
|
||||
Open the Homebrew Launcher and launch `martini-juxt-patcher.rpx`
|
||||
|
||||
<img src="/assets/images/docs/install/juxt/martini-hbl.png" width=100% height=auto/>
|
||||
|
||||
After confirming the state of the Miiverse applet, press A to apply the patches.
|
||||
|
||||
<img src="/assets/images/docs/install/juxt/martini-install.png" width=100% height=auto/>
|
||||
|
||||
Once the patcher is done running and your console has rebooted, you're done! Have fun in Juxt!
|
||||
|
||||
<img src="/assets/images/docs/install/juxt/martini-success.png" width=100% height=auto/>
|
||||
|
||||
If you encountered any errors, try [searching](/docs/search) for the error code. If that doesn't work, get in touch with a developer in our [Discord](https://discord.gg/pretendo).
|
||||
|
||||
|
||||
|
||||
# 3DS
|
||||
|
||||
<div class="tip yellow">
|
||||
⚠️ Nimbus will overwrite existing patches for services such as Rverse. As such, use with caution
|
||||
</div>
|
||||
|
||||
<div class="tip">
|
||||
ℹ️ Nimbus already handles all the required patches for the Miiverse applet. If you do not have Nimbus installed, follow this <a href="/docs/install/3ds" target="_blank">guide</a> to get started.
|
||||
</div>
|
||||
|
||||
### In Game Patches
|
||||
|
||||
Nimbus already takes care of most in game patches for miiverse, so you're already good to go!
|
||||
|
||||
### Applet Patch
|
||||
|
||||
First, download `Juxt.zip` from [here](https://cdn.discordapp.com/attachments/911878047895023637/937516295069515866/Juxt.zip).
|
||||
|
||||
Extract `Juxt.zip` and copy the `3ds` and `luma` folders to the root of your SD card. You should now have the `000400300000BC02`, `000400300000BD02`, and `000400300000BE02` Luma patches along with the `juxt.pem` cert
|
||||
|
||||
<img src="/assets/images/docs/install/juxt/3ds-sd-card.png" width=100% height=auto/>
|
||||
|
||||
Place your SD card back into your console. Boot your console and ensure Luma patches are enabled.
|
||||
|
||||
That's it! Have fun in Juxt!
|
||||
Miiverse content inside of games is not supported on the 3DS at this time.
|
||||
|
|
|
|||
|
|
@ -6,104 +6,68 @@
|
|||
Aroma using <a href="https://wiiu.hacks.guide/#/aroma/getting-started" target="_blank">this guide</a>.
|
||||
</div>
|
||||
|
||||
## Select your homebrew environment
|
||||
You can get a Wii U onto Pretendo in just 3 steps:
|
||||
1. [RCE Patches](#rce-patches)
|
||||
2. [Connecting to Pretendo](#connecting-to-pretendo)
|
||||
3. [PNID Setup](#pnid-setup)
|
||||
|
||||
- ### [Aroma](#aroma-1)
|
||||
- ### [Tiramisu](#tiramisu-1)
|
||||
- ### [Legacy](#legacy-1)
|
||||
# RCE Patches
|
||||
~~Unfortunately, some of Pretendo's supported games have major security and safety problems. While Nintendo fixed these
|
||||
games on the 3DS, thus far they have neglected the Wii U. Pretendo has a patcher which attempts to fix these problems -
|
||||
this is **essential** to play online safely, whether on Pretendo Network or Nintendo Network.~~
|
||||
|
||||
## Already have Pretendo installed?
|
||||
|
||||
- ### [PNID Setup](#pnid-setup-1)
|
||||
|
||||
# Aroma
|
||||
|
||||
To connect to Pretendo Network using Aroma you must use the [Inkay](https://github.com/PretendoNetwork/Inkay) plugin.
|
||||
The stable version is recommended for most users, however betatesters and others may be interested in the bleeding edge version.
|
||||
|
||||
### Aroma - Stable
|
||||
Navigate to the [releases](https://github.com/PretendoNetwork/Inkay/releases) page on the Inkay GitHub repository.
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/releases-highlight.png" width=100% height=auto/>
|
||||
|
||||
Now download the `Inkay-pretendo.wps` file from the latest release.
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/wps-highlight.png" width=100% height=auto/>
|
||||
|
||||
Place the downloaded `Inkay-pretendo.wps` file on your SD card at `sd:/wiiu/environments/aroma/plugins`.
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/sd-card.png" width=100% height=auto/>
|
||||
|
||||
Place your SD card back into your console and boot like normal. You should now be connected to Pretendo Network.
|
||||
|
||||
### Aroma - Bleeding Edge
|
||||
Navigate to the [actions](https://github.com/PretendoNetwork/Inkay/actions) page on the Aroma GitHub repository.
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/actions-highlight.png" width=100% height=auto/>
|
||||
|
||||
Select the `Inkay-CI` workflow and select the latest workflow run. _**Note:** At this stage you may also use the provided filters to only grab builds from specific branches, events, etc. By default the latest build, regardless of branch, is always shown._
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/workflow-highlight.png" width=100% height=auto/>
|
||||
|
||||
Select the `inkay` artifact. This will download a `inkay.zip` zip file.
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/artifact-highlight.png" width=100% height=auto/>
|
||||
|
||||
Extract `inkay.zip` and place the extracted `Inkay-pretendo.wps` file on your SD card at `sd:/wiiu/environments/aroma/plugins`.
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/sd-card.png" width=100% height=auto/>
|
||||
|
||||
Place your SD card back into your console and boot like normal. You should now be connected to Pretendo Network.
|
||||
|
||||
|
||||
# Tiramisu
|
||||
This is no longer true, as Nintendo has issued updates to all affected games fixing all known issues. These docs will remain up, however, in the event that any future bugs/exploits are found and require patches
|
||||
|
||||
<div class="tip">
|
||||
⚠ Note that Tiramisu is no longer supported by Pretendo and cannot receive the latest network and <b>security patches</b>. These instructions
|
||||
are kept for legacy users only.
|
||||
⚠️ <b>Don't skip this step!</b>
|
||||
</div>
|
||||
|
||||
To connect to Pretendo Network using Tiramisu you must use the [Nimble](https://github.com/PretendoNetwork/Nimble) set up module. There are 2 ways of obtaining the patch, either the stable release version or the bleeding edge version.
|
||||
To install the fix, navigate to the
|
||||
[latest release of the RCE patcher](https://github.com/PretendoNetwork/rce_patches/releases/latest) on GitHub and
|
||||
download the `rce_patches.wps` file.
|
||||
|
||||
### Tiramisu - Stable
|
||||
Navigate to the [releases](https://github.com/PretendoNetwork/Nimble/releases) page on the Nimble GitHub repository
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/rce-wps-highlight.png" width="100%">
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/tiramisu/releases-highlight.png" width=100% height=auto/>
|
||||
Place the downloaded `rce_patches.wps` file on your SD card at `sd:/wiiu/environments/aroma/plugins`. It's normal for other Aroma plugins to be in this folder too.
|
||||
|
||||
Now download the `30_nimble.rpx` file from the latest release
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/rce-sd-card.png" width="100%">
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/tiramisu/rpx-highlight.png" width=100% height=auto/>
|
||||
Place your SD card back into your console and boot like normal.
|
||||
|
||||
Place the downloaded `30_nimble.rpx` file on your SD card at `sd:/wiiu/environments/tiramisu/modules/setup`
|
||||
# Connecting to Pretendo
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/tiramisu/sd-card.png" width=100% height=auto/>
|
||||
<div class="tip">
|
||||
ℹ️ Already have Pretendo installed? Skip ahead to <a href="#pnid-setup">PNID Setup</a>!
|
||||
</div>
|
||||
|
||||
Place your SD card back into your console and boot like normal. You should now be connected to Pretendo Network
|
||||
To connect to Pretendo Network you must use the [Inkay](https://github.com/PretendoNetwork/Inkay) plugin with Aroma.
|
||||
The stable version is recommended for most users, however betatesters and others may be interested in the bleeding edge version.
|
||||
|
||||
### Tiramisu - Bleeding Edge
|
||||
Navigate to the [actions](https://github.com/PretendoNetwork/Nimble/actions) page on the Nimble GitHub repository
|
||||
## Stable
|
||||
The stable builds have been widely tested to ensure everything works as intended. Navigate to [Inkay's latest release](https://github.com/PretendoNetwork/Inkay/releases/latest) on GitHub and download the `Inkay-pretendo.wps` file from the latest release.
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/tiramisu/actions-highlight.png" width=100% height=auto/>
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/wps-highlight.png" width="100%">
|
||||
|
||||
Select the `Nimble-CI` workflow and select the latest workflow run. _**Note:** At this stage you may also use the provided filters to only grab builds from specific branches, events, etc. By default the latest build, regardless of branch, is always shown._
|
||||
Place the downloaded `Inkay-pretendo.wps` file on your SD card at `sd:/wiiu/environments/aroma/plugins`. It's normal for other Aroma plugins to be in this folder too.
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/tiramisu/workflow-highlight.png" width=100% height=auto/>
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/sd-card.png" width="100%">
|
||||
|
||||
Select the `nimble` artifact. This will download a `nimble.zip` zip file
|
||||
Place your SD card back into your console and boot like normal. If it worked, you'll see a notification of your connection:
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/tiramisu/artifact-highlight.png" width=100% height=auto/>
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/working-notification.jpg" width="100%">
|
||||
|
||||
Extract `nimble.zip` and place the extracted `30_nimble.rpx` file on your SD card at `sd:/wiiu/environments/tiramisu/modules/setup`
|
||||
You are now connected to Pretendo Network and can continue with [PNID Setup](#pnid-setup).
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/tiramisu/sd-card.png" width=100% height=auto/>
|
||||
## Bleeding Edge
|
||||
Bleeding edge builds have not been widely tested, and do not guarantee any stability. Download the latest build from <a href="https://nightly.link/PretendoNetwork/Inkay/workflows/ci/main/inkay" target="_blank">nightly</a>. Extract `inkay.zip` and place the extracted `Inkay-pretendo.wps` file on your SD card at `sd:/wiiu/environments/aroma/plugins`.
|
||||
|
||||
Place your SD card back into your console and boot like normal. You should now be connected to Pretendo Network
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/sd-card.png" width="100%">
|
||||
|
||||
Place your SD card back into your console and boot like normal. If it worked, you'll see a notification of your connection:
|
||||
|
||||
# Legacy
|
||||
|
||||
Pretendo does not officially support legacy homebrew environments (Haxchi/CBHC) anymore. Legacy releases of the patcher may be found in old [releases](https://github.com/PretendoNetwork/Nimble/releases), and the source code may be found in the [old_hbl](https://github.com/PretendoNetwork/Nimble/tree/old_hbl) and [old_hbl_inkay](https://github.com/PretendoNetwork/Nimble/tree/old_hbl_inkay) branches on GitHub. However you will need to build these patches from source, and they will _**not**_ be receiving any updates or technical support. Please consider upgrading to Aroma.
|
||||
<img src="/assets/images/docs/install/wiiu/aroma/working-notification.jpg" width="100%">
|
||||
|
||||
You are now connected to Pretendo Network and can continue with [PNID Setup](#pnid-setup).
|
||||
|
||||
# PNID Setup
|
||||
|
||||
|
|
@ -112,13 +76,17 @@ After installing Pretendo, you will need to create a PNID to use our services. T
|
|||
### PNID Setup - Website
|
||||
You will want to register an account from [here](/account) and click `Don't have an account?` to register.
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/pnid/register-account-web.png" width=100% height=auto/>
|
||||
<img src="/assets/images/docs/install/wiiu/pnid/register-account-web.png" width="100%">
|
||||
|
||||
Right before registering a PNID, please make sure to save your password on some sort of note, as you will not be able to reset your password. After registering just simply change your birth date, gender, timezone, country/region, etc to what you see fit. Once you have it set up we can switch back to the Wii U. Within your Wii U you will want to reconnect to Pretendo _**Note:** how you reconnect to Pretendo depends on how you installed it on your Wii U!_ Once you are reconnected, you will want to press the top left profile icon and press `Switch Account`, then press `Add New User`. Go through the user set up normally, but when it asks if you have an account, press `Yes` and put in your username and password. If it asks you to confirm your email afterwards, simply skip it. You will now be able to use Pretendo Servers
|
||||
Right before registering a PNID, please make sure to save your password on some sort of note. This isn't necessary, but it prevents having to reset your password if you forget it. After registering just simply change your birth date, gender, timezone, country/region, etc to what you see fit. Once you have it set up we can switch back to the Wii U. Within your Wii U you will want to reconnect to Pretendo.
|
||||
|
||||
_**Note:** How you reconnect to Pretendo depends on how you installed it on your Wii U!_
|
||||
|
||||
Once you are reconnected, you will want to press the top left profile icon and press `Switch Account`, then press `Add New User`. Go through the user set up normally, but when it asks if you have an account, press `Yes` and put in your username and password. If it asks you to confirm your email afterwards, simply skip it. You will now be able to use Pretendo servers.
|
||||
|
||||
### PNID Setup - Wii U
|
||||
Right before registering a PNID, please make sure to save your password on some sort of note, as you will not be able to reset your password. You will want to go on you Wii U while Pretendo is still active and press the top left profile icon. After pressing the icon, press `Switch Account`, and then `Add New User`. Set up this account as normal, but once it asks if you have an account, press `No` and go through the account process normally. When it asks you again to you want to link after adding a mii, press `Link`. Choose your language and then accept the Pretendo Network Service Agreement.
|
||||
Right before registering a PNID, please make sure to save your password on some sort of note. This isn't necessary, but it prevents having to reset your password if you forget it. You will want to go on you Wii U while Pretendo is still active and press the top left profile icon. After pressing the icon, press `Switch Account`, and then `Add New User`. Set up this account as normal, but once it asks if you have an account, press `No` and go through the account process normally. When it asks you again to link after adding a Mii, press `Link`. Choose your language and then accept the Pretendo Network Service Agreement.
|
||||
|
||||
<img src="/assets/images/docs/install/wiiu/pnid/pretendo-eula.png" width=100% height=auto/>
|
||||
<img src="/assets/images/docs/install/wiiu/pnid/pretendo-eula.jpg" width="100%">
|
||||
|
||||
Finally, set up your pnid, email and password. Once all of this is done you will be able to use Pretendo Server
|
||||
Finally, set up your PNID, email and password. Once all of this is done, you will be able to use Pretendo servers.
|
||||
|
|
|
|||
30
package-lock.json
generated
|
|
@ -10,7 +10,6 @@
|
|||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@discordjs/rest": "^0.5.0",
|
||||
"adm-zip": "^0.5.9",
|
||||
"browserify": "^17.0.0",
|
||||
"colors": "^1.4.0",
|
||||
"cookie-parser": "^1.4.5",
|
||||
|
|
@ -29,8 +28,7 @@
|
|||
"mongoose": "^6.4.0",
|
||||
"morgan": "^1.10.0",
|
||||
"nodemailer": "^6.7.5",
|
||||
"stripe": "^9.9.0",
|
||||
"uuid": "^8.3.2"
|
||||
"stripe": "^9.9.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^7.32.0"
|
||||
|
|
@ -395,14 +393,6 @@
|
|||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/adm-zip": {
|
||||
"version": "0.5.9",
|
||||
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.9.tgz",
|
||||
"integrity": "sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==",
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ajv": {
|
||||
"version": "6.12.6",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
||||
|
|
@ -4499,14 +4489,6 @@
|
|||
"node": ">= 0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/uuid": {
|
||||
"version": "8.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
||||
"bin": {
|
||||
"uuid": "dist/bin/uuid"
|
||||
}
|
||||
},
|
||||
"node_modules/v8-compile-cache": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
|
||||
|
|
@ -4917,11 +4899,6 @@
|
|||
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
|
||||
"integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
|
||||
},
|
||||
"adm-zip": {
|
||||
"version": "0.5.9",
|
||||
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.9.tgz",
|
||||
"integrity": "sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg=="
|
||||
},
|
||||
"ajv": {
|
||||
"version": "6.12.6",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
||||
|
|
@ -8090,11 +8067,6 @@
|
|||
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
||||
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
|
||||
},
|
||||
"uuid": {
|
||||
"version": "8.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
|
||||
},
|
||||
"v8-compile-cache": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
|
||||
|
|
|
|||
15
package.json
|
|
@ -4,11 +4,12 @@
|
|||
"description": "",
|
||||
"main": "src/server.js",
|
||||
"scripts": {
|
||||
"start": "npm run build && node src/server.js",
|
||||
"build": "npm run build-miieditor && npm run build-forgot-password && npm run build-reset-password",
|
||||
"build-miieditor": "browserify ./public/assets/js/miieditor.js -o ./public/assets/js/miieditor.bundled.js",
|
||||
"build-forgot-password": "browserify ./public/assets/js/forgot-password.js -o ./public/assets/js/forgot-password.bundled.js",
|
||||
"build-reset-password": "browserify ./public/assets/js/reset-password.js -o ./public/assets/js/reset-password.bundled.js"
|
||||
"start": "node src/server.js",
|
||||
"build": "npm run browserify",
|
||||
"browserify": "npm run browserify-miieditor && npm run browserify-forgot-password && npm run browserify-reset-password",
|
||||
"browserify-miieditor": "browserify ./public/assets/js/miieditor.js -o ./public/assets/js/miieditor.bundled.js",
|
||||
"browserify-forgot-password": "browserify ./public/assets/js/forgot-password.js -o ./public/assets/js/forgot-password.bundled.js",
|
||||
"browserify-reset-password": "browserify ./public/assets/js/reset-password.js -o ./public/assets/js/reset-password.bundled.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
@ -22,7 +23,6 @@
|
|||
"homepage": "https://github.com/PretendoNetwork/website#readme",
|
||||
"dependencies": {
|
||||
"@discordjs/rest": "^0.5.0",
|
||||
"adm-zip": "^0.5.9",
|
||||
"browserify": "^17.0.0",
|
||||
"colors": "^1.4.0",
|
||||
"cookie-parser": "^1.4.5",
|
||||
|
|
@ -41,8 +41,7 @@
|
|||
"mongoose": "^6.4.0",
|
||||
"morgan": "^1.10.0",
|
||||
"nodemailer": "^6.7.5",
|
||||
"stripe": "^9.9.0",
|
||||
"uuid": "^8.3.2"
|
||||
"stripe": "^9.9.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^7.32.0"
|
||||
|
|
|
|||
|
|
@ -166,6 +166,9 @@ button#openSidebar {
|
|||
background: var(--accent-shade-2);
|
||||
opacity: 1;
|
||||
}
|
||||
.docs-wrapper .content-inner div.tip.yellow::after {
|
||||
background: var(--yellow-shade-1);
|
||||
}
|
||||
.docs-wrapper .content-inner div.tip.red::after {
|
||||
background: var(--red-shade-1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
--green-shade-1: #59c9a5;
|
||||
|
||||
--red-shade-1: #a9375b;
|
||||
--yellow-shade-1: #ffd966;
|
||||
|
||||
--border: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 53 KiB |
BIN
public/assets/images/docs/install/wiiu/aroma/rce-sd-card.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 667 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 17 KiB |
BIN
public/assets/images/docs/install/wiiu/pnid/pretendo-eula.jpg
Normal file
|
After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 209 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 68 KiB |
|
|
@ -1,45 +1,8 @@
|
|||
const onlineFilesModal = document.querySelector('.modal-wrapper#onlinefiles');
|
||||
const onlineFilesModalButtonConfirm = document.getElementById('onlineFilesConfirmButton');
|
||||
const onlineFilesModalButtonClose = document.getElementById('onlineFilesCloseButton');
|
||||
const onlineFilesModalPasswordInput = document.getElementById('password');
|
||||
|
||||
const updateServerEnvironmentForm = document.querySelector('form.server-selection');
|
||||
const serverSelectionSaveButton = document.querySelector('#save-server-selection');
|
||||
const editSettingsModal = document.querySelector('.modal-wrapper#edit-settings');
|
||||
const editSettingsModalButtonClose = document.getElementById('editSettingsCloseButton');
|
||||
|
||||
document.getElementById('download-cemu-files')?.addEventListener('click', event => {
|
||||
event.preventDefault();
|
||||
|
||||
onlineFilesModal.classList.remove('hidden');
|
||||
});
|
||||
|
||||
onlineFilesModalButtonConfirm?.addEventListener('click', () => {
|
||||
fetch('/account/online-files', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Accept': 'application/json',
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
password: onlineFilesModalPasswordInput.value
|
||||
})
|
||||
})
|
||||
.then(response => response.blob())
|
||||
.then(blob => URL.createObjectURL(blob))
|
||||
.then(blobUrl => {
|
||||
const a = document.createElement('a');
|
||||
a.href = blobUrl;
|
||||
a.setAttribute('download', 'Cemu Pretendo Online Files.zip');
|
||||
a.click();
|
||||
|
||||
onlineFilesModal.classList.add('hidden');
|
||||
})
|
||||
.catch(console.log);
|
||||
});
|
||||
|
||||
onlineFilesModalButtonClose?.addEventListener('click', () => {
|
||||
onlineFilesModal.classList.add('hidden');
|
||||
});
|
||||
|
||||
editSettingsModalButtonClose?.addEventListener('click', () => {
|
||||
editSettingsModal.classList.add('hidden');
|
||||
});
|
||||
|
|
@ -47,7 +10,46 @@ editSettingsModalButtonClose?.addEventListener('click', () => {
|
|||
document.addEventListener('click', event => {
|
||||
if (event.target.classList.contains('edit')) {
|
||||
event.preventDefault();
|
||||
|
||||
|
||||
editSettingsModal.classList.remove('hidden');
|
||||
}
|
||||
});
|
||||
|
||||
serverSelectionSaveButton.addEventListener('click', event => {
|
||||
event.preventDefault();
|
||||
const checkedInput = updateServerEnvironmentForm.querySelector('input:checked');
|
||||
|
||||
try {
|
||||
const tokenType = document.cookie.split('; ').find(row => row.startsWith('token_type=')).split('=')[1];
|
||||
const accessToken = document.cookie.split('; ').find(row => row.startsWith('access_token=')).split('=')[1];
|
||||
|
||||
fetch('https://api.pretendo.cc/v1/user', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Accept': 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `${tokenType} ${decodeURIComponent(accessToken)}`
|
||||
},
|
||||
body: JSON.stringify({
|
||||
environment: checkedInput.value
|
||||
})
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(json => {
|
||||
if (!json.error) {
|
||||
// TODO - Make this prettier
|
||||
alert('Saved server environment');
|
||||
} else {
|
||||
console.log(json.error);
|
||||
alert('Failed to server environment');
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.log(error);
|
||||
// TODO - Make this prettier
|
||||
alert('Failed to server environment');
|
||||
});
|
||||
} catch (error) {
|
||||
alert(error);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -490,15 +490,15 @@ document
|
|||
data: miiData,
|
||||
}
|
||||
})
|
||||
})
|
||||
.then(({ status }) => {
|
||||
if (status === 200) {
|
||||
window.onbeforeunload = null;
|
||||
window.location.assign('/account');
|
||||
}
|
||||
})
|
||||
.catch(console.log);
|
||||
// CHECK IF MII IS VALID SERVERSIDE
|
||||
}) .then(({ status }) => {
|
||||
// TODO - Make this prettier
|
||||
alert('Mii has been updated. It may take some time for the cached image on the website to update');
|
||||
|
||||
if (status === 200) {
|
||||
window.onbeforeunload = null;
|
||||
window.location.assign('/account');
|
||||
}
|
||||
}).catch(console.log);
|
||||
} catch (error) {
|
||||
alert(error);
|
||||
}
|
||||
|
|
|
|||
221
src/cache.js
|
|
@ -1,106 +1,173 @@
|
|||
const { GraphQLClient, gql } = require('graphql-request');
|
||||
const Stripe = require('stripe');
|
||||
const logger = require('./logger');
|
||||
const config = require('../config.json');
|
||||
|
||||
const graphql = new GraphQLClient('https://api.github.com/graphql', {
|
||||
const github = new GraphQLClient('https://api.github.com/graphql', {
|
||||
headers: {
|
||||
Authorization: `bearer ${config.github.graphql_token}`,
|
||||
}
|
||||
});
|
||||
|
||||
const stripe = new Stripe(config.stripe.secret_key);
|
||||
|
||||
const getProjectCards = gql`
|
||||
fragment ItemContent on Node {
|
||||
__typename
|
||||
... on DraftIssue {
|
||||
title
|
||||
}
|
||||
... on Issue {
|
||||
title
|
||||
}
|
||||
}
|
||||
|
||||
fragment Itemfields on Node {
|
||||
__typename
|
||||
... on ProjectV2ItemFieldSingleSelectValue {
|
||||
name,
|
||||
field {
|
||||
... on ProjectV2SingleSelectField {
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
query getProjectCards($orgName: String!) {
|
||||
organization(login: $orgName) {
|
||||
projectsV2(first: 100) {
|
||||
nodes {
|
||||
repositories(first: 1) {
|
||||
nodes {
|
||||
url
|
||||
}
|
||||
}
|
||||
title
|
||||
items(first: 100) {
|
||||
nodes {
|
||||
id
|
||||
content {
|
||||
...ItemContent
|
||||
}
|
||||
fieldValues(first: 20) {
|
||||
nodes {
|
||||
...Itemfields
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const getProjectsV2GQL = gql`
|
||||
query getProjectsV2($orgName: String!, $cursor: String!) {
|
||||
organization(login: $orgName) {
|
||||
projectsV2(first: 10, after: $cursor) {
|
||||
nodes {
|
||||
id
|
||||
title
|
||||
repositories(first: 1) {
|
||||
nodes {
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
pageInfo {
|
||||
hasNextPage
|
||||
endCursor
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
let githubProjectsCache;
|
||||
let stripeDonationCache;
|
||||
const getProjectsV2FieldsGQL = gql`
|
||||
query getProjectsV2Fields($id: ID!, $cursor: String!) {
|
||||
node(id: $id) {
|
||||
... on ProjectV2 {
|
||||
items(first: 10, after: $cursor) {
|
||||
nodes {
|
||||
content {
|
||||
... on DraftIssue {
|
||||
title
|
||||
}
|
||||
... on Issue {
|
||||
title
|
||||
}
|
||||
}
|
||||
fieldValues(first: 20) {
|
||||
nodes {
|
||||
... on ProjectV2ItemFieldSingleSelectValue {
|
||||
name
|
||||
field {
|
||||
... on ProjectV2SingleSelectField {
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
pageInfo {
|
||||
hasNextPage
|
||||
endCursor
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
async function getGithubProjectsCache() {
|
||||
if (!githubProjectsCache) {
|
||||
githubProjectsCache = await updateGithubProjectsCache();
|
||||
let githubProjectsCache = {
|
||||
update_time: 0,
|
||||
sections: []
|
||||
};
|
||||
|
||||
let githubCacheBeingFetched = false;
|
||||
|
||||
let stripeDonationCache = {
|
||||
update_time: 0,
|
||||
sections: []
|
||||
};
|
||||
|
||||
async function getGitHubProjectsV2(after='') {
|
||||
let projects = [];
|
||||
|
||||
const data = await github.request(getProjectsV2GQL, {
|
||||
orgName: 'PretendoNetwork',
|
||||
cursor: after
|
||||
});
|
||||
|
||||
for (const node of data.organization.projectsV2.nodes) {
|
||||
projects.push({
|
||||
id: node.id,
|
||||
title: node.title,
|
||||
url: node.repositories.nodes[0]?.url,
|
||||
});
|
||||
}
|
||||
|
||||
if (githubProjectsCache.update_time < Date.now() - (1000 * 60 * 60)) {
|
||||
githubProjectsCache = await updateGithubProjectsCache();
|
||||
const { hasNextPage, endCursor } = data.organization.projectsV2.pageInfo;
|
||||
|
||||
if (hasNextPage) {
|
||||
const nextPage = await getGitHubProjectsV2(endCursor);
|
||||
projects = [...projects, ...nextPage];
|
||||
}
|
||||
|
||||
return projects;
|
||||
}
|
||||
|
||||
async function getGitHubProjectsV2Fields(id, after='') {
|
||||
let fields = [];
|
||||
|
||||
const data = await github.request(getProjectsV2FieldsGQL, {
|
||||
id: id,
|
||||
cursor: after
|
||||
});
|
||||
|
||||
for (const node of data.node.items.nodes) {
|
||||
fields.push({
|
||||
title: node.content.title,
|
||||
column: node.fieldValues.nodes.find(fieldValue => fieldValue.field?.name === 'Status')?.name
|
||||
});
|
||||
}
|
||||
|
||||
const { hasNextPage, endCursor } = data.node.items.pageInfo;
|
||||
|
||||
if (hasNextPage) {
|
||||
const nextPage = await getGitHubProjectsV2Fields(id, endCursor);
|
||||
fields = [...fields, ...nextPage];
|
||||
}
|
||||
|
||||
return fields;
|
||||
}
|
||||
|
||||
async function getGithubProjectsCache() {
|
||||
if (githubCacheBeingFetched) {
|
||||
return githubProjectsCache;
|
||||
}
|
||||
|
||||
try {
|
||||
if (!githubCacheBeingFetched && githubProjectsCache.update_time < Date.now() - (1000 * 60 * 60)) {
|
||||
githubCacheBeingFetched = true;
|
||||
githubProjectsCache = await updateGithubProjectsCache();
|
||||
}
|
||||
} catch (error) {
|
||||
logger.error(error);
|
||||
} finally {
|
||||
githubCacheBeingFetched = false;
|
||||
}
|
||||
|
||||
return githubProjectsCache;
|
||||
}
|
||||
|
||||
function getProgressField(fields) {
|
||||
const found = fields.nodes.find(v => v.field?.name === 'Status');
|
||||
return found?.name ?? undefined;
|
||||
}
|
||||
|
||||
async function updateGithubProjectsCache() {
|
||||
const projectsCacheData = {
|
||||
update_time: Date.now(),
|
||||
sections: []
|
||||
};
|
||||
|
||||
const data = await graphql.request(getProjectCards, {
|
||||
orgName: 'PretendoNetwork',
|
||||
});
|
||||
|
||||
const projects = data.organization.projectsV2.nodes;
|
||||
const projects = await getGitHubProjectsV2();
|
||||
|
||||
for (const project of projects) {
|
||||
if (!project.repositories.nodes[0]) {
|
||||
if (!project.url) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const extractedData = {
|
||||
title: project.title,
|
||||
url: project.repositories.nodes[0]?.url,
|
||||
url: project.url,
|
||||
cards: {
|
||||
done: [],
|
||||
in_progress: [],
|
||||
|
|
@ -108,18 +175,10 @@ async function updateGithubProjectsCache() {
|
|||
}
|
||||
};
|
||||
|
||||
for (const { content, fieldValues } of project.items.nodes) {
|
||||
const progress = getProgressField(fieldValues);
|
||||
const fields = await getGitHubProjectsV2Fields(project.id);
|
||||
|
||||
if (!['DraftIssue'].includes(content.__typename)) {
|
||||
continue; // not a supported card, skip
|
||||
}
|
||||
|
||||
if (!progress) {
|
||||
continue; // entry does not have a status, skip
|
||||
}
|
||||
|
||||
extractedData.cards[progress.toLowerCase().replace(' ', '_')]?.push(content.title);
|
||||
for (const field of fields) {
|
||||
extractedData.cards[field.column.toLowerCase().replace(' ', '_')]?.push(field.title);
|
||||
}
|
||||
|
||||
projectsCacheData.sections.push(extractedData);
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
const express = require('express');
|
||||
const crypto = require('crypto');
|
||||
const DiscordOauth2 = require('discord-oauth2');
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
const AdmZip = require('adm-zip');
|
||||
const Stripe = require('stripe');
|
||||
const { REST: DiscordRest } = require('@discordjs/rest');
|
||||
const { Routes: DiscordRoutes } = require('discord-api-types/v10');
|
||||
|
|
@ -45,8 +43,9 @@ router.get('/', requireLoginMiddleware, async (request, response) => {
|
|||
const { account } = request;
|
||||
const { pnid } = request;
|
||||
|
||||
renderData.tierName = pnid.get('connections.stripe.tier_name');
|
||||
renderData.tierLevel = pnid.get('connections.stripe.tier_level');
|
||||
renderData.environment = pnid.server_access_level;
|
||||
renderData.tierName = pnid.connections.stripe.tier_name;
|
||||
renderData.tierLevel = pnid.connections.stripe.tier_level;
|
||||
renderData.account = account;
|
||||
renderData.isTester = account.access_level > 0;
|
||||
|
||||
|
|
@ -242,47 +241,6 @@ router.get('/remove/discord', requireLoginMiddleware, async (request, response)
|
|||
}
|
||||
});
|
||||
|
||||
router.post('/online-files', requireLoginMiddleware, async (request, response) => {
|
||||
const { account } = request;
|
||||
const { password } = request.body;
|
||||
|
||||
const hashedPassword = util.nintendoPasswordHash(password, account.pid);
|
||||
|
||||
const miiNameBuffer = Buffer.alloc(0x16);
|
||||
const miiName = Buffer.from(account.mii.name, 'utf16le').swap16();
|
||||
miiName.copy(miiNameBuffer);
|
||||
|
||||
let accountDat = 'AccountInstance_00000000\n';
|
||||
accountDat += 'PersistentId=80000001\n';
|
||||
accountDat += 'TransferableIdBase=0\n';
|
||||
accountDat += `Uuid=${uuidv4().replace(/-/g, '')}\n`;
|
||||
accountDat += `MiiData=${Buffer.from(account.mii.data, 'base64').toString('hex')}\n`;
|
||||
accountDat += `MiiName=${miiNameBuffer.toString('hex')}\n`;
|
||||
accountDat += `AccountId=${account.username}\n`;
|
||||
accountDat += 'BirthYear=0\n';
|
||||
accountDat += 'BirthMonth=0\n';
|
||||
accountDat += 'BirthDay=0\n';
|
||||
accountDat += 'Gender=0\n';
|
||||
accountDat += `EmailAddress=${account.email.address}\n`;
|
||||
accountDat += 'Country=0\n';
|
||||
accountDat += 'SimpleAddressId=0\n';
|
||||
accountDat += `PrincipalId=${account.pid.toString(16)}\n`;
|
||||
accountDat += 'IsPasswordCacheEnabled=1\n';
|
||||
accountDat += `AccountPasswordCache=${hashedPassword}`;
|
||||
|
||||
const onlineFiles = new AdmZip();
|
||||
|
||||
onlineFiles.addFile('mlc01/usr/save/system/act/80000001/account.dat', Buffer.from(accountDat)); // Minimal account.dat
|
||||
onlineFiles.addFile('otp.bin', Buffer.alloc(0x400)); // nulled OTP
|
||||
onlineFiles.addFile('seeprom.bin', Buffer.alloc(0x200)); // nulled SEEPROM
|
||||
|
||||
response.status(200);
|
||||
response.set('Content-Disposition', 'attachment; filename="Cemu Pretendo Online Files.zip');
|
||||
response.set('Content-Type', 'application/zip');
|
||||
|
||||
response.end(onlineFiles.toBuffer());
|
||||
});
|
||||
|
||||
router.get('/miieditor', requireLoginMiddleware, async (request, response) => {
|
||||
const { account } = request;
|
||||
|
||||
|
|
|
|||
|
|
@ -25,12 +25,6 @@
|
|||
{{/if}}
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<a class="button secondary" id="download-cemu-files" href="/account/online-files" download>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-download"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
|
||||
<p class="caption">{{ locale.account.settings.downloadFiles }}</p>
|
||||
<p class="cemu-warning">{{ locale.account.settings.downloadFilesDescription }}</p>
|
||||
</a>
|
||||
|
||||
<a class="button secondary" id="account-upgrade" href="/account/upgrade">
|
||||
<p class="caption">{{ locale.account.settings.upgrade }}</p>
|
||||
</a>
|
||||
|
|
@ -74,7 +68,11 @@
|
|||
<h2 class="header">{{ locale.account.settings.settingCards.serverEnv }}</h2>
|
||||
<fieldset {{#unless isTester}}disabled{{/unless}}>
|
||||
<form class="server-selection" id="server">
|
||||
<input type="radio" id="prod" name="server_selection" value="prod" checked="{{ eq account.server_access_level 'prod'}}">
|
||||
{{#if (eq environment 'prod')}}
|
||||
<input type="radio" id="prod" name="server_selection" value="prod" checked>
|
||||
{{else}}
|
||||
<input type="radio" id="prod" name="server_selection" value="prod">
|
||||
{{/if}}
|
||||
<label for="prod">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path>
|
||||
|
|
@ -87,7 +85,11 @@
|
|||
<h2>{{ locale.account.settings.settingCards.production }}</h2>
|
||||
</label>
|
||||
{{#if isTester}}
|
||||
<input type="radio" id="beta" name="server_selection" value="beta" checked="{{ neq account.server_access_level 'prod'}}">
|
||||
{{#if (eq environment 'test')}}
|
||||
<input type="radio" id="beta" name="server_selection" value="test" checked>
|
||||
{{else}}
|
||||
<input type="radio" id="beta" name="server_selection" value="test">
|
||||
{{/if}}
|
||||
<label for="beta">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<polygon points="2,21 22,21 14,11.5 14,5 10,3 10,11.5"></polygon>
|
||||
|
|
@ -100,6 +102,7 @@
|
|||
{{#unless isTester}}
|
||||
<p>{{{ locale.account.settings.settingCards.upgradePrompt }}}</p>
|
||||
{{else}}
|
||||
<button class="button secondary" id="save-server-selection">Save</button>
|
||||
<p>{{ locale.account.settings.settingCards.hasAccessPrompt }}</p>
|
||||
{{/unless}}
|
||||
</div>
|
||||
|
|
@ -185,18 +188,6 @@
|
|||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="modal-wrapper hidden" id="onlinefiles">
|
||||
<div class="modal">
|
||||
<h1 class="title dot">{{ locale.account.settings.settingCards.password }}</h1>
|
||||
<p class="modal-caption">{{ locale.account.settings.settingCards.passwordPrompt }}</p>
|
||||
<input name="password" id="password" type="password" required />
|
||||
<div class="modal-button-wrapper">
|
||||
<button class="button cancel" id="onlineFilesCloseButton">{{ locale.modals.cancel }}</button>
|
||||
<button class="button primary confirm" id="onlineFilesConfirmButton">{{ locale.modals.confirm }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-wrapper hidden" id="edit-settings">
|
||||
<div class="modal">
|
||||
<h1 class="title dot">{{ locale.account.settings.unavailable }}</h1>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
{{ locale.hero.buttons.readMore }}
|
||||
</button>
|
||||
</a>
|
||||
<a href="https://discord.gg/pretendo" class="do-button-margin" target="_blank" aria-label="Open Discord">
|
||||
<a href="https://invite.gg/pretendo" class="do-button-margin" target="_blank" aria-label="Open Discord">
|
||||
<button class="button secondary discord icon-btn" focusable="false">
|
||||
<svg alt="" width="71" height="55" viewBox="0 0 71 55" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0)"><path d="M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.41542C45.5603 0.39851 45.468 0.440769 45.4204 0.525289C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525289C25.5141 0.443589 25.4218 0.40133 25.3294 0.41542C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z" fill="#ffffff"/></g><defs><clipPath id="clip0"><rect width="71" height="55" fill="white"/></clipPath></defs></svg>
|
||||
</button>
|
||||
|
|
@ -200,7 +200,7 @@
|
|||
</div>
|
||||
<div class="floating-serverjoin">
|
||||
<p>{{ locale.discordJoin.widget.text }}</p>
|
||||
<a href="https://discord.gg/pretendo" target="_blank">{{ locale.discordJoin.widget.button }}</a>
|
||||
<a href="https://invite.gg/pretendo" target="_blank">{{ locale.discordJoin.widget.button }}</a>
|
||||
</div>
|
||||
<div class="circle"></div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<a href="/docs/install/3ds">3DS</a>
|
||||
<a href="/docs/install/cemu">Cemu</a>
|
||||
<a href="/docs/install/citra">Citra</a>
|
||||
<a href="/docs/install/juxt">Juxt</a>
|
||||
<a href="/docs/install/juxt">Miiverse</a>
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
<h1>{{ locale.footer.socials }}</h1>
|
||||
<a href="https://twitter.com/PretendoNetwork/" target="_blank">Twitter</a>
|
||||
<a href="https://mastodon.pretendo.network/@pretendo" target="_blank" rel="me">Mastodon</a>
|
||||
<a href="https://discord.gg/pretendo" target="_blank">Discord</a>
|
||||
<a href="https://invite.gg/pretendo" target="_blank">Discord</a>
|
||||
<a href="https://github.com/PretendoNetwork" target="_blank">GitHub</a>
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -49,7 +49,7 @@
|
|||
<div class="discord-server-card">
|
||||
<h1>{{ locale.footer.widget.captions.[0] }}</h1>
|
||||
<h2>{{ locale.footer.widget.captions.[1] }}</h2>
|
||||
<a href="https://discord.gg/pretendo">
|
||||
<a href="https://invite.gg/pretendo">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right">
|
||||
<line x1="5" y1="12" x2="19" y2="12"></line>
|
||||
<polyline points="12 5 19 12 12 19"></polyline>
|
||||
|
|
@ -85,9 +85,14 @@
|
|||
`${unescapeHTML("{{this}}")}`,
|
||||
{{/each}}
|
||||
]
|
||||
|
||||
bandwidthRaccoon.addEventListener("click", () =>
|
||||
|
||||
document.body.addEventListener("click", () =>
|
||||
{
|
||||
bandwidthRaccoonWrapper.classList.remove("speak");
|
||||
})
|
||||
bandwidthRaccoon.addEventListener("click", (event) =>
|
||||
{
|
||||
event.stopPropagation();
|
||||
bandwidthRaccoonWrapper.classList.add("speak");
|
||||
if (!randomSentences[i]) {
|
||||
i = 0
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@
|
|||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<a href="https://discord.gg/pretendo" target="_blank" aria-label="A link to our Discord server">
|
||||
<a href="https://invite.gg/pretendo" target="_blank" aria-label="A link to our Discord server">
|
||||
<svg width="71" height="55" viewBox="0 0 71 55" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0)"><path d="M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.41542C45.5603 0.39851 45.468 0.440769 45.4204 0.525289C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525289C25.5141 0.443589 25.4218 0.40133 25.3294 0.41542C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z" fill="#ffffff"></path></g><defs><clipPath id="clip0"><rect width="71" height="55" fill="white"></rect></clipPath></defs></svg>
|
||||
</a>
|
||||
<a href="https://twitter.com/PretendoNetwork" target="_blank" aria-label="A link to our Twitter account">
|
||||
|
|
@ -190,7 +190,7 @@
|
|||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<a href="https://discord.gg/pretendo" target="_blank" aria-label="A link to our Discord server">
|
||||
<a href="https://invite.gg/pretendo" target="_blank" aria-label="A link to our Discord server">
|
||||
<svg width="71" height="55" viewBox="0 0 71 55" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0)"><path d="M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.41542C45.5603 0.39851 45.468 0.440769 45.4204 0.525289C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525289C25.5141 0.443589 25.4218 0.40133 25.3294 0.41542C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z" fill="#ffffff"></path></g><defs><clipPath id="clip0"><rect width="71" height="55" fill="white"></rect></clipPath></defs></svg>
|
||||
</a>
|
||||
<a href="https://twitter.com/PretendoNetwork" target="_blank" aria-label="A link to our Twitter account">
|
||||
|
|
|
|||