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

3DS:Luma3DS/Rosalina and 3DS:Rebuild Title Database: Difference between pages

From Hacks Guide Wiki
(Difference between pages)
ItsCrocoSwine (talk | contribs)
change nullify user time offset description to match actual behavior
 
m wait, i contradicted myself
 
Line 1: Line 1:
{{hatnote|1=This article is about Rosalina, accessible when booted into the HOME Menu. For information about the Luma3DS configuration menu (accessible by holding SELECT on boot), see [[3DS:Luma3DS/Configuration|this page]].}}
This page is a guide to rebuilding the <code>title.db</code> file in your SD card.  


Rosalina is a system module for Luma3DS that can be accessed while your 3DS is powered on and in 3DS mode by pressing a keycombo specified in the file <code>sd:/luma/config.ini</code>. By default, the keycombo is {{B|L}} + {{B|Down}} + {{B|Select}}.
<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]].


Rosalina is ''not'' accessible from within payloads (such as GodMode9), from DS/DSi mode (such as when using a DS cartridge or when using TWiLightMenu++), or from GBA mode (such as when using GBA virtual console).
=== What you need ===


This menu offers many options for real-time configuration of the system, including but not limited to the following:
* The latest release of {{GitHub|wwylele/save3ds/releases/latest|save3ds}} for your operating system
* Take screenshots
* A version of [https://www.python.org/downloads/ Python 3.8 or later]
* Change system settings such as brightness, active cheats, wireless status, and (on New 3DS/2DS only) clock speed & L2 cache
* A 3DS console with custom firmware
* Activate a blue light filter
* {{GitHub|ihaveamac/3DS-rom-tools/raw/master/seeddb/seeddb.bin|seeddb.bin}}


[[3dsguide:index|Our custom firmware installation guide]] uses the Rosalina menu for multiple functions. This page will contain explanations for all the options and information present in the Rosalina menu to enable easier navigation and usage.
=== Section I - Preparing the files ===


==Opening and navigating the Rosalina Menu==
# Press and hold {{B|START}}, and while holding {{B|START}}, power on your console. This will launch GodMode9
{{info|If your {{B|L}}, {{B|D-Pad Down}}, or {{B|Select}} keys are broken, you will not be able to open the Rosalina menu by default. To fix this, modify the <code>sd:/luma/config.ini</code> file by editing the variable <code>rosalina_menu_keycombo</code> to two or more keys that work for you, such as <code>X+Y</code>. If you do not see the <code>config.ini</code>, [[3dsguide:checking-for-cfw|update Luma3DS to version 11.0 or newer]].}}
# Navigate into the drive <code>[M:] MEMORY VIRTUAL</code>
# Press {{B|A}} on <code>boot9.bin</code>, then select '''Copy to 0:/gm9/out'''
# Press {{B|A}} to continue
# Press {{B|B}} once to return to the main menu
# Navigate into <code>[1:] SYSNAND CTRNAND</code> -> <code>private</code>
# Press {{B|A}} on <code>movable.sed</code>, then select '''Copy to 0:/gm9/out'''
# Turn the 3DS off
# Insert your SD card into your computer
# 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'''
# 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
# Copy <code>movable.sed</code> and <code>boot9.bin</code> from inside <code>sd:/gm9/out</code> and paste them 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


You can access Rosalina by pressing your chosen keycombo while in most areas of the system, excluding the following:
=== Section II - Rebuilding the database ===
* Safe Mode (can be bypassed, read [[3DS:Luma3DS/Configuration|Luma3DS Configuration]] for more details)
{{info|If you are not on Windows, replace <code>py -3</code> with <code>python3</code> in all commands.}}
* DS and GBA games, and homebrew that enters these modes ([[3DS:DS games#TwilightMenu++|TWiLightMenu++]] being a notable example)


Once in the Rosalina menu, use {{B|D-Pad Up}} and {{B|D-Pad Down}} to navigate the options. Press {{B|A}} to choose/enable/disable an option or view a submenu. Once in a submenu, press B to return to the main menu. The currently highlighted option is denoted by a <code>></code> to the left of its text - the option highlighted when you first open the menu is <code>Take screenshot</code>.
{{warning|The commands in this section are case-sensitive. Enter them exactly as written, or there may be unintended consequences.}}


While the Rosalina menu is launched, whatever is actively will pause until you exit the Rosalina menu. If you are playing a game online, this will cause your session to disconnect.
# 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
# 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 -mpip install --user -r requirements.txt</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.
## <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>
##* 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.


Once you are done changing options, press B until you exit Rosalina and return to the system, unpausing what is currently running.
=== Troubleshooting ===


==Rosalina Options==
* <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]].
* 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.
*** Once this is fixed, delete the <code>out</code> folder and try the command again.
* 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 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].


===Take Screenshot===
[[Category:Nintendo 3DS guides]]
Takes a screenshot of both screens' content and saves it to <code>sd:/luma/screenshots</code> as two <code>.bmp</code> files. Activates immediately after being pressed.
 
===Change screen brightness===
Shows the current luminance of the screen and allows you to change it with the D-Pad - {{B|D-Pad Up}} and {{B|D-Pad Down}} increment by 1, {{B|D-Pad Left}} and {{B|D-Pad Right}} increment by 10. The change in luminance takes effect instantly, including inside Rosalina. Note that any action that restarts the system or enters a place where Rosalina cannot function will reset brightness to the last chosen preset.
 
===Cheats...===
When inside a title where cheats have been selected for use (either through [[Checkpoint]] or through {{GitHub|LumaTeam/Luma3DS/wiki/Cheat-Engine|manually adding them to Luma}}, this menu shows the selected cheats. Press A on a cheat to change the <code>( )</code> to a <code>(x)</code>, at which point they will be activated when you leave Rosalina.
If the title you are currently in has no cheats selected for it, the menu will instead display <code>No suitable title found</code>.
 
===Plugin Loader===
When enabled, this option will [[3DS:Game plugins/3GX|allow for the use of .3GX plugins in games.]]
 
===Process list===
{{warning|Be very careful when editing system memory, as unintended consequences may happen.}}
Shows a list of all system processes currently running, and allows you to view & edit their memory by pressing A on a process name.
 
===Debugger options...===
{{Section WIP|notes=Information on how the debugger works.}}
{{warning|This option can potentially cause system instability or even crashes - don't use it unless you know what you're doing and why.}}
Allows you to enable/disable a debugger for apps, including forcibly debugging the next application launched. Also shows the system's local IP address in Rosalina while enabled.
 
===System configuration...===
Allows you to control various elements of the system's hardware.
 
====Control Wireless connection====
Forcibly enables a connection to a chosen WiFi slot - once active, this connection will not drop unless the signal becomes unavailable until manually disabled.
 
====Toggle LEDs====
{{Section WIP|notes=Make sure the list of disabled LEDs is accurate, and verify if the info regarding closing the system is actually erroneous or just bugged on one system.}}
When first pressed, disables the power LED and wireless LED until re-enabled manually or the system is closed while in the POWER button menu. The menu states that entering sleep mode by closing the system will always reset the LED state, but this is erroneous.
 
====Toggle Wireless====
Toggles the 3DS' ability to connect to WiFi networks. While toggled off, this stops <code>Control Wireless connection</code> from connecting to a slot. This setting's chosen option is saved and reapplied on next boot automatically.
 
====Toggle power button====
Toggles the power button's ability to enter the power-off menu. While toggled off, the power button can still be held for ~7 seconds to forcibly power off the system.
 
====Toggle power to card slot====
Toggles the 3DS' ability to read cartridges while active. This prevents the passive power drain from having a cartridge inserted, but requires you re-enable this setting or remove and reinsert the cartridge to be able to play it again.
 
===Screen filters===
Allows you to enable a blue-light filter with settings at certain degrees Kelvin, the default setting being 6500K and the range being from 1200K-10000K - if edited through <code>config.ini</code> instead, the range is 1000K-25100K. This setting's chosen option will be saved and applied on boot if you choose <code>Save settings</code> under <code>Miscellaneous options...</code> or edit it via the <code>config.ini</code>.
 
===New 3DS Menu...===
{{info|This option can only be used on a New 3DS/2DS.}}
Allows you to manually change how much CPU and L2 cache is given to the active title - this can also be changed in Luma3DS Configuration for all games. Enabling both extra clock speed and L2 cache may reveal hidden bugs in games, to unknown effect.
 
===Miscellaneous options...===
Allows for various system tweaks. Three of these, which will be noted as they appear for reference, are used on our custom firmware installation guide.
 
====Switch the hb. title to the current app.====
When inside a title, changes the active title's HOME Menu icon to open the Homebrew Launcher instead until another title is chosen or the system reboots. This is used in our custom firmware guide as a part of [[3dsguide:finalizing-setup|Finalizing Setup]] to access the Homebrew Launcher, though most system apps will work for this purpose and it is unneeded after the Homebrew Launcher Wrapper is installed.
 
====Change the menu combo====
Changes the keycombo used to access Rosalina. The change will not be preserved across a reboot unless you use the <code>Save settings</code> button.
 
====Start InputRedirection====
Starts the InputRedirection service to [[3DS:Input_redirection|allow for the use of external controllers.]]
 
====Update date and time via NTP====
Connects to a time server to remotely sync the 3DS' date and time, after a UTC offset in the form of<code>+0000</code> is chosen. The chosen time zone can be saved to Luma3DS Configuration via the <code>Save settings</code> option.
 
====Nullify user time offset====
Changes the embedded RTC clock to match the 3DS' current date and time (RTC + user time offset), then sets the offset to 0. This is done in our custom firmware guide as a part of [[3dsguide:finalizing-setup|Finalizing Setup]].
 
====Dump DSP firmware====
Copies the file <code>dspfirm.cdc</code> to <code>sd:/3ds</code> to allow homebrew apps to use the 3ds' audio. This is done in our custom firmware guide as a part of [[3dsguide:finalizing-setup|Finalizing Setup]].
 
====Save settings====
Saves the current NTP time zone, the active screen filter, and any changes to the Rosalina keycombo to <code>sd:/luma/config.ini</code>.
 
===Power off===
After a confirmation, powers off your console. Note that the console takes longer to fully shut down this way compared to doing it from the POWER button menu.
 
===Reboot===
After a confirmation, reboots your console. Notably, this takes far less time than both the <code>Power off</code> Rosalina option and manually rebooting via the POWER button.
 
===Credits===
Displays a credits page for the creation of Luma3DS and all its contributors.
 
==Rosalina Info==
In addition to system functionality, Rosalina also displays multiple pieces of system information.
At the bottom of the Rosalina menu, in order from left-to-right, the following are displayed:
* The Luma3DS version number
:* Unlike the Luma3DS configuration menu, this will not display the full commit name for [[3DS:Luma3DS forks|Luma3DS forks]]
* The current battery temperature, in °C
* The current battery voltage
* The current charge percentage, displayed to the nearest 0.1%

Revision as of 23:43, 11 August 2024

This page is a guide to rebuilding the title.db file in your SD card.

title.db 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 title.db only has entries for titles installed to your SD card). For more information, check out 3dbrew.

What you need

Section I - Preparing the files

  1. Press and hold START, and while holding START, power on your console. This will launch GodMode9
  2. Navigate into the drive [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 your SD card into your computer
  10. Go to the Rebuild Title Database repo's page
  11. Click the Code button, then click Download ZIP
  12. Extract the contents of the downloaded .zip into a folder
    • This folder will be referred to as the "rebuild folder" from now on
  13. Copy movable.sed and boot9.bin from inside sd:/gm9/out and paste them into the rebuild folder
  14. Copy seeddb.bin into the rebuild folder
  15. Copy the save3ds_fuse binary from the save3ds .zip file into the rebuild folder

Section II - Rebuilding the database

Info icon If you are not on Windows, replace py -3 with python3 in all commands.
Warning icon The commands in this section are case-sensitive. Enter them exactly as written, or there may be unintended consequences.
  1. Navigate to the rebuild folder in file explorer
  2. Hold SHIFT and right-click anywhere in the folder's empty space, then click the option that opens a terminal, PowerShell, or Command Prompt
  3. In this new window, enter the following commands one at a time:
    1. py -3 -V
      • 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.
    2. py -3 -mpip install --user -r requirements.txt
    3. py -3 fix-titledb.py -b boot9.bin -m movable.sed -s X:
      • If you are on Windows, replace X: with your SD card's drive letter. If you are not on Windows, replace X: with your SD card's mount point.
    4. py -3 rebuild-title-database.py -b boot9.bin -m movable.sed -S seeddb.bin -s X: -o out
    5. ./save3ds_fuse.exe --db sdtitle out --import --boot9 boot9.bin --movable movable.sed --sd X:
      • If you are not on Windows, remove .exe from this command
  4. 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 sd:/Nintendo 3DS/<id0>/<id1>/title/00040000; 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, 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, check your SD card for hardware damage.
      • Appear with a grey block count indicator and an X through their icons: Run faketik.
      • Appear with white/corrupted icons, 0 block count, and/or corrupted name: Whatever destroyed your title.db has also permanently corrupted your apps. Backup your SD card to your PC,reformat it, and then check it for hardware damage.
    • If they do not appear anywhere in the system, you may want to check your SD card for hardware damage, as the apps are likely gone.

Troubleshooting

  • boot9.bin is missing from [M:] MEMORY VIRTUAL
  • The first command in Section II gave the error 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 into it.
      • Once this is fixed, delete the out folder and try the command again.
  • The third or fourth command in Section II failed
    • Make sure you have boot9.bin and movable.sed in the rebuild folder.
    • 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 osxfuse, either via its GitHub page or via Homebrew.