Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

3DS:Cleaninty: Difference between revisions

From Hacks Guide Wiki
m (fix single lowercase letter in otherwise-fine 3dbrew link)
(further wording revisions, clarify EShopRegionChange, add mention of WSL)
Line 18: Line 18:


The reason this allows for changing eShop regions easily, and at infinite range, are as follows:
The reason this allows for changing eShop regions easily, and at infinite range, are as follows:
* '''Ease of Use''': Tickets for both system software & purchased apps are stored on Nintendo's servers, and some of these tickets are 'sticky' - they refuse to be deleted when trying to delete the console's eShop account. (The most common sticky tickets are from preinstalled titles and the [[3dbrew:StreetPass Mii Plaza|Mii Plaza 3.x]] update.) The only way to remove these tickets is to transfer them to another console, and this part can be made far easier if a donor console is used to collect the titles.  
* '''Ease of Use''': Tickets for both system software & purchased apps are stored on Nintendo's servers, and some of these tickets are 'sticky' - they refuse to be deleted when trying to delete the console's eShop account. (The most common sticky tickets are from preinstalled games and the [[3dbrew:StreetPass Mii Plaza|Mii Plaza 3.x]] update.) The only way to remove these tickets is to transfer them to another console, and this part can be made far easier if a donor console is used to collect the tickets.  
* '''Infinite Range:''' System transfers are effectively divided into two parts: the content transfer (done entirely on consoles), and the NNID/title transfer (done entirely on servers).<br>On an actual console, these two must be done at the same time - but if cleaninty sends the commands for a server transfer, the consoles are never told to do the content transfer & Nintendo has no way of checking that a content transfer actually happened. (Technically, this also means a [[3DS:MMM|Manual Movable Transfer]] is the exact opposite of a SOAP transfer.)
* '''Infinite Range:''' System transfers are effectively divided into two parts: the content transfer (done entirely on consoles), and the NNID/title transfer (done entirely on servers).<br>On an actual console, these two must be done at the same time - but if cleaninty sends the commands for a server transfer, the consoles are never told to do the content transfer & Nintendo has no way of checking that a content transfer actually happened. (Technically, this also means a [[3DS:MMM|Manual Movable Transfer]] is the exact opposite of a SOAP transfer.)


Line 29: Line 29:
* <code>CheckReg</code>: Obtains the console's eShop status and any titles attached to its eShop account, then updates the JSON file if any differences in the data are found.
* <code>CheckReg</code>: Obtains the console's eShop status and any titles attached to its eShop account, then updates the JSON file if any differences in the data are found.
* <code>SysTransfer</code>: Moves the eShop titles of the source console to the target console. This is the secondary part of what is known informally as a "SOAP Transfer".
* <code>SysTransfer</code>: Moves the eShop titles of the source console to the target console. This is the secondary part of what is known informally as a "SOAP Transfer".
** Using this command will trigger a 7-day cooldown on system transfers for both consoles, the same as a full system transfer.
** A successful use of this command triggers a 7-day cooldown on system transfers for both consoles, the same as a full system transfer.
* <code>NNIDTransfer</code>: <u>(Still experimental. Use with caution.)</u> Moves only the NNIDs of the source console to the target console. This is not affected by system transfer cooldowns and does not trigger one.   
* <code>NNIDTransfer</code>: <u>(Still experimental. Use with caution.)</u> Moves only the NNIDs of the source console to the target console. This is not affected by system transfer cooldowns and does not trigger one.   
* <code>LastTransfer</code>: Provides the date&time of the given console's last system transfer, the number of transfers it has ever done, and the time at which the current transfer cooldown will expire if there is one active.
* <code>LastTransfer</code>: Provides the date&time of the given console's last system transfer, the number of transfers it has ever done, and the time at which the current transfer cooldown will expire if there is one active.
Line 36: Line 36:
* <code>RecoverIVS</code>: Tries to recover a console's <code>movable.sed</code> from only its raw <code>otp.bin</code> and eShop region data.
* <code>RecoverIVS</code>: Tries to recover a console's <code>movable.sed</code> from only its raw <code>otp.bin</code> and eShop region data.
* <code>EShopDelete</code>: Deletes the target console's eShop account.  
* <code>EShopDelete</code>: Deletes the target console's eShop account.  
* <code>EShopRegionChange</code>: Deletes the target console's eShop account and attempts to create a new one in the entered region. This is the main part of a "SOAP Transfer" and is what grants eShop access again.
* <code>EShopRegionChange</code>: Attempts to delete and then recreate the target console's eShop account for the entered region. This is the main part of a "SOAP Transfer", but after a successful SysTransfer the console will do this automatically.
** If this fails, <code>SysTransfer</code> any conflicting titles off of the target console first.
* <code>ETickets</code>/<code>ETicketDownload</code>/<code>ETikTitleDownload</code>: Lists all owned eShop tickets / downloads all tickets / downloads the titles attached to all tickets, respectively, from the given console's eShop account.
* <code>ETickets</code>/<code>ETicketDownload</code>/<code>ETikTitleDownload</code>: Lists all owned eShop tickets / downloads all tickets / downloads the titles attached to all tickets, respectively, from the given console's eShop account.


Line 51: Line 50:
Don't bother trying to use cleaninty through Command Prompt or PowerShell. Windows has OpenSSL disabled in its <code>curl.exe</code>, but cleaninty requires OpenSSL to function. Working around this issue manually is obnoxious and not worth the time spent.
Don't bother trying to use cleaninty through Command Prompt or PowerShell. Windows has OpenSSL disabled in its <code>curl.exe</code>, but cleaninty requires OpenSSL to function. Working around this issue manually is obnoxious and not worth the time spent.


Instead, install [https://www.msys2.org/ msys2] and install cleaninty from within there.
Instead, there are two options:
# Install a Linux distro through [https://learn.microsoft.com/en-us/windows/wsl/install WSL] and then install cleaninty inside the WSL instance using the macOS/Linux instructions.
# Install [https://www.msys2.org/ msys2] and then install cleaninty inside the msys2 instance using the below instructions.


To install cleaninty once msys2 is installed, open the terminal <code>mingw64.exe</code> that is inside the msys2 installation folder, then run the following two commands one at a time:
To install cleaninty inside msys2, open the terminal <code>mingw64.exe</code> that is inside the msys2 installation folder, then run the following two commands one at a time:
* <code>pacman -Syu mingw-w64-x86_64-python mingw-w64-x86_64-python-defusedxml mingw-w64-x86_64-python-cryptography mingw-w64-x86_64-python-pycurl</code>  
* <code>pacman -Syu mingw-w64-x86_64-python mingw-w64-x86_64-python-defusedxml mingw-w64-x86_64-python-cryptography mingw-w64-x86_64-python-pycurl</code>  
* <code>python -m pip install cleaninty</code>
* <code>python -m pip install cleaninty</code>