Jump to content


Recommended Posts


I'm very excited to test this but I encountered a bug in the begining when Ethan shows me how to catch pokemons. The image freezes, the music continues but I can't reset the game. I play on a linker with my 3DS and I don't have any problem with the non-patched game be it with the linker or the original cartridge.

I hope there is a solution to my problem ! Thank you.

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.

do you plan to release this hack on english after you did all the things of your to do list? I'm very interested in this hack, but my french skills are to bad for playing it.

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:


  • Like 1
Link to comment
Share on other sites

But if you're interested someone was kind enough to translate MindCrystal in English:


Most of that still seems to be in French. EDIT: Only the male story line is translated, it seems.

On another note, if you could figure out how to get rid of the Control Info/Adventure info screen on a new game, that would be cool.

Link to comment
Share on other sites

  • 2 weeks later...

Is that translation using the last version of your rom? Cause if it is, I really want try it. I was also looking for a cool HG/SS to play and try to insert pokemons and edit them as well, it seems yours is one of the best here. Of course, if I edit something it will be for my own use and will not share here or anywhere else.

Link to comment
Share on other sites

Even tho I don't understand French pretty much at all, I'm giving this a go because of Crystal and all those pretty changes.

Also, wanted to drop these non-experience-breaking Action Replay codes that I've found over the internet and tested myself that worked.

Instant message speed

12002346 00002100

120202EE 00001C0C

120202F0 00004818

1202031E 0000BD10

02020320 E7E53C2D

1202032E 0000D0DF

1202033A 0000E7F1

Got it from this GameFaqs thread, in case anyone wants to play a bit with them and test which work and which doesn't.

Go to the Pokemon Summary while holding: L to view the EVs, R to view the IVs.

520899C4 F99CF7E6

120899CC 000021A3

120899D8 000021A4

120899E4 000021A5

120899F0 000021A6

120899FC 000021A8

12089A08 000021A9

12089A14 000021A7

D2000000 00000000

94000130 FDFF0000

120899CC 0000210D

120899D8 0000210D

120899E4 0000210E

120899F0 0000210F

120899FC 00002111

12089A08 00002112

12089A14 00002110

D2000000 00000000

94000130 FEFF0000

120899CC 00002146

120899D8 00002146

120899E4 00002147

120899F0 00002148

120899FC 0000214A

12089A08 0000214B

12089A14 00002149

D2000000 00000000

Got it on a GBATemp Thread.

It would be better if we could also disable the attack animations, but whatever, the game goes fast enough. Nice work, greetings from Uruguay <3

EDIT: LOLWAT? I didn't expected for the Bug-Catcher before Violet City to have a Ledyba with Thunderpunch :XD:

EDIT2: Wow, things are harder than I thought, I totally understimated the Sprout Tower and got rekt because of those Hoothoot anihilating me after the Bellsprouts effort, I guess I'll have to take this more seriously :XD:

By the way, I'm kinda intrigued, how did you enabled 60FPS in these NDS Roms? It's pretty freaking awesome, no more feeling like a retard running at turtle pace, yaay.

^ EDIT: Nvm, found the way to remove the Framerate Limiter on my own, thanks to Google.

EDIT3: Had to restart my save because of some unnecesary-to-explain things and my Lv12 Totodile is getting rekt with the very 2nd trainer of the game, Pidgey's Sand Attack and Hoothoot's Hypnosis are a brutal combo, add to that the fact that you forced the players to not be able to use items in Trainerbattles and you have some serious troubles since the very beginning.

EDIT4: And I thought at first that you changed the GB Sounds for the NDS ones and viceversa in a way that using the GB Player would enable the NDS Style for the songs, but nope, even if you enable the GB Player, it restarts the map's music using the GB Sounds so there's no way to actually use the NDS tracks at the player's will, that's not really cool.

Edited by Lunos
Link to comment
Share on other sites

  • 2 weeks later...

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


Edited by MeroMero
Link to comment
Share on other sites

  • 4 weeks later...
  • 5 months later...
  • 1 month later...


The source folder contains some of the ASM, so you can check for yourself some of the code behind the improvements.

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:
_Odor Sleuth
_Miracle Eye
_Heal Block
_Toxic Spikes
_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



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

!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

Link to comment
Share on other sites

Can you do something to add Rage Candy Bar and Slowpoké tail to the banned held-able item list like Kurt's balls and Contest and Park ball? Also overwriting the last 2 (that normally cannot be obtained in the bag) with the 2 that I wish from the banned list? I changed the items to work regularly and now Rage candy is a regular medicine item and works exactly like the Potion, but could be held by a pokémon and then traded in another game, not is a great job... Can you please do something to fix this?

Edited by Halfshadow
Link to comment
Share on other sites

  • 4 months later...
  • 10 months later...
  • 3 months later...
  • 1 month later...

I fear answering to this topic is something akin to resurecting the dead but I wanted to go back to SoulSilver and I tried this romhack again and the patch was sucessfull, I was able to get past the caching tutorial. (I thought I should provide feedback being the one to point out the bug, even 2 years later, ahem)

But now I have a question, is it possible to get the fps back to normal ? I feel like the game is stuttering. It's not gamebreaking or something, and I don't mind to do some hexa editing, so if someone have an idea I would be very grateful.

Link to comment
Share on other sites

  • 2 years later...

Hello, I' would like to know if this is possible to hack Pokemon HGSS for all the pokemon have their two abilities on the same time ? Thank you :)


Bonjour, j'aurai aimé savoir s'il y a un moyen de modifier  le code source des jeux Heart Gold et Platine s'il vous plait ?
J'aimerai faire en sorte que les Pokémon aient leurs 2 talents actifs en même temps ?
Par exemple, nous n'avons pas a choisir entre les talents "Regard Vif" et "Pied Confus" de Roucarnage, il aura ses deux, (ainsi que tous les Pokemon evidemlent). 
Merci d'avance :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...