[test] Add OpenMPT ptoffset.mod test case

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
Fix Protracker offset effect bug emulation

Correctly emulate Protracker offset bug (according to the OpenMPT test case)
by adding an extra variable to hold the original value.

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
Play MODs created with Scream Tracker in ST3 mode

MOD fingerprinting for Scream Tracker 3 seems to be reasonably accurate,
so use the ST3 event reader in this case.

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
Use Protracker quirk for invloop and fx9 bug emulation

Create a quirk for all Protracker-specific features such as the invloop
effect and offset bug emulation. Also set this quirk for MODs created
with accurate editors such as OpenMPT.

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
[test] Use Protracker quirk in invloop test

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
Prevent errors caused by undefined O_BINARY macro

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
Merge branch 'master' of github.com:cmatsuoka/libxmp
Don't process invloop effect in lite player

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
Disable fine volume slide memory in MOD event decoder

Dennis Lindroos reports:

"I will definitely check it out over the weekend, but after i wrote to you
 about "Velvet Vision" and its fading out "too fast" i had to look at it,
 and i think i know what's happening.

 The fine volume slide EAx and EBx commands in Protracker DO NOT HAVE MEMORY,
 so EB0 should not decrease the volume at all.

 This module loops a series of EB0 EB1 EB0 EB0 EB1 commands and XMP fades
 out on every step but i'm sure this module was intended to fade out much
 slower!"

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
[test] Update Unic2 reference data

Remove fine volume slides with zero parameter.

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
Fix scan of IT pattern row delay

Vincent Voois' "The Snarfs" stopped in the first row because there's a
pattern row delay effect (SE1) in channel 31 and we play extra empty
rows before the actual events. When that pattern/row is also the module
loop point, xmp thinks the module looped over and stops replay. To fix
this, add the extra rows to the scan counter.

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>