eFX Shader Injector Support Thread

Discussion in 'Games, Gaming & Game-demos' started by Crosire, Oct 22, 2013.

  1. Sajittarius

    Sajittarius Master Guru

    Messages:
    490
    Likes Received:
    76
    GPU:
    Gigabyte RTX 4090
    another question:

    Has anyone tried to use EFX with Amnesia: A Machine for Pigs ? Maybe i'm doing something wrong. I renamed the dll to opengl32.dll and put it in the folder, and put Sweetfx folder in there also.

    Here is the output of the log file:

    Code:
    2014-01-18 18:36:04 | INFO | GENERAL | Initializing Crosires "eFX" Version 2.0 (1.9.6.0) ...
    2014-01-18 18:36:06 | INFO | HOOK | Installing "opengl32" hooks from file "C:\WINDOWS\system32\OPENGL32.dll" ...
    2014-01-18 18:36:06 | INFO | HOOK | Installing "kernel32" hooks from handle "77240000" ...
    2014-01-18 18:36:06 | INFO | PROXY | Redirecting "wglSetPixelFormat"
    2014-01-18 18:36:06 | INFO | PROXY | Redirecting "wglCreateContext"
    2014-01-18 18:36:06 | INFO | HOOK | Installing message hook for window "000A0576" ...
    2014-01-18 18:36:06 | INFO | EFFECT | Loading effect file "F:/Steam\steamapps\common\Machine for Pigs\SweetFX\Shaders\Sweet.fx" ...
    2014-01-18 18:36:06 | FATAL | GENERAL | An unhandled exception occured:
    
    ExceptionCode 0
    ExceptionAddress 74E92EEC
    
    2014-01-18 18:36:06 | INFO | GENERAL | Saving minidump to "F:\Steam\steamapps\common\Machine for Pigs\aamfp.dmp"
    2014-01-18 18:36:23 | INFO | GENERAL | Terminating ...
     
  2. Boulotaur2024

    Boulotaur2024 Guest

    Messages:
    142
    Likes Received:
    0
    GPU:
    AMD HD7950
    .. How did you do that without using vendor hacks in DX9 ?

    Sorry to disagree but in my opinion DOF and SSAO would be a most valuable addition to eFX if you can get that working. I for one couldn't care less about cheaters (they would be banned right away and that's it).
     
  3. conan2k

    conan2k Guest

    Messages:
    43
    Likes Received:
    0
    GPU:
    Gigabyte 780GTX
    +1, “Guns Don't Kill People, People Do”

    "Steep Parallax Mapping" would be another great addition to eFX:
    http://graphics.cs.brown.edu/games/SteepParallax/
     
  4. Radical_53

    Radical_53 Ancient Guru

    Messages:
    4,358
    Likes Received:
    212
    GPU:
    EVGA RTX 3080 FTW3
    Looks like you aren't playing a lot of multiplayer games.

    a) cheaters really aren't banned right away
    b) if the put the injector/tool itself on a blacklist, everyone using it will be kicked/banned

    So right now, because these injectors don't do any harm, they're still allowed to be used. If they wore more suspicious though, or allowed some of the offensive stuff, they'd be gone sooner than later.
    Most games do have some sort of online account binding nowadays and most do have some sort of multiplayer. No one would be using injectors anymore if they were potentially dangerous to use.
     

  5. conan2k

    conan2k Guest

    Messages:
    43
    Likes Received:
    0
    GPU:
    Gigabyte 780GTX
    RadeonPro does make use of depth buffer (for its SSAO implementation) and has not been banned so far to my knowledge. In the worst case scenario, there could be two versions of eFX -- one for multiplayer users (for those who want to play extra safe) and another one with advanced features like DoF, SSAO, etc.
     
  6. Radical_53

    Radical_53 Ancient Guru

    Messages:
    4,358
    Likes Received:
    212
    GPU:
    EVGA RTX 3080 FTW3
    That might be true indeed, yes. But so far it's *sure* to be trouble-free. For most companies, PC is only a niche. So any type of support is welcome.
    Just like the FoV changer that came out for MW3 and Ghosts, any "additional" piece of software should be as simple and "proof" as possible.

    If it can be used for something bad, easily, it will. And it will get banned sooner or later then.
     
  7. Crosire

    Crosire Member Guru

    Messages:
    164
    Likes Received:
    0
    GPU:
    -
    Getting the depth buffer isn't that hard, you just overwrite some game settings, forcing Direct3D to render with a custom depth stencil. It's even easier for OpenGL. Radeon Pro can safely use the depth buffer, because it doesn't allow anybody to use it (just used internally). eFX was written to give everybody the options to implement such things, giving depth buffer access would be dangerous.
    And a "singleplayer/multiplayer" version was in my mind too, but how to tell which part of the game is currently used? Tell people to use the appropiate version? Sure thing, cheaters will follow that advise happily...

    EDIT: Btw., I was talking about Dx11 (with its DepthStencilBuffer and OGL, which allows binding a texture for depth rendering directly) here, it's more work for Dx9, as mentioned...

    Oh and sorry for the lack of updates. I'm really busy at the moment. I would love to make eFX open source, but I'm scared of people missusing it for bad things. Hooking is such a powerfull thing and giving easy access to the wrong people just makes it worse. I'll need to think about this, some input would be great.
     
    Last edited: Feb 3, 2014
  8. Basem

    Basem Guest

    Messages:
    6
    Likes Received:
    0
    GPU:
    4 Gb
    Can any one please help me ?
    can't get it to work with some games
    Assassin's Creed Liberation & 3 the games works but no setting appear
    also with Bioshock 1
    and Metal Gear Rising also works but if I turned it off can't turn it back on
    can any one help please ?
     
  9. conan2k

    conan2k Guest

    Messages:
    43
    Likes Received:
    0
    GPU:
    Gigabyte 780GTX
    Depth buffer access discussion

    I believe this "multiplayer cheaters" problem is somewhat exaggerated. For example, it will take little skill and only a few lines of code to implement the aforementioned "crosshair" shader using the current set of injector features (which have been available in InjectSMAA and other injectors for quite some time already). Nobody has done it so far. So, I fail to see how the depth buffer access (along with much more complex shaders making use of it) will add to the problem.

    On the other hand, adding such powerful feature as depth buffer access will allow to implement extremely cool eye candies like DoF, SSAO, Steep Parallax Mapping, etc.

    Please do consider implementing this feature when you have time.

    Appropriate warning is only a "foolproof" protection which, however, should be sufficient in most cases. And, even if active countermeasures against multiplayer cheaters are still required, there are plenty of options (just to name a few):
    - Block access to advanced features of eFX depending on network activity of injected process
    - Dynamically enable/disable effects that rely on advanced features of eFX depending on network activity of injected process (with the account for some threshold)
    -...

    Again, I think that any active countermeasures are superfluous and not really necessary.

    Just my five cents. I think that it should be sufficient to give individual access on demand (I assume that CeeJay and Boulotaur2024 already have the access to eFX source codes). You will have a good level of control that way.
     
  10. Crosire

    Crosire Member Guru

    Messages:
    164
    Likes Received:
    0
    GPU:
    -
    Thanks for your opinion. I will probably add that feature then next time, but connected with a build in auto updater, which would allow me to block shaders that exploit the feature set. Auto updaters aren't something I prefer to do, having in mind that it would not be possible to disable it, but it is an easy method to make sure that I can quickly react to public cheaters and ban them.
    The idea with networkmonitoring has the problem that many of the newer games do constantly talk even in singleplayer mode. It would be hard to define some threshold at which a game would be considered multiplayer.
     

  11. TCPIP

    TCPIP Guest

    Messages:
    67
    Likes Received:
    0
    GPU:
    AMD Radeon R9 290
    Crosire or Boulotaur2024, could you please port gaussian shader to the eFX?
     
    Last edited: Jan 29, 2014
  12. Bobert13

    Bobert13 Guest

    Messages:
    26
    Likes Received:
    0
    GPU:
    GTX 560 TI - 1GB
    Is the source for this available somewhere? DX9, DX10, both? I might do it.
     
  13. TCPIP

    TCPIP Guest

    Messages:
    67
    Likes Received:
    0
    GPU:
    AMD Radeon R9 290
    Here you go http://forums.guru3d.com/showpost.php?p=4581604
    The shader is called GAUSS_DX9 and GAUSS_DX11, there are some variables/constants used in there that are in the dll itself, which is unfortunate but solvable, i guess.
     
    Last edited: Jan 30, 2014
  14. conan2k

    conan2k Guest

    Messages:
    43
    Likes Received:
    0
    GPU:
    Gigabyte 780GTX
    Injectable SMAA T2X?

    How do you get a supersampled frame which is required for SMAA T2X? Or do you use a frame upsampled with interpolation instead?

    BTW, it would be awesome to have injectable SMAA T2X (especially on 4K displays which will become widespread eventually), so thank you very much for your effort in this direction!
     
  15. K-putt

    K-putt Guest

    Messages:
    472
    Likes Received:
    0
    GPU:
    GTX 1080Ti
    That would be amazing! Maybe even the grain shader? But i think a proper grain shader would be better. Not just a image that runs over the screen.
     

  16. Bobert13

    Bobert13 Guest

    Messages:
    26
    Likes Received:
    0
    GPU:
    GTX 560 TI - 1GB
    T2X is Temporal Supersampling. It doesn't require a Supersampled frame at all. Instead, it jitters each frame on the subpixel level and then recombines the last two frames to get the final image. It's spreading the workload of Supersampling over multiple frames.

    I think you may be confusing this with SMAA S2X. S2X requires MSAA2X and it requires both samples to be input and ran through SMAA. I have no plans to mess with implementing S2X though I'm sure with enough work done inside the injector, it could be done. I'd expect it to be a huge source of issues for game compatibility and such.
     
  17. conan2k

    conan2k Guest

    Messages:
    43
    Likes Received:
    0
    GPU:
    Gigabyte 780GTX
    Nope. It was my misapprehension of how SMAA T2X actually works. I think T2X should be a "golden mean" taking into account its performance/quality ratio.
     
  18. Crckt

    Crckt Guest

    Messages:
    4
    Likes Received:
    0
    GPU:
    ATI HD6970
    #1 forums.guru3d.com/showpost.php?p=4755881&postcount=940
    #2 forums.guru3d.com/showpost.php?p=4756752&postcount=945
    f*ck, f*ck and f*ck again! WTF???
    and this msg in log "2014-02-02 03:27:07 | FATAL | PROXY | Original "D3D11CreateDeviceAndSwapChain" failed with "DXGI_ERROR_UNSUPPORTED""
     
    Last edited: Feb 2, 2014
  19. Bobert13

    Bobert13 Guest

    Messages:
    26
    Likes Received:
    0
    GPU:
    GTX 560 TI - 1GB
    So far as I can tell, the variables being set inside the .dll cannot be set through HLSL. XP-dev apparently doesn't have a "download repository" option so I was unable to actually ascertain exactly how any one of them functions but at least some of them are not constant (they vary frame by frame). Right now, only Crosire could port this into eFX or make it possible for others to do so, as he's the only one with access to the .dll.

    @Crosire With that being said, would it be possible to include an user-configurable variable-setting function that runs once per frame and has access to a wide array of information about the frame? It would have to compile on startup just like all the HLSL shaders but it would need to be in C++ or something similar. This would allow users to write their own counters or alternating boolean values or set variables like the exposure variable from the Gaussian Blur shader.

    I'm personally against making eFX open source for the same reasons you've already mentioned. I'd rather it be safe to use in multiplayer games than open.
     
    Last edited: Feb 3, 2014
  20. Crosire

    Crosire Member Guru

    Messages:
    164
    Likes Received:
    0
    GPU:
    -
    That's some nice idea. I did some experiments with scripting using .Net (aka C#, VB.Net, ...) in eFX 1, so yeah, it's totally possible.
     

Share This Page