Hello there! Recently I've got some complaints in my CTGP-7 discord server that the mod was either crashing or showing garbled text. It turned out the reason for those crashes and bugs was the usage of custom system fonts so I decided to make this thread to explain why that happens and how to prevent it.
What symptoms do buggy custom system fonts cause?
Custom system fonts are commonly saved with A8 color encoding. While many official apps are designed to support all the possible encodings, there are some situations where that isn't the case. The original system font is saved with A4 color encoding which uses less bits per pixels, apps that assume the system font is saved with A4, will show garbled text or will crash randomly.
Another problem is that A8 bcfnts are much bigger than the official one, taking more memory (shouldn't be a big issue tho).
As a user trying to install a custom font, what should I do?
You can always check if the custom font is properly created, for that do the following:
Check the following link to see how custom fonts should be properly created: https://pastebin.com/ZCy0uzux
What symptoms do buggy custom system fonts cause?
- Garbled text, black squares, white squares or no text at all.
- Missing characters and symbols, such as button symbols, special characters, etc
- Crashes in homebrew apps or even official games.
- CTRPF: Either the text is garbled or crashes.
- FBI: Some custom fonts can cause crashes, preventing you from restoring the original working system font.
Custom system fonts are commonly saved with A8 color encoding. While many official apps are designed to support all the possible encodings, there are some situations where that isn't the case. The original system font is saved with A4 color encoding which uses less bits per pixels, apps that assume the system font is saved with A4, will show garbled text or will crash randomly.
Another problem is that A8 bcfnts are much bigger than the official one, taking more memory (shouldn't be a big issue tho).
As a user trying to install a custom font, what should I do?
You can always check if the custom font is properly created, for that do the following:
- Get 3dsfuse
- Open 3dsfuse and mount the custom system font cia
- Go to the new mounted cia->(folder with numbers)->romfs and grab the bcfnt.lz file you can find inside.
- Get 3dstool and put both the bcfnt and the exe in the same folder.
- Run "3dstool -uvf cbf_std.bcfnt.lz --compress-type lzex --compress-out file.bcfnt" in a command prompt, search in google how to execute commands in the command prompt if you don't know how.
- Open the new created file.bcfnt in a hex editor such as HxD and check the value circled in this screenshot. If the value is 0B then it is a good font and can be used without any problems. If the value is another one (the most common being 08 then it is a buggy custom system font.) NOTE: Changing that value to 0B won't fix it, but will make it worse
Check the following link to see how custom fonts should be properly created: https://pastebin.com/ZCy0uzux
Last edited by PabloMK7,