Skip to content

How to use AOB to port cheats (WIP)

tomvita edited this page Jul 7, 2023 · 10 revisions

Introduction

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.

2023070709451800-CCFA659F4857F96DDA29AFEDB2E166E6

"Make AOB"

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. 2023070709511500-CCFA659F4857F96DDA29AFEDB2E166E6 2023070709535000-CCFA659F4857F96DDA29AFEDB2E166E6 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. 2023070710130000-CCFA659F4857F96DDA29AFEDB2E166E6 The list of cheats in this aob file is writing the first 8 instruction found in the game code 2023070710131300-CCFA659F4857F96DDA29AFEDB2E166E6

"Load AOB"

This button loads the AOB pattern into advance search and start the search. 2023070710230400-CCFA659F4857F96DDA29AFEDB2E166E6 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. 2023070710231300-CCFA659F4857F96DDA29AFEDB2E166E6 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. 2023070710452400-CCFA659F4857F96DDA29AFEDB2E166E6 2023070710454500-CCFA659F4857F96DDA29AFEDB2E166E6 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.