sometime in 2010
In computer games, the fire rate of pistols is usually determined by how fast you click your mouse. Since you're not a machine, you will always make a bigger delay between your clicks (shots), comparing to a computer opponent. Not like it's a big trouble, but isn't it always good to make your life a little bit easier?
It's not a big deal to write some basic application which would interrupt your mouse clicks at certain delay of milliseconds. I considered this as cheating a few years back, but today, I would rather say that it's just a relief for your finger, since it is possible for a human being to top the rate of fire, for the sake of... aiming.
I thought that programs like those were very popular among FPS/MMO communities, and boy, was I wrong! WinMacro, Random Mouse Clicker, Auto Mouse Clicker... I could go on and on forever. They're all stinkies! Half of those tools are shareware, the other half was written by morons. Besides the fact that most of them do not work in games, they just 'lag' and cannot send straight keystrokes with constant delays. There's no use of trash like that, I tested almost all of existing tools under Windows 7 32-bit, playing Zombie Panic: Source and a few other games. It's worth mentioning that some engines have a piece of code written to prohibit that kind of 'cheating'.
Now tell me: what kind of programs do C programmers write, when there's no real mouse click interrupter available? I mean... how long can it really take at all, to write one, which would just interrupt clicks? I couldn't find it, and I searched really, really hard; for a few good weeks.
Here it goes
I don't really know how to write C/C# programs for Windows, so I decided to go the hardware way. Analog hardware auto-clicker could be a better solution, since it's impossible to track it (especially if delay time is random).
I had this idea for a very long time, but never really bothered making it since my gaming years were gone. Now it felt more like a challenge.
My first version was kind of weird: I took a cheap 4$ optical 3-button mouse, disassembled it, binded MOUSEWHEELDOWN to primary attack in the game, and inserted a small DC motor inside it, attaching it to the scroll mechanism. It turned out to be a fail, but it was working. The thing is that a mouse for 4$ includes only a mechanical scrolling sensor, not an optical one like you could've seen in Logitech gear. It may work better with optics, especially if you cut off every third or every second string of plastic from the scrolling wheel. You could also try making spacings in random order, that way your shooting may look much more realistic.
The second version was more solid. I took a blinking LED schematic (to the left) from this awesome website and attached one more transistor, connected to the LMB signal on the PCB. Played around with the capacitor's value to make it blink ~15 times per second (0.22uF) and used R1 with the resistance of 2M. Wish I had some good Mega-Ohm pot to make the tuning easier.
Q3 is simply another N3904, just like Q2. The LMB connector must be soldered to the signal input on the mouse's PCB. The only damage this hack causes is that you have to cut the circuit between the stock button of your mouse and the mouse controller in order to use mouse's button as m0user's switch (SW1 on the schematic). You could always add some more wiring to your mouse, hooking up some kind of an additional switch to the plastic body, which would switch the normal and the m0user modes for your device.
The best thing ever, would be to use some external potentiometer, as I already mentioned, to tune the speed for a specific game/weapon. Also, there might still be a better value for the capacitor. As much as for the whole circuit. See, I'm not an engineer, I cannot draw a circuit from scratch, but all I can tell is that this hack adds a little bit of delay (just a few milliseconds) before the first shot comparing to the stock mouse. It's because that capacitor should load some charge before it discharges and produces the impulse which makes our LED blink (and the gun shoot). I could take some kind of a timer uC (e.g. 555) and play around with it, but I wanted to do something really trivial, something that's possible to make from an old TV or a radio.
Here's the list of values for the components from the original website (just in case it goes down for some odd reason):
R1________1M 1/4W Resistor (2M in m0user)
R2______100R 1/4W Resistor
R3_______22R 1/4W Resistor
C1_______1µF 63V Electrolytic, Multilayer Ceramic or Polyester Capacitor (0.22uF in our case)
D1_______LED Any type and color
Q1____2N3906 40V 200mA PNP Transistor
Q2____2N3904 40V 200mA NPN Transistor
Q3____2N3904 40V 200mA NPN Transistor
SW1_____SPST Switch (Wires, soldered to the mouse button)
B1________3V (just two wires, soldered to the USB +5v leads inside the mouse)