From b34fcd602a2813fe239ee728cd3242bd17cdeac6 Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Thu, 8 Oct 2026 15:03:10 -0400 Subject: [PATCH] mikmod: Update to libmikmod 3.3.14 Fixes several loader issues Change-Id: Iaa5136bc6da85ba846d0dd38bfdb0ed610200147 --- apps/plugins/mikmod/README.rockbox | 4 +-- apps/plugins/mikmod/load_amf.c | 9 +++++- apps/plugins/mikmod/load_dsm.c | 8 ++++- apps/plugins/mikmod/load_imf.c | 30 ------------------- apps/plugins/mikmod/load_it.c | 41 ++------------------------ apps/plugins/mikmod/load_okt.c | 7 ++++- apps/plugins/mikmod/load_ult.c | 12 ++++++-- apps/plugins/mikmod/load_uni.c | 34 ++++----------------- apps/plugins/mikmod/load_xm.c | 23 --------------- apps/plugins/mikmod/mdreg.c | 6 ++++ apps/plugins/mikmod/mikmod.h | 7 +++-- apps/plugins/mikmod/mikmod_internals.h | 10 +++++-- apps/plugins/mikmod/mmerror.c | 4 +-- apps/plugins/mikmod/virtch_common.c | 22 -------------- 14 files changed, 62 insertions(+), 155 deletions(-) diff --git a/apps/plugins/mikmod/README.rockbox b/apps/plugins/mikmod/README.rockbox index 22f17b7b41..2e0cc923ab 100644 --- a/apps/plugins/mikmod/README.rockbox +++ b/apps/plugins/mikmod/README.rockbox @@ -1,7 +1,7 @@ mikmod (https://mikmod.sourceforge.net/) -Based on upstream commit 72424e1bebab470fbf8a2914dcd7903b742205e6 -corresponding to mikmod 3.2.9 / libmikmod 3.3.12 +Based on upstream commit 0c6c2f7f8fb8dd6954ab0407b400e9646b9c2cf0 +corresponding to pre mikmod 3.2.10 / libmikmod 3.3.14 Heavily customized for rockbox use: diff --git a/apps/plugins/mikmod/load_amf.c b/apps/plugins/mikmod/load_amf.c index 7d25430aac..aa7db9a5a9 100644 --- a/apps/plugins/mikmod/load_amf.c +++ b/apps/plugins/mikmod/load_amf.c @@ -424,8 +424,15 @@ static int AMF_Load(int curious) if(mh->version>=11) { memset(mh->panpos,0,32); _mm_read_SBYTES(mh->panpos,(mh->version>=13)?32:16,modreader); - } else if(mh->version>=9) + } else if(mh->version>=9) { _mm_read_UBYTES(channel_remap,16,modreader); + for(t = 0; t < 16 && t < mh->numchannels; t++) { + if(channel_remap[t] >= mh->numchannels) { + _mm_errno=MMERR_NOT_A_MODULE; + return 0; + } + } + } if (mh->version>=13) { mh->songbpm=_mm_read_UBYTE(modreader); diff --git a/apps/plugins/mikmod/load_dsm.c b/apps/plugins/mikmod/load_dsm.c index 97d54f429e..da8024f10d 100644 --- a/apps/plugins/mikmod/load_dsm.c +++ b/apps/plugins/mikmod/load_dsm.c @@ -238,6 +238,7 @@ static int DSM_Load(int curious) DSMINST s; SAMPLE *q; int cursmp=0,curpat=0,track=0; + unsigned int numtrk; (void)curious; blocklp=0; @@ -270,7 +271,12 @@ static int DSM_Load(int curious) of.modtype=MikMod_strdup(DSM_Version); of.numchn=mh->numtrk; of.numpat=mh->numpat; - of.numtrk=of.numchn*of.numpat; + numtrk=of.numchn*of.numpat; + if(of.numchn>DSM_MAXCHAN || numtrk>65535) { + _mm_errno = MMERR_LOADING_HEADER; + return 0; + } + of.numtrk=(UWORD)numtrk; of.songname=DupStr(mh->songname,28,1); /* make a cstr of songname */ of.reppos=0; of.flags |= UF_PANNING; diff --git a/apps/plugins/mikmod/load_imf.c b/apps/plugins/mikmod/load_imf.c index b67e3ac828..f580aac660 100644 --- a/apps/plugins/mikmod/load_imf.c +++ b/apps/plugins/mikmod/load_imf.c @@ -541,7 +541,6 @@ static int IMF_Load(int curious) _mm_read_I_UWORDS(ih.panenv,IMFENVCNT,modreader); _mm_read_I_UWORDS(ih.pitenv,IMFENVCNT,modreader); -#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C #define IMF_FinishLoadingEnvelope(name) \ ih. name##pts=_mm_read_UBYTE(modreader); \ ih. name##sus=_mm_read_UBYTE(modreader); \ @@ -551,17 +550,6 @@ static int IMF_Load(int curious) _mm_skip_BYTE(modreader); \ _mm_skip_BYTE(modreader); \ _mm_skip_BYTE(modreader) -#else -#define IMF_FinishLoadingEnvelope(name) \ - ih. name/**/pts=_mm_read_UBYTE(modreader); \ - ih. name/**/sus=_mm_read_UBYTE(modreader); \ - ih. name/**/beg=_mm_read_UBYTE(modreader); \ - ih. name/**/end=_mm_read_UBYTE(modreader); \ - ih. name/**/flg=_mm_read_UBYTE(modreader); \ - _mm_skip_BYTE(modreader); \ - _mm_skip_BYTE(modreader); \ - _mm_skip_BYTE(modreader) -#endif IMF_FinishLoadingEnvelope(vol); IMF_FinishLoadingEnvelope(pan); @@ -594,7 +582,6 @@ static int IMF_Load(int curious) d->samplenumber[u]=ih.what[u]>ih.numsmp?0xffff:ih.what[u]+of.numsmp; d->volfade=ih.volfade; -#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C #define IMF_ProcessEnvelope(name) \ for (u = 0; u < (IMFENVCNT >> 1); u++) { \ d-> name##env[u].pos = ih. name##env[u << 1]; \ @@ -610,23 +597,6 @@ static int IMF_Load(int curious) \ if ((d-> name##flg&EF_ON)&&(d-> name##pts<2)) \ d-> name##flg&=~EF_ON -#else -#define IMF_ProcessEnvelope(name) \ - for (u = 0; u < (IMFENVCNT >> 1); u++) { \ - d-> name/**/env[u].pos = ih. name/**/env[u << 1]; \ - d-> name/**/env[u].val = ih. name/**/env[(u << 1)+ 1]; \ - } \ - if (ih. name/**/flg&1) d-> name/**/flg|=EF_ON; \ - if (ih. name/**/flg&2) d-> name/**/flg|=EF_SUSTAIN; \ - if (ih. name/**/flg&4) d-> name/**/flg|=EF_LOOP; \ - d-> name/**/susbeg=d-> name/**/susend=ih. name/**/sus; \ - d-> name/**/beg=ih. name/**/beg; \ - d-> name/**/end=ih. name/**/end; \ - d-> name/**/pts=ih. name/**/pts; \ - \ - if ((d-> name/**/flg&EF_ON)&&(d-> name/**/pts<2)) \ - d-> name/**/flg&=~EF_ON -#endif IMF_ProcessEnvelope(vol); IMF_ProcessEnvelope(pan); diff --git a/apps/plugins/mikmod/load_it.c b/apps/plugins/mikmod/load_it.c index 4442c209c0..7fa2495db5 100644 --- a/apps/plugins/mikmod/load_it.c +++ b/apps/plugins/mikmod/load_it.c @@ -194,7 +194,7 @@ static int IT_Init(void) { if(!(mh=(ITHEADER*)MikMod_malloc(sizeof(ITHEADER)))) return 0; if(!(poslookup=(UBYTE*)MikMod_malloc(256*sizeof(UBYTE)))) return 0; - if(!(itpat=(ITNOTE*)MikMod_malloc(200*64*sizeof(ITNOTE)))) return 0; + if(!(itpat=(ITNOTE*)MikMod_malloc(256*64*sizeof(ITNOTE)))) return 0; if(!(mask=(UBYTE*)MikMod_calloc(64,sizeof(UBYTE)))) return 0; if(!(last=(ITNOTE*)MikMod_calloc(64,sizeof(ITNOTE)))) return 0; @@ -338,10 +338,10 @@ static int IT_ReadPattern(UWORD patrows) int row=0,flag,ch; unsigned int blah; ITNOTE *itt=itpat,dummy,*n,*l; - ITNOTE *ite=&itpat[200*64 -1]; + ITNOTE *ite=&itpat[256*64 -1]; UBYTE *m; - memset(itt,255,200*64*sizeof(ITNOTE)); + memset(itt,255,256*64*sizeof(ITNOTE)); do { if(_mm_eof(modreader)) { @@ -783,7 +783,6 @@ static int IT_Load(int curious) } } else { /* load IT 2xx volume, pan and pitch envelopes */ -#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C #define IT_LoadEnvelope(name,type) \ ih. name##flg =_mm_read_UBYTE(modreader); \ ih. name##pts =_mm_read_UBYTE(modreader); \ @@ -798,22 +797,6 @@ static int IT_Load(int curious) ih. name##tick[lp]=_mm_read_I_UWORD(modreader); \ } \ _mm_skip_BYTE(modreader) -#else -#define IT_LoadEnvelope(name,type) \ - ih. name/**/flg =_mm_read_UBYTE(modreader); \ - ih. name/**/pts =_mm_read_UBYTE(modreader); \ - if (ih. name/**/pts > ITENVCNT) \ - ih. name/**/pts = ITENVCNT; \ - ih. name/**/beg =_mm_read_UBYTE(modreader); \ - ih. name/**/end =_mm_read_UBYTE(modreader); \ - ih. name/**/susbeg=_mm_read_UBYTE(modreader); \ - ih. name/**/susend=_mm_read_UBYTE(modreader); \ - for(lp=0;lprpanvar = ih.rpanvar; } -#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C #define IT_ProcessEnvelope(name) \ if(ih. name##flg&1) d-> name##flg|=EF_ON; \ if(ih. name##flg&2) d-> name##flg|=EF_LOOP; \ @@ -891,23 +873,6 @@ static int IT_Load(int curious) \ if((d-> name##flg&EF_ON)&&(d-> name##pts<2)) \ d-> name##flg&=~EF_ON -#else -#define IT_ProcessEnvelope(name) \ - if(ih. name/**/flg&1) d-> name/**/flg|=EF_ON; \ - if(ih. name/**/flg&2) d-> name/**/flg|=EF_LOOP; \ - if(ih. name/**/flg&4) d-> name/**/flg|=EF_SUSTAIN; \ - d-> name/**/pts=ih. name/**/pts; \ - d-> name/**/beg=ih. name/**/beg; \ - d-> name/**/end=ih. name/**/end; \ - d-> name/**/susbeg=ih. name/**/susbeg; \ - d-> name/**/susend=ih. name/**/susend; \ - \ - for(u=0;u name/**/env[u].pos=ih. name/**/tick[u]; \ - \ - if((d-> name/**/flg&EF_ON)&&(d-> name/**/pts<2)) \ - d-> name/**/flg&=~EF_ON -#endif IT_ProcessEnvelope(vol); diff --git a/apps/plugins/mikmod/load_okt.c b/apps/plugins/mikmod/load_okt.c index af3b7c53de..516282e7b0 100644 --- a/apps/plugins/mikmod/load_okt.c +++ b/apps/plugins/mikmod/load_okt.c @@ -282,7 +282,12 @@ static int OKT_doPBOD(int patnum) int u; if (!patnum) { - of.numtrk = of.numpat * of.numchn; + const unsigned int numtrk = of.numpat * of.numchn; + if (numtrk > 65535) { + _mm_errno = MMERR_LOADING_PATTERN; + return 0; + } + of.numtrk = (UWORD)numtrk; if (!AllocTracks() || !AllocPatterns()) return 0; diff --git a/apps/plugins/mikmod/load_ult.c b/apps/plugins/mikmod/load_ult.c index 58c66d16aa..0c695659a7 100644 --- a/apps/plugins/mikmod/load_ult.c +++ b/apps/plugins/mikmod/load_ult.c @@ -125,6 +125,7 @@ static UBYTE ReadUltEvent(ULTEVENT* event) static int ULT_Load(int curious) { int t,u,tracks=0; + unsigned int numtrk; SAMPLE *q; ULTSAMPLE s; ULTHEADER mh; @@ -211,9 +212,14 @@ static int ULT_Load(int curious) noc=_mm_read_UBYTE(modreader); RBnop=_mm_read_UBYTE(modreader); - of.numchn=++noc; - of.numpat=++RBnop; - of.numtrk=of.numchn*of.numpat; + of.numchn=noc+1; + of.numpat=RBnop+1; + numtrk=of.numchn*of.numpat; + if (numtrk>65535) { + _mm_errno = MMERR_LOADING_HEADER; + return 0; + } + of.numtrk=(UWORD)numtrk; for(t=0;t<256;t++) { if(of.positions[t]==255) { diff --git a/apps/plugins/mikmod/load_uni.c b/apps/plugins/mikmod/load_uni.c index 3a911053f9..fdd689b183 100644 --- a/apps/plugins/mikmod/load_uni.c +++ b/apps/plugins/mikmod/load_uni.c @@ -307,7 +307,6 @@ static int loadinstr6(void) i->rpanvar = _mm_read_UBYTE(modreader); i->volfade = _mm_read_M_UWORD(modreader); -#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C #define UNI_LoadEnvelope6(name) \ i-> name##flg=_mm_read_UBYTE(modreader); \ i-> name##pts=_mm_read_UBYTE(modreader); \ @@ -315,23 +314,11 @@ static int loadinstr6(void) i-> name##susend=_mm_read_UBYTE(modreader); \ i-> name##beg=_mm_read_UBYTE(modreader); \ i-> name##end=_mm_read_UBYTE(modreader); \ + if (i-> name##pts > ENVPOINTS) goto fail; \ for(w=0;w<(universion>=0x100?32:i-> name##pts);w++) { \ i-> name##env[w].pos=_mm_read_M_SWORD(modreader); \ i-> name##env[w].val=_mm_read_M_SWORD(modreader); \ } -#else -#define UNI_LoadEnvelope6(name) \ - i-> name/**/flg=_mm_read_UBYTE(modreader); \ - i-> name/**/pts=_mm_read_UBYTE(modreader); \ - i-> name/**/susbeg=_mm_read_UBYTE(modreader); \ - i-> name/**/susend=_mm_read_UBYTE(modreader); \ - i-> name/**/beg=_mm_read_UBYTE(modreader); \ - i-> name/**/end=_mm_read_UBYTE(modreader); \ - for (w=0;w<(universion>=0x100?32:i-> name/**/pts);w++) { \ - i-> name/**/env[w].pos=_mm_read_M_SWORD(modreader); \ - i-> name/**/env[w].val=_mm_read_M_SWORD(modreader); \ - } -#endif UNI_LoadEnvelope6(vol); UNI_LoadEnvelope6(pan); @@ -348,6 +335,7 @@ static int loadinstr6(void) i->insname=readstring(); if(_mm_eof(modreader)) { + fail: _mm_errno = MMERR_LOADING_SAMPLEINFO; return 0; } @@ -372,7 +360,6 @@ static int loadinstr5(void) for(u=0;u<96;u++) i->samplenumber[u]=of.numsmp+_mm_read_UBYTE(modreader); -#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C #define UNI_LoadEnvelope5(name) \ i-> name##flg=_mm_read_UBYTE(modreader); \ i-> name##pts=_mm_read_UBYTE(modreader); \ @@ -384,19 +371,6 @@ static int loadinstr5(void) i-> name##env[u].pos=_mm_read_I_SWORD(modreader); \ i-> name##env[u].val=_mm_read_I_SWORD(modreader); \ } -#else -#define UNI_LoadEnvelope5(name) \ - i-> name/**/flg=_mm_read_UBYTE(modreader); \ - i-> name/**/pts=_mm_read_UBYTE(modreader); \ - i-> name/**/susbeg=_mm_read_UBYTE(modreader); \ - i-> name/**/susend=i-> name/**/susbeg; \ - i-> name/**/beg=_mm_read_UBYTE(modreader); \ - i-> name/**/end=_mm_read_UBYTE(modreader); \ - for(u=0;u<12;u++) { \ - i-> name/**/env[u].pos=_mm_read_I_SWORD(modreader); \ - i-> name/**/env[u].val=_mm_read_I_SWORD(modreader); \ - } -#endif UNI_LoadEnvelope5(vol); UNI_LoadEnvelope5(pan); @@ -619,6 +593,10 @@ static int UNI_Load(int curious) /* positions */ if(!AllocPositions(of.numpos)) return 0; if(universion>=6) { + if(mh.numchn>UF_MAXCHAN) { + _mm_errno=MMERR_LOADING_HEADER; + return 0; + } if(universion>=0x100) _mm_read_M_UWORDS(of.positions,of.numpos,modreader); else diff --git a/apps/plugins/mikmod/load_xm.c b/apps/plugins/mikmod/load_xm.c index 3dedfffbe5..13208d8698 100644 --- a/apps/plugins/mikmod/load_xm.c +++ b/apps/plugins/mikmod/load_xm.c @@ -533,7 +533,6 @@ static int LoadInstruments(void) d->samplenumber[u]=pth.what[u]+of.numsmp; d->volfade = pth.volfade; -#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C #define XM_ProcessEnvelope(name) \ for (u = 0; u < XMENVPTS; u++) { \ d-> name##env[u].pos = pth. name##env[u << 1]; \ @@ -553,28 +552,6 @@ static int LoadInstruments(void) \ if ((d-> name##flg&EF_ON)&&(d-> name##pts<2)) \ d-> name##flg&=~EF_ON -#else -#define XM_ProcessEnvelope(name) \ - for (u = 0; u < XMENVPTS; u++) { \ - d-> name/**/env[u].pos = pth. name/**/env[u << 1]; \ - d-> name/**/env[u].val = pth. name/**/env[(u << 1)+ 1]; \ - } \ - if (pth. name/**/flg&1) d-> name/**/flg|=EF_ON; \ - if (pth. name/**/flg&2) d-> name/**/flg|=EF_SUSTAIN; \ - if (pth. name/**/flg&4) d-> name/**/flg|=EF_LOOP; \ - d-> name/**/susbeg=d-> name/**/susend= \ - pth. name/**/sus; \ - d-> name/**/beg=pth. name/**/beg; \ - d-> name/**/end=pth. name/**/end; \ - d-> name/**/pts=pth. name/**/pts; \ - \ - /* scale envelope */ \ - for (p = 0; p < XMENVPTS; p++) \ - d-> name/**/env[p].val<<=2; \ - \ - if ((d-> name/**/flg&EF_ON)&&(d-> name/**/pts<2)) \ - d-> name/**/flg&=~EF_ON -#endif XM_ProcessEnvelope(vol); XM_ProcessEnvelope(pan); diff --git a/apps/plugins/mikmod/mdreg.c b/apps/plugins/mikmod/mdreg.c index ff5d803000..b0ec4cf2fd 100644 --- a/apps/plugins/mikmod/mdreg.c +++ b/apps/plugins/mikmod/mdreg.c @@ -93,6 +93,9 @@ static void _mm_registeralldrivers(void) #ifdef DRV_OS2 _mm_registerdriver(&drv_os2); #endif +#ifdef DRV_WASAPI + _mm_registerdriver(&drv_wasapi); +#endif #ifdef DRV_XAUDIO2 _mm_registerdriver(&drv_xaudio2); #endif @@ -123,6 +126,9 @@ static void _mm_registeralldrivers(void) #ifdef DRV_N64 _mm_registerdriver(&drv_n64); #endif +#ifdef DRV_VITA + _mm_registerdriver(&drv_vita); +#endif /* dos drivers - wss first, since some cards emulate sb */ #ifdef DRV_WSS diff --git a/apps/plugins/mikmod/mikmod.h b/apps/plugins/mikmod/mikmod.h index 749b535bdc..343ca5073b 100644 --- a/apps/plugins/mikmod/mikmod.h +++ b/apps/plugins/mikmod/mikmod.h @@ -145,13 +145,13 @@ typedef unsigned short int UWORD; #if defined(_LP64) || defined(__LP64__) || defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(__powerpc64__) /* 64 bit architectures: */ typedef signed int SLONG; -#if !defined(_MIKMOD_AMIGA) && !defined(WIN32) +#if !(defined(_WIN32) || defined(_MIKMOD_AMIGA)) typedef unsigned int ULONG; #endif #else /* 32 bit architectures: */ typedef signed long int SLONG; -#if !(defined(_MIKMOD_OS2) || defined(_MIKMOD_AMIGA)) +#if !(defined(_MIKMOD_OS2) || defined(_MIKMOD_WIN32) || defined(_MIKMOD_AMIGA)) typedef unsigned long int ULONG; #endif #endif @@ -293,6 +293,7 @@ enum { MMERR_MAX }; +#define MMERR_WASAPI_SAMPLERATE MMERR_SGI_SPEED /* * ========== Error handling @@ -826,6 +827,7 @@ MIKMODAPI extern struct MDRIVER drv_dart; /* OS/2 Direct Audio RealTime */ MIKMODAPI extern struct MDRIVER drv_os2; /* OS/2 MMPM/2 */ MIKMODAPI extern struct MDRIVER drv_ds; /* Win32 DirectSound driver */ +MIKMODAPI extern struct MDRIVER drv_wasapi; /* Win32 WASAPI driver */ MIKMODAPI extern struct MDRIVER drv_xaudio2;/* Win32 XAudio2 driver */ MIKMODAPI extern struct MDRIVER drv_win; /* Win32 multimedia API driver */ @@ -836,6 +838,7 @@ MIKMODAPI extern struct MDRIVER drv_dc; /* Dreamcast driver */ MIKMODAPI extern struct MDRIVER drv_gp32; /* GP32 Sound driver */ MIKMODAPI extern struct MDRIVER drv_psp; /* PlayStation Portable driver */ MIKMODAPI extern struct MDRIVER drv_n64; /* Nintendo64 driver */ +MIKMODAPI extern struct MDRIVER drv_vita; /* PlayStation Vita driver */ MIKMODAPI extern struct MDRIVER drv_wss; /* DOS WSS driver */ MIKMODAPI extern struct MDRIVER drv_sb; /* DOS S/B driver */ diff --git a/apps/plugins/mikmod/mikmod_internals.h b/apps/plugins/mikmod/mikmod_internals.h index f7ca8a1741..0f1d9613a4 100644 --- a/apps/plugins/mikmod/mikmod_internals.h +++ b/apps/plugins/mikmod/mikmod_internals.h @@ -33,6 +33,14 @@ extern "C" { #include +#if defined(_MSC_VER) +#pragma warning(disable:4389) /* signed/unsigned mismatch ( <, <=, >, >= ) */ +#pragma warning(disable:4018) /* signed/unsigned mismatch ( ==, != ) */ +#pragma warning(disable:4761) /* integral size mismatch in argument; conversion supplied (for MSVC6 and older.) */ +#pragma warning(disable:4244) /* conversion from 'type' to 'int', possible loss of data */ +#pragma warning(disable:4267) /* conversion from 'size_t' to 'type', possible loss of data */ +#endif + #if defined(_MSC_VER) && !defined(__cplusplus) && !defined(HAVE_CONFIG_H) #define inline __inline #endif @@ -902,5 +910,3 @@ void MikMod_afree(void *); /* frees if ptr != NULL */ #endif #endif /* _MIKMOD_INTERNALS_H */ - -/* ex:set ts=4: */ diff --git a/apps/plugins/mikmod/mmerror.c b/apps/plugins/mikmod/mmerror.c index ee7340ee27..99c4575022 100644 --- a/apps/plugins/mikmod/mmerror.c +++ b/apps/plugins/mikmod/mmerror.c @@ -132,14 +132,14 @@ static const char *_mm_errmsg[MMERR_MAX+1] = #endif /* SGI driver errors */ -#ifdef DRV_SGI "Unsupported sample rate", +#ifdef DRV_SGI "Hardware does not support 16 bit sound", "Hardware does not support 8 bit sound", "Hardware does not support stereo sound", "Hardware does not support mono sound", #else - _mmerr_invalid, _mmerr_invalid, _mmerr_invalid, + _mmerr_invalid, _mmerr_invalid, _mmerr_invalid, _mmerr_invalid, #endif diff --git a/apps/plugins/mikmod/virtch_common.c b/apps/plugins/mikmod/virtch_common.c index 70cd9417b2..dd665a1504 100644 --- a/apps/plugins/mikmod/virtch_common.c +++ b/apps/plugins/mikmod/virtch_common.c @@ -107,7 +107,6 @@ static int (*VC_VoiceStopped_ptr)(UBYTE); static SLONG (*VC_VoiceGetPosition_ptr)(UBYTE); static ULONG (*VC_VoiceRealVolume_ptr)(UBYTE); -#if defined __STDC__ || defined _MSC_VER || defined __WATCOMC__ || defined MPW_C #define VC_PROC0(suffix) \ MIKMODAPI void VC_##suffix (void) { VC_##suffix##_ptr(); } @@ -126,27 +125,6 @@ MIKMODAPI void VC_##suffix (typ1 a,typ2 b) { VC_##suffix##_ptr(a,b); } #define VC_FUNC2(suffix,ret,typ1,typ2) \ MIKMODAPI ret VC_##suffix (typ1 a,typ2 b) { return VC_##suffix##_ptr(a,b); } -#else - -#define VC_PROC0(suffix) \ -MIKMODAPI void VC_/**/suffix (void) { VC_/**/suffix/**/_ptr(); } - -#define VC_FUNC0(suffix,ret) \ -MIKMODAPI ret VC_/**/suffix (void) { return VC_/**/suffix/**/_ptr(); } - -#define VC_PROC1(suffix,typ1) \ -MIKMODAPI void VC_/**/suffix (typ1 a) { VC_/**/suffix/**/_ptr(a); } - -#define VC_FUNC1(suffix,ret,typ1) \ -MIKMODAPI ret VC_/**/suffix (typ1 a) { return VC_/**/suffix/**/_ptr(a); } - -#define VC_PROC2(suffix,typ1,typ2) \ -MIKMODAPI void VC_/**/suffix (typ1 a,typ2 b) { VC_/**/suffix/**/_ptr(a,b); } - -#define VC_FUNC2(suffix,ret,typ1,typ2) \ -MIKMODAPI ret VC_/**/suffix (typ1 a,typ2 b) { return VC_/**/suffix/**/_ptr(a,b); } -#endif - VC_FUNC0(Init,int) VC_PROC0(Exit) VC_FUNC0(SetNumVoices,int)