Here are some regexps I'm working on to convert the patches to my (WIP) new format (the output needs to be checked, as these don't cover edge cases):
Note: These need to be applied without case sensitivity.
replace_bytes:
Spoiler:
Code:
replace_bytes ?= ?([0-9A-Fa-f]+), ?([0-9A-Fa-f ]+), ?([0-9A-Fa-f ]+)$
to
Code:
- ReplaceBytes: {Offset: 0x$1, FindH: $2, ReplaceH: $3}
replace_int:
Spoiler:
Code:
replace_int ?= ?([0-9A-Fa-f]+), ?([0-9-]+), ?([0-9-]+)$
to
Code:
- ReplaceInt: {Offset: 0x$1, Find: $2, Replace: $3}
replace_float:
Spoiler:
Code:
replace_float ?= ?([0-9A-Fa-f]+), ([0-9.-]+), ?([0-9.-]+)$
to
Code:
- ReplaceFloat: {Offset: 0x$1, Find: $2, Replace: $3}
base_address:
Spoiler:
Code:
base_address ?= ?([0-9A-Fa-f]+)
to
Code:
- BaseAddress: 0x$1
patch_name:
Spoiler:
Code:
patch_name ?= ?`(.+?)`$
to
patch_enable:
Spoiler:
Code:
patch_enable ?= ?`(.+?)`$
to
find_base_address:
Spoiler:
Code:
find_base_address ?= ?`(.+?)`$
to
Code:
- FindBaseAddressString: "$1"
Important: For patches which consist of strings of only bytes, use FindBaseAddressHex instead!
replace_string:
Spoiler:
Code:
replace_string ?= ?([0-9A-Fa-f]+), ?`((?:[^`\\]|\\.)*)`, ?`((?:[^`\\]|\\.)*)`$
to
Code:
- ReplaceString: {Offset: 0x$1, Find: "$2", Replace: "$3"}
patch_group:
Spoiler:
Code:
# ?patch_group ?= ?`(.+?)`
to
patch:
The description and cleanup needs to be done manually, and the output needs to be checked.