Updated ft2play to v0.68 with a real fix instead of a stupid hack
This commit is contained in:
parent
e89bc870ad
commit
73d90aeeb2
1 changed files with 11 additions and 8 deletions
|
@ -1,6 +1,9 @@
|
||||||
/*
|
/*
|
||||||
** FT2PLAY v0.67 - 30th of September 2014
|
** FT2PLAY v0.68 - 7th of November 2014
|
||||||
** ======================================
|
** ====================================
|
||||||
|
**
|
||||||
|
** Changelog from v0.67:
|
||||||
|
** - Bug in GetNewNote() (cmd 390 would fail - "unreal2 scirreal mix.xm" fix)
|
||||||
**
|
**
|
||||||
** Changelog from v0.66:
|
** Changelog from v0.66:
|
||||||
** - Auto-vibrato was wrong on every type except for sine
|
** - Auto-vibrato was wrong on every type except for sine
|
||||||
|
@ -1267,7 +1270,7 @@ static inline void GetNewNote(PLAYER *pl, StmTyp *ch, TonTyp *p)
|
||||||
return; /* we have a note delay (ED1..EDF) */
|
return; /* we have a note delay (ED1..EDF) */
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p->Eff != 0x90) /* E90 is 'retrig' speed 0 */
|
if (!((p->EffTyp == 0x0E) && (p->Eff == 0x90))) /* E90 is 'retrig' speed 0 */
|
||||||
{
|
{
|
||||||
if ((ch->VolKolVol & 0xF0) == 0xF0) /* gxx */
|
if ((ch->VolKolVol & 0xF0) == 0xF0) /* gxx */
|
||||||
{
|
{
|
||||||
|
@ -1634,18 +1637,18 @@ static void TonePorta(PLAYER *p, StmTyp *ch)
|
||||||
if (ch->PortaDir > 1)
|
if (ch->PortaDir > 1)
|
||||||
{
|
{
|
||||||
ch->RealPeriod -= ch->PortaSpeed;
|
ch->RealPeriod -= ch->PortaSpeed;
|
||||||
if (ch->RealPeriod <= ch->WantPeriod)
|
if (ch->RealPeriod <= (int16_t)ch->WantPeriod)
|
||||||
{
|
{
|
||||||
ch->PortaDir = 0;
|
ch->PortaDir = 1;
|
||||||
ch->RealPeriod = ch->WantPeriod;
|
ch->RealPeriod = ch->WantPeriod;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ch->RealPeriod += ch->PortaSpeed;
|
ch->RealPeriod += ch->PortaSpeed;
|
||||||
if (ch->RealPeriod >= ch->WantPeriod)
|
if ((uint16_t)ch->RealPeriod >= ch->WantPeriod)
|
||||||
{
|
{
|
||||||
ch->PortaDir = 0;
|
ch->PortaDir = 1;
|
||||||
ch->RealPeriod = ch->WantPeriod;
|
ch->RealPeriod = ch->WantPeriod;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1840,7 +1843,7 @@ static inline void DoEffects(PLAYER *p, StmTyp *ch)
|
||||||
ch->Status |= IS_Period;
|
ch->Status |= IS_Period;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 2xx - period slide up */
|
/* 2xx - period slide down */
|
||||||
else if (ch->EffTyp == 2)
|
else if (ch->EffTyp == 2)
|
||||||
{
|
{
|
||||||
tmpEff = ch->Eff;
|
tmpEff = ch->Eff;
|
||||||
|
|
Loading…
Reference in a new issue