3DS Home Menu - Editing Layout
In this guide, we will be editing the layout of the 3DS Home Menu.
I recommend reading derberg's 3DS Home Menu Customization Guide for setup and extraction before proceeding.
If you have any questions, please ask us or me (Sven64) on the Custom 3DS Assets Discord.
The layout file we will be editing is BCLYT.
While Switch-Toolbox can edit many game assets for the 3DS/WiiU/Switch, there is an issue 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.
What you need:
- Kuriimu2
- HxD hex editor
- Switch-Toolbox
- 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 don't count, as they're stored in the other layout file in
hud.LZ
.
- 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 don't count, as they're stored in the other layout file in
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 colors of known UI elements, I suggest checking out derberg's guide, as hex-editing the *.LZ
files directly is easier.
This method for editing the colors cannot be done again after following this guide. See this section here.
Editing the 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, rename each file to prepend with a prefix
A-
/B-
/C-
, 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:
Click here to copy, then paste it into Notepad ↓↓↓- Save it as
.cmd
- Drag & drop the BCLYT file in the batch file
- Enter the newly created
tmp
folder and move on to the next step
- Save it as
- Launch Switch-Toolbox
- Drag & drop the
B.bclyt
file in the Switch-Toolbox window - Do not edit anything, just save.
Ctrl+S
doesn’t have any effect, so click the Save button- 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'd like. There are a few limits of what you can edit
- 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.
- 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
(removes the Miiverse applet from the Korean 3DS system), in which you can only move them vertically. Switch-Toolbox can edit 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 harder to manually fix it with hex editor. Avoid doing the following edits:- Adding new Panes
- Deleting the existing Panes (it may crash on a 3DS, 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.
- 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
- Make sure those tabs are in the correct order:
- 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 (eg. 0x1567)
- Select a few lines of bytes forward (eg. 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 clicking
All
andSearch all
. If it yields multiple results, try selecting more bytes on theB.bclyt
tab.
- Make sure that there is only 1 result by clicking
- Position a cursor before the selected bytes (eg. 0x1717)
- Click to deselect
- Select the bytes from here, all the way to 0x0 by pressing
Ctrl+Shift+Home
- Copy
- Go to the
C.bclyt
tab - Position a cursor before the selected byte (eg. 0x1567)
- Click to deselect
- Select the bytes from here, all the way to 0x0 by pressing
Ctrl+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 a fixed BCLYT, make 3 copies of theC.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.
Here's the result :)
Try out my custom Home Menu UI
BCLAN (Layout Animation) & BCLIM (Layout Image) editing are not covered in this guide btw
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 |