- Joined
- Jan 26, 2008
- Messages
- 2,131
- Reaction score
- 5
- Trophies
- 1
- Age
- 36
- Location
- Seoul.. (in Korea)
- Website
- Visit site
- XP
- 211
- Country

In this game, it seems like mainly, only 6 files needs editing.
First of all, the font.
the font is a basic NFTR 12x12 (but 11x11, shadows probably takes the extra 1 pixel)
It is called lc1212_utf16.NFTR
By the utf16 in the font name, you'll know straight away that the game uses unicode than s-jis.
So a look into the font..
Because it is a unicode font, there are LOTS of characters inside. The full font is about 2 times of what you see in the picture, with the english characters at the end. To be able to translate this game, a VWF is necessary, and changing the character map for the english characters to single byte characters might also help.
Now a look into the script files.
As I thought, the script files were the incs files.
The header was quite long, so I only looked at the first portion, and skipped through the rest.
0x00000000 ~ 0x00000003 (the red part) INC magic header
0x00000004 ~ 0x00000007 (the yellow part) probably the particular header size? It was 14 for every INC file in this ROM, so that's what I think.
0x00000008 ~ 0x0000000B (blue) file size
0x0000000C ~ 0x0000000F (green) pointer to pointer table
Because the pointer to the pointer table is E4 31 02 00, with a flip, that is 0x000231E4. Now at that location...
you can see that it is aligned by 4 bytes.
The first pointer in this file is 4C 36 02 00, so in offset 0x0002364C, (remember to set your table as a unicode (codepage 1200)) you will see the text CRoom.
But as you see, below it is some non-dialogue text, so let's skip this part and scroll a little below...
in offset 0x00023DF8, you can start to see some text.
Just in case... do a search for the hex value F8 3D 02 00.. it's found in offset 0x00023348. So once this text moves to somewhere else, you can just change this byte to whatever you wish.
So, if your file size has increased due to translation, you should remember to change the byte on the header.
So before a translation starts for this game, a VWF is necessary, so you can fit english characters in the game.
There are barely any graphics that needs to be changed, so you won't need to worry about that.
But because the font is an NFTR font, editing shouldn't be too hard.
I have also done some testing for increasing the file size for these text files.
The file size of this file was 152036 bytes (the value in the header in decimal form)
I made a new file that was 160000 bytes in crystaltile2, and imported all data, and inserted a text in the extra space in the end.
Then I switched the pointer that originally pointed to 0x000242A6 to the new offset 0x00025344
Then finally I edited the header of the file to the new size just in case it would crash.
then tested after repacking with dslazy...
works
Now finally, a look into the graphic files.
It looks like the format is
NBGCR (BG = background)
NSPCR (SP = sprite)
Both have the same header.
0x00000000 ~ 0x00000007 SOLCOMP magic stamp (solo compression, probably?)
0x00000008 flag 10, meaning it is compressed in LZ77. from offset 8, do an lz77 decompression and you will find out it is a simple NARC file.
the SDMD files doesn't require any editing.
The arm9.bin contains SOME script. Probably the text you see in the main menu, such as "do not turn your DS OFF" etc, and the text you see before you select a room, like "CRIMSON ROOM" "Blue Chamber" etc are there.
so overall, the file system is really basic, and I recommend this game to anybody that wants to start romhacking.
First of all, the font.
the font is a basic NFTR 12x12 (but 11x11, shadows probably takes the extra 1 pixel)
It is called lc1212_utf16.NFTR
By the utf16 in the font name, you'll know straight away that the game uses unicode than s-jis.
So a look into the font..
Because it is a unicode font, there are LOTS of characters inside. The full font is about 2 times of what you see in the picture, with the english characters at the end. To be able to translate this game, a VWF is necessary, and changing the character map for the english characters to single byte characters might also help.
Now a look into the script files.
As I thought, the script files were the incs files.
The header was quite long, so I only looked at the first portion, and skipped through the rest.
0x00000000 ~ 0x00000003 (the red part) INC magic header
0x00000004 ~ 0x00000007 (the yellow part) probably the particular header size? It was 14 for every INC file in this ROM, so that's what I think.
0x00000008 ~ 0x0000000B (blue) file size
0x0000000C ~ 0x0000000F (green) pointer to pointer table
Because the pointer to the pointer table is E4 31 02 00, with a flip, that is 0x000231E4. Now at that location...
you can see that it is aligned by 4 bytes.
The first pointer in this file is 4C 36 02 00, so in offset 0x0002364C, (remember to set your table as a unicode (codepage 1200)) you will see the text CRoom.
But as you see, below it is some non-dialogue text, so let's skip this part and scroll a little below...
in offset 0x00023DF8, you can start to see some text.
Just in case... do a search for the hex value F8 3D 02 00.. it's found in offset 0x00023348. So once this text moves to somewhere else, you can just change this byte to whatever you wish.
So, if your file size has increased due to translation, you should remember to change the byte on the header.
So before a translation starts for this game, a VWF is necessary, so you can fit english characters in the game.
There are barely any graphics that needs to be changed, so you won't need to worry about that.
But because the font is an NFTR font, editing shouldn't be too hard.
I have also done some testing for increasing the file size for these text files.
The file size of this file was 152036 bytes (the value in the header in decimal form)
I made a new file that was 160000 bytes in crystaltile2, and imported all data, and inserted a text in the extra space in the end.
Then I switched the pointer that originally pointed to 0x000242A6 to the new offset 0x00025344
Then finally I edited the header of the file to the new size just in case it would crash.
then tested after repacking with dslazy...
works
Now finally, a look into the graphic files.
It looks like the format is
NBGCR (BG = background)
NSPCR (SP = sprite)
Both have the same header.
0x00000000 ~ 0x00000007 SOLCOMP magic stamp (solo compression, probably?)
0x00000008 flag 10, meaning it is compressed in LZ77. from offset 8, do an lz77 decompression and you will find out it is a simple NARC file.
the SDMD files doesn't require any editing.
The arm9.bin contains SOME script. Probably the text you see in the main menu, such as "do not turn your DS OFF" etc, and the text you see before you select a room, like "CRIMSON ROOM" "Blue Chamber" etc are there.
so overall, the file system is really basic, and I recommend this game to anybody that wants to start romhacking.












