Read/write masks |
You can set read/write masks for each address in your table. A mask is a formula, it uses to calculate a encoded value from this address. The formula can contain operators, constants, parentheses, square brackets, variable names and directives. A value typecast is done, by prepending a data type identifier and surrounding the expression to typecast with parentheses. Mask type is data type by default if you don't use mask type then the program uses primary type for the address. A value in square brackets is address. Square brackets mean read the value from this address. Program uses primary type to read memory by default. You can set your read type before square brackets. Variable names in quotes return an address of the variable. Variable in square brackets reads value of the variable. For example, ['EEmem'] reads value of 'EEmem' variable. Directive $value - replace $value with current value (reading value for read mask or inputting value for write mask). You can skip $value if it located in first position of mask! Directive $address - replace $address with current address.
For example, Might and Magic Heroes 6 read/write mask for all resources $value xor dword[$address+4]. Or without $value mask is xor [$address+4]. For example, Civilization 5 read mask for gold is $value/100, write mask is $value*100. Or without $value read mask is /100, write mask is *100 For example, Civilization 6 read mask for gold is dword($value shr 8), write mask is dword($value shl 8). You need dword typecast cause mask type is "Float 4 bytes". |