[TLAC]: Pause patches. Fix of stuff moving 1 frame after pause #17

Merged
korenkonder merged 1 commits from dev into dev 2024-05-01 22:46:59 +03:00
2 changed files with 17 additions and 0 deletions
@@ -32,9 +32,13 @@ namespace TLAC::Components
Pause::menusets Pause::curMenuSet = MENUSET_MAIN;
std::chrono::time_point<std::chrono::high_resolution_clock> Pause::menuItemMoveTime;
std::vector<uint8_t> Pause::origAetMovOp;
float_t Pause::origDeltaFrameHistory = 0.0f;
int32_t Pause::origDeltaFrameHistoryInt = 0;
uint8_t* Pause::aetMovPatchAddress = (uint8_t*)0x1401703b3;
std::vector<uint8_t> Pause::origFramespeedOp;
uint8_t* Pause::framespeedPatchAddress = (uint8_t*)0x140192D50;
float_t* Pause::deltaFrameHistoryAddress = (float_t*)0x140EDA6C0;
int32_t* Pause::deltaFrameHistoryIntAddress = (int32_t*)0x140EDA6C4;
std::vector<uint8_t> Pause::origAgeageHairOp;
uint8_t* Pause::ageageHairPatchAddress = (uint8_t*)0x14054352c;
std::vector<bool> Pause::streamPlayStates;
@@ -136,6 +140,12 @@ namespace TLAC::Components
InjectCode(framespeedPatchAddress, { 0x0f, 0x57, 0xc0, 0xc3 }); // XORPS XMM0,XMM0; RET
InjectCode(ageageHairPatchAddress, { 0x0f, 0x57, 0xdb }); // XORPS XMM3,XMM3
origDeltaFrameHistory = *deltaFrameHistoryAddress;
origDeltaFrameHistoryInt = *deltaFrameHistoryIntAddress;
*deltaFrameHistoryAddress = 0.0f;
*deltaFrameHistoryIntAddress = 0;
uint64_t audioMixerAddr = *(uint64_t*)(AUDIO_MAIN_CLASS_ADDRESS + 0x70);
uint64_t audioStreamsAddress = *(uint64_t*)(audioMixerAddr + 0x18);
int nAudioStreams = *(uint64_t*)(audioMixerAddr + 0x20);
@@ -279,6 +289,9 @@ namespace TLAC::Components
InjectCode(framespeedPatchAddress, origFramespeedOp);
InjectCode(ageageHairPatchAddress, origAgeageHairOp);
*deltaFrameHistoryAddress = origDeltaFrameHistory;
*deltaFrameHistoryIntAddress = origDeltaFrameHistoryInt;
uint64_t audioMixerAddr = *(uint64_t*)(AUDIO_MAIN_CLASS_ADDRESS + 0x70);
uint64_t audioStreamsAddress = *(uint64_t*)(audioMixerAddr + 0x18);
int nAudioStreams = *(uint64_t*)(audioMixerAddr + 0x20);
@@ -47,6 +47,10 @@ namespace TLAC::Components
static std::vector<uint8_t> origFramespeedOp;
static uint8_t* framespeedPatchAddress;
static float_t origDeltaFrameHistory;
static int32_t origDeltaFrameHistoryInt;
static float_t* deltaFrameHistoryAddress;
static int32_t* deltaFrameHistoryIntAddress;
static std::vector<uint8_t> origAgeageHairOp;
static uint8_t* ageageHairPatchAddress;