Age of Empires: Definitive Edition

Age of Empires: Definitive Edition

评价数不足
Unlock x4, x8 and x16 game speeds for single player
由 Sh4dow 制作
I AM SPEED
   
奖励
收藏
已收藏
取消收藏
How it works?
Age of Empires I, similar to Age of Empires II, allows multiple game speeds up to x16, but in this version there is a limit implemented to stop the game speed at x2.

The limit is a basic if that checks if (compare and jump in assembly) the game speed is at x2 and stops the incrementing there. I managed to identify the problematic code and replaced it with nothing, allowing the game to increment the game speed using it's own code.

This fix was written using Cheat Engine and it's available as a cheat table as well as a trainer (executable file independent of Cheat Engine).



Change Log:
2024-08-14: change the code to be independent of addresses, aob scan will be used with (probably) static values.
Code
Cheat Engine Script
[ENABLE] aobscanmodule(SPEEED,AoEDE_s.exe,0F 84 24 01 00 00 0F 2E 05) // should be unique SPEEED: nop nop nop nop nop nop [DISABLE] SPEEED: db 0F 84 24 01 00 00 unregistersymbol(SPEEED) { // ORIGINAL CODE - INJECTION POINT: AoEDE_s.exe+2169E3 AoEDE_s.exe+2169AA: F3 0F 10 35 32 F6 93 00 - movss xmm6,[AoEDE_s.exe+B55FE4] AoEDE_s.exe+2169B2: E9 E6 00 00 00 - jmp AoEDE_s.exe+216A9D AoEDE_s.exe+2169B7: 0F 2E 05 26 F6 93 00 - ucomiss xmm0,[AoEDE_s.exe+B55FE4] AoEDE_s.exe+2169BE: 7A 0F - jp AoEDE_s.exe+2169CF AoEDE_s.exe+2169C0: 75 0D - jne AoEDE_s.exe+2169CF AoEDE_s.exe+2169C2: F3 0F 10 35 D6 A7 93 00 - movss xmm6,[AoEDE_s.exe+B511A0] AoEDE_s.exe+2169CA: E9 CE 00 00 00 - jmp AoEDE_s.exe+216A9D AoEDE_s.exe+2169CF: 80 B8 86 0A 00 00 00 - cmp byte ptr [rax+00000A86],00 AoEDE_s.exe+2169D6: 0F 84 31 01 00 00 - je AoEDE_s.exe+216B0D AoEDE_s.exe+2169DC: 80 B8 A7 0A 00 00 00 - cmp byte ptr [rax+00000AA7],00 // ---------- INJECTING HERE ---------- AoEDE_s.exe+2169E3: 0F 84 24 01 00 00 - je AoEDE_s.exe+216B0D // ---------- DONE INJECTING ---------- AoEDE_s.exe+2169E9: 0F 2E 05 B0 A7 93 00 - ucomiss xmm0,[AoEDE_s.exe+B511A0] AoEDE_s.exe+2169F0: 7A 0F - jp AoEDE_s.exe+216A01 AoEDE_s.exe+2169F2: 75 0D - jne AoEDE_s.exe+216A01 AoEDE_s.exe+2169F4: F3 0F 10 35 A8 FF 93 00 - movss xmm6,[AoEDE_s.exe+B569A4] AoEDE_s.exe+2169FC: E9 9C 00 00 00 - jmp AoEDE_s.exe+216A9D AoEDE_s.exe+216A01: 0F 2E 05 9C FF 93 00 - ucomiss xmm0,[AoEDE_s.exe+B569A4] AoEDE_s.exe+216A08: 7A 0F - jp AoEDE_s.exe+216A19 AoEDE_s.exe+216A0A: 75 0D - jne AoEDE_s.exe+216A19 AoEDE_s.exe+216A0C: F3 0F 10 35 C8 37 94 00 - movss xmm6,[AoEDE_s.exe+B5A1DC] AoEDE_s.exe+216A14: E9 84 00 00 00 - jmp AoEDE_s.exe+216A9D }

Lua Script
{$lua} if syntaxcheck then return end [ENABLE] address = AOBScan("0F 84 24 01 00 00 0F 2E 05")[0] registerSymbol("speedAddress",address) writeBytes(address, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90) [DISABLE] writeBytes(address, 0x0F, 0x84, 0x24, 0x01, 0x00, 0x00) unregisterSymbol("speedAddress") --[[ // ORIGINAL CODE - INJECTION POINT: AoEDE_s.exe+216983 AoEDE_s.exe+21696F: 80 B8 86 0A 00 00 00 - cmp byte ptr [rax+00000A86],00 AoEDE_s.exe+216976: 0F 84 31 01 00 00 - je AoEDE_s.exe+216AAD AoEDE_s.exe+21697C: 80 B8 A7 0A 00 00 00 - cmp byte ptr [rax+00000AA7],00 // ---------- INJECTING HERE ---------- AoEDE_s.exe+216983: 0F 84 24 01 00 00 - je AoEDE_s.exe+216AAD // ---------- DONE INJECTING ---------- AoEDE_s.exe+216989: 0F 2E 05 10 A8 93 00 - ucomiss xmm0,[AoEDE_s.exe+B511A0] ]]
Executable Download
How to use?
  1. Start the trainer
  2. Start the game
  3. Toggle the trainer with ` or % on azerty keyboards (thanks Fly-Breaker).
  4. Enjoy higher game speeds
23 条留言
Cyntrax 3 月 5 日 下午 11:03 
Thank you for your prompt response, I will see what I can/will do. The campaigns are annoying so far and I might just use the cheat codes to win the campaigns.
Sh4dow  [作者] 3 月 5 日 上午 3:58 
I checked it with virus total and it triggered some antivirus software as hacktool/cheatengine/riskware or straight malware. Just run the code yourself without the exe, just to be sure.
https://www.virustotal.com/gui/file/a2911157ff9cb11dfe0dcacd06d34717026d9b9ee29eec90b3934e8ba1e8940e/detection
Sh4dow  [作者] 3 月 5 日 上午 3:53 
Strange that my defender didn't report anything. Anyway, the trainer accesses and modifies the memory of another program (similar to how a virus behaves) and should be flagged as hacktool/malware.

You should install CE and run the code/lua script yourself. You can always make your own trainer with the above code.
Cyntrax 3 月 4 日 下午 10:11 
I wanted to use this guide so I can play the campaigns at a higher speed than default, but when I try to download the file from ModDB Windows Defender gives me a virus warning so I can't download the file without override security measures (which ideally I don't want to).

Would you happen to be aware of a reason why that is the case?
Sh4dow  [作者] 2024 年 8 月 14 日 上午 11:30 
Updated
Fly-Breaker 2024 年 8 月 14 日 上午 8:28 
any luck?
Fly-Breaker 2024 年 8 月 1 日 下午 3:49 
@shadow let me know if you managed to find a fix, if not, thanks for the attempt and i shall suffer some more
Sh4dow  [作者] 2024 年 8 月 1 日 下午 1:12 
@Fly-Breaker there was 1 mission where i save scummed so i can overcome the rng, maybe is that one
Hurt Me Plenty 2024 年 8 月 1 日 上午 7:31 
@fly-breaker i have finished the campaign and i cant recognize anything like this happened to me. but i remember that on some missions (like the first one of one of the campaigns where you had just one priest to start) computer player went crazy at one point and the slowing down the game would help rather than speeding it up
Fly-Breaker 2024 年 8 月 1 日 上午 7:07 
and the early part of random maps are suffering from same stuff, the opening is generally 5 min villager pumping