-
Notifications
You must be signed in to change notification settings - Fork 10
How to use AOB to port cheats (WIP)
With every update most of the time the game code would have shifted and quite often the code itself wasn't changed. AOB method search for binary sequence of bytes to located the new position of the unchanged or moderately changed code.
Breeze's tools for AOB are not polished enough for it's use to be intuitive. If you are ready to bear with that here is a write up on how to use it.
This method requires AOB pattern from the game code to be been recorded. Breeze's ASM creation tool will leave the original code above the branch to code cave. Make AOB will look for this pattern. The follow two screen illustrate this, if "Add ASM" is used to create the cheat there will be these lines that write to the same address, the first write the original code and the second the branch to code cave. This works only for ASM code created with "Add ASM" To use this button on code that wasn't created this way all you have to do is to make a code that has this pattern. The only thing that is important is the code is writing to the start of the AOB pattern you want to capture. The button creates a file with code that writes the eight instructions of the original code at that address. When you press this button a file with aob appended to the title id would be created. The list of cheats in this aob file is writing the first 8 instruction found in the game code
This button loads the AOB pattern into advance search and start the search. In this case I apply it to the same game version so there is only one result, sometimes you are lucky and there is only one also with the new version and sometimes there are more than one and sometimes non and you may want to revise the advance search criteria. You can delete lines that may have higher chance of change, for example that bl #0xcd920 would only be unchanged if there isn't any code added between here and there that is 0xcd920 bytes away. Load AOB would automatically insert a gap for the search criteria. The more you delete the higher chance of having more than one result but some results(hopefully not too many) is better than no results.