mirror of
https://github.com/aimrebirth/tools.git
synced 2026-04-14 17:33:25 +00:00
Large address awareness.
This commit is contained in:
parent
06b39b9881
commit
506365055e
1 changed files with 14 additions and 0 deletions
|
|
@ -169,6 +169,16 @@ struct bin_patcher {
|
||||||
memcpy(ptr, to.data(), to.size());
|
memcpy(ptr, to.data(), to.size());
|
||||||
return std::tuple{ptr, old};
|
return std::tuple{ptr, old};
|
||||||
}
|
}
|
||||||
|
template <typename T>
|
||||||
|
static void xor_(const path &fn, uint32_t offset, T value, bool enable) {
|
||||||
|
primitives::templates2::mmap_file<uint8_t> f{fn, primitives::templates2::mmap_file<uint8_t>::rw{}};
|
||||||
|
auto &v = *(T *)(f.p + offset);
|
||||||
|
if (enable && ((v & value) == value)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
v ^= value;
|
||||||
|
}
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mod_maker {
|
struct mod_maker {
|
||||||
|
|
@ -697,6 +707,7 @@ struct mod_maker {
|
||||||
#define ENABLE_DISABLE_FUNC(name, enable, disable) \
|
#define ENABLE_DISABLE_FUNC(name, enable, disable) \
|
||||||
void enable_##name() { name(enable); } \
|
void enable_##name() { name(enable); } \
|
||||||
void disable_##name() { name(disable); }
|
void disable_##name() { name(disable); }
|
||||||
|
ENABLE_DISABLE_FUNC(large_address_aware, 1, 0)
|
||||||
ENABLE_DISABLE_FUNC(free_camera, 1, 0)
|
ENABLE_DISABLE_FUNC(free_camera, 1, 0)
|
||||||
ENABLE_DISABLE_FUNC(win_key, 0x00, 0x10)
|
ENABLE_DISABLE_FUNC(win_key, 0x00, 0x10)
|
||||||
#undef ENABLE_DISABLE_FUNC
|
#undef ENABLE_DISABLE_FUNC
|
||||||
|
|
@ -1260,6 +1271,9 @@ FF D7 ; call edi
|
||||||
void free_camera(uint8_t val) {
|
void free_camera(uint8_t val) {
|
||||||
patch(aim_exe, 0x1F805, val);
|
patch(aim_exe, 0x1F805, val);
|
||||||
}
|
}
|
||||||
|
void large_address_aware(uint8_t val) {
|
||||||
|
bin_patcher::xor_(aim_exe, 0x136, (uint8_t)0x20, val);
|
||||||
|
}
|
||||||
void win_key(uint8_t val) {
|
void win_key(uint8_t val) {
|
||||||
patch(aim_exe, 0x4A40D, val);
|
patch(aim_exe, 0x4A40D, val);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue