Hello!

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

Using 3Dmigoto to remove HUD shaders from dx10/11 games

11213141517

Comments

  • If you set hunting to 2 you can turn it on and off with numpad 0, should make it easier cause then the game isn't constantly running with hunting on, only when you enable it.

    Thanks for the info.
  • Assassins Creed Origins HUD toggle

    Finally managed to make a HUD toggle for AC: Origins, the shaders were all broken but I got some help from the 3Dmigoto experts.
    I had to use the assembly versions of the shader which means you basically just have to remove the entire top half of the shader and instead use the code below (that isn't commented out) then rename the shaders by removing the "_replace". You also have to use a different toggle code. Not sure if this code works for other games but it might.
  • edited November 2017
    Nice, photo mode has it's uses but it's good to have a full HUD toggle since photo mode affects some of the post-processing effects even if it's not quite to the same extent as seen with say some of the early Ansel enabled games. (Which I think newer versions have somewhat fixed?)

    SpecialK which is what I use for most shader viewing and toggling is a bit cumbersome too since for one it does not currently have any hotkey system for how shaders are toggled so a game like Mafia 3 where each bit of the HUD has it's own separate shader can involve dozens of toggles if the game itself lacks a UI toggle of some sort or a photo mode.
    (And if said photo mode is Ansel then for those of us on AMD GPU's it's not going to be doing much.)

    (SpecialK's primary purpose isn't shader viewing and editing though which came in much later but it's improved a lot since it's first implementation even so.)

    For AC Origins my own findings were that the game has a ton of shaders and especially compute shaders which control a lot of functionality but toggling these can have very bad consequences such as disabling the culling and that's zero-digit framerate and a GPU driver crash.
    Was useful for finding the MSAA resolve shader though which when disabled fixed a issue with dithering if you had AA set to enhanced rather than application controlled for AMD. (Which from my understanding MSAA is only really used for AA on low which uses temporal reconstruction with 2x MSAA, medium and high use a form of FXAA and TAA respectively I think but it could just be a form of TAA.)

    Should try to get more familiar with 3D Migoto myself, sounds similar in concept but made especially for shader editing and excelling at it unless the game in question uses something the software is currently not fully supporting but the dependency on NvApi seems to have been solved quite some time ago so it's compatible with AMD now to a degree. :)
    (Initially used for 3D Vision support I think it was, though shader viewing allows for toggling a bit of everything.)

    That and OtisInf's camera tools, besides the other photo mode limitations in some games it's usually also capped to a very close distanace to the player character likely due to LOD and such which for some games (Witcher 3 comes to mind.) can look a bit "off" if the player uses debug camera flight to go into some distant barely loaded area of the game ha ha.
    Still offers a lot more flexibility though, Batman Arkham Knight stands out in particular basically using photo mode as a sort of selfie feature with Batman always in center and the focus of the camera making environmental screens a bit more difficult than they have to be.

    Guessing EAC and similar interferes too, For Honor was recently updated to title update 1.15 but still blocks ReShade even for the official 3.0.8 release which has been whitelisted for many other games.
    EAC having a little rules file or what to call it per-game usually updated whenever the game in question it, having a global server list it could pull would be far faster as I see it for getting software OK'd such as ReShade or Afterburner/Rivatuner. (Though going through the game shaders might not be allowed so without disabling - Watch_Dogs 2- or outright breaking EAC - Wildlands - that's going to be a pain.)


    Well anyways, good to have a HUD toggle for this game. :)
    (Game makes for some pretty good screenshots, some of the terrain textures and geometry can be a bit rough but with a bit of care there's a lot of good screenshot material here and the detail in the cities is exceptional even if it's on a smaller scale compared to say Assassin's Creed Unity.)

    Though I mostly just enjoy playing through the game itself and taking some captures as I go, nothing exceptional and mostly standard gameplay shots though the photo mode makes things a lot easier but unlike say Shadow of War it can't be engaged in cutscenes so this and the camera tool from Otis would make for a pretty powerful combination. :)
  • edited November 2017
    Still offers a lot more flexibility though, Batman Arkham Knight stands out in particular basically using photo mode as a sort of selfie feature with Batman always in center and the focus of the camera making environmental screens a bit more difficult than they have to be.
    I did make a camera for batman arkham knight too tho, in case you didn't know, as indeed the photomode is terrible in that game ;)

    Regarding hud toggles: I did experiment with creating a hud toggle system based on what 3d migoto uses too: when the shader is created using D3D, the buffer with the shader code is passed to D3D and 3D migoto intercepts that call, calculates a hash from the bytes in the buffer, (which is the hexadecimal key you're seeing in the filename), and stores the returned pointer in a list. When the shader is then used, using PSSetShader() (it checks if the passed in pointer is one in its own list) it will replace that pointer with the pointer to the altered shader.

    I thought: why not replace it with a pointer to a shader which simply does nothing? 3D migoto is mainly used to replace shaders, but we don't want that, we want to disable them. The hash calculation from 3D migoto is really simple so I took that function, intercepted CreatePixelShader and performed the hash calculation of all shaders passed in. Then intercepted PSSetShader, and if a shader from the set of shaders I had marked using a rudimentary piece of input code, I could hide them by simply replacing them with a pixel shader which discarded the input pixel. This required no editing of any shader, as the replacement shader is always the same.

    But I ran into an obvious problem: my hud toggle code was in my camera (I used homefront for this to test), and it was injected after the game started: the game already had called CreatePixelShader with the hud toggle shaders. This of course happens very early in the game startup, as they are often used for text display and the like, something a game likely needs at startup! :) So I could toggle shades, but only the ones created e.g. at map load. No hud shaders.

    So this problem is a bit harder to solve. There's one 'solution': alter the reshade code and add this toggle code to that. It's really a simple system: you start the hunting process, you walk through the shaders, the active one is always hidden, if it's a shader that needs toggling, just mark it, then end the process and you got a hud toggle, ready to use. I don't think reshade's maintainer is going to go ahead with it, but we can always ask of course. I haven't had time to add it to the reshade code, but that's the easiest. Another solution is to use the base D3D interception code from reshade and remove everything, add the hud toggle code and place it in the game folder as e.g. d3d11.dll The problem with that is that it doesnt' always work (e.g. in Prey it didn't work, 3d migoto which uses this, didn't even start up).

    I also thought about finding the shaders to toggle using heuristics. This would work for something that's injected after the game has already been started (and can be added to a camera). This idea is basically about: a shader in the HUD is used in a 2D rendering scenario. The current state of the D3D api/card can be read. You can calculate a key from that state, and use that. This way you don't need the shader code at all (after all, all we need to find is the pointer of the shader passed to PSSetShader()). This is a bit tedious tho, as it might be there are false positives and you have to let the system run a bit to 'learn' which states are matching the ones you marked earlier, it's also not said each key is unique so after writing out the design for this I thought it was a lot of work so I left it unimplemented. (it's on the wiki of the camera system at github if you're interested).

    So in short, there is hope things will be better in the future, but we're not there yet ;) I also think more and more games will include photomodes which can be abused with real camera tools to get a good starting point. (e.g. in ACO, the game pause they implemented for the photomode is rather tedious, and is different from the one used by the menu, so the only good pause/timestop is really the one in the photomode).
  • Here's a toggle for Nioh:
    http://www.serwer1702170.home.pl/downloads/Nioh/NiohShaderMod.zip

    F1 is HUD toggle, i also disabled coop visitor player glow and guardian spirit glow although both can be enabled via F2 and F3 respectively and color of the glow can be cycled by pressing F4.
  • SkacikPL said:

    Here's a toggle for Nioh:
    http://www.serwer1702170.home.pl/downloads/Nioh/NiohShaderMod.zip

    F1 is HUD toggle, i also disabled coop visitor player glow and guardian spirit glow although both can be enabled via F2 and F3 respectively and color of the glow can be cycled by pressing F4.

    Wow, thanks alot for this.
  • Stormy92 said:

    kosche911 said:

    Hey i think i got it by myself, took some time but here you go:

    http://www.mediafire.com/file/9avmt5xr7n8jnjl/Xenoverse_2_HUD.rar

    This should Toggle the Entire Hud of DragonBall Xenoverse 2.
    Just drop all Files where the "DBXV2.exe" is located.
    Ingame press "CAPSLOCK" to toggle.

    would be great if someone else could test it.

    Hey there. I registered in this forum, because I had a problem with your mod. I heard the beeping but the game didn't start. I managed to get to work by adding the AMD files that were linked a few pages ago. (No one mentioned that AMD cards couldn't use this mod. At least no one did on Xenoversemods lol). Anyway. It works now and I just wanted to say thank you, for this amazing HUD toggle :)
    Thank you :)
  • could someone help me with a hud toogle for dead island defintive edition? i tried but can`t figure out what the problem is
    http://www.mediafire.com/file/ph3pyyslgld1o5j/DIDE NO_HUD.rar
  • leggra said:

    could someone help me with a hud toogle for dead island defintive edition? i tried but can`t figure out what the problem is
    http://www.mediafire.com/file/ph3pyyslgld1o5j/DIDE NO_HUD.rar

    Your link doesn`t work

  • Anyone able to get 3Dmigoto run with "Dragon Ball FighterZ" yet. Im still struggeling wit EasyAntiCheat.
    You can actually start a second Exe without EasyAntiCheat, and 3Dmigoto seems to load, but it just closes after some seconds. Same without 3Dmigoto in the Folder, so it might be something else.
    Help would be much appreciated.
  • edited February 3
    leggra said:
    In your d3dx.ini, this part needs to have [Key1] at the top:

    Key=caps
    ; hide HUD
    x=0
    type=toggle

    So it should look like this:

    [Key1]
    Key=caps
    ; hide HUD
    x=0
    type=toggle

  • edited February 4
    thanks a lot @ janitor and one3rd. uploaded tomorrow the updated version from the hud toogle
    http://www.mediafire.com/file/dllvkppaup7ar1s/DIDE NO_HUD.rar
  • edited February 21
    ...
Sign In or Register to comment.