Approver
516
edits
No edit summary |
(Copy of MMM) |
||
Line 1: | Line 1: | ||
{{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. | |||
<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}} | |||
= | = 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>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 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=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 - 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.''}} | |||
* [[3DS: | {{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>.}} | |||
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 You Need == | |||
* 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 | |||
** If either console is not currently modded, stop and mod it with [[3dsguide:|our custom firmware installation guide]] first | |||
* 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 | |||
* A version of [https://www.python.org/downloads/ Python 3] | |||
* 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>[S:] SYSNAND VIRTUAL</code> drive | |||
# Press {{B|A}} on <code>essential.exefs</code> to select it | |||
# Press {{B|A}} on '''Copy to 0:/gm9/out''' | |||
#* If you see '''Destination already exists''', press {{B|A}} on '''Overwrite file(s)''' | |||
# 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 | |||
=== Section IV - FixupMovable === | |||
{{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 | |||
# Press {{B|L|DOWN|SELECT}} at the same time to open the Rosalina menu | |||
# Select '''Miscellaneous options''' | |||
# Select '''Switch the hb. title to the current app.''' | |||
# Press {{B|B}} to continue | |||
# Press {{B|B}} to return to the Rosalina main menu | |||
# Press {{B|B}} to exit the Rosalina menu | |||
# Press {{B|HOME}}, then close '''Download Play''' | |||
# Relaunch the '''Download Play''' application | |||
# Your console should load the '''Homebrew Launcher''' | |||
# Launch '''faketik''' from the list of homebrew | |||
# Wait until the process is completed | |||
# Press {{B|START}} to exit | |||
# Reboot your console | |||
{{success|text=The moveover is complete. Congratulations for performing a complex procedure.}} | |||
[[Category:Nintendo 3DS guides]] |