Sign Up connects you to ROM Hackers around the world.

Forcing perfect IV's through asm?

0 Votes
Otto's Foxhole
Posted May 20, 2014 by Otto's Foxhole
Category: ASM
Total Views: 1645

Before i begin asking the question, i am not looking for a simple noob-be-gone answer like "anything is possible with asm". to counter that, try using asm to make a 2d system 3d. point proven. as for my question, i will try to be specific.

I want to take a clean fire red rom, and write asm code that does the following:
Eliminates RNG for wild pokemon, Traded pokemon, and recieved pokemon, rerouting it ti yeild 6iv always.
The questions that come into play are:
What is the best procedure to do so, and would it be feasibly possible without severely breaking the game?
What things should i look out for in regards to the RNG being nessicary?
What about traded pokemon? i wouldnt want the iv's to be altered from another pc trade, but altered for a npc trade.
Finally, how could this be implimented to yeild the target 6iv pokemon without making them illegit (as in it still generates the rest of the data correctly resulting in pokemon that can be imported into d/p/plt and ultimately into X/Y?

All Answers

1 Vote
Posted May 21, 2014 by HidoranBlaze

_Fallenleader_: You might want to take a look at this:
It might help.

0 Votes
Posted May 21, 2014 by Jambo51

The GBA is capable of rendering in 3D, just saying, and there's nothing stopping you from using the Bitmap mode and software rendering to create a 3D game. I'm not saying you should, or even that it would work as well as a proper 3D system, but I digress.

As far as I'm aware, you could find the locations for the RNG generations by breaking on write to the data area set aside for the Pokémon, but I'm too tired to go into specifics.

As for them being legit - they'd be considered legit by the gen 3 game itself (as long as you updated the checksum), but it depends on how "illegitimate" Pokémon are detected in the later gen games. Since it's theoretically possible to get a perfect IV Pokémon, and to then trade it up from gen 3 to gen 6, I struggle to see why you couldn't do it.

0 Votes
Otto's Foxhole
Posted May 21, 2014 by Otto's Foxhole

The reason i mentioned Illegit, is the PID. Until recently, this helped ditermine more accurately if a pokemon was "legit" because no pokemon could have 6ivs on a pid that onlly had 3ivs for example. this is why so many people who didnt know what they were doing got caught and flagged as cheaters. The meathod i was thinking of would basically make the game yeild a single RNG value that would ensure a 6IV rate of 100% similar to what the action replay code for shiny pokemon does, just in a safer manor. I also have never heard of an instance where anyone was able to import a pokemon that was shiny using the AR into DPPLT as it flags them as illegit (maybe due to the PID once again) While the meathod i am thinking of may be faster, i could simply be underestimating the power of the AGB and it could probably be capable of running a sideroutine that checks for the first generated 6iv RNG, and uses that. The only flaw i would see in this would be the ratio of 6iv to random regular iv's. also, the only other way i could think of, is to make a routine that generates the values needed (a hijacked RNG) for 6iv. I would even go as far as to impliment an opitional script that can activate it, turn on a shiny generator for those interested, and disable it altogether. I definitely could use any information possible, as i definitely want to figure out, and write a routine to do just that, or if anything else, the better option of the three. Feel free to mention anything that i havent thought of that would pretty much allow me to hijack the RNG in the fastest, cleanest, and safest way.

0 Votes
Posted May 21, 2014 by Jambo51

The PID and IVs are completely unlinked in the gen 3 games, to the best of my knowledge, so you can just modify the routine which generates the IVs.

I could be wrong about that, I can't honestly say I've ever actually looked into it, but I'm fairly certain that the PID and IVs are not linked.

0 Votes
Posted May 21, 2014 by Deokishisu

Nature, Gender, and Ability are also determined by the PID, so your hacked PID generator would have to randomly choose PIDs to allow for ALL of those combinations. I'm not sure if this sort of modification would do this automatically, but you probably would also want to make sure that enemy Trainer Pokemon are also generated with perfect IVs to keep them on a level playing field.

And I could've sworn that IVs are determined by the PID in Gen 3, but now I can't find any info to confirm or deny that on Google.

PS. How an Egg's IVs are generated might also need to be looked at separately.