speedhack-cpp icon indicating copy to clipboard operation
speedhack-cpp copied to clipboard

Does not work on Assassins Creed Valhalla

Open divinity76 opened this issue 2 years ago • 7 comments

Didn't really expect it to anyway, Cheat Engine's speedhack doesn't work either.

divinity76 avatar Dec 06 '23 19:12 divinity76

Hi there. I will check it out approx. this weekend. Stay tuned.

iArtorias avatar Dec 07 '23 20:12 iArtorias

@iArtorias glhf! I am interested in the subject, if you find info on why it doesn't work, I'd love to hear about it, even if it's not an easy fix

divinity76 avatar Dec 08 '23 09:12 divinity76

@iArtorias no luck, i take it? Probably a VMProtect/Denuvo (DRM) issue

divinity76 avatar Jan 15 '24 17:01 divinity76

@iArtorias no luck, i take it? Probably a VMProtect/Denuvo (DRM) issue

Sorry, I was quite busy these weeks, so I had no real time to look at the issue. I have the game downloaded so I take a look ASAP.

iArtorias avatar Jan 15 '24 20:01 iArtorias

@iArtorias any luck?

divinity76 avatar Jan 17 '24 09:01 divinity76

trying this, I am at my wits end, I am hooking all of

GetSystemTime
GetSystemTimeAdjustment
NtQuerySystemTime
SetSystemTime
GetLocalTime
SetLocalTime
GetSystemTimeAsFileTime
GetSystemTimes
GetTickCount
GetTickCount64
QueryPerformanceCounter
timeGetTime
QueryInterruptTime
QueryInterruptTimePrecise
QueryUnbiasedInterruptTime
QueryUnbiasedInterruptTimePrecise

that alone is enough to speedhack every other AC game I've tried (AC Odyssey, AC Black Flag, AC Rogue),

then I am hooking 650 RDTSC instructions in ACValhalla.exe itself, some of which are being hit over 100 times per second, (650/933, but when I try to hook 700, the game starts crashing and I haven't figured out why...)

aaaaaand nothing, the game still follow wall clock time, somehow 🤷‍♂

divinity76 avatar Mar 08 '25 10:03 divinity76

Almost managed it! I managed to speedhack for like 3 seconds, even moving fast up a hill, before the game crashed.

Yup, the problem is definitely that this fa***ing game is synchronizing speed via the cpu instruction rdtsc, and it's doing it seemingly 300-or-so different places, in addition to some QueryPerformanceCounter/traditional speed sync mechanisms, and the extremely hard part seems to be locating and hooking the correct rdtsc instructions x.x

edit: managed to go like 10 seconds without crashing now..

divinity76 avatar Mar 09 '25 02:03 divinity76