Basics of Search - tomvita/Breeze-Beta GitHub Wiki
Breeze search is file based. Each search will result in a file being created with a list of address value pair. When you continue a search it will search the address stored in the file that the cursor is on. With this system you have unlimited redo at any stage of the search, just point the cursor at the desired file.
If you see a number on game screen and want to change it
Mind the game state
It is not very common for a memory address to be valid for the whole duration of the gaming session. Quite often when there is a major state change the addresses where your targets are at will change. If you need more than one search to narrow down the list of candidates bear this in mind. If you see "loading" most of the time it is back to square one.
Data types
Data types is how the bits in memory are representing numbers
u8, u16, u32, s8, s16, s32
Integer of 8, 16 and 32 bit respectively. u8, u16, u32 are unsigned integer and s8, s16, s32 are signed integers. u32 is the most common, u16 is used by 16 bit games, u8 is sometimes used by game that combine two attribute into one variable. The signed variant is when the most significant bit is the sign bit.
f32, f64
f32 is single precision floating point, f64 is double precision floating point.
What you see is what you search
The most commonly used types are u32, f32, f64. "=*" will perform a search for these two types that equal to the value you enter. Just enter the value and perform the search. Go play the game and see that the value changed then come back and repeat the search. Do this for some iteration until the number of candidates is small enough.
Test the candidates to see which one is the right one
You modify the value and see if you get the desired effect.
Edit, ToggleFreeze
If the list is small just do it individually
Freeze100, Unfreeze100, Set1000
If the list is fairly large you may want to try this to know if the list even has the right target to avoid wasting time. Bear in mind that change many targets at once also increase the risk of crashing the game. The action is only from the cursor down and does not affect items above the cursor. You can move the cursor to select any range that is smaller than the number of candidates the button will act on. For example Freeze100 from index 1 then Unfreeze100 form index 4 will means only index 1,2,3 are frozen. Same apply for Inc1000 and Revert1000
Inc1000
Increment the value so it becomes easy for you to identify the right one
Revert1000
Remember to restore the value and this can save you from a crash some of the time
Display value is same as effective value
Change the value and see the update on screen, found the one, job done
Display value is not same as effective value
Sometimes the display value and the effective value are not the same. The effective value is updated on screen only when the game change it, when you change it the update don't happen on screen. The update only comes when the game update the value.
Didn't find any good candidate?
Try a different datatype and repeat the search. Usually u16 is the next one, then u8
Still didn't find any good candidate?
Try unknown value search
Unknown value search
When you can't see a number on screen you need to either do a range search or do a full dump as a first search. Then you need to make a guess of the datatype and follow up with Change from previous value search.
Change from previous value search
++
The value has increased from previous value on file
++Val
The value has increased from previous value on file by val. (sometimes the game will let you know this number)
--
The value has decreased from previous value on file
--Val
The value has decreased from previous value on file by val. (sometimes the game will let you know this number)
same
The value is same as previous value on file
sameB
Search the address on file but use the value stored in file mark with a B. This is useful when you can be sure the value is the same. For example you can expect full bar of health to be the same value.
diff
The value is different from the previous value on file.