cr001 Posted October 2, 2023 Posted October 2, 2023 I was able to modify rental Pokemon during run-time using Cheat Engine and Citra with following steps: 1. Attach Cheat Engine to Citra. 2. Go to a Exchange Center and look at the Current 3 pokemons, record the first pokemon Index from battle tree pokemon ID list one can be found here (https://pokemongohub.net/post/pokemon-sun-and-moon/sun-moon-battle-tree-pokemon/). The left-most column is the ID. Search for a 2-byte value using Cheat Engine with that ID. For example if a Lilligant with moves "Charm-Sleep Powder-Petal Dance-Healing Wish" shows up, you would search for the value "255". 3. Shuffle once with the Exchange Center, then look at the new 3 pokemons, record the first pokemon index, and search for it again using Cheat Engine with the new ID. This should pin down an address with the pokemon ID. 4. Shuffle again with the same Exchange Center or another Exchange Center. However stop right before the owner asks you Yes or No to confirm the shuffle and go to Cheat Engine. 5. Open the address in step 3 using Memory Viewer of the Cheat Engine. Right click on the value and add a "Data Breakpoint - Break on Write" on that address. 6. Go back to Citra and continue to confirm Yes. Let the game run until the Breakpoint is hit in Cheat Engine. Visually confirm that there is an assembly line "mov eax,[r15+14]" very closely above the line that is hit by the breakpoint. 7. Go to the address [r15+14] where r15 is the value of the R15 register in the register list on the right side of the Memory Viewer. Add 14 to that value, which is the address we want, and enter "ctrl + g" to go to that address. 8. Modify the value of that address to the battle tree ID you want, in little endian hex representation (for example 255-Lilligant would become FF 00 and 256-Darmanitan would become 00 01) 9. Remove the breakpoint (Menu - View - Breakpointlist, right click, delete breakpoint), and resume the game by clicking on the Run button in Cheat Engine. The first pokemon of the shuffle result would become the pokemon you want. You must immediately choose that pokemon when the owner asks you after the shuffle; the pokemon would become the "original intended pokemon" the next time you talk to the excange center owner so you won't be able to to choose afterwards. I hope my research result will help if anyone is trying to do/researching similar things. Also I would like to know is there a more direct way to modify the pokemon without the need to use breakpoints, and preferably without the need of re-shuffling, as my method is a bit tedious and not clean; any help is appreciated.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now