mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-26 23:36:37 -04:00
mikmod: Upgrade mikmod core from v3.2.0 to v3.3.11
* Get rid of the non-functional GT2 loader * Add the UMX loader * Add HQ mixer routines (and make it configurable) * Allow samplerate to be configured at run/playtime * Support >64KHz mixing/playback * Correctly restore non-boost status (The diff to upstream is much smaller now too!) Change-Id: Iaa4ac901ba9cd4123bb225656976e78271353a72
This commit is contained in:
parent
8c7780bafc
commit
b4e70422a3
43 changed files with 5072 additions and 2802 deletions
|
|
@ -6,12 +6,12 @@
|
|||
it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Library General Public License for more details.
|
||||
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
/*==============================================================================
|
||||
|
||||
$Id: load_stx.c,v 1.3 2005/04/07 19:57:38 realtech Exp $
|
||||
$Id$
|
||||
|
||||
STMIK 0.2 (STX) module loader
|
||||
|
||||
|
|
@ -114,13 +114,14 @@ static int STX_Test(void)
|
|||
UBYTE id[8];
|
||||
int t;
|
||||
|
||||
memset(id,0,8);
|
||||
_mm_fseek(modreader,0x3C,SEEK_SET);
|
||||
if(!_mm_read_UBYTES(id,4,modreader)) return 0;
|
||||
if(memcmp(id,"SCRM",4)) return 0;
|
||||
|
||||
_mm_fseek(modreader,0x14,SEEK_SET);
|
||||
if(!_mm_read_UBYTES(id,8,modreader)) return 0;
|
||||
|
||||
|
||||
for(t=0;t<STM_NTRACKERS;t++)
|
||||
if(!memcmp(id,STM_Signatures[t],8)) return 1;
|
||||
|
||||
|
|
@ -143,6 +144,10 @@ static void STX_Cleanup(void)
|
|||
MikMod_free(paraptr);
|
||||
MikMod_free(poslookup);
|
||||
MikMod_free(mh);
|
||||
stxbuf=NULL;
|
||||
paraptr=NULL;
|
||||
poslookup=NULL;
|
||||
mh=NULL;
|
||||
}
|
||||
|
||||
static int STX_ReadPattern(void)
|
||||
|
|
@ -297,6 +302,11 @@ static int STX_Load(int curious)
|
|||
_mm_errno = MMERR_LOADING_HEADER;
|
||||
return 0;
|
||||
}
|
||||
if(mh->ordnum > 256 || !mh->insnum || mh->insnum > 256 ||
|
||||
mh->patnum > 254 || !mh->patnum) {
|
||||
_mm_errno = MMERR_NOT_A_MODULE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* set module variables */
|
||||
of.songname = DupStr(mh->songname,20,1);
|
||||
|
|
@ -323,10 +333,10 @@ static int STX_Load(int curious)
|
|||
version=_mm_read_I_UWORD(modreader);
|
||||
if(version==mh->patsize) {
|
||||
version = 0x10;
|
||||
of.modtype = StrDup("STMIK 0.2 (STM2STX 1.0)");
|
||||
of.modtype = MikMod_strdup("STMIK 0.2 (STM2STX 1.0)");
|
||||
} else {
|
||||
version = 0x11;
|
||||
of.modtype = StrDup("STMIK 0.2 (STM2STX 1.1)");
|
||||
of.modtype = MikMod_strdup("STMIK 0.2 (STM2STX 1.1)");
|
||||
}
|
||||
|
||||
/* read the order data */
|
||||
|
|
@ -343,7 +353,7 @@ static int STX_Load(int curious)
|
|||
if(order==255) order=LAST_PATTERN;
|
||||
of.positions[of.numpos]=order;
|
||||
poslookup[t]=of.numpos; /* bug fix for freaky S3Ms */
|
||||
if(of.positions[t]<254) of.numpos++;
|
||||
if(of.positions[t]<254) of.numpos++;
|
||||
else
|
||||
/* special end of song pattern */
|
||||
if((order==LAST_PATTERN)&&(!curious)) break;
|
||||
|
|
@ -389,7 +399,7 @@ static int STX_Load(int curious)
|
|||
q->loopstart = s.loopbeg;
|
||||
q->loopend = s.loopend;
|
||||
q->volume = s.volume;
|
||||
q->seekpos = (((long)s.memsegh)<<16|s.memsegl)<<4;
|
||||
q->seekpos = (((ULONG)s.memsegh)<<16|s.memsegl)<<4;
|
||||
q->flags |= SF_SIGNED;
|
||||
|
||||
if(s.flags&1) q->flags |= SF_LOOP;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue