(Lua, ASMx86) Replication of Devil May Cry 4's debug functions for it's re-released version.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

continue.txt 3.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. Devil May Cry 4: Special Edition
  2. Function Documentation
  3. Mediator::Continue
  4. Context: This function is called when the player dies and selects Continue on the menu.
  5. dmc4se.exe+10D2B0 - xorps xmm1,xmm1 ; xmm1 = 0
  6. dmc4se.exe+10D2B3 - push ebx ;
  7. dmc4se.exe+10D2B4 - push esi ;
  8. dmc4se.exe+10D2B5 - mov esi,ecx ;
  9. dmc4se.exe+10D2B7 - mov eax,[esi+3C] ;
  10. dmc4se.exe+10D2BA - mov ecx,[esi+40] ;
  11. dmc4se.exe+10D2BD - mov [esi+34],eax ;
  12. dmc4se.exe+10D2C0 - mov [esi+38],ecx ;
  13. dmc4se.exe+10D2C3 - mov eax,[esi+60] ;
  14. dmc4se.exe+10D2C6 - mov ebx,00000001 ;
  15. dmc4se.exe+10D2CB - test eax,eax ;
  16. dmc4se.exe+10D2CD - je dmc4se.exe+10D2E7 ;
  17. dmc4se.exe+10D2CF - nop ;
  18. dmc4se.exe+10D2D0 - mov dx,[eax+0A] ;
  19. dmc4se.exe+10D2D4 - mov [eax+08],dx ;
  20. dmc4se.exe+10D2D8 - movss [eax+0C],xmm1 ;
  21. dmc4se.exe+10D2DD - mov [eax+10],bl
  22. dmc4se.exe+10D2E0 - mov eax,[eax+14] ;
  23. dmc4se.exe+10D2E3 - test eax,eax ;
  24. dmc4se.exe+10D2E5 - jne dmc4se.exe+10D2D0 ;
  25. dmc4se.exe+10D2E7 - mov edx,[Game Mediator] ; edx = mediator
  26. dmc4se.exe+10D2ED - lea eax,[edx+30] ;
  27. dmc4se.exe+10D2F0 - call dmc4se.exe+19ACE0 ;
  28. dmc4se.exe+10D2F5 - mov [edx+00000250],00000000 ;
  29. dmc4se.exe+10D2FF - movss [edx+0000024C],xmm1 ;
  30. dmc4se.exe+10D307 - mov [edx+00000260],bl ;
  31. dmc4se.exe+10D30D - add [edx+000001B0],ebx ; add ebx to continue count
  32. dmc4se.exe+10D313 - cmp dword ptr [edx+000001B0],63 ;
  33. dmc4se.exe+10D31A - jle dmc4se.exe+10D326 ;
  34. dmc4se.exe+10D31C - mov [edx+000001B0],00000063 ;
  35. dmc4se.exe+10D326 - mov [edx+000001B4],00000003 ; hell mode gold orbs = 3
  36. dmc4se.exe+10D330 - cmp dword ptr [edx+00000240],04 ; check if difficulty is LDK
  37. dmc4se.exe+10D337 - jne dmc4se.exe+10D388 ; jump to end of function
  38. dmc4se.exe+10D339 - mov eax,[edx+00000150] ; eax = mission number
  39. dmc4se.exe+10D33F - cmp eax,61 ; check if mission # is 97
  40. dmc4se.exe+10D342 - je dmc4se.exe+10D34E ;
  41. dmc4se.exe+10D344 - cmp eax,62 ; check if mission # is 98
  42. dmc4se.exe+10D347 - je dmc4se.exe+10D34E ;
  43. dmc4se.exe+10D349 - cmp eax,63 ; check if mission # is 99
  44. dmc4se.exe+10D34C - jne dmc4se.exe+10D361 ;
  45. dmc4se.exe+10D34E - mov eax,00000002 ;
  46. dmc4se.exe+10D353 - lea eax,[eax+eax*4] ;
  47. dmc4se.exe+10D356 - movss xmm0,[eax*4+dmc4se.exe+E7AC44] ;
  48. dmc4se.exe+10D35F - jmp dmc4se.exe+10D380 ;
  49. dmc4se.exe+10D361 - cmp eax,ebx ;
  50. dmc4se.exe+10D363 - jb dmc4se.exe+10D378 ;
  51. dmc4se.exe+10D365 - cmp eax,14 ;
  52. dmc4se.exe+10D368 - ja dmc4se.exe+10D378 ;
  53. dmc4se.exe+10D36A - lea eax,[eax+eax*4] ;
  54. dmc4se.exe+10D36D - movss xmm0,[eax*4+dmc4se.exe+E7AC44] ;
  55. dmc4se.exe+10D376 - jmp dmc4se.exe+10D380 ;
  56. dmc4se.exe+10D378 - movss xmm0,[dmc4se.exe+D492E0] ;
  57. dmc4se.exe+10D380 - movss [edx+000001AC],xmm0 ;
  58. dmc4se.exe+10D388 - mov edx,[esi] ;
  59. dmc4se.exe+10D38A - mov eax,[edx+54] ;
  60. dmc4se.exe+10D38D - mov ecx,esi ;
  61. dmc4se.exe+10D38F - pop esi ;
  62. dmc4se.exe+10D390 - pop ebx ;
  63. dmc4se.exe+10D391 - jmp eax ;
  64. dmc4se.exe+10D393 - int 3 ;