Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

13 Good


About MeroMero

  • Rank
    Researcher - ROM

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi, i saw your hack rom Pokemon mind crystal and found very cool. One feature that called my attention is that you made light ball work on raichu and pichu as well as pikachu. How did you do that? I'm still a begginer on hack rom so i don't know much, and i'm trying to make light ball useful to raichu in my pokemon fire red but i don't know how. i tryed to search every place but couldn't found any tutorial about items effects directly and how to change then. Could you explain to me how do i do this?  Thanks in advance.

  2. 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
  3. When you can, write me. I have important things to tell you and I need a bit help.

  4. 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
  5. 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).
  6. 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
  7. 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
  8. OP updated with the addition of a fix for Strength.
  9. 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.
  10. 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?
  11. 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.
  12. I'm afraid not, or at least it won't come from me, sorry.
  13. 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.
  14. 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.