Hello!

It looks like you're new here. If you want to get involved, click one of these buttons!

[Guide] Hitman 2016

12346

Comments

  • Hello, I am terribly sorry for bothering you, but this is the only place I can ask this as it seems this is the only fov fix for HITMAN available.
    I understand how to use CheatEngine on a very, very basic level, as in I can use .CT files without too many issues.

    However upon downloading the latest version of your patch I was left clueless as to what to do with the hitman folder and how to make it into a .CT file

    again I am sorry for asking such an idiotic question

    Thank you in advance, and thank you for fixing games for everyone to enjoy properly.
  • You don't need Cheat Engine with the cameras I make: you can just run the game (DX11 version), run the injector .exe and click 'Inject' to inject the camera dll into the game's exe, see the enclosed readme in the zip! :)
  • OtisInf said:

    You don't need Cheat Engine with the cameras I make: you can just run the game (DX11 version), run the injector .exe and click 'Inject' to inject the camera dll into the game's exe, see the enclosed readme in the zip! :)

    I must be a special kind of stupid, I cannot find any .exe files and the readmes al seem to only describe what the injector does as opposed to explaining hoiw to get it to work.

    https://github.com/FransBouma/InjectableGenericCameraSystem < is this all I need ?

    Thank you for your time
  • OtisInf said:

    No you have to go to: https://github.com/FransBouma/InjectableGenericCameraSystem/tree/master/Cameras/Hitman2016 which points you to the download: https://github.com/FransBouma/InjectableGenericCameraSystem/releases/tag/Hitman2016_v108 There you'll see a zip under 'downloads' and how to use it. :)

    Thank you so much this is amazing !

    Keep up the great work and thank you for your help
  • edited March 14
    No changelog just yet but after a little bit of a pause Square has released the 1.10 update. (Or "1.1" as I would have called it but eh, 1.9 -> 1.10 I suppose, 2.0 is probably a bit too significant of a jump?)
    https://steamdb.info/app/236870/depots/

    EDIT:
    https://steamcommunity.com/app/236870/discussions/0/135511455872271467/
    http://www.neogaf.com/forum/showpost.php?p=232025495&postcount=13387

    ""
    Simplified Chinese Language Support
    We've added full menu and subtitle support for Simplified Chinese on PC.

    Performance
    We've fixed some rare issues that could cause the game to crash or be unstable.

    Missing Exits
    We've fixed an issue that could prevent exit points from appearing after killing the target(s).

    Paris Suspend
    We've fixed an issue that could cause guards and targets in Paris to suspend their routines, after specific player actions.

    Subdue Prompt
    We've fixed an issue that could cause the 'subdue' prompt to disappear when an NPC is picking up an item or when they are close to a wall.

    Scoring Adjustment
    We've fixed an issue where the 'Never Spotted' bonus was not awarded in certain cases.

    Sapienza Lab
    We've fixed an issue that could cause 47 to be 'spotted' in the Sapienza Lab, even whilst 'blending in'.

    Hokkaido Landscape
    We've fixed a rare issue that could cause 47 to fall 'out of world' in Hokkaido.

    Contracts Search Favourites
    The Contract Tile now displays an icon to show whether that contract has been added to 'My Favorites'

    Sticky Pistol (Escalation)
    We've fixed an issue where the 'Sticky Pistol' countdown would expire, despite 47 having the pistol equipped on a ledge.

    The Incarnation Non-Accident
    We've fixed an issue in the 'Meiko Incarnation' Escalation where dumping an NPC in a specific area would not result in an accident kill.

    Disappearing Act
    We've fixed an issue that could cause a holstered large weapon to be lost when activating the diorama in Paris.

    Fire Safety
    We've fixed an issue that could cause NPC's to teleport away when they are burning.

    HDR Launcher
    We've fixed an issue where the 'HDR' option could not be enabled in the game's launcher on AMD cards.

    Sun Spots (HDR)
    We've fixed an issue that could cause black pixels to appear around bright light sources when HDR is enabled.

    Additional
    We've also fixed other minor issues involving AI dialogue, audio and VO consistency, escalation completion marks and we've slightly reworded some menu text to make it more consistent.
    ""


    EDIT: Quite a backlog of games still which is primarily why this and several other games are still installed although for this particular game I'm not sure if they were planning a full second season or if it was just rumored though I think they might have plans for a couple more episodes.
    (Recently uninstalled The Division after hearing about their plans for "Year 2" as they called it, couple of continued patches and then two "larger" updates which didn't really sound all that noteworthy so that game is over with though I kept the character in case I ever reinstall it, unless the server goes down and it gets permanently retired.)
    (
  • This weekend I've planned to implement a proper AOB scanner in my generic camera system so I'll try to fix the camera once more, although I already stopped playing it (and the engine has a lot of clones (duplicate code blocks) so AOB scanning is a bit problematic)
  • Usually what I would try and do is go backwards a ways to try and find a unique set of bytes. Use that for the hook and inject at BlahBlahAob+3B (or however far back in memory you went).

    Good luck !
  • edited March 20
    That is usually a good approach, however in this particular pile of **** called 'Glacier', they have a fondness for copy/paste driven development. Here are two identical snippets, one of them is the camera intercept + write code, the other is not useful to the camera tools. This is the only code in the function, so there's simply a pre-amble and some junk bytes after it, but that's it. :) I have no idea how to distinguish them from one another. Problem is: you can't use bytes before/after these functions as they can be re-located after a new compile.


    // block 1
    hitman.exe+43C7474 - F3 0F10 4C 24 54 - movss xmm1,[rsp+54]
    hitman.exe+43C747A - 0F28 00 - movaps xmm0,[rax]
    hitman.exe+43C747D - 0F11 83 80000000 - movups [rbx+00000080],xmm0
    hitman.exe+43C7484 - F3 0F10 44 24 50 - movss xmm0,[rsp+50]
    hitman.exe+43C748A - F3 0F11 83 90000000 - movss [rbx+00000090],xmm0
    hitman.exe+43C7492 - F3 0F10 44 24 58 - movss xmm0,[rsp+58]
    hitman.exe+43C7498 - F3 0F11 83 98000000 - movss [rbx+00000098],xmm0
    hitman.exe+43C74A0 - F3 0F11 8B 94000000 - movss [rbx+00000094],xmm1
    hitman.exe+43C74A8 - EB 3B - jmp hitman.exe+43C74E5
    hitman.exe+43C74AA - 48 8D 4C 24 60 - lea rcx,[rsp+60]
    hitman.exe+43C74AF - E8 9CEA2CFF - call hitman.Scaleform::Render::Matrix4x4<float>::SetIdentity+30130
    hitman.exe+43C74B4 - 0F28 00 - movaps xmm0,[rax]
    hitman.exe+43C74B7 - 0F11 83 80000000 - movups [rbx+00000080],xmm0
    hitman.exe+43C74BE - 0F28 4F 30 - movaps xmm1,[rdi+30]
    hitman.exe+43C74C2 - 0F28 C1 - movaps xmm0,xmm1
    hitman.exe+43C74C5 - F3 0F11 8B 90000000 - movss [rbx+00000090],xmm1
    hitman.exe+43C74CD - 0FC6 C1 55 - shufps xmm0,xmm1,55 { 85 }
    hitman.exe+43C74D1 - 0FC6 C9 AA - shufps xmm1,xmm1,-56 { 170 }
    hitman.exe+43C74D5 - F3 0F11 8B 98000000 - movss [rbx+00000098],xmm1
    hitman.exe+43C74DD - F3 0F11 83 94000000 - movss [rbx+00000094],xmm0
    hitman.exe+43C74E5 - 48 8B 03 - mov rax,[rbx]
    hitman.exe+43C74E8 - 48 89 D9 - mov rcx,rbx
    hitman.exe+43C74EB - 48 8B 9C 24 C0000000 - mov rbx,[rsp+000000C0]
    hitman.exe+43C74F3 - 48 81 C4 B0000000 - add rsp,000000B0 { 176 }
    hitman.exe+43C74FA - 5F - pop rdi
    hitman.exe+43C74FB - FF A0 08010000 - jmp qword ptr [rax+00000108]

    // block 2
    hitman.exe+43C76D4 - F3 0F10 4C 24 54 - movss xmm1,[rsp+54]
    hitman.exe+43C76DA - 0F28 00 - movaps xmm0,[rax]
    hitman.exe+43C76DD - 0F11 83 80000000 - movups [rbx+00000080],xmm0
    hitman.exe+43C76E4 - F3 0F10 44 24 50 - movss xmm0,[rsp+50]
    hitman.exe+43C76EA - F3 0F11 83 90000000 - movss [rbx+00000090],xmm0
    hitman.exe+43C76F2 - F3 0F10 44 24 58 - movss xmm0,[rsp+58]
    hitman.exe+43C76F8 - F3 0F11 83 98000000 - movss [rbx+00000098],xmm0
    hitman.exe+43C7700 - F3 0F11 8B 94000000 - movss [rbx+00000094],xmm1
    hitman.exe+43C7708 - EB 3B - jmp hitman.exe+43C7745
    hitman.exe+43C770A - 48 8D 4C 24 60 - lea rcx,[rsp+60]
    hitman.exe+43C770F - E8 ECE92CFF - call hitman.Scaleform::Render::Matrix4x4<float>::SetIdentity+302E0
    hitman.exe+43C7714 - 0F28 00 - movaps xmm0,[rax]
    hitman.exe+43C7717 - 0F11 83 80000000 - movups [rbx+00000080],xmm0
    hitman.exe+43C771E - 0F28 4F 30 - movaps xmm1,[rdi+30]
    hitman.exe+43C7722 - 0F28 C1 - movaps xmm0,xmm1
    hitman.exe+43C7725 - F3 0F11 8B 90000000 - movss [rbx+00000090],xmm1
    hitman.exe+43C772D - 0FC6 C1 55 - shufps xmm0,xmm1,55 { 85 }
    hitman.exe+43C7731 - 0FC6 C9 AA - shufps xmm1,xmm1,-56 { 170 }
    hitman.exe+43C7735 - F3 0F11 8B 98000000 - movss [rbx+00000098],xmm1
    hitman.exe+43C773D - F3 0F11 83 94000000 - movss [rbx+00000094],xmm0
    hitman.exe+43C7745 - 48 8B 03 - mov rax,[rbx]
    hitman.exe+43C7748 - 48 89 D9 - mov rcx,rbx
    hitman.exe+43C774B - 48 8B 9C 24 C0000000 - mov rbx,[rsp+000000C0]
    hitman.exe+43C7753 - 48 81 C4 B0000000 - add rsp,000000B0 { 176 }
    hitman.exe+43C775A - 5F - pop rdi
    hitman.exe+43C775B - FF A0 08010000 - jmp qword ptr [rax+00000108]


    There is some code before these blocks, but that's identical too. Completely the same :) So AOB scanning this isn't going to work :/ I had ported a scanner
    to the tools, was ready to add some patterns to make it work, but there's little to do here... :/

    Went through the trouble of downloading the game again, so I'll see if I can fix the tools, but aob scanning it is useless.

    (it's the last block btw which has to be picked), it finds 3 almost identical ones, where the second has 3 different statements at the end. Maybe I can write my scanner in such a way it will pick the nth one...).

    (edit) telling the scanner to pick the 3rd block works OK, not totally reliable, but alas, it's better than nothing! 8)
  • edited March 20
    That is usually a good approach, however in this particular pile of **** called 'Glacier', they have a fondness for copy/paste driven development. Here are two identical snippets, one of them is the camera intercept + write code, the other is not useful to the camera tools. This is the only code in the function, so there's simply a pre-amble and some junk bytes after it, but that's it. :) I have no idea how to distinguish them from one another. Problem is: you can't use bytes before/after these functions as they can be re-located after a new compile.


    // block 1
    hitman.exe+43C7474 - F3 0F10 4C 24 54 - movss xmm1,[rsp+54]
    hitman.exe+43C747A - 0F28 00 - movaps xmm0,[rax]
    hitman.exe+43C747D - 0F11 83 80000000 - movups [rbx+00000080],xmm0
    hitman.exe+43C7484 - F3 0F10 44 24 50 - movss xmm0,[rsp+50]
    hitman.exe+43C748A - F3 0F11 83 90000000 - movss [rbx+00000090],xmm0
    hitman.exe+43C7492 - F3 0F10 44 24 58 - movss xmm0,[rsp+58]
    hitman.exe+43C7498 - F3 0F11 83 98000000 - movss [rbx+00000098],xmm0
    hitman.exe+43C74A0 - F3 0F11 8B 94000000 - movss [rbx+00000094],xmm1
    hitman.exe+43C74A8 - EB 3B - jmp hitman.exe+43C74E5
    hitman.exe+43C74AA - 48 8D 4C 24 60 - lea rcx,[rsp+60]
    hitman.exe+43C74AF - E8 9CEA2CFF - call hitman.Scaleform::Render::Matrix4x4<float>::SetIdentity+30130
    hitman.exe+43C74B4 - 0F28 00 - movaps xmm0,[rax]
    hitman.exe+43C74B7 - 0F11 83 80000000 - movups [rbx+00000080],xmm0
    hitman.exe+43C74BE - 0F28 4F 30 - movaps xmm1,[rdi+30]
    hitman.exe+43C74C2 - 0F28 C1 - movaps xmm0,xmm1
    hitman.exe+43C74C5 - F3 0F11 8B 90000000 - movss [rbx+00000090],xmm1
    hitman.exe+43C74CD - 0FC6 C1 55 - shufps xmm0,xmm1,55 { 85 }
    hitman.exe+43C74D1 - 0FC6 C9 AA - shufps xmm1,xmm1,-56 { 170 }
    hitman.exe+43C74D5 - F3 0F11 8B 98000000 - movss [rbx+00000098],xmm1
    hitman.exe+43C74DD - F3 0F11 83 94000000 - movss [rbx+00000094],xmm0
    hitman.exe+43C74E5 - 48 8B 03 - mov rax,[rbx]
    hitman.exe+43C74E8 - 48 89 D9 - mov rcx,rbx
    hitman.exe+43C74EB - 48 8B 9C 24 C0000000 - mov rbx,[rsp+000000C0]
    hitman.exe+43C74F3 - 48 81 C4 B0000000 - add rsp,000000B0 { 176 }
    hitman.exe+43C74FA - 5F - pop rdi
    hitman.exe+43C74FB - FF A0 08010000 - jmp qword ptr [rax+00000108]

    // block 2
    hitman.exe+43C76D4 - F3 0F10 4C 24 54 - movss xmm1,[rsp+54]
    hitman.exe+43C76DA - 0F28 00 - movaps xmm0,[rax]
    hitman.exe+43C76DD - 0F11 83 80000000 - movups [rbx+00000080],xmm0
    hitman.exe+43C76E4 - F3 0F10 44 24 50 - movss xmm0,[rsp+50]
    hitman.exe+43C76EA - F3 0F11 83 90000000 - movss [rbx+00000090],xmm0
    hitman.exe+43C76F2 - F3 0F10 44 24 58 - movss xmm0,[rsp+58]
    hitman.exe+43C76F8 - F3 0F11 83 98000000 - movss [rbx+00000098],xmm0
    hitman.exe+43C7700 - F3 0F11 8B 94000000 - movss [rbx+00000094],xmm1
    hitman.exe+43C7708 - EB 3B - jmp hitman.exe+43C7745
    hitman.exe+43C770A - 48 8D 4C 24 60 - lea rcx,[rsp+60]
    hitman.exe+43C770F - E8 ECE92CFF - call hitman.Scaleform::Render::Matrix4x4<float>::SetIdentity+302E0
    hitman.exe+43C7714 - 0F28 00 - movaps xmm0,[rax]
    hitman.exe+43C7717 - 0F11 83 80000000 - movups [rbx+00000080],xmm0
    hitman.exe+43C771E - 0F28 4F 30 - movaps xmm1,[rdi+30]
    hitman.exe+43C7722 - 0F28 C1 - movaps xmm0,xmm1
    hitman.exe+43C7725 - F3 0F11 8B 90000000 - movss [rbx+00000090],xmm1
    hitman.exe+43C772D - 0FC6 C1 55 - shufps xmm0,xmm1,55 { 85 }
    hitman.exe+43C7731 - 0FC6 C9 AA - shufps xmm1,xmm1,-56 { 170 }
    hitman.exe+43C7735 - F3 0F11 8B 98000000 - movss [rbx+00000098],xmm1
    hitman.exe+43C773D - F3 0F11 83 94000000 - movss [rbx+00000094],xmm0
    hitman.exe+43C7745 - 48 8B 03 - mov rax,[rbx]
    hitman.exe+43C7748 - 48 89 D9 - mov rcx,rbx
    hitman.exe+43C774B - 48 8B 9C 24 C0000000 - mov rbx,[rsp+000000C0]
    hitman.exe+43C7753 - 48 81 C4 B0000000 - add rsp,000000B0 { 176 }
    hitman.exe+43C775A - 5F - pop rdi
    hitman.exe+43C775B - FF A0 08010000 - jmp qword ptr [rax+00000108]


    There is some code before these blocks, but that's identical too. Completely the same :) So AOB scanning this isn't going to work :/ I had ported a scanner
    to the tools, was ready to add some patterns to make it work, but there's little to do here... :/

    Went through the trouble of downloading the game again, so I'll see if I can fix the tools, but aob scanning it is useless.

    (edit) updated the scanner I had added to pick an occurrence (e.g. the '3rd occurrence' of an AOB hit) and this works well.

    Camera is now fully AOB scanned and works. Rest of the features left, so it will be tomorrow before the camera tools are done. Stay tuned :)
  • And here we go :) https://github.com/FransBouma/InjectableGenericCameraSystem/tree/master/Cameras/Hitman2016

    Fully AOB scanned. (except the 2x resolution setting, but that's minor)
  • Gametime control doesn't work for me (v10.1). Everything else does. Using the injector, the console even says "game paused" or "game speed set to x" but it doesn't do anything. Am I missing something? Thanks for your time and keep up the great work!
  • edited April 26
    Strange! I was using this just last night and v1.0.9 of the camera tool was working fine for me. Camera and pause. I did notice that the super sampling option in the tool doesn't work anymore but that's not a big problem as you can still get to the in game menu setting easily enough.
  • edited April 26
    The supersampling option moved sometimes when they released a new build and it's not interceptible with an AOB scan, so it indeed might fail. @Benjiprewett: it only works after you've paused the game, did you pause the game first with numpad 0? Do you use the latest camera build (1.0.9) ?
Sign In or Register to comment.