Skip to content

Instantly share code, notes, and snippets.

@FransBouma
Last active March 16, 2017 18:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FransBouma/9ce4c6fc75dbff1bde0b7fd30b4a97f4 to your computer and use it in GitHub Desktop.
Save FransBouma/9ce4c6fc75dbff1bde0b7fd30b4a97f4 to your computer and use it in GitHub Desktop.
DXMD camera location find how to
DXMD.NvOptimusEnablement+128EEBF - 0FC6 C2 49 - shufps xmm0,xmm2,49 { 73 }
DXMD.NvOptimusEnablement+128EEC3 - 0F29 4B 50 - movaps [rbx+50],xmm1 <<< WRITE matrix
DXMD.NvOptimusEnablement+128EEC7 - 0F28 CA - movaps xmm1,xmm2
DXMD.NvOptimusEnablement+128EECA - 0FC6 CD 0A - shufps xmm1,xmm5,0A { 10 }
DXMD.NvOptimusEnablement+128EECE - 0F29 43 60 - movaps [rbx+60],xmm0
DXMD.NvOptimusEnablement+128EED2 - 0FC6 CD 98 - shufps xmm1,xmm5,-68 { 152 }
DXMD.NvOptimusEnablement+128EED6 - 0F29 4B 70 - movaps [rbx+70],xmm1 <<< WRITE COORDS
DXMD.NvOptimusEnablement+128EEDA - C6 43 18 00 - mov byte ptr [rbx+18],00 { 0 }
DXMD.NvOptimusEnablement+157D4B0 - 0F2E 49 0C - ucomiss xmm1,[rcx+0C] <<<<< FOV READ
DXMD.NvOptimusEnablement+157D4B4 - 74 41 - je DXMD.NvOptimusEnablement+157D4F7 <<<< NOP THIS, doesn't hurt.
DXMD.NvOptimusEnablement+157D4B6 - F3 0F10 05 EEB0A5FE - movss xmm0,[DXMD.exe+229A27C] { [0.02] }
DXMD.NvOptimusEnablement+157D4BE - F3 0F11 49 0C - movss [rcx+0C],xmm1 <<<< FOV WRITE
DXMD.NvOptimusEnablement+157D4C3 - F3 0F10 0D FD935DFE - movss xmm1,[DXMD.exe+1E18598] { [0.01] }
DXMD.NvOptimusEnablement+157D4CB - 48 81 C1 D0FEFFFF - add rcx,FFFFFED0 { [00000000] }
DXMD.NvOptimusEnablement+157D4D2 - F3 0F59 81 3C010000 - mulss xmm0,[rcx+0000013C]
DXMD.NvOptimusEnablement+157D4DA - 0F2F C1 - comiss xmm0,xmm1
DXMD.NvOptimusEnablement+157D4DD - 72 03 - jb DXMD.NvOptimusEnablement+157D4E2
DXMD.NvOptimusEnablement+157D4DF - 0F28 C8 - movaps xmm1,xmm0
DXMD.NvOptimusEnablement+157D4E2 - F3 0F11 89 08020000 - movss [rcx+00000208],xmm1
DXMD.NvOptimusEnablement+157D4EA - E9 B1A40000 - jmp DXMD.NvOptimusEnablement+15879A0
DXMD.NvOptimusEnablement+157D4EF - C6 - db -3A
DXMD.NvOptimusEnablement+157D4F0 - 15 114F3945 - adc eax,45394F11 { [0] }
DXMD.NvOptimusEnablement+157D4F5 - 1B E3 - sbb esp,ebx
DXMD.NvOptimusEnablement+157D4F7 - F3 C3 - repe ret
DXMD.NvOptimusEnablement+1E52FE5 - CC - int 3
DXMD.NvOptimusEnablement+1E52FE6 - 66 2E 0F1F 84 00 00000000 - nop cs:[rax+rax+00000000]
DXMD.NvOptimusEnablement+1E52FF0 - F3 0F10 41 0C - movss xmm0,[rcx+0C] <<<< FOV READ. Every frame
DXMD.NvOptimusEnablement+1E52FF5 - C3 - ret
- Find fov with code above
- the fov address (rcx+0c), is located near the camera matrix (3x3) and coords.
- _11 is located at (rcx+0c)-EC, or rcx-E0
- camX is located at (rcx+0c)-C8, or rcx-BC
- In the write interceptor, we have to check whether (rbx+50)==_11.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment