evandixon

Administrator
  • Content count

    4042
  • Joined

  • Last visited

  • Days Won

    24

evandixon last won the day on October 14

evandixon had the most liked content!

Community Reputation

407 Excellent

About evandixon

  • Rank
    "Second best admin ever"
  • Birthday 08/02/95

Recent Profile Visitors

50193 profile views
  1. X/Y File System

    Authors: User:Kaphotics, User:magical, User:Zhorken a/0/0/0: bits of Pokémon status interface? strings seem to indicate status icons, type icons, damage class icons,... a/0/0/1: 3 × CGFX a/0/0/2: pokelist (more bits of interface?), camera & lighting CGFX a/0/0/3: substitute texture (+model?) a/0/0/4: moooore bits of interface? a/0/0/5: battle interface? status/type icons a/0/0/6: species related binary file a/0/0/7: pokemon models a/0/0/8: map fade animation a/0/0/9: 20 BCH (+1 dummy) “tuki(h)(0-9)”, 3 binary a/0/1/0: child menu (gray) a/0/1/1: cute menu (orangered) a/0/1/2: encounters (other map data?) zonedata in [360.0] * encounters - https://db.tt/s8DSBBnz * location names - http://pastebin.com/5nUR9xpU (@0x1C zd, txt file 72) a/0/1/3: map models a/0/1/4: config UI a/0/1/5: bclims/an - berries “nuts_pile”, balloon, background a/0/1/6: amie minigame yarns, puffs & UI a/0/1/7: pokepuff UI a/0/1/8: camera UI a/0/1/9: namechange/input UI a/0/2/0: alphabetical/phonetic sorting logic binaries? a/0/2/1: MM BCH (overworld entity models?) a/0/2/2: 269 * 24byte, 1*136byte (16 entries, 8bp?) a/0/2/3: 78 * (4byte header count, 0x50 entry) a/0/2/4: 380 BM BCH map objects (fountain, chandelier) a/0/2/5: 144 * (4byte header count, 100byte entry) a/0/2/6: bottom screen UI (PSS/Amie bg, Pokemon/Bag Circulars) a/0/2/7: PSS specific UI (dummy trainers, birthday, icons) a/0/2/8: reaction faces, amie buttons UI a/0/2/9: super training UI a/0/3/0: super training bags, enemy portraits a/0/3/1: 59 * (4byte length) a/0/3/2: cursor & hover effects (waza oboe) a/0/3/3: 1779 × CGFX - battle effect graphics? a/0/3/4: pokeball model a/0/3/5: vs trainer plates & battle fade gfx a/0/3/6: 904 × SESD a/0/3/7: 16 × CGFX emitted models (exclamation, heart) a/0/3/8: 785 * 20 bytes a/0/3/9: 178 * 16 bytes a/0/4/0: Trainer Pokemon a/0/4/1: 1030 * varied GR a/0/4/2: 227 * varied MM a/0/4/3: amie face a/0/4/4: amie hand a/0/4/5: pss enemy/self connection a/0/4/6: pss interaction option buttons a/0/4/7: pss lower team bclan a/0/4/8: pss interfare(?) redundant stuff a/0/4/9: pss yesno a/0/5/0: pss msg a/0/5/1: pss npc & icon folder a/0/5/2: pss select effects a/0/5/3: pss checklist a/0/5/4: pss object select a/0/5/5: pss lower window anim a/0/5/6: pss menu sprites a/0/5/7: pss config a/0/5/8: pss selectmenu a/0/5/9: pss battle lower a/0/6/0: 1 binary a/0/6/1: 39 binary * various (floating point numbers?) a/0/6/2: Weather Effects ~ 9 * WE CGFX/BCH a/0/6/3: bag sprites a/0/6/4: salon 8 * CGFX a/0/6/5: 2 * CGFX ~ kujira_CullingShader a/0/6/6: Lumiose subMap a/0/6/7: pss colosseum a/0/6/8: 1 binary (4 byte entries?) a/0/6/9: town map UI a/0/7/0: title language UI a/0/7/1: report (last on / off) a/0/7/[2-9]: text (ja-kana, ja-kanji, en, fr, it, de, es, ko) a/0/8/[0-7]: script text a/0/8/8: Clothing Mannequin model (612 bch), 19 binary a/0/8/9: Player Trainer models a/0/9/0: ??? ← as about everything? (signed int tables? 1091) a/0/9/1: Apparel animation/UI a/0/9/2: TM BCH for gym04 a/0/9/3: pokemon icons (945, 40×30) (montage) a/0/9/4: item icons (579, 30×30) (montage) a/0/9/5: move category sprites a/0/9/6: bordered message boxes (?) a/0/9/7: held item sprite, xp/hp fillers a/0/9/8: pkmdata summary view sprites (pkrscure, penta, marks) a/0/9/9: time spinner a/1/0/0: cursor a/1/0/1: cries (3751×CSEQ + 997×CWAR) a/1/0/2: 160 CGFX (okashi/Candy) a/1/0/3: 2 CGFX (lighting?), 1 BIN (22byte entries, 307 total) a/1/0/4: box UI (backgrounds,etc) a/1/0/5: 24 CGFX pokeballs a/1/0/6: pokeball models a/1/0/7: 1 BIN (2049 bytes) a/1/0/8: TM CGFX (‘jump out’ tobidashi) a/1/0/9: 4 CGFX, 5 BCH, 1 darc (pokeselect) a/1/1/0: grass gym ™ a/1/1/1: shop UI a/1/1/2: 1 bin, PSS spritebuilding a/1/1/3: badge case a/1/1/4: pokemon view UI a/1/1/5: intro CGFX a/1/1/6: encount tile/panels (pc, 30 each) a/1/1/7: pc buttons a/1/1/8: trade UI a/1/1/9: super training UI a/1/2/0: super training minigame stuff with 85 BCH, 1 CGFX a/1/2/1: 47 * 12 bytes a/1/2/2: 36 * (header count @0x4, 0xC entry length) a/1/2/3: 48 * 32 bytes a/1/2/4: 80 * 236 bytes a/1/2/5: 80 * 216 bytes a/1/2/6: 500 * 36 bytes (end is unused) a/1/2/7: 500 * 28 bytes (end is unused) a/1/2/8: 63 * 120 “” a/1/2/9: 50 * 120 “” a/1/3/0: 80 * 20 a/1/3/1: 100 * 244 a/1/3/2: 58 * 244 a/1/3/3: 80 * 64 a/1/3/4: 80 * 80 a/1/3/5: 109 CGFX (effects?) a/1/3/6: little bit of data for each pokemon form a/1/3/7: evolution (shinka) CGFX & UI a/1/3/8: pokedex data sprites a/1/3/9: 2 TM (no ext?) a/1/4/0: Team Flare NPC Models a/1/4/1: common menu window a/1/4/2: 2 binary (index tables?) a/1/4/3: 28 CGFX cameras + darc video related a/1/4/4: 44 CGFX (mega transformation animations?) a/1/4/5: battle backgrounds? a/1/4/6: 26 BCH, 4 CGFX, 105 BG BCH a/1/4/7: 1 TM (rope/door) a/1/4/8: 1 TM BCH (fire) a/1/4/9: 170 binaries a/1/5/0: GTS Background & Windows a/1/5/1: 44 * various a/1/5/2: holo caster streetpass pokeball jpeg (with exif data!), debug camera a/1/5/3: assist power UI related a/1/5/4: box search UI a/1/5/5: 4 * SESD a/1/5/6: TM berrytree a/1/5/7: gym6 cgfx/anim a/1/5/8: customize amie a/1/5/9: amie bg 224 bclim (misc backgrounds/items) a/1/6/0: pokepuff sprites a/1/6/1: benri/handy button a/1/6/2: remembering move (waza omoidashi) UI a/1/6/3: finger pointing down icon a/1/6/4: pokeride TM CGFX (riding rhydon) a/1/6/5: title screens, map models a/1/6/6: list menu window a/1/6/7: 1 TM CGFX (skeletal wing? haze) a/1/6/8: 1 TM CGFX a/1/6/9: 6 × CGFX a/1/7/0: wonder UI a/1/7/1: 6 × CGFX a/1/7/2: gamesync a/1/7/3: 26 BCH a/1/7/4: 1 TM BCH gym08 a/1/7/5: 1 TM CGFX a/1/7/6: text dialog windows a/1/7/7: 1 TM CGFX a/1/7/8: trainer sprites a/1/7/9: battlematch UI a/1/8/0: 66 * SESD a/1/8/1: TM cut tree animation CGFX a/1/8/2: TM rock smash(?) animation CGFX a/1/8/3: TM rock strength(?) animation CGFX a/1/8/4: TM dig animation (anahoru) CGFX a/1/8/5: 4 CFNT fonts a/1/8/6: Friend entry UI a/1/8/7: TM water animation CGFX a/1/8/8: 23 MM a/1/8/9: 38 * 604 bytes a/1/9/0: battle video save a/1/9/1: TM CGFX of a red/blue switch & belt a/1/9/2: a handful of grammar bits in different languages a/1/9/3: traial UI/bg a/1/9/4: 15 * various bin (16bit indexes) a/1/9/5: TM BCH tr0906+ trainer models? a/1/9/6: 2 BCH kujira_CullingShader a/1/9/7: 1 BIN; 2A entries @ 0x54/84d ea a/1/9/8: communications wait a/1/9/9: 22 TGA images (TRUEVISION-XFILE) a/2/0/0: friend safari UI a/2/0/1: camera CGFX a/2/0/{3,5,7}: Normal Maison, Super Maison, and Inverse Battle PKM a/2/0/{4,6}: Normal Maison & Super Maison Trainer choices a/2/0/8: memory clear UI a/2/0/9: homenix UI (no pressing home?) a/2/1/0: com_towerin BCH a/2/1/1: com_tower BCH (buildings)? a/2/1/2: move stats a/2/1/3: egg moves a/2/1/4: level-up moves a/2/1/5: evolution data a/2/1/6: mega "evolution" map a/2/1/7: 8 * 404 bytes (101 entries) a/2/1/8: pokemon stats (personal) a/2/1/9: baby map a/2/2/0: item stats a/2/2/1: 718 byte binary (int vals?) a/2/2/2: battle video UI a/2/2/3: syoujyou (diploma/certificate) dex complete a/2/2/4: dendoiri (certificate) BCH model a/2/2/5: language selection a/2/2/6: number input lower a/2/2/7: ‘picture watch’ a/2/2/8: eshop item present a/2/2/9: battle institute certificate a/2/3/0: TM BCH glittering grass a/2/3/1: miracle wonder trade UI a/2/3/2: vs battle UI (score) a/2/3/3: TM BCH smoke/scaffolding? a/2/3/4: battle house UI a/2/3/5: TM BCH gym05 floor a/2/3/6: TM CGFX lighting (pichu heart/star?) a/2/3/7: 6 TM models (face/armsbody) a/2/3/8: TM BCH waterfall splash a/2/3/9: type icons and other stuff a/2/4/0: bclims: “ally_gauge”, “bag_button”, “battle timer”... a/2/4/1: bclims: “big_four_name01” through 04, “big_four_vs”, similar for champion/gym a/2/4/2: vs win/loss images a/2/4/3: bclims: “high_score”, “result_title”, … a/2/4/4: bclims: “clear”, “cleared”, “gameover_c”, “meter_bougyo”, … a/2/4/5: 1 SESD a/2/4/6: live/world online tournament UI a/2/4/7: 13 CGFX (flower,notes) a/2/4/8: TM BCH fishing float bite a/2/4/9: “The End” screen a/2/5/0: two short files; all bytes 0x06 or below a/2/5/1: odd, short file a/2/5/2: bclans: “tutorial_active_lower”, “tutorial_lower_cansel”, … a/2/5/3: bclims: amie and super training overview pics (tutorial?) a/2/5/4: battle party poke select UI a/2/5/5: 7 bins, 24byte entries (header u32 entry ct) a/2/5/6: SMDH game icon (large/small) & 2 bin a/2/5/7: battle video UI (local tournament?) -- lacking delete a/2/5/8: staffroll credits a/2/5/9: 36200byte & 400byte bins a/2/6/0: stereo frame ani a/2/6/1: game over ani a/2/6/2: battle fade-in effects (flare rock fly etc) a/2/6/3: game sync screenshots a/2/6/4: pokedex captions / search filter UI a/2/6/5: the end “Fin” a/2/6/6: BCH CGFX type backgrounds (color & a sun) (hall of fame?) a/2/6/7: fatal error screen a/2/6/8: mode01 mode02 mode04 bclim a/2/6/9: congratulations a/2/7/0: fade animation Original link: http://pastebin.com/QNCz7Avh
  2. Wi-Fi Protocol Structure

    Generation IV and V Pokemon games communicate with Nintendo's Wi-Fi servers for various parts of the games. Nintendo Servers Nintendo's Wi-Fi servers run Microsoft's IIS and use ASP.NET as the primary language. This data can be confirmed based on the headers sent to the Nintendo DS as well as through error messages sent via browser. The main hostnames of each of these servers are subdomains of nintendowifi.net. conntest.nintendowifi.net The connection test servers are the simplest servers. They contain a single webpage which is retrieved to check that Wi-Fi is working properly. The page can be reached with normal HTTP URL retrieval. This address refers to two servers (192.195.204.216; 69.25.139.140) whose DNS records cycle every 30 seconds to keep the load balanced. gamestats2.gs.nintendowifi.net Protocol specific information about this server can be found in GTS protocol. This gamestats server is used for the GTS in both Generation IV and V primarily. This address refers to a single server (69.10.30.234) whose DNS record updates every 300 seconds. Directory Map /pokemondpds common setProfile.asp worldexchange delete.asp info.asp post.asp post_finish.asp result.asp search.asp
  3. Trash Bytes

    An Introduction to Trash Bytes You will need a basic understanding of the hexadecimal number system and hexadecimal data of files before reading this article Trash bytes are data stored in a .pkm file. They serve no purpose at all ingame or for storing information. Their only use is for hack checking. Three types of pokemon have trash bytes. These are: Hatched Pokemon; Mystery Gift Pokemon; and Pal Park Pokemon. Each has different types of Trash Bytes and different methods for fixing them. The Pokemon Name trash bytes are stored between the offsets 0x48 and 0x5D. The Original Trainer trash bytes are stored between the offsets 0x68 and 0x77. You will also need to know about Terminators (not a movie reference). These terminators are two bytes in a pkm file within the Trash Byte areas. These bytes tell the game when the Pokemon Name or Original Trainer ends, and the Trash Bytes begin. The terminators are simply "FF FF" within the offsets previously mentioned. Hatched Pokemon The easiest of all trash bytes to correct. If you nickname a hatched pokemon and nickname it back to it's original species name, it will not have a nickname and the trash bytes will be corrected. Mystery Gift Pokemon For Reference: The Pokemon Name trash bytes are stored between the offsets 0x48 and 0x5D. The Original Trainer trash bytes are stored between the offsets 0x68 and 0x77. After the terminator, these Trash Bytes are solid "FF"s. Migrated via Pal Park Migrated to English DP 18 20 0D 02 42 00 00 00 00 00 00 00 48 A1 0C 02 E0 FF 05 00 00 00 <random> <8E - 96> 27 02 <random> <D1 or D2> 26 02 E9 9A 06 02 00 00 Migrated to Italian DP 54 20 0D 02 42 00 00 00 00 00 00 00 84 A1 0C 02 E0 FF 05 00 00 00 <random> <8E - 96> 27 02 <random> <D3 or D4> 26 02 25 9B 06 02 00 00 Migrated to German DP 74 20 0D 02 42 00 00 00 00 00 00 00 A4 A1 0C 02 E0 FF 05 00 00 00 <random> <8E - 96> 27 02 <random> D4 26 02 45 9B 06 02 00 00 Migrated to French DP 74 20 0D 02 42 00 00 00 00 00 00 00 A4 A1 0C 02 E0 FF 05 00 00 00 <random> <8E - 96> 27 02 <random> D5 26 02 45 9B 06 02 00 00 Migrated to Spanish DP 74 20 0D 02 42 00 00 00 00 00 00 00 A4 A1 0C 02 E0 FF 05 00 00 00 <random> <8E - 96> 27 02 <random> <D5 or D6> 26 02 45 9B 06 02 00 00 Migrated to Korean DP 00 00 00 00 42 00 00 00 00 00 00 00 18 77 0C 02 E0 FF 05 00 00 00 <random> <07 - 0B> 28 02 <random> 4B 27 02 B1 9F 06 02 00 00 Migrated to Japanese DP 00 00 00 00 B4 C5 0C 02 E0 FF 7F 02 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00* Yes. Solid 00s. How To Fix Trash Bytes Option 1: Download this zip file, extract it, and drag and drop a pkm file over it. This will automatically correct the Trash Bytes. Option 2: Use the guide below. A Guide To Trash Bytes For Diamond and Pearl 1. Download the latest versions of: Pokesav, HxD (or any other hex editor) and Legal.exe 2. Create a pokémon that needs to be fixed with pokesav (for this tutorial use a Pal-Parked pokémon) into storage. Or download the pokémon I used for this tutorial http://www.mediafire.com/?mgzjjtyttn0 3. Make sure all aspects of the pokémon are legal (excluding trash bytes) 4. Once you have made the pokémon, save it and close pokesav 5. Check it with legal.exe. it should look like http://i335.photobucket.com/albums/m443/damio91/Aron_no_TB.jpg 6. Now, open the pokémon in a hex editor and find the bytes 0x48 through to 0x5D 7. Find the terminator (FF FF) and count how many bytes are after that until you reach 0x5D. If you are using my pokémon there should be 12 bytes 8. Now we will actually do some trash byte fixing. We will make it seem as if it got transferred to an English game. http://db.pokesav.org/main/?q=Trash-Bytes-Guide (other language strings here) Migrated to English DP 18 20 0D 02 42 00 00 00 00 00 00 00 48 A1 0C 02 E0 FF 05 00 00 00 <8E - 96> 27 02 26 02 E9 9A 06 02 00 00 The first string is if it was transferred into slot 1 of Pal-Park The second string is if it was transferred to any of slots 2-6 of Pal-Park We will use the first string to make it seem like we Pal-Parked it to slot 1 9. Count from the end of the first string, back however many bytes we counted before (in my case 12) 10. Now type over the bytes after the terminator with the bytes counted out (the last 12) 11. We have finished with the pokémon name trash bytes and will now move on to OT trash bytes. 12. Look through the bytes 0x68 to 0x77 and find the terminator again (FF FF). 13. Type over the bytes after the terminator with the bytes from 2 rows up (the corresponding bytes are 0x48 to 0x57) 14. Save the changes and check with legal.exe it should look like http://i335.photobucket.com/albums/m443/damio91/Aron_TB_fixed.jpg but don’t close legal.exe. We have to fix the checksum 15. Type over the bytes 0x06 and 0x07 with what legal.exe says for the checksum. Save and close HxD check with legal.exe. It should look like http://i335.photobucket.com/albums/m443/damio91/Aron_Legal.jpg 16. Congratulations! You have made a legal pal-parked pokémon from scratch! Mystery Gift Trash Bytes: Just fill in the trash byte areas (0x48 to 0x5D and 0x68 to 0x77) after the terminators with FF
  4. Trainer Card Signature

    First, the offsets. D/P: 1,536 bytes, starting at 0x00005904 Plat: 1,536 bytes, starting at 0x00005BA8 The signature area is 192 x 64 pixels, for a grand total of 12,288 pixels. This area is divided up into 8x8 groups of pixels. Every 8 bytes of the signature's memory block represents one of these boxes, the first being in the upper left, in the order left-to-right, top-to-bottom (just like reading English). Within each of those 8 byte structures, each byte represents a row within the pixel group, the least significant byte being the topmost row. Each bit within each byte represents a pixel (1 = Black, 0 = White) in that row, with the least significant bit representing the leftmost pixel. So, in order to make an 8x8 group with a one pixel black border, you would use the values: FF 81 81 81 81 81 81 FF. 2 dimensionally represented in binary, this gives you: 11111111 10000001 10000001 10000001 10000001 10000001 10000001 11111111 For a 2 pixel wide stripe down the left side, you use: 03 03 03 03 03 03 03 03 11000000 11000000 11000000 11000000 11000000 11000000 11000000 11000000 It's important to remember that the DS uses whichever Endian (I think it's Little) puts the bits in the reverse order that we read them, with the least significant bits to the left. 192 of these groups are assembled to form the image that makes your signature.
  5. Shiny Pokémon

    Intro This page is concerning shiny pokemon. Information on these rare creatures is scattered about all over the web. I thought that it might be a good idea to have this information located in one place for our users. General Information Shiny Pokemon are Pokemon with a different color scheme then normal ones. They are extremely rare and commonly sought after because of their rarity. Shiny Pokemon have a different color scheme and are different from other shiny Pokemon. A shiny Drifloon would not have the same colors as a shiny Pikachu, for example. A shiny Drifloon is yellow where it would normally be purple, and blue where it would normally be. A shiny pikachu is red instead of yellow. Apart from the coloration, a shiny Pokemon will have a red star and Pokedex number its summary screen. Location There is no location, throughout any of the games, that has a higher rate of encountering shiny Pokemon. This is a commonly asked question among those seeking shiny Pokemon; however, a place like this does not exist. The chances are of finding a shiny Pokemon are consistent and small (the exact chance is 1/8192). Increasing the Odds Through use of the Pokeradar, a trainer can dramatically improve his odds of encountering a shiny Pokemon. This is done by attempting to encounter the same species of Pokemon consecutively, a process often referred to as "chaining." With every Pokemon encountered, the chance of finding a shiny Pokemon rises. Using a Poketch app and the Repel item, trainers can extend the length of their "chain" to forty or more consecutive Pokemon. "Chaining" In-Depth A more specific guide to "chaining" Pokemon: Obtain the Pokeradar from Dawn after completing the Sinnoh-dex. Obtain the Trainer Counter Poketch app from Professor Oak in the Pal Park. Have a large stock of Repels/Super Repels/Max Repels. Go to the route where the desired Pokemon can be found. Use a Repel. Use the Pokeradar and enter a grass patch that moved or flashed. Note whether the patch entered moved or whether it flashed. If the encountered Pokemon is not shiny, defeat it to keep the Pokeradar active. When the Pokeradar goes off again, enter grass of the same type. The best odds of finding consecutive Pokemon lie with patches that are more than four spaces away. Repeat until you have defeated forty Pokemon of the same type. The odds of encountering a shiny Pokemon are now at their highest. Keep reseting the Pokeradar until you see a sparkling patch of grass, which indicates a shiny Pokemon. Types of Patches Basic - These will shake for slightly less than a second. Flashing - These will shake and flash foe slightly less than a second. Sparkling - These always indicate a shiny Pokemon and will sparkle and shake for longer than the Basic and Flashing patches. Shiny Legendary Pokemon Legendary Pokemon can not be "chained" using the Pokeradar. The only way to encounter a shiny Legendary Pokemon is by the original 1/8192 chance. Many trainers save before approaching the Pokemon and reset their games until it appears as a shiny.
  6. Priority

    Move Priority Ever wonder why, despite the massive base speed difference in Pokemon, some Pokemon go first anyway? This has to do with Move Priority. Priority Brackets Moves of a higher Priority bracket always go first against moves of a slower priority bracket. If two Pokemon use a move within the same priority bracket the one with higher speed goes first. Example: If two Pokemon use Roar, the one with higher speed goes first. +7 Using pursuit when your opponent switches ( Is +0 if they do not switch or use Baton pass ), Focus punches charge message appears before switching out. +6 Switching out +5 Helping Hand +4 Snatch and Magic coat +3 Protect, Follow me, Detect, Endure +2 Feint +1 Fake Out, Sucker Punch, Extreme Speed, Bullet punch, Mach punch, Vacuum wave, Ice Shard, Shadow Sneak, Quick attack. =0 Sleep Talk, Me First, Metronome, Mirror move and EVERYTHING ELSE -1 Vital Throw -2 Focus punch -3 Avalanche, Revenge -4 Mirror Coat, Counter -5 Roar, Whirlwind -6 Trick Room Points to take note Moves from a lower priority bracket always go last against moves of a higher priority. Quick claw ( when it activates roughly 1/6 of the time )allows you to go first within a speed bracket. So a =0 move will not out speed a +1 move if quick claw activates, but it will always beat any other =0 move unless the opponent is faster and activates their own quick claw. Think of it as adding +0.5 to the bracket whatever move you used is in. Pursuit is a =0 Priority attack unless the opponent switches, or is faster than you and uses U-turn. ( If they are slower, Pursuit stays at =0 ) Lagging Tail and Full Incense make a move go last, within that speed bracket. If a =0 Move is used, you will always go last against another =0 move. Any moves of a lower priority bracket wills till go last. In the case of Lagging Tail/Full incense against Lagging Tail/Full incense the one with Higher speed goes last. Trick room reverses Speed calculations within a speed bracket, + Priority attacks will still go first, - Priority attacks will still go last. But in the case of same priority brackets ( the majority of attacks are =0 ) Speed is reversed, so slower Pokemon will go before faster ones. ( Essentially 100 speed versus 10 speed means that under normal circumstances the 100 speed Pokemon will go first, but under trick room the 10 speed Pokemon will go first. ) Sleep Talk, Me First, Metronome, Mirror move make whatever move they copy/use/steal =0, so if you metronome or sleep talk a roar it's Priority becomes =0. Sources/Credits All of this has been tested in game by hand, except the [=0... "EVERYTHING ELSE"] which was taken from Smogon's priority list, as I did not have the time to test every move in the game.- Enkidu 09:04, 8 May 2009 (UTC)Enkidu.
  7. X/Y Save Structure

    X/Y Save files are comprised of 4 sections, the latter two storing the contents of the two savegames. The game alternates between the two game saves similar to Generations 3 & 4. Save files are 0x100000 (1MB). The area between sections is either FF or 00, for Cartridges and Digital saves respectively. Single Partition Save File http://3dbrew.org/wiki/Savegames Image Header (0x00000-0x00460) Offset Length Hash Details Description 00000 0x10 0x0: Uses the AES Engine & KeyY AES MAC Header 00100 0x100 0x16C: (SHA256) 0x000-0x12C of active DIFI DISA 00200 0x12C 0x30C: (SHA256) 1st IVFC Hash copied to 0x200 zero array DIFI Blob 1 00330 0x12C 0x43C: (SHA256) 1st IVFC Hash copied to 0x200 zero array DIFI Blob 2 First Partition (0x01000-0x01107) Offset Description 01000 DPFS Partition Save File 1 (0x02000 - 0x6AFFF) (420 KB) Offset Description 02000 IVFC Hash Region 03000 SAVE Header (0x3F0 medias, 0x200 length) = 0x7E000 total 03100 SAVE Data ID Start Length CHK Description 0000 05400 000002C8 6A81A 05400 - Pokepuff Inventory (Index * 100ct) 05464 - u32 Received Counter 0001 05800 00000B88 6A822 05800 - Items Pocket 05E40 - Key Items Pocket 05FC0 - TM Pocket 06168 - Medicine Pocket 06268 - Berry Pocket 0002 06400 0000002C 6A82A Select Bound Items 0003 06600 00000038 6A832 ???? 0004 06800 00000150 6A83A Trainer Stat Tracking 0x06802 - Map ID 0x06810 - X Coordinate (<>) 0x06814 - Y Coordinate (Height) 0x06818 - Z Coordinate (^v) 0x068F4 - Map ID 0x06904 - X Coordinate (<>) 0x06808 - Y Coordinate (Height) 0x0680C - Z Coordinate (^v) 0005 06A00 00000004 6A842 ???? 0006 06C00 00000008 6A84A u32 Time Played + u32 Adventure Started 0007 06E00 000001C0 6A852 Wardrobe (Bitflags) & Saved Outfits (Index #s) 0008 07000 000000BE 6A85A u16/u8 storage 0009 07200 00000024 6A862 FFFFFFFF 000A 07400 00002100 6A86A Overworld Data 0x108 per Overworld Entity 000B 09600 00000140 6A872 Trainer Information ($) 000C 09800 00000440 6A87A Box Names [0x22] Box Name (* 31) [0x01] Box Background *31 [0x03] Background Unlock Flags 000D 09E00 00000574 6A882 Battle Box 000E 0A400 00004E28 6A88A PSS Data - Friends 000F 0F400 00004E28 6A892 PSS Data - Acquaintances 0010 14400 00004E28 6A89A PSS Data - Passerby 0011 19400 00000170 6A8A2 Trainer Card (ID/SID/OT/Greeting) 0012 19600 0000061C 6A8AA Party Members 0013 19E00 00000504 6A8B2 Constant & Event Flags 0x1A0FC-0x1A27B - Event Bitflags (0x180 * 8) 0014 1A400 000006A0 6A8BA Pokedex 0x1A400 - Constant? 0x2F120F17 0x1A004 - u32 counter (?) 0x1A408 - 0x60 Region 1 - Owned Native 0x1A468 - 0x60 Region 2 - Encountered Male 0x1A4C8 - 0x60 Region 3 - Encountered Female 0x1A528 - 0x60 Region 4 - Encountered Male * 0x1A588 - 0x60 Region 5 - Encountered Female * 0x1A5E8 - 0x60 Region 6 - Displayed Male 0x1A648 - 0x60 Region 7 - Displayed Female 0x1A6A8 - 0x60 Region 8 - Displayed Male * 0x1A708 - 0x60 Region 9 - Displayed Female * 0x1A768 - 0x18 Form Bitflag Region 1 - Encountered form 0x1A780 - 0x18 Form Bitflag Region 2 - Encountered form * 0x1A798 - 0x18 Form Bitflag Region 3 - Displayed form 0x1A7B0 - 0x18 Form Bitflag Region 4 - Displayed form * 0x1A7C8 - 0x278 7bit/entry flags (Language) 0x1AA40 - u32 ??? 0? 0x1AA44 - Spinda Spot Pattern (First EC encountered) 0x1AA48 - u32 ??? 0x1AA4C - 0x54 Bitflags - Obtained specimen from Previous Console Era (pre Kalos Game Origin, 1-649) 0015 1AC00 00000644 6A8C2 Sorted Variables 0016 1B400 00000104 6A8CA Fused Zekrom/Reshiram Storage 0017 1B600 00000004 6A8D2 ???? 0018 1B800 00000420 6A8DA ???? 0019 1BE00 00000064 6A8E2 O-Power Flags 001A 1C000 000003F0 6A8EA ???? 001B 1C400 0000070C 6A8F2 User Metadata 1C538 - PSS Outfit 1C548 - Trainer Name 1C564 - Favorite Pokemon 1C567 - Pokemon's Gender 1C56C - Encryption Constant 1C57C - Pokemon's Nickname 001C 1CC00 00000180 6A8FA GTS Upload & Match Criteria 001D 1CE00 00000004 6A902 87B1A23F const 001E 1D000 0000000C 6A90A ???? 001F 1D200 00000048 6A912 Repel Info, (Swarm?) and other overworld info 0020 1D400 00000054 6A91A ???? 0021 1D600 00000644 6A922 WiFi Tournament Data 0022 1DE00 000005C8 6A92A Live Tournament Data 0023 1E400 000002F8 6A932 MAC Address & Network Connection Logging (0x98 per entry) 0024 1E800 00001B40 6A93A Hall of Fame Data (First Game Clear + 15 Latest) 0x48 per Pokemon Slot; capped with 4 bytes at end (total 0x1B4) 0x00 - Species 0x02 - Held Item 0x04 - Move 1 0x06 - Move 2 0x08 - Move 3 0x0A - Move 4 0x0C - Encryption Key 0x10 - TID 0x12 - SID 0x14 - [Nicknamed,1][Shiny,1][Level,7][Gender,2][Form,5] bits 0x16 - Unused 0x18 - Nickname (0x16) + 0x3F80 end 0x30 - Trainer Name (0x16) + 0x3F80 end Last 4 bytes: 0x00 - # of Hall of Fame Victory 0x01 - [Unk,1][Day of Month,5][Month,4][Year,8] bits 0025 20400 000001F4 6A942 Maison Data 205C0 - u16 Current Singles Streak 205C2 - u16 Current Super Singles Streak 205C4 - u16 Best Singles Streak 205C6 - u16 Best Super Singles Streak 205C8 - u16 Current Doubles Streak 205CA - u16 Current Super Doubles Streak 205CC - u16 Best Doubles Streak 205CE - u16 Best Super Doubles Streak 205D0 - u16 Current Triples Streak 205D2 - u16 Current Super Triples Streak 205D4 - u16 Best Triples Streak 205D6 - u16 Best Super Triples Streak 205D8 - u16 Current Rotation Streak 205DA - u16 Current Super Rotation Streak 205DC - u16 Best Rotation Streak 205DE - u16 Best Super Multi Streak 205E0 - u16 Current Multi Streak 205E2 - u16 Current Super Multi Streak 205E4 - u16 Best Multi Streaks 205E6 - u16 Best Super Multi Streak 0026 20600 000001F0 6A94A Daycare Data u32 (Slot 1) Occupied Flag u32 (Slot 1) Steps Taken Since Depositing xE8 (Slot 1) Box EK6 1 u32 (Slot 2) Occupied Flag u32 (Slot 2) Steps Taken Since Depositing2 xE8 (Slot 2) Box EK6 2 u64 Flag (egg available) u64 RNG Seed 0027 20800 00000216 6A952 Index Number Related Data 0028 20C00 00000390 6A95A Berry Field Data (0x18 per tree, 36 trees) 0029 21000 00001A90 6A962 Wondercard Data 0x100 bitflag-card received storage Wondercard slots (0x108 between) 002A 22C00 00000308 6A96A Old Man (Anistar) Pokemon Storage 002B 23000 00000618 6A972 Friend Safari Data 002C 23800 0000025C 6A97A PSS Data 23970 (0x20) - Pokémon Bank (application?) data 002D 23C00 00000834 6A982 PSS Friend Data [0x15]*100 entries 002E 24600 00000318 6A98A Super Training Data 24610 - Mission Best Times (seconds as 4 byte floats)*30 24788 - u32 Species That Scored Best Time*30 24908 - Bag Inventory (12 bags) 002F 24A00 000007D0 6A992 ???? 0030 25200 00000C48 6A99A Pokemon Link Gifts 0x25E44 - u16 checksum (ccitt16, 0xFFFF initial) of 0x25400-0x25E43 0031 26000 00000078 6A9A2 Index Number Related Data 0032 26200 00000200 6A9AA PGL Promotion Gifts 0033 26400 00000C84 6A9B2 ???? 0034 27200 00000628 6A9BA Data Block (Purpose Unknown) u64 Length byte[Length] data 0035 27A00 00034AD0 6A9C2 Box Data (31 Boxes, 30 Slots, 232 bytes each) 0036 5C600 0000E058 6A9CA Picture Data (JPEG Exif Ver 2.2) ~ 5C654 starts the JPEG (FF D8 marker) - Sent to PGL ---- 6A800 00000800 ----- Checksum Storage [0x14] Header: u64 savetime1 & u64 savetime2 (First five bytes Anti-Savegame Restore Secure Value),u16 BEEF magic [0x10] Checksum Entries: u32 len, u16 ID, u16 checksum (ccitt16, 0xFFFF initial) Save File 2 (0x81000 - 0xE9FFF) (420 KB) Same as Game Save 1's offsets; add 0x7F000. IVFC Hash Region SHA256 Hash over a 0x1000 large block (4096 bytes). Start End Hash Location 2020 203F 2000 - First Hash: Copied to 0x200 zero array. 2040 2FFF 2020 - Second Hash: Copied to 0x1000 zero array. 3000 3FFF 2040 4000 4FFF 2060 5000 5FFF 2080 6000 6FFF 20A0 7000 7FFF 20C0 8000 8FFF 20E0 9000 9FFF 2100 A000 AFFF 2120 B000 BFFF 2140 C000 CFFF 2160 D000 DFFF 2180 E000 EFFF 21A0 F000 FFFF 21C0 10000 10FFF 21E0 11000 11FFF 2200 12000 12FFF 2220 13000 13FFF 2240 14000 14FFF 2260 15000 15FFF 2280 16000 16FFF 22A0 17000 17FFF 22C0 18000 18FFF 22E0 19000 19FFF 2300 1A000 1AFFF 2320 1B000 1BFFF 2340 1C000 1CFFF 2360 1D000 1DFFF 2380 1E000 1EFFF 23A0 1F000 1FFFF 23C0 20000 20FFF 23E0 21000 21FFF 2400 22000 22FFF 2420 23000 23FFF 2440 24000 24FFF 2460 25000 25FFF 2480 26000 26FFF 24A0 27000 27FFF 24C0 28000 28FFF 24E0 29000 29FFF 2500 2A000 2AFFF 2520 2B000 2BFFF 2540 2C000 2CFFF 2560 2D000 2DFFF 2580 2E000 2EFFF 25A0 2F000 2FFFF 25C0 30000 30FFF 25E0 31000 31FFF 2600 32000 32FFF 2620 33000 33FFF 2640 34000 34FFF 2660 35000 35FFF 2680 36000 36FFF 26A0 37000 37FFF 26C0 38000 38FFF 26E0 39000 39FFF 2700 3A000 3AFFF 2720 3B000 3BFFF 2740 3C000 3CFFF 2760 3D000 3DFFF 2780 3E000 3EFFF 27A0 3F000 3FFFF 27C0 40000 40FFF 27E0 41000 41FFF 2800 42000 42FFF 2820 43000 43FFF 2840 44000 44FFF 2860 45000 45FFF 2880 46000 46FFF 28A0 47000 47FFF 28C0 48000 48FFF 28E0 49000 49FFF 2900 4A000 4AFFF 2920 4B000 4BFFF 2940 4C000 4CFFF 2960 4D000 4DFFF 2980 4E000 4EFFF 29A0 4F000 4FFFF 29C0 50000 50FFF 29E0 51000 51FFF 2A00 52000 52FFF 2A20 53000 53FFF 2A40 54000 54FFF 2A60 55000 55FFF 2A80 56000 56FFF 2AA0 57000 57FFF 2AC0 58000 58FFF 2AE0 59000 59FFF 2B00 5A000 5AFFF 2B20 5B000 5BFFF 2B40 5C000 5CFFF 2B60 5D000 5DFFF 2B80 5E000 5EFFF 2BA0 5F000 5FFFF 2BC0 60000 60FFF 2BE0 61000 61FFF 2C00 62000 62FFF 2C20 63000 63FFF 2C40 64000 64FFF 2C60 65000 65FFF 2C80 66000 66FFF 2CA0 67000 67FFF 2CC0 68000 68FFF 2CE0 69000 69FFF 2D00 6A000 6AFFF 2D20 Pokepuff Index Numbers Index Name 00 Empty 01 Sweet Basic Pokepuff 02 Mint Basic Pokepuff 03 Citrus Basic Pokepuff 04 Mocha Basic Pokepuff 05 Spice Basic Pokepuff 06 Sweet Frosted Pokepuff 07 Mint Frosted Pokepuff 08 Citrus Frosted Pokepuff 09 Mocha Frosted Pokepuff 0A Spice Frosted Pokepuff 0B Sweet Fancy Pokepuff 0C Mint Fancy Pokepuff 0D Citrus Fancy Pokepuff 0E Mocha Fancy Pokepuff 0F Spice Fancy Pokepuff 10 Sweet Deluxe Pokepuff 11 Mint Deluxe Pokepuff 12 Citrus Deluxe Pokepuff 13 Mocha Deluxe Pokepuff 14 Spice Deluxe Pokepuff 15 Wish Supreme Pokepuff 16 Honor Supreme Pokepuff 17 Spring Supreme Pokepuff 18 Summer Supreme Pokepuff 19 Fall Supreme Pokepuff 1A Winter Supreme Pokepuff Super Training Bag Index Numbers Index Name 00 Empty 01 HP Bag S 02 HP Bag M 03 HP Bag L 04 ATK Bag S 05 ATK Bag M 06 ATK Bag L 07 Def Bag S 08 Def Bag M 09 Def Bag L 0A Sp.A Bag S 0B Sp.A Bag M 0C Sp.A Bag L 0D Sp.D Bag S 0E Sp.D Bag M 0F Sp.D Bag L 10 Speed Bag S 11 Speed Bag M 12 Speed Bag L 13 Strength Bag 14 Toughen Up Bag 15 Swiftness Bag 16 Big-Shot Bag 17 Double-Up Bag 18 Team Flare Bag 19 Reset Bag 1A Soothing Bag Form Dex Index Forms follow the same index as used in the pokémon data structure (i.e. first unown form is "A"...) Mega Pokémon have a flag for non-mega form (regardless of gender) and for mega form. Parenthesis indicates how many form flags there are. Unown (28) Deoxys (4) Shaymin (2) Giratina (2) Rotom (6) Shellos (2) Gastrodon (2) Burmy (3) Wormadan (3) Castform (4) Cherrim (2) Deerling (4) Sawsbuck (4) Meloetta (2) Darmanitan (2) Basculin (2) Kyurem (3) Keldeo (2) Thundurus (2) Tornadus (2) Landorus (2) Vivillion (20) Flabebé (5) Floette (6) Florges (5) Pumkaboo (4) Gourgeist (4) Aegislash (2) Xerneas (2) Venusaur (2) Charizard (3) Blastoise (2) Alakazam (2) Gengar (2) Kangaskhan (2) Pinsir (2) Gyarados (2) Aerodactyl (2) Mewtwo (3) Ampharos (2) Scizor (2) Heracross (2) Houndoom (2) Tyranitar (2) Blaziken (2) Gardevoir (2) Mawile (2) Aggron (2) Medicham (2) Manectric (2) Banette (2) Absol (2) Latias (2) Latios (2) Garchomp (2) Lucario (2) Abomasnow (2) Pokémon Bank (application?) data This region is written every time Pokemon Bank saves. It is a copy of first 0x20 bytes of Pokemon Bank savefile (turtle). Maybe this is used to store information of the last application used with the game, but currently no other application that interacts with XY savegame is known. Offset Description 0x00-0x04 Pokemon Bank unique ID? (seems linked to nnid) 0x05-0x08 Unknown (0x00) 0x09-0x0F Unknown, only present in turtle file (0x00 on game's savegame) 0x10-0x14 Bank usage counter backup (previous counter) 0x15-0x18 Bank usage counter 0x19-0x1F Pokemon Bank signature? (always 48CA0A0002000000)
  8. Platinum Save Structure

    This page is under construction, because previously, there was pretty much NO documentation here. I will add more as I continue my research, but since no one seems keen to volunteer the information, it is based off my own research. Small block offsets Trainer Name - 0x68 8 unsigned 16-bit integers. Each word represents a character in the game's character table. Trainer ID - 0x78 Random unsigned 16-bit integer The visible identification number of a trainer Determines ownership of Pokémon. Secret ID - 0x7A Random unsigned 16-bit integer The hidden identification number of a trainer Determines ownership of Pokémon. Determines variation in the game. Money - 0x7C Unsigned 32-bit integer. Limited to 0xF423F (999,999) Trainer Gender - 0x80 0 if male, 1 if female. Determines ownership of Pokémon. Country of Origin - 0x81 Unsigned 8-bit integer. Determines whether or not Pokémon get an outsider EXP bonus. Countries other than Japan are inferred from D/P/Pt, since the game has only been released in Japanese. 0x1 = 日本語 (Japan) 0x2 = English (US/UK/AU) 0x3 = Français (France/Québec) 0x4 = Italiano (Italy) 0x5 = Deutsch (Germany) 0x7 = Español (Spain/Latin Americas) 0x8 = 한국어 (South Korea) Badges - 0x82 Unsigned 8-bit bitfield Determines what PokéMart items are for sale, what level outsider Pokémon will obey until, and flags certain in-game events. 0x01 = Coal Badge 0x02 = Forest Badge 0x04 = Cobble Badge 0x08 = Fen Badge 0x10 = Relic Badge 0x20 = Mine Badge 0x40 = Icicle Badge 0x80 = Beacon Badge Multiplayer Avatar - 0x83 Unsigned 8-bit integer. Determines the sprite seen by other players in a multi-player environment such as the Union Room. 0x00 = None 0x03 = School Kid 0x05 = Bug Catcher 0x06 = Lass 0x07 = Battle Girl 0x0B = Ace Trainer Male 0x0D = Beauty 0x0E = Ace Trainer Female 0x0F = Roughneck 0x1F = Pop Idol 0x23 = Social 0x25 = Cowgirl 0x2A = Ruin Maniac 0x32 = Black Belt 0x3E = Rich Boy 0x3F = Lady 0x46 = Psychic Please correct if these are wrong, or if there are more. Number of Current Party Pokémon - 0x9C Unsigned 8-bit integer. Note: In my opinion this is actually a 32-bit integer, but only 8 bits of it are ever used. Party Pokémon - 0xA0 The Pokémon in the trainer's party. 6 blocks of 236 byte structures Main article: Pokemon NDS Structure General Items - 0x630 Main article: Other items The items in the Trainer's general Items bag pocket. 165 blocks of 4 byte structures (two bytes for item index, two bytes for quantity) Key Items - 0x8C4 Main article: Key items The items in the Trainer's Key Items bag pocket. 50 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). TMs & HMs - 0x98C Main article: TMs and HMs The items in the Trainer's TMs & HMs bag pocket. 100 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). TMs & HMs are auto-sorted by item index in ascending order. Mail - 0xB1C Main article: Mail The items in the Trainer's Mail bag pocket. 12 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Medicine - 0xB4C Main article: Medicine The items in the Trainer's Medicine bag pocket. 40 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Berries - 0xBEC Main article: Berries The items in the Trainer's Berries bag pocket. 64 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Berries are auto-sorted by item index in ascending order. Balls - 0xCEC Main article: Pokéballs The items in the Trainer's Balls bag pocket. 15 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Battle Items - 0xD28 Main article: Battle items The items in the Trainer's Battle Items bag pocket. 30 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Starter Pokémon - 0xE0C The Pokédex number of the starter chosen. Unsigned 16-bit integer. Lotto number - 0xE24 Unsigned 16-bit integer. Has obtained lotto prize - 0x1141 1 if obtained, 0 if not yet obtained. Rival's Name - 0x27E8 8 unsigned 16bit integers. Each word represents a character in the game's character table. Safari Zone Pokémon - 0x7F24 Unsigned 32bit integer result from the ARNG. Four daily safari zone Pokémon Indexn = ( ARNG >> ( n * 0x5 ) ) & 0x1F List of Safari Zone Pokémon Notes: Both Safari Zone Pokémon and Swarm Pokémon have the same ARNG value. Swarm Pokémon - 0x7F28 Unsigned 32bit integer result from the ARNG. One daily swarm Pokémon Index = ARNG % 0x1C List of Swarm Pokémon Notes: Both Safari Zone Pokémon and Swarm Pokémon have the same ARNG value. Daily Trophy Pokémon Today - 0x7F30 Unsigned 8bit integer First daily trophy garden Pokémon List of Daily Trophy Pokémon Daily Trophy Pokémon Yesterday - 0x7F32 Unsigned 8bit integer Second daily trophy garden Pokémon List of Daily Trophy Pokémon Notes: Yesterday's Pokémon can be caught after beating the Elite 4 and receiving the National Pokédex upgrade. Honey Trees - 0x7F38 21 blocks of 8byte structures List of Honey Tree locations Main article: Honey Trees
  9. ORAS Save Structure

    OR/AS Save files are comprised of 4 sections, the latter two storing the contents of the two savegames. The structure of the save is extremely similar to Pokemon X/Y's, with the majority of structural changes being the shifting of the positions of partitions. The game alternates between the two game saves similar to Generations 3 & 4 and X/Y. Save files are 0x100000 (1MB). The area between sections is either FF or 00, for Cartridges and Digital saves respectively. Single Partition Save File http://3dbrew.org/wiki/Savegames Image Header (0x00000-0x00460) Offset Length Hash Details Description 00000 0x10 0x0: Uses the AES Engine & KeyY AES MAC Header 00100 0x100 0x16C: (SHA256) 0x000-0x12C of active DIFI DISA 00200 0x12C 0x30C: (SHA256) 1st IVFC Hash copied to 0x200 zero array DIFI Blob 1 00330 0x12C 0x43C: (SHA256) 1st IVFC Hash copied to 0x200 zero array DIFI Blob 2 First Partition (0x01000-0x01107) Offset Description 01000 DPFS Partition Save File 1 (0x02000 - 0x75FFF) (420 KB) Offset Description 02000 IVFC Hash Region 03000 SAVE Header (0x3F0 medias, 0x200 length) = 0x7E000 total 03100 SAVE Data ID Start Length CHK Description 0000 5400 000002C8 75E1A 05400 - Pokepuff Inventory (Index * 100ct) 05464 - u32 Received Counter 0001 5800 00000B90 75E22 05800 - Items Pocket 05E40 - Key Items Pocket 05FC0 - TM Pocket 06170- Medicine Pocket 06270 - Berry Pocket 0002 6400 0000002C 75E2A Select Bound Items 0003 6600 00000038 75E32 ???? 0004 6800 00000150 75E3A Trainer Stat Tracking 0005 6A00 00000004 75E42 ???? 0006 6C00 00000008 75E4A u32 Time Played + u32 Adventure Started 0007 6E00 000001C0 75E52 Wardrobe (Bitflags) & Saved Outfits (Index #s) - Unused in ORAS 0008 7000 000000BE 75E5A u16/u8 storage 0009 7200 00000024 75E62 FFFFFFFF 000A 7400 00002100 75E6A Overworld Data 0x108 per Overworld Entity 000B 9600 00000130 75E72 Trainer Information ($) 000C 9800 00000440 75E7A Box Names [0x22] Box Name (* 31) [0x01] Box Background *31 [0x03] Background Unlock Flags 000D 9E00 00000574 75E82 Battle Box 000E A400 00004E28 75E8A PSS Data - Friends 000F F400 00004E28 75E92 PSS Data - Acquaintances 0010 14400 00004E28 75E9A PSS Data - Passerby 0011 19400 00000170 75EA2 Trainer Card (ID/SID/OT/Greeting) 0012 19600 0000061C 75EAA Party Members 0013 19E00 00000504 75EB2 Constant & Event Flags 19E78 - Ash Counter 0x1A0FC-0x1A27B - Event Bitflags (0x180 * 8) 0014 1A400 000011CC 75EBA Pokedex & Encounter Count 0x1A400 - Constant? 0x2F120F17 0x1A004 - u32 counter (?) 0x1A408 - 0x60 Region 1 - Owned 0x1A468 - 0x60 Region 2 - Encountered Male 0x1A4C8 - 0x60 Region 3 - Encountered Female 0x1A528 - 0x60 Region 4 - Encountered Male * 0x1A588 - 0x60 Region 5 - Encountered Female * 0x1A5E8 - 0x60 Region 6 - Displayed Male 0x1A648 - 0x60 Region 7 - Displayed Female 0x1A6A8 - 0x60 Region 8 - Displayed Male * 0x1A708 - 0x60 Region 9 - Displayed Female * 0x1A768 - 0x26 Form Bitflag Region 1 - Encountered form 0x1A78E - 0x26 Form Bitflag Region 2 - Encountered form * 0x1A7B4 - 0x26 Form Bitflag Region 3 - Displayed form 0x1A7DA - 0x26 Form Bitflag Region 4 - Displayed form* 0x1A800 - 0x27C 7bit/entry flags (Language) 0x1AA7C - u32 ??? 0? 0x1AA80 - Spinda Spot Pattern (First EC encountered) 0x1AA86 - Encounter Counts 0015 1B600 00000644 75EC2 Sorted Variables 0016 1BE00 00000104 75ECA Fused Zekrom/Reshiram Storage 0017 1C000 00000004 75ED2 ???? 0018 1C200 00000420 75EDA ???? 0019 1C800 00000064 75EE2 O-Power Flags 001A 1CA00 000003F0 75EEA ???? 001B 1CE00 0000070C 75EF2 User Metadata 001C 1D600 00000180 75EFA GTS Upload & Match Criteria 001D 1D800 00000004 75F02 87B1A23F const 001E 1DA00 0000000C 75F0A ???? 001F 1DC00 00000048 75F12 Repel Info, (Swarm?) and other overworld info 0020 1DE00 00000054 75F1A ???? 0021 1E000 00000644 75F22 WiFi Tournament Data 0022 1E800 000005C8 75F2A Live Tournament Data 0023 1EE00 000002F8 75F32 MAC Address & Network Connection Logging (0x98 per entry) 0024 1F200 00001B40 75F3A Hall of Fame Data (First Game Clear + 15 Latest) 0x48 per Pokemon Slot; capped with 4 bytes at end (total 0x1B4) 0x00 - Species 0x02 - Held Item 0x04 - Move 1 0x06 - Move 2 0x08 - Move 3 0x0A - Move 4 0x0C - Encryption Key 0x10 - TID 0x12 - SID 0x14 - [Nicknamed,1][Shiny,1][Level,7][Gender,2][Form,5] bits 0x16 - Unused 0x18 - Nickname (0x16) + 0x3F80 end 0x30 - Trainer Name (0x16) + 0x3F80 end Last 4 bytes: 0x00 - # of Hall of Fame Victory 0x01 - [Unk,1][Day of Month,5][Month,4][Year,8] bits 0025 20E00 000001F4 75F42 Maison Data 205C0 - u16 Current Singles Streak 205C2 - u16 Current Super Singles Streak 205C4 - u16 Best Singles Streak 205C6 - u16 Best Super Singles Streak 205C8 - u16 Current Doubles Streak 205CA - u16 Current Super Doubles Streak 205CC - u16 Best Doubles Streak 205CE - u16 Best Super Doubles Streak 205D0 - u16 Current Triples Streak 205D2 - u16 Current Super Triples Streak 205D4 - u16 Best Triples Streak 205D6 - u16 Best Super Triples Streak 205D8 - u16 Current Rotation Streak 205DA - u16 Current Super Rotation Streak 205DC - u16 Best Rotation Streak 205DE - u16 Best Super Multi Streak 205E0 - u16 Current Multi Streak 205E2 - u16 Current Super Multi Streak 205E4 - u16 Best Multi Streaks 205E6 - u16 Best Super Multi Streak 0026 21000 000003E0 75F4A Daycare Data (Larger than XY) u32 (Slot 1) Occupied Flag u32 (Slot 1) Steps Taken Since Depositing1 xE8 (Slot 1) Box EK6 1 u32 (Slot 2) Occupied Flag u32 (Slot 2) Steps Taken Since Depositing2 xE8 (Slot 2) Box EK6 2 u64 Flag (egg available) u64 RNG Seed 0027 21400 00000216 75F52 Index Number Related Data 0028 21800 00000640 75F5A Berry Field Data (0x10 per tree, 100 trees) 0029 22000 00001A90 75F62 Wondercard Data 0x100 bitflag-card received storage Wondercard slots (0x108 between) 002A 23C00 00000400 75F6A SUBE data (XY: Old Man) - purpose unknown. 002B 24000 00000618 75F72 Friend Safari Data 002C 24800 0000025C 75F7A PSS Data 24970 (0x20) - Pokemon Bank (application?) data 002D 24C00 00000834 75F82 PSS Friend Data [0x15]*100 entries 002E 25600 00000318 75F8A Super Training Data 24610 - Mission Best Times (seconds as 4 byte floats)*30 24788 - u32 Species That Scored Best Time*30 24908 - Bag Inventory (12 bags) 002F 25A00 000007D0 75F92 ???? 0030 26200 00000C48 75F9A Pokemon Link Gifts 0x25E44 - u16 checksum (ccitt16, 0xFFFF initial) of 0x25400-0x25E43 0031 27000 00000078 75FA2 Index Number Related Data 0032 27200 00000200 75FAA PGL Promotion Gifts 0033 27400 00000C84 75FB2 ???? 0034 28200 00000628 75FBA Data Block (Purpose Unknown) u64 Length byte[Length] data 0035 28A00 00000400 75FC2 Contest Data 0036 28E00 00007AD0 75FCA Secret Base (Favorites) 0037 30A00 000078B0 75FD2 Secret Base (Passerby) & Passerby Event Values 0038 38400 00034AD0 75FDA Box Data (31 Boxes, 30 Slots, 232 bytes each) 0039 6D000 0000E058 75FE2 Picture Data (JPEG Exif Ver 2.2) ---- 75E00 00000800 ----- Checksum Storage [0x14] Header: u64 savetime1 & u64 savetime2 (First five bytes Anti-Savegame Restore Secure Value), u16 BEEF magic [0x10] Checksum Entries: u32 len, u16 ID, u16 checksum (ccitt16, 0xFFFF initial) Save File 2 (0x81000 - 0xF1FFF) (420 KB) Same as Game Save 1's offsets; add 0x7F000. IVFC Hash Region SHA256 Hash over a 0x1000 large block (4096 bytes). Start End Hash Location 2020 203F 2000 - First Hash: Copied to 0x200 zero array. 2040 2FFF 2020 - Second Hash: Copied to 0x1000 zero array. 3000 3FFF 2040 4000 4FFF 2060 5000 5FFF 2080 6000 6FFF 20A0 7000 7FFF 20C0 8000 8FFF 20E0 9000 9FFF 2100 A000 AFFF 2120 B000 BFFF 2140 C000 CFFF 2160 D000 DFFF 2180 E000 EFFF 21A0 F000 FFFF 21C0 10000 10FFF 21E0 11000 11FFF 2200 12000 12FFF 2220 13000 13FFF 2240 14000 14FFF 2260 15000 15FFF 2280 16000 16FFF 22A0 17000 17FFF 22C0 18000 18FFF 22E0 19000 19FFF 2300 1A000 1AFFF 2320 1B000 1BFFF 2340 1C000 1CFFF 2360 1D000 1DFFF 2380 1E000 1EFFF 23A0 1F000 1FFFF 23C0 20000 20FFF 23E0 21000 21FFF 2400 22000 22FFF 2420 23000 23FFF 2440 24000 24FFF 2460 25000 25FFF 2480 26000 26FFF 24A0 27000 27FFF 24C0 28000 28FFF 24E0 29000 29FFF 2500 2A000 2AFFF 2520 2B000 2BFFF 2540 2C000 2CFFF 2560 2D000 2DFFF 2580 2E000 2EFFF 25A0 2F000 2FFFF 25C0 30000 30FFF 25E0 31000 31FFF 2600 32000 32FFF 2620 33000 33FFF 2640 34000 34FFF 2660 35000 35FFF 2680 36000 36FFF 26A0 37000 37FFF 26C0 38000 38FFF 26E0 39000 39FFF 2700 3A000 3AFFF 2720 3B000 3BFFF 2740 3C000 3CFFF 2760 3D000 3DFFF 2780 3E000 3EFFF 27A0 3F000 3FFFF 27C0 40000 40FFF 27E0 41000 41FFF 2800 42000 42FFF 2820 43000 43FFF 2840 44000 44FFF 2860 45000 45FFF 2880 46000 46FFF 28A0 47000 47FFF 28C0 48000 48FFF 28E0 49000 49FFF 2900 4A000 4AFFF 2920 4B000 4BFFF 2940 4C000 4CFFF 2960 4D000 4DFFF 2980 4E000 4EFFF 29A0 4F000 4FFFF 29C0 50000 50FFF 29E0 51000 51FFF 2A00 52000 52FFF 2A20 53000 53FFF 2A40 54000 54FFF 2A60 55000 55FFF 2A80 56000 56FFF 2AA0 57000 57FFF 2AC0 58000 58FFF 2AE0 59000 59FFF 2B00 5A000 5AFFF 2B20 5B000 5BFFF 2B40 5C000 5CFFF 2B60 5D000 5DFFF 2B80 5E000 5EFFF 2BA0 5F000 5FFFF 2BC0 60000 60FFF 2BE0 61000 61FFF 2C00 62000 62FFF 2C20 63000 63FFF 2C40 64000 64FFF 2C60 65000 65FFF 2C80 66000 66FFF 2CA0 67000 67FFF 2CC0 68000 68FFF 2CE0 69000 69FFF 2D00 6A000 6AFFF 2D20 6B000 6BFFF 2D40 6C000 6CFFF 2D60 6D000 6DFFF 2D80 6E000 6EFFF 2DA0 6F000 6FFFF 2DC0 70000 70FFF 2DE0 71000 71FFF 2E00 72000 72FFF 2E20 73000 73FFF 2E40 74000 74FFF 2E60 75000 75FFF 2E80 Pokepuff Index Numbers Index Name 00 Empty 01 Sweet Basic Pokepuff 02 Mint Basic Pokepuff 03 Citrus Basic Pokepuff 04 Mocha Basic Pokepuff 05 Spice Basic Pokepuff 06 Sweet Frosted Pokepuff 07 Mint Frosted Pokepuff 08 Citrus Frosted Pokepuff 09 Mocha Frosted Pokepuff 0A Spice Frosted Pokepuff 0B Sweet Fancy Pokepuff 0C Mint Fancy Pokepuff 0D Citrus Fancy Pokepuff 0E Mocha Fancy Pokepuff 0F Spice Fancy Pokepuff 10 Sweet Deluxe Pokepuff 11 Mint Deluxe Pokepuff 12 Citrus Deluxe Pokepuff 13 Mocha Deluxe Pokepuff 14 Spice Deluxe Pokepuff 15 Wish Supreme Pokepuff 16 Honor Supreme Pokepuff 17 Spring Supreme Pokepuff 18 Summer Supreme Pokepuff 19 Fall Supreme Pokepuff 1A Winter Supreme Pokepuff Super Training Bag Index Numbers Index Name 00 Empty 01 HP Bag S 02 HP Bag M 03 HP Bag L 04 ATK Bag S 05 ATK Bag M 06 ATK Bag L 07 Def Bag S 08 Def Bag M 09 Def Bag L 0A Sp.A Bag S 0B Sp.A Bag M 0C Sp.A Bag L 0D Sp.D Bag S 0E Sp.D Bag M 0F Sp.D Bag L 10 Speed Bag S 11 Speed Bag M 12 Speed Bag L 13 Strength Bag 14 Toughen Up Bag 15 Swiftness Bag 16 Big-Shot Bag 17 Double-Up Bag 18 Team Flare Bag 19 Reset Bag 1A Soothing Bag Form Dex Index Forms follow the same index as used in the pokémon data structure (i.e. first unown form is "A"...) Mega Pokémon have a flag for non-mega form (regardless of gender) and for mega form. Parenthesis indicates how many form flags there are. Unown (28) Deoxys (4) Shaymin (2) Giratina (2) Rotom (6) Shellos (2) Gastrodon (2) Burmy (3) Wormadan (3) Castform (4) Cherrim (2) Deerling (4) Sawsbuck (4) Meloetta (2) Darmanitan (2) Basculin (2) Kyurem (3) Keldeo (2) Thundurus (2) Tornadus (2) Landorus (2) Vivillion (20) Flabebé (5) Floette (6) Florges (5) Pumkaboo (4) Gourgeist (4) Aegislash (2) Xerneas (2) Venusaur (2) Charizard (3) Blastoise (2) Alakazam (2) Gengar (2) Kangaskhan (2) Pinsir (2) Gyarados (2) Aerodactyl (2) Mewtwo (3) Ampharos (2) Scizor (2) Heracross (2) Houndoom (2) Tyranitar (2) Blaziken (2) Gardevoir (2) Mawile (2) Aggron (2) Medicham (2) Manectric (2) Banette (2) Absol (2) Latias (2) Latios (2) Garchomp (2) Lucario (2) Abomasnow (2) Pikachu (1) 5 unused bits --> (unused cosplay pikachu formes probably?) Cosplay Pikachu (1) Hoopa (2) Beedrill (2) Pidgeot (2) Slowbro (2) Steelix (2) Sceptile (2) Swampert (2) Sableye (2) Sharpedo (2) Camerupt (2) Altaria (2) Glalie (2) Salamence (2) Metagross (2) Rayquaza (2) Lopunny (2) Gallade (2) Audino (2) Diancie (2) Kyogre (2) Groudon (2) Arceus (18) Genesect (5) Furfrow (10) Pokémon Bank (application?) data This region is written every time Pokemon Bank saves. It is a copy of first 0x20 bytes of Pokemon Bank savefile (turtle). Maybe this is used to store information of the last application used with the game, but currently no other application that interacts with ORAS savegame writes this data (Pokémon ORAS Special Demo does not write to this region). Offset Description 0x00-0x04 Pokemon Bank unique ID? (seems linked to nnid) 0x05-0x08 Unknown (0x00) 0x09-0x0F Unknown, only present in turtle file (0x00 on game's savegame) 0x10-0x14 Bank usage counter backup (previous counter) 0x15-0x18 Bank usage counter 0x19-0x1F Pokemon Bank signature? (always 48CA0A0002000000)
  10. Pokémon NDS Save File Checksum

    Pokémon NDS uses a checksum at the footer each block in the save file to ensure consistent data. Diamond & Pearl usage filestream.Seek( 0xC0FE, SeekOrigin.Begin ); GetCheckSum( smallblock1 ); //small block 1 filestream.Seek( 0x1E2DE, SeekOrigin.Begin ); GetCheckSum( bigblock1 ); //big block 1 filestream.Seek( 0x4C0FE, SeekOrigin.Begin ); GetCheckSum( smallblock2 ); //small block 2 filestream.Seek( 0x5E2DE, SeekOrigin.Begin ); GetCheckSum( bigblock2 ); //big block 2 Platinum usage filestream.Seek( 0xCF2A, SeekOrigin.Begin ); GetCheckSum( smallblock1 ); //small block 1 filestream.Seek( 0x1F10E, SeekOrigin.Begin ); GetCheckSum( bigblock1 ); //big block 1 filestream.Seek( 0x4CF2A, SeekOrigin.Begin ); GetCheckSum( smallblock2 ); //small block 2 filestream.Seek( 0x5F10E, SeekOrigin.Begin ); GetCheckSum( bigblock2 ); //big block 2 Determining the seeds public static int[] SeedTable; public static void GetSeeds() { SeedTable = new int[0x100]; int index = 0; int result = 0; do { result = index << 8; int index2 = 0; do { if (((byte)(result>>8) & 0x80)!=0) result = (2 * result )^ 0x1021; else result *= 2; } while (++index2 < 8); SeedTable[index++] = (ushort)(result); } while (index <= 0xFF); } Also a static list can be used with the following values: public static readonly int[] SeedTable = new int[] { 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7, 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF, 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, 0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, 0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4, 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, 0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, 0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12, 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A, 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, 0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, 0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78, 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F, 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, 0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D, 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, 0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, 0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3, 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A, 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, 0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, 0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8, 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 }; Determining the checksum data is a byte array for a small block or big block. public ushort GetCheckSum( byte[] data ) { int sum = 0xFFFF; for ( int i = 0; i < data.Length; i++ ) sum = (sum << 8) ^ SeedTable[ (byte)(data[i] ^ (byte)(sum>>8)) ]; return (ushort)sum; }
  11. Pokémon Legality

    Definition Legal (Valid) Pokémon are able to exist naturally in the game without the use of external devices. Illegal Pokémon are not able to exist naturally in the game without the use of external devices. Legitimate (Legit) Pokémon are created without the use of external devices. Because all of these Pokémon are also able to exist naturally in the game, legitimate Pokémon are a subset of legal Pokémon. Although illegal Pokémon can only be created with the use of an external device (they simply cannot exist without the intervention of such a device), legal Pokémon can be created either naturally or through the intervention of an external device. Legitimate Pokémon, however, are always created naturally. Because of the nature of these definitions, it is possible to check for the legality of the Pokémon, but impossible to check for legitimacy. Therefore, there is no objective way to tell whether a Pokémon is truly legitimate or not. Programs such as Legality Checker and pAC can only check for legality, not legitimacy. Examples: A Torterra, originating as a starter Pokémon in the game and raised only in the game is legitimate. A Spiritomb with Wonder Guard is illegal because Spiritomb cannot naturally have Wonder Guard as an ability. The perfect 31 IVs, shiny, docile, Umbreon from the PKM Database is legal because it was created with the use of external devices, however, it could have naturally occurred or existed in the game without the use of an external device. Although it would be extremely rare to encounter such a Pokémon, all aspects of its underlying data could have been generated by the game naturally. Making a legal Pokémon Preparation First, in order to create a Legal Pokémon, the user will need: Pokesav Legality Checker SCV's PID/IV Program Trash Byte Normalizer And will also need a way of transferring Pokémon into your game. Beginning Open Pokesav Open your .sav file Go into the Storage menu on the bottom right corner of the main Pokesav screen and select an available spot in any of your boxes and click Edit At this point, select a Pokémon and the enter desired Trainer ID, Secret ID, Level, Happiness, Name, Held Item, and OT Name. Enter in the correct ability of the chosen Pokémon. Select a valid moveset. Enter desired EVs, but make sure that the sum does not exceed 510 Contest Stats can be anything desired. Marking can be anything desired. Hatched Pokémon Region/Version, choose either Diamond, Pearl, or Platinum Ball Caught With to Pokéball Egg Hatched at to DayCareCouple Met Level to 0 Met at Place to a location that is in the game, where an egg may hatch. Common locations include Route 209. Wild/Caught Pokémon Region/Version, choose either Diamond, Pearl, or Platinum Ball Caught With to any Pokéball that can be purchased at a PokéMart. It is not recommended to use a Master Ball. The Pokémon may not know any moves which can only be learned from hatching. Met at Place to the location where the desired Pokémon can be caught. Met Level and choose a valid level depending on the Met at Place. Consult a Pokédex for this information. Hidden Hex Values section, change 85h according to the method of encounter: 02 – Tall Grass 04 – Dialga/Palkia 05 – Cave/Hall of Origin 07 – Caught in the Water 09 – Catught in Building 0A – Great Marsh 0C – Starters/Fossils PalParked Pokémon Region/Version, choose the GBA Pokémon Game or Colosseum/XD from where the Pokémon may be caught from. Ball Caught With to any Pokéball that can be purchased at a PokéMart. It is not recommended to use a Master Ball. Met at Place to 55 (Pal Park). Met at Level needs to be the level at which the Pokémon migrated. This should not be lower than the level it can be obtained at. Trash Bytes In POKESAV, click on Save in the Storage menu. Name the file and save it somewhere accessible. Drag the saved file (extension is .pkm) over the Trash Byte Normalizer. The program will ask you to press Enter to exit. Click on Load in POKESAV from the Storage menu to import the normalized Pokémon. PID/IV Individual values (IVs) are stat values given at random to Pokémon when they are encountered in the wild. Pokémon which have been bred have a higher predisposition to the individual values of their parents. Both the PID/IV Generator in POKESAV and SCV’s PID/IV Generator will generate a Personality Value (PID) for a given set of IVs. Normal NDS or GBA This type is the most common and will be seen on wild/legend encountered Pokémon in :NDS/GBA games. Wild NDS or GBA This type is less common and will be seen on wild encountered Pokémon in NDS/ GBA :games. It is unclear whether GBA legends will be seen with this type. Uncommon GBA This type is seen uncommonly by wild encountered Pokémon in GBA games. Rare GBA This type is seen rarely by wild encountered Pokémon in GBA games. Very Rare GBA This type is seen in less than 1% of wild encountered Pokémon in GBA games. Ultra Rare GBA This type is seen in less than 0.01% of wild encountered Pokémon in GBA games. Common GBA Event (Restricted) This type is seen with particular promotional GBA Pokémon. Common GBA Event (Unrestricted) This type is seen with particular promotional GBA Pokémon. Note: For more information on Algorithms, check the readme.txt with the Legality download. Using POKESAV Choose the desired IVs and click on PID/IV in POKESAV. Click Generate, look at the algorithms and find the one that matches the Pokémon being created. eg. A wild Starly will be Normal or Wild NDS. The corresponding natures are displayed to the right of the algorithms. Using SCV's IV/PID Generator Open SCV’s PID/IV Generator and select the appropriate option. The program will guide ask various questions relating to the Pokémon. After answering the questions, the program will output legal PIDs. Copy the first one to POKESAV. TIP: Some natures may not yield desired results. Try changing one of the IVs slightly. This will radically alther the given PIDs. Testing the Pokémon In POKESAV, click on Save from the Storage menu Name the file and save it somewhere accessible. Drag the saved file (extension is .pkm file) over the Legality Checker. Make sure nothing says Invalid. The last line, Type should correspond to the algorithm used during the PID/IV stage. Congratulations! The Pokémon is legal and ready to be used! Frequently Asked Questions Will a legal Pokémon work on Pokémon Battle Revolution? A: Yes, if the Pokémon is legal, it will work on PBR. How does a person make a shiny legal Pokémon? A: Select the option for a shiny Pokémon in SCV’s PID/IV Generator. Exporting the Pokémon as an Action-Replay code does not work? A: Due to translation limitations, a second program was created, POKESAVARDSOutput.exe. Load the Pokémon using this version of POKESAV. Will editing an existing Pokémon still be legal? A: Yes, as long as it follows this article. Credits SCV - IV/PID Program Sabresite - Legality Checker and Trash Byte Normalizer coolhbo3K - Definition section Greencat - Creating this article for the guide.
  12. HGSS Save Structure

    Small block offsets Adventure Started - 0x34 Unsigned 32bit integer. Number of seconds since 1/1/2000 00:00:00 Pokémon League Champ Date - 0x3C Unsigned 32bit integer. Number of seconds since 1/1/2000 00:00:00 Trainer Name - 0x64 8 unsigned 16bit integers. Each word represents a character in the game's character table. Trainer ID - 0x74 Random unsigned 16bit integer The visible identification number of a trainer Determines ownership of Pokémon. Secret ID - 0x76 Random unsigned 16bit integer The hidden identification number of a trainer Determines ownership of Pokémon. Determines variation in the game. Money - 0x78 Unsigned 32bit integer. Limited to 0xF423F (999,999) Trainer Gender - 0x7C 0 if male, 1 if female. Determines ownership of Pokémon. Country of Origin - 0x7D Unsigned 8bit integer. Determines whether or not Pokémon get an outsider EXP bonus. Countries other than Japan are inferred from D/P/Pt, since the game has only been released in Japanese. 0x1 = 日本語 (Japan) 0x2 = English (US/UK/AU) 0x3 = Français (France/Québec) 0x4 = Italiano (Italy) 0x5 = Deutsch (Germany) 0x7 = Español (Spain/Latin Americas) 0x8 = 한국어 (South Korea) Johto League Badges - 0x7E Unsigned 8bit bitfield Determines what PokéMart items are for sale, what level outsider Pokémon will obey until, and flags certain in-game events. 0x01 = Zephyr Badge 0x02 = Hive Badge 0x04 = Plain Badge 0x08 = Fog Badge 0x10 = Storm Badge 0x20 = Mineral Badge 0x40 = Glacier Badge 0x80 = Rising Badge Multiplayer Avatar - 0x7F Unsigned 8bit integer. Determines the sprite seen by other players in a multiplayer environment such as the Union Room. 0x00 = None 0x03 = School Kid 0x05 = Bug Catcher 0x06 = Lass 0x07 = Battle Girl 0x0B = Ace Trainer Male 0x0D = Beauty 0x0E = Ace Trainer Female 0x0F = Roughneck 0x1F = Pop Idol 0x23 = Social 0x25 = Cowgirl 0x2A = Ruin Maniac 0x32 = Black Belt 0x3E = Rich Boy 0x3F = Lady 0x46 = Psychic Kanto League Badges - 0x83 Unsigned 8bit bitfield Determines what PokéMart items are for sale, what level outsider Pokémon will obey until, and flags certain in-game events. 0x01 = Boulder Badge 0x02 = Cascade Badge 0x04 = Thunder Badge 0x08 = Rainbow Badge 0x10 = Soul Badge 0x20 = Marsh Badge 0x40 = Volcano Badge 0x80 = Earth Badge Total Playtime - 0x86 Hours = unsigned 16bit integer. Minutes = unsigned 8bit integer. Seconds = unsigned 8bit integer. Number of Current Party Pokémon - 0x94 Unsigned 8bit integer. Party Pokémon - 0x98 The Pokémon in the trainer's party. 6 blocks of 236byte structures Main article: Pokemon NDS Structure General Items - 0x644 Main article: Other items The items in the Trainer's general Items bag pocket. 165 blocks of 4 byte structures (two bytes for item index, two bytes for quantity) Key Items - 0x8D8 Main article: Key items The items in the Trainer's Key Items bag pocket. 43 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). TMs & HMs - 0x9A4 Main article: TMs and HMs The items in the Trainer's TMs & HMs bag pocket. 100 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). TMs & HMs are auto-sorted by item index in ascending order. Mail - 0xB34 Main article: Mail The items in the Trainer's Mail bag pocket. 12 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Medicine - 0xB64 Main article: Medicine The items in the Trainer's Medicine bag pocket. 40 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Berries - 0xC04 Main article: Berries The items in the Trainer's Berries bag pocket. 64 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Berries are auto-sorted by item index in ascending order. Balls - 0xD04 Main article: Pokéballs The items in the Trainer's Balls bag pocket. 24 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Battle Items - 0xD64 Main article: Battle items The items in the Trainer's Battle Items bag pocket. 31 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). First Registered Item - 0xDE0 The first Key items registered for use with the Y button. Unsigned 16bit integer, representing the ID of the item. Second Registered Item - 0xDE2 The first Key items registered for use with a button on the Touch Screen. Unsigned 16bit integer, representing the ID of the item. Starter Pokémon - 0xE44 The Pokédex number of the starter chosen. Unsigned 16bit integer. Map ID Number - 0x1234 Main article: MAP LIST HGSS Unsigned 16bit integer. Player Map X Coordinate - 0x236E Unsigned 16bit integer. Player Map Y Coordinate - 0x2372 Unsigned 16bit integer. Player Map Z Coordinate - 0x2376 Unsigned 16bit integer. Follower Map X Coordinate - 0x23BE Unsigned 16bit integer. Follower Map Y Coordinate - 0x23C2 Unsigned 16bit integer. Follower Map Z Coordinate - 0x23C6 Unsigned 16bit integer. Money held by mother - 0xC0D8 Unsigned 32bit integer. Limited to 0xF423F (999,999) Big block offsets Pokémon in Storage - 0xF700 The Pokémon in Bill's PC. 18 blocks of 4080byte structures (each box contains 30 136byte Pokémon structures). Each box structure is separated by 16 bytes of space (unlike D/P). Main article: Pokemon NDS Structure Box Names - 0x21708 18 blocks of 40byte structures The first 11 words (22 bytes) each word represent a character in the game's character table. Box Wallpapers - 0x219D8 18 bytes, each representing the wallpaper for the corresponding box. 0x20 = Ho-oh 0x21 = Lugia 0x22 = TV 0x23 = Pokéthlon 0x24 = Starters 0x25 = Pichu 0x26 = Ecruteak 0x27 = Team Rocket
  13. Pokémon Dream Radar Save Structure

    Pokémon Dream Radar Save Data Offset Description 0x00-0x03 "0DSC" header tag 0x04-0x67 Unknown 0x68-0x6B Current orbs 0x6C-0x6F Total orbs collected (highscore data) 0x70 Unknown 0x71 Beam upgrade lvl (Value range 0x00-0x04) 0x72 Battery pack upgrade lvl (Value range 0x00-0x04) 0x73 Visoscope upgrade lvl (Value range 0x00-0x04) 0x74 Number of recharged clouds when game was saved 0x75-0x25C Unknown. Transferable pokemon/item data? 0x25D-261 Save date? Unknown format. 0x261-267 Unknown. 0x268 Vortex Charge stored # (range 0x00-0x63) 0x269 Dragnet Charge stored # (range 0x00-0x63) 0x26A Energy Recharge stored # (range 0x00-0x63) 0x26B Unknown. 0x26C Unknown. 0x00 before tutorial, seems to be fixed to 0xFA after tutorial is completed 0x26D-0x26F Extension Unlock Flags 0x271 Unknown. 0x272-0x273 Legendary Catched Flags 0x274-0x277 Has something to do with pink orbs and preferred orb color 0x278-0x27B Has something to do with green orbs and preferred orb color 0x27C-0x27F Has something to do with orange orbs and preferred orb color 0x284-0x283 Has something to do with blue orbs and preferred orb color 0x244-0x287 Unknown. 0x288-0x28B Orb Count until next story event* Resets to 0 after Tornadus, Thundurus or Landorus are catched 0x28C-0x28F Number of searches (highscore data) 0x290-0x293 Number of examined clouds (highscore data) 0x294-0x297 Number of captured Pokémon (highscore data) 0x298-0x29B Number of recovered items (highscore data) 0x29C-0x29F Tornadus capture time (highscore data) 0x2A0-0x2A3 Thundurus capture time (highscore data) 0x2A4-0x2A7 Landorus capture time (highscore data) 0x2A8-0x2AF Unknown 0x2B0-0x2B3 "1DSC" end of file tag *Story events are: Tornadus catched, Thundurus catched, Landorus catched. Note: The game stores somewhere the timestamp when it was saved, so it knows if clouds have been recharged. Flags Pokémon Dream Radar handles unlockable data trough bit flags. Generation V Extension Unlocked Flags Offset 0x26D Bits are represented in the following order: 76543210 0 = locked, 1 = unlocked, x = unknown bit ? | Eureka G completed? | | Eureka B completed? | | | Eureka A completed? | | | | x x x x x x 1 1 | | | | | | | Game Completed flag (unlocks highscores and credits) | | Eureka A? | Eureka B? Eureka G? note: except the game completed flag, the others are linked to story events stored elsewhere; unseting them won't restart the corresponding events. Generation IV Extension Unlocked Flags Offset 0x26E Bits are represented in the following order: 76543210 0 = locked, 1 = unlocked, x = unknown bit ? | Diving | | Rainbow | | | Renegade | | | | x 1 1 1 1 1 x x | | | | | | | Gets set after completing tutorial | | ? | Temporal Spatial Extension flags Offset 0x26F Bits are represented in the following order: 76543210 0 = locked, 1 = unlocked, x = unknown bit Gets set after tutorial is completed | Retrieval | | ? | | | ? | | | | 1 1 x x 1 1 x x | | | | | | | ? | | ? | Dowsing Simulator A,B,G note: even if simulator A,B,G flag is set they won't appear if other game events aren't flagged. Legendary catched flags offset 0x272-0x273 Bits are represented in the following order: 76543210 0 = locked, 1 = unlocked, x = unknown bit 0x272 1 1 1 1 x x x x | | | | | | | | | | | | ? ? ? ? | | | Dialga | | Palkia | Giratina Ho-Oh 0x273 x x x x 1 1 1 1 | | | | | | | | ? ? ? ? | | | | | | | Lugia | | Tornadus | Thundurus Landorus Note: the corresponding extension needs to be available to catch the Pokémon, for Tornadus, Landorus, Thundurus this means the corresponding extension has to be re-enabled.
  14. DP Save Structure

    General Save File Structure A Pokémon Diamond and Pearl save file is divided into two pairs of blocks. Each pair consists of one general block, one storage box block, and one hall of fame block. The storage box block contains current information regarding Bebe's storage system, including stored Pokémon, box names, box wallpapers, and the current open box. The general block contains current information on every other aspect of the game's progress, such as the trainer's name, ID number, acquired badges, party Pokémon, items, and much more. The hall of fame block contains information about the Pokémon used to defeat the Elite 4. The other pair is a backup from the previous save. The first general block in the file begins at 0x00000. The first storage block begins at 0x0C100. The first hall of fame block starts at 0x20000. The second general, storage, and hall of fame blocks are at the same address + 0x40000. The current blocks are not always stored in linear order in the save file (i.e. if the second general block is the more current, the first or second storage box block can possibly be the current as well). Block Footers The last 20 bytes of each general and storage box block is a footer. The last 24 bytes of each hall of fame block is a footer. The footer is used to determine: The size of the block Whether the block is current or a backup. Which big & small blocks link together. General/Storage Box Footer Offset Purpose 0x00 - 0x03 Storage Block Save Count 0x04 - 0x07 General Block Save Count 0x08 - 0x0B Size of block 0x0C - 0x0F Run-time usage 0x10 - 0x11 Run-time usage 0x12 - 0x13 Checksum Hall of Fame Footer Offset Purpose 0x00 - 0x03 Save ID number 0x04 - 0x07 Save index number 0x08 - 0x0B Run-time usage 0x0C - 0x0F Run-time usage 0x10 - 0x13 Size of block 0x14 - 0x15 Run-time usage 0x16 - 0x17 Checksum Loading/Saving A Save File When one starts a new game for the very first time, every byte of the save file is set to 0xFF. The first time the game is saved, the "current" info is written to the second half of the save file. This is important to note when loading a save. When the game loads a save file, it first compares the small block save count of both general blocks. If the general block with the highest save count has a correct checksum, then the game moves on to check the storage blocks. The storage block with the highest storage block save count is chosen first, and if its general block save count matches the currently chosen general block (and has a correct checksum), the file is successfully loaded. If both storage blocks have the same storage block save count, then the storage block with a higher general block save count is chosen instead, and the if the checksum is correct, the file is successfully loaded. If the checksum was incorrect for either block, the game falls on the other pair of general and storage blocks; if the checksums are correct in both, the game reports a save file corruption error, and that is the data loaded. If the checksum in either block is incorrect, the game reports a save file corruption error, and the save file is not loaded. A new game must be started at that point. When the game saves data, the general block save count is incremented + 1. If nothing in the storage block has changed, then no changes are made to the storage block and no further changes are made to the general block. However, if changes have been made to the storage block, then the storage block save count is incremented by 1 in both the storage block and general block footers. At this point, the backup general block is overwritten with the new general block data, and (if changes were made to the storage block), the backup storage block is also overwritten. This is the reason why the game varies on how long it takes to save. Thus, either general block can be linked with either storage block, and the current pair is identified using the footer information. Small block offsets Adventure Started - 0x34 Unsigned 32bit integer. Number of seconds since 1/1/2000 00:00:00 Pokémon League Champ Date - 0x3C Unsigned 32bit integer. Number of seconds since 1/1/2000 00:00:00 Trainer Name - 0x64 8 unsigned 16bit integers. Each word represents a character in the game's character table. Trainer ID - 0x74 Random unsigned 16bit integer The visible identification number of a trainer Determines ownership of Pokémon. Secret ID - 0x76 Random unsigned 16bit integer The hidden identification number of a trainer Determines ownership of Pokémon. Determines variation in the game. Money - 0x78 Unsigned 32bit integer. Limited to 0xF423F (999,999) Trainer Gender - 0x7C 0 if male, 1 if female. Determines ownership of Pokémon. Country of Origin - 0x7D Unsigned 8bit integer. Determines whether or not Pokémon get an outsider EXP bonus. 0x1 = 日本語 (Japan) 0x2 = English (US/UK/AU) 0x3 = Français (France/Québec) 0x4 = Italiano (Italy) 0x5 = Deutsch (Germany) 0x7 = Español (Spain/Latin Americas) 0x8 = 한국어 (South Korea) Badges - 0x7E Unsigned 8bit bitfield Determines what PokéMart items are for sale, what level outsider Pokémon will obey until, and flags certain in-game events. 0x01 = Coal Badge 0x02 = Forest Badge 0x04 = Cobble Badge 0x08 = Fen Badge 0x10 = Relic Badge 0x20 = Mine Badge 0x40 = Icicle Badge 0x80 = Beacon Badge Multiplayer Avatar - 0x7F Unsigned 8bit integer. Determines the sprite seen by other players in a multiplayer environment such as the Union Room. 0x00 = None 0x03 = School Kid 0x05 = Bug Catcher 0x06 = Lass 0x07 = Battle Girl 0x0B = Ace Trainer Male 0x0D = Beauty 0x0E = Ace Trainer Female 0x0F = Roughneck 0x1F = Pop Idol 0x23 = Social 0x25 = Cowgirl 0x2A = Ruin Maniac 0x32 = Black Belt 0x3E = Rich Boy 0x3F = Lady 0x46 = Psychic Total Playtime - 0x86 Hours = unsigned 16bit integer. Minutes = unsigned 8bit integer. Seconds = unsigned 8bit integer. Number of Current Party Pokémon - 0x94 Unsigned 8bit integer. Party Pokémon - 0x98 The Pokémon in the trainer's party. 6 blocks of 236byte structures Main article: Pokemon NDS Structure General Items - 0x624 Main article: Other items The items in the Trainer's general Items bag pocket. 165 blocks of 4 byte structures (two bytes for item index, two bytes for quantity) Key Items - 0x8B8 Main article: Key items The items in the Trainer's Key Items bag pocket. 50 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). TMs & HMs - 0x980 Main article: TMs and HMs The items in the Trainer's TMs & HMs bag pocket. 100 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). TMs & HMs are auto-sorted by item index in ascending order. Mail - 0xB10 Main article: Mail The items in the Trainer's Mail bag pocket. 12 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Medicine - 0xB40 Main article: Medicine The items in the Trainer's Medicine bag pocket. 40 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Berries - 0xBE0 Main article: Berries The items in the Trainer's Berries bag pocket. 64 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Berries are auto-sorted by item index in ascending order. Balls - 0xCE0 Main article: Pokéballs The items in the Trainer's Balls bag pocket. 15 blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Battle Items - 0xD1C Main article: Battle items The items in the Trainer's Battle Items bag pocket. 56 (?) blocks of 4 byte structures (two bytes for item index, two bytes for quantity). Starter Pokémon - 0xDFC The Pokédex number of the starter chosen. Unsigned 16bit integer. Lotto number - 0xE14 Unsigned 16bit integer. Fly Locations - 0x1112 9byte bit field Has obtained lotto prize - 0x1131 1 if obtained, 0 if not yet obtained Pokétch Enabled (?) - 0x114C 0x00 if disabled, can be 0x03 or 0x07 if enabled Number of Pokétch Apps Enabled - 0x114D Max number = 25 (0x19) Currently Selected Pokétch App - 0x114E Pokétch app currently viewed in DS bottom screen. Pokétch apps are ordered like so: 0x00 = Digital Watch 0x01 = Calculator 0x02 = Memo Pad 0x03 = Pedometer 0x04 = Pokémon List 0x05 = Friendship Checker 0x06 = Dowsing Machine 0x07 = Berry Searcher 0x08 = Day-Care Checker 0x09 = Pokémon History 0x0A = Counter 0x0B = Analog Watch 0x0C = Marking Map 0x0D = Link Searcher 0x0E = Coin Toss 0x0F = Move Tester 0x10 = Calendar 0x11 = Dot Artist 0x12 = Roulette 0x13 = Trainer Counter 0x14 = Kitchen Timer 0x15 = Color Changer 0x16 = Matchup Checker 0x17 = Stopwatch 0x18 = Alarm Clock Pokétch Apps Enabled - 0x114F 25 one byte flags, each corresponding to one Pokétch app (in the same order as above) 1 = enabled, 0 = disabled Map ID Number - 0x1238 Main article: List of Maps Unsigned 16bit integer. Sinnoh Pokédex Unlocked - 0x1414 1 if unlocked, 0 if not unlocked. National Pokédex Unlocked - 0x1415 1 if unlocked, 0 if not unlocked. Berry Trees - 0x1E84 128 blocks of 14byte structures List of Berry Tree locations Main article: Berry Trees Rival's Name - 0x25A8 8 unsigned 16bit integers. Each word represents a character in the game's character table. Map X Coordinate - 0x25FA Unsigned 16bit integer. Map Y Coordinate - 0x25FE Unsigned 16bit integer. Map Z Coordinate - 0x2602 Unsigned 16bit integer. Players Met Underground - 0x3A2C Unsigned 32bit integer Max value = 999999 (0xF423F) Spheres Obtained - 0x3A38 Unsigned 32bit integer Max value = 999999 (0xF423F) Fossils Obtained - 0x3A3C Unsigned 32bit integer Max value = 999999 (0xF423F) Gifts Given - 0x3A40 Unsigned 32bit integer Max value = 999999 (0xF423F) Traps Hit - 0x3A44 Unsigned 32bit integer Max value = 999999 (0xF423F) Traps Triggered - 0x3A48 Unsigned 32bit integer Max value = 999999 (0xF423F) Flags Captured - 0x3A60 Unsigned 32bit integer Max value = 999999 (0xF423F) Poffins - 0x5050 98 (?) blocks of 8byte structures 0x00: Poffin Type (Overall flavor?) 0x01: Spicy/Cool Level 0x02: Dry/Beauty Level 0x03: Sweet/Cute Level 0x04: Bitter/Smart Level 0x05: Sour/Tough Level 0x06: Smooth Level 0x07: value is 0 Trainer Card Signature - 0x5904 The signature on the back of the Trainer Card. 192 blocks of 8 byte structures The signature can be changed by speaking to the NPC behind the leftmost counter on the top floor of any Pokémon Center. It is created using the stylus. Main article: Trainer Card Signature Score - 0x5F08 A measure of the player's progress or performance in the game. Unsigned 32bit integer Max value = 999999 (0xF423F) Pokémon Caught - 0x5F2C Unsigned 32bit integer Max value = 999999 (0xF423F) Pokémon Met While Fishing - 0x5F30 Unsigned 32bit integer Max value = 999999 (0xF423F) Pokémon Eggs - 0x5F34 Unsigned 32bit integer Max value = 999999 (0xF423F) Pokémon Defeated - 0x5FAC Unsigned 32bit integer Max value = 999999 (0xF423F) Single Battle Wins - 0x5FCA Unsigned 16bit integer Max value = 9999 (0x270F) Consecutive Single Battle Wins - 0x5FCC Unsigned 16bit integer Max value = 9999 (0x270F) Double Battle Wins - 0x5FCE Unsigned 16bit integer Max value = 9999 (0x270F) Consecutive Double Battle Wins - 0x5FD0 Unsigned 16bit integer Max value = 9999 (0x270F) Multi Battle Wins - 0x5FD2 Unsigned 16bit integer Max value = 9999 (0x270F) Consecutive Multi Battle Wins - 0x5FD4 Unsigned 16bit integer Max value = 9999 (0x270F) Link Multi Battle Wins - 0x5FD6 Unsigned 16bit integer Max value = 9999 (0x270F) Consecutive Link Multi Battle Wins - 0x5FD8 Unsigned 16bit integer Max value = 9999 (0x270F) Wi-Fi Battle Wins - 0x5FDA Unsigned 16bit integer Max value = 9999 (0x270F) Consecutive Wi-Fi Battle Wins - 0x5FDC Unsigned 16bit integer Max value = 9999 (0x270F) Contests Won - 0x5FE2 Unsigned 16bit integer Max value = 9999 (0x270F) Ribbons - 0x5FE6 Unsigned 16bit integer Max value = 9999 (0x270F) Capsules in PC - 0x6050 12 blocks of 24 bytes structures. Battle Points - 0x65F8 Unsigned 16bit integer Max value = 9999 (0x270F) Safari Zone Pokémon - 0x72D0 Unsigned 32bit integer result from the ARNG. Four daily safari zone Pokémon Indexn = ( ARNG >> ( n * 0x5 ) ) & 0x1F List of Safari Zone Pokémon Notes: Both Safari Zone Pokémon and Swarm Pokémon have the same ARNG value. Swarm Pokémon - 0x72D4 Unsigned 32bit integer result from the ARNG. One daily swarm Pokémon Index = ARNG % 0x1C List of Swarm Pokémon Notes: Both Safari Zone Pokémon and Swarm Pokémon have the same ARNG value. Daily Trophy Pokémon Today - 0x72DC Unsigned 8bit integer First daily trophy garden Pokémon List of Daily Trophy Pokémon Daily Trophy Pokémon Yesterday - 0x72DE Unsigned 8bit integer Second daily trophy garden Pokémon List of Daily Trophy Pokémon Notes: Yesterday's Pokémon can be caught after beating the Elite 4 and receiving the National Pokédex upgrade. Honey Trees - 0x72E4 21 blocks of 8byte structures List of Honey Tree locations Main article: Honey Trees GTS Pokémon - 0x73E8 One Pokémon 1 block of 236byte structures The data for the Pokémon currently uploaded to the GTS (if any). Main article: Pokemon NDS Structure
  15. BW Save Structure

    Save Entry The primary save starts at 0x0. The backup save starts at 0x24000. Main Save File & Backup Start End Size Checksum Mirror Description 00000 003DF 3E0 003E2 23F00 Box Names 00400 013EF FF0 013F2 23F02 Box 1 01400 023EF FF0 023F2 23F04 Box 2 02400 033EF FF0 033F2 23F06 Box 3 03400 043EF FF0 043F2 23F08 Box 4 04400 053EF FF0 053F2 23F0A Box 5 05400 063EF FF0 063F2 23F0C Box 6 06400 073EF FF0 073F2 23F0E Box 7 07400 083EF FF0 083F2 23F10 Box 8 08400 093EF FF0 093F2 23F12 Box 9 09400 0A3EF FF0 0A3F2 23F14 Box 10 0A400 0B3EF FF0 0B3F2 23F16 Box 11 0B400 0C3EF FF0 0C3F2 23F18 Box 12 0C400 0D3EF FF0 0D3F2 23F1A Box 13 0D400 0E3EF FF0 0E3F2 23F1C Box 14 0E400 0F3EF FF0 0F3F2 23F1E Box 15 0F400 103EF FF0 103F2 23F20 Box 16 10400 113EF FF0 113F2 23F22 Box 17 11400 123EF FF0 123F2 23F24 Box 18 12400 133EF FF0 133F2 23F26 Box 19 13400 143EF FF0 143F2 23F28 Box 20 14400 153EF FF0 153F2 23F2A Box 21 15400 163EF FF0 163F2 23F2C Box 22 16400 173EF FF0 173F2 23F2E Box 23 17400 183EF FF0 183F2 23F30 Box 24 18400 18DBF 9C0 18DC2 23F32 Inventory 18E00 19333 534 19336 23F34 Party Pokemon 19400 19467 68 19469 23F36 Trainer Data 19500 1959B 9C 1959E 23F38 ??? 19600 1A937 1338 1A93A 23F3A ??? 1AA00 1B1C3 7C4 1B1C6 23F3C ??? 1B200 1BF53 D54 1BF56 23F3E ??? 1C000 1C02B 2C 1C02E 23F40 ??? 1C100 1C757 658 1C75A 23F42 ??? Gym badge data 1C800 1D293 A94 1D296 23F44 ??? 1D300 1D4AB 1AC 1D4AE 23F46 ??? 1D500 1D8EB 3EC 1D8EE 23F48 ??? 1D900 1D95B 5C 1D95E 23F4A ??? 1DA00 1DBDF 1E0 1DBE2 23F4C ??? 1DC00 1DCA7 A8 1DCAA 23F4E ??? 1DD00 1E15F 460 1E162 23F50 ??? 1E200 1F5FF 1400 1F602 23F52 ??? 1F700 1F9A3 2A4 1F9A6 23F54 ??? 1FA00 1FCDB 2DC 1FCDE 23F56 ??? 1FD00 2004B 34C 2004E 23F58 ??? 20100 204EB 3EC 204EE 23F5A ??? 20500 205F7 F8 205FA 23F5C ??? 20600 208FB 2FC 208FE 23F5E ??? 20900 20993 94 20996 23F60 ??? 20A00 20D5B 35C 20D5E 23F62 ??? 20E00 20FCB 1CC 20FCE 23F64 ??? 21000 21167 168 2116A 23F66 ??? 21200 212EB EC 212EE 23F68 ??? 21300 214AF 1B0 214B2 23F6A ??? 21500 2151B 1C 2151E 23F6C ??? 21600 21AD3 4D4 21AD6 23F6E ??? 21B00 21B33 34 21B36 23F70 ??? 21C00 21C3B 3C 21C3E 23F72 ??? 21D00 21EAB 1AC 21EAE 23F74 ??? 21F00 22A8F B90 22A92 23F76 ??? 22B00 22B9B 9C 22B9E 23F78 ??? 22C00 2344F 850 23452 23F7A Entralink Forest pokémon data 23500 23527 28 2352A 23F7C ??? 23600 23883 284 23886 23F7E ??? 23900 2390F 10 23912 23F80 ??? 23A00 23A5B 5C 23A5E 23F82 ??? 23B00 23C6B 16C 23C6E 23F84 ??? 23D00 23D3F 40 23D42 23F86 ??? 23E00 23EFB FC 23EFE 23F88 ??? 23F00 23F8B 8C 23F9A Checksum Block Start and End indexes are inclusive. note: sections might vary in lenght depending on how much data they store (this behavior has been seen at least in trainer data) Gym Badge Obtained Date Gym badge dates are stored starting 1C704 and 407004. Byte 1 is how many years after 2000, Byte 2 is the month, and Byte 3 is the day (Byte 4 is 0, don't know if it has any meaning or if it's part of the year).