Jump to content

evandixon

Administrator
  • Posts

    5910
  • Joined

  • Last visited

  • Days Won

    84

Everything posted by evandixon

  1. evandixon

    Main Menu Backgrounds

    Backgrounds used in the main menu
  2. From the album: Main Menu Backgrounds

    A picture of the protagonists relaxing under the tree on the big hill. This is always used on the bottom screen.
  3. From the album: Main Menu Backgrounds

    A picture of the members of the Expedition Society, including the protagonists, around the Pokémon Nexus.
  4. From the album: Main Menu Backgrounds

    A picture of the protagonists in Lively Town.
  5. From the album: Main Menu Backgrounds

    A picture of the protagonists wearing harmony scarves under the tree on the big hill. This background is available after the protagonists start wearing harmony scarves.
  6. From the album: Main Menu Backgrounds

    A picture illustrating a typical day at school, with the player being Piplup and the partner being Chespin. This background is available from the beginning of the game.
  7. evandixon

    X/Y File System

    Authors: Kaphotics, magical, 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 [Dead link] * 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
  8. evandixon

    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
  9. evandixon

    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
  10. evandixon

    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.
  11. evandixon

    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.
  12. evandixon

    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.
  13. evandixon

    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
  14. 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; }
  15. evandixon

    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
  16. 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.
  17. evandixon

    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
  18. evandixon

    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).
  19. evandixon

    B2W2 Save Structure

    Save Entry The primary save starts at 0x0. The backup save starts at 0x26000. Main Save File & Backup Start End Checksum Mirror Description 00000 003DF 003E2 25F00 Box Names 00400 013EF 013F2 25F02 Box 1 01400 023EF 023F2 25F04 Box 2 02400 033EF 033F2 25F06 Box 3 03400 043EF 043F2 25F08 Box 4 04400 053EF 053F2 25F0A Box 5 05400 063EF 063F2 25F0C Box 6 06400 073EF 073F2 25F0E Box 7 07400 083EF 083F2 25F10 Box 8 08400 093EF 093F2 25F12 Box 9 09400 0A3EF 0A3F2 25F14 Box 10 0A400 0B3EF 0B3F2 25F16 Box 11 0B400 0C3EF 0C3F2 25F18 Box 12 0C400 0D3EF 0D3F2 25F1A Box 13 0D400 0E3EF 0E3F2 25F1C Box 14 0E400 0F3EF 0F3F2 25F1E Box 15 0F400 103EF 103F2 25F20 Box 16 10400 113EF 113F2 25F22 Box 17 11400 123EF 123F2 25F24 Box 18 12400 133EF 133F2 25F26 Box 19 13400 143EF 143F2 25F28 Box 20 14400 153EF 153F2 25F2A Box 21 15400 163EF 163F2 25F2C Box 22 16400 173EF 173F2 25F2E Box 23 17400 183EF 183F2 25F30 Box 24 18400 18DEB 18DEE 25F32 Inventory 18E00 19333 19336 25F34 Party Pokemon 19400 194AF 194B2 25F36 Trainer Data 19500 195A7 195AA 25F38 Trainer Position 19600 1A937 1A93A 25F3A Unity Tower and survey stuff 1AA00 1B1C3 1B1C6 25F3C Pal Pad Player Data (30d) 1B200 1BF53 1BF56 25F3E Pal Pad Friend Data 1C000 1C093 1C096 25F40 C-Gear 1C100 1C757 1C75A 25F42 Card Signature Block & ???? 1C800 1D293 1D296 25F44 Mystery Gift 1D300 1D4AB 1D4AE 25F46 Dream World Stuff (Catalog) 1D500 1D8EB 1D8EE 25F48 Chatter 1D900 1D95B 1D95E 25F4A Adventure data http://projectpokemon.org/forums/showthread.php?24589-B2W2-General-ROM-Info&p=167300&viewfull=1#post167300 1DA00 1DBDF 1DBE2 25F4C Trainer Card Records 1DC00 1DCA7 1DCAA 25F4E 1DD00 1E15F 1E162 25F50 (40d) 1E200 1F5FF 1F602 25F52 1F700 1F9A3 1F9A6 25F54 Contains flags and references for downloaded data (Musical) 1FA00 1FADF 1FAE2 25F56 Fused Reshiram/Zekrom Storage 1FB00 1FE4B 1FE4E 25F58 1FF00 203DF 203E2 25F5A Const Data Block and Event Flag Block (0x35E is the split) 20400 204F7 204FA 25F5C 20500 207FB 207FE 25F5E Tournament Block 20800 20893 20896 25F60 20900 20C5B 20C5E 25F62 Battle Box Block 20D00 20ED3 20ED6 25F64 Daycare Block (50d) 20F00 210DF 201E2 25F66 Strength Boulder Status Block 21100 211EF 211F2 25F68 Badge Flags, Money, Trainer Sayings 21200 213B3 213B6 25F6A Entralink (Level & Powers etc) 21400 218DB 218DE 25F6C Pokedex 21900 21933 21936 25F6E Swarm and other overworld info - 2C - swarm, 2D - repel steps, 2E repel type 21A00 21A3B 21A3E 25F70 21B00 21CAB 21CAE 25F72 21D00 2288F 22892 25F74 22900 229AB 229AE 25F76 Online Records 22A00 2324F 23252 25F78 Area NPC data - encrypted (60d) 23300 23583 23586 25F7A 23600 2360F 23612 25F7C 23700 237A7 237AA 25F7E 23800 2396B 2396E 25F80 23A00 23A7F 23A82 25F82 23B00 23BFB 23BFE 25F84 Hollow/Rival Block 23C00 252A7 252AA 25F86 Join Avenue Block 25300 25797 2579A 25F88 Medal data 25800 2585F 25862 25F8A Key-related data 25900 259FB 259FE 25F8C (70d) 25A00 25DE3 25DE6 25F8E 25E00 25EEF 25EF2 25F90 25F00 25F93 25FA2 Checksum Block (73d) Start and End index are inclusive. Download / Extra Content Start End Checksum Mirror Description 4C000 4D913 ~ ~ Battle Video (Native) 4DA00 4F313 ~ ~ Battle Video (1st Download) 4F400 50D13 ~ ~ Battle Video (2nd Download) 50E00 52713 ~ ~ Battle Video (3rd Download) 52800 54DFF 54E02 54F00 C-Gear Background 55800 6D3FF 6D342 6D500 Musical Download (narc download) 6D800 73A03 73A06 73B00 Pokedex Skin 74000 7555B 7555E 75600 Hall of Fame (Main); Extra Checksum 0x75600-0x75603 @ 0x75612 75800 76D5B 76D5E 76E00 Hall of Fame (Backup); Extra Checksum 0x76E00-0x76E03 @ 0x76E12 77000 77511 77512 - Unknown 7A000 7B213 7B216 7B300 PWT Download 1; Extra Checksum @ 0x7B312 7B400 7C613 7C616 7C700 PWT Download 2; Extra Checksum @ 0x7C712 7C800 7DA13 7DA16 7DB00 PWT Download 3; Extra Checksum @ 0x7DB12 7E000 7EA1F Memory Link Data (2 blocks of 0x400 length, extra data afterwards) 7F000 CRGF - GameFreak CRC table - Nintendo 3DS Link data Nintendo 3DS Link Data Start End Checksum Mirror Description 7F010 7F013 ~ ~ Unknown. Value that prevents receiving a Pokémon again? 7F014 7F093 7F094 ~ Nintendo 3DS Link data slots? 4 bytes each slot, can be item/pokémon
  20. evandixon

    Pokerus

    What is Pokérus? Pokérus, is a Pokémon virus, and combined this makes the word Pokérus. Pokémon-virus Poké + rus. Now this disease helps the Pokémon that has it grow faster. However, it doesn't gain experience faster, it gains EVs faster. It actually doubles the EVs, so lets say that... Empoleon-Pokérus fights a Gastly. Of course the Empoleon would gain experience just like normal, but then the EV gain would be doubled. So instead of getting one special attack EV you would get 2 EVs towards special attack. It's really a nice thing to have in training, you could have an awesome level 50 Pokémon that could take down Pokémon that out level you. Where and how do you get Pokérus? There is no specific place that you can get Pokérus, you can get Pokérus from wild Pokémon. You could either luckily catch a Pokémon with Pokérus and then spread it to the rest of your party. If you battle a wild Pokémon that has pokerus, odds are that you are going to get it. You won't know if the wild Pokémon has it until you actually get it. The odds are just a little bit better then encountering a shiny Pokémon. Basically, the odds are not very good. How do I know if I have Pokérus? This is easy, all you have to do is click on your Pokémon's summary and then look up in the top-right corner of your Pokémon's picture and see if there is a purple block there, if there is then on that block should be the letters PKRS Pokérus just abbreviated. Also, if a Pokémon already has Pokérus then there should a smiley face by their picture. What if my Pokémon already has Pokérus but it has a smiley face? In that case then you can no longer spread the disease using that Pokémon. The effects of Pokérus are still working, it just is no longer contagious. How do I spread Pokérus? This is quite simple. I made up a way to do this effectively. Member 1: Pokérus: Member 2: Member 3: Member 4: Member 5: Member 6: So Member 1 has Pokérus have it battle a few times then member 2 should get it which is perfect. Once member 2 has it then switch member 2 and member three around so it will look like this Member 1: Pokérus: Member 3: Member 2: Pokérus: Member 4: Member 5: member 6: Then battle some more and when member 3 gets Pokérus member 4 will too. So then you switch member 3 and member 5. Member 1: Pokérus: Member 5 Member 2: Pokérus: Member 4: Pokérus Member 3: Pokérus: Member 6: Then battle a few more times and all of the Pokémon should have Pokérus in your party. Be warned at midnight any Pokémon with Pokérus in your party will be cured at midnight. If the Pokémon is in your PC, it wont be cured. To keep Pokémon uncured, put them into your party before midnight so they can continue spreading the virus to other Pokémon. This technique was also posted in the EV guide part of the wiki. When does Pokérus stop being contagious? When it's been in your party for 24 hours. Alternatively, it will naturally cure if it's in your party at midnight. Is Pokérus something I want to have? Just in case you missed this, the answer is yes. If you thought it was a bad thing then read through the guide again.
  21. evandixon

    Pokémon Breeding

    Now, as you may know, I [original author, not evandixon] have written a few guides to a few things on the project pokemon forums and I thought this guide was pretty good and in depth so I put it here. I edited it a little to make it more suitable for Wiki. I hope all readers appreciate it and find it helpful EDIT: Sorry, I found it very confusing and not very Wiki, so I put up the guide I wrote and replaced a lot. Not to mention the amount of errors I spotted while editing <.< Intro Lots of people know how to breed, but not quite how to IV breed or what influences what. Here I will break it down into simple steps and lists of what effects breeding and outcomes of it. What Breeding is: Breeding can be your way to get multiples of the same pokemon, or for filling up your Pokedex with Baby Forms, but most importantly breeding is what many players do to get a pokemon for competitive play. Breeding creates legitimate Pokemon, though it takes lots of patience to get something worth while. How it happens: The Day Care Center attendants are positive they have no clue, but most people who are old enough to understand reproduction know what it is. Leave a female Pokemon with a Male (or any with a Ditto) and if they like each other they will breed and create an Egg. If it is in the Ditto Group (Check Below) it could only be bred with a Ditto. If it is classified in the Cannot be Bred Group (Also check below), as the name tells, it cannot be bred. Gender Contributions Females of the pair determine the species of the offspring. So breeding a male Tyranitar with a female Swampert will yeil a baby Mudkip, not a Larvitar. If one of the parents is Ditto, then the offspring's species will match with the other parent's species; that means that you cannot hatch a Ditto. Males of the pair may determine Egg moves so long as the father knows it and the offspring are able to learn it. Egg Moves and TM moves are passed by the males. Females may pass their nature to the offspring by holding an Everstone. This merely increases the chance of the nature being inherited, so other natures may also still be gained. Both parents influence IVs of the offspring. More of this is explained under the IV section. Both parents may pass moves gained by level up so long as both parents know the move and the baby can learn it as well. If the parents are from different games, there is an increases chance of getting a shiny. Egg Groups NOTE: Some Pokemon have multiple egg groups. They can breed with any gender compatible Pokemon that is in any of their egg groups. You can use these Pokemon to help get your egg moves from one group to another, and perfect your chain bred Pokemon. Ditto breeds with every Pokemon that can breed, and the cannot breed section cannot breed with anything. The Ditto egg group Pokemon ONLY breed with Ditto. Plant Abomasnow,Bayleef, Bellossom, Bellsprout, Breloom, Bulbasaur,Cacnea, Cacturne, Carnivine, Cherrim, Cherubi, Chikorita,Exeggcute, Exeggutor,Gloom, Grotle, Hoppip,Ivysaur, Jumpluff,Lombre, Lotad, Ludicolo,Meganium,Nuzleaf, Oddish, Paras, Parasect, Roselia, Roserade Seedot, Shiftry, Shroomish, Skiploom, Snover, Sunflora, Sunkern, Tangela, Tangrowth, Torterra, Tropius, Turtwig, Venusaur, Victreebel, Vileplume, Weepinbell Bug Ariados,Beautifly, Beedrill, Burmy, Butterfree,Cascoon, Caterpie, Combee,Drapion, Dustox,Flygon, Forretress, Gligar, Gliscor, Heracross,Illumise,Kakuna, Kricketot, Kricketune, Ledian, Ledyba,Masquerain, Metapod, Mothim,Nincada, Ninjask,Paras, Parasect, Pineco, Pinsir Scizor, Scyther, Shuckle, Silcoon, Skorupi, Spinarak, Surskit, Trapinch,Venomoth, Venonat, Vespiquen, Vibrava, Volbeat,Weedle, Wormadam, Wurmple,Yanma, Yanmega, Flying Aerodactyl, Altaria, Chatot, Crobat, Dodrio, Doduo, Farfetch'd, Fearow, Golbat, Honchkrow, Hoothoot, Murkrow, Natu, Noctowl, Pelipper, Pidgeot, Pidgeotto, PidgeySkarmory, Spearow, Staraptor, Staravia, Starly, Swablu, Swellow, Taillow, Togekiss, Togetic, Wingull, Xatu, Zubat Humanshape Abra, Alakazam, Buneary, Cacnea, Cacturne, Chimchar, Croagunk, Drowzee, Electabuzz, Electivire, Hariyama, Hitmonchan, Hitmonlee, Hitmontop, Hypno, Illumise, Infernape, Jynx, Kadabra, Lopunny, Lucario, Machamp, Machoke, Machop, Magmar, Magmortar, Makuhita, Medicham, Meditite, Monferno, Mr. Mime, Sableye, Spinda, Toxicroak, Volbeat Mineral Froslass, Geodude, Glalie, Golem, Graveler, Nosepass, Onix, Probopass, Snorunt, Steelix, Sudowoodo Indeterminate Banette,Castform, Chimecho,Drifblim, Drifloon, Dusclops, Dusknoir, Duskull,Gallade, Gardevoir, Gastly, Gastrodon, Gengar, Grimer, Gulpin,Haunter,Kirlia, Koffing,Magcargo, Misdreavus, Mismagius, Muk,Ralts,Shellos, Shuppet, Slugma, Spiritomb, Swalot,Weezing, Wobbuffet Ground Absol, Aipom, Ambipom, Ampharos, Arbok, Arcanine, Bibarel, Bidoof, Blaziken, Buizel, Buneary Camerupt, Chimchar, Combusken, Cyndaquil Delcatty, Delibird, Dewgong, Diglett, Donphan, Dugtrio, Dunsparce Eevee, Ekans, Electrike, Empoleon, Espeon, Exploud Farfetch'd, Flaaffy, Flareon, Floatzel, Furret, Girafarig, Glaceon, Glameow, Golduck, Granbull, Growlithe, Grumpig Hippopotas, Hippowdon, Houndoom, Houndour, Infernape, Jolteon, Kecleon, Leafeon, Linoone, Lopunny, Loudred, Lucario, Luxio, Luxray, Mamoswine, Manectric, Mankey, Mareep, Mawile, Meowth, Mightyena, Miltank, Monferno, Nidoking, Nidoran (F), Nidoran (M), Nidorino, Ninetales, Numel, Nuzleaf, Pachirisu, Persian, Phanpy, Pikachu, Piloswine, Piplup, Ponyta, Poochyena, Primeape, Prinplup, Psyduck, Purugly, Quagsire, Quilava, Raichu, Rapidash,Raticate, Rattata, Rhydon, Rhyhorn, Rhyperior,Sandshrew, Sandslash, Sealeo, Seedot, Seel, Sentret, Seviper, Shiftry, Shinx, Skitty, Skuntank, Slaking, Slakoth, Smeargle, Sneasel, Snubbull, Spheal, Spinda, Spoink, Stantler, Stunky, Swinub Tauros, Teddiursa, Torchic, Torkoal, Typhlosion Umbreon, Ursaring Vaporeon, Vigoroth, Vulpix Wailmer, Wailord, Walrein, Weavile, Whismur, Wooper Zangoose, Zigzagoon Water 1 Azumarill,Bibarel, Bidoof, Blastoise, Buizel,Clamperl, Corphish, Corsola, Crawdaunt, Croconaw Delibird, Dewgong, Dragonair, Dragonite, Dratini,Empoleon,Feebas, Feraligatr, Floatzel Gastrodon, Golduck, Gorebyss,Horsea, Huntail,Kabuto, Kabutops, Kingdra,Lapras, Lombre, Lotad, Ludicolo,Mantine, Marill, Marshtomp, Masquerain, Milotic, Mudkip,Octillery, Omanyte, Omastar Pelipper, Piplup, Politoed, Poliwag, Poliwhirl, Poliwrath, Prinplup, Psyduck,Quagsire,Relicanth, Remoraid Seadra, Sealeo, Seel, Shellos, Slowbro, Slowking, Slowpoke, Spheal, Squirtle, Surskit, Swampert, Totodile,Walrein, Wartortle, Wingull, Wooper Water 2 Barboach, Carvanha, Chinchou,Finneon,Goldeen, Gyarados,Lanturn, Lumineon, Luvdisc,Magikarp, Octillery, Qwilfish, Relicanth, Remoraid, Seaking, Sharpedo, Wailmer, Wailord, Whiscash Water 3 Anorith, Armaldo,Cloyster, Corphish, Corsola, Cradily, Crawdaunt,Drapion,Kabuto, Kabutops, Kingler, Krabby,Lileep,Omanyte, Omastar,Shellder, Skorupi,Tentacool, Tentacruel Monster Abomasnow, Aggron, Ampharos, Aron Bastiodon, Bayleef, Blastoise, Bulbasaur, Charizard, Charmander, Charmeleon, Chikorita, Cranidos, Croconaw, Cubone, Exploud, Feraligatr, Flaaffy Gabite, Garchomp, Gible, Grotle, Grovyle, Ivysaur, Kangaskhan, Lairon, Lapras, Larvitar, Lickilicky, Lickitung, Loudred, Mareep, Marowak, Marshtomp, Meganium, Mudkip, Nidoking, Nidoran (F), Nidoran (M), Nidorino, Pupitar, Rampardos, Rhydon, Rhyhorn, Rhyperior, Sceptile, Shieldon, Slowbro, Slowking, Slowpoke, Snorlax, Snover, Squirtle, Swampert, Torterra, Totodile, Treecko, Tropius, Turtwig, Tyranitar, Venusaur,Wartortle, Whismur Fairy Azumarill, Blissey, Breloom, Castform, Chansey, Cherrim, Cherubi, Clefable, Clefairy, Delcatty, Froslass, Glalie, Granbull, Hoppip, Jigglypuff, Jumpluff, Marill, Mawile, Minun, Pachirisu, Pikachu, Plusle, Raichu, Roselia, Roserade, Shroomish, Skiploom, Skitty, Snorunt, Snubbull, Togekiss, Togetic, Wigglytuff Dragon Altaria, Arbok, Bagon, Charizard, Charmander, Charmeleon, Dragonair, Dragonite, Dratini, Ekans, Feebas, Gabite, Garchomp, Gible, Grovyle, Gyarados, Horsea, Kingdra, Magikarp, Milotic, Salamence, Sceptile, Seadra, Seviper, Shelgon, Swablu, Treecko Cannot breed Arceus, Articuno, Azelf, Azurill, Bonsly, Budew, Celebi, Cleffa, Cresselia,Darkrai, Deoxys, Dialga, Ditto, Elekid, Entei, Giratina, Groudon, Happiny, Heatran, Ho-oh, Igglybuff, Jirachi, Kyrogre, Latias, Latios, Luigia, Magby, Mantyke, Mesprit, Mew, Mewtwo, Mime Jr., Moltres, Munchlax, Nidoqueen, Nidorina, Palkia, Pichu, Raikou, Rayquaza, Regice, Regigigas, Regirock, Registeel, Riolu, Shaymin, Smoochum, Suicune, Togepi, Tyrogue, Unown, Uxie, Wynaut, Zapdos Ditto Baltoy, Beldum, Bronzong, Bronzor,Claydol, Electrode, Lunatone, Magnemite, Magneton, Magnezone, Manaphy, Metagross, Metang, Phione, Porygon, Porygon2, Porygon-Z, Rotom, Shedinja, Solrock, Starmie, Staryu, Voltorb Types of Breeding Ditto: Ditto may be all too useful for breeding, but its only good for when you just need a quick copy or baby. Ditto can breed with anything that has an egg group, any gender, and essentially every Pokemon (Unless they are not allowed to breed; Legends and Babies). They are essential in breeding and you should get at least a few with different natures. Most people use Dittos with different natures to get a Pokemon with the nature they want. Same Species Breeding: Any Pokemon that is the same species (A Pikachu with another Pikachu) will breed so long as one is male and the other is female. Same Family Breeding: By family, this means the evolutionary line. A Pikachu can breed with a Raichu for instance, again so long as one is male and the other is female. Same Egg Group Breeding: Sometimes the hardest, although best for competative play. This means any pokemon in the same egg group can breed so long as one is male and the other is female. So essentially a Skitty and a Wailord can breed because they are both in the same egg groups. This can make for interesting pairing (Zangoose and Seviper are both in the same egg group and yes, they can breed no matter what the pokedex says) There are some pairs of Pokémon species where the male and female are treated as different Pokémon. However, they can breed with each other. The egg will either hatch into a male or a female varient of the species (The Nidorans for instance). Although breeding the male species with Ditto will not produce the female counterpart. Held Item Breeding: Some Pokemon may only produce its baby form when holding a specific item, aka Incense. Passing Moves Down The moves obtained by a Pokémon when hatching are as follows: The Pokémon will start with any moves that it would learn at a level of 5 or lower. The Pokémon will start with any moves that it would learn by leveling up only if both parents know the move. The Pokémon will start with any TM or HM moves that the father knows and the baby can also learn by machine. The Pokémon will start with any Egg moves that the baby can learn and the father knows. Volt Tackle is a special move only learnable by Pichu. When breeding a Pikachu or Raichu holding a Light Ball, the offspring will know the move Volt Tackle. It should be noted that the parent need not know the move itself, and is not required to be of any specific gender; however, a male Pikachu or Raichu has to breed either with a female counterpart or with Ditto so that the offspring is, in fact, a Pichu. The moves will take precedence in the order listed, and if there are more than four moves to learn, the moves will start being overwritten much like when leveling up at the Pokémon Daycare. Importance of Egg Moves Egg moves are sometimes extreemly useful to have on a Pokemon. Rather then having a Pokemon that only knows moves from TMs, Tutors, or from Levelup, Egg Moves can only be bred into a Pokemon and thus make them stronger then a standard wild Pokemon. A Pichu (or one of its evolutionary line) that knows Volt Tackle is a great example of this. Chain Breeding: Chain Breeding is simply breeding multiple Pokemon in different Egg groups that can also breed together. This is also how you get a Pokemon with multiple egg moves. This also includes any breeding done to get a good parent for the final offspring. Breeding a male Smeargle to get good IVs, Sketching Punishment, then breeding with a female Sneasel with good IVs to produce a baby Sneasel with good IVs and Punishment as a move is a quick example. (quick to write, though the time involved for breeding can be hours to weeks depending on luck) IV Breeding: IVs are individual values and they are hidden from the view of the trainer. However with IV calculators you can find on the internet you can find out your pokemon's IVs. These individual values are what makes every pokemon different as far as stats go. The individual values are numbers that range from 0-31 and below is a number for each stat. HP Atk Def Spd Sp Atk Sp Def Depending on the number the pokemon's IV numbers can effect the growth of a pokemon in certain areas of their stats. IVs add their value to the stat slowly throughout leveling. Essentially they can only be seen on level 100 Pokemon as their stats have been maxed for their level. For example, a pokemon with a 31 IV in speed will have 31 more points in speed then one with a 0 IV in Speed. Even a 1 point difference between a 30 IVed Pokemon and 31 IVed Pokemon can make all the difference in compatative play. Many People do not understand this no matter how simple the concept may be, so I'll work it into a really short term at the end. This is based off of DPPT breeding which works the same way as Emerald in most cases. First, a random IV is passed from one of the parents to the baby. Afterwards, a random IV of any stat other than HP, is inherited from either parent to the baby. If this IV is from the same stat as the first IV (not necessarily the same IV value, depending on whether or not the same parent passed it on), it will override it. Finally, another random IV of any stat other than HP and Defense, is passed from one of the parents to the baby. This IV will override any of the previous two if it is from the same stat. The remaining stats (a number ranging from 3 to 5) are determined at random, again with the possibility of one or more IVs coinciding with those of the parents. Simple Term: Some IVs are random, while others are inherited by the parents. So essentially the better IVs the parents have the better chance of getting good IVs on the offspring. Nature Breeding For those of you who want to have a specific nature so that it makes a great match with IV breeding, you have probably thought of: keep breeding and hatching and i'll eventually get a good nature and high IV pokemon. This may cause a lot of stress and will take a long time especially when you want multiples of the same pokemon with good nature/IV's. You can give one of the pokemon you are breeding (if you are breeding a male and female) or the pokemon which is not Ditto (If you are breeding with Ditto) an Everstone. In-game-uses shows that this hold item prevents pokemon from evolving but it also has another use. Holding this item while breeding, will ensure the offspring to have a 50% chance of being the same nature as the nature of the pokemon holding the everstone. Breeding Elite This type of breeding is best left to those who know what they are doing. It involves breeding IVs, Natures, Moves, and the correct Species to get a perfect Pokemon for competative play. Here is my quick example of a legitimate bred pokemon loaded into a ROM for better screenshots: http://img220.imageshack.us/img220/3164/weavileit4.png Its stats are so high because I bred good IVs into it along with training it in Attack and Speed to max out those stats. I also bred in the Egg Move Ice Punch from having a Medicham Father in its line. It learned Ice Shard by level up as a Sneasel, then after it evolved I went to the move tutor to have it remember Night Slash, and Brick Break came from a TM (can also be inherited as an Egg move from the father if it knows a TM or HM move the baby may learn). Its nature was inherited by a female sneasel with the Jolly Nature holding an Everstone. So thats my example of a quick breeding chain using all of the breeding tips and tricks to create a perfect pokemon! (of course, luck is such a huge factor it took about an entire day consisting of much breeding, many sneasels, and lots of calculating) When that egg will be ready for pickup? The rate of your pokemon being able to have an egg relies on your ID number [TID (Trainer ID) and SID (Secret ID)] and the species of the pokemon. You can tell the chances of your pokemon being able to have an egg by talking to the Old Man near the fence. (The DayCare Keeper's Husband) When he is an extra step forward it means that your egg is ready and you will be able to take it if you have a free slot in your party. When that man has your egg ready for hold, you cannot take the pokemon back from the DayCare Lady before you take the egg from the Old Man. Chance Guide: Parents/Pokemon in Day Care are the same species/pokemon and have different ID's The Old man will say: "The two seem to get along very well." The Chance of receiving an egg at the required time for pickup will be 70%. Parents/Pokemon are same species/pokemon and have same ID's OR are different species/pokemon and have different ID's The Old man will say: "The two seem to get along." The Chance of receiving an egg at the required time for pickup will be 50%. Parents/Pokemon are different species/pokemon and have the same ID's The Old man will say "The two don't seem to like each other." The Chance of receiving an egg at the required time for pickup will be 20%. Parents/Pokemon are in different egg groups The Old man will say "They prefer to play with other pokemon than each other." The Chance of receiving an egg at the required time for pickup will be 0%. at the required time for pickup - means that when the time arrives because you need to walk a certain amount of steps before the man is to give you the egg. Hatching that Egg Name: Magma Armor Effect: User cannot be frozen. Field: Eggs in the party with the user hatch in half the time. Name: Flame Body Effect: 30% chance of inflicting a burn on contact. Field: Eggs in the same Party as this Pokemon hatch twice as fast. Slugma and Magcargo are widely considered THE best egg hatchers, because they are readily available in D/P/Pt, and the 2 abilities they have are the 2 above ones. Other then that it takes a variable amount of steps to hatch the egg depending on the species. Generally a tip to keep in mind is when hatching an egg depending on how good the species is will reflect in how long its going to take. Magikarp is generally weak so its fast to hatch, however rare and strong pokemon like Larvitar will take longer. The best places to ride back and forth are: through Solaceon, theres a one step wide path that gives you 123 steps up, then 123 steps down. Its good because you can quickly change the Pokemon in the daycare, and get more eggs as well without flying. SeaBreak Path: This place is ONLY recommended if you have an Action Replay. If you do, then use the run through walls cheat to get through the Victory Road Area, and bike up and down. Its the longest area in a Pokemon game, so its ok if you have easy access to it. Then, there's the Cycling Road. Its nice if your doing something else, because you only have to press up, when you reach the top, it goes down automatically. Floaroma Town Rumor: It is rumored that if you hatch an egg in Floaroma Town (or Hearthome City) it will have a higher chance of being a female. I first believed this rumor was true though I never actually used it, however I did decide to test it after finding a similar rumor just worded differently and with a percentage rather then 100%. After thinking about it I developed a theory that I proved correct with 5 Houndour Eggs. Here is my theory: The contents of a Pokemon egg are generated when you receive it from the Daycare man. All IVs, Nature, Ability, Gender, and Moves are generated when you receive the egg. I only needed one egg, but I tested 5 to be sure. I took the first two eggs and saved after receiving them then hatched them in Floaroma Town. One was male the other was female (I was using Houndours because they have a 50-50 chance of being male or female). I recorded their nature, ability, gender, and stats before soft resetting then hatching the same two eggs elsewhere (Route 210 to be exact). They hatched exactly how I recorded them. One male, one female, with the same nature ability and stats as when they first hatched. The second two eggs I saved before I received them and hatched them in Floaroma Town. Again one was male one was female, so I recorded their gender, nature, stats, and ability before soft resetting and receiving the eggs again to hatch. The second time I hatched the two eggs both were male and had different natures and one had a different ability. The last egg was just a confirmation to be sure my first set of results and both were confirmed along with my theory. I do not know who started this rumor but it has now been tested and proven false! Sorry guys, Floaroma Town is not a magical egg hatching place since the baby's stats are determined when you receive the egg, not when it hatches. Trivia Happiny takes the longest to hatch from an egg In generations II-III, bred Pokemon were hatched at level 5, while you could find Wild Pokemon from level 2. Manaphy is a legendary, yet it both hatches from an egg, and can breed. (However, Phione, the offspring, does not evolve into a Manaphy) Incest is possible in generation IV In the Anime, Ash rescues a baby Lugia named Silver. Yet, Lugia cannot breed.
  22. evandixon

    Pokémon White U Overlays

    Overlay 114 - GTS SSL stuff? GTS protection (http_rap_evilcheck.c)-prevent non-DS deposits Overlay 175 - Wifi battling stuff- variables, stats, URLs, etc Overlay 121 - Mystery Gift
  23. evandixon

    PKM Structure

    Pokémon in the games Pokémon Diamond, Pearl, and Platinum are stored in a 136 byte or 236 byte structures. All unencrypted values are stored in little-endian format. The game encrypts the data when it is stored in the save file. Party Pokémon have additional values to hold current battle stats and conditions. The information below describes the Pokémon data format. Checksum The checksum serves two purposes: It validates the data after decryption, and It serves as the encryption key for the data. The checksum is calculated in three steps: Split the unencrypted data from offsets 0x08 to 0x87 into two-byte words, Take the sum of the words, and Truncate the sum to 16 bits. Block Shuffling The 128 bytes of Pokémon data are split into four 32-byte blocks for shuffling. The blocks are shuffled according to a shift value derived from the personality value. Given the personality value pv, the expression yielding the shift value is: ((pv & 0x3E000) >> 0xD) % 24 The right shifting (>> 0xD) is equivalent to a division of 8192. To shuffle the blocks, take the four blocks of unencrypted data, A, B, C, and D. The blocks shall be rearranged in the encrypted data according to the Block Order column of the following table. (To unshuffle, use the Inverse column.) Shift Value (decimal) Block Order Inverse 00 ABCD ABCD 01 ABDC ABDC 02 ACBD ACBD 03 ACDB ADBC 04 ADBC ACDB 05 ADCB ADCB 06 BACD BACD 07 BADC BADC 08 BCAD CABD 09 BCDA DABC 10 BDAC CADB 11 BDCA DACB 12 CABD BCAD 13 CADB BDAC 14 CBAD CBAD 15 CBDA DBAC 16 CDAB CDAB 17 CDBA DCAB 18 DABC BCDA 19 DACB BDCA 20 DBAC CBDA 21 DBCA DBCA 22 DCAB CDBA 23 DCBA DCBA Encryption The encryption uses the pseudorandom number generator (PRNG), a linear congruential generator. Elements of the PRNG can be described with the recursive function: X[n+1] = (0x41C64E6D * X[n] + 0x6073) To decrypt the data, given a function rand() which returns the upper 16 bits of consecutive results of the above given function: Seed the PRNG with the checksum (let X[n] be the checksum). Sequentially, for each 2-byte word Y from 0x08 to 0x87, apply the transformation: unencryptedByte = Y xor rand() Unshuffle the blocks using the block shuffling algorithm above. To encrypt the data: Shuffle the blocks using the block shuffling algorithm above. Seed the PRNG with the checksum (let X[n] be the checksum), Sequentially, for each 2-byte word Y from 0x08 to 0x87, apply the transformation: unencryptedByte = Y xor rand() Unencrypted bytes Offset Contents 0x00-0x03 Personality value (Also known as the PID) 0x04-0x05 Temporary Variable (Unused) 0x06-0x07 Checksum Encrypted bytes Block A Offset Contents 0x08-0x09 National Pokédex ID 0x0A-0x0B Held Item 0x0C-0x0D OT ID 0x0E-0x0F OT Secret ID 0x10-0x13 Experience points 0x14 Friendship (Steps to Hatch if an egg) 0x15 Ability 0x16 Markings 0x17 Original Language 0x18 HP Effort Value 0x19 Attack Effort Value 0x1A Defense Effort Value 0x1B Speed Effort Value 0x1C SP Attack Effort Value 0x1D SP Defense Effort Value 0x1E Cool Contest Value 0x1F Beauty Contest Value 0x20 Cute Contest Value 0x21 Smart Contest Value 0x22 Tough Contest Value 0x23 Sheen Contest Value 0x24-0x25 Sinnoh Ribbon Set 1 0x26-0x27 Sinnoh Ribbon Set 2 Block B Offset Contents 0x28-0x29 Move 1 ID 0x2A-0x2B Move 2 ID 0x2C-0x2D Move 3 ID 0x2E-0x2F Move 4 ID 0x30 Move 1 Current PP 0x31 Move 2 Current PP 0x32 Move 3 Current PP 0x33 Move 4 Current PP 0x34-0x37 Move PP Ups 0x38-0x3B Bits 0-29 - Individual Values HP ( [0-31] << 0 ) Attack ( [0-31] << 5 ) Defense ( [0-31] << 10 ) Speed ( [0-31] << 15 ) SP Attack ( [0-31] << 20 ) SP Defense ( [0-31] << 25 ) Bit 30 - IsEgg Flag Bit 31 - IsNicknamed Flag 0x3C-0x3D Hoenn Ribbon Set 1 0x3E-0x3F Hoenn Ribbon Set 2 0x40 Bit 0 - Fateful Encounter Flag Bit 1 - Female Bit 2 - Genderless Bit 3-7 - Alternate Forms 0x41 Shiny Leaves (HGSS) Bit 5 - Leaf Crown Bits 0–4 - Leaves A–E (bit 0 is leftmost) 0x42-0x43 Unused 0x44-0x45 Egg Location (Platinum) 0x46-0x47 Met at Location (Platinum) Block C Offset Contents 0x48-0x5D Nickname 0x5E Unused 0x5F Origin Game 0x60-0x61 Sinnoh Ribbon Set 3 0x62-0x63 Sinnoh Ribbon Set 4 0x64-0x67 Unused Block D Offset Contents 0x68-0x77 OT Name 0x78-0x7A Date Egg Received 0x7B-0x7D Date Met 0x7E-0x7F Egg Location (Diamond/Pearl) 0x80-0x81 Met At Location (Diamond/Pearl) 0x82 Pokérus 0x83 Poké Ball 0x84 Bit 0-6 - Met At Level Bit 7 - Female OT Gender 0x85 Encounter Type 0x86 HGSS Poké Ball 0x87 Unused Battle Stats The battle stats are encrypted in the same manner, however the seed is not the checksum, it is the PID, and the bytes are not shuffled. Encrypted Bytes Offset Contents 0x88 Bits 0-2 - Asleep (0-7 rounds) Bit 3 - Poisoned Bit 4 - Burned Bit 5 - Frozen Bit 6 - Paralyzed Bit 7 - Toxic 0x89 Unknown - Flags - Max Value 0xF0 0x8A-0x8B Unknown 0x8C Level 0x8D Capsule Index (Seals) 0x8E-0x8F Current HP 0x90-0x91 Max HP 0x92-0x93 Attack 0x94-0x95 Defense 0x96-0x97 Speed 0x98-0x99 Special Attack 0x9A-0x9B Special Defense 0x9C-0xD3 Unknown - Contains Trash Data 0xD4-0xEB Seal Coordinates Original Language Value Language 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) Markings Bit Marking 0x01 Circle 0x02 Triangle 0x04 Square 0x08 Heart 0x10 Star 0x20 Diamond Alternate Forms Alternate forms are stored at offset 0x40 of the Pokemon structure. Each form follows the pattern of index << 3 where index starts at zero for the main form. Unown's Forms Bit Form Bit Form Bit Form Bit Form 0x00 A 0x38 H 0x70 O 0xA8 V 0x08 B 0x40 I 0x78 P 0xB0 W 0x10 C 0x48 J 0x80 Q 0xB8 X 0x18 D 0x50 K 0x88 R 0xC0 Y 0x20 E 0x58 L 0x90 S 0xC8 Z 0x28 F 0x60 M 0x98 T 0xD0 ! 0x30 G 0x68 N 0xA0 U 0xD8 ? Deoxy's Forms Bit Form 0x00 Normal 0x08 Attack 0x10 Defense 0x18 Speed Burmy's & Wormadam's Forms Bit Form 0x00 Plant 0x08 Sandy 0x10 Trash Shellos' & Gastrodon's Forms Bit Form 0x00 West 0x08 East Rotom's Forms Rotom's alternate forms will only be displayed in Pokemon Platinum. Rotom may be traded between Diamond, Pearl, and Platinum without losing the alternate form. Bit Form 0x00 Normal 0x08 Heat 0x10 Wash 0x18 Frost 0x20 Fan 0x28 Cut Giratina's Forms Giratina's Origin form will only be displayed in Pokemon Platinum. Bit Form 0x00 Altered 0x08 Origin Shaymin's Forms Shaymin's Sky form will only be displayed in Pokemon Platinum. Bit Form 0x00 Land 0x08 Sky Arceus' Forms Bit Form Bit Form Bit Form 0x00 Normal 0x30 Insect 0x60 Zap 0x08 Fist 0x38 Spooky 0x68 Mind 0x10 Sky 0x40 Iron 0x70 Icicle 0x18 Toxic 0x48 Flame 0x78 Draco 0x20 Earth 0x50 Splash 0x80 Dread 0x28 Stone 0x58 Meadow 0x4C Curse Encounter Types Value Country 0x0 Pal Park, Egg, Hatched, Special Event 0x2 Tall Grass 0x4 Dialga/Palkia In-Game Event 0x5 Cave, Hall of Origin 0x7 Surfing, Fishing 0x9 Building 0xA Great Marsh (Safari Zone) 0xC Starter, Fossil, Gift (Eevee) Ribbons Diamond, Pearl, and Platinum store the ribbon information as bitfields in 1-byte words. Given below are the bytewise representation of the ribbon bitfields. Sinnoh Ribbon Set 1 Bit Ribbon 0x24 & 0x01 Sinnoh Champ Ribbon 0x24 & 0x02 Ability Ribbon 0x24 & 0x04 Great Ability Ribbon 0x24 & 0x08 Double Ability Ribbon 0x24 & 0x10 Multi Ability Ribbon 0x24 & 0x20 Pair Ability Ribbon 0x24 & 0x40 World Ability Ribbon 0x24 & 0x80 Alert Ribbon 0x25 & 0x01 Shock Ribbon 0x25 & 0x02 Downcast Ribbon 0x25 & 0x04 Careless Ribbon 0x25 & 0x08 Relax Ribbon 0x25 & 0x10 Snooze Ribbon 0x25 & 0x20 Smile Ribbon 0x25 & 0x40 Gorgeous Ribbon 0x25 & 0x80 Royal Ribbon Sinnoh Ribbon Set 2 Bit Ribbon 0x26 & 0x01 Gorgeous Royal Ribbon 0x26 & 0x02 Footprint Ribbon 0x26 & 0x04 Record Ribbon 0x26 & 0x08 History Ribbon 0x26 & 0x10 Legend Ribbon 0x26 & 0x20 Red Ribbon 0x26 & 0x40 Green Ribbon 0x26 & 0x80 Blue Ribbon 0x27 & 0x01 Festival Ribbon 0x27 & 0x02 Carnival Ribbon 0x27 & 0x04 Classic Ribbon 0x27 & 0x08 Premier Ribbon Sinnoh Ribbon Set 3 Bit Ribbon 0x60 & 0x01 Cool Ribbon 0x60 & 0x02 Cool Ribbon Great 0x60 & 0x04 Cool Ribbon Ultra 0x60 & 0x08 Cool Ribbon Master 0x60 & 0x10 Beauty Ribbon 0x60 & 0x20 Beauty Ribbon Great 0x60 & 0x40 Beauty Ribbon Ultra 0x60 & 0x80 Beauty Ribbon Master 0x61 & 0x01 Cute Ribbon 0x61 & 0x02 Cute Ribbon Great 0x61 & 0x04 Cute Ribbon Ultra 0x61 & 0x08 Cute Ribbon Master 0x61 & 0x10 Smart Ribbon 0x61 & 0x20 Smart Ribbon Great 0x61 & 0x40 Smart Ribbon Ultra 0x61 & 0x80 Smart Ribbon Master Sinnoh Ribbon Set 4 Bit Ribbon 0x62 & 0x01 Tough Ribbon 0x62 & 0x02 Tough Ribbon Great 0x62 & 0x04 Tough Ribbon Ultra 0x62 & 0x08 Tough Ribbon Master Hoenn Ribbon Set 1 Bit Ribbon 0x3C & 0x01 Cool Ribbon 0x3C & 0x02 Cool Ribbon Super 0x3C & 0x04 Cool Ribbon Hyper 0x3C & 0x08 Cool Ribbon Master 0x3C & 0x10 Beauty Ribbon 0x3C & 0x20 Beauty Ribbon Super 0x3C & 0x40 Beauty Ribbon Hyper 0x3C & 0x80 Beauty Ribbon Master 0x3D & 0x01 Cute Ribbon 0x3D & 0x02 Cute Ribbon Super 0x3D & 0x04 Cute Ribbon Hyper 0x3D & 0x08 Cute Ribbon Master 0x3D & 0x10 Smart Ribbon 0x3D & 0x20 Smart Ribbon Super 0x3D & 0x40 Smart Ribbon Hyper 0x3D & 0x80 Smart Ribbon Master Hoenn Ribbon Set 2 Bit Ribbon 0x3E & 0x01 Tough Ribbon 0x3E & 0x02 Tough Ribbon Super 0x3E & 0x04 Tough Ribbon Hyper 0x3E & 0x08 Tough Ribbon Master 0x3E & 0x10 Champion Ribbon 0x3E & 0x20 Winning Ribbon 0x3E & 0x40 Victory Ribbon 0x3E & 0x80 Artist Ribbon 0x3F & 0x01 Effort Ribbon 0x3F & 0x02 Marine Ribbon 0x3F & 0x04 Land Ribbon 0x3F & 0x08 Sky Ribbon 0x3F & 0x10 Country Ribbon 0x3F & 0x20 National Ribbon 0x3F & 0x40 Earth Ribbon 0x3F & 0x80 World Ribbon Save File Location The party Pokémon are stored in the save file beginning at offset 0x00098 for the first small block, and 0x40098 for the second small block. In the first small save block, the first Daycare Pokémon is located at 0x0141C, and the second is located at 0x01508. In the second small block, the first Daycare Pokémon is located at 0x4141C, and the second is located at 0x41508. In the first small save block, the Pal Park Pokémon are stored beginning at 0x0BA28. In the second small save block, the Pal Park Pokémon are stored beginning at 0x4BA28. Each party, Daycare, and Pal Park Pokémon is 236 bytes in size. The PC storage Pokémon are stored in the save file from Box 1 to Box 18. The offset starts at 0x0C104 for the first big block and 0x4C104 for the second big block. Each PC stored Pokémon is 136 bytes in size.
  24. These are the differences in two saves: one that was started from scratch then quicksaved as soon as possible, and another where the walking speed was changed then immediately quicksaved. The unknown fields contain information that changed that appears unrelated to the walking speed and probably aren't checksums (this speculation is based on Explorers of Sky's checksum). Small block offsets Held Money - 0x4E6C Unsigned 32-bit integer. Limited to 0x1869F (99,999) Stored Money/Savings - 0x4E6F Unsigned 32-bit integer. Limited to 0x98967F (9,999,999) Team Name - 0x4EC8 10 unsigned 8-bit integers. The characters are encoded in ANSI. Team Rank - 0x4ED3 Unsigned 32-bit integer. 0x00032 - Bronze Rank 0x001F4 - Silver Rank 0x005DC - Gold Rank 0x00BB8 - Platinum Rank 0x01D4C - Diamond Rank 0x03A98 - Lucario Rank Other Offsets are in hex: 0-3: checksum? 420-423: unknown 4EE0-4EE3: unknown 6000-6003: checksum? 6420-6423: Unknown AEE0-AEE4: Unknown 10000-10003: Checksum 10022 bit 2: walking speed
×
×
  • Create New...