So after much discussion, algebra, spreadsheet work, and help/advice from many others we've made a patch that changes the ATB formulas. These are very tiny patches (Headered) (Unheadered) that simply tweak the formula used to fill ATB gauges.
Current BNW formula: (1.5 * (75 * (SPD + 20)) / 16)
New Formula: (1 * (75 * (SPD + 51)) / 16)
(Slow changes the 75 to 60 and Haste changes the 75 to 90, those numbers are unchanged)
This results in ATB gauge fill times, for both enemies and party members, being "pushed" toward a base value of 42. Characters with a speed of 42 would remain unchanged. Characters with speed below 42 should play faster than before (without actually being faster than a 42 speed character) and characters with speed above 42 should play slower than before, with higher speeds being heavily affected.
This does not do any of the following:
- Change status timers
- Change the effect of haste or slow
- Put a cap on speed in any way
- Change enemy scripts or stats at all
This last point is very important point. Enemies that use global timers risk having scripts that don't work properly anymore, as the global timers are not adjusted to account for the enemy's new attack rate. In addition, there are potential balance issues for enemies with more extreme speeds being notably stronger (in the case of low-speed enemies) or weaker (in the case of high-speed enemies).
These notes (enemy balance and enemy scripts breaking) are a major reason why these patches would need to be tested before being fully implemented. While status timers are unchanged, it's worth looking and seeing if Sap, Regen, Poison, or any other status that is based on a timer is made too significantly stronger or weaker thanks to the relative changes in speed.
Credit to Seibaby for actually making the patch (My contribution was algebra and testing to find a formula that doesn't make speed TOO weak)