Other Will someone help me understand the ACE concept via "crystal_?"


Edit: I only need help implementing Hidden Power [x] -> Pokemon with 70 power. Neither are working for me right now.
 
Last edited:
Effectively, what makes Arbitrary Code Execution work is that everything on a computer is stored as 1s and 0s. This means that the computer can't actually tell what it's looking at (because everything looks the same) and just has to hope that when it gets told to find a line of text at position 0x7a5766f89 that said position actually contains a line of text.

What happens with the Coin Case is that the item is lacking an instruction telling the processor that it can stop doing Coin Case things and get back to regular menu stuff. So the processor just moves on to the pile of 1s and 0s immediately after the Coin Case instructions, still looking for code to run. Which, because it has no way of telling whether those 0s and 1s are actually code, it tries to run them even though they aren't. Everything done before the Coin Case is used is to manipulate that data so that when the processor does stumble upon them, it finds what looks like sensible instructions that happen to do what we want.

The location and looking at a particular cry tells the processor to go to where the party is stored (somewhere in the middle of mon #3, which we hope doesn't contain any "instructions" that would prevent it from continuing down the list). There, the index numbers of Quagsire, TM02, and Return tell it to go to the box names. This is done because it is much easier to control the box names than every piece of information within the party or whatever buffer the Coin Case originally dumped us at.

The video goes a step farther by using the first iteration of the Coin Case to set up a faster method of causing a jump to the box names. This probably isn't necessary for your purpose. I was able to find on Bulbapedia a set of box names that will make the first mon in the party shiny. Because shininess in gen 2 is determined by IVs, this is almost what we want, which is to change the IVs/DVs to specific values. Unfortunately, I can't help much more than this. I'm not able to figure out which parts of the box names correspond to the values being injected into the IVs/DVs. If that was done, you could just swap out those values for shininess with the ones for 70 power and a given type.

  • Box 1: A p 0 'd 'v R 5 5

  • Box 2: é 'm 2 p p 0 4 5

  • Box 3: é A 4 p 0 'd 'v Q

  • Box 4: é ? 2 p 0 k 5 5

  • Box 5: 5 5 é A 4 p p p

  • Box 6: 'v 7 'v 'd é 4 2 p

  • Box 7: é D 9 'l 'l A 'l x

  • Box 8: 'd 5 5 5 5 5 5 5
 
Effectively, what makes Arbitrary Code Execution work is that everything on a computer is stored as 1s and 0s. This means that the computer can't actually tell what it's looking at (because everything looks the same) and just has to hope that when it gets told to find a line of text at position 0x7a5766f89 that said position actually contains a line of text.

What happens with the Coin Case is that the item is lacking an instruction telling the processor that it can stop doing Coin Case things and get back to regular menu stuff. So the processor just moves on to the pile of 1s and 0s immediately after the Coin Case instructions, still looking for code to run. Which, because it has no way of telling whether those 0s and 1s are actually code, it tries to run them even though they aren't. Everything done before the Coin Case is used is to manipulate that data so that when the processor does stumble upon them, it finds what looks like sensible instructions that happen to do what we want.

The location and looking at a particular cry tells the processor to go to where the party is stored (somewhere in the middle of mon #3, which we hope doesn't contain any "instructions" that would prevent it from continuing down the list). There, the index numbers of Quagsire, TM02, and Return tell it to go to the box names. This is done because it is much easier to control the box names than every piece of information within the party or whatever buffer the Coin Case originally dumped us at.

The video goes a step farther by using the first iteration of the Coin Case to set up a faster method of causing a jump to the box names. This probably isn't necessary for your purpose. I was able to find on Bulbapedia a set of box names that will make the first mon in the party shiny. Because shininess in gen 2 is determined by IVs, this is almost what we want, which is to change the IVs/DVs to specific values. Unfortunately, I can't help much more than this. I'm not able to figure out which parts of the box names correspond to the values being injected into the IVs/DVs. If that was done, you could just swap out those values for shininess with the ones for 70 power and a given type.

  • Box 1: A p 0 'd 'v R 5 5

  • Box 2: é 'm 2 p p 0 4 5

  • Box 3: é A 4 p 0 'd 'v Q

  • Box 4: é ? 2 p 0 k 5 5

  • Box 5: 5 5 é A 4 p p p

  • Box 6: 'v 7 'v 'd é 4 2 p

  • Box 7: é D 9 'l 'l A 'l x

  • Box 8: 'd 5 5 5 5 5 5 5
Thanks for the information/help. Hidden Power is my sole issue right now. I understand further and the shiny for the first Pokemon is easier than the now two-step method that I was shown to use.
 

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top