Open Gumball2415 opened 1 year ago
hypothesis: stack overflow from too many effect state variables?
test module: the second frame on NSF export has corrupted effect state eternal guilt.zip
eternal guilt
exhibits bugs regarding missed delay handling.
in 0CC's implementation, it only handles frame transition missed delays.
in vanilla's implementation, it only handles row transition missed delays.
0CC causes delays longer than the row tick length to be excessively long, not reset upon a new row. vanilla causes command bytecodes following Gxx to be entirely ignored.
a previous fix in #156 replaced 0CC's implementation with FT 0.4.6's, but it has its own bugs as stated above.
On NSF export, a channel with 2 FX columns that has an active Axy command, duty cycle command, volume command, and pitch slide command will overload(?) the channel effects state and default back to duty cycle 0, volume F, and no effects.
TODO: create test module that exhibits this bug