# HG changeset patch # User Matti Hamalainen # Date 1425534729 -7200 # Node ID bc7473c0b9ce9847dc828c11f02d8036fecae9cc # Parent ef5a9c51569cb54c5233132bab8d80871d3c8b3d Assume that sample type 3 is basically misinterpretation of the field as a bitfield, and accept that has bidi-loop value in the XM loader. diff -r ef5a9c51569c -r bc7473c0b9ce minijss/jloadxm.c --- a/minijss/jloadxm.c Thu Mar 05 07:49:33 2015 +0200 +++ b/minijss/jloadxm.c Thu Mar 05 07:52:09 2015 +0200 @@ -353,12 +353,11 @@ { case 0: inst->flags = 0; break; case 1: inst->flags = jsfLooped; break; - case 2: inst->flags = jsfLooped | jsfBiDi; break; default: - inst->flags = 0; - JSSWARNING(DMERR_INVALID_DATA, DMERR_INVALID_DATA, - "Samp #%d/%d: Invalid sample type 0x%x\n", - ninst, nsample, xmS.type); + // Basically 2 is the value for bidi-loop, and + // 3 is undefined, but some module writers might've + // assumed that this is a bit-field, e.g. 1 | 2 = 3 + inst->flags = jsfLooped | jsfBiDi; break; break; }