I thought it was official before, but not according to Keely.
The PSP has officially changed the ROF from 15 (technically 15.4) balls per second down to 13.33 BPS.
It’s actually one ball every 75 milliseconds, which does translate into 13 1/3 BPS (75 * 40 / 3 = 25 * 40 = 1000 ~ 1), but it’s actually too fast for 13.33 BPS (75 * 13.33 = 999.75 < 1000 therefore, it's too fast). But that assumes that all the shots are consistent, which there are often possibilities where that isn't the case. The PSP rules also state that only a maximum of 3 shots per trigger pull can be fired. Here's the time over 1 pull if the firing is consistent: pull = fire + 75 ms + fire + 75 ms + fire + 75 ms = 225 ms (assuming the time firing takes is consistent and negligible) Another case, let's say a ball takes a bit to load, say an extra 20 ms (don't argue, my loader is super fast, so that's not going to happen, whatever, shit happens): pull = fire + 75 ms + 20 ms (slow ball loading) + fire + 75 ms + fire + 75 ms = 245 ms (assuming the same as above) You just got jipped out of 20 ms. For that time period,you just shot ~12.24 BPS. Let's say the same thing happens, but the board software is able to compensate for those few milliseconds (it's totally feasible for the software to be able to do this): pull = fire + 75 ms + 20 ms (slow ball loading) + fire + 55 ms + fire + 75 ms = 225 ms (same assumptions) Now, you just shot 13 1/3 (about 13.33) BPS, which is what the general rules state, but you would actually receive a gross penalty for more than one shot in a 65 ms time span. So, the rules are actually, you may shoot 1 ball every 75 ms, not 13.33 BPS.
Also, in order to truly determine if the rate of fire is 13.33 or under (actually, 13 1/3) is to measure the gun over a 3 second time span (1/3 shots take some work to measure) and see if it shoots 40 shots or less over that time period with at least 14 (or 13) trigger pulls (13 1/3 pulls technically. If it the measurement didn’t start exactly when the first trigger pull occurred but after it but the first shot was counted as time 0, it could be done in 13 since the shot(s) from the previous trigger pull would run into the time period i.e. the 1 shot from the previous trigger pull plus the 39 from the subsequent 13 pulls). Now, of course, they aren’t going to measure it that way, since it’s a waste of paint and time, and probably seems a tad complicated. They’re going to measure it using a simplistic representation of it, as in, you need 75 ms between shots, because it’s easier and can represent 13.33 BPS (really, 13 1/3), but it’s not always true, as shown in the case above.
Am I saying their 75 ms between shots is bad? No, I’m just saying that saying it’s not 13.33 BPS (again, 13 1/3). It can be, but it’s not always. The rules should only state the 75 ms rule, not 13.33 BPS.
As a side note, I’m wondering how boards calculate their shots.
Does it use multi-threading, like a thread for each function (trigger monitoring, eye monitoring, rate of fire, etc.) or is it more of a when an event occurs, check the sensors then fire. I think I’m going to write a python script to demonstrate this.
Update:
Wrote previous mentioned python scripts, get them here, http://nothingoutoftheordinary.com/2008/01/10/paintball-board-software-types/