Skip to content

Raw input support #39

Open
Open

Description

@Lrflx

Pretty much only reason keeping me from abandoning Revolution completely is that it has support for raw input, cause mouse input in original SS is so janky no amount of tinkering really helps to get around it. Is it possible to implement it on the level of this patch?

Activity

  1. added
    featureNew feature or request
    help wantedExtra attention is needed
    topic:patchesRelated to dynamic patches of engine functions
    topic:gameRelated to the game client
    on Nov 15, 2025
  2. DreamyCecil commented on Nov 15, 2025

    @DreamyCecil
    Member

    I'm not sure what "raw input" means or how to implement it even with the full engine source code, let alone this patch.

    Enabling "Sharp Turning" in player profile settings paired with the inp_iKeyboardReadingMethod = 0 console command (default value is 2, can also try 1) enables the least possible latency if that's the issue. Right now I don't know how it could be improved even further.

  3. jyetcv commented on Nov 15, 2025

    @jyetcv

    Raw input allows you to directly access mouse data.

    There are two ways adding this, either use SDL and it will automatically set up raw input for you:
    https://wiki.libsdl.org/SDL2/SDL_SetRelativeMouseMode
    https://wiki.libsdl.org/SDL3/SDL_SetWindowRelativeMouseMode

    Or you use the Microsoft Raw Input API which works only for Windows:
    https://learn.microsoft.com/en-us/windows/win32/inputdev/raw-input
    https://learn.microsoft.com/en-us/windows/win32/inputdev/wm-input

    For Linux specific input you can use evdev, if you need that for some reason.

    Although I am not certain how you would hook this into the patch, unless you made a replacement .dll.

  4. Lrflx commented on Nov 15, 2025

    @Lrflx
    Author

    Yes, it's not only about latency, even with sharp turning it still feels extremely stuttery. I know it could be improving further exactly cause of Revolution, it feels miles better there with raw input turned on. Main question is if it could be implemented through this patch cause I'm not technically savvy enough to say for sure, I'll be honest.

  5. Axer128 commented on Dec 10, 2025

    @Axer128

    In addition to what Cecil said, you should also keep Mouse acceleration ON..
    I super hate mouse acceleration, but in this game its not like others, its not variable mouse acceleration at all (moving the mouse fast vs slower to same position does not result in different aim).. It's just makes it more precise, it's even recommended/explained like that in the readme file.
    (imo DreamyCecil should just rename it "precise mouse aiming" so as not to confuse players...)
    As real acceleration is available in later sam games, and even serious engine 1 one in revolution, as the devs fixed it to work as actual acceleration in that game.

    With it off, its like the games emulating a controller.

    I also turn off smoothing. Though try it with on and off after you've done all the tweaks.

    And keep the mouse sensitivity slider at default 50% - dont muck with it at all, its screws things up.. Just use the command (its separate from the slider, they kinda multiply each other):
    inp_fMouseSensitivity=0.10 (use a low number like that and up your DPI on your mouse to get the actual sensitivity you like, personally i use 1600 DPI.) Only increase/decrease by tiny 0.01 increments until you get it feeling nice.

    I also run / use specialK for perfect frame pacing/capping.. The default way (vsync) mucks up the mouse too.. So force vsync off in nvidia control panel at the very least if not also use special K.

    With all those tweaks, its finally starts to feel pretty nice, very close to raw input in other same games. (like 95% as good)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or requesthelp wantedExtra attention is neededtopic:gameRelated to the game clienttopic:patchesRelated to dynamic patches of engine functions

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions