Browse Source

Added trick up option to Vergil's Trick Down script.

master
5 years ago
parent
commit
aeb03e8bba
2 changed files with 113 additions and 39 deletions
  1. 21
    8
      CEAs/vergil-allow-non-DT-trick-down.CEA
  2. 92
    31
      DevilMayCry4SpecialEdition.CT

+ 21
- 8
CEAs/vergil-allow-non-DT-trick-down.CEA View File

@@ -1,19 +1,19 @@
[enable]
alloc(newmem,200)
alloc(newmem,212)
alloc(option_trickup, 1) //boolean, only need a byte
registersymbol(option_trickup)
label(returnhere)
label(in_air)
label(no_anim)
label(trickdown)
label(trickup)
label(exit)
//Vergil currently does not have a input combination:
//Lock-ON + Back + Jump
//while he is in air in his human form
//so add it.
option_trickup:
db 0
db 00
newmem: //still going to do this
//currently this will be called every frame
@@ -43,27 +43,40 @@ movq xmm0, [esi+3930] //prepare registers for function call
mov ecx, [esi+3940] //this and above will placed on stack
sub esp, 14 //make room on the stack
mov eax, esp //use eax for moving stuff to stack addresses
movq [eax], xmm0
movq [eax], xmm0 //prepare stack for function call
movq xmm0, [esi+3938]
movq [eax+8], xmm0
mov [eax+10], ecx
call DevilMayCry4SpecialEdition.exe+4CCD40 //listen lock-on input
cmp [esi+1bfc], C //representation for back
mov eax, [esi] //prepare eax as a function
mov eax, [eax+234] //eax = function for performing animations
mov ecx, esi //set ecx to address of player character for call
cmp [esi+1bfc], C //representation for 'precise' back
je trickdown
cmp [esi+1bfc], 6 //representation for diagonal back
je trickdown
cmp byte ptr [option_trickup], 0
jg trickup
jmp exit
trickdown:
mov eax, [esi] //get starting address for player character methods
mov eax, [eax+234]
push 2a //push animation i.d for trick down
mov ecx, esi //set ecx to address of player character
call eax
mov al, 01
//don't add esp, end of real function will do that instead
jmp exit
trickup:
cmp [esi+1bfc], 1 //representation for forward
jne exit
cmp byte ptr [esi+7c50], 0 //limit the amount of trick ups
jg exit
push 27
call eax
mov al, 01
//do not bother to increment, game will still do it.
jmp exit
"DevilMayCry4SpecialEdition.exe"+D2C77:
jmp newmem
nop

+ 92
- 31
DevilMayCry4SpecialEdition.CT View File

@@ -367,7 +367,7 @@ mov [eax+00000088],edx
<CheatEntries>
<CheatEntry>
<ID>629</ID>
<Description>"Next Stage (User Input) &lt;&lt;Requires Stage Jump Enabled&gt;&gt;"</Description>
<Description>"[User Input] Next Stage"</Description>
<LastState Value="??" Activated="0" RealAddress="00000000"/>
<Color>0000FF</Color>
<VariableType>2 Bytes</VariableType>
@@ -755,6 +755,21 @@ dec [ecx+00002461]
DevilMayCry4SpecialEdition.exe+4CD949:
db 90 90 90 90 90 90
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>691</ID>
<Description>"Infinite Trick Up (Vergil)"</Description>
<LastState Activated="0"/>
<Color>FF8000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[disable]
DevilMayCry4SpecialEdition.exe+B5653:
inc byte ptr [esi+00007C50]
[enable]
DevilMayCry4SpecialEdition.exe+B5653:
db 90 90 90 90 90 90
</AssemblerScript>
</CheatEntry>
</CheatEntries>
@@ -769,7 +784,7 @@ db 90 90 90 90 90 90
<CheatEntries>
<CheatEntry>
<ID>571</ID>
<Description>"Allow Side Trick (Hotkey Unsafe)"</Description>
<Description>"Allow Side Trick &lt;&lt;Hotkey Unsafe&gt;&gt;"</Description>
<LastState Activated="0"/>
<Color>FF8000</Color>
<VariableType>Auto Assembler Script</VariableType>
@@ -785,7 +800,7 @@ push 13
</CheatEntry>
<CheatEntry>
<ID>572</ID>
<Description>"Allow Trick Back (Grounded Trick Down) (Hotkey Unsafe)"</Description>
<Description>"Allow Trick Back (Grounded Trick Down) &lt;&lt;Hotkey Unsafe&gt;&gt;"</Description>
<LastState Activated="0"/>
<Color>FF8000</Color>
<VariableType>Auto Assembler Script</VariableType>
@@ -800,26 +815,26 @@ push 6 //jump back animation i.d
</CheatEntry>
<CheatEntry>
<ID>685</ID>
<Description>"Allow Trick Down (Air) (Hotkey Unsafe)"</Description>
<LastState Activated="0"/>
<Description>"Allow Trick Down (Air) &lt;&lt;Hotkey Unsafe&gt;&gt;"</Description>
<LastState Activated="1"/>
<Color>FF8000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[enable]
alloc(newmem,200)
alloc(newmem,212)
alloc(option_trickup, 1) //boolean, only need a byte
registersymbol(option_trickup)
label(returnhere)
label(in_air)
label(no_anim)
label(trickdown)
label(trickup)
label(exit)
//Vergil currently does not have a input combination:
//Lock-ON + Back + Jump
//while he is in air in his human form
//so add it.
option_trickup:
db 0
db 00
newmem: //still going to do this
//currently this will be called every frame
@@ -849,27 +864,40 @@ movq xmm0, [esi+3930] //prepare registers for function call
mov ecx, [esi+3940] //this and above will placed on stack
sub esp, 14 //make room on the stack
mov eax, esp //use eax for moving stuff to stack addresses
movq [eax], xmm0
movq [eax], xmm0 //prepare stack for function call
movq xmm0, [esi+3938]
movq [eax+8], xmm0
mov [eax+10], ecx
call DevilMayCry4SpecialEdition.exe+4CCD40 //listen lock-on input
cmp [esi+1bfc], C //representation for back
mov eax, [esi] //prepare eax as a function
mov eax, [eax+234] //eax = function for performing animations
mov ecx, esi //set ecx to address of player character for call
cmp [esi+1bfc], C //representation for 'precise' back
je trickdown
cmp [esi+1bfc], 6 //representation for diagonal back
je trickdown
cmp byte ptr [option_trickup], 0
jg trickup
jmp exit
trickdown:
mov eax, [esi] //get starting address for player character methods
mov eax, [eax+234]
push 2a //push animation i.d for trick down
mov ecx, esi //set ecx to address of player character
call eax
mov al, 01
//don't add esp, end of real function will do that instead
jmp exit
trickup:
cmp [esi+1bfc], 1 //representation for forward
jne exit
cmp byte ptr [esi+7c50], 0 //limit the amount of trick ups
jg exit
push 27
call eax
mov al, 01
//do not bother to increment, game will still do it.
jmp exit
"DevilMayCry4SpecialEdition.exe"+D2C77:
jmp newmem
nop
@@ -892,6 +920,16 @@ test byte ptr [esi+00001A64],01
DevilMayCry4SpecialEdition.exe+D2C80:
xor al,al
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>688</ID>
<Description>"[User Input] Trick-Up on Lock-On + Forward [YES/NO]"</Description>
<LastState Value="1" Activated="0" RealAddress="2ADD00D4"/>
<Color>FF8000</Color>
<VariableType>Byte</VariableType>
<Address>option_trickup</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
@@ -1194,7 +1232,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>465</ID>
<Description>"Style Rank"</Description>
<LastState Value="5" Activated="0" RealAddress="1C479180"/>
<LastState Value="0" Activated="0" RealAddress="1C479180"/>
<Color>80000008</Color>
<VariableType>4 Bytes</VariableType>
<Address>DevilMayCry4SpecialEdition.exe+F59F14</Address>
@@ -1530,7 +1568,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>49</ID>
<Description>"X"</Description>
<LastState Value="371.5971375" Activated="0" RealAddress="1EA200A0"/>
<LastState Value="666.7282104" Activated="0" RealAddress="1EA200A0"/>
<Color>80000008</Color>
<VariableType>Float</VariableType>
<Address>1359F00</Address>
@@ -1542,7 +1580,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>50</ID>
<Description>"Y"</Description>
<LastState Value="-11.14044094" Activated="0" RealAddress="1EA200A4"/>
<LastState Value="-22.76366806" Activated="0" RealAddress="1EA200A4"/>
<Color>80000008</Color>
<VariableType>Float</VariableType>
<Address>1359F00</Address>
@@ -1554,7 +1592,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>51</ID>
<Description>"Z"</Description>
<LastState Value="727.7182007" Activated="0" RealAddress="1EA200A8"/>
<LastState Value="-211.574707" Activated="0" RealAddress="1EA200A8"/>
<Color>80000008</Color>
<VariableType>Float</VariableType>
<Address>1359F00</Address>
@@ -1674,7 +1712,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>679</ID>
<Description>"Jump + Lock-On + Direction Signal"</Description>
<LastState Value="00000002" Activated="0" RealAddress="1EA21C5C"/>
<LastState Value="0000000C" Activated="0" RealAddress="1EA21C5C"/>
<ShowAsHex>1</ShowAsHex>
<Color>80000008</Color>
<VariableType>4 Bytes</VariableType>
@@ -1793,7 +1831,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>308</ID>
<Description>"Animations/Attack(?) I.D"</Description>
<LastState Value="19" Activated="0" RealAddress="1EA21A64"/>
<LastState Value="42" Activated="0" RealAddress="1EA21A64"/>
<Color>80000008</Color>
<VariableType>4 Bytes</VariableType>
<Address>400000+f59f00</Address>
@@ -1805,7 +1843,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>309</ID>
<Description>"Animations/Attack(?) I.D"</Description>
<LastState Value="18" Activated="0" RealAddress="1EA21A68"/>
<LastState Value="7" Activated="0" RealAddress="1EA21A68"/>
<Color>80000008</Color>
<VariableType>4 Bytes</VariableType>
<Address>400000+f59f00</Address>
@@ -2036,7 +2074,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>321</ID>
<Description>"Delta Time"</Description>
<LastState Value="0.9693801999" Activated="0" RealAddress="1EA2007C"/>
<LastState Value="0.6848180294" Activated="0" RealAddress="1EA2007C"/>
<Color>80000008</Color>
<VariableType>Float</VariableType>
<Address>400000+f59f00</Address>
@@ -2072,7 +2110,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>301</ID>
<Description>"Devil Trigger (or Burst Gauge if Lady)"</Description>
<LastState Value="10000" Activated="0" RealAddress="1EA22564"/>
<LastState Value="6872.717285" Activated="0" RealAddress="1EA22564"/>
<Color>800080</Color>
<VariableType>Float</VariableType>
<Address>400000+f59f00</Address>
@@ -2096,7 +2134,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>316</ID>
<Description>"Unknown Attribute"</Description>
<LastState Value="0" Activated="0" RealAddress="1EA22570"/>
<LastState Value="-0.565315187" Activated="0" RealAddress="1EA22570"/>
<ShowAsSigned>0</ShowAsSigned>
<Color>800080</Color>
<VariableType>Float</VariableType>
@@ -2356,6 +2394,18 @@ movss [esi+00002504],xmm1
<Offset>24</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>690</ID>
<Description>"Trick Up Count"</Description>
<LastState Value="0" Activated="0" RealAddress="1EA27CB0"/>
<Color>80000008</Color>
<VariableType>4 Bytes</VariableType>
<Address>400000+f59f00</Address>
<Offsets>
<Offset>7C50</Offset>
<Offset>24</Offset>
</Offsets>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
@@ -2892,7 +2942,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>148</ID>
<Description>"Position X"</Description>
<LastState Value="0.3707778156" Activated="0" RealAddress="1EA300B4"/>
<LastState Value="0.9756136537" Activated="0" RealAddress="1EA300B4"/>
<Color>80000008</Color>
<VariableType>Float</VariableType>
<Address>400000+f59f00</Address>
@@ -2904,7 +2954,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>150</ID>
<Description>"Position Y"</Description>
<LastState Value="2.802596929E-45" Activated="0" RealAddress="1EA300B8"/>
<LastState Value="-1.401298464E-45" Activated="0" RealAddress="1EA300B8"/>
<Color>80000008</Color>
<VariableType>Float</VariableType>
<Address>400000+f59f00</Address>
@@ -2916,7 +2966,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>149</ID>
<Description>"Position Z"</Description>
<LastState Value="0.9287216067" Activated="0" RealAddress="1EA300BC"/>
<LastState Value="0.2194949239" Activated="0" RealAddress="1EA300BC"/>
<Color>80000008</Color>
<VariableType>Float</VariableType>
<Address>400000+f59f00</Address>
@@ -3196,7 +3246,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>136</ID>
<Description>"Position X"</Description>
<LastState Value="0.2071972936" Activated="0" RealAddress="1EAE00B4"/>
<LastState Value="0.8702696562" Activated="0" RealAddress="1EAE00B4"/>
<Color>80000008</Color>
<VariableType>Float</VariableType>
<Address>400000+f59f00</Address>
@@ -3220,7 +3270,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>134</ID>
<Description>"Position Z"</Description>
<LastState Value="0.9782992005" Activated="0" RealAddress="1EAE00BC"/>
<LastState Value="0.4925757647" Activated="0" RealAddress="1EAE00BC"/>
<Color>80000008</Color>
<VariableType>Float</VariableType>
<Address>400000+f59f00</Address>
@@ -3904,7 +3954,7 @@ movss [esi+00002504],xmm1
<CheatEntry>
<ID>44</ID>
<Description>"In-Mission Time"</Description>
<LastState Value="161300.4844" Activated="0" RealAddress="1C488FC4"/>
<LastState Value="456635.9688" Activated="0" RealAddress="1C488FC4"/>
<Color>80000008</Color>
<VariableType>Float</VariableType>
<Address>400000+f59f00</Address>
@@ -6399,7 +6449,7 @@ movss [esi+00002504],xmm1
</CheatEntry>
<CheatEntry>
<ID>674</ID>
<Description>"Lock-On Jump Case Statement"</Description>
<Description>"Lock-On Jump Cases For Switch Statement"</Description>
<Options moHideChildren="1" moManualExpandCollapse="1" moAllowManualCollapseAndExpand="1"/>
<LastState Value="" Activated="0" RealAddress="00000000"/>
<Color>80000008</Color>
@@ -34507,7 +34557,7 @@ movss [esi+00002504],xmm1
</Structures>
<Comments>Cheat Table for Devil May Cry 4 Special Edition
by Hydris
Trainer Version as of 8/07/2015
Trainer Version as of 14/07/2015
Game Version as of 23/06/2015
-----
Posted to Infernal Works
@@ -34904,6 +34954,17 @@ this is Vergil's Trick Down
<Comment>default: 39
current: %s
push i.d for vergil's trick up to stack
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"DevilMayCry4SpecialEdition.exe"+D29BB</Address>
<Comment>compare amount of Trick Up with %s
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"DevilMayCry4SpecialEdition.exe"+D29C2</Address>
<Comment>jump to end of function if Tricked Up more than
once in air
</Comment>
</DisassemblerComment>
<DisassemblerComment>

Loading…
Cancel
Save