(Lua, ASMx86) Replication of Devil May Cry 4's debug functions for it's re-released version.
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

vergil-allow-non-DT-trick-down-wip.CEA 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. [enable]
  2. alloc(newmem,2048)
  3. label(returnhere)
  4. label(in_air)
  5. label(exit)
  6. //Vergil currently does not have a input combination:
  7. //Lock-ON + Back + Jump
  8. //while he is in air in his human form
  9. newmem: //still going to do this
  10. //currently this will be called every frame
  11. //currently esi is address of player character
  12. test byte ptr [esi+00001A64],01
  13. pushfd //keep flags for the conditional jump on returning
  14. je in_air
  15. exit:
  16. popfd //restore flags
  17. jmp returnhere
  18. in_air:
  19. //eax, ecx do not need to be pushed/popped
  20. //now for preliminary checks
  21. //these are done also on Trick Down (air)
  22. cmp dword ptr [esi+3924], 02
  23. jne exit
  24. cmp byte ptr [esi+3928], 01
  25. jne exit
  26. test byte ptr [esi+392c], 10
  27. je exit
  28. movq xmm0, [esi+3930] //prepare registers for function call
  29. mov ecx, [esi+3940]
  30. sub esp, 14 //make room on the stack
  31. mov eax, esp
  32. movq [eax], xmm0
  33. movq xmm0, [esi+3938]
  34. movq [eax+8], xmm0
  35. mov [eax+10], ecx
  36. call DevilMayCry4SpecialEdition.exe+4CCD40 //listen lock-on input
  37. //cmp [esi+1bfc], C //input for "back"
  38. //jne exit
  39. //mov eax, [esi] //get starting address for player character methods
  40. //mov eax, [eax+234]
  41. //push 2a //push animation i.d for trick down
  42. //call eax
  43. //don't add esp even though it's reasonable
  44. jmp exit
  45. "DevilMayCry4SpecialEdition.exe"+D2C77:
  46. jmp newmem
  47. nop
  48. nop
  49. returnhere:
  50. [disable]
  51. dealloc(newmem)
  52. "DevilMayCry4SpecialEdition.exe"+D2C77:
  53. test byte ptr [esi+00001A64],01