The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > ROM Hacking > Tools, Tutorials & Resources
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

Notices

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.
New threads in this forum are to be approved by a moderator before they are displayed.


Reply
 
Thread Tools
  #1    
Old July 25th, 2012, 01:05 PM
Platinum Lucario's Avatar
Platinum Lucario
The Legendary Master of Light!
Community Supporter
 
Join Date: Jan 2008
Location: Warrnambool, Victoria, Australia.
Age: 21
Gender: Male
Nature: Calm
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:
  1. A hex editor. Either CrystalTile2 or HxD.
  2. Something to extract the NSCR (and de-compress it if it's compressed). Either Tinke or CrystalTile2 will do it.
  3. 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, 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.
Spoiler:
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 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:



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
Code:
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
into
Code:
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
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:

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:

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!

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
Code:
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
Code:
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
Code:
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
Code:
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:


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!
Spoiler:


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!
__________________
[Platinum Lucario's Signature]
Researching the NDS ROMs...

sure does feel like a brand new adventure!

I'm really looking forward to learning how to understand what the hex values mean and how to create programs using Microsoft Visual Studio!

Always focus on the present, best thing to do! Never look back into the past and never worry about anything bad of the future!

Last edited by Platinum Lucario; July 27th, 2012 at 10:03 AM.
Reply With Quote
  #2    
Old July 29th, 2012, 08:26 AM
Team Fail's Avatar
Team Fail
A Little Bit Of Sparkle
Community Supporter
 
Join Date: May 2009
Age: 19
Gender: Male
Nature: Brave
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.
__________________

Pairs:
Kevin, Echidna
Follow me on Twitter! @TeamFail
Alt 1, リザードン
Miiverse
Pokémon Hackers Online
Alt 2: Jack Cayman



[04:20.39] <@GoGo> I WILL INSERT WITH PLEASURE
[04:20.45] <@GoGo> shut it Bela

[05:41.55] <Team_Fail> Blue Spider is interesting, but #MEHMasterRace
[05:42.20] <diegoisawesome> Team_Fail: Sounds like a bunch of unmotivated people that still want to try to take over the world
Reply With Quote
  #3    
Old July 29th, 2012, 12:35 PM
Platinum Lucario's Avatar
Platinum Lucario
The Legendary Master of Light!
Community Supporter
 
Join Date: Jan 2008
Location: Warrnambool, Victoria, Australia.
Age: 21
Gender: Male
Nature: Calm
Quote:
Originally Posted by Team Fail View Post
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.

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.
__________________
[Platinum Lucario's Signature]
Researching the NDS ROMs...

sure does feel like a brand new adventure!

I'm really looking forward to learning how to understand what the hex values mean and how to create programs using Microsoft Visual Studio!

Always focus on the present, best thing to do! Never look back into the past and never worry about anything bad of the future!
Reply With Quote
  #4    
Old July 29th, 2012, 03:35 PM
Team Fail's Avatar
Team Fail
A Little Bit Of Sparkle
Community Supporter
 
Join Date: May 2009
Age: 19
Gender: Male
Nature: Brave
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.
__________________

Pairs:
Kevin, Echidna
Follow me on Twitter! @TeamFail
Alt 1, リザードン
Miiverse
Pokémon Hackers Online
Alt 2: Jack Cayman



[04:20.39] <@GoGo> I WILL INSERT WITH PLEASURE
[04:20.45] <@GoGo> shut it Bela

[05:41.55] <Team_Fail> Blue Spider is interesting, but #MEHMasterRace
[05:42.20] <diegoisawesome> Team_Fail: Sounds like a bunch of unmotivated people that still want to try to take over the world
Reply With Quote
  #5    
Old August 7th, 2012, 11:19 PM
Platinum Lucario's Avatar
Platinum Lucario
The Legendary Master of Light!
Community Supporter
 
Join Date: Jan 2008
Location: Warrnambool, Victoria, Australia.
Age: 21
Gender: Male
Nature: Calm
Quote:
Originally Posted by Team Fail View Post
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.
__________________
[Platinum Lucario's Signature]
Researching the NDS ROMs...

sure does feel like a brand new adventure!

I'm really looking forward to learning how to understand what the hex values mean and how to create programs using Microsoft Visual Studio!

Always focus on the present, best thing to do! Never look back into the past and never worry about anything bad of the future!
Reply With Quote
  #6    
Old January 8th, 2013, 07:33 AM
xalien95's Avatar
xalien95
Creator of Pkmn Omicron [ITA]
 
Join Date: Jan 2011
Location: Italy, Monopoly
Age: 18
Gender: Male
Send a message via Skype™ to xalien95
Quote:
The logo (starts at 0x124 and ends at 0x4A3)
How did you notice it? Thanks for this awesome tutorial!
Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Minimum Characters Per Post: 25



All times are UTC -8. The time now is 12:59 PM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2014 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2014 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.