Tutorial  Updated

Customising a System Font

Hey, I'm showing how to customize a font for 3DS and install it. This requires Luma3DS and Boot9Strap.

Please backup your NAND before proceeding. I am not responsible if you brick. :)


----- Simple font editing -----

Requirements:
FontTool
Python (pick 2.7, not 3.6)
GodMode9
3dstool
ctrtool
make_cia
ctr_FontConverter (can't link this SDK here)


Let's start!

Onto PC:
1- Open ctr_FontConverter.exe
2- Go to Windows Font tab for Input section
3- Pick a font
4- Set the size to 25 px and the Bit depth to 16 levels (A4) - important: always use 16 levels, selecting 2 levels will make texts look corrupted (garbled) in some games!
5- On Output section, save as .bcfnt
6- Hit Convert
7- Move BCFNT to FontTool folder (you need 3dstool.exe, ctrtool.exe, and make_cia.exe in this folder)
8- Open up Command Prompt or Windows PowerShell
9- Type the following: FontTool.py -font <your output filename>.bcfnt
10- Hit Enter
11- Copy the .cia file to SD card
12- Remove SD card

Onto 3DS:
13- Insert SD card back into 3DS
14- Power on and hold START to launch chainloader
15- Open GodMode9
16- Navigate to SD card
17- Select .cia file
18- Go to CIA image options... > Encrypt file (...) > Encrypt inplace
19- Reboot 3DS
20- Open FBI
21- Select .cia file
22- Install it
23- Restart your system
24- Voila!


----- Advanced font editing -----

For those who want button icons included, follow this instruction:

Requirements:
FontForge
GodMode9
Some Nintendo TrueType fonts:
• CafeStd.ttf - a Wii U font
Dumped from NAND using FTPiiU_Everywhere, it's located at /storage_mlc/sys/title/0005001b/10042400/content

• nintendo_udsg-r_std_003.ttf - a Nintendo Switch font
• nintendo_ext_003.ttf - Nintendo extended character font. Includes 3DS and Wii U extended characters (such as controller buttons).
(These can be obtained off SDK or NAND.)

• nintendo_NTLG-DB_001.ttf - a 3DS font itself, found in Internet Browser. (Best way to deal with 1.5MB limit)
Launch GodMode9, go to CTR NAND:\title\00040030\********\content\
* Spider - JPN: 00008802 | USA: 00009402 | EUR: 00009D02 / Skater (New 3DS) - JPN: 20008802 | USA: 20009402 | EUR: 20009D02
pick the *.app file (there are two of 'em, select one that its filesize is larger than other), NCCH image options... > Mount image to drive
go to G:\romfs\browser\font , Copy to 0:/gm9/out

Important: To deal with 1.5 MB limit for BCFNT, use nintendo_ext_003.ttf as it only contains button chars, but it doesn't include Japanese chars (but not really needed, only for out-of-region HOME Menu game titles - example; マリオカート7 as Mario Kart 7.

If you want to preserve all 3DS text characters like accents (áëîōü) and special characters while it's under 1.5MB limit, see the last Q/A.

1- Open up FontForge
2- Choose your font you want for 3DS
3- go to Element > Merge Fonts...
(click yes for Kerning thing)
4- pick one of Nintendo fonts
5- go to Private Use Area starting with U+E000 (View > Goto > drop-down menu > Private Use Area > OK / or type "uniE000" then enter)
This is what it looks like:
y0BgCwW.png

6- Select multiple symbols up to U+E07E (left/right D-pad) or rest of Switch symbols
7- Right-Click > Transform...
8- Choose amount of number for Move
9- Expand the second option that says "Do Nothing" and pick Scale...
10- Change amount of number then hit OK
|
Amounts to set:
(Center of Selection) Move- X: 0 , Y: 120 | Scale- X: 195% , Y: 195%
or

If the font is too small, use this amount:
(Glyph Origin) Move- X: 0 , Y: -70 | Scale- X: 200% , Y: 200%
recommended, this fixes spacing
If the font is too big, use this amount: Scale- X: 100% , Y: 100%
|
eliminate Wii U and Switch symbols if you want, they still preserve, useful for custom keyboard such as giving amiibo its name without ending up blindly typing random chars, but it won't display these for other people's eyes in Friend List

You can also use slanted icons perfectly for Italic fonts.
A- Highlight those PUA chars
B- Go to File > Styles > Italic
C- Hit OK
11- finally Generate font.

Here's the result


Warning: If you are fiddling with original fonts that came pre-installed on your PC, please backup C:\Windows\Fonts to safe place.
Go to FontForge > Element > Font info... PS Names ,
change those fontnames to something else by adding something BEFORE font/family name (for example, family: Custom Comic Sans MS , name for human: Custom Comic Sans MS Italic), because even if you tried "Comic Sans MS 1", Windows still detects Comic Sans MS, ignoring the extra bit.
If you don't, it will collide font/family and permanently replaces the current font when installing. Always say No if it asks you to replace current font. You don't wanna fuck up your system fonts, though.
Now you can edit.

Test if symbols correctly show up on FontConverter or EveryFileExplorer by copy & pasting these: 
It shouldn't display squares and you're good to go.


----- Misc/Notes -----​

If you wanna revert the font, download 3DNUS, open it up, copy this TitleID into the box: 0004009B00014002 v0
It'll export .cia file.
Install with FBI and done.

@TheMachinumps posted this batch tool that converts multiple BCFNTs to CIAs which has been made easier: https://gbatemp.net/threads/tutorial-customising-a-system-font.477415/#post-7449721
This is better: https://gbatemp.net/threads/tutorial-customising-a-system-font.477415/page-2#post-7450055


----- Q & A -----

Q: Can I install font on completely stock/unhacked system?
A: No, you need CFW.

Q: I bricked my 3DS while trying to install font :(
A: Your font could be corrupted or it exceeded 1.5 MB. Restore NAND with GodeMode9.

Q: My custom font exceeded 1.5 MB!
A: Try a smaller filesize of the font.

Q: The texts are wide as hell!
A: On 'Font width' tick the box for "Specify average width" and try to adjust. I picked around 20-25px to squeeze the texts.

Q: Does it work with Citra emulator?
A: Yes, follow this instruction and acquire 00014002 folder located in 3dsutils\nand\00000000000000000000000000000000\title\ .
Go to File > Install CIA...
It has to be decrypted (usually from FontTool that converted it)

Q: I went to Super Smash Bros. and the texts look garbled!
A: You must set bit depth to 16 levels (A4), never 2 level.

Q: I gonna uninstall CFW before selling my 3DS
A: Do NOT uninstall CFW with such modded system files, it could brick! There is no point of uninstalling CFW plus it's a risk of ban without CFW. Leave as it is and try hiding those hacks while selling.

Q: I don't want Wii U / Switch symbols, just the 3DS symbols with all characters like Japanese/accent text characters.
A: Open the custom font in FontForge, go to Element > Merge Font... , select an original font called nintendo_NTLG-DB_001.ttf , adjust the size, generate font.
Only if you are not hitting the 1.5MB limit!


Video tutorial (does not include adding PUA characters)


I have custom fonts made by me. https://www.dropbox.com/sh/39dj49x9vzbd3yp/AADMApKfbEjzCId2bsWGCeGWa?dl=0
 
Last edited by ,
D

Deleted User

Guest
OP
@PabloMK7 @TheMachinumps

Ok, it's kinda drivin' me nuts. Resizing the character set breaks alpha channel (transparency), causing FontConverter to throw out errors while trying to export BCFNT. I was trying to fit the piece of image on next larger bitmap font image.

xIBTKgP.png
TTwWFBo.png
b1LLOGR.png
 
  • Like
Reactions: CatmanFan

AntiMach

Well-Known Member
Member
Joined
Oct 31, 2016
Messages
317
Trophies
0
Website
mach.bot.nu
XP
714
Country
Portugal
Ok, it's kinda drivin' me nuts. Resizing the character set breaks alpha channel (transparency), causing FontConverter to throw out errors while trying to export BCFNT. I was trying to fit the piece of image on next larger bitmap font image.[/SPOILER]
Try to convert the original BCFNT to a BMP, and make sure the "Draw grid" option is on. It will make it easier on you.
 

PabloMK7

Red Yoshi! ^ω^
Developer
Joined
Feb 21, 2014
Messages
2,604
Trophies
2
Age
24
Location
Yoshi's Island
XP
5,025
Country
Spain
You cannot export to bmp as it won't export transparency. Also, each letter wideness is stored as a red line of pixels below the letter, so you cannot resize it that way as that will cause that red line to merge with the black line and won't be recognized.
 

AntiMach

Well-Known Member
Member
Joined
Oct 31, 2016
Messages
317
Trophies
0
Website
mach.bot.nu
XP
714
Country
Portugal
You cannot export to bmp as it won't export transparency. Also, each letter wideness is stored as a red line of pixels below the letter, so you cannot resize it that way as that will cause that red line to merge with the black line and won't be recognized.
You can export as a 32BPP BMP, which has an Alpha channel...
 
  • Like
Reactions: PabloMK7
D

Deleted User

Guest
OP
You cannot export to bmp as it won't export transparency. Also, each letter wideness is stored as a red line of pixels below the letter, so you cannot resize it that way as that will cause that red line to merge with the black line and won't be recognized.
Wait, so it's impossible to resize without messing?
Btw, I managed to merge resized character set WITH working alpha'd grid (didn't resize, just copied from large font image to new image then copied back) onto new TGA font and converted correctly, but symbols (A,B,X,Y,L & R) started to overlap.
8BAGJEv.png
 

PabloMK7

Red Yoshi! ^ω^
Developer
Joined
Feb 21, 2014
Messages
2,604
Trophies
2
Age
24
Location
Yoshi's Island
XP
5,025
Country
Spain
Wait, so it's impossible to resize without messing?
Btw, I managed to merge resized character set WITH working alpha'd grid (didn't resize, just copied from large font image to new image then copied back) onto new TGA font and converted correctly, but symbols (A,B,X,Y,L & R) started to overlap.
8BAGJEv.png
You have to adjust the character wideness red line of pixels to match the icons. (Use the pencil tool with R:255 G:0 B:0 A:>1)
 
  • Like
Reactions: Deleted User
D

Deleted User

Guest
OP
You have to adjust the character wideness red line of pixels to match the icons. (Use the pencil tool with R:255 G:0 B:0 A:>1)
I did it! Now I know how to get it working. :D
That was huge pain in my ass - I spent like 5 hours of practicing it lol.
Thanks for your help. And you too @TheMachinumps
B95no1C.png
 
Last edited by ,
  • Like
Reactions: PabloMK7
D

Deleted User

Guest
OP
(Sorry for bump)
I've made changes to my tutorial which includes adding missing button symbols using popular font editor WITHOUT losing quality (look at the screenshot right above me on how horrible the quality of resized chars are), and has been made easier, while bitmap image editing is too complicated. This has been tested on my 3DS and works. It's on advanced section now.
@PabloMK7 Just letting you know, there's an easy method of doing that instead of image editing one.
 
Last edited by ,

CatmanFan

Anxious and regretful
Member
Joined
Aug 14, 2016
Messages
1,962
Trophies
0
Website
www.youtube.com
XP
2,588
Country
Morocco
I installed some of RosaliinaDaHacker64's included fonts on my 3DS, but then I got quickly bored and reinstalled my original system font, especially since the custom symbols aren't working. You should update your fonts to include the custom symbols plz
 
D

Deleted User

Guest
OP
I installed some of RosaliinaDaHacker64's included fonts on my 3DS, but then I got quickly bored and reinstalled my original system font, especially since the custom symbols aren't working. You should update your fonts to include the custom symbols plz
I have uploaded the font (with PUA Wii U and Switch chars) to Dropbox. The download link is on very bottom of my post.
 
D

Deleted User

Guest
OP
Updated that little tool I made. Now you don't even need python!
Just follow the same steps.
Avast! Antivirus detected this as a virus. Make sure you do not see viruses. It could be me though, I downloaded a game then it complained that it was a virus.
 

siamese

Well-Known Member
Member
Joined
Mar 13, 2010
Messages
164
Trophies
1
Age
109
Location
green hill zone
XP
443
Country
Mexico
Use Avast! or AVG, don't use Norton or that bootleg antivirus you have, Avast! will detect it as a virus but its a false positive.
:rofl2: :rofl2: :rofl2: Nice ad for Avast!!!! Bootleg detects the same, a false positive :creep:

Excellent tutorial, had a great time customizing my 3ds. Thanks RosalinaDaHacker !!
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    I @ idonthave: :)