Abusing Gamepads and RC filters: When Hardware Meets Software
~7 min read
Jump to end ↓
The shift from “dumb” hardware to “smart,” software-defined devices is creating a complex new battlefield for fairness in the competitive gaming world, particularly for gamepads.
New gamepads like the Void Genesis / Firebird, Leadjoy XENO PLUS, and Gamesir G7 Pro are fundamentally different from anything that came before. They don’t just report your stick position; they let you rewrite the rules of how that position gets translated from the joysticks.
This is a step beyond the XIM or Chronus: those devices intercepted USB signals outside the gamepad. These new pads do it before the signal even reaches the USB output. You can flash custom firmware that reshapes, filters, or accelerates input, and the game never knows the difference.
Currently, gamers are putting programmable low-pass filters inside gamepads to un-smooth (inject controlled jitter) their input signals to abuse aim assist.
The Joystick: From Fat Fingers to Digital Numbers
Think about what a joystick does. You push it to a position, and somehow the console knows exactly where it is. The chain from your finger to the game goes through three stages:
- Physical → Magnetic: A magnet rides on the stick shaft. As you move, its position changes and modifies the magnetic field.
- Magnetic → Electrical: Hall-effect sensors; tiny chips that detect magnetic field strength, measure the magnet’s position.
- Electrical → Digital: An ADC (Analog-to-Digital Converter) reads the voltage and turns it into a number the microcontroller can use.
This last step, the ADC, is where things get interesting. As we increase bit depth and move from mechanical precision to digital resolution, we aren’t just getting more data; we are getting into the realm of signal processing. This is where the “abuse” begins.
The interactive element below visualizes how different ADC bit depths represent these analog signals.
Try interacting with the joystick below to see how it affects the signal resolution.
- 5-bit: 32 steps, ~3.1% - visible stepping
- 8-bit: 256 steps, ~0.4% - nearly smooth
- 12-bit: 4 096 steps, ~0.024% - high precision
What Does “Bit Depth” Actually Mean?
Every ADC has a bit depth. The number of binary digits it uses to represent a signal. This determines how many discrete values it can produce: an 8-bit ADC outputs values from 0 to 255 (256 possible values), a 12-bit ADC goes from 0 to 4095.
The problem? The real world is continuous. Your stick sits at a precise physical position, but an ADC can only represent it with a finite set of discrete steps. The discrepancy between the actual position and the nearest representable value is quantization error; a classic challenge in signal processing (a field I actually went to school for).
Move the joystick above and watch how the signal breaks into steps at different resolutions. Notice how 8-bit looks nearly smooth, but 5-bit shows visible “steps”. It’s like climbing a staircase instead of a smooth ramp.
Signal Quality: Noise & Jitter
Higher resolution means higher sensitivity; which is great for precision but has drawbacks.
The Paradox of More Resolution: Precision vs. Noise
Here’s the irony: higher resolution doesn’t always mean a cleaner signal. While a 12-bit ADC is incredibly precise, that precision is a double-edged sword. It doesn’t just resolve your intentional hand movements; it also resolves every microscopic vibration, electrical fluctuation, and manufacturing imperfection in the sensor. When you look at the 12-bit chart compared to the 8-bit one, you can see this “high-fidelity noise” in action.
This creates a spectrum of inherent filtering:
- 5-bit controllers have “built-in” filtering. Their resolution is so coarse that noise is swallowed by the massive quantization steps.
- 8-bit controllers sit in the middle; a balance of precision and manageable noise.
- 12-bit controllers are hyper-sensitive. They capture everything, meaning they require external signal processing (like RC filters) to be usable for gaming.
Quick Reference: Bit Depth Comparison
| Property | 5-bit | 8-bit | 12-bit |
|---|---|---|---|
| Steps | 32 | 256 | 4 096 |
| Step size | ~3.1% | ~0.4% | ~0.024% |
| Max error | ±1.56% | ±0.20% | ±0.012% |
| Cost | $ | $$ | $$$ |
| Noise sensitivity | Low | Moderate | High |
| Example | Cheap RC toy | Xbox/PS4 | Gamesir G7 Pro |
RC Filters: Taming the Noise
Because higher-resolution sensors capture more noise, they require RC filters to clean up the signal. However, this cleanliness comes at a price: input lag.
An RC low-pass filter is a simple circuit: a resistor (R) and a capacitor (C). The capacitor smooths out rapid changes in the signal. It works beautifully for removing jitter, but it also delays your input. The stronger the filter (the smoother the signal), the more lag it introduces.
Programmable gamepads are interesting here because they let you dial in the filter characteristics. You can make a filter aggressive enough to eliminate all jitter, or gentle enough to feel almost instant. And critically, you could design filters that respond differently to different signal patterns. It is not the case here but it will come.
This is where the aim assist exploit comes from. Standard aim assist is designed to respond to human input patterns: smooth accelerations, natural decelerations, and subtle micro-corrections. A cleverly tuned filter can exploit this by manipulating the signal in two ways:
- Smoothing: An aggressive filter can smooth out non human injected inputs, making them look-like less robotic. I havn’t seen example of that yet but it is a classic method in automatism to follow a target position (like a PID).
- Injecting Controlled Jitter: Conversely, a filter can be used to inject a specific, high-frequency “jitter.” Because aim assist algorithms are looking for intentional movement, this constant noise can trick the game into perceiving continuous inputs. This keeps the aim-assist “sticky” and actively engaged, even when the player’s physical movement should not trigger aim-assist.
The signal quality charts above show why this matters: at 12-bit resolution, you can see exactly how much noise is in the raw signal and where a filter helps. But you can also see how it could be used to generate fake inputs.
Interactive RC Filter Simulator
I built a little toy to let you see the effect of RC filters on the input signal. Try the three presets:
- Reset: Clean input, no noise, no filtering. Baseline behavior.
- Smooth: A typical 12-bit RC filter setup. Noise is reduced at the cost of slight input lag. This is the intended use.
- Amplify: An aggressive filter that amplifies jitter. This is the exploit: by reversing the filter parameters, you inject controlled noise into the signal that can give aim assist an unfair advantage.
The default mode is Smooth. It trades a small amount of input latency to remove signal noise. But if you flip the parameters (the Amplify mode), the filter actually amplifies jitter instead of reducing it, creating a signal that carries subtle advantages for aim assist.
Modern programmable controllers don’t just let you tune the RC filter, some also let you inject noise directly into the Hall sensor readings. That level of control opens up possibilities beyond anything a standard gamepad can do.
Use the sliders to tune the filter. Try switching between ‘Smooth’ and ‘Amplify’ to see how the signal quality changes.
Conclusion
The line between hardware and software in gamepads and input devices in general is gone. We are speaking about devices starting around $60. What used to be a fixed physical interface is now a programmable input surface. It can be tuned, tweaked and of course abused.
RC filters are just one example of it. As these controllers become more common, we’ll likely see a new arms race: game developers trying to detect anomalous filter behavior, and players pushing filter parameters further and further. We will certainly need to rethink as an industry what it means for systems like aim-assist relying on user inputs. From my perspective it is very similar to people having constant stick drift, just more evolved and maybe less annoying.
Hope you enjoyed the extra-effort put on the visualization for this blog post.
You Want To See More
-
I was heavily influenced in making this blog post by this tweet. There are also many other conversations, from Battle Beavers (a gamepad manufacturer) saying it is cheating, to pro-players commenting on the unfair advantages given by those new gamepads.