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
(link to 3DS:Dump system files for dumping boot9.bin and movable.sed, instead of including the steps here (makes it easier if someone already has these files))
m (Theres a troubleshooting section, I can just use it :))
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This page is a guide to rebuilding the <code>title.db</code> file in your SD card.  
This guide will guide you in rebuilding the `title.db` file in your SD card.  


<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]].
`title.db` is a file on both the 3DS SD card and CTR-NAND which contain the entries of all installed 3DS titles in its respective place (eg. The SD card `title.db` would contain entries of all 3DS titles installed to the SD card). For more information check out [https://www.3dbrew.org/wiki/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 [https://github.com/wwylele/save3ds/releases save3ds] for your operating system
* A version of [https://www.python.org/downloads/ Python 3.8 or later]
* The latest release of [https://www.python.org/downloads/ Python 3]  
* A 3DS console with custom firmware
* a 3DS console with boot9strap
* {{GitHub|ihaveamac/3DS-rom-tools/raw/master/seeddb/seeddb.bin|seeddb.bin}}
* [https://github.com/ihaveamac/3DS-rom-tools/raw/master/seeddb/seeddb.bin seeddb.bin]
* 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 ===


# Launch GodMode9 by holding START on boot
# Navigate into <code>[M:] MEMORY VIRTUAL</code>
# Press A on <code>boot9.bin</code> then select "Copy to 0:/gm9/out"
# Press A to continue
# Press B once to return to the main menu
# Navigate into <code>[1:] SYSNAND CTRNAND</code> -> <code>private</code>
# Press A on <code>movable.sed</code>, then select "Copy to 0:/gm9/out"
# Turn the 3DS off
# Turn the 3DS off
# Insert your SD card into your computer
# Insert the SD card into your computer
# Go to the {{GitHub|ihaveamac/rebuild-title-database|Rebuild Title Database}} repo's page
# Go to https://github.com/ihaveamac/rebuild-title-database
# Click the <big><span style="background:#008000">Code</span></big> button, then click '''Download ZIP'''
# Click the green <big>Code</big> button, then click "Download ZIP" to download it
# Extract the contents of the downloaded <code>.zip</code> into a folder
# Extract the contents of the <code>.zip</code> into a folder
#* This folder will be referred to as the "rebuild folder" from now on
#* Lets call this folder "rebuild folder"
# Go to <code>gm9</code> -> <code>out</code> on your SD card
# 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>
# Create a folder called <code>3ds</code> in the user directory (C:/Users/[your username]/)
# Copy <code>seeddb.bin</code> into the rebuild folder
# Copy <code>seeddb.bin</code> to the <code>3ds</code> folder in that directory
# Copy the <code>save3ds_fuse</code> binary from the save3ds <code>.zip</code> file into the rebuild folder
# Copy <code>save3ds_fuse.exe</code> from the save3ds <code>.zip</code> to the rebuild folder


=== Section II - Rebuilding the database ===
=== Section II - Section II ===
{{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.}}


# 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
# Click the Address bar, then replace the address with <code>cmd</code> and press ENTER
# In this new window, enter the following commands one at a time:
#* This should open a command prompt window
## <code>py -3 -V</code>
# In the command prompt, enter the following command: <code>py -3 -mpip install --user -r requirements.txt</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.
# Then enter the command: <code>py -3 rebuild-title-database.py -b boot9.bin -m movable.sed -s X: -o out</code>
## <code>py -3 -mpip install --user -r requirements.txt</code>
#* replace X: with the drive letter of your SD card, which should be inserted into your Computer
## <code>py -3 fix-titledb.py -b boot9.bin -m movable.sed -s X:</code>
# Next <code>save3ds_fuse --db sdtitle out --import --boot9 boot9.bin --movable movable.sed --sd 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.
#* replace X: with the drive letter of your SD card, which should be inserted into your Computer
## <code>py -3 rebuild-title-database.py -b boot9.bin -m movable.sed -S seeddb.bin -s X: -o out</code>
# If you didn't get any errors, your apps should reappear, if not and they appear greyed out in System Settings -> Data Management -> Nintendo 3DS -> Software, run [[3DS:Faketik|faketik]]
## <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 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.
#** 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]].
#** 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]].
#* 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>
* boot9.bin is missing in <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]].
** You're not using boot9strap. You should [[3DS:Luma3DS to boot9strap|switch to boot9strap]] or consult the documentation of your bootloader to dump it
* 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 have boot9.bin and movable.sed in the rebuild folder
** 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 the SD card is inserted and you can view and edit its contents
*** Once this is fixed, delete the <code>out</code> folder and try the command again.
* ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'
* The third or fourth command in Section II failed
** Make sure you are in the rebuild folder and that you extracted the contents of rebuild-title-database-master.zip in it
** Make sure you have <code>boot9.bin</code> and <code>movable.sed</code> in the rebuild folder.
** When you fix this, delete the out folder and try the failing command again
** Make sure your SD card is inserted and you can view and edit its contents.
* 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].


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

Revision as of 21:23, 4 January 2023

This guide will guide you in rebuilding the `title.db` file in your SD card.

`title.db` is a file on both the 3DS SD card and CTR-NAND which contain the entries of all installed 3DS titles in its respective place (eg. The SD card `title.db` would contain entries of all 3DS titles installed to the SD card). For more information check out 3dbrew.

What you need

  • The latest release of save3ds for your operating system
  • The latest release of Python 3
  • a 3DS console with boot9strap
  • seeddb.bin

Section I - Preparing the files

  1. Launch GodMode9 by holding START on boot
  2. Navigate into [M:] MEMORY VIRTUAL
  3. Press A on boot9.bin then select "Copy to 0:/gm9/out"
  4. Press A to continue
  5. Press B once to return to the main menu
  6. Navigate into [1:] SYSNAND CTRNAND -> private
  7. Press A on movable.sed, then select "Copy to 0:/gm9/out"
  8. Turn the 3DS off
  9. Insert the SD card into your computer
  10. Go to https://github.com/ihaveamac/rebuild-title-database
  11. Click the green Code button, then click "Download ZIP" to download it
  12. Extract the contents of the .zip into a folder
    • Lets call this folder "rebuild folder"
  13. Go to gm9 -> out on your SD card
  14. Copy movable.sed and boot9.bin to the rebuild folder
  15. Create a folder called 3ds in the user directory (C:/Users/[your username]/)
  16. Copy seeddb.bin to the 3ds folder in that directory
  17. Copy save3ds_fuse.exe from the save3ds .zip to the rebuild folder

Section II - Section II

  1. Navigate to the rebuild folder in file explorer
  2. Click the Address bar, then replace the address with cmd and press ENTER
    • This should open a command prompt window
  3. In the command prompt, enter the following command: py -3 -mpip install --user -r requirements.txt
  4. Then enter the command: py -3 rebuild-title-database.py -b boot9.bin -m movable.sed -s X: -o out
    • replace X: with the drive letter of your SD card, which should be inserted into your Computer
  5. Next save3ds_fuse --db sdtitle out --import --boot9 boot9.bin --movable movable.sed --sd X:
    • replace X: with the drive letter of your SD card, which should be inserted into your Computer
  6. If you didn't get any errors, your apps should reappear, if not and they appear greyed out in System Settings -> Data Management -> Nintendo 3DS -> Software, run faketik

Troubleshooting

  • boot9.bin is missing in [M: ] MEMORY VIRTUAL
    • You're not using boot9strap. You should switch to boot9strap or consult the documentation of your bootloader to dump it
  • Make sure you have boot9.bin and movable.sed in the rebuild folder
  • Make sure the SD card is inserted and you can view and edit its contents
  • ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'
    • Make sure you are in the rebuild folder and that you extracted the contents of rebuild-title-database-master.zip in it
    • When you fix this, delete the out folder and try the failing command again