Approver, confirmaccount
398
edits
(Making a note that either the source console can be non-functional or not in their possession as long as the user has essential.exefs, movable.sed, or a NAND backup from that console) |
StarlitSkies (talk | contribs) (integrate FixupMovable to allow booting stock firmware, major style/formatting fixes, and reword warnings) |
||
Line 1: | Line 1: | ||
{{hatnote|This | {{hatnote|This page is a guide to transferring data between systems without doing a System Transfer, and usually should only be done if the '''source console''' you are transferring from is nonfunctional or you only have its SD. | ||
If you do not have a specific reason to follow this guide (i.e. both consoles are usable), do [[3DS:System Transfer|a System Transfer]] instead.}} | <br>If you do not have a specific reason to follow this guide (i.e. both consoles are usable), do [[3DS:System Transfer|a System Transfer]] instead.}} | ||
{{shortcut|3DS:MMM}} | {{shortcut|3DS:MMM}} | ||
= Required Reading (Do NOT ignore) = | = Required Reading (Do NOT ignore) = | ||
This guide can potentially cause unexpected results if done wrong. Please ensure you read the steps carefully to prevent these unexpected results from happening.<br> | This guide can potentially cause unexpected results if done wrong. Please ensure you read the steps carefully to prevent these unexpected results from happening. | ||
Additionally, ensure you have read the following warnings to have a full understanding of the potential risks of this guide. | <br>Additionally, ensure you have read the following three warnings to have a full understanding of the potential risks of this guide. | ||
{{critical|text=Do '''NOT''' use a <code>movable.sed</code> from Bruteforce Movable (in general, but especially not for this guide). Doing so may cause other issues with the system, and | {{critical|text=Do '''NOT''' use a <code>movable.sed</code> from Bruteforce Movable as your system movable (in general, but especially not for this guide). Doing so may cause other issues with the system, and '''WILL''' result in a guaranteed brick if you uninstall CFW while using that movable. Always keep a backup of your original <code>movable.sed</code> if you do so.}} | ||
{{warning|text= | {{warning|text=If you have already done this guide at any time before the date 2024-08-11, then uninstalling CFW will brick your console, as FixupMovable is required to avoid crashing on stock firmware. | ||
<br>If this applies to you, you can fix stock firmware by booting into [[3DS:GodMode9|GodMode9]], copying your <code>movable.sed</code> from <code>1:/private</code> to the '''destination console''''s SD root, copying <code>FixupMovable.py</code> to the SD root, and then doing the instructions from Section IV onward on the '''destination console''' only.}} | |||
{{warning|text=Any games/savedata/themes/DSiWare that was already on the destination console's SD card will become inaccessible once the guide is completed - only data transferred over from the source console | {{warning|text=Any games/savedata/themes/DSiWare that was already on the destination console's SD card will become inaccessible once the guide is completed - you will only be able to use the data transferred over from the source console. To access the destination console's data again, you must undo the moveover by replacing. | ||
<br>This guide has you extract the original versions of those files so you are able to undo it if you need to - ''do not lose those files.''}} | |||
{{info|If the above | {{info|If the above warning will cause issues for you and you are willing to take extra steps to avoid it, you can instead use [[ninfs]] to merge the source console's encrypted files onto the destination console, then [[3DS:Rebuild Title Database|rebuild title.db]] to make any merged games/apps appear.<br> | ||
However, note that even this method will '''not''' bypass the issues of using a Bruteforce Movable <code>movable.sed</code>.}} | However, note that even this method will '''not''' bypass the issues of using a Bruteforce Movable <code>movable.sed</code>.}} | ||
If you are confused in any way, join [https://discord.gg/C29hYvh the Nintendo Homebrew Discord] and ask for help in the | If you are confused in any way, join [https://discord.gg/C29hYvh the Nintendo Homebrew Discord] and ask for help in the 3ds-assistance channels. | ||
==What | == What You Need == | ||
*Two 3DS consoles, both modded with Luma3DS | * Two 3DS consoles, both modded with [[3DS:Luma3DS|Luma3DS]] | ||
** These will be referred to as the '''source console''' and '''destination console''' for this guide's purposes | ** These will be referred to as the '''source console''' and '''destination console''' for this guide's purposes | ||
** If either console is not currently modded, stop and mod it with [[3dsguide:|our custom firmware installation guide]] first | ** If either console is not currently modded, stop and mod it with [[3dsguide:|our custom firmware installation guide]] first | ||
*The '''source console' | * The '''source console''''s <code>essential.exefs</code>, such as the one created in [[3dsguide:finalizing-setup|our guide's Finalizing Setup]] | ||
**If you already have the '''source console's''' <code>movable.sed</code> outside of a <code>.exefs</code> file, you can use that directly | ** If you already have the '''source console's''' <code>movable.sed</code> outside of a <code>.exefs</code> file, you can use that directly | ||
* | * A version of [https://www.python.org/downloads/ Python 3] | ||
*The latest version of | * The latest version of {{GitHub|/ihaveamac/faketik/releases/latest|faketik}} (the <code>.3dsx</code> file) | ||
* The latest version of {{GitHub|d0k3/GodMode9/releases/latest|GodMode9}} (the GodMode9 <code>.zip</code> file) | |||
* The latest version of {{GitHub|fox8091/FixupMovable/releases/latest|FixupMovable}} (the <code>FixupMovable.py</code> file) | |||
== Instructions == | |||
=== Section I - Prep Work === | |||
{{info|Follow these instructions on the '''destination console''' only.}} | |||
# Power off your console and insert your SD card into your computer | |||
# Copy <code>GodMode9.firm</code> from the GodMode9 <code>.zip</code> to the <code>/luma/payloads/</code> folder on your SD card | |||
# Copy the <code>gm9</code> folder from the GodMode9 <code>.zip</code> to the root of your SD card | |||
# Copy <code>FixupMovable.py</code> to the root of your SD card | |||
# Create a folder named <code>3ds</code> on the root of your SD card if it does not already exist | |||
#* This folder stores homebrew applications and data; it is different from the <code>Nintendo 3DS</code> folder that the console automatically generates | |||
# Copy <code>faketik.3dsx</code> to the <code>3ds</code> folder on the root of your SD card | |||
# Copy the '''source console''''s <code>essential.exefs</code> to the root of your SD card and rename it to <code>old-essential.exefs</code> | |||
#* If you have the '''source console''''s <code>movable.sed</code> already in raw form, you can copy that file to the root of the SD card instead | |||
# Reinsert your SD card into your console | |||
=== Section II - Backing up essential.exefs === | |||
{{ | {{warning|text=If you skip this section and do not have any other backups, then you will be unable to undo the moveover and the '''destination console''''s <code>movable.sed</code> will be permanently lost.}} | ||
# Press and hold {{B|START}}, and while holding {{B|START}}, power on your console. This will launch GodMode9 | |||
#Enter the <code>[ | # Enter the <code>[S:] SYSNAND VIRTUAL</code> drive | ||
# | # Press {{B|A}} on <code>essential.exefs</code> to select it | ||
#*If you | # Press {{B|A}} on '''Copy to 0:/gm9/out''' | ||
# | #* If you see '''Destination already exists''', press {{B|A}} on '''Overwrite file(s)''' | ||
#Press {{B| | # Press {{B|A}} to continue | ||
# Press {{B|B}} until you return to the drive list | |||
= | {{info|text=The destination console's original <code>essential.exefs</code> file will be in <code>sd:/gm9/out</code> on its SD card. It is highly recommended to back up this file to a safe location.}} | ||
=== Section III - Extracting movable.sed === | |||
# Navigate into the drive <code>[0:] SDCARD</code> | |||
# Press {{B|A}} on <code>old-essential.exefs</code>, and select '''Mount as EXEFS image''' | |||
#* If you instead copied <code>movable.sed</code> to the SD root, press {{B|Y}} on that file and skip to the next section | |||
# Find the file named <code>movable</code> inside the image mount, and press {{B|Y}} to copy it to the clipboard | |||
# Press {{B|B}} to exit from the image mount, then navigate back into the drive <code>[0:] SDCARD</code> | |||
# Press {{B|Y}} to paste <code>movable</code> in the root of the SD card | |||
# Press {{B|R|START}} to power off the console | |||
#Launch the '''Download Play''' application | === Section IV - FixupMovable === | ||
#Wait until you see the two buttons | |||
{{info|If you are not on Windows, replace <code>py -3</code> with <code>python3</code> in all commands.}} | |||
{{warning|The commands in this section are case-sensitive. Enter them exactly as written, or there may be unintended consequences.}} | |||
# Insert the console's SD card into your PC | |||
# Open a file explorer window and navigate to the SD card's root | |||
# Rename <code>movable</code> to <code>movable.sed</code> | |||
# Hold {{B|SHIFT}} and right-click anywhere in the folder's empty space, then click the option that opens a terminal, PowerShell, or Command Prompt | |||
# In this new window, enter the following commands one at a time: | |||
## <code>py -3 -V</code> | |||
##* If this does not print the Python version, it is either not installed correctly, or the wrong command was used. Please read the note above. | |||
## <code>py -3 FixupMovable.py movable.sed</code> | |||
##* After this, <code>movable.sed</code> should be exactly 288 bytes in size. If it isn't, try the command again | |||
# Eject the SD card and reinsert it into the console | |||
=== Section V - Replacing movable.sed === | |||
# Press and hold {{B|START}}, and while holding {{B|START}}, power on your console. This will launch GodMode9 | |||
# Navigate into the drive <code>[0:] SDCARD</code> | |||
# Press {{B|Y}} to copy <code>movable.sed</code> to the clipboard | |||
# Press {{B|B}} to return to the drive list | |||
# Navigate into the drive <code>[1:] SYSNAND CTRNAND</code>, then enter the <code>private</code> folder | |||
# Press {{B|X}} on <code>movable.sed</code> and press {{B|A}} to confirm deletion | |||
# Unlock '''Writing to SysNAND (lvl1)''' when prompted, then input the given key combo | |||
# Press {{B|Y}} to paste the new <code>movable.sed</code> from the clipboard | |||
# Press {{B|B}} until you have returned to the drive list | |||
# Press {{B|R|A}} on the drive <code>[1:] SYSNAND CTRNAND</code> and select '''Fix CMACs for drive''' | |||
# Once this finishes, press {{B|START}} to reboot your console | |||
# Your console may act like it has just been formatted - this does not mean your data has been lost. If it does this, proceed normally through initial setup and get to the HOME Menu | |||
=== Section VI - Reinstating Apps === | |||
# Launch the '''Download Play''' application | |||
# Wait until you see the two buttons | |||
#* Do not press either of the buttons | #* Do not press either of the buttons | ||
#Press {{B|L | # Press {{B|L|DOWN|SELECT}} at the same time to open the Rosalina menu | ||
#Select '''Miscellaneous options''' | # Select '''Miscellaneous options''' | ||
#Select '''Switch the hb. title to the current app.''' | # Select '''Switch the hb. title to the current app.''' | ||
#Press {{B|B}} to continue | # Press {{B|B}} to continue | ||
#Press {{B|B}} to return to the Rosalina main menu | # Press {{B|B}} to return to the Rosalina main menu | ||
#Press {{B|B}} to exit the Rosalina menu | # Press {{B|B}} to exit the Rosalina menu | ||
#Press {{B|HOME}}, then close '''Download Play''' | # Press {{B|HOME}}, then close '''Download Play''' | ||
#Relaunch the '''Download Play''' application | # Relaunch the '''Download Play''' application | ||
#Your console should load the '''Homebrew Launcher''' | # Your console should load the '''Homebrew Launcher''' | ||
#Launch '''faketik''' from the list of homebrew | # Launch '''faketik''' from the list of homebrew | ||
#Wait until the process is completed | # Wait until the process is completed | ||
#Press {{B|START}} to exit | # Press {{B|START}} to exit | ||
#Reboot your console | # Reboot your console | ||
{{success|text=The moveover is complete. Congratulations for performing a complex procedure.}} | {{success|text=The moveover is complete. Congratulations for performing a complex procedure.}} | ||
[[Category:Nintendo 3DS guides]] | [[Category:Nintendo 3DS guides]] |