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

3DS:Rebuild Title Database: Difference between revisions

From Hacks Guide Wiki
m Remove double dots.
Tags: Mobile edit Mobile web edit
Ajl721 (talk | contribs)
No edit summary
 
Line 3: Line 3:
<code>title.db</code> is the name for two files - one on the 3DS' SD card, and one on its CTRNAND - which contain a list of all installed 3DS titles for its respective part of the filesystem (e.g. your SD card's <code>title.db</code> only has entries for titles installed to your SD card). For more information, check out [[3dbrew:Title Database|3dbrew]].
<code>title.db</code> is the name for two files - one on the 3DS' SD card, and one on its CTRNAND - which contain a list of all installed 3DS titles for its respective part of the filesystem (e.g. your SD card's <code>title.db</code> only has entries for titles installed to your SD card). For more information, check out [[3dbrew:Title Database|3dbrew]].


=== What you need ===
===What you need===


* The latest release of {{GitHub|wwylele/save3ds/releases/latest|save3ds}} for your operating system
*The latest release of {{GitHub|wwylele/save3ds/releases/latest|save3ds}} for your operating system
* A version of [https://www.python.org/downloads/ Python 3.8 or later]
*A version of [https://www.python.org/downloads/ Python 3.8 or later]
* A 3DS console with custom firmware
*A 3DS console with custom firmware
* {{GitHub|ihaveamac/3DS-rom-tools/raw/master/seeddb/seeddb.bin|seeddb.bin}}
*{{GitHub|ihaveamac/3DS-rom-tools/raw/master/seeddb/seeddb.bin|seeddb.bin}} (direct download link)
* boot9.bin (same for all consoles) and movable.sed (specific to yours only) - dump with [[3DS:Dump system files]]
*boot9.bin (same for all consoles) and movable.sed (specific to yours only) - dump with [[3DS:Dump system files]]


=== Section I - Preparing the files ===
===Section I - Preparing the files===


# Turn the 3DS off
#Turn the 3DS off
# Insert your SD card into your computer
#Insert your SD card into your computer
# Go to the {{GitHub|ihaveamac/rebuild-title-database|Rebuild Title Database}} repo's page
#Go to the {{GitHub|ihaveamac/rebuild-title-database|Rebuild Title Database}} repo's page
# Click the <big><span style="background:#008000">Code</span></big> button, then click '''Download ZIP'''
#Click the <big><span style="background:#008000">Code</span></big> button, then click '''Download ZIP'''
# Extract the contents of the downloaded <code>.zip</code> into a folder
#Extract the contents of the downloaded <code>.zip</code> into a folder
#* This folder will be referred to as the "rebuild folder" from now on
#*This folder will be referred to as the "rebuild folder" from now on
# Copy <code>movable.sed</code> and <code>boot9.bin</code> to the rebuild folder
#Copy <code>movable.sed</code> and <code>boot9.bin</code> to the rebuild folder
#* If you had just dumped them from your console, both are most likely in <code>sd:/gm9/out</code>
#*If you had just dumped them from your console, both are most likely in <code>sd:/gm9/out</code>
# Copy <code>seeddb.bin</code> into the rebuild folder
#Copy <code>seeddb.bin</code> into the rebuild folder
# Copy the <code>save3ds_fuse</code> binary from the save3ds <code>.zip</code> file into the rebuild folder
#Copy the <code>save3ds_fuse</code> binary from the save3ds <code>.zip</code> file into the rebuild folder


=== Section II - Rebuilding the database ===
===Section II - Rebuilding the database===
{{info|If you are not on Windows, replace <code>py -3</code> with <code>python3</code> in all commands.}}
{{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.}}
{{warning|The commands in this section are case-sensitive. Enter them exactly as written, or there may be unintended consequences.}}


# Navigate to the rebuild folder in file explorer
#Navigate to the rebuild folder in file explorer
# Hold SHIFT and right-click anywhere in the folder's empty space, then click the option that opens a terminal, PowerShell, or Command Prompt
#Hold 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:
#In this new window, enter the following commands one at a time:
## <code>py -3 -V</code>
##<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.
##*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 -mpip install --user -r requirements.txt</code>
##<code>py -3 -mpip install --user -r requirements.txt</code>
## <code>py -3 fix-titledb.py -b boot9.bin -m movable.sed -s X:</code>
##<code>py -3 fix-titledb.py -b boot9.bin -m movable.sed -s X:</code>
##* If you are on Windows, replace <code>X:</code> with your SD card's drive letter. If you are not on Windows, replace <code>X:</code> with your SD card's mount point.
##*If you are on Windows, replace <code>X:</code> with your SD card's drive letter. If you are not on Windows, replace <code>X:</code> with your SD card's mount point.
## <code>py -3 rebuild-title-database.py -b boot9.bin -m movable.sed -S seeddb.bin -s X: -o out</code>
##<code>py -3 rebuild-title-database.py -b boot9.bin -m movable.sed -S seeddb.bin -s X: -o out</code>
## <code>./save3ds_fuse.exe --db sdtitle out --import --boot9 boot9.bin --movable movable.sed --sd X:</code>
##<code>./save3ds_fuse.exe --db sdtitle out --import --boot9 boot9.bin --movable movable.sed --sd X:</code>
##* If you are not on Windows, remove <code>.exe</code> from this command
##*If you are not on Windows, remove <code>.exe</code> from this command
# If you didn't get any errors, your apps should reappear on the HOME Menu immediately  
#If you didn't get any errors, your apps should reappear on the HOME Menu immediately  
#* If they only appear in '''System Settings''' -> '''Data Management''', follow '''one''' of these sets of steps based on how they appear.
#*If they only appear in '''System Settings''' -> '''Data Management''', follow '''one''' of these sets of steps based on how they appear.
#** Appear normally: Check the contents of <code>sd:/Nintendo 3DS/<id0>/<id1>/title/00040000</code>; there should only be more folders inside that folder.  
#**Appear normally: Check the contents of <code>sd:/Nintendo 3DS/<id0>/<id1>/title/00040000</code>; there should only be more folders inside that folder.  
#*** If there is a file inside this folder, your apps are at least partially corrupted - backup your SD card to your PC, [[Formatting an SD card|reformat it]], and then try to move the backed-up files back to the SD. If this fails or the apps do not reappear afterward, [[Checking SD card integrity|check your SD card for hardware damage]].
#***If there is a file inside this folder, your apps are at least partially corrupted - backup your SD card to your PC, [[Formatting an SD card|reformat it]], and then try to move the backed-up files back to the SD. If this fails or the apps do not reappear afterward, [[Checking SD card integrity|check your SD card for hardware damage]].
#** Appear with a grey block count indicator and an X through their icons: Run [[3DS:Faketik|faketik]].
#**Appear with a grey block count indicator and an X through their icons: Run [[3DS:Faketik|faketik]].
#** Appear with white/corrupted icons, 0 block count, and/or corrupted name: Whatever destroyed your <code>title.db</code> has also permanently corrupted your apps. Backup your SD card to your PC,[[Formatting an SD Card|reformat it]], and then [[Checking SD card integrity|check it for hardware damage]].
#**Appear with white/corrupted icons, 0 block count, and/or corrupted name: Whatever destroyed your <code>title.db</code> has also permanently corrupted your apps. Backup your SD card to your PC,[[Formatting an SD Card|reformat it]], and then [[Checking SD card integrity|check it for hardware damage]].
#* If they do not appear anywhere in the system, you may want to [[Checking SD card integrity|check your SD card for hardware damage]], as the apps are likely gone.
#*If they do not appear anywhere in the system, you may want to [[Checking SD card integrity|check your SD card for hardware damage]], as the apps are likely gone.


=== Troubleshooting ===
===Troubleshooting===


* <code>boot9.bin</code> is missing from <code>[M:] MEMORY VIRTUAL</code>
*<code>boot9.bin</code> is missing from <code>[M:] MEMORY VIRTUAL</code>
** Follow the steps to [[3DS:Dump system files|dump your system files]] for more in-depth instructions, including those for bootloaders other than [[3DS:boot9strap|boot9strap]].
**Follow the steps to [[3DS:Dump system files|dump your system files]] for more in-depth instructions, including those for bootloaders other than [[3DS:boot9strap|boot9strap]].
* The first command in Section II gave the error <code>ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'</code>
*The first command in Section II gave the error <code>ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'</code>
** Make sure you are in the rebuild folder and that you extracted the contents of <code>rebuild-title-database-master.zip</code> into it.  
**Make sure you are in the rebuild folder and that you extracted the contents of <code>rebuild-title-database-master.zip</code> into it.  
*** Once this is fixed, delete the <code>out</code> folder and try the command again.
***Once this is fixed, delete the <code>out</code> folder and try the command again.
* The third or fourth command in Section II failed
*The third or fourth command in Section II failed
** Make sure you have <code>boot9.bin</code> and <code>movable.sed</code> in the rebuild folder.
**Make sure you have <code>boot9.bin</code> and <code>movable.sed</code> in the rebuild folder.
** Make sure your SD card is inserted and you can view and edit its contents.
**Make sure your SD card is inserted and you can view and edit its contents.
* The fifth command in Section II failed
*The fifth command in Section II failed
** If you are on macOS, try installing {{GitHub|osxfuse/osxfuse/releases/latest|osxfuse}}, either via its GitHub page or via [https://brew.sh Homebrew].
**If you are on macOS, try installing {{GitHub|osxfuse/osxfuse/releases/latest|osxfuse}}, either via its GitHub page or via [https://brew.sh Homebrew].


==== <code>Input/output error</code> on fourth command in Section II ====
====<code>Input/output error</code> on fourth command in Section II====
{{info|These instructions are for Linux users, and will not work on Windows.}}
{{info|These instructions are for Linux users, and will not work on Windows.}}
# '''''Unmount''''' the SD card from your computer.
#'''''Unmount''''' the SD card from your computer.
# Open up a terminal window, and enter the following commands one at a time:
#Open up a terminal window, and enter the following commands one at a time:
## <code>watch lsblk</code>
##<code>watch lsblk</code>
##* After running this command, re-insert the SD card into your computer. The terminal window should now show a new partition of some kind. '''This is the SD card's partition'''. For example, <code>sda -> sda1</code> may have appeared after re-inserting the SD card. Keep this in mind, as you'll need it later.
##*After running this command, re-insert the SD card into your computer. The terminal window should now show a new partition of some kind. '''This is the SD card's partition'''. For example, <code>sda -> sda1</code> may have appeared after re-inserting the SD card. Keep this in mind, as you'll need it later.
##* Once you see what partition the SD card is, press <kbd><kbd>Ctrl</kbd> + <kbd>C</kbd></kbd> to stop monitoring the output of <code>lsblk</code>
##*Once you see what partition the SD card is, press <kbd><kbd>Ctrl</kbd> + <kbd>C</kbd></kbd> to stop monitoring the output of <code>lsblk</code>
## <code>fsck /dev/[partition]</code>
##<code>fsck /dev/[partition]</code>
##* <code>[partition]</code> is the partition that showed up in the terminal, when you inserted the SD card into your computer. (e.g. <code>fsck /dev/sda1</code> if the SD card showed up under <code>sda -> sda1</code>)
##*<code>[partition]</code> is the partition that showed up in the terminal, when you inserted the SD card into your computer. (e.g. <code>fsck /dev/sda1</code> if the SD card showed up under <code>sda -> sda1</code>)
##* If you see <code>fsck: command not found</code>, run the command with <code>sudo</code> (e.g. <code>sudo fsck ...</code>)
##*If you see <code>fsck: command not found</code>, run the command with <code>sudo</code> (e.g. <code>sudo fsck ...</code>)


You should now be given a few prompts, containing some choices. Below are some possible prompts, and what you should answer with.
You should now be given a few prompts, containing some choices. Below are some possible prompts, and what you should answer with.
* <code>There are differences between boot sector and its backup.</code>
*<code>There are differences between boot sector and its backup.</code>
** Choose option 2 for "<code>copy backup to original</code>".
**Choose option 2 for "<code>copy backup to original</code>".
* <code>Orphaned long file name part "[folder name]"</code>
*<code>Orphaned long file name part "[folder name]"</code>
** Choose option 2 for "<code>leave it</code>".
**Choose option 2 for "<code>leave it</code>".
* <code>Free cluster summary wrong <nowiki>(####### vs. really #######)</nowiki></code>
*<code>Free cluster summary wrong <nowiki>(####### vs. really #######)</nowiki></code>
** Choose option 1 for "<code>correct</code>".
**Choose option 1 for "<code>correct</code>".


Eventually, you will see the following:
Eventually, you will see the following:


  <nowiki>
  <nowiki>
*** Filesystem was changed ***
*** Filesystem was changed ***
The changes have not yet been written, you can still choose to leave the
The changes have not yet been written, you can still choose to leave the
filesystem unmodified:
filesystem unmodified:
1) Write changes
1) Write changes
2) Leave filesystem unchanged</nowiki>
2) Leave filesystem unchanged</nowiki>


If you are happy with the options you chose, and aren't scared something will break, choose option <kbd>1</kbd> to write changes. After the changes have been written, try re-running the fourth command in Section II and continuing on from there.
If you are happy with the options you chose, and aren't scared something will break, choose option <kbd>1</kbd> to write changes. After the changes have been written, try re-running the fourth command in Section II and continuing on from there.


[[Category:Nintendo 3DS guides]]
[[Category:Nintendo 3DS guides]]