• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Forum moderator applications are now open! Click here for details.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Research: [General] 5th Generation Pokémon Hacking/Information Consolidation

5,983
Posts
15
Years
I've been hex editing for a short amount of time, and know next to nothing about how to do things properly. I've been looking into editing pokemon moves and what each byte does, how many bytes it takes to describe a move, etc. I've been cross analyzing segments that I think are specific moves, but I don't know where each move starts. Here's such a segment:

Surf: 53 53 48 00 00 00 0A 00 02 5F 64 0F 00 00 00 00 00 00 00 00 00 00 01 01 00 00 04 00 00 00 00 00 00 00 00 00

I am not sure whether or not a move starts with 53 53, but it seems like a trend, and I'm just using it as a starting point to centre all my records around. I've also recorded Psychic, Waterfall, Earthquake, Discharge, Flamethrower, and Cut in this way. I am positive of certain bytes that contain type, effect, power, accuracy, and pp.

The trouble is that I'm new to this business, and don't understand how to improve my efficiency. Hopefully this is a shoutout to everybody that's working on the same thing or has a better understanding of this than I do.

Btw, the attack info is stored at a/0/2/1. This is not completely my work, I didn't know where the attacks were stored until I found out on a certain post after scouring random forums.
 

FlameEntei

Old fan
19
Posts
13
Years
  • Age 37
  • Seen Feb 27, 2013
Anyone figure out how to edit the Wild Pokemon in routes. Or is Drayano the only one who has figured it out?
 

aragornbird

(。◕‿‿◕。)
3,732
Posts
18
Years

~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~

It's actually pretty easy, even for a beginner like me. All you need is a hex editor (I use HxD), a calculator that translates decimal into hex (I use subnet), and an online Pokemon guide that list Pokemon locations (like Serebii or Bulbapedia).
You can use the Wild Pokemon narc in order to do the editing, so extract a/1/2/6 from a B/W ROM using NitroExplorer 2 (a must for any DS Pokemon hacker).

Every location in the game has a certain Pokemon appearing at a certain level. For instance, Lv. 15 Venipede only appear in Pinwheel Forest. Most hex editors have a search function, so to jump to a certain area, locate a specific Pokemon at a specific level by translating its National Dex number and level into hex using your hex-to-decimal calculator.

Venipede is #543, which is 21F in hex. Now bytes in a hex editor always appear in multiples of two, so 02 1F is the same thing as 21F. But Pokemon games take the last two digits and put them in front of the first two. So the game recognizes Venipede as 1F 02.
Level is the same thing. The number 15 is F in hex, which is the same thing as 0F. So searching for "1F 02 0F" will take you to Lv. 15 Venipede's location and ultimately, the location for every Pokemon in Pinwheel Forest.

Now you can replace Pokemon and change the levels by overwriting the bytes that are there with the bytes that represent the Pokemon and/or levels you want.

After that, just save everything, reinsert the narc in the correct place, and test out your changes!

Also, every 4 bytes is a Pokemon entry. The first two bytes is the National Dex number of the Pokemon and the last two are the levels that Pokemon can be found. Venipedes can be found at Level 15 and 16 in Pinwheel Forest so you'll find entries for both 1F 02 0F 0F and 1F 02 10 10 (10 is 16 in hex).

There are several different methods of encountering Pokemon (normal grass, dark grass, shaking grass etc.) Each method has a total of twelve Pokemon entries, even if there is only one or two Pokemon that can be found in that method. Pokemon entries in the beginning of the 12 slots of any encounter method will make them more common than entries near the end. You can see this happening in Chargestone Cave's location, where Joltik's entries occupy a lot of spaces in the beginning and Tynamo's entry occupies only a little space near the end. This makes Joltik far more common than Tynamo.


Anyways, hopefully, that will help more people. Feel free to make a more extensive guide in the Tutorial's section.


And someone PLEASE figure out how to edit B/W trainer sprites. It's easy enough to access them in Crystal Tile 2, but the problem lies in what numbers to input to get the sprites to line up correctly.


~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
 

FlameEntei

Old fan
19
Posts
13
Years
  • Age 37
  • Seen Feb 27, 2013
Ah ok.. now I am at Route 1 Patrat... which is at offset

083CBB44 at
F8 01 02 which is Patrat
FA 01 03 which is Lillipup.

In the Cygnus Editor, it looks like this

F8 01 02 FA 01 03.etc
---------------
Ok sorry I have succeeded adding Pidoves into Route 1. Thanks a lot.

Now has anyone figured out how to edit the title screen for Black and White?
 
Last edited:
3
Posts
13
Years
  • Seen Jan 30, 2013
Any news on how to edit the starter Pokemon? Nothing like Diamond/Pearl/Any other Pokemon game it seems. Been wading through hex for the past week trying to figure it out.
 
Last edited:

FlameEntei

Old fan
19
Posts
13
Years
  • Age 37
  • Seen Feb 27, 2013
Any news on how to edit the starter Pokemon? Nothing like Diamond/Pearl/Any other Pokemon game it seems. Been wading through hex for the past week trying to figure it out.

It seems that there is no way to do that.

For Now I think we can just edit the Wild pokemon data to include the starters. In the Anime, we remember seeing starter pokemon having sustainable and wild population. Ash ketchum's pokemon are starters but they were caught "wild"
 
Last edited:
228
Posts
13
Years
Has someone found the Black and White Save Structure yet? What bytes represent the player coordinates, the party, empty bytes,...?

EDIT:
I've been hex editing for a short amount of time, and know next to nothing about how to do things properly. I've been looking into editing pokemon moves and what each byte does, how many bytes it takes to describe a move, etc. I've been cross analyzing segments that I think are specific moves, but I don't know where each move starts. Here's such a segment:

Surf: 53 53 48 00 00 00 0A 00 02 5F 64 0F 00 00 00 00 00 00 00 00 00 00 01 01 00 00 04 00 00 00 00 00 00 00 00 00

I am not sure whether or not a move starts with 53 53, but it seems like a trend, and I'm just using it as a starting point to centre all my records around. I've also recorded Psychic, Waterfall, Earthquake, Discharge, Flamethrower, and Cut in this way. I am positive of certain bytes that contain type, effect, power, accuracy, and pp.

The trouble is that I'm new to this business, and don't understand how to improve my efficiency. Hopefully this is a shoutout to everybody that's working on the same thing or has a better understanding of this than I do.

Btw, the attack info is stored at a/0/2/1. This is not completely my work, I didn't know where the attacks were stored until I found out on a certain post after scouring random forums.

I did a little research on Surf (even though my hex editor couldn't find it in a/0/2/1):
Surf: 53 53 48 00 00 00 0A 00 02 5F 64 0F 00 00 00 00 00 00 00 00 00 00 01 01 00 00 04 00 00 00 00 00 00 00 00 00
All parts I found are highlighted in red.
5F in decimal is 95, Surf's base power.
64 in decimal is 100, Surf's accuracy.
0F in decimal is 15, Surf's PP.
I'm not sure about '04' but if I'm right, it represents the type of the move.

EDIT2: By the way, if I'm right, then moves end with 5353, they don't start with it.
 
Last edited:
35
Posts
12
Years
  • Seen Jan 13, 2012
Over at GBAttempt they have a 5th gen YAPE of sorts, it edits Type, Abilities, Base Stats, and the Ratios (gender, catch etc). But it doesn't have level up move changing yet unfortunately. Though I know it works, I changed Maractus to have Steel Thorns as a possible ability and it worked.
 
52
Posts
16
Years
I made ​​a basic list of the structure of Pokémon Black:
Spoiler:
 
33
Posts
13
Years
Maybe like this ? :
Spoiler:


nb: both are for pokemon black and white.
 
Last edited:
50,218
Posts
13
Years

~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~

It's actually pretty easy, even for a beginner like me. All you need is a hex editor (I use HxD), a calculator that translates decimal into hex (I use subnet), and an online Pokemon guide that list Pokemon locations (like Serebii or Bulbapedia).
You can use the Wild Pokemon narc in order to do the editing, so extract a/1/2/6 from a B/W ROM using NitroExplorer 2 (a must for any DS Pokemon hacker).

Every location in the game has a certain Pokemon appearing at a certain level. For instance, Lv. 15 Venipede only appear in Pinwheel Forest. Most hex editors have a search function, so to jump to a certain area, locate a specific Pokemon at a specific level by translating its National Dex number and level into hex using your hex-to-decimal calculator.

Venipede is #543, which is 21F in hex. Now bytes in a hex editor always appear in multiples of two, so 02 1F is the same thing as 21F. But Pokemon games take the last two digits and put them in front of the first two. So the game recognizes Venipede as 1F 02.
Level is the same thing. The number 15 is F in hex, which is the same thing as 0F. So searching for "1F 02 0F" will take you to Lv. 15 Venipede's location and ultimately, the location for every Pokemon in Pinwheel Forest.

Now you can replace Pokemon and change the levels by overwriting the bytes that are there with the bytes that represent the Pokemon and/or levels you want.

After that, just save everything, reinsert the narc in the correct place, and test out your changes!

Also, every 4 bytes is a Pokemon entry. The first two bytes is the National Dex number of the Pokemon and the last two are the levels that Pokemon can be found. Venipedes can be found at Level 15 and 16 in Pinwheel Forest so you'll find entries for both 1F 02 0F 0F and 1F 02 10 10 (10 is 16 in hex).

There are several different methods of encountering Pokemon (normal grass, dark grass, shaking grass etc.) Each method has a total of twelve Pokemon entries, even if there is only one or two Pokemon that can be found in that method. Pokemon entries in the beginning of the 12 slots of any encounter method will make them more common than entries near the end. You can see this happening in Chargestone Cave's location, where Joltik's entries occupy a lot of spaces in the beginning and Tynamo's entry occupies only a little space near the end. This makes Joltik far more common than Tynamo.


Anyways, hopefully, that will help more people. Feel free to make a more extensive guide in the Tutorial's section.


And someone PLEASE figure out how to edit B/W trainer sprites. It's easy enough to access them in Crystal Tile 2, but the problem lies in what numbers to input to get the sprites to line up correctly.


~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~

Can you please show me the hex codes for all Pokemon (like as you said, Venipede is 21F). Thanks cos I want to get started!
 
23
Posts
13
Years
  • Seen May 30, 2011
Wonder when anyone will crack map data.

Seriously, map data has to be cracked SOMEhow...
 
33
Posts
13
Years
Map is hard to understand because is script to control a pieces sprite to bring a some event is a route/town/ect, well is just fake maybe someone fast to crack the map
 
12
Posts
14
Years
  • Seen Nov 19, 2011
hello!
so,I made some vocaloids overwords,theres a way to use em on the game?
thanks :)
 
7
Posts
12
Years
  • Seen Apr 15, 2012
how to edit ability mechanics?

Title says it all. The narc for moves is a/0/2/1 but what about abilities?
 

Kaphotics

♥ Quick Claw Guillotine ♥
22
Posts
12
Years
  • Seen Oct 29, 2018
Recently I've been figuring out how the game does scripts and I've gotten a bunch of good results.

a/0/5/7 contains the script files for a given map.



The main limitation is knowing what each command does and how many parameters it has. Scripting in BW is really easy and editing the script file for the map is really nice due to the narc filesystem.

Code:
some script commands with some sense so far

0000 nop
0001 nop1
0002 --
000C XXXX XXXX
0012 xxxx
001A xxxx
001E XXXXXXXX
002F -
0030 - 					doinstant
0032 -					waitbuttonthen
003C 0400 xxxx yyyy zzzz aaaa		textA
003D 0400 xxxx yyyy zzzz		textB
003E -
003F -
0046 xx xx
0049					textC
004C xx
0057 xx XXXX				Text Variables
0085 xxxx xxxx zzzz			start 1v# battle with ?logic?
0086 yyyy xxxx xxxx zzzz		start 2v# battle with ?logic?
0098 xxxx				PlayBGM
00BE mmmm xxxx yyyy ffff		f2b mapchange nosound
00BF mmmm xxxx yyyy ffff		spinwarp
00C0					soundless variable door warp
00C1 					sandpit
00C2 mmmm xxxx yyyy ffff		f2b mapchange with sound
00C3					goto union
00C4					instant change, bad
00C5					play surf anim
00C6					gooey push
00C7					play cut anim
0178 dddd ll				wildencounter dex level

I've been posting this stuff and more over at ProjectPokemon; can't directly link due to my postcount limit here...
projectpokemon(dot)org/forums/showthread.php?23566
 

Platinum Lucario

The Legendary Master of [color=#D8D48C]Light[/colo
1,607
Posts
16
Years
So just looking at B2W2 in Tinke, I see that the title screen theme is streamed.
Hm... thought so. Though there is something I've actually done with Black 2, which is changing the "Push Start Button" graphics into the official English "Press Start" by simply changing the 6-5.NCGR.l (file5 in Tinke) and 6-6.NCER (file6 in Tinke) with the ones from the official English of the first Black/White. The graphics for Black 2 and White 2 are in a/0/2/6, same location as the first Black/White.

And guess what? Success! Take a look:
bv2pressstart.png
 
4
Posts
10
Years
  • Age 34
  • Seen May 1, 2015
Hi
Where I can find all Overworld Sprite Codes of Pokemon? I am using Kazo's NPCE tool to change sprites. I can find some sprites by checking the Overworld sprites of Pokemon that are in the game, but I can't find Haxorus's sprite and Emolga's sprite code :C

To check Haxorus's sprite code I need to know what is the Overworld narc and Script narc for Nature Preserve, but I don't have 100% Save game and cant't check this :C

Have someone the Pokemon Black 2/ White 2 Save game with Nature Preserve available???
 
Back
Top