Updated playptmod and st3play

CQTexperiment
Chris Moeller 2015-03-26 17:48:57 -07:00
parent 5677527ffd
commit 4a0382d874
2 changed files with 8 additions and 5 deletions

View File

@ -10,6 +10,7 @@
** - Proper tracker handling for non-ST3 effects ** - Proper tracker handling for non-ST3 effects
** - Panbrello (Yxy) didn't set the panning at all (heh) ** - Panbrello (Yxy) didn't set the panning at all (heh)
** - Decodes ADPCM samples at load time instead of play time ** - Decodes ADPCM samples at load time instead of play time
** - Mxx (set cannel volume) didn't work correctly
** **
** C port of Scream Tracker 3's replayer, by 8bitbubsy (Olav Sørensen) ** C port of Scream Tracker 3's replayer, by 8bitbubsy (Olav Sørensen)
** using the original asm source codes by PSI (Sami Tammilehto) of Future Crew ** using the original asm source codes by PSI (Sami Tammilehto) of Future Crew
@ -2278,6 +2279,8 @@ static void s_chanvol(PLAYER *p, chn_t *ch) // NON-ST3
{ {
if (ch->info <= 0x40) if (ch->info <= 0x40)
ch->chanvol = ch->info; ch->chanvol = ch->info;
setvol(p, ch->channelnum, 0, 0);
} }
} }

View File

@ -1,7 +1,10 @@
/* /*
** - playptmod v1.22 - 14th of March 2015 - ** - playptmod v1.23 - 23rd of March 2015 -
** This is the foobar2000 version, with added code by kode54 ** This is the foobar2000 version, with added code by kode54
** **
** Changelog from 1.22:
** - Do sample swaps even if the new sample has a length of 0 (fixes "MOD.lsd ninja")
**
** Changelog from 1.21: ** Changelog from 1.21:
** - Only do portamentos if the voice has a period set (fixes first row of "MOD.cry of doom 3") ** - Only do portamentos if the voice has a period set (fixes first row of "MOD.cry of doom 3")
** **
@ -2656,10 +2659,7 @@ static void processChannel(player *p, mod_channel *ch)
{ {
s = &p->source->samples[ch->sample - 1]; s = &p->source->samples[ch->sample - 1];
if (s->length > 0)
mixerSwapChSource(p, ch->chanIndex, p->source->sampleData + s->offset, s->length, s->loopStart, s->loopLength, (s->attribute & 1) ? 2 : 1); mixerSwapChSource(p, ch->chanIndex, p->source->sampleData + s->offset, s->length, s->loopStart, s->loopLength, (s->attribute & 1) ? 2 : 1);
else
mixerSetChSource(p, ch->chanIndex, NULL, 0, 0, 0, 0, 0);
} }
} }
else if (p->tempFlags & TEMPFLAG_START) else if (p->tempFlags & TEMPFLAG_START)