ROM Hack TRANSLATE POKEMON FONT PROBLEM

antrix

Member
OP
Newcomer
Joined
Jul 9, 2020
Messages
13
Trophies
0
XP
86
Country
Poland
Hello trying to translate pokemon black into Polish, how to make fonts with new characters Ą ą Ć ć Ę ę Ł ł Ń ń Ó ó Ś ś Ź ź Ż ż , with Latin characters .
Does anyone know how to do this? Please help
 

CHEMI6DER

Well-Known Member
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,052
Country
Russia
Hi! Pokemon gen 5 games use the NFTR/RTFN (Nitro FonT Resource? I guess) format for storing the font, and the texts use UTF-16LE encoding, meaning that with proper tools you can just add the characters you need. NFTR is a format provided by the DS/Nitro SDK, so it's pretty common. Gen 5 games use an early version of the format (which doesn't include some of the features added in later versions of the SDK), so if you can find an old version on the SDK with fontcvtr, you can use it to convert the font to an image file, edit it, and then put it back together. I have some experience working with this (and I've been long in the works of making a tool for editing NintendoWare formats (such as BRFNT, BCFNT, BFFNT) which are all based on NFTR), so feel free to ask more.
 
  • Like
Reactions: cearp

antrix

Member
OP
Newcomer
Joined
Jul 9, 2020
Messages
13
Trophies
0
XP
86
Country
Poland
What tools can I add new characters with? I can ask for a clearer answer best how to do it step by step best
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
If it is NFTR then I do have a worked example in
https://gbatemp.net/threads/gbatemp-rom-hacking-documentation-project-new-2016-edition-out.73394/
If it is going to be fun with versions then CHEMI6DER's mentioned stuff should allow you to use tools that want/expect different versions.

NFTR can reasonably easily be added to but in most cases you tend to find people will overwrite existing characters (you probably don't need trademark symbols, various greek symbols, some types of punctuation and so on.
 
  • Like
Reactions: cearp

CHEMI6DER

Well-Known Member
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,052
Country
Russia
IIRC NFTREdit only works with the most recent version of NFTR, just crashes if you attempt to load in a font binary of an older format.
As for the all-in-one tools that can do it all, you can use PokeFontDS, but it only allows you to replace existing characters (but allows to edit the Unicode codepoint though, so you should be able to cleanly edit the font)
 

antrix

Member
OP
Newcomer
Joined
Jul 9, 2020
Messages
13
Trophies
0
XP
86
Country
Poland
Welcome back

I know that a given character can be replaced with a letter. Is there any way to add a new letter without replacing the current one?

for example, ą was ą and not ą was à or á
 

antrix

Member
OP
Newcomer
Joined
Jul 9, 2020
Messages
13
Trophies
0
XP
86
Country
Poland
Please



IIRC NFTREdit only works with the most recent version of NFTR, just crashes if you attempt to load in a font binary of an older format.
As for the all-in-one tools that can do it all, you can use PokeFontDS, but it only allows you to replace existing characters (but allows to edit the Unicode codepoint though, so you should be able to cleanly edit the font)
IIRC NFTREdit only works with the most recent version of NFTR, just crashes if you attempt to load in a font binary of an older format.
As for the all-in-one tools that can do it all, you can use PokeFontDS, but it only allows you to replace existing characters (but allows to edit the Unicode codepoint though, so you should be able to cleanly edit the font)

Please

for help I know that you can use to overwrite unused own letter.

I would like not to overwrite or otherwise add a character, but to add my own production program for the normally needed new character. Np Ć Ę ę Ł Ń ń Ó ó Ś ś ż ż, Latin.

the font is in RTFN.

Please provide a detailed description or preferably photos of how to make a step by step or a video.
 
Last edited by antrix,

bachnewacc

Member
Newcomer
Joined
Sep 1, 2021
Messages
5
Trophies
0
Age
20
XP
47
Country
Vietnam
IIRC NFTREdit only works with the most recent version of NFTR, just crashes if you attempt to load in a font binary of an older format.
As for the all-in-one tools that can do it all, you can use PokeFontDS, but it only allows you to replace existing characters (but allows to edit the Unicode codepoint though, so you should be able to cleanly edit the font)
What about gen 4, please? Which kind of font did it use?
 

CHEMI6DER

Well-Known Member
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,052
Country
Russia
What about gen 4, please? Which kind of font did it use?
Gen 4 uses it's own custom-made font format. And gen 4 games also use a custom text encoding, so while you technically can add characters to that font, it's unlikely to play nicely with other versions of the game (afaik, the Korean versions of gen 4 games were made after the initial localization, so Korean is included only in that specific version as the extension to the charset...though, then again I don't know if you can even trade mons between international and Korean versions anyways). There's also the UTF16.dat file in the filesystem, which seems like it would provide UTF-16 mapping to characters, but it's incomplete (iirc, the fonts have more characters than there are in UTF16.dat) and I don't even know if it's used by the code (pokediamond may help with that?).
So yeah TL;DR it's a custom format, things may break and there are many unknowns. I hate to plug my stuff, but I made a tool that can edit gen 4 fonts, as well as gen 5 variation of NFTR fonts - NintyFont.

A little footnote: apparently while making NintyFont I found out that gen 5 actually uses a modified version of NFTR, not an early one (unlike what I said in earlier posts here, sorry for misleading early conclusions). (IIRC) For some reason the width data is interleaved with the bitmap data in CGLP, and CWDH is filled with seemingly garbage data (tho I think I couldn't figure out what it really was, neither was it important as the game accepted the font without it anyways).
 
  • Like
Reactions: bachnewacc

bachnewacc

Member
Newcomer
Joined
Sep 1, 2021
Messages
5
Trophies
0
Age
20
XP
47
Country
Vietnam
Sorry, I don't know how to use that tool or the way to open it, are there any video or guide how to use it? By the way, you have a cute avatar, I love it ^^

--------------------- MERGED ---------------------------

[/QUOTE]
Sorry, I don't know how to use that tool or the way to open it, are there any video or guide how to use it? By the way, you have a cute avatar, I love it ^^

--------------------- MERGED ---------------------------

Sorry, I don't know how to use that tool or the way to open it, are there any video or guide how to use it? By the way, you have a cute avatar, I love it ^^
 

CHEMI6DER

Well-Known Member
Member
Joined
Feb 3, 2016
Messages
105
Trophies
0
Location
Houen Chihou
XP
2,052
Country
Russia
Sorry, I don't know how to use that tool or the way to open it, are there any video or guide how to use it? By the way, you have a cute avatar, I love it ^^
Thanks XD
I'm sorry, I don't have a guide of my own on how to use this thing. Although with gen 4 games this program would just allow you to edit the font at most, but you'd have to match the text encoding to it too, since again gen 4 has it's own custom charmap, unlike gen 5 when it's all UTF-16 and it just works. You could DM me about what you wanna add and I'll try to help you with it, cause it might be easier that way.
 

bachnewacc

Member
Newcomer
Joined
Sep 1, 2021
Messages
5
Trophies
0
Age
20
XP
47
Country
Vietnam
Thanks XD
I'm sorry, I don't have a guide of my own on how to use this thing. Although with gen 4 games this program would just allow you to edit the font at most, but you'd have to match the text encoding to it too, since again gen 4 has it's own custom charmap, unlike gen 5 when it's all UTF-16 and it just works. You could DM me about what you wanna add and I'll try to help you with it, cause it might be easier that way.

how can i message you? I just joined this forum and I don't know how to use it yet
 

bachnewacc

Member
Newcomer
Joined
Sep 1, 2021
Messages
5
Trophies
0
Age
20
XP
47
Country
Vietnam
You click on the username to see their profile page, then click "Send PM" there.
I haven't post anything so I can't pm you, are there any ways I can contact to you like facebook or telegram or anything?
upload_2021-9-5_17-21-29.png
 

PeterPat

New Member
Newbie
Joined
May 29, 2023
Messages
2
Trophies
0
XP
24
Country
Germany
Thanks XD
I'm sorry, I don't have a guide of my own on how to use this thing. Although with gen 4 games this program would just allow you to edit the font at most, but you'd have to match the text encoding to it too, since again gen 4 has it's own custom charmap, unlike gen 5 when it's all UTF-16 and it just works. You could DM me about what you wanna add and I'll try to help you with it, cause it might be easier that way.
Hi, could you elaborate on what would have to be done in gen 4 to get a font file edited with Nintyfont into the game? So far, the changes I made are not showing up.
 
Last edited by PeterPat,

mn1712trungson

Member
Newcomer
Joined
Oct 15, 2022
Messages
13
Trophies
0
Age
30
XP
259
Country
Vietnam
Here's how to use Nintyfont (thanks CHEMI6DER), NFTREdit and Tinke.
You can go to my post to see an image or follow the steps below.
https://gbatemp.net/threads/request...ersion-of-diabolical-box.621814/post-10001438
https://gbatemp.net/threads/request...ersion-of-diabolical-box.621814/post-10001640

First, you need to use Nintyfont to add the ASCII or Latin chart (if needed).​
Starting from any chart is fine, but must continue until the end of the chart block​
(your block is h0100-h017F d256-d383 Latin Extended-A or any block you want).​
In the glyph properties box, press ADD. Click the last box on chart screen to change the code point value.​
Caution: don't import BITMAP value or font will broken.
Next, we check the font with Tinke to confirm the char map has loaded (type 0 for proportional, any character​
in type 2 will skip the offset value and become full-width characters; I not test type1).​
More information in: problemkaputt.de/gbatek-ds-cartridge-nitro-font-resource-format.htm​
(Check Char Map in Tinke. First char = decimal value in Unicode chart)
Now, you can draw tile with NFTREdit and settings width value.​
Warning: please always backup your font when you adding more code point in Nintyfont.
Anytime NFTREdit can't open your modified font, it means your font is broken.

In case you can't handle it, I can send pre-edited fonts (Basic Latin, Latin-1 Supplement, Latin Extended-A, Latin Extended-B, Latin Extended Additional).
You just need to draw the character and change width, offset and next offset.

1685391809558.png


P/s: Because my native language is Vietnamese.
So we use scattered characters in all five blocks above. Pretty complicated, right?
 

Attachments

  • 1685391798188.png
    1685391798188.png
    22.1 KB · Views: 14
Last edited by mn1712trungson,

mn1712trungson

Member
Newcomer
Joined
Oct 15, 2022
Messages
13
Trophies
0
Age
30
XP
259
Country
Vietnam
Thank you. The problem is that the game I want to hack (pokemon soulsilver) doesn't use NFTR, but .bin files. I don't want to add new characters, but only change the existing ones aestetically.
The binary bitmap font in every game is different. But the basic structure is:

1. Bitmap font file (normal is 1 bpp; some odd games use 2 bpp and 3 bpp).
This can be easily edited with Crystal Tile 2 or any software with a tile editor.
1685442476401.png


2. A width char table hardcoded in the main() program

3. A function for calculating the character offset on a bitmap font

4. A function wielding or enclosing tiles together

You have several ways to trace that function back: VRAM address, OAM address, DMA address, tile buffer, etc.
 
Last edited by mn1712trungson,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    ButterScott101 @ ButterScott101: +1