Jump to content

MeroMero

Member
  • Content Count

    70
  • Joined

  • Last visited

Everything posted by MeroMero

  1. I'm glad to present you my attempt at a Pokémon hack, Pokémon MindCrystal, a mod of Pokémon SoulSilver. I warn you though, this hack is available only in French. The crux of this hack is obviously the inclusion of the Fairy-type at 100%. Most of the changes were done from a technical standpoint. These are the few parts of the storyline that were changed as of now: the girl in Ilex Forest gate that gave you the TM12 now gives you instead the Eviolite, Several TMs have changed location. the Day-Care lady gives to you the Odd Egg which can hatch into any 17 non-Togepi babies. all 16 Gym Leaders first teams got revamped, as well as those of the Elite 4, Lance and Red. all 16 Gym Leaders second teams got revamped, as well as those of the Elite 4, Lance. the inclusion of Lv.100 battles against Gym Leaders, Elite 4 and Red after defeating the latter for the first time. Grab the xDelta patch at the bottom of this post and patch it with a French version of Pokémon SoulSilver. Revamped type-chart to include the Fairy-type matchup as well as all the neutral match-ups. Pixie Plate implemented. Roseli Berry implemented. Fairy-type Arceus in place of ???-type Arceus. Updated Judgment to take into account the Pixie Plate. Pokédex fully updated to take into account the Fairy-type in Research mode. Conversion updated to take into account the Fairy-type. Conversion 2 updated to take into account all 324 types match-ups. Battle Hall includes the Fairy-type row. Fairy-type icon. Pokédex Fairy-type icon. Fairy-type moves: Move Power Accuracy Category PP Priority Effect Comet Punch 18 85 Physical 15 0 - Slam 90 100 Physical 10 0 - Sweet Kiss - 75 Status 10 0 Confusion Charm - 100 Status 20 0 -2 Attack Attract - 100 Status 15 0 Infatuation Moonlight - - Status 5 0 Restore HP Follow Me - 100 Status 20 2 Center of attention Extrasensory 90 100 Special 20 0 20% flinch Covet 40 100 Physical 25 0 Steal items Captivate - 100 Status 20 0 -2 Sp. Attack for opposite gender Battle Frontier: Shiny lock removed for opponents Pokémon in all 5 facilities. New items available for purchase. Battle Frontier Pokémon will always have an IV of 31 in all 6 stats. Battle Frontier Pokémon will always have the ability who is the best tailored for a given set Battle Frontier Pokémon EV and IV generation has been modified to optimize Hidden Power, Gyro Ball and Trick Room most notably. Battle Tower: Shiny lock removed as well for the NPC partners in Multi Battle mode. Battle Hall: As said earlier, Battle Hall includes the Fairy-type row. You still fight in rounds of 10 battles. The Silver Print is now obtained by challenging and defeating Argenta on the 80th battle. The Gold Print is now obtained by challenging and defeating Argenta on the 180th battle. Other mechanics inherent to the Battle Hall were updated to grant a flawless experience of the facility. Shiny chance is now 1/4096. Having a Pokémon with the Ability Super Luck leading the party increases the likelihood of encountering a wild Shiny Pokémon. Shiny generation from "forced shiny encounters" method was slightly altered to take into account the modified Shiny Rate. Cute Charm PID generation is improved and no longer restricted, which means you can no longer abuse Cute Charm for easy Shinies. Shellos and Gastrodon East Sea forms are now available in Kanto. +50% Physical Defense boost for Ice-types under Hail. Soundproof check against Heal Bell removed. Stealth Rock damage is decreased by half. Fixed the move Hail, basically in gen IV the way Hail is coded allows you to use Hail despite Snow Warning. Fixed the move Fire Fang so that it doesn't hit through Wonder Guard anymore unless it happens to be super-effective. Hidden Power can be Normal or Fairy type now as well, the Hidden Power NPC will notice this too. Hidden Power no longer takes into account Speed to calculate the type. Some Base Stats were upgraded to help some Pokémon perform better (for example Persian or Probopass). Starf Berry can now sharply increase accuracy and evasion. Castform and Cherrim alternate forms now display their respective icon during battles. Castform's alternate forms now display their respective type when checked through the menu during battles. HP bar graphics were changed. HP are now displayed for the opposing side in single format, double format is unchanged in that regard. Fixed Strength graphical glitch that also occurs in the original versions. Fixed Facade graphical glitch that also occurs in the original versions. Battle Style is now permanently locked on Set. You can't use items from your bag against a Trainer, very much like against Battle Frontier Trainers! All Trainers' Pokémon have now 31 IVs in all 6 stats. All Trainers' Pokémon have now 255 EVs in all 6 stats. All Trainers' Pokémon have now the possibility to easily get beneficial natures. All Trainers' Pokémon have now the possibility to be shiny. IVs for opponents' Pokémon can be chosen from a pool of 64 combinations, most notably to capitalize on Hidden Power, Gyro Ball and Trick Room. All Trainers' Pokémon can now be contained in Balls other than Poké Balls. The number of possible seals combinations for opponents' Pokémon went up from 28 to 216. Ace Trainer Lois replaces Juggler Irwin in the Pokégear, you can set a rematch with her on Wednesday afternoons (10:00 to 19:59). ASM hack to allow more than 737 trainers in-game (complete with text). Continuity for opposing Trainers is preserved, by that I mean that the IVs, nature, shininess and gender of opposing Pokémon stay the same (for example Falkner's Pidgeot is canonically the same creature as when he was only a Pidgey). Alternate Forms from Trainers now have their correct Ability as well as the correct Base Stats' spread. A new item was created, the Evolutor, which when applied like an Evolutionary Stone to a Lv 100 Pokémon, allows it to evolve if it can do so! Eevee can now evolve into Leafeon if leveled-up at Ilex Forest or Viridian Forest. Eevee can now evolve into Glaceon if leveled-up at Ice Path or Seafoam Islands. Magneton and Nosepass can now evolve into Magnezone and Probopass respectively if leveled-up at Team Rocket HQ, Route 10 or Power Plant. Feebas, on top of requiring a beauty's stat of 170 min, is now required to level-up at least at level 20 to be able to evolve. Feebas gains a second failsafe evolution method in case the Sheen is maxed before the Beauty stat reaches 170. Female/Male Kirlia evolves into Gardevoir/Gallade at Lv 30. Female/Male Snorunt evolves into Froslass/Glalie at Lv 42. Female/Male Clamperl evolves into Gorebyss/Huntail with the Dawn Stone. Pokémon that require a trade to evolve all gained an alternate method of evolution. Incenses babies are now the default base form. Miltank and Tauros are now considered the same species for breeding purposes. Feebas/Milotic and Magikarp/Gyarados are now considered the same species for breeding purposes. Females can now pass egg moves as well, eliminating all impossible egg moves combinations. A new NPC, called the Egg Move Tutor, makes an appearance; as the name implies he is capable of teaching your Pokémon moves that normally it has to know from birth, but also level-up moves that only pre-evolutions can learn, and for some Pokémon moves that they have no other way to learn, but you'll have to spend 100 BP to pay for his services! The Odd Egg will be given to you by the Day-Care lady! Gender ratios are fixed, with that I mean that for example 1 male per female REALLY means 1 male per female (and not 129 males for 127 females). Ponyta, Rapidash, Gardevoir, Feebas, Milotic and Gorebyss are now female-only. Magikarp, Gyarados, Glalie and Huntail are now male-only. EV limit is now 1530, you can max all stats now. The new EV limit also applies in the Battle Frontier. Vitamins cap at 255 EVs now. Vitamins give 15 EVs per usage now. Lv 100 Pokémon can gain EVs by fighting now, but they still need to be deposited in the PC for the stat gains to take fully effect. IVs no longer have an effect on stats, that is stats are always calculated assuming an IV of 31, this is done to not disavantage you to much against Trainers, especially early-game. Updated Items: Light Ball benefits Pichu and Raichu as well now. TM45 and TM78, which contain Attract and Captivate respectively, have been updated with a Fairy-type TM icon. New Items: Pixie Plate Roseli Berry Eviolite Evolutor TMs: TMs are now reusable you can no longer throw away TMs you can no longer give TMs to hold Purchasable TMs, regardless of the currency, can only be bought one at time and only once TM56, TM86 and TM26 are no longer Pickup items and were replaced with Lucky Egg, Life Orb and PP Max respectively each of the 92 TMs is available only once! If possible, moves were upgraded to match Gen V+ information. Nerfs from Gen VI are NOT applied (this means that for example Surf and Hydro Pump remain at 95 and 120 power respectively). Even moves like Tail Glow, which should boost the Special Attack by 3 stages, have been updated successfully (complete with the text). Acupressure now works if the user is behind a substitute. Sleep Talk can now be used multiple times under the effect of Choice Items and/or Encore. SFX for some moves were altered to suit them better. Updated Abilities: Stench (Gen V+ behavior) Sturdy (Gen V+ behavior) LightningRod (Gen V+ behavior) Sand Stream (now makes the user immune against sandstorms) Simple (Gen V+ behavior) Storm Drain (Gen V+ behavior) Snow Warning (now makes the user immune against hailstorms) New Abilities: Sheer Force Contrary Defeatist Cursed Body Multiscale Poison Boost Flare Boost Overcoat (Gen V behavior) Regenerator Sand Rush Wonder Skin Analytic Infiltrator (Gen VI behavior) Magic Bounce Sap Sipper Prankster Sand Force Fur Coat Bulletproof Strong Jaw Refrigerate Gale Wings MegaLauncher Tough Claws Pixilate Aerilate Slush Rush Long Reach Galvanize QueenMajesty Text Speed is now permanently locked on Fast. Battle Scene is now permanently locked on On. National Pokédex is the default mode upon beginning the adventure. Player's Mom can now buy batches of 5 Roseli Berries as well. Roseli Berries can be occasionally held by wild Absol. Game runs now at 60 FPS ! Allowing for much quicker battles. Several sprites changed/fixed. Some shiny sprites recolored. ORAS mini-icons. Palettes for the Pokémon sprites were all updated to B2W2 and improved even further if necessary Replaced Sky Attack move tutor with Zap Cannon. Roseli Berries can now be planted in Berry Pots, they have the same growth and moisture drain rate as the other damage-reducing berries. New movesets and egg moves. Routes 26, 27, 28, Tohjo Falls and Victory Road will always play the Johto versions of the Wild Pokémon theme and the VS Trainer theme. Lyra was fully replaced by Kris. All 7 Fossils are available now at Ruins of Alph. All trees have Pokémon now and ignore the effects of Intimidate and Keen Eye. The timeframe window to react to a rod bite has been doubled to make up for to the game running at 60 FPS while fishing. Fixed the quiet tune on map 108 (Route 45), a glitch that also occurs in the original versions. Bug-Catching Contest species vary according to the day of the week, Scyther and Pinsir are the only Pokémon always available in a Contest but only have a 1% encounter rate! Score calculation for the Bug-Catching Contest was modified to take into account shininess. Pokédex entries got upgraded to match those of Pokémon Crystal (001 to 251) and Pokémon B2W2 (past 251 whenever possible). Gender will always be displayed, even for both Nidorans. Lugia and Ho-Oh Kimonos' cutscenes now co-exist. Bugfix: Fixed Kris' frames when riding a bicycle to the left. Bugfix: Fixed glitched Trainer names with 8 characters or more. Bugfix: Fixed 4 mistakes on overlay 18 that made the game hang upon sending some Pokémon according to their abilities. (thanks Asia81) Bugfix: Capture tutorial work properly Bugfix: Additional trainers work properly Bugfix: Ability Tough Claws work properly Bugfix: Non-Sturdy Pokémon no longer can benefit from Sturdy Bugfix: Player's mom can now buy all 18 kinds of super-effective Berries Bugfix: Bug catching score calculation now takes into account Shininess properly Bugfix: Egg IV calculation fixed Bugfix: Growth, Minimize, Sweet Scent and Tail Glow work properly even when called by other moves Bugfix: Acupressure now works if the user is behind a substitute, even if Acupressure is called by other moves Bugfix: Roseli Berry now always reduces super-effective damage from Fairy-type moves Bugfix: Lugia and Ho-Oh cutscenes were slowed down to 30 FPS to work properly on a NDS Bugfix: Entering a fight no longer causes a BSoD after talking to the Egg Move Tutor Title Screen: All of those modifications were carefully tested on a NDS, so as to reduce as much as possible the eventual bugs that might occur. Credits: _Nintendo _Game Freak _Creatures, Inc. _Sora Ltd. for developing Super Smash Bros. Brawl, from whom Suicune's model on the title screen is taken from _Gregarlink10 (http://gregarlink10.deviantart.com/) for making Kris' spritesheet _NyaChan (https://twitter.com/nyachan) for making the Title logo (http://forums.bulbagarden.net/index.php?threads/the-bulbagarden-conversational-chat-thread-vol-2.57572/page-31#post-1504991). _Asia81 for some bugfixes Enjoy! Link to beta 3.0: http://www.mediafire.com/file/0wwoa8sfgy8fbkj
  2. [video=youtube;7CCKERTzGJI] This is the format of the banlist: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 00 00 00 00 00 00 00 00 00 00 00 00 0E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 07 00 00 00 00 00 00 00 00 00 00 00 98 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D8 03 Notes: The banlist is 0-based and should be read in binary. Bit=0 means its corresponding Pokémon is allowed. Bit=1 means its corresponding Pokémon is banned. Formula to find whether a Pokémon is banned or not is P=(8×B)+b with: P (Pokémon) being a number between 0 and 649 included; B being the Byte number, counting from 0; b being the bit number from a given Byte, from 0 to 7 included read from right to left. The banlist is located at narc a/1/0/5 in BW, and narc a/1/0/6 in B2W2. Even though the banlist is the same between the facilities enforcing it, the banlist itself is technically not unique as you'll see below: Battle Subway and Battle Institute (All versions): Single Battle and Wi-Fi: file 20 Double Battle: file 21 Multi Battle: file 22 PWT (Black 2 and White 2 only): Single Battle: file 33 Double Battle: file 34 Triple Battle: file 35 Rotation Battle: file 36
  3. Main effect: The probability is PP/65536. PP is equal to 08 by default. You can now put the value 10 (16 chances in 65536), like in Gen VI. Decompress arm9.bin. Go to offset 0×70080* and change the value 08 into QQ. QQ can take any value from 00 (no shiny at all) to FF (roughly 1 in 257 chance). *Regions' differences: Language Shiny chance Japanese 0×6FAC0 Spanish HG 0×70078 Korean HG 0×7017C Korean SS 0×70174 Others 0×70080 Side-effect: Formula reminder: (Trainer ID ⊕ Secret ID) ⊕ (16 leftmost bits of PID ⊕ 16 rightmost bits of PID) = CID What I call the CID (stands for Color ID) must be a number between 0 and 7 included for its bearer to be shiny. For example let's say you decided to update the value from 0×08 to 0×10, what will happen you may ask? Any caught Pokémon who happens to have their CID between 8 and 15 included and who weren't shiny before the update will turn shiny!
  4. DISCLAIMER: As of now, this is only a beta (revision 4 since the Pokémon summary freeze fix), but at the very least the type chart works. NEW: Download link at the bottom of this post! You read it right, we're going to make the game take into account the Fairy-type! Also, STAB works too. But keep in mind this is still primitive and the Hall of Fame freeze on a NDS need to be addressed ASAP. While it may seem it is a one-man project, it is not; anyone who knows how to ameliorate the code or knows something useful is a welcome guest (credits will be given where they are due obviously). Part 1: Extraction Step 1: First and foremost open your Pokémon Black 2 or White 2 ROM with CrystalTile2. Step 2: Click the NDS icon (or alternatively click Ctrl+N). Step 3: Right-click on each of the following files and click Extract. arm9.bin overlay9_0167.bin overlay9_0168.bin overlay9_0207.bin overlay9_0265.bin Likewise, right-click on each of the following files and click Export. a/0/1/1 a/0/8/2 a/1/2/5 a/2/1/3 Note 1: File Reinsertion will be done on the last Part. Note 2: As a rule of thumb, overlays, arm9 and fat are NOT interchangeable between versions, but narcs are safe. Part 2: Updated type chart Step 1: Open overlay 167 with an Hex editor. Step 2: Add this at the beginning of overlay 167, yes by that I mean to add (not replace) this at offset 0×0: 04 04 04 04 04 02 04 00 02 04 04 04 04 04 04 04 04 04 08 04 02 02 04 08 02 00 08 04 04 04 04 02 08 04 08 02 04 08 04 04 04 02 08 04 02 04 04 08 02 04 04 04 04 04 04 04 04 02 02 02 04 02 00 04 04 08 04 04 04 04 04 08 04 04 00 08 04 08 02 04 08 08 04 02 08 04 04 04 04 04 04 02 08 04 02 04 08 04 02 08 04 04 04 04 08 04 04 04 04 02 02 02 04 04 04 02 02 02 04 08 04 08 04 04 08 02 00 04 04 04 04 04 04 08 04 04 04 04 04 08 04 04 02 04 04 04 04 04 04 08 04 04 02 02 02 04 02 04 08 04 04 08 04 04 04 04 04 02 08 04 08 02 02 08 04 04 08 02 04 04 04 04 04 04 08 08 04 04 04 08 02 02 04 04 04 02 04 04 04 04 02 02 08 08 02 04 02 02 08 02 04 04 04 02 04 04 04 04 08 04 00 04 04 04 04 04 08 02 02 04 04 02 04 04 04 08 04 08 04 04 04 04 02 04 04 04 04 02 04 04 00 04 04 04 08 04 08 04 04 04 02 02 02 08 04 04 02 08 04 04 04 04 04 04 04 04 04 04 02 04 04 04 04 04 04 08 04 00 04 02 04 04 04 04 04 08 04 04 04 04 04 08 04 04 02 02 04 08 04 02 04 04 04 04 02 02 04 04 04 04 04 08 08 04 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF Step 3: After inserting the new type-chart, change the following: 0×0C312 : 112A 08D0 => 122A 08DA 0×11226 : 1128 02D1 => 1228 02DB 0×21884 : 11 => 12 0×21896 : 11 => 12 0×218A2 : 1129 06D1 => 1229 06DB 0×218A6 : 1128 01D1 => 1228 01DB 0×218B4 : 1128 00D1 => 1228 00DB 0×218DA : 112C 0ED0 => 122C 0EDA 0×23A20 : 1128 01D0 => 1228 01DA 0×23A24 : 1129 01D1 => 1229 01DB 0×23A2C : 0201 8218 => 1222 4243 0×23B98 : 11 => 12 0×260E2 : 112E 1ED0 => 122E 1EDA 0×306F0 : 112C 3CD0 => 122C 3CDA 0×306F6 : 11 => 12 0×23A6C (B2) : 00751D02 => 40971902 (W2) : 40751D02 => 80971902 0×23BA4 (B2) : 00751D02 => 40971902 (W2) : 40751D02 => 80971902 Step 4: Save the changes done on overlay 167. The file size should go from 268,096 bytes to 268,480 bytes. Part 3: Fairy-type icon Step 1: Open a/0/8/2 with an Hex editor. Step 2: Go to offset 0×6A84 and change 1F7C1F7C into 9CF20EB9. What you did here is a change to the type-icons' palette so that it takes into account the colors for the Fairy-type. Step 3: Go to offset 0×8094 and change this: 00 00 00 00 10 11 11 11 21 22 22 22 22 22 22 22 22 22 22 FF 22 22 F2 EE 22 22 F2 2E 22 22 F2 2E 00 00 00 00 11 11 11 11 22 22 22 22 22 22 22 22 2E 22 FF 2E EF F2 EE EF EE F2 2E EF 22 F2 2E EF 00 00 00 00 11 11 11 11 22 22 22 22 22 22 22 22 22 FF 2E F2 F2 EE EF F2 F2 2E EF F2 F2 2E EF F2 00 00 00 00 11 11 11 01 22 22 22 12 22 22 22 22 2E 22 22 22 2E 22 22 22 2E 22 22 22 2E 22 22 22 22 22 F2 2E 22 22 F2 2E 22 22 E2 FF 22 22 22 EE 22 22 22 22 23 22 22 22 30 33 33 33 00 00 00 00 22 F2 2E EF EF F2 2E EF EE E2 FF EE 2E 22 EE 2E 22 22 22 22 22 22 22 22 33 33 33 33 00 00 00 00 F2 2E EF F2 F2 2E EF F2 E2 FF EE F2 22 EE 2E E2 22 22 22 22 22 22 22 22 33 33 33 33 00 00 00 00 2E 22 22 22 2E 22 22 22 FF EF 22 22 EE EE 22 22 22 22 22 22 22 22 22 32 33 33 33 03 00 00 00 00 into this: 00 00 00 00 00 00 00 00 99 99 99 99 89 88 88 88 89 88 FF FF 89 88 EF EE 89 88 EF 88 89 88 FF EF 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 88 8E FF 8E FF FE EE EF FE F8 8E EF F8 F8 8E EF F8 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 88 EF FF EF F8 EE EF FE FE 8E EF F8 EE 8E FF EF 88 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 98 8E F8 8E 98 8E F8 8E 98 EF EF 88 98 FE 8E 88 98 89 88 EF EE 89 88 EF 88 89 88 EF 88 89 88 EE 88 89 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 F8 FF EF F8 F8 EE EF F8 F8 8E EF FF E8 8E EE EE 88 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 8E EF EF 88 8E EF FE 8E EF EF F8 8E EE EE E8 8E 88 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 F8 8E 88 98 F8 8E 88 98 F8 8E 88 98 E8 8E 88 98 88 88 88 98 99 99 99 99 00 00 00 00 00 00 00 00 in other words (or rather images), into . Step 4: Save the changes done on a/0/8/2. Step 5: Open a/1/2/5 with an Hex editor. Step 6: Go to offset 0×BCB8 and change 1F7C1F7C into 9CF20EB9. Step 7: Go to offset 0×CF98 and change this: 00 00 00 00 00 00 00 00 33 33 33 33 43 44 44 44 43 44 44 44 43 44 44 F4 43 44 44 F4 43 44 44 44 00 00 00 00 00 00 00 00 33 33 33 33 44 44 44 44 FF 4E 44 F4 EE EF 44 EF 4E EF 44 EF F4 4E 44 44 00 00 00 00 00 00 00 00 33 33 33 33 44 44 44 44 EF 44 44 FF FE 4E F4 EE F4 4E F4 4E EF 44 44 F4 00 00 00 00 00 00 00 00 33 33 33 33 44 44 44 34 4E 44 44 34 EF 44 44 34 EF 44 44 34 4E 44 44 34 43 44 44 44 43 44 44 44 43 44 44 44 43 44 44 44 43 44 44 44 33 33 33 33 00 00 00 00 00 00 00 00 F4 4E 44 44 E4 4E 44 44 F4 4E 44 44 E4 4E 44 44 44 44 44 44 33 33 33 33 00 00 00 00 00 00 00 00 EF 44 44 F4 EE 44 44 E4 EF 44 44 F4 EE 44 44 E4 44 44 44 44 33 33 33 33 00 00 00 00 00 00 00 00 4E 44 44 34 4E 44 44 34 4E 44 44 34 4E 44 44 34 44 44 44 34 33 33 33 33 00 00 00 00 00 00 00 00 into this: 00 00 00 00 00 00 00 00 99 99 99 99 89 88 88 88 89 88 FF FF 89 88 EF EE 89 88 EF 88 89 88 FF EF 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 88 8E FF 8E FF FE EE EF FE F8 8E EF F8 F8 8E EF F8 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 88 EF FF EF F8 EE EF FE FE 8E EF F8 EE 8E FF EF 88 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 98 8E F8 8E 98 8E F8 8E 98 EF EF 88 98 FE 8E 88 98 89 88 EF EE 89 88 EF 88 89 88 EF 88 89 88 EE 88 89 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 F8 FF EF F8 F8 EE EF F8 F8 8E EF FF E8 8E EE EE 88 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 8E EF EF 88 8E EF FE 8E EF EF F8 8E EE EE E8 8E 88 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 F8 8E 88 98 F8 8E 88 98 F8 8E 88 98 E8 8E 88 98 88 88 88 98 99 99 99 99 00 00 00 00 00 00 00 00 Which will transform into . Step 8: Save the changes done on a/1/2/5. Step 9: Open arm9.bin with an Hex editor. Step 10: Go to offset 0×8E09D (B2) / 0×8E0C9 (W2) and change 00 into 02. Step 11: Save the changes done on arm9.bin. Part 4: Fairy-type template Step 1: Open a/0/1/1 with NDSeditor. Step 2: Double-click the file to open this window. Step 3: Tick the box and click on the leftmost icon (Extract selected) NDSeditor will extract all the files in the same folder a/0/1/1 is located at. Step 4: Move a/0/1/1 out of the folder so that only the extracted files stays. Step 5: Copy file a/0/1/1-570 (or any file ending with .rlcn) and rename it a/0/1/1-572. This will be our palette for the Fairy-type template. Step 6: Open file 572 in a Hex editor. Step 7: Wipe out the contents and paste this: 52 4C 43 4E FF FE 00 01 28 02 00 00 10 00 01 00 54 54 4C 50 18 02 00 00 03 00 00 00 00 00 00 00 00 02 00 00 10 00 00 00 CD 75 29 25 08 21 E7 1C C6 18 A5 14 84 10 63 0C 7D EE 5B 66 39 5E F6 D5 D4 C9 B1 41 1F 7C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Step 8: Save and close your Hex editor. Step 9: On NDSeditor, click Tools and 'Make Narc file' Step 10: Select the folder where your extracted files are located and click OK. Step 11: Close NDSeditor. Step 12: Open overlay 168 with your Hex editor. Step 13: Go to offset 0×15E48 and change 0000 into 3C02. Step 14: (optional) Go to offset 0×13F0A and change 0127 into 0000. This will disable the 'Low HP' music, which I personally don't like for killing the 'tension' of fights. Step 15: Save the changes done on overlay 168. End-results: => Part 5: Hall of Fame Explanation: Step 1: Open overlay 265 with your Hex editor. Step 2: Go to offset 0×06B4 and change: CC(B81902) into C8(B81902) if B2; 0C(B91902) into 08(B91902) if W2; Step 3: Go to offset 0×2008 and change this: 00 00 00 00 2D 00 00 00 26 00 00 00 28 00 00 00 2E 00 00 00 2B 00 00 00 30 00 00 00 22 00 00 00 29 00 00 00 31 00 00 00 27 00 00 00 32 00 00 00 2A 00 00 00 25 00 00 00 2F 00 00 00 2C 00 00 00 24 00 00 00 23 00 00 00 into this: 2D 00 00 00 26 00 00 00 28 00 00 00 2E 00 00 00 2B 00 00 00 30 00 00 00 22 00 00 00 29 00 00 00 31 00 00 00 27 00 00 00 32 00 00 00 2A 00 00 00 25 00 00 00 2F 00 00 00 2C 00 00 00 24 00 00 00 23 00 00 00 [u]XX[/u] 00 00 00 What you did there really is a circular shift by 32 bits to the left, no more no less. XX can be any value between 0×22 and 0×32. Step 4: Go to offset 0×21DC and change 09 into 04. Go to offset 0×221C and change 00 into 09. Step 5: Save the changes done on overlay 265. Step 6: Open a/2/1/3 in a Hex editor. Step 7: Go to offset 0×513C and paste this: 52 4C 43 4E FF FE 00 01 28 02 00 00 10 00 01 00 54 54 4C 50 18 02 00 00 03 00 00 00 00 00 00 00 00 02 00 00 10 00 00 00 87 1A 9C 72 F5 55 B2 49 6F 3D 2D 35 EA A8 A7 9C 65 94 22 88 00 00 1F 7C 1F 7C 1F 7C 1F 7C 1F 7C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Step 8: Save the changes done on a/2/1/3. The end result will look like this: This is a temporary fix as of now, the ideal fix would be to create a particle (.spa) specifically for the Fairy-type. The template is there to stay though. Part 6: Pokémon summary emergency freeze fix This is not a perfect fix, since what it does is that if it detects a Fairy-type icon that should be loaded, it will instead load the Normal-type icon. But at least when it comes to preventing a freeze when trying to view a Pokémon summary, it gets the job done. Step 1: Open overlay 207 with your Hex editor. Step 2: Change the following: 0×3C20 : 0698 AF21 0022 AF24 => 0049 0847 F13B0902 0×3C30 : 3118 AF20 8130 0858 => 0049 0847 033C0902 0×5EA8 : 051C 201C AF21 0022 => 0049 0847 273C0902 0×5EB8 : A800 3118 AF20 8130 => 0049 0847 393C0902 0×7888 : B000 2918 1320 0001 => 0049 0847 153C0902 Step 3: Save the changes done on overlay 207. Step 4: Open arm9.bin with an Hex editor. Step 5: Go to offset 0×8FBF0 and paste this for B2: 11 2D 00 DB 00 25 06 98 AF 21 00 22 AF 24 13 4F 38 47 11 2F 00 DB 00 27 31 18 AF 20 81 30 08 58 0F 49 08 47 11 2E 00 DB 00 26 B0 00 29 18 13 20 00 01 0C 4D 28 47 05 1C 11 2D 00 DB 00 25 20 1C AF 21 00 22 08 4C 20 47 11 2F 00 DB 00 27 A8 00 31 18 AF 20 81 30 08 58 04 49 08 47 A9 6B 1B 02 B9 6B 1B 02 11 A8 1B 02 31 8E 1B 02 43 8E 1B 02 or this for W2: 11 2D 00 DB 00 25 06 98 AF 21 00 22 AF 24 13 4F 38 47 11 2F 00 DB 00 27 31 18 AF 20 81 30 08 58 0F 49 08 47 11 2E 00 DB 00 26 B0 00 29 18 13 20 00 01 0C 4D 28 47 05 1C 11 2D 00 DB 00 25 20 1C AF 21 00 22 08 4C 20 47 11 2F 00 DB 00 27 A8 00 31 18 AF 20 81 30 08 58 04 49 08 47 E9 6B 1B 02 F9 6B 1B 02 51 A8 1B 02 71 8E 1B 02 83 8E 1B 02 Step 6: Save the changes done on arm9.bin. Part 7: Reinsertion Reinserting files will require you to first right-click and then: use Compression if you're reinserting overlays or arm9; use Import if you're reinserting anything else. Step 1: Open your Pokémon Black 2 or White 2 ROM with CrystalTile2. Step 2: Click the NDS icon (or alternatively click Ctrl+N). Step 3: Reinsert overlay 168 with the Compression option. Step 4: Extract overlay 168 but this time exceptionally with Export, you'll see why later. Step 5: Go to offset 0×363F40 and change 00 3C 1B 00 into 00 3D 1B 00, this will change the ROM (not RAM) address of overlay 168. Go to offset 0×364530 and change 00 9A E5 08 into 00 99 E5 08, this will change the ROM address of narc a/0/1/1. Step 6: Right-click on overlay9_167.bin and click 'distribution Overlay file location and space'. Step 7: Change 021998C0 into 02199740 (B2) / 02199780 (W2) and click OK. Step 8: Right-click on each of the following files and click Compression. arm9.bin overlay9_0167.bin overlay9_0207.bin overlay9_0265.bin Likewise, right-click on each of the following files and click Import. overlay9_0168.bin (this time only) a/0/1/1 a/0/8/2 a/1/2/5 a/2/1/3 Note: If you omit Steps 3 and 4 and try to reinsert overlay 168 using Compression AFTER the fat.bin has been changed, then CrystalTile2 will crash for some reason. Otherwise using Compression on overlay 168 is fine. Urgent to do: Try to load Hall of Fame Fairy-particle with a custom file, and try to get the Hall of Fame working on a real NDS. To do: Try to load the Fairy-type icon in the Pokémon summary (While I did build a workaround so that it doesn't freeze anymore on a NDS, the Fairy-type icon still cannot be loaded without throwing an error). Load the Fairy-type icon in the PC, while deactivating it if the Pokémon is not Fairy-type. Try to load the Fairy-type icon in the Pokédex. Make Struggle type 0×12, as it stands right now Struggle is considered Fairy-type. Hope you enjoyed reading. A little video to see the Fairy-type in action: [video=youtube;QE-HvGAAJnA]
  5. http://www.mediafire.com/file/0wwoa8sfgy8fbkj/Pokémon_MindCrystal(F)_v3.0.zip The source folder contains some of the ASM, so you can check for yourself some of the code behind the improvements. New: Both Latias and Latios roam through Kanto at Lv.50. Blue (the female FRLG deuteragonist) replaces Red in the female storyline (credits to NeonShadow2 for the sprites and NSora-96 for the overworld sprites). Pokémon palettes were updated to B2W2 standards and then improved even further if necessary. Some Pokémon were given a second type (Johto starters' final evolution for example). Odd Egg given to you by the Day Care Lady, which can hatch into any of the 17 non-Togepi babies and has a 50% of being shiny. Battle Frontier Pokémon from 351 to 950 are now tiered in the following fashion: _Set 1: 351 to 533 (183 Pokémon) _Set 2: 534 to 716 (183 Pokémon) _Set 3: 717 to 899 (183 Pokémon) _Set 4+: 351 to 950 ("183 Pokémon + 17 legendaries" times 3) A new setting has been added for Battle Frontier Pokémon, now they can have an Ability: _from either slot at random (default) _locked to Slot 1 _locked to Slot 2 Battle Frontier Pokemon IV and EV generation has been modified to optimize Hidden Power, Gyro Ball and Trick Room most notably. 6 new Abilities were implemented: _Cursed Body (Shuppet, Banette, Froslass) _Magic Bounce (Natu, Xatu, Espeon, Absol) _Slush Rush (Swinub, Piloswine, Mamoswine, Glaceon) _Long Reach (Horsea, Seadra, Kingdra) _Galvanize (Voltorb, Electrode) _Queenly Majesty (Vespiquen) The following moves are now bounced back by Magic Coat and Magic Bounce: _Whirlwind _Roar _Disable _Spikes _Foresight _Encore _Torment _Taunt _Odor Sleuth _Miracle Eye _Embargo _Heal Block _Toxic Spikes _Defog _Stealth Rock All trees have Pokémon now, most of them default to Group 1. Starf Berry can now sharply increase accuracy and evasion as well. Stats will always be calculated assuming an IV of 31, regardless of the actual IV value, this is done to not disavantage you too much against trainer Pokémon, especially early-game. TMs are now reusable: _you can no longer throw away TMs _you can no longer give TMs to hold _Purchasable TMs, regardless of the currency, can only be bought one at time and only once _TM56, TM86 and TM26 are no longer Pickup items and were replaced with Lucky Egg, Life Orb and PP Max respectively _as such, each TM is available only once HP bar graphics in battle were changed: _HP are now displayed for the opposing side in single format, double format is unchanged in that regard Alternate forms from Trainers now have their correct Ability (instead of the Base form's) as well as their correct Stat spread (again instead of the Base form's). Shellos and Gastrodon East Sea forms are now available in Kanto. New fixes: Sleep Talk can now be used multiple times under the effect of Choice items and/or Encore. Headbutt Trees encounters ignore Intimidate and Keen Eye. Cute Charm encounters have been improved: _Cute Charm-generated PID are no longer restricted, which means you can't abuse anymore Cute Charm for easy Shinies _assuming the initial check succeeded (2 chances in 3), Cute Charm won't generate a new PID in the following cases: __If Cute Charm would actually decrease the odds of encountering a given gender for one given species, __If the Cute Charmer is genderless, __If the Wild Pokémon is a specimen of a male-only species, __If the Wild Pokémon is a specimen of a female-only species, __If the Wild Pokémon is a specimen of a genderless species, __If the Wild Pokémon's gender is already the opposite of the Cute Charmer's Bugfix: Capture Tutorial fixed Additional Trainers fixed Tough Claws fixed Non-Sturdy Pokémon benefitting from Sturdy fixed Mom always buying Haban Berry out of the 18 Berries fixed Mistake on Bug Catching score fixed Mistake on Egg IV calculation fixed Growth, Minimize, Sweet Scent and Tail Glow not boosting their respective stats properly when called by other moves fixed Acupressure failing if called by other moves and if the user is behind a Substitute fixed Roseli Berry not always reducing super-effective Fairy-type moves fixed Lugia summoning cutscene slowed down to 30 FPS to work on a NDS Ho-Oh summoning cutscene slowed down to 30 FPS to work on a NDS Script error on Egg move tutor fixed TODO: !Damage-reducing berries now halve the damage that was to be taken before Endure and Sturdy are taken into account !18 new items: the Gems _A Gem will not be consumed if the move is going to fail, regardless of the reason _Moves that deal fixed damage or whose damage does not depend on the damage formula are ignored update the encounter tables update the trainers tables
  6. When you add new trainers to fight against, there's usually no text associated with them while fighting. The solution is found on narc a/0/5/7. The file itself, without the header, is 6868 bytes long. Each reference is 4 bytes long. 6868 / 4 = 1717 references. Each of these references points to its corresponding message on text file 728 from narc a/0/2/7. To add a new message on text file 728, use Spiky's DS Map Editor. Format is TT TT MM PP TT TT is the Trainer slot number (little endian, as always). MM is the condition for the text to display. PP is the padding (always 00). Conditions for the message to display (in hex): Single Battle: 00 Trainer text upon noticing you or if you talk to him/her (overworld) 01 Trainer text if you defeat him/her (fight) 02 Trainer text after you defeated him/her (overworld) 0F Trainer text if he sends in his/her last conscious Pokémon (fight) 10 Trainer text if his/her last conscious Pokémon is on critical health (fight) 14 Trainer text if you lose or draw (fight) Double Battle: 03 First trainer text upon noticing you or if you talk to him/her (overworld) 04 First trainer text if you defeat him/her (fight) 05 First trainer text after you defeated him/her (overworld) 06 First trainer text if you only have 1 conscious Pokémon before engaging the fight (overworld) 07 Second trainer text upon noticing you or if you talk to him/her (overworld) 08 Second trainer text if you defeat him/her (fight) 09 Second trainer text after you defeated him/her (overworld) 0A Second trainer text if you only have 1 conscious Pokémon before engaging the fight (overworld) I seem to run into some problems though when appointing new Trainers: _I only got condition 01 to work so far; _0F, 10 and 14 just don't trigger at all, so there must be something else still… To do: Test the rest.
  7. Coming soon: the Odd Egg, hatching into 1 Pokémon out of 17 possible species, and with 50% (actually 49.9904%) chance of being shiny. Tested on a NDS: xrpl_0220211E_ov_01:NOPLDR R0, =0x21D15A4LDR R0, [R0]LDR R0, [R0, #4]LDR R0, [R0, #0x18]LDR R1, =0x1264LDRH R1, [R0, R1]LDR R0, =LocationSTRH R1, [R0]LDR R0, =0x14BCMP R1, R0 @ Check if Day Care is the current locationMOVEQ R1, #0 @ If it is then Egg ID location will be Day Care CoupleMOVNE R1, #0xD @ Else it will be Mr. PokémonMOV R0, #1BX LRxrpl_0220212C_ov_01:NOPLDR R0, =LocationLDRH R1, [R0]LDR R0, =0x14BCMP R1, R0 @ Check if Day Care is the current locationMOVNE R1, #0xAF @ If not, this is the Togepi Egg eventBNE .ReturnEggLDR R0, =PseudoStackSTR LR, [R0]LDR R0, =0x21D15C8 @ Else if it is, this is the Odd Egg eventLDR R0, [R0] @ Get the Dynamic Seed (rather than the Static Seed at 0x21D15CC)MOV R1, #0x11BL 0x20F2BA4 @ Unsigned divisionCMP R1, #0x10 @ Error handler in the normally-impossible case R1 is out of range...MOVHI R1, #0 @ ...which defaults to PichuMOV R1, R1, LSL #2 @ Multiply Seed remainder by 4LDR R0, =SeedRemainderSTRH R1, [R0] @ Store Seed remainderLDR R0, =EggLDRH R1, [R0, R1] @ The game selects one of the babies Pokémon (minus Togepi) according to the SeedLDR LR, =PseudoStackLDR LR, [LR].ReturnEgg:MOV R0, R5BX LRxrpl_02202158_ov_01:NOPLDR R0, =LocationLDRH R1, [R0]LDR R0, =0x14BCMP R1, R0 @ Check if Day Care is the current locationMOVNE R1, #0x50 @ If not, replace Extrasensory with Petal Dance for TogepiBNE .ReturnEggMoveLDR R0, =SeedRemainderLDRH R1, [R0] @ Else if it is, get the Seed remainder that was stored earlierADD R1, R1, #2LDR R0, =EggLDRH R1, [R0, R1] @ The game selects the extra Egg Move according to the chosen Pokémon.ReturnEggMove:ADD R0, SP, #0xCBX LRxrpl_02202130_ov_01:NOPMOV R2, #1LDR R3, =PseudoStackSTR R0, [R3]STR R1, [R3, #4]STR R2, [R3, #8]STR R4, [R3, #0xC]STR R5, [R3, #0x10]MOV R3, R4BX LRxrpl_02202138_ov_01:NOPSTMFD SP!, {R2-R3}LDR R2, =LocationLDRH R3, [R2]LDR R2, =0x14BCMP R3, R2 @ Check if Day Care is the current locationLDMFD SP!, {R2-R3}BNE .ReturnPID LDR R0, =PseudoStackSTR LR, [R0, #0x14]LDR R3, [R0, #0xC]LDR R2, [R0, #8]LDR R1, [R0, #4]LDR R0, [R0]LDR LR, =.ShinyPIDSTMFD SP!, {R0-R3}STMFD SP!, {R4-R6,LR}SUB SP, SP, #0x20MOV R6, R1MOV R5, R0MOV R0, R6MOV R1, #0x13MOV R4, R3LDR LR, =0x206FBE9BLX LRADD R1, SP, #0x10STRB R0, [R1]LDR R0, =PseudoStackSTR R4, [R0]STR R5, [R0, #4]STR R6, [R0, #8]STR R7, [R0, #0xC]LDR R4, [R0, #0x10]LDR R4, [R4] @ Get Odd Egg PIDLDR R6, [R3, #0x10] @ Get Trainer ID and Secret IDMOV R0, R6MOV R1, R4LDR LR, =0x2070069BLX LRCMP R0, #0BNE .ResultShinyMOV R5, #0LDR R7, =0xB15.LoopIfNotShiny:MOV R0, R4LDR LR, =0x201FD69BLX LRMOV R4, R0MOV R0, R6MOV R1, R4LDR LR, =0x2070069BLX LRCMP R0, #0BNE .ResultShinyADD R5, R5, #1CMP R5, R7BCC .LoopIfNotShiny.ResultShiny:MOV R2, #1STR R2, [sP]STR R4, [sP,#4]LDR R4, =PseudoStackLDR R7, [R4, #0xC]LDR R6, [R4, #8]LDR R5, [R4, #4]LDR R4, [R4]MOV R0, #0STR R0, [sP,#8]STR R0, [sP,#0xC]LDR LR, =0x206C8DBBLX LR.ShinyPID:LDR LR, =PseudoStackLDR LR, [LR, #0x14].ReturnPID:MOV R4, #0MOV R6, R4BX LRxrpl_0206FC02:NOPMOV R0, R4LDMFD SP!, {R3-R5, LR}BX LR.data.balign 2Location:.hword 0x0SeedRemainder:.hword 0x0.balign 4PseudoStack:.word 0x0.word 0x0.word 0x0.word 0x0.word 0x0.word 0x0Egg:.word 0x5000AC @ Pichu Petal Dance.word 0x5000AD @ Cleffa Petal Dance.word 0x5000AE @ Igglybuff Petal Dance.word 0x9200EC @ Tyrogue Dizzy Punch.word 0x5000EE @ Smoochum Petal Dance.word 0x9200EF @ Elekid Dizzy Punch.word 0x9200F0 @ Magby Dizzy Punch.word 0xFC012A @ Azurill Fake Out.word 0x1410168 @ Wynaut Tickle.word 0xE30196 @ Budew Encore.word 0x5001B1 @ Chingling Petal Dance.word 0xE301B6 @ Bonsly Encore.word 0x3201B7 @ Mime Jr. Disable.word 0xE301B8 @ Happiny Encore.word 0x9201BE @ Munchlax Dizzy Punch.word 0x9201BF @ Riolu Dizzy Punch.word 0xE301CA @ Mantyke Encore
  8. If a Pokémon uses Endure, is supposed to take damage equal or superior to its current HP, and happens to consume a held damage-reducing Berry the same turn Endure is used, then: _the Enduring Pokémon won't be left with Math.floor(Expected damage / 2) HP , nor 1 HP if Expected damage >= 2 * current HP; _but instead will be left with Math.floor(Current HP / 2) + 1 HP, or 1 HP if Current HP <= 2. In other words this tells us that Endure, if successful, is checked before damage-reducing Berries, which is obviously a bad design. A similar problem happens with Counter, Mirror Coat and Metal Burst (possibly Bide as well) where the damage sent back is doubled from the damage that was to be taken BEFORE damage-reducing Berries are checked (showcased here).
  9. I see, some unforeseen consequences of this function located in ImprovedTrainers.s: @Incorporate Shininess:xrpl_0206DF1A:NOPLDR R2, [sP, #0x108]LDRB R2, [R2, #-0x14]LDR R3, =ShinyByteLDRB R2, [R3, R2]LDR R2, [sP, R2]LDRB R2, [R2, #3]TST R2, #0x80EOREQ R1, R1, #0x80000000STR R1, [sP, #0x3C]ADD LR, LR, #0x22BX LR which is actually hooked on the function where the shiny lock for Trainer's Pokémon is done. Instruction LDR R2, [sP, #0x108] is supposed to return an address in R2, problem is that the Rattata and the Marill from the catching tutorial also use this function, and in this case R2=0x0, which is a big no-no in a NDS. As such I modified the function into this: @Incorporate Shininess:xrpl_0206DF1A:NOPLDR R2, [sP, #0x108]CMP R2, #0BEQ .ShinyCheckDoneLDRB R2, [R2, #-0x14]LDR R3, =ShinyByteLDRB R2, [R3, R2]LDR R2, [sP, R2]LDRB R2, [R2, #3]TST R2, #0x80.ShinyCheckDone:EOREQ R1, R1, #0x80000000STR R1, [sP, #0x3C]ADD LR, LR, #0x22BX LR Which now takes into account the particular case where R2=0x0. This also means that Rattata and Marill will never be shiny, which was already the case in retail games. I will update the link, but first I want to test the game to see if there is any other major glitch. The problem is that after doing all those mods, I don't think I have enough left in the tank to do a translation on top of that, so no sorry. But if you're interested someone was kind enough to translate MindCrystal in English: https://mega.nz/#!SwNF2LwJ!9RuiKJ3DhkQ_fxDG9s1sxr_NjslRAfyP6yi0CNQiu1w
  10. beta 2.0 Fixed the quiet tune on map 108 (Route 45), a glitch that also occurs in the original versions. Fixed Strength graphical glitch that also occurs in the original versions. Fixed Facade graphical glitch that also occurs in the original versions. Fixed Kris' frames when riding a bicycle to the left. Fixed glitched Trainer names with 8 characters or more. Fixed 4 mistakes on overlay 18 that made the game hang upon sending some Pokémon according to their abilities (thanks Asia81). Routes 26, 27, 28, Tohjo Falls and Victory Road will always play the Johto versions of the Wild Pokémon theme and the VS Trainer theme. Eevee can now evolve into Leafeon if leveled-up at Ilex Forest. Eevee can now evolve into Glaceon if leveled-up at Ice Path. Magneton and Nosepass can now evolve into Magnezone and Probopass respectively if leveled-up at Team Rocket HQ. Pokémon that require a trade to evolve all gained an alternate method of evolution. Vulpix is now Fire/Fairy type. Persian is now Normal/Dark type. Misdreavus and Mismagius are now Ghost/Fairy type. Some Base Stats were upgraded to help some Pokémon perform better (for example Persian or Probopass). Hidden Power can be Normal or Fairy type now as well, the Hidden Power NPC will notice this too. Hidden Power no longer takes into account Speed to calculate the type. SFX for some moves were altered to suit them better. All 7 Fossils are available now at Ruins of Alph. The timeframe window to react to a rod bite has been doubled to make up for to the game running at 60 FPS while fishing. Females can now pass egg moves as well, eliminating all impossible egg moves combinations. A new NPC, called the Egg Move Tutor, makes an appearance; as the name implies he is capable of teaching your Pokémon moves that normally it has to know from birth, but also level-up moves that only pre-evolutions can learn, and for some Pokémon moves that they have no other way to learn, but you'll have to spend a hefty 200 BP to pay for his services! Having a Pokémon with the Ability Super Luck leading the party increases the likelihood of encountering a Shiny Pokémon. Shiny generation from "forced shiny encounters" method was slightly altered to take into account the modified Shiny Rate. Score calculation for the Bug-Catching Contest was modified to take into account shininess. Opponents' Pokémon can be shiny now. The number of possible seals combinations for opponents' Pokémon went up from 28 to 216. Nature is now easy to customize for opposing Trainers' Pokémon. Opponents can now have their Pokémon in any kind of Poké Ball. IVs for opponents' Pokémon can be chosen from a pool of 64 combinations, most notably to capitalize on Hidden Power, Gyro Ball and Trick Room. Ace Trainer Lois replaces Juggler Irwin in the Pokégear, you can set a rematch with her on Wednesday afternoons (10:00 to 19:59). ASM hack to allow more than 737 trainers in-game (complete with text). Battle Frontier Pokémon will always have an IV of 31 in all 6 stats. You must get all 8 Johto badges in order, this means: Chuck must be defeated before you can get the SecretPotion Jasmine must be defeated to unlock Route 42 All 16 Gym Leaders teams got revamped, as well as those of the Elite 4, Lance and Red. Continuity for opposing Trainers is preserved, by that I mean that the IVs, nature, shininess and gender of opposing Pokémon stay the same (for example Falkner's Pidgeot is canonically the same creature as when he was only a Pidgey). Pokédex entries got upgraded to match those of Pokémon Crystal (001 to 251) and Pokémon B2W2 (past 251 whenever possible). Gender will always be displayed, even for both Nidorans. Castform and Cherrim alternate forms now display their respective icon during battles. Castform's alternate forms now display their respective type when checked through the menu during battles. A new item was created, the Evolutor, which when applied like an Evolutionary Stone to a Lv 100 Pokémon, allows it to evolve if it can do so! Lv 100 Pokémon can gain EVs by fighting now, but they still need to be deposited in the PC for the stat gains to take fully effect. Lugia and Ho-Oh Kimonos' cutscenes co-exist. To-do: Continue to expand the biotope to increase the versatility of team-building. Continue to increase the levels of wild Pokémon to take into account the new difficulty curve. Update the Pokédex locations (which can be done). Continue to change the teams of opposing Trainers. Change the Game Corner dialogue. So, I wanted to get all the ASM Hacks out of the way, which is why I'm updating the download link now. Some changes were in the way ASM Hacks are handled, most notably ASM Hacks that were previously stored in arm9 are now stored elsewhere, more precisely where the arenaoffs begins (or rather previously began, as now it has been pushed further). That's because some glitches occurred like the Pokémon overworld icons that displayed the wrong Pokémon. Also some new ASM Hacks were made, like for example the one that make EV training a Lv 100 Pokémon possible, and the one that allows the Evolutor to work fully. Now that I got that out of the way, I can fully concentrate on the wild Pokémon and the Trainer teams! Download link: http://www.mediafire.com/download/lz83do1q3gc331b
  11. I am proud to present you the Gen VI mini icons (as per their ORAS incarnation) to use for NDS Pokémon games. How to use: 1°) Download the file Poké-icons.zip at the end of this post and extract its contents. It contains 5 icons files to use with the corresponding games, as well as a folder full of Pokémon icons in PNG format. 2°) Open your NDS Pokémon ROM with CrystalTile2. 3°) Click the NDS icon or Ctrl+N to open the file browser. 4°) Here is where the icons are located in each game: Diamond & Pearl: poketool/icongra/poke_icon.narc Platinum: poketool/icongra/pl_poke_icon.narc HeartGold & SoulSilver: a/0/2/0 Black & White: a/0/0/7 Black 2 & White 2: a/0/0/7 5°) Right-click on the corresponding narc and click Import to update it with the corresponding file for the game: Diamond & Pearl: Gen 4 (1-DP) Platinum: Gen 4 (2-Pt) HeartGold & SoulSilver: Gen 4 (3-HGSS) Black & White: Gen 5 (1-BW) Black 2 & White 2: Gen 5 (2-B2W2) 6°) Now Right-click on arm9.bin (located at the beginning of the file browser) and click Extract, unless you're using a Diamond, Pearl or Platinum ROM in which case you can click Export since the arm9 in those 3 games are not compressed. 7°) Open the extracted arm9 with a hex editor. 8°) Search for the following string: Gen 4: 00 01 01 01 00 00 00 00 02 02 01 01 00 01 02 02 Gen 5: 00 11 11 11 00 00 00 00 22 22 11 11 00 11 22 22 The hex editor should return 1 result only. The format for Gen 5 is slightly different, this is because Gen 5 icons have 2 files per Pokémon, one icon for the male and one for the female. The leftmost nybble is the palette for the female, while the rightmost nybble is the palette for the male. Usually the female-icon is an empty file, except for Unfezant, Frillish and Jellicent. 9°) Now that you have located the offset of the palettes, copy-paste this: Gen 4: [color="#000000"]00 01 01 01 00 00 00 00 02 02 01 01 00 01 02 02 00 00 00 02 01 00 00 02 02 02 00 02 02 00 00 00 02 02 02 00 00 02 01 00 00 02 02 01 00 00 00 00 00 02 02 02 01 01 01 00 01 01 00 00 00 00 00 02 02 02 00 02 00 01 01 01 00 00 00 00 02 00 00 01 01 00 00 01 02 02 02 02 02 02 00 00 02 02 02 02 02 01 00 00 00 00 00 01 01 01 02 02 01 02 02 00 01 00 00 02 00 00 00 00 02 02 00 01 02 01 00 02 02 00 00 00 02 02 00 00 00 00 00 00 01 02 02 02 00 00 00 00 00 00 02 00 01 01 01 00 00 00 00 00 00 02 02 02 02 00 00 01 00 02 00 00 01 00 01 00 00 01 01 00 00 00 01 00 00 01 01 01 01 00 02 01 01 01 00 00 02 02 00 01 00 00 00 02 00 02 00 02 01 00 02 00 00 01 00 00 00 02 00 00 02 02 00 00 00 00 00 00 00 00 00 00 00 00 02 01 02 02 01 01 01 00 01 02 02 02 01 01 01 00 01 01 01 01 01 00 00 00 00 00 00 02 02 02 02 00 02 00 02 01 00 01 01 01 01 01 00 00 00 00 01 01 01 00 00 01 01 02 02 02 01 01 01 01 02 02 02 02 00 00 00 02 02 02 02 02 02 00 00 01 00 00 00 00 02 00 01 02 00 00 02 00 01 00 00 00 02 01 00 01 01 01 01 00 00 00 02 01 00 00 00 00 00 01 00 00 01 00 00 02 02 00 01 00 00 00 01 01 00 00 00 02 00 00 00 00 00 00 00 01 00 00 02 00 00 00 00 02 00 00 00 00 02 00 01 00 00 01 01 01 01 00 02 00 00 00 00 00 00 02 02 01 01 00 00 00 01 00 00 00 01 01 01 01 00 00 00 00 00 00 01 00 00 00 02 02 02 02 02 02 00 00 02 00 02 02 00 00 01 00 00 00 01 00 00 00 02 00 00 01 01 00 02 00 00 01 00 00 00 01 01 00 00 01 00 00 01 00 00 01 01 00 00 02 00 01 00 02 02 00 00 00 00 00 02 00 00 00 00 00 00 00 01 01 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 00 00[/color] [color="#FF0000"]00 01 00 00 00 00 00[/color] [color="#008000"]00 00 00 01[/color] [color="#000000"]For DP, don't copy the red nor the green part at the end.[/color] [color="#FF0000"]For Pt, don't copy the green part at the end.[/color] [color="#008000"]For HGSS, copy all.[/color] BW: 00 11 11 11 00 00 00 00 22 22 11 11 00 11 22 22 00 00 00 22 11 00 00 22 22 22 00 22 22 00 00 00 22 22 22 00 00 22 11 00 00 22 22 11 00 00 00 00 00 22 22 22 11 11 11 00 11 11 00 00 00 00 00 22 22 22 00 22 00 11 11 11 00 00 00 00 22 00 00 11 11 00 00 11 22 22 22 22 22 22 00 00 22 22 22 22 22 11 00 00 00 00 00 11 11 11 22 22 11 22 22 00 11 00 00 22 00 00 00 00 22 22 00 11 22 11 00 22 22 00 00 00 22 22 00 00 00 00 00 00 11 22 22 22 00 00 00 00 00 00 22 00 11 11 11 00 00 00 00 00 00 22 22 22 22 00 00 11 00 22 00 00 11 00 11 00 00 11 11 00 00 00 11 00 00 11 11 11 11 00 22 11 11 11 00 00 22 22 00 11 00 00 00 22 00 22 00 22 11 00 22 00 00 11 00 00 00 22 00 00 22 22 00 00 00 00 00 00 00 00 00 00 00 00 22 11 22 22 11 11 11 00 11 22 22 22 11 11 11 00 11 11 11 11 11 00 00 00 00 00 00 22 22 22 22 00 22 00 22 11 00 11 11 11 11 11 00 00 00 00 11 11 11 00 00 11 11 22 22 22 11 11 11 11 22 22 22 22 00 00 00 22 22 22 22 22 22 00 00 11 00 00 00 00 22 00 11 22 00 00 22 00 11 00 00 00 22 11 00 11 11 11 11 00 00 00 22 11 00 00 00 00 00 11 00 00 11 00 00 22 22 00 11 00 00 00 11 11 00 00 00 22 00 00 00 00 00 00 00 11 00 00 22 00 00 00 00 22 00 00 00 00 22 00 11 00 00 11 11 11 11 00 22 00 00 00 00 00 00 22 22 11 11 00 00 00 11 00 00 00 11 11 11 11 00 00 00 00 00 00 11 00 00 00 22 22 22 22 22 22 00 00 22 00 22 22 00 00 11 00 00 00 11 00 00 00 22 00 00 11 11 00 22 00 00 11 00 00 00 11 11 00 00 11 00 00 11 00 00 11 11 00 00 22 00 11 00 22 22 00 00 00 00 00 22 00 00 00 00 00 00 00 11 11 00 11 11 11 00 00 00 00 00 00 22 22 22 22 22 00 00 11 11 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 11 11 22 00 00 00 11 00 11 11 11 11 22 00 11 11 11 11 00 11 11 00 00 00 11 00 22 11 00 00 00 00 00 00 00 00 11 11 00 00 00 00 22 22 22 11 11 11 00 00 00 00 00 11 11 00 00 00 11 00 00 00 00 00 22 11 11 00 00 00 00 00 00 00 11 22 22 22 11 11 22 00 00 00 11 11 22 00 22 00 00 00 00 00 22 00 00 11 11 22 00 22 22 22 00 00 00 22 11 11 00 00 00 00 00 00 11 22 11 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 00 11 00 11 00 00 00 00 00 00 00 00 11 00 00 11 00 22 11 11 11 00 22 22 22 22 B2W2: 00 11 11 11 00 00 00 00 22 22 11 11 00 11 22 22 00 00 00 22 11 00 00 22 22 22 00 22 22 00 00 00 22 22 22 00 00 22 11 00 00 22 22 11 00 00 00 00 00 22 22 22 11 11 11 00 11 11 00 00 00 00 00 22 22 22 00 22 00 11 11 11 00 00 00 00 22 00 00 11 11 00 00 11 22 22 22 22 22 22 00 00 22 22 22 22 22 11 00 00 00 00 00 11 11 11 22 22 11 22 22 00 11 00 00 22 00 00 00 00 22 22 00 11 22 11 00 22 22 00 00 00 22 22 00 00 00 00 00 00 11 22 22 22 00 00 00 00 00 00 22 00 11 11 11 00 00 00 00 00 00 22 22 22 22 00 00 11 00 22 00 00 11 00 11 00 00 11 11 00 00 00 11 00 00 11 11 11 11 00 22 11 11 11 00 00 22 22 00 11 00 00 00 22 00 22 00 22 11 00 22 00 00 11 00 00 00 22 00 00 22 22 00 00 00 00 00 00 00 00 00 00 00 00 22 11 22 22 11 11 11 00 11 22 22 22 11 11 11 00 11 11 11 11 11 00 00 00 00 00 00 22 22 22 22 00 22 00 22 11 00 11 11 11 11 11 00 00 00 00 11 11 11 00 00 11 11 22 22 22 11 11 11 11 22 22 22 22 00 00 00 22 22 22 22 22 22 00 00 11 00 00 00 00 22 00 11 22 00 00 22 00 11 00 00 00 22 11 00 11 11 11 11 00 00 00 22 11 00 00 00 00 00 11 00 00 11 00 00 22 22 00 11 00 00 00 11 11 00 00 00 22 00 00 00 00 00 00 00 11 00 00 22 00 00 00 00 22 00 00 00 00 22 00 11 00 00 11 11 11 11 00 22 00 00 00 00 00 00 22 22 11 11 00 00 00 11 00 00 00 11 11 11 11 00 00 00 00 00 00 11 00 00 00 22 22 22 22 22 22 00 00 22 00 22 22 00 00 11 00 00 00 11 00 00 00 22 00 00 11 11 00 22 00 00 11 00 00 00 11 11 00 00 11 00 00 11 00 00 11 11 00 00 22 00 11 00 22 22 00 00 00 00 00 22 00 00 00 00 00 00 00 11 11 00 11 11 11 00 00 00 00 00 00 22 22 22 22 22 00 00 11 11 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 11 11 22 00 00 00 11 00 11 11 11 11 22 00 11 11 11 11 00 11 11 00 00 00 11 00 22 11 00 00 00 00 00 00 00 00 11 11 00 00 00 00 22 22 22 11 11 11 00 00 00 00 00 11 11 00 00 00 11 00 00 00 00 00 22 11 11 00 00 00 00 00 00 00 11 22 22 22 11 11 22 00 00 00 11 11 22 00 22 00 00 00 00 00 22 00 00 11 11 22 00 22 22 22 00 00 00 22 11 11 00 00 00 00 00 00 11 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11 00 11 00 11 00 00 00 00 00 00 00 00 11 00 00 11 00 22 11 11 11 11 00 00 00 00 00 00 22 22 22 22 10°) Save and close the hex editor. 11°) Now you can re-insert the arm9 in the ROM with CrystalTile2 by right-clicking Compression (if your ROM doesn't load then try Import instead). This is the end result: NDS Pokémon icons have to fit a rectangle of 32 by 24 pixels, so I did my best to port them within that limitation. Credits: _Zhorken for ripping the ORAS Pokémon icons. _MeroMero (myself) for porting the icons to use with older gens. _pleoNeX for Tinke. _the angel-team for CrystalTile2. Now enjoy the updated icons Poké-icons.zip
  12. OP updated with the addition of a fix for Strength.
  13. Video courtesy of Wooggle Smith, showcasing the Facade glitch : [video=youtube;frLwdt3bSW4] Every time Facade is used, the sprite of the Pokémon who used the move will go up (or down for some Pokémon) by 1 pixel. To fix that graphical oversight: _Go to narc wazaeffect/we.arc (DPPt) or a/0/1/0 (HGSS) _Go to file 263 (which is the index number of the move Facade) _Replace all 6 instances of 05 00 05 00 with 04 00 04 00 But that's not all, there's also a glitch with the move Strength which moves the sprite of the Pokémon who used it by 2 pixels to the right. Again to fix this: _Go to narc wazaeffect/we.arc (DPPt) or a/0/1/0 (HGSS) _Go to file 70 (index number of Strength) _Search for the string 0A000000 05000000 16000000 87070000 8BFFFFFF, and replace the 0A000000 with 08000000. And that's it, Pokémon sprites won't erroneously shift up/down/right anymore after applying those 2 simple mods.
  14. This is the closest match I found that could describe the glitch you encountered: http://bulbapedia.bulbagarden.net/wiki/List_of_glitches_in_Generation_IV#GB_Sounds_muting _glitch [video=youtube;ObhQQYe8UI8] If it's not that, then: _Is it something you run into regularly, or was it a one-time thing? _Also in which route/city/cave/building does the glitch occur?
  15. You don't have to extract the text (narc a/0/2/7 btw), just download Spiky's DS Map Editor and you should be able to edit the text (and even add strings). And of course you can, all the mods I did in that ROM are free to use.
  16. I'm afraid not, or at least it won't come from me, sorry.
  17. No file attachment since the .zip is above 10 MB: http://www.mediafire.com/download/m3dnkqdpw9wr4vp Version 1.1 includes the gender-dependent storyline ASM Hack. Added Contrary in the list of abilities in the OP (Contrary is actually present in v1.0 but I forgot to put it in the list). The zip also includes a .sav where the female player is inside the Fighting Dojo in Saffron City. You can also browse through the Pokédex to see which Pokémon changed type. The Pokémon in the party all have moves they can learn in this hack, whether it is by level-up, move tutor, TM/HM or by breeding. I don't think I have any motivation left to work on any ROM hacking. Two years ago, I was clueless about ASM, and the first thing I did (Fairy-type Arceus) was approximate but at that time it was a huge accomplishment for me; but since then I have improved and look where I am today. Despite that I still think that I had a good run and I had fun, so it's time for me to go quietly and serenely. Know that anyone can use my any of my ROM hack as a base. Also anyone is free to improve what can be improved. Credits are appreciated but not required and I won't hold it against anyone.
  18. Oh, that? Yes, a problem I never quite understood. What I know is that it happens only for trainers who have 8 characters or more in their name. Whenever I have the time I'll get a look on it and see if I can fix that.
  19. First post updated. Revision 4 brings 3 new updates to the table: A fix that allows the Pokémon summary screen to be loaded on a NDS should it detect a Fairy-type icon (this is not the ideal fix though, I'll give you that, but for its primary goal, this is more than enough for now); Narc a/1/2/5 needing to be tampered with due to the fact that it is loaded when teaching a move via the Move Relearner; Due to a better understanding of ASM, now the type-chart really is a 18×18 type chart now, not a 17×18 weird chart with a hackish way to account the Fairy-type as a defender.
  20. Simply add 0×10 (16) to the 12th byte, like in B2W2, since this byte is always a number between 00 and 0F included, the end result would be a number between 10 and 1F included. More detailed explanation More specifically both the 11th and 12th bytes should be read together, since both trigger the EVs to give should a member of this species is defeated. For example Ninetales' EV data is 40 04. Invert the bytes to read it as 04 40. Cleave each byte in half so as to read each number separately: 0 4 4 0. Now convert into binary to read the EVs as 0000 0100 0100 0000. You can use this nice site for the conversions: http://www.binaryhexconverter.com/ Now read this number as pairs of 2 bits: 00 00 01 00 01 00 00 00. From right to left: _the first pair tells how many EVs to give in HP (from 0 to 3) _the second pair tells how many EVs to give in Attack (from 0 to 3) _the third pair tells how many EVs to give in Defense (from 0 to 3) _the fourth pair tells how many EVs to give in Speed (from 0 to 3) _the fifth pair tells how many EVs to give in Special Attack (from 0 to 3) _the sixth pair tells how many EVs to give in Special Defense (from 0 to 3) Now you can tell that defeating a Ninetales gives 1 EV in Speed and 1 EV in Special Defense. _the seventh pair, more precisely the 13th bit, is what the game read to know if the Pokémon should come from the air or not when being summoned from a Poké Ball. So if you put this bit at 1, the data would be read as 00 01 01 00 01 00 00 00. By gluing the pairs together 2 by 2, we get: 0001 0100 0100 0000. From binary to hex now: 1 4 4 0. By gluing each nybble together 2 by 2, we get: 14 40. Now invert the bytes and this will be the final data: 40 14.
  21. Update coming soon that fix the Pokémon summary screen freeze when trying to view a Fairy-type Pokémon or Attack. I already implemented it in Black 2, as soon as I get it working in White 2 I'll update the OP.
  22. Thanks. One thing I forgot to shed light on is that obviously, every single one of those modifications were tested with the utmost accuracy on my NDS lite. Did you know the animation for the cutscene where the Kimono Girls are dancing to summon the cover legendary is actually dependent of a single byte, who in turn is independent of Lugia and Ho-Oh? (I'm talking about the waves for SoulSilver / falling leaves for HeartGold) If that byte is 07, then the cutscene will play the HeartGold animation; if that byte is 08, then the cutscene will play the SoulSilver animation. So what I did is an ASM hack to check upon each location change the current location, and thus if the current location is the one referred with the Location ID 340 (0×154, which refers to the Tin Tower's roof), then the cutscene byte will be changed from 08 to 07, else if it is any other location, that byte will be equal to 08. Check in the RAM viewer for the offset 0×20F566C if you want to test it. Unrelated but likewise, if the byte located at offset 0×20F5670 is equal to 02, then the titlescreen will be the HeartGold one, if it is equal to 03, then the titlescreen will be the SoulSilver one.
  23. Incoming in v2: gender-dependent storyline! [video=youtube;6mSEx6OxzmQ] Roughly 80 bytes of ASM code and a duplicate of the a/ folder (named z/ instead to ensure the Files ID are kept in the same order) to make this possible. You can see there what a Gen IV Pokémon game running at 60 FPS looks like (be sure to watch the vid at 720p60 then). And also Kris, to make a true tribute to Pokémon Crystal. Basically if you play as a boy, Feebas and Milotic are unavailable in the wild, whereas if you play as the girl, Magikarp and Gyarados instead are the ones nowhere to be found. In this hack this is not an insurmountable problem since the Magikarp/Gyarados family (who are male only) and the Feebas/Milotic family (who are female only) are considered the same species, which means you can get the missing counterpart by breeding with Ditto.
  24. So, I was wondering why in HGSS, Chuck's Medicham (at 141 HP) would ALWAYS OHKOes himself after missing Hi Jump Kick against a Lv.100 Giratina (who at the absolute worse, still has 410 HP), it didn't match with the currently known Gen 4 mechanics of (Hi) Jump Kick. After scratching my head good, I decided to test thoroughly what was that, and here are my results: What is currently known: If a Pokémon misses Jump Kick or Hi Jump Kick, no matter the reason, it will take crash damage equal to half the damage that would have been dealt, rounded down. If the Pokémon is supposed to take crash damage but the result is 0, then make the result 1. What is not known: If a Pokémon misses Jump Kick or Hi Jump Kick against a Ghost-typed target, it will take crash damage equal to half the target's Max HP instead, regardless of: the difference of level between the user and the target, the target having Wonder Guard, the target using Protect/Detect, the target being in the semi-invulnerable turn of a 2-turns move BUT If the Pokémon who missed Jump Kick or Hi Jump Kick against a Ghost-typed target happens to have the ability Scrappy and/or has used Foresight/Odor Sleuth beforehand, the game will instead perform, according to the assembly, a comparison between half the damage that would have been dealt (Variable 1) and half the max HP of the Ghost-typed target (Variable 2). If Variable 2 is greater than or equal to Variable 1, the game will choose Variable 1, else it will choose Variable 2. If the Pokémon is supposed to take crash damage but the result is 0, then make the result 1.
×