3DS - Home Menu UI Layout Customization Guide
A guide for customizing the Home Menu UI layout (BCLYT files) on the Nintendo 3DS.
Custom Home Menu UI mod by me.
Download this mod here
If this is your first time modding the 3DS Home Menu, follow derberg’s 3DS Home Menu Customization Guide for setup and extraction before proceeding.
If you need help with UI customizations, ask us or me (AromaKitsune) on the Custom 3DS Assets Discord. Note: I don’t run this Discord server.
The layout file we will be editing is BCLYT. BCLAN (Layout Animation) and BCLIM (Layout Image) editing are not covered in this guide. For BCLAN, check out lividhen’s animations guide, it covers only the spinning animation.
We will be editing the BCLYT files with Switch-Toolbox, a tool that edits many game assets for the 3DS, Wii U, and Switch. Switch-Toolbox’s layout editor has a bug that it corrupts the BCLYT files of Home Menu when editing them, causing Home Menu to crash on startup. This is not the case with the other BCLYT files in some games such as Mario Kart 7.
Let’s fix the BCLYT file.
Getting Started
Luma3DS custom firmware is required to use the mod. Install CFW if you haven’t already.
Create a NAND backup before modifying any system files!
Make sure you have a
backup of the Home Menu applet
before proceeding.
Modifying the Home Menu applet is safe and can be restored by re-installing the original Home Menu applet, instead of restoring a NAND backup.
To restore the Home Menu applet, see the
restore section.
Never uninstall CFW while any modded system files are installed, doing so will brick the console! A
DS flashcart with ntrboot
is required to re-install B9S.
Modified system files are not signed which they don't work on the original firmware, as the signature check fails.
If you wanna uninstall CFW before selling your console, you must restore the system files first, then follow the
CFW uninstallation instructions.
What you need:
-
Decompressed DARC files (
*.LZ
, not*_LZ.bin
)
Common layout files
launcher.LZ/blyt/LncBase_U_00.bclyt
- The elements such as “L+R” that are displayed on the top screen of the Home Menu, the rest of them are displayed when the running game is suspended.
HUD’s are stored in the
hud.LZ
file.
- The elements such as “L+R” that are displayed on the top screen of the Home Menu, the rest of them are displayed when the running game is suspended.
HUD’s are stored in the
launcher.LZ/blyt/LncBase_D_01.bclyt
- The elements such as applets that are displayed on the bottom screen.
hud.LZ/blyt/HudMenu_00.bclyt
- Top screen’s HUD’s such as date, time, battery, connection status.
sleep.LZ/blyt/Slp_U_00.bclyt
- The elements that are displayed on the sleep/shutdown screen (top).
sleep.LZ/blyt/Slp_D_00.bclyt
- The elements that are displayed on the sleep/shutdown screen (bottom).
If you're looking into editing the UI colors for sleep.LZ
and applet icons (launcher.LZ
),
I suggest checking out derberg's Home Menu customization guide
for those, as hex-editing the *.LZ
files directly is easier.
Note: Once you import/replace any files into the *.LZ
files, the color values are moved to different addresses.
See this section here.
Previewing the UI Layout
Skip this section if you want to edit one of those BCLYT files listed above.
-
Launch Switch-Toolbox.
-
Drag & drop the
*.LZ
file in the Switch-Toolbox window. -
Search for the
bclyt
files and open any of those to see what it looks like. You might know what those layouts are, based on their file names. -
Once you found what you’re looking for, you can close Switch-Toolbox.
Editing the UI Layout
-
Launch Kuriimu2.
-
Drag & drop the
*.LZ
file in the Kuriimu2 window. -
On the left pane, click the
blyt
folder and the list of items should appear on the right pane. -
Extract the BCLYT file you want to edit.
-
Make 3 copies of the extracted BCLYT file, add
A-
,B-
andC-
to each file name, for example:-
A-LncBase_D_01.bclyt
orA.bclyt
-
B-LncBase_D_01.bclyt
orB.bclyt
-
C-LncBase_D_01.bclyt
orC.bclyt
-
To make the setup easier, create a batch file that automatically does that:
md bclyt copy %1 bclyt\A.bclyt copy %1 bclyt\B.bclyt copy %1 bclyt\C.bclyt
Save it as
.bat
, drag & drop the BCLYT file in the batch file, enter the createdbclyt
folder and move on to the next step.
-
-
Launch Switch-Toolbox.
-
Drag & drop the
B.bclyt
file in the Switch-Toolbox window. - Do not edit anything, just save.
Ctrl
+S
isn’t coded to save in Layout Editor, so click the💾
save button and the “saved” dialog should appear.- You should have the corrupted BCLYT as its file size has been decreased. This is normal.
-
Close the layout editor window.
-
Drag & drop the
C.bclyt
file in the Switch-Toolbox window. -
Edit any UI elements however you like. There are some limits to customizations.
-
Refer to the Assets Documentation for some lists of known panes to edit.
-
Each pane has its properties you can edit: positions (translate), size, colors, rotations, transparency, etc. You can even change the Picture Panes’ size, allowing you to import the BCLIM (Layout Image) files with larger dimensions.
-
To hide the UI elements, untick the
Pane visible
checkbox and set theAlpha
value to0
. -
If the UI elements don’t actually move to your desired position, then the elements’ position values are likely hardcoded in the BCLAN (Layout Animation) files and you have to edit them instead. In this case, the applets’ X position values are hardcoded in
launcher.LZ/anim/LncBase_D_01_MvsToggle.bclan
(used for removing the Miiverse applet from the Korean 3DS systems), in which you can only move them vertically. Switch-Toolbox can edit the BCLAN files without any issues, so hex editing isn’t needed. -
In order to keep the
C.bclyt
’s file size the same asB.bclyt
’s, you should edit only the values in the Pane and Colors tabs. Adding or removing some items may change the file size which makes it more difficult to manually fix it with hex editor. Avoid doing the following edits:-
Adding new Panes
-
Deleting the existing Panes (It will crash Home Menu, so make them invisible instead.)
-
Adding/removing links to textures in the Texture Maps tab
-
Editing the texts in the Text Pane (You should edit the MSBT files instead.)
-
-
-
When done editing, click the
💾
save button and you can close Switch-Toolbox.- You should have another corrupted BCLYT file. Again, this is normal. The file size of the edited BCLYT has been decreased by 432 bytes.
Make sure both the
B.bclyt
’s andC.bclyt
’s file sizes are the same. We will be restoring them on the next steps.
- You should have another corrupted BCLYT file. Again, this is normal. The file size of the edited BCLYT has been decreased by 432 bytes.
Make sure both the
Fixing the UI Layout File
-
Launch HxD hex editor.
-
Drag those 3 BCLYT files in the HxD window. Make sure those tabs are in the correct order:
A.bclyt
,B.bclyt
,C.bclyt
. -
Click the
C.bclyt
tab, then theB.bclyt
tab. -
Press
Ctrl
+K
to compare between theB.bclyt
&C.bclyt
files, clickOK
. -
Click the Maximize button on one of the MDI windows.
-
Go to the
B.bclyt
tab. -
Position a cursor before the selected byte (ex:
0x1567
). -
Select a few lines of bytes forward (ex: from
80
to3F
). -
Copy.
-
Go to the
A.bclyt
tab. -
Press
Ctrl
+F
to find. -
Go to the
Hex-values
tab. -
Paste into the
Search for
box and clickOK
. Make sure that there is only 1 result by clickingAll
andSearch all
. If it yields multiple results, try selecting more bytes on theB.bclyt
tab. -
Position a cursor before the selected bytes (ex:
0x1717
). -
Click to deselect.
-
Select the bytes from here, all the way to
0x0
by pressingCtrl
+Shift
+Home
. -
Copy.
-
Go to the
C.bclyt
tab. -
Position a cursor before the selected byte (ex:
0x1567
). -
Click to deselect.
-
Select the bytes from here, all the way to
0x0
by pressingCtrl
+Shift
+Home
. -
Paste with
Ctrl
+V
. Don’t paste-overwrite withCtrl
+B
.- The bytes at the beginning of the edited BCLYT are restored.
-
If done correctly, save it and close HxD.
-
Now we have fixed the BCLYT file!
-
A.bclyt
,B.bclyt
andC.bclyt.bak
can be deleted as they’re not needed anymore. -
To make another edit to the fixed BCLYT file, make 3 copies of the
C.bclyt
file and repeat step 5.
-
-
Go back to Kuriimu2.
-
Right-click the BCLYT file you extracted earlier.
-
Select Replace and pick the
C.bclyt
file (notC.bclyt.bak
that HxD created). -
Save.
-
Compress the
*.LZ
file and that’s it! You can now apply your edited UI to the Home Menu on your 3DS using LayeredFS or build the CIA file.
UI Element Colors
After importing the BCLYT/BCLAN/BCLIM files into the *.LZ
files with Kuriimu2, the offsets for the color values are no longer the same,
as these values have been moved to different addresses. If you did that already, you have to hex-edit the BCLYT files instead.
Each value consists of 4 bytes for color & alpha (RR GG BB AA
). I suggest changing only the RGB values.
Applets - launcher.LZ/blyt/LncBase_D_01.bclyt
Icon | Color 1 | Color 2 |
---|---|---|
Game Notes | 0x878 | 0x87C |
Friend List | 0x79C | 0x7A0 |
Notifications | 0x6C0 | 0x6C4 |
Internet Browser | 0x5E4 | 0x5E8 |
Miiverse | 0x508 | 0x50C |