• 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?".
  • 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
    • 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
    • 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
    • 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
    13
    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
    14
    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
    14
    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
    13
    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
    • 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