Merge pull request #1 from pret/master

Sync upstream
This commit is contained in:
Ashley Coleman
2020-11-11 15:46:56 -08:00
committed by GitHub
2 changed files with 291 additions and 316 deletions
+286 -286
View File
File diff suppressed because it is too large Load Diff
+5 -30
View File
@@ -670,28 +670,17 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
s32 i; s32 i;
struct MusicPlayerTrack *track; struct MusicPlayerTrack *track;
u16 fadeOV; u16 fadeOV;
#ifdef NONMATCHING
u16 mask;
#else
register u16 mask asm("r2");
#endif // NONMATCHING
if (mplayInfo->fadeOI == 0) if (mplayInfo->fadeOI == 0)
return; return;
if (--mplayInfo->fadeOC != 0)
mplayInfo->fadeOC--;
mask = 0xFFFF;
if (mplayInfo->fadeOC != 0)
return; return;
mplayInfo->fadeOC = mplayInfo->fadeOI; mplayInfo->fadeOC = mplayInfo->fadeOI;
if (mplayInfo->fadeOV & FADE_IN) if (mplayInfo->fadeOV & FADE_IN)
{ {
mplayInfo->fadeOV += (4 << FADE_VOL_SHIFT); if ((u16)(mplayInfo->fadeOV += (4 << FADE_VOL_SHIFT)) >= (64 << FADE_VOL_SHIFT))
if ((u16)(mplayInfo->fadeOV & mask) >= (64 << FADE_VOL_SHIFT))
{ {
mplayInfo->fadeOV = (64 << FADE_VOL_SHIFT); mplayInfo->fadeOV = (64 << FADE_VOL_SHIFT);
mplayInfo->fadeOI = 0; mplayInfo->fadeOI = 0;
@@ -699,14 +688,9 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
} }
else else
{ {
mplayInfo->fadeOV -= (4 << FADE_VOL_SHIFT); if ((s16)(mplayInfo->fadeOV -= (4 << FADE_VOL_SHIFT)) <= 0)
if ((s16)(mplayInfo->fadeOV & mask) <= 0)
{ {
i = mplayInfo->trackCount; for (i = mplayInfo->trackCount, track = mplayInfo->tracks; i > 0; i--, track++)
track = mplayInfo->tracks;
while (i > 0)
{ {
u32 val; u32 val;
@@ -718,9 +702,6 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
if (!val) if (!val)
track->flags = 0; track->flags = 0;
i--;
track++;
} }
if (mplayInfo->fadeOV & TEMPORARY_FADE) if (mplayInfo->fadeOV & TEMPORARY_FADE)
@@ -733,10 +714,7 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
} }
} }
i = mplayInfo->trackCount; for (i = mplayInfo->trackCount, track = mplayInfo->tracks; i > 0; i--, track++)
track = mplayInfo->tracks;
while (i > 0)
{ {
if (track->flags & MPT_FLG_EXIST) if (track->flags & MPT_FLG_EXIST)
{ {
@@ -745,9 +723,6 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
track->volX = (fadeOV >> FADE_VOL_SHIFT); track->volX = (fadeOV >> FADE_VOL_SHIFT);
track->flags |= MPT_FLG_VOLCHG; track->flags |= MPT_FLG_VOLCHG;
} }
i--;
track++;
} }
} }