"
slow motion mod"
- CE default speedhack would crash the game sooner or later. hence this script.
- many settings are hardcoded for my preference, not customize-friendly.
- should wait until the game world is fully loaded before you activate this script.
- when activated:
-- press Alt+MouseButton5 to slow down time (0.5)
-- press Alt+MouseButton4 to reset (1.0)
-- holding RightMouseButton (fine aim)to slow down time more (0.31)
- all hotkeys are using CE's own hotkey function. the hotkeys are on "x?", just press Ctrl-H while highlighting the entry. should only change the hotkeys though, don't change the value of the hotkey.
- won't affect hover slow motion aim skill (Boost Assult Training Rank 4 Perk), it would slow down time as the skill intended.
- activate "
don't slowdown sound" together if you don't want the sound to be slowed down as well. again, this won't affect the hove slow motion aim skill, the sound would still be slow down when using that skill.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>214</ID>
<Description>"slow motion mod"</Description>
<Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
<LastState Activated="1"/>
<Color>FFFF00</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(entitesTimeMultiReadAOB,Starfield.exe,48 8B ** ** ** ** ** E8 ** ** ** ** C5 ** ** ** E8 ** ** ** ** C5 ** ** ** ** ** ** ** 48)
registersymbol(entitesTimeMultiReadAOB)
label(bRMBPressed)
registersymbol(bRMBPressed)
label(dCustGlobalTimeMultiplier)
registersymbol(dCustGlobalTimeMultiplier)
alloc(newmem,2048,entitesTimeMultiReadAOB+c) //"Starfield.exe"+25A961D)
label(returnhere)
label(originalcode_entitesTimeMultiReadAOB)
registersymbol(originalcode_entitesTimeMultiReadAOB)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
push rbx
mov rbx,dCustGlobalTimeMultiplier
vmovss xmm0,[rbx]
cmp dword ptr [rbx],3f800000
je @f
cmp dword ptr [rbx],3f000000
je @f
minss xmm0,[rax]
@@:
vmovss [rax],xmm0
pop rbx
readmem(entitesTimeMultiReadAOB+c,4)
//vmovss xmm0,[rax]
reassemble(entitesTimeMultiReadAOB+10)
//call Starfield.exe+17E0330
jmp exit
originalcode_entitesTimeMultiReadAOB:
readmem(entitesTimeMultiReadAOB+c,9)
//vmovss xmm0,[rax]
//call Starfield.exe+17E0330
exit:
jmp returnhere
///
bRMBPressed:
dd 0
dCustGlobalTimeMultiplier:
dd (float)1
///
entitesTimeMultiReadAOB+c: //"Starfield.exe"+25A961D:
jmp newmem
nop 4
returnhere:
///*******************************************************///
aobscanmodule(nonEntitesMasterTimeMultiReadAOB,Starfield.exe,C5 ** ** ** ** ** ** ** EB 08 C5 ** ** ** ** ** ** ** C5 ** ** ** ** ** ** ** 74 ** C6)
registersymbol(nonEntitesMasterTimeMultiReadAOB)
alloc(newmem2,2048,nonEntitesMasterTimeMultiReadAOB+a) //"Starfield.exe"+1CFD02F)
label(returnhere2)
label(originalcode2_nonEntitesMasterTimeMultiReadAOB)
registersymbol(originalcode2_nonEntitesMasterTimeMultiReadAOB)
label(exit2)
newmem2: //this is allocated memory, you have read,write,execute access
//place your code here
push rbx
mov rbx,dCustGlobalTimeMultiplier
vmovss xmm6,[rbx]
cmp dword ptr [Starfield.exe+501C188],3E99999A
je @f
cmp dword ptr [rbx],3f800000
je end2
cmp dword ptr [rbx],3f000000
je end2
@@:
minss xmm6,[Starfield.exe+501C188]
end2:
vmovss [Starfield.exe+501C188],xmm6
pop rbx
reassemble(nonEntitesMasterTimeMultiReadAOB+a)
jmp exit2
//vmovss xmm6,[dCustGlobalTimeMultiplier]
//vmovss [Starfield.exe+501C188],xmm6
originalcode2_nonEntitesMasterTimeMultiReadAOB:
readmem(nonEntitesMasterTimeMultiReadAOB+a,8)
//vmovss xmm6,[Starfield.exe+501C188]
exit2:
jmp returnhere2
///
nonEntitesMasterTimeMultiReadAOB+a: //"Starfield.exe"+1CFD02F:
jmp newmem2
nop 3
returnhere2:
///*******************************************************///
aobscanmodule(enviromentTimeMultiReadAOB,Starfield.exe,C5 ** ** ** ** E9 ** ** ** ** CC CC 48 ** ** ** E9 EB FF FF FF)
registersymbol(enviromentTimeMultiReadAOB)
alloc(newmem3,2048,enviromentTimeMultiReadAOB) //"Starfield.exe"+17E03E0)
label(returnhere3)
label(originalcode3_enviromentTimeMultiReadAOB)
registersymbol(originalcode3_enviromentTimeMultiReadAOB)
label(exit3)
newmem3: //this is allocated memory, you have read,write,execute access
//place your code here
push rbx
mov rbx,dCustGlobalTimeMultiplier
vmovss xmm0,[rbx]
cmp dword ptr [rbx],3f800000
je @f
cmp dword ptr [rbx],3f000000
je @f
minss xmm0,[rcx+10]
@@:
vmovss [rcx+10],xmm0
pop rbx
originalcode3_enviromentTimeMultiReadAOB:
readmem(enviromentTimeMultiReadAOB,5)
//vmovss xmm0,[rcx+10]
exit3:
jmp returnhere3
///
enviromentTimeMultiReadAOB: //"Starfield.exe"+17E03E0:
jmp newmem3
returnhere3:
///*******************************************************///
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
entitesTimeMultiReadAOB+c: //"Starfield.exe"+25A961D:
readmem(originalcode_entitesTimeMultiReadAOB,9)
//db C5 FA 10 00 E8 0A 6D 23 FF
//vmovss xmm0,[rax]
//call Starfield.exe+17E0330
unregistersymbol(originalcode_entitesTimeMultiReadAOB)
unregistersymbol(bRMBPressed)
unregistersymbol(dCustGlobalTimeMultiplier)
///*******************************************************///
dealloc(newmem2)
nonEntitesMasterTimeMultiReadAOB+a: //"Starfield.exe"+1CFD02F:
readmem(originalcode2_nonEntitesMasterTimeMultiReadAOB,8)
//db C5 FA 10 35 51 F1 31 03
//vmovss xmm6,[Starfield.exe+501C188]
unregistersymbol(originalcode2_nonEntitesMasterTimeMultiReadAOB)
///*******************************************************///
dealloc(newmem3)
enviromentTimeMultiReadAOB: //"Starfield.exe"+17E03E0:
readmem(originalcode3_enviromentTimeMultiReadAOB,5)
//db C5 FA 10 41 10
//vmovss xmm0,[rcx+10]
unregistersymbol(originalcode3_enviromentTimeMultiReadAOB)
///*******************************************************///
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>343</ID>
<Description>"don't slowdown sound"</Description>
<LastState Activated="1"/>
<Color>FFFF00</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(soundTimeMultiReadAOB,Starfield.exe,E8 ** ** ** ** EB 02 33 C0 48 ** ** 74 ** F3 ** ** ** 0F ** ** 74)
registersymbol(soundTimeMultiReadAOB)
alloc(newmem,2048,soundTimeMultiReadAOB+e) //"Starfield.exe"+86291E)
label(returnhere)
label(originalcode_soundTimeMultiReadAOB)
registersymbol(originalcode_soundTimeMultiReadAOB)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
push rbx
movss [rax],xmm7
mov ebx,(float)1
movd xmm7,ebx
comiss xmm7,[rax]
jb end
xorps xmm7,xmm7
comiss xmm7,[rax]
ja end
cmp dword ptr [Starfield.exe+501C188],3E99999A
je end
@@:
mov ebx,(Float)1
movd xmm7,ebx
//movss xmm6,xmm7
movss [rax],xmm7
end:
pop rbx
movss xmm7,[rax]
ucomiss xmm6,xmm7
jmp exit
originalcode_soundTimeMultiReadAOB:
readmem(soundTimeMultiReadAOB+e,7)
//movss [rax],xmm7
//ucomiss xmm6,xmm7
exit:
jmp returnhere
///
soundTimeMultiReadAOB+e: //"Starfield.exe"+86291E:
jmp newmem
nop 2
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
soundTimeMultiReadAOB+e: //"Starfield.exe"+86291E:
readmem(originalcode_soundTimeMultiReadAOB,7)
//db F3 0F 11 38 0F 2E F7
//movss [rax],xmm7
//ucomiss xmm6,xmm7
unregistersymbol(originalcode_soundTimeMultiReadAOB)
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>344</ID>
<Description>"x?"</Description>
<LastState Value="0.5" RealAddress="7FF636A60050"/>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Float</VariableType>
<Address>dCustGlobalTimeMultiplier</Address>
<Hotkeys>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>18</Key>
<Key>5</Key>
</Keys>
<Value>1</Value>
<ID>0</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>18</Key>
<Key>6</Key>
</Keys>
<Value>0.5</Value>
<ID>1</ID>
</Hotkey>
<Hotkey OnlyWhileDown="1">
<Action>Set Value</Action>
<Keys>
<Key>2</Key>
</Keys>
<Value>0.31</Value>
<ID>2</ID>
</Hotkey>
</Hotkeys>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>