Feature: Auto preset switch based on triggers

1 year 4 months ago - 1 year 4 months ago #1 by Daemonjax
You'd have a list of presets and each would have a triggers associated with it, and a default profile when no trigger matches.

You already have hotkeys for preset changes, so most of the code is already done.  You wouldn't even need to incorporate it into the GUI (a simple toggle would be nice, but even that's not necessary) -- it can all be set within a text file that's parsed (if it exists) when reshade starts.

Potential triggers (off the top of my head):

BackBuffer Pixel(s) Watch:
Parameter1: Preset Filename
Parameter2: texcoord(s) for color fetch
Parameter3: ==, !=, <, >, <=, >=
Parameter4: float3 match value
Parameter5: <none>, &&, ||
Parameter6+: If parameter 5 isn't none, then keep adding to the list starting with Parameter 2.

DepthBuffer Pixel(s) Watch:
Parameters:  Same as Color Pixel Watch, except for the DepthBuffer.

Texture Pixel(s) Watch:
Parameters: Now we're getting fancy.  Like the two above, except the user can specify the texture by name (as seen in ReShade's Statistics window in the GUI).

File Watch:
Parameter1: Preset Filename
Parameter2: Filename
Parameter3: Sleep Timer Length
Parameter4: Content Type [Binary, UTF-8 String, ASCII String]
Parameter5: Watch Type[overwrites, appends[#lines]]
Parameter6: match value (string or hex array)
Parameter7: <none>, &&, ||
Parameter8: If 7 isn't none, then keep adding to the list starting with Parameter 2.

This wouldn't be a fringe feature since it applies to a lot of games and a lot of scenaries.  Sniper rifle zoom.  Map/zone changes.  Menus.  Cutscenes.  Loading screens.

I think I can already do the File Watch one with an Authotkey script.  Not sure if reshade can catch Autohotkey sends to trigger a preset hotkey.  Hmmm... I think I could also do the BackBuffer Watch one, but I'm 99% sure Autohotkey can only tap a screen pixel if the game is running in a window.  The depth one would be impossible using Autohotkey.

Last edit: 1 year 4 months ago by Daemonjax.

Please Log in or Create an account to join the conversation.