Posted May 8, 2017 (edited) · Report post Obligatory plug of a reflect graphic patch that needs testingFor an updated patch and code, click here! 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 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 Seibaby's patch below remedies this. 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) For a quick idea of how this would look. Each character was timed for how many turns they'd get compared to 31 speed Strago's 4 turns. VANILLA BNW --- Strago (31 speed) == 4 turns Terra (48 speed) == 5.33 turns Celes (71 speed) == 7 turns Shadow (126 speed) == 10.66 turns REBALANCED PATCH --- Strago (31 speed) == 4 turns Terra (48 speed) == 5 turns Celes (71 speed) == 6 turns Shadow (126 speed) == 8.4 turns Edited July 6, 2017 by Nowea Share this post Link to post Share on other sites
Posted May 8, 2017 · Report post This is obviously up to BTB since he's in charge of his downloads section. But if he approves then this might be best to include in the BNW download section. One of the goals here is that all of this type of stuff (providing it's legal to host) will be hosted on this site so nothing is lost. I always hate it when a download disappears from dropbox or another hosting site. But to keep things on topic, this definitely seems like it tightens the total range of speed possible. Out of curiosity were there problems with speed being OP before? Share this post Link to post Share on other sites
Posted May 8, 2017 · Report post It was a common agreement that speed was too strong. Of course, BTB can move it to the download section (I didn't know that was a thing) and he helped with measuring the number of turns after talking about how much weaker speed should be. A lot of algebra happened and my incessant rambling proceeded to eventually have the patch made. Share this post Link to post Share on other sites
Posted May 8, 2017 · Report post The needs a lot of testing before it's an official part of the mod, so I don't think it really ought to go in the downloads section yet. Share this post Link to post Share on other sites
Posted May 9, 2017 · Report post I feel like there should be a "beta" tag and/or section of the downloads section. Share this post Link to post Share on other sites
Posted May 9, 2017 · Report post 1 hour ago, BTB said: I feel like there should be a "beta" tag and/or section of the downloads section. Created. "[Beta] Add Ons" Under BNW category. Tagging would also be a good idea. I'll update the tagging guidelines. Share this post Link to post Share on other sites
Posted May 19, 2017 (edited) · Report post Update: I've made a new version of the patch that doesn't affect monsters at all, to guarantee compatibility with current monster scripts. The patch is available for testing here:Headered version (for BNW 1.8.5)Non-headered version (for BNW 1.8.5) The code rewrites the Battle Time Counter function at C2/09D2 and incorporates changes previously made to that function by Synchysi. Everything should be nice and compatible. Code: ;For Brave New World ;concept: Nowea ;coding: Seibaby ;Original formula: (ATB multiplier) * 1.5 * (Speed + 20) / 16 ;New formula: (ATB multiplier) * (Speed + 51) / 16 ;xkas 0.06 hirom ;don't change this ;header ;uncomment if headered ROM ;ATB multipliers !slow = 60 !normal = 75 !haste = 90 ;Universal Speed bonus !bonus = 51 org $C209D2 atb: ;Set ATB multipliers PHP LDY.b #!slow ;ATB multiplier = 60 if slowed LDA $3EF8,X BIT #$04 BNE .skip ;Branch if Slow LDY.b #!normal ;ATB multiplier = 75 normally BIT #$08 BEQ .skip ;Branch if not Haste LDY.b #!haste ;ATB multiplier = 90 if hasted .skip TYA STA $3ADD,X ;save the ATB multiplier PHA ;Check if monster or character CPX #$08 BCC .character ;For monsters: Multiply ATB multiplier by 1.5 LSR CLC ADC $01,S STA $01,S ;For monsters: add 20 Speed LDA #$14 CLC BRA .addSpeed .character LDA #!bonus ;Universal Speed bonus ;Add 51 to Speed .addSpeed ADC $3B19,X ;Speed XBA ;Speed + Bonus in top byte of Accumulator ;Multiply by Slow/Normal/Haste constant PLA ;bottom byte of A is now Slow/Normal/Haste Constant JSR $4781 ;Let C be the Slow/Normal/Haste constant, equal to ; 60, 75, or 90, respectively. ; for characters and enemies: ; A = (Speed + 51) * C REP #$20 ;Divide by 16 LSR LSR LSR LSR ;A = A / 16 ;Result = (Speed + 51) * ATB multiplier / 16 STA $3AC8,X ;Save as amount by which to increase ATB timer. PLP NOP #2 ;2 bytes padding RTS print bytes Edited June 20, 2017 by seibaby Share this post Link to post Share on other sites