亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? modeng.c

?? 這個是延伸mame的在wince平臺下的游戲模擬器的代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
static VOID OnSyncMark(LPTRACK lpTrack){    if (!Player.nFrame && Player.lpfnCallback)        Player.lpfnCallback(lpTrack->bParams, Player.nOrder, Player.nRow);}static VOID OnNothing(LPTRACK lpTrack){    /* does nothing, just avoid compiler warnings */    if (lpTrack != NULL) {    }}static VOID ExecNoteCmd(LPTRACK lpTrack){    static VOID (*CommandProcTable[36])(LPTRACK) =    {        OnArpeggio,             /* 0xy */        OnPortaUp,              /* 1xx */        OnPortaDown,            /* 2xx */        OnTonePorta,            /* 3xx */        OnVibrato,              /* 4xy */        OnToneAndSlide,         /* 5xy */        OnVibratoAndSlide,      /* 6xy */        OnTremolo,              /* 7xy */        OnSetPanning,           /* 8xx */        OnSampleOffset,         /* 9xx */        OnVolumeSlide,          /* Axy */        OnJumpPosition,         /* Bxx */        OnSetVolume,            /* Cxx */        OnPatternBreak,         /* Dxx */        OnExtraCommand,         /* Exy */        OnSetSpeed,             /* Fxx */        OnSetGlobalVolume,      /* Gxx */        OnGlobalVolumeSlide,    /* Hxy */        OnNothing,              /* Ixx */        OnNothing,              /* Jxx */        OnKeyOff,               /* Kxx */        OnSetEnvelope,          /* Lxx */        OnNothing,              /* Mxx */        OnNothing,              /* Nxx */        OnNothing,              /* Oxx */        OnPanningSlide,         /* Pxy */        OnNothing,              /* Qxx */        OnMultiRetrig,          /* Rxy */        OnNothing,              /* Sxx */        OnTremor,               /* Txy */        OnFineVibrato,          /* Uxy */        OnNothing,              /* Vxx */        OnNothing,              /* Wxx */        OnExtraFinePorta,       /* Xxy */        OnNothing,              /* Yxx */        OnSyncMark              /* Zxx */    };    if ((lpTrack->nCommand || lpTrack->bParams) && lpTrack->nCommand < 36) {        (*CommandProcTable[lpTrack->nCommand]) (lpTrack);    }}static VOID ExecVolumeCmd(LPTRACK lpTrack){    UINT nCommand;    nCommand = lpTrack->nVolumeCmd;    if (nCommand >= 0x10 && nCommand <= 0x50) {        /* set volume */        if (!Player.nFrame) {            lpTrack->nVolume = nCommand - 0x10;            lpTrack->nOutVolume = lpTrack->nVolume;            lpTrack->bControl |= AUDIO_CTRL_VOLUME;        }    }    else if (nCommand >= 0x60 && nCommand <= 0x6F) {        /* volume slide down */        if (Player.nFrame) {            lpTrack->nVolume -= LOPARAM(nCommand);            if (lpTrack->nVolume < AUDIO_MIN_VOLUME)                lpTrack->nVolume = AUDIO_MIN_VOLUME;            lpTrack->nOutVolume = lpTrack->nVolume;            lpTrack->bControl |= AUDIO_CTRL_VOLUME;        }    }    else if (nCommand >= 0x70 && nCommand <= 0x7F) {        /* volume slide up */        if (Player.nFrame) {            lpTrack->nVolume += LOPARAM(nCommand);            if (lpTrack->nVolume > AUDIO_MAX_VOLUME)                lpTrack->nVolume = AUDIO_MAX_VOLUME;            lpTrack->nOutVolume = lpTrack->nVolume;            lpTrack->bControl |= AUDIO_CTRL_VOLUME;        }    }    else if (nCommand >= 0x80 && nCommand <= 0x8F) {        /* fine volume slide down */        if (!Player.nFrame) {            lpTrack->nVolume -= LOPARAM(nCommand);            if (lpTrack->nVolume < AUDIO_MIN_VOLUME)                lpTrack->nVolume = AUDIO_MIN_VOLUME;            lpTrack->nOutVolume = lpTrack->nVolume;            lpTrack->bControl |= AUDIO_CTRL_VOLUME;        }    }    else if (nCommand >= 0x90 && nCommand <= 0x9F) {        /* fine volume slide up */        if (!Player.nFrame) {            lpTrack->nVolume += LOPARAM(nCommand);            if (lpTrack->nVolume > AUDIO_MAX_VOLUME)                lpTrack->nVolume = AUDIO_MAX_VOLUME;            lpTrack->nOutVolume = lpTrack->nVolume;            lpTrack->bControl |= AUDIO_CTRL_VOLUME;        }    }    else if (nCommand >= 0xA0 && nCommand <= 0xAF) {        /* set vibrato speed */        if (!Player.nFrame) {            if (LOPARAM(nCommand)) {                lpTrack->nVibratoRate = LOPARAM(nCommand) << 2;            }        }    }    else if (nCommand >= 0xB0 && nCommand <= 0xBF) {        /* vibrato */        if (!Player.nFrame) {            if (LOPARAM(nCommand)) {                lpTrack->nVibratoDepth = LOPARAM(nCommand);            }        }        else {            OnVibrato(lpTrack);        }    }    else if (nCommand >= 0xC0 && nCommand <= 0xCF) {        /* set coarse panning */        if (!Player.nFrame) {            lpTrack->nPanning = LOPARAM(nCommand) << 4;            lpTrack->bControl |= AUDIO_CTRL_PANNING;        }    }    else if (nCommand >= 0xD0 && nCommand <= 0xDF) {        /* panning slide left */        if (Player.nFrame) {            lpTrack->nPanning -= LOPARAM(nCommand);            if (lpTrack->nPanning < AUDIO_MIN_PANNING)                lpTrack->nPanning = AUDIO_MIN_PANNING;            lpTrack->bControl |= AUDIO_CTRL_PANNING;        }    }    else if (nCommand >= 0xE0 && nCommand <= 0xEF) {        /* panning slide right */        if (Player.nFrame) {            lpTrack->nPanning += LOPARAM(nCommand);            if (lpTrack->nPanning > AUDIO_MAX_PANNING)                lpTrack->nPanning = AUDIO_MAX_PANNING;            lpTrack->bControl |= AUDIO_CTRL_PANNING;        }    }    else if (nCommand >= 0xF0 && nCommand <= 0xFF) {        /* tone portamento */        if (Player.nFrame)            OnTonePorta(lpTrack);    }}static VOID StartEnvelopes(LPTRACK lpTrack){    LPAUDIOPATCH lpPatch;    /* reset vibrato and tremolo waves */    if (!(lpTrack->bWaveCtrl & 0x04))        lpTrack->nVibratoFrame = 0;    if (!(lpTrack->bWaveCtrl & 0x40))        lpTrack->nTremoloFrame = 0;    /* reset retrig and tremor frames */    lpTrack->nRetrigFrame = 0;    lpTrack->nTremorFrame = 0;    lpTrack->bTremorOnOff = 0;    lpPatch = lpTrack->lpPatch;    /* start volume envelope */    if (lpPatch != NULL && (lpPatch->Volume.wFlags & AUDIO_ENVELOPE_ON)) {        lpTrack->nVolumeFrame = -1;        lpTrack->nVolumePoint = 0;    }    /* start panning envelope */    if (lpPatch != NULL && (lpPatch->Panning.wFlags & AUDIO_ENVELOPE_ON)) {        lpTrack->nPanningFrame = -1;        lpTrack->nPanningPoint = 0;    }    /* start volume fadeout */    if (lpPatch != NULL)        lpTrack->nVolumeFadeout = lpPatch->nVolumeFadeout;    lpTrack->nVolumeFade = 0x7FFF;    /* start automatic vibrato */    if (lpPatch != NULL && lpPatch->nVibratoDepth) {        lpTrack->nAutoVibratoFrame = 0;        if (lpPatch->nVibratoSweep) {            lpTrack->nAutoVibratoSlope =                ((int) lpPatch->nVibratoDepth << 8) / lpPatch->nVibratoSweep;            lpTrack->nAutoVibratoValue = 0;        }        else {            lpTrack->nAutoVibratoSlope = 0;            lpTrack->nAutoVibratoValue =                ((int) lpPatch->nVibratoDepth << 8);        }    }}static VOID UpdateEnvelopes(LPTRACK lpTrack){    LPAUDIOPATCH lpPatch;    LPAUDIOPOINT lpPts;    int nFrames, nValue;    /* get patch structure alias */    lpPatch = lpTrack->lpPatch;    /* process volume fadeout */    if (lpPatch != NULL && !lpTrack->fKeyOn) {        if ((lpTrack->nVolumeFade -= lpTrack->nVolumeFadeout) < 0) {            lpTrack->nVolumeFadeout = 0;            lpTrack->nVolumeFade = 0;        }        lpTrack->bControl |= AUDIO_CTRL_VOLUME;    }    /* process volume envelope */    if (lpPatch != NULL && (lpPatch->Volume.wFlags & AUDIO_ENVELOPE_ON)) {        lpPts = lpPatch->Volume.aEnvelope;        if (++lpTrack->nVolumeFrame >= lpPts[lpTrack->nVolumePoint].nFrame) {            if ((lpPatch->Volume.wFlags & AUDIO_ENVELOPE_SUSTAIN) &&                (lpTrack->nVolumePoint == lpPatch->Volume.nSustain) &&                lpTrack->fKeyOn) {                lpTrack->nVolumeFrame = lpPts[lpTrack->nVolumePoint].nFrame;                lpTrack->nVolumeValue = (int) lpPts[lpTrack->nVolumePoint].nValue << 8;            }            else {                if ((lpPatch->Volume.wFlags & AUDIO_ENVELOPE_LOOP) &&                    (lpTrack->nVolumePoint == lpPatch->Volume.nLoopEnd)) {                    lpTrack->nVolumePoint = lpPatch->Volume.nLoopStart;                }                lpTrack->nVolumeFrame = lpPts[lpTrack->nVolumePoint].nFrame;                lpTrack->nVolumeValue = (int) lpPts[lpTrack->nVolumePoint].nValue << 8;                if (lpTrack->nVolumePoint + 1 >= lpPatch->Volume.nPoints) {                    lpTrack->nVolumeSlope = 0;                }                else {                    if ((nFrames = lpPts[lpTrack->nVolumePoint + 1].nFrame -			 lpPts[lpTrack->nVolumePoint].nFrame) <= 0)                        lpTrack->nVolumeSlope = 0;                    else {                        lpTrack->nVolumeSlope =                            (((int) lpPts[lpTrack->nVolumePoint + 1].nValue -			      (int) lpPts[lpTrack->nVolumePoint].nValue) << 8) / nFrames;                    }                    lpTrack->nVolumePoint++;                }            }        }        else {            lpTrack->nVolumeValue += lpTrack->nVolumeSlope;            lpTrack->nVolumeValue = CLIP(lpTrack->nVolumeValue, 0, 64 * 256);        }        lpTrack->nFinalVolume = (((LONG) (lpTrack->nVolumeValue >> 8) *				  lpTrack->nOutVolume) * lpTrack->nVolumeFade) >> 21;        lpTrack->bControl |= AUDIO_CTRL_VOLUME;    }    else {        lpTrack->nFinalVolume = lpTrack->nOutVolume;        if (lpTrack->nVolumeFade != 0x7FFF)            lpTrack->nFinalVolume = ((LONG) lpTrack->nFinalVolume * 				     lpTrack->nVolumeFade) >> 15;    }    /* process panning envelope */    if (lpPatch != NULL && (lpPatch->Panning.wFlags & AUDIO_ENVELOPE_ON)) {        lpPts = lpPatch->Panning.aEnvelope;        if (++lpTrack->nPanningFrame >= lpPts[lpTrack->nPanningPoint].nFrame) {            if ((lpPatch->Panning.wFlags & AUDIO_ENVELOPE_SUSTAIN) &&                (lpTrack->nPanningPoint == lpPatch->Panning.nSustain) &&                lpTrack->fKeyOn) {                lpTrack->nPanningFrame = lpPts[lpTrack->nPanningPoint].nFrame;                lpTrack->nPanningValue = (int) lpPts[lpTrack->nPanningPoint].nValue << 8;            }            else {                if ((lpPatch->Panning.wFlags & AUDIO_ENVELOPE_LOOP) &&                    (lpTrack->nPanningPoint == lpPatch->Panning.nLoopEnd)) {                    lpTrack->nPanningPoint = lpPatch->Panning.nLoopStart;                }                lpTrack->nPanningFrame = lpPts[lpTrack->nPanningPoint].nFrame;                lpTrack->nPanningValue = (int) lpPts[lpTrack->nPanningPoint].nValue << 8;                if (lpTrack->nPanningPoint + 1 >= lpPatch->Panning.nPoints) {                    lpTrack->nPanningSlope = 0;                }                else {                    if ((nFrames = lpPts[lpTrack->nPanningPoint + 1].nFrame -			 lpPts[lpTrack->nPanningPoint].nFrame) <= 0)                        lpTrack->nPanningSlope = 0;                    else {                        lpTrack->nPanningSlope =                            (((int) lpPts[lpTrack->nPanningPoint + 1].nValue -			      (int) lpPts[lpTrack->nPanningPoint].nValue) << 8) / nFrames;                    }                    lpTrack->nPanningPoint++;                }            }        }        else {            lpTrack->nPanningValue += lpTrack->nPanningSlope;            lpTrack->nPanningValue = CLIP(lpTrack->nPanningValue, 0, 64 * 256);        }        lpTrack->nFinalPanning = lpTrack->nPanning +            ((((128L - ABS(lpTrack->nPanning - 128)) << 3) *	      (lpTrack->nPanningValue - 32 * 256L)) >> 16);        lpTrack->bControl |= AUDIO_CTRL_PANNING;    }    else {        lpTrack->nFinalPanning = lpTrack->nPanning;    }    /* process automatic vibrato */    if (lpPatch != NULL && lpPatch->nVibratoDepth != 0) {        if (lpTrack->fKeyOn && lpTrack->nAutoVibratoSlope) {            lpTrack->nAutoVibratoValue += lpTrack->nAutoVibratoSlope;            if (lpTrack->nAutoVibratoValue > ((int) lpPatch->nVibratoDepth << 8)) {                lpTrack->nAutoVibratoValue = (int) lpPatch->nVibratoDepth << 8;                lpTrack->nAutoVibratoSlope = 0;            }        }        lpTrack->nAutoVibratoFrame += lpPatch->nVibratoRate;        nFrames = (BYTE) lpTrack->nAutoVibratoFrame;        switch (lpPatch->nVibratoType) {        case 0x00:            nValue = aAutoVibratoTable[nFrames];            break;        case 0x01:            nValue = (nFrames & 0x80) ? +64 : -64;            break;        case 0x02:            nValue = ((64 + (nFrames >> 1)) & 0x7f) - 64;            break;        case 0x03:            nValue = ((64 - (nFrames >> 1)) & 0x7f) - 64;            break;        default:            /* unknown vibrato waveform type */            nValue = 0;            break;        }        lpTrack->nFinalPeriod = lpTrack->nOutPeriod +            ((((LONG) nValue << 2) * lpTrack->nAutoVibratoValue) >> 16);        lpTrack->nFinalPeriod = CLIP(lpTrack->nFinalPeriod,				     AUDIO_MIN_PERIOD, AUDIO_MAX_PERIOD);        lpTrack->bControl |= AUDIO_CTRL_PITCH;    }    else {        lpTrack->nFinalPeriod = lpTrack->nOutPeriod;    }}static VOID PlayNote(LPTRACK lpTrack){    LPAUDIOPATCH lpPatch;    LPAUDIOSAMPLE lpSample;    lpTrack->fKeyOn = (lpTrack->nNote >= 1 && lpTrack->nNote <= AUDIO_MAX_NOTES);    if (lpTrack->fKeyOn && (lpPatch = lpTrack->lpPatch) != NULL) {        lpTrack->nSample = lpPatch->aSampleNumber[lpTrack->nNote - 1];        if (lpTrack->nSample < lpPatch->nSamples) {            lpTrack->lpSample = &lpPatch->aSampleTable[lpTrack->nSample];            lpSample = lpTrack->lpSample;            lpTrack->nRelativeNote = (signed char) lpSample->nRelativeNote;            lpTrack->nFinetune = (signed char) lpSample->nFinetune;            if (lpTrack->nCommand != 0x03 && lpTrack->nCommand != 0x05 &&                (lpTrack->nVolumeCmd & 0xF0) != 0xF0) {                lpTrack->nPeriod = lpTrack->nOutPeriod =                    GetPeriodValue(lpTrack->nNote,				   lpTrack->nRelativeNote, lpTrack->nFinetune);                lpTrack->bControl |= (AUDIO_CTRL_PITCH | AUDIO_CTRL_KEYON);            }        }        else {            lpTrack->lpSample = NULL;        }    }}static VOID StopNote(LPTRACK lpTrack){    lpTrack->fKeyOn = 0;    if (lpTrack->lpPatch != NULL) {        if (!(lpTrack->lpPatch->Volume.wFlags & AUDIO_ENVELOPE_ON)) {            lpTrack->nVolume = lpTrack->nOutVolume = 0;            lpTrack->bControl |= (AUDIO_CTRL_VOLUME | AUDIO_CTRL_KEYOFF);        }    }    else {        lpTrack->bControl |= AUDIO_CTRL_KEYOFF;    }}static VOID RetrigNote(LPTRACK lpTrack){    PlayNote(lpTrack);    StartEnvelopes(lpTrack);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲bt欧美bt精品777| 国产经典欧美精品| 国产尤物一区二区| 色婷婷综合中文久久一本| 欧美一区二区三区系列电影| 久久久亚洲精品石原莉奈| 亚洲综合视频网| 国产成人自拍网| 91精品国产一区二区三区| 国产精品青草综合久久久久99| 夜夜嗨av一区二区三区网页| 国产一区激情在线| 91精品国产欧美一区二区| 亚洲人精品午夜| 国产一区二区0| 日韩视频一区在线观看| 亚洲精品视频一区二区| 丁香天五香天堂综合| 欧美一区二区精品久久911| 亚洲激情自拍视频| 成人一区二区三区中文字幕| 日韩欧美不卡一区| 图片区小说区区亚洲影院| 91美女片黄在线观看91美女| 久久嫩草精品久久久久| 奇米精品一区二区三区四区| 欧美日韩一区二区三区高清| 亚洲人成精品久久久久| av动漫一区二区| 国产精品色一区二区三区| 国产精品中文字幕一区二区三区| 51午夜精品国产| 婷婷激情综合网| 欧美日韩一级黄| 亚洲一级二级在线| 欧美午夜精品电影| 亚洲午夜在线电影| 欧美日韩五月天| 婷婷久久综合九色综合伊人色| 欧美亚洲动漫精品| 午夜精品爽啪视频| 91麻豆精品国产91| 久久 天天综合| 久久新电视剧免费观看| 国产999精品久久久久久绿帽| 久久精品男人的天堂| 国产精品资源网| 日本一区二区久久| 91蝌蚪国产九色| 一区二区在线观看免费视频播放| 色婷婷激情综合| 亚洲国产视频在线| 日韩欧美一区在线观看| 国产在线视视频有精品| 国产精品午夜久久| 色女孩综合影院| 婷婷久久综合九色综合绿巨人| 91麻豆精品国产91久久久久久久久| 免费视频最近日韩| 久久久久久久国产精品影院| av一本久道久久综合久久鬼色| 亚洲日本va午夜在线电影| 欧美三级三级三级| 狂野欧美性猛交blacked| 国产女同性恋一区二区| 色婷婷久久综合| 久久国产日韩欧美精品| 国产精品亲子乱子伦xxxx裸| 色婷婷亚洲婷婷| 玖玖九九国产精品| 国产精品久久久久四虎| 在线成人小视频| 国产99一区视频免费| 亚洲激情综合网| 精品粉嫩超白一线天av| 99国产精品久久久久久久久久| 香蕉乱码成人久久天堂爱免费| 精品美女被调教视频大全网站| 99国产精品视频免费观看| 日本aⅴ免费视频一区二区三区| 国产日韩精品一区二区三区在线| 在线视频一区二区三| 激情深爱一区二区| 亚洲一二三四区| 久久精品视频网| 在线综合视频播放| 91麻豆免费看| 激情亚洲综合在线| 视频一区二区国产| ...av二区三区久久精品| 日韩精品在线一区| 欧美视频完全免费看| 成人免费观看av| 国内精品不卡在线| 首页国产欧美久久| 亚洲免费资源在线播放| 久久精品亚洲精品国产欧美 | 日韩久久一区二区| 精品成人一区二区三区| 欧美日韩精品专区| 91日韩一区二区三区| 国产成人精品免费网站| 美国毛片一区二区| 天天色天天爱天天射综合| 亚洲欧美韩国综合色| 国产精品人成在线观看免费| 久久亚洲一区二区三区明星换脸| 欧美二区乱c少妇| 国产一区欧美二区| 国产一区二区中文字幕| 日av在线不卡| 日本伊人色综合网| 肉色丝袜一区二区| 亚洲成人免费观看| 亚洲成人先锋电影| 亚洲成年人网站在线观看| 亚洲综合区在线| 一区av在线播放| 亚洲午夜一二三区视频| 一区二区高清在线| 午夜欧美电影在线观看| 性欧美大战久久久久久久久| 日精品一区二区| 久久精品二区亚洲w码| 免费成人小视频| 国产在线播精品第三| 国产精品亚洲一区二区三区在线| 韩国女主播成人在线观看| 国产一区二区三区精品视频| 国产高清精品久久久久| 成人国产一区二区三区精品| 成人app网站| 一本大道久久a久久精二百| 91高清在线观看| 欧美精品粉嫩高潮一区二区| 日韩欧美国产麻豆| 国产女人18毛片水真多成人如厕| 国产欧美精品一区| 一区二区三区四区在线免费观看| 伊人一区二区三区| 免费高清在线视频一区·| 国产精品一色哟哟哟| 91在线免费看| 91精品国产综合久久香蕉的特点 | 懂色一区二区三区免费观看| 成人av在线资源| 欧美性一二三区| 欧美xxxx老人做受| 国产精品不卡在线观看| 亚洲国产精品久久艾草纯爱| 另类专区欧美蜜桃臀第一页| 处破女av一区二区| 欧美日韩黄色一区二区| 久久这里只有精品首页| 亚洲男人天堂一区| 麻豆精品新av中文字幕| eeuss鲁片一区二区三区| 欧美日韩1区2区| 中文字幕av不卡| 石原莉奈在线亚洲三区| 成人一级片网址| 日韩一二三四区| 亚洲人妖av一区二区| 久久av老司机精品网站导航| 99九九99九九九视频精品| 日韩一级二级三级精品视频| 亚洲欧美在线高清| 精品一区二区三区在线播放视频| av在线综合网| 精品国产乱码久久久久久浪潮| 中文字幕一区二区三区在线观看 | 99精品视频在线播放观看| 欧美日韩卡一卡二| 国产精品理论片| 久久精品二区亚洲w码| 欧美亚洲动漫精品| 亚洲欧美中日韩| 国产精品性做久久久久久| 69堂亚洲精品首页| 亚洲电影你懂得| www.亚洲人| 久久久久久一级片| 久久精品72免费观看| 在线观看91视频| 亚洲品质自拍视频网站| 国产成人精品免费一区二区| 欧美一级片在线看| 午夜精品福利一区二区三区蜜桃| 成人精品国产福利| 国产欧美日韩精品a在线观看| 蜜臀99久久精品久久久久久软件| 欧美系列亚洲系列| 亚洲欧美一区二区三区国产精品| 岛国一区二区三区| 国产欧美一区二区三区在线看蜜臀| 久久99精品国产麻豆婷婷洗澡| 777午夜精品免费视频| 丝袜a∨在线一区二区三区不卡| 欧美这里有精品| 亚洲小说春色综合另类电影|