Files
libxmp/test-dev/data/reverse_mmd3.med
AliceLR 2e68d6b2bf Fix reverse sustain loop release bug, add IT effect S9F support.
When a bidirectional sustain loop in reverse is released, the reverse
state should be canceled unless the forward loop is also bidirectional.
This bug was preventing the OpenMPT SusAfterLoop.it test from working.

Prior to this fix, the voice would instead stop playing and generate
very negative voice position values due a separate bug, which was the
lack of reverse handling for non-bidirectional samples. This would
eventually cause undefined behavior due to invalid double to integer
conversion. The easiest way to verify I fixed this second bug was to
just implement the Modplug S9F Play Reverse IT effect (also support
for XM, MED, and partially DBM; no DIGI or ULT currently).

In addition to adding a test for SusAfterLoop.it, I added a separate
regression test for the reverse effect, particularly its interactions
with IT sample loops.
2022-01-26 01:56:49 -07:00

7.5 KiB