ROM Hack Pokemon Black/White Hacking Documentation

  • Thread starter Thread starter Andrecito77
  • Start date Start date
  • Views Views 84,477
  • Replies Replies 153
  • Likes Likes 1

Andrecito77

Well-Known Member
Member
Joined
Aug 31, 2009
Messages
115
Reaction score
1
Trophies
1
Location
Madison Wisconsin USA
Website
Visit site
XP
83
Country
United States
Hello! My name is Andrecito77 and I am going to try to help you guys by make a big resource for all hackers. Below are all of our findings. Sometimes I won't post a finding in this post because only a select few will find it of interest, but if you look through the replies you will find them.

BTW: I tried it on DSTWO with 1.5 firmware and it works with EXP gain and all. WITHOUT the need for a patch.

MODS CAN THIS THREAD BE STICKIED?

Here is what we know:

NOTE: All Items selected in [] and colored yellow are unsure. All items with * and green coloring means that that has been hacked. I will also try to link to tuts if there are any.


a/0/
a/0/0/2 IS THE SCRIPT!!!!!
a/0/0/4 Pokemon Sprites
a/0/0/7 In-menu Pokemon sprites
a/0/0/8 In-menu Pokemon sprites
a/0/1/1 Contains the images for the fight menu/Model data for battle stages]
a/0/1/4 *Are the overworld BTX files
a/0/2/5 Item sprites
a/0/3/0 [Touchscreen status]
a/0/3/1 Player sprites
a/0/3/2 NPC sprites
a/0/4/1 Trainer sprites in combat
a/0/5/2 Pokemon Sprites
a/0/5/5 Pokemon types / movement type
a/0/8/3 [Pokemon status menu]
a/0/8/5 World map


a/1/
a/1/1/8 Keyboard
a/1/2/0 Wifi club screen
a/1/2/4 Pokemon types / movement type
a/1/3/1 [Character Artworks]
a/1/3/7 Battle Recorder
a/1/3/9 DSi / DSi XL / LL Menu Screen
a/1/4/3 Game Sync Screens
a/1/5/1 Season Screens (Spring, Summer, Autumn, Winter)
a/1/6/4 Copyright Screen
a/1/7/0 Player and his friend's Pictures
a/1/7/1 CGear
a/1/7/3 Balloons
a/1/8/4 Trainer Sprites
a/1/8/7 Mysterious Person 'N'
a/1/9/7 Wifi and Wifi related models (example, world globe)


a/2/
a/2/0/1 [Certificate]
a/2/0/2 [Certificate]
a/2/0/5 [Starter's pictures/3D Models]
a/2/0/6 Battle Subway Map
a/2/0/7 Has model data (same as below)
a/2/1/0
a/2/1/7
a/2/1/8
a/2/1/9
a/2/2/0 ['The End' Screen/3D Models]
a/2/2/2
a/2/2/8
a/2/2/9
a/2/3/0 Has MDL0 files (3d models)
a/2/4/4 Some Text (not the Script)

Help me updating this by posting in the comments any findings.

UPDATE 1: Added Soniyx's findings and also reorganized the other data. Also made the opening better and asked for sticky.
UPDATE 2: Added winwakrs veekun.com data, added the needed script data from atoxic, also added mvit's model data. If any of this data is wrong please post a nice comment.
 
  • Like
Reactions: 1 person
EDIT: Some intro sprites located in 1/7/0

0/0/7(that or 0/0/8) is the in-menu Pokemon sprites.

EDIT: Yeah, 0/0/7. In PPRE, load up 0/0/7 in the image editor and set size to 32x64 and set the format to 8x8 tiled, and you can see them.
I know absolutely nothing about ROM hacking, I don't even know how I managed to figure out this much. So, where would the colors be stored? They're all in black and white.

cccd.gif



EDIT: I opened it up again, and now it's colored:
oddcolorednow.png


clouddudefire.gif

clouddudeother.gif

clouddudeother2.gif

I think some of the colors are wrong. I really have no clue what I'm doing.

EDIT: Hmmm, when I select item0, that sets the palette for all the other items, but some colors are off and there doesn't seem to be another palette item.

whitedude.gif

blackdude.gif
 
windwakr said:
0/0/7(that or 0/0/8) is the in-menu Pokemon sprites.

EDIT: Yeah, 0/0/7. In PPRE, load up 0/0/7 in the image editor and set size to 32x64 and set the format to 8x8 tiled, and you can see them.
I know absolutely nothing about ROM hacking, I don't even know how I managed to figure out this much. So, where would the colors be stored? They're all in black and white.

cccd.gif

Ahhh the irony
 
windwakr said:
EDIT: Some intro sprites located in 1/7/0

0/0/7(that or 0/0/8) is the in-menu Pokemon sprites.

EDIT: Yeah, 0/0/7. In PPRE, load up 0/0/7 in the image editor and set size to 32x64 and set the format to 8x8 tiled, and you can see them.
I know absolutely nothing about ROM hacking, I don't even know how I managed to figure out this much. So, where would the colors be stored? They're all in black and white.

cccd.gif



EDIT: I opened it up again, and now it's colored:
oddcolorednow.png


clouddudefire.gif

clouddudeother.gif

clouddudeother2.gif

I think some of the colors are wrong. I really have no clue what I'm doing.

EDIT: Hmmm, when I select item0, that sets the palette for all the other items, but some colors are off and there doesn't seem to be another palette item.

whitedude.gif

blackdude.gif


I'm using PPRE Beta 14 & I'm not sure how to load up /0/0/7 (I have all of the correct directories extracted btw). Is there a guide somewhere online for this?
 
celebi23 said:
I'm using PPRE Beta 14 & I'm not sure how to load up /0/0/7 (I have all of the correct directories extracted btw). Is there a guide somewhere online for this?

I was using 0.04a(came with some ROM hacking pack), I'll check out the latest version and see what you need to do. And no, there's no guide, I was just screwing around and stumbled upon this.

EDIT: Yeah, the latest version won't work.



The PPRE I'm using came in here:
http://rghost.net/520920

Get that, then follow my direction in my other post.
 
Can you PM me once you discover how to access the text? I'm too lazy to search for it myself.

EDIT: Actually, I'm not that lazy. I looked through all of the NARCs, but I don't think I found the text.
 
windwakr said:
celebi23 said:
I'm using PPRE Beta 14 & I'm not sure how to load up /0/0/7 (I have all of the correct directories extracted btw). Is there a guide somewhere online for this?

I was using 0.04a(came with some ROM hacking pack), I'll check out the latest version and see what you need to do. And no, there's no guide, I was just screwing around and stumbled upon this.

EDIT: Yeah, the latest version won't work.



The PPRE I'm using came in here:
http://rghost.net/520920

Get that, then follow my direction in my other post.

Alright. Thanks
smile.gif
It's working for me now
 
Here are some additional informations about all files I could find:

a/0/
a/0/1/1 contains the images for the fight menu
a/0/2/5 item sprites
a/0/3/0 touchscreen status?
a/0/3/1 player sprites
a/0/32 npc sprites
a/0/4/1 trainer sprites in combat
a/0/5/5 Pokemon types / movement type
a/0/8/3 Pokemon status menu?
a/0/8/5 world map

a/1/
a/1/1/8 keyboard
a/1/2/0 wifi club screen
a/1/2/4 Pokemon types / movement type
a/1/3/1 Character Artworks?
a/1/3/7 Battle Recorder
a/1/3/9 DSi / DSi XL / LL Menu Screen
a/1/4/3 Game Sync Screens
a/1/5/1 Season Screens (Spring, Summer, Autumn, Winter)
a/1/6/4 Copyright Screen
a/1/7/0 Player and his friend's Pictures
a/1/7/1 CGear
a/1/7/3 Balloons
a/1/8/4 Trainer Sprites
a/1/8/7 Mysterious Person 'N'

a/2/
a/2/0/1 Certificate?
a/2/0/2 Certificate?
a/2/0/5 Starter's pictures
a/2/0/6 Battle Subway Map
a/2/2/0 'The End' Screen
a/2/4/4 Some Text (not the Script)

Please correct me if there are failures. I didn't played the game yet because of the already fixed AP protection.
 
Here are the representations of the text in the memory and the save file. I'm not sure if it's like this in the script also, but it's worth a try. Also try flipping them around if they're different endians (0xdd30 -> 0x30dd)

Oh, and if you want to see for yourself, just search for "strbuf" in the memory dump. I believe the address was 022D6BB8 on Black. You can also view your name while you type it in at 0224F890

Latin:
A-Z = 21FF - 3AFF
a-z = 41FF - 54FF

Hiragana (too lazy to type out kana):
a = 4230
i = 4430
u = 4630
e = 4830
o = 4A30

ka = 4B30
ga = 4C30
ki = 4D30
gi = 4E30
ku = 4F30
gu= 5030
ke = 5130
ge = 5230
ko = 5330
go = 5430

sa = 5530
za = 5630
shi = 5730
ji (shi) = 5830
su = 5930
zu = 5A30
se = 5B30
ze = 5C30
so = 5D30
zo = 5E30

ta = 5F30
da = 6030
chi = 6130
ji (chi) = 6230
small tsu = 6330
tsu = 6430
dzu = 6530
te = 6630
de = 6730
to = 6830
do = 6930

na = 6A30
ni = 6B30
nu = 6C30
ne = 6D30
no = 6E30

ha = 6F30
ba = 7030
pa = 7130
hi = 7230
bi = 7330
pi = 7430
fu = 7530
bu = 7630
pu = 7730
he = 7830
be = 7930
pe = 7A30
ho = 7B30
bo = 7C30
po = 7D30

ma = 7E30
mi = 7F30
mu = 8030
me = 8130
mo = 8230

ya = 8330
small ya = 8430
yu = 8530
small yu = 8630
yo = 8730
small yo = 8830

ra = 8930
ri = 8A30
ru = 8B30
re = 8C30
ro = 8D30

wa = 8F30
wo = 9230
n = 9330

Katakana: Just add 60 to the first byte. For example, po becomes 7D + 60 = DD.

Punctuation and Symbols:
space = 0030
newline = FEFF
dot period = 0EFF
open circle period = 0230
comma = 0CFF
colon = 1AFF
semicolon = 1BFF
tilde = 5EFF
ellipsis = 2620

Prompt the dialog to pause before the player presses A: 00F000BE00 or 00F001BE00, I don't know the difference

Kanji are a mixed bag. You can probably get some of them from the text. For example, 人 = BA4E
 
atoxic said:
Here are the representations of the text in the memory and the save file. I'm not sure if it's like this in the script also, but it's worth a try. Also try flipping them around if they're different endians (0xdd30 -> 0x30dd)
ETC...

I won't put this in my main post, because firstly it will take a lot of time to format this into an easy reference guide and its also kinda long. If you don't mind, make a PDF and upload it. I will link it (If mods approve) in my first post. Thanks for doing so much though!
 
Ah, thanks for these useful pieces of information.

I'm just wondering though, the default size in the image editor is 16x128. Whenever I change it to 32x64 and switch a picture, it jumps back to 16x128 again. Is there any way to lock it at 32x64?
 
atoxic said:
Here are the representations of the text in the memory and the save file. I'm not sure if it's like this in the script also, but it's worth a try. Also try flipping them around if they're different endians (0xdd30 -> 0x30dd)

Latin:
A-Z = 21FF - 3AFF
a-z = 41FF - 54FF

Hiragana (too lazy to type out kana):
a ? 4230
i ? 4430
u ? 4630
e ? 4830
o ? 4A30
...
Katakana: Just add 60 to the first byte. For example, po becomes 7D + 60 = DD.

Punctuation and Symbols:
space = 0030
newline = FEFF
dot period = 0EFF
open circle period = 0230
comma = 0CFF
colon = 1AFF
semicolon = 1BFF
tilde = 5EFF
ellipsis = 2620

Prompt the dialog to pause before the player presses A: 00F000BE00 or 00F001BE00, I don't know the difference

Kanji are a mixed bag. You can probably get some of them from the text. For example, ? = BA4E
This is how they are located in the Unicode table, shown in my example (taken from the menu at the beginning, last entry):

CODE ? ? ? ? ? ?
ma i ku te su to
Unicode: 30de 30a4 30af 30c6 30b9 30c8
in game: de30 a430 af30 c630 b930 c830

The old table from thenewpoketext has another allocation:
CODE ? ? ? ? ? ?
ma i ku te su to
008F 0055 0060 0077 006A 0079

Maybe this was kept, but I think, because of the new kanji's, they built a new pattern.
 
I'm completely new to hacking and stuff, but it is possible to extract the extensionless files in the 0 - 9 folders of the ROM with NDSeditor

I hope someone can put that to use

BTW it outputs .nclr and .ncgr files from 0/0/5 file
 
Soniyx said:
This is how they are located in the Unicode table, shown in my example (taken from the menu at the beginning, last entry):

CODE ? ? ? ? ? ?
ma i ku te su to
Unicode: 30de 30a4 30af 30c6 30b9 30c8
in game: de30 a430 af30 c630 b930 c830

The old table from thenewpoketext has another allocation:
CODE ? ? ? ? ? ?
ma i ku te su to
008F 0055 0060 0077 006A 0079

Maybe this was kept, but I think, because of the new kanji's, they built a new pattern.

Oh cool, I just checked it now, all of the kanjis match Unicode. I guess there's no need for a PDF file, just use a Unicode converter!
http://people.w3.org/rishida/tools/conversion/

Oh, and here's a Hiragana table that has the code for quick reference:
http://www.i18nguy.com/unicode/hiragana.html

Remember to flip the bytes (? = BA4E in memory = 4EBA in Unicode)

The strange part is that the Latin characters don't match, but whatever, that's easy to memorize.

QUOTE(killnnllik @ Sep 18 2010, 10:26 AM) I'm completely new to hacking and stuff, but it is possible to extract the extensionless files in the 0 - 9 folders of the ROM with NDSeditor

I hope someone can put that to use

BTW it outputs .nclr and .ncgr files from 0/0/5 file

All of the extensionless files are NARC files, so you can rename and open them as such.

So now that a few of the have been discovered as translatable sprites (status, types), it's time to start cracking!
 
atoxic said:
So now that a few of the have been discovered as translatable sprites (status, types), it's time to start cracking!

Could you please PM me some info how that works, so that I can be of help for the community, 'cause I am new and all
wub.gif
 
killnnllik said:
atoxic said:
So now that a few of the have been discovered as translatable sprites (status, types), it's time to start cracking!

Could you please PM me some info how that works, so that I can be of help for the community, 'cause I am new and all
wub.gif
Download this:
http://rghost.net/520920
And use PPREb004a or Tahaxan
It's hard to jump into, it's going to be pure HEX editing. It will make little sense since it's HEX, and it's translates to Japanese text.
 
this will be awesome if you can find how to change the names of pokemon and the moves
biggrin.gif

That way we could change the pokemon to their romanji names, and the moves to english
 

Site & Scene News

Popular threads in this forum