PDA

View Full Version : [Tutorial] Editing NSCR files (how to map the graphics on NDS ROMs)


Platinum Lucario
July 25th, 2012, 01:05 PM
Hi everyone! I'm sure if you remember 2 years ago when I was rather clueless about how the NSCR (Nitro Screen Resource) files worked. Well now I have finally cracked the code! So would you like to know how to edit the NSCR files too? Well it's rather simple.

Requirements for Editing NSCR files
Okay, first of all... you'll need to the following in order to edit the NSCR files:

A hex editor. Either CrystalTile2 or HxD.
Something to extract the NSCR (and de-compress it if it's compressed). Either Tinke or CrystalTile2 will do it.
Knowledge on hexadecimal.

Notice: Please note that Tinke 0.8.2 will not save changes to any files. If you'd like to save the changes to a file, use CrystalTile2. To compress a file, you must use DSDecmp, which can be found here (http://code.google.com/p/dsdecmp/), also note that CrystalTile2 will crash if you try to compress any file in an NARC (Nitro Archive) file, or even if you try to replace them. Also please use CrystalTile2 for importing any image, 'cause using Tinke will change the palette to a palette with less colours if you try to import an image using Tinke.

About hexadecimal
Ah, well I see that some of you might not know about what hexadecimal is, well I can indeed explain to you by clicking the spoiler below. But if you already know about hexadecimal, then there really isn't any need for me explain.
And so I see you've decided to check this spoiler and you're thinking in your head "what is hexadecimal?", well it's a different way of counting. I'm sure you'd pretty much know about decimal, which pretty much all of us have learned right from the very first year at school. Ahem... now as you'd know that decimal counts as 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, and then adding on the next number in the tens unit and so on. But as for hexadecimal works in a very similar fashion... except it has letters in it, that's right... letters! Now you're wondering, how does hexadecimal count on like? Well it counts like this: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10. Notice how similar it is to decimal, except that it has A, B, C, D, E and F in it? Well that's pretty much the same sort of thing, by the time it reaches the end at F, then it adds on to the next unit, like 9 then 10 in decimal. I'm sure you'll understand how it works now, anyways... I'm sure you're looking forward to moving onto the next part of the page now.

Editing the NSCR file
Alright, the first thing you'll need to do... is extract the files with some tool like Tinke, CrystalTile2. And if you've got a compressed file, you'll need to de-compress it using tools such as Tinke or CrystalTile2. Alright, once you've extracted the NSCR, now open up any hex editor such as CrystalTile2 or HxD. Tinke may have it's own built in hex editor, but it cannot save the changes to the file sadly. Alright so after you've opened up your file, you will need to take a look at the NCGR file that is used for the NSCR file, if you'd like to know how to change the NCGR files, be sure to follow my previous (http://www.pokecommunity.com/showthread.php?t=244408) tutorial.

So you've opened the file, and you know what NCGR file the NSCR file is linked to. Alrighty then, so for example... I'm changing the mapping of the Pocket Monsters Black 2 title screen into the mapping of the English Pokémon Black Version 2 title screen, here's what I need to know first:

http://img7.imageshack.us/img7/4223/tilemapping.png

You should also do the same thing for your image as well, this will help you to know which hex value to use for the following tiles in the NCGR file, every tile is 8x8 pixels large. For those who have used AdvanceMap for the 3rd Generation Pokémon ROMs would probably notice that this is very similar to map editing, well the answer is very much the same. The bytes in the tile mapping on the NSCR file go from left to right order, but before I explain... I should also explain about the NSCR file... and how the bytes are used.

Header: 0x0-3 - This indicates the file extension, which is "RCSN" (NSCR backwards).
Type: 0x4-5 - This shows the type of NSCR file it is, most NSCR files have "0xFFEE" as it's type.
[needs research]: 0x6-7
Size: 0x8-B - This shows the size of the file, in this case... the NSCR file is "0x24080000" (which is 0x00000824 backwards and would be 2,084 in decimal).
Header size: 0xC-D - This shows the header size for the NSCR file, most of them are "0x1000" (which is 0x0010 backwards).
Number of Sections: 0XE-F - This shows the number of sections, most of them are "0x100" (which is 0x001 backwards).
SCRN Header: 0x10-13 - The letters "NRCS", which is "SCRN" backwards.
SCRN size: 0x14-17 - The size of the SCRN area.
Image width: 0x18-19 - The width of the image, the size is written backwards in hexadecimal, like 0x0001 is 0x0100, which is 256 in hexadecimal.
Image height: 0x1A-1B - The height of the image, the size is written backwards in hexadecimal, like 0x0001 is 0x0100, which is 256 in hexadecimal.
[needs research]: 0x1C-1F
Data length: 0x20-23 This shows the length of the tiles that are mapped for the NSCR file. It's written in backwards hexadecimal.

And our mapping tutorial begins at this offset...
Tile mapping data: 0x24

Before we begin though... I just want to let you know on one thing... the bytes are also written backwards in hexadecimal for each square. But oh no, I don't mean the squares are ordered backwards, because they go from top left-right.

Now that I've covered all about the different offsets at the beginning of the NSCR, lets start editing the NSCR. So I've decided to change the mapping of the NSCR in Pocket Monsters Black 2 and change it to the mapping of the English Pokémon Black Version 2, here's what I do... I look at the hex values carefully... and look at their pattern. I would also keep track of the bytes on another image as well. Do you notice how the bytes are counting up? Well that's one way of knowing that the logo uses different graphics for each square. And so I actually want to make the Pokémon Black Version 2 logo be in the correct position, right? Well I simply look at that chart that I mentioned earlier in the post, then I simply change the hex values to the ones I want, so that the logo will display properly. 'Cause that is what everyone wants.

What I did was change 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 21 00 22 00 23 00 24 00 25 00 26 00 27 00 28 00 29 00 2A 00 0B 00 0C 00 0D 00 0E 00 0F
into40 00 41 00 42 00 43 00 44 00 45 00 46 00 47 00 48 00 49 00 4A 00 4B 00 4C 00 4D 00 4E 00 4F 00 50 00 51 00 52 00 53 00 54 00 55 00 56 00 57 00 58 00 59 00 5A 00 5B 00 5C 00 5D 00 5E 00 5F 00 60 00 61 00 62 00 63 00 64 00 65 00 66 00 67 00 68 00 69 00 6A 00 6B 00 6C 00 6D 00 6E 00 6F

Notice how I've changed those bytes into where it previously had a long line of "00"? That's because that particular area had nothing in it, and you see... Pokémon Black Version 2 logo needs to have those bytes counting on for it to display correctly and use the right graphics for the tiles. Another thing is... that the bytes for each square is written backwards, so if you're in the one hundreads already, you'd simply put "01" in the second byte after the first byte, as each square has two bytes, the unit and tens is the first, the hundreads and thousands is the second, like "BF 01" is "01 BF". If you import the NCGR file into the NARC and don't modify the NSCR file... the graphics will turn out like this:
http://img838.imageshack.us/img838/5286/6copy1bin.png
Now surely you don't want it to turn out like this, but hey... even if it doesn't turn out the way you want it, you can always check the chart you made, like the one I've made and fix the issue. It's a bit of trial and error, but you'll eventurally get there. After you've gotten the bytes corrected, it will turn out more like this:
http://img706.imageshack.us/img706/230/6copy1bin1.png
If you get the image in the way you want it to be, then horray! You've done it! You've managed to correct the bytes to right parts of the image. Now all I need to do is fix the bytes for the background aurora... alright... here we go!
http://img819.imageshack.us/img819/3503/6copy3bin.png
Yay! I've done it! ...Oh? Have you had some problems and stress out about it and find it confusing with knowing which hex values to edit for mapping the NSCR file? Well no problem, I can help you with that, I will give you the hex values of the unedited one and the one I've edited, so then you can compare it with the different bytes and change them so then you might learn something entirely new... which will help you with your ROM Hacking experience. ^^

The logo (starts at 0x124 and ends at 0x4A3)

Unedited
00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 21 00 22 00 23 00 24 00 25 00 26 00 27 00 28 00 29 00 2A 00 0B 00 0C 00 0D 00 0E 00 0F 00 10 00 11 00 18 00 19 00 18 00 19 00 18 00 19 00 18 00 19 00 1A 00 1B 00 1C 00 1D 00 00 00 00 00 40 00 41 00 42 00 43 00 44 00 45 00 46 00 47 00 48 00 49 00 4A 00 4B 00 4C 00 4D 00 4E 00 4F 00 50 00 51 00 52 00 53 00 54 00 55 00 56 00 57 00 58 00 59 00 5A 00 5B 00 5C 00 5D 00 5E 00 5F 00 60 00 61 00 62 00 63 00 64 00 65 00 66 00 67 00 68 00 69 00 6A 00 6B 00 6C 00 6D 00 6E 00 6F 00 70 00 71 00 72 00 73 00 74 00 75 00 76 00 77 00 78 00 79 00 7A 00 7B 00 7C 00 7D 00 7E 00 7F 00 80 00 81 00 82 00 83 00 84 00 85 00 86 00 87 00 88 00 89 00 8A 00 8B 00 8C 00 8D 00 8E 00 8F 00 90 00 91 00 92 00 93 00 94 00 95 00 96 00 97 00 98 00 99 00 9A 00 9B 00 9C 00 9D 00 9E 00 9F 00 A0 00 A1 00 A2 00 A3 00 A4 00 A5 00 A6 00 A7 00 A8 00 A9 00 AA 00 AB 00 AC 00 AD 00 AE 00 AF 00 B0 00 B1 00 B2 00 B3 00 B4 00 B5 00 B6 00 B7 00 B8 00 B9 00 BA 00 BB 00 BC 00 BD 00 BE 00 BF 00 C0 00 C1 00 C2 00 C3 00 C4 00 C5 00 C6 00 C7 00 C8 00 C9 00 CA 00 CB 00 CC 00 CD 00 CE 00 CF 00 D0 00 D1 00 D2 00 D3 00 D4 00 D5 00 D6 00 D7 00 D8 00 D9 00 DA 00 DB 00 DC 00 DD 00 DE 00 DF 00 E0 00 E1 00 E2 00 E3 00 E4 00 E5 00 E6 00 E7 00 E8 00 E9 00 EA 00 EB 00 EC 00 ED 00 EE 00 EF 00 F0 00 F1 00 F2 00 F3 00 F4 00 F5 00 F6 00 F7 00 F8 00 F9 00 FA 00 FB 00 FC 00 FD 00 FE 00 FF 00 00 01 01 01 02 01 03 01 04 01 05 01 06 01 07 01 08 01 09 01 0A 01 0B 01 0C 01 0D 01 0E 01 0F 01 10 01 11 01 12 01 13 01 14 01 15 01 16 01 17 01 18 01 19 01 1A 01 1B 01 1C 01 1D 01 1E 01 1F 01 20 01 21 01 22 01 23 01 24 01 25 01 26 01 27 01 28 01 29 01 2A 01 2B 01 2C 01 2D 01 2E 01 2F 01 30 01 31 01 32 01 33 01 34 01 35 01 36 01 37 01 38 01 39 01 3A 01 3B 01 3C 01 3D 01 3E 01 3F 01 40 01 41 01 42 01 43 01 44 01 45 01 46 01 47 01 48 01 49 01 4A 01 4B 01 4C 01 4D 01 4E 01 4F 01 50 01 51 01 52 01 53 01 54 01 55 01 56 01 57 01 58 01 59 01 5A 01 5B 01 5C 01 5D 01 5E 01 5F 01 60 01 61 01 62 01 63 01 64 01 65 01 66 01 67 01 68 01 69 01 6A 01 6B 01 6C 01 6D 01 6E 01 6F 01 70 01 71 01 72 01 73 01 74 01 75 01 76 01 77 01 78 01 79 01 7A 01 7B 01 7C 01 7D 01 7E 01 7F 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8B 01 8C 01 8D 01 8E 01 8F 01 90 01 91 01 92 01 93 01 94 01 95 01 96 01 97 01 98 01 99 01 9A 01 9B 01 9C 01 9D 01 9E 01 9F 01 00 00 00 00 00 00 00 00 00 00 00 00 86 01 87 01 88 01 89 01 8A 01 00 00 00 00 00 00 AE 01 AF 01 B0 01 B1 01 B2 01 B3 01 B4 01 B5 01 B6 01 B7 01 B8 01 B9 01 BA 01 BB 01 BC 01 BD 01 BE 01 BF 01

Edited
40 00 41 00 42 00 43 00 44 00 45 00 46 00 47 00 48 00 49 00 4A 00 4B 00 4C 00 4D 00 4E 00 4F 00 50 00 51 00 52 00 53 00 54 00 55 00 56 00 57 00 58 00 59 00 5A 00 5B 00 5C 00 5D 00 5E 00 5F 00 60 00 61 00 62 00 63 00 64 00 65 00 66 00 67 00 68 00 69 00 6A 00 6B 00 6C 00 6D 00 6E 00 6F 00 70 00 71 00 72 00 73 00 74 00 75 00 76 00 77 00 78 00 79 00 7A 00 7B 00 7C 00 7D 00 7E 00 7F 00 80 00 81 00 82 00 83 00 84 00 85 00 86 00 87 00 88 00 89 00 8A 00 8B 00 8C 00 8D 00 8E 00 8F 00 90 00 91 00 92 00 93 00 94 00 95 00 96 00 97 00 98 00 99 00 9A 00 9B 00 9C 00 9D 00 9E 00 9F 00 A0 00 A1 00 A2 00 A3 00 A4 00 A5 00 A6 00 A7 00 A8 00 A9 00 AA 00 AB 00 AC 00 AD 00 AE 00 AF 00 B0 00 B1 00 B2 00 B3 00 B4 00 B5 00 B6 00 B7 00 B8 00 B9 00 BA 00 BB 00 BC 00 BD 00 BE 00 BF 00 C0 00 C1 00 C2 00 C3 00 C4 00 C5 00 C6 00 C7 00 C8 00 C9 00 CA 00 CB 00 CC 00 CD 00 CE 00 CF 00 D0 00 D1 00 D2 00 D3 00 D4 00 D5 00 D6 00 D7 00 D8 00 D9 00 DA 00 DB 00 DC 00 DD 00 DE 00 DF 00 E0 00 E1 00 E2 00 E3 00 E4 00 E5 00 E6 00 E7 00 E8 00 E9 00 EA 00 EB 00 EC 00 ED 00 EE 00 EF 00 F0 00 F1 00 F2 00 F3 00 F4 00 F5 00 F6 00 F7 00 F8 00 F9 00 FA 00 FB 00 FC 00 FD 00 FE 00 FF 00 00 01 01 01 02 01 03 01 04 01 05 01 06 01 07 01 08 01 09 01 0A 01 0B 01 0C 01 0D 01 0E 01 0F 01 10 01 11 01 12 01 13 01 14 01 15 01 16 01 17 01 18 01 19 01 1A 01 1B 01 1C 01 1D 01 1E 01 1F 01 20 01 21 01 22 01 23 01 24 01 25 01 26 01 27 01 28 01 29 01 2A 01 2B 01 2C 01 2D 01 2E 01 2F 01 30 01 31 01 32 01 33 01 34 01 35 01 36 01 37 01 38 01 39 01 3A 01 3B 01 3C 01 3D 01 3E 01 3F 01 40 01 41 01 42 01 43 01 44 01 45 01 46 01 47 01 48 01 49 01 4A 01 4B 01 4C 01 4D 01 4E 01 4F 01 50 01 51 01 52 01 53 01 54 01 55 01 56 01 57 01 58 01 59 01 5A 01 5B 01 5C 01 5D 01 5E 01 5F 01 60 01 61 01 62 01 63 01 64 01 65 01 66 01 67 01 68 01 69 01 6A 01 6B 01 6C 01 6D 01 6E 01 6F 01 70 01 71 01 72 01 73 01 74 01 75 01 76 01 77 01 78 01 79 01 7A 01 7B 01 7C 01 7D 01 7E 01 7F 01 80 01 81 01 82 01 83 01 84 01 85 01 86 01 87 01 88 01 89 01 8A 01 8B 01 8C 01 8D 01 8E 01 8F 01 90 01 91 01 92 01 93 01 94 01 95 01 96 01 97 01 98 01 99 01 9A 01 9B 01 9C 01 9D 01 9E 01 9F 01 A0 01 A1 01 A2 01 A3 01 A4 01 A5 01 A6 01 A7 01 A8 01 A9 01 AA 01 AB 01 AC 01 AD 01 AE 01 AF 01 B0 01 B1 01 B2 01 B3 01 B4 01 B5 01 B6 01 B7 01 B8 01 B9 01 BA 01 BB 01 BC 01 BD 01 BE 01 BF 01 C0 01 C1 01 C2 01 C3 01 C4 01 C5 01 C6 01 C7 01 C8 01 C9 01 CA 01 CB 01 CC 01 CD 01 CE 01 CF 01 D0 01 D1 01 D2 01 D3 01 D4 01 D5 01 D6 01 D7 01 D8 01 D9 01 DA 01 DB 01 DC 01 DD 01 DE 01 DF 01 E0 01 E1 01 E2 01 E3 01 E4 01 E5 01 E6 01 E7 01 E8 01 E9 01 EA 01 EB 01 EC 01 ED 01 EE 01 EF 01 F0 01 F1 01 F2 01 F3 01 F4 01 F5 01 F6 01 F7 01 F8 01 F9 01 FA 01 FB 01 FC 01 FD 01 FE 01 FF 01

The aurora background (starts at 0x2F and ends at 0x223)

Unedited
C1 01 C2 01 C3 01 C4 01 C5 01 C6 01 C7 01 C8 01 C1 01 C2 01 C3 01 C4 01 C5 01 C6 01 C7 01 C8 01 C1 01 C2 01 C3 01 C4 01 C5 01 C6 01 C7 01 C8 01 C1 01 C2 01 C3 01 C4 01 C5 01 C6 01 C7 01 C8 01 C9 01 CA 01 CB 01 CC 01 CD 01 CE 01 CF 01 D0 01 C9 01 CA 01 CB 01 CC 01 CD 01 CE 01 CF 01 D0 01 C9 01 CA 01 CB 01 CC 01 CD 01 CE 01 CF 01 D0 01 C9 01 CA 01 CB 01 CC 01 CD 01 CE 01 CF 01 D0 01 D1 01 D2 01 D3 01 D4 01 D5 01 D6 01 D7 01 D8 01 D1 01 D2 01 D3 01 D4 01 D5 01 D6 01 D7 01 D8 01 D1 01 D2 01 D3 01 D4 01 D5 01 D6 01 D7 01 D8 01 D1 01 D2 01 D3 01 D4 01 D5 01 D6 01 D7 01 D8 01 D9 01 DA 01 DB 01 DC 01 DD 01 DE 01 DF 01 E0 01 D9 01 DA 01 DB 01 DC 01 DD 01 DE 01 DF 01 E0 01 D9 01 DA 01 DB 01 DC 01 DD 01 DE 01 DF 01 E0 01 D9 01 DA 01 DB 01 DC 01 DD 01 DE 01 DF 01 E0 01 E1 01 E2 01 E3 01 E4 01 E5 01 E6 01 E7 01 E8 01 E1 01 E2 01 E3 01 E4 01 E5 01 E6 01 E7 01 E8 01 E1 01 E2 01 E3 01 E4 01 E5 01 E6 01 E7 01 E8 01 E1 01 E2 01 E3 01 E4 01 E5 01 E6 01 E7 01 E8 01 E9 01 EA 01 EB 01 EC 01 ED 01 EE 01 EF 01 F0 01 E9 01 EA 01 EB 01 EC 01 ED 01 EE 01 EF 01 F0 01 E9 01 EA 01 EB 01 EC 01 ED 01 EE 01 EF 01 F0 01 E9 01 EA 01 EB 01 EC 01 ED 01 EE 01 EF 01 F0 01 F1 01 F2 01 F3 01 F4 01 F5 01 F6 01 F7 01 F8 01 F1 01 F2 01 F3 01 F4 01 F5 01 F6 01 F7 01 F8 01 F1 01 F2 01 F3 01 F4 01 F5 01 F6 01 F7 01 F8 01 F1 01 F2 01 F3 01 F4 01 F5 01 F6 01 F7 01 F8 01 F9 01 F9 01 F9 01 FA 01 FB 01 FC 01 F9 01 F9 01 F9 01 F9 01 F9 01 FA 01 FB 01 FC 01 F9 01 F9 01 F9 01 F9 01 F9 01 FA 01 FB 01 FC 01 F9 01 F9 01 F9 01 F9 01 F9 01 FA 01 FB 01 FC 01 F9 01 F9 01

Edited
01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 00 10 00 09 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 00 10 00 09 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 00 10 00 09 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 00 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00 19 00 1A 00 1B 00 1C 00 1D 00 1E 00 1F 00 20 00 19 00 1A 00 1B 00 1C 00 1D 00 1E 00 1F 00 20 00 19 00 1A 00 1B 00 1C 00 1D 00 1E 00 1F 00 20 00 19 00 1A 00 1B 00 1C 00 1D 00 1E 00 1F 00 20 00 21 00 22 00 23 00 24 00 25 00 26 00 27 00 28 00 21 00 22 00 23 00 24 00 25 00 26 00 27 00 28 00 21 00 22 00 23 00 24 00 25 00 26 00 27 00 28 00 21 00 22 00 23 00 24 00 25 00 26 00 27 00 28 00 29 00 2A 00 2B 00 2C 00 2D 00 2E 00 2F 00 30 00 29 00 2A 00 2B 00 2C 00 2D 00 2E 00 2F 00 30 00 29 00 2A 00 2B 00 2C 00 2D 00 2E 00 2F 00 30 00 29 00 2A 00 2B 00 2C 00 2D 00 2E 00 2F 00 30 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00 31 00 39 00 39 00 3A 00 3B 00 3C 00 39 00 39 00 39 00 39 00 39 00 3A 00 3B 00 3C 00 39 00 39 00 39 00 39 00 39 00 3A 00 3B 00 3C 00 39 00 39 00 39 00 39 00 39 00 3A 00 3B 00 3C 00 39 00 39 00

Oh, would you also like to have the logos of Pokémon Black Version 2 and White Version 2 as well? Well that's fine, I can indeed give you the logos as well, I'm sure it will help you with experimenting with the logo before you start making a ROM Hack or something with them. Well, here they are:
http://img42.imageshack.us/img42/8534/pkmnbv2.pnghttp://img690.imageshack.us/img690/3908/pkmnwv2.png

But wait, we're not done yet. xD

Compressing the files
Since Tinke 0.8.2 cannot save and CrystalTile2 crashes upon attempting to compress the files... we've only got one option... which is DSDecmp. So you're wondering... how do you use this? Well it's rather simple, open up a Command Prompt by clicking Start, in the search box type "cmd" and click "Command Prompt", after that... type in the directory that DSDecmp is in (eg. cd My Documents, cd DSDecmp5a2) and then once you're in the DSDecmp directory, firstly... make sure that the NSCR files that you'd want to compress are in there. If they are, then type in "DSDecmp -c -opt [file name] [output name]", or if you'd like the compressed file to appear in a folder, type in "DSDecmp -c -opt -ge [file name] [output name]". Once they're compressed, then import them using CrystalTile2 and then... OH NO! It crashed! But don't worry, let's try using a different program so that you won't make the same mistake as I did. Let's use... hm... oh dear... looks like there isn't any way to replace the files in an NARC file... looks like we'll have to do it the hard way, aww. Oh well, here we go.

Putting the data into the NARC manually
Well, looks like we're gonna have to do it the hard way, since CrystalTile2 crashes and Tinke 0.8.2 just simply won't save it. Okay then, lets open up HxD and CrystalTile2. Locate the offset using CrystalTile2, copy the offset of each file and in HxD, click Search > Goto and type in the offset you copied from CrystalTile2. After you've done that, check the offset for the next file, so that you'll know when the end of the file will be. Open up the modified file in HxD, copy all of it's data, go back to the tab with the NARC, starting from the offset the file is on and select all the bytes going down to offset closest to the next file, then paste! Just like that! And repeat the same step for each file you'd like to replace. This is how it's done manually!

Success!
Alright, looks like we're all done here, now let me showcase to you... my Pokémon Black Version 2 to look like the official English version! Yay! I can't believe I did it! All in a nights work had finally paid off! ^^
http://img850.imageshack.us/img850/2625/successfultitlescreened.png

Ah yes, and incase you're wondering about the "Press Start" graphics, I did indeed insert the one from the very first Pokémon Black, because they have the exact same "Press Start" graphics, so I imported them from there.

Now you've completely changed the NSCR file you've wanted to change, this is one of the steps towards NDS ROM Hacking. The Nintendo DS is very well suited for developers, after all... it's called a "Developers System" for a reason, y'know. xD

Yes... as most of you have already guessed, "DS" in "Nintendo DS" does stand for "Developers' System" as said way back at E3 2004.

Well anyways, I hope you've all found this tutorial very helpful, I'm sure this will indeed help you towards the depths of NDS ROM Hacking, we're coming into a new era of ROM Hacking!

Team Fail
July 29th, 2012, 08:26 AM
I'm pretty sure Tinke can save, you just have to write a new NDS each time. When you replace a file, you'll have to write a new rom, but yeah. I use 0.8.2 for music hacking and replacing SSEQ files, because it can import files larger than what was originally there, which is a major issue with CT.

Useful tutorial nonetheless, it will be useful in many projects. Perhaps what's here can be adopted into a program of sorts.

Also, is there any documentation of this file format in the NITRO SDK? It might have some useful info you could use to expand this.

Platinum Lucario
July 29th, 2012, 12:35 PM
I'm pretty sure Tinke can save, you just have to write a new NDS each time. When you replace a file, you'll have to write a new rom, but yeah. I use 0.8.2 for music hacking and replacing SSEQ files, because it can import files larger than what was originally there, which is a major issue with CT.

Useful tutorial nonetheless, it will be useful in many projects. Perhaps what's here can be adopted into a program of sorts.

Also, is there any documentation of this file format in the NITRO SDK? It might have some useful info you could use to expand this.

Well, I have noticed that Tinke 0.8.2 won't save the contents when you export the NARC after changing the contents inside it. They have actually fixed the issue in a newer revision, it can be found in the issues section on it's Google Code page, or by clicking here (https://dl.dropbox.com/u/3981393/Tinke/Tinke%20rev141-5.zip).

And there isn't any documentation on NSCR files in either the Nitro Plugins for Maya, 3ds Max or NNS 3D Material Editor. But they do mention about the .imd files, which are the files that are not compiled into a binary code yet. The NSCR, NCGR, and others... are the files that are already compiled in a binary code, I assume. Perhaps there was something in the Nitro SDK that might've been used to compile everything into a binary file, or maybe it was some tool that only the most highest of Nintendo staff used to compile the projects sent to them into a binary file to then put into the manufactured game card.

Team Fail
July 29th, 2012, 03:35 PM
Well, everything that's in the SDK graphics-wise should be there. There's tools to build SDAT files in there from .aiff files and whatnot.

I'll take a look and see what I can find.

Platinum Lucario
August 7th, 2012, 11:19 PM
Well, everything that's in the SDK graphics-wise should be there. There's tools to build SDAT files in there from .aiff files and whatnot.

I'll take a look and see what I can find.

Alright then, it would be very interesting to know. And once I get my hands on the SDK, then I'll be able to see every aspect of the graphics and how they work.

xalien95
January 8th, 2013, 07:33 AM
The logo (starts at 0x124 and ends at 0x4A3)How did you notice it? Thanks for this awesome tutorial!