void system_shutdown(void) { if(snd.enabled) { OPLL_delete(opll); OPLL_close(); } }
void system_shutdown(void) { if(snd.enabled) { OPLL_delete(opll); OPLL_close(); #ifdef _3DS linearFree(snd.buffer[0]); linearFree(snd.buffer[1]); #endif } }
//static DEVICE_STOP( ym2413 ) void device_stop_ym2413(void *_info) { //ym2413_state *info = get_safe_token(device); ym2413_state *info = (ym2413_state *)_info; switch(info->EMU_CORE) { #ifdef ENABLE_ALL_CORES case EC_MAME: ym2413_shutdown(info->chip); break; #endif case EC_EMU2413: OPLL_delete(info->chip); break; } free(info); }
void FM_Shutdown(void) { switch(snd.fm_which) { case SND_EMU2413: if(opll) { OPLL_delete(opll); opll = NULL; } OPLL_close(); break; case SND_YM2413: YM2413Shutdown(); break; } }
Nes_Vrc7_Apu::~Nes_Vrc7_Apu() { if ( opll ) OPLL_delete( (OPLL *) opll ); }
void FM_Digital_Close() { OPLL_delete (opll); }
int main(void){ static char wave[DATALENGTH*2] ; char filename[16] = "temp.wav" ; char header[46] ; int i; clock_t start,finish ; FILE *fp ; OPLL *opll ; /* Create WAVE header */ chunkID(header,"RIFF") ; DWORD(header+4,DATALENGTH*2+36) ; chunkID(header+8,"WAVE") ; chunkID(header+12,"fmt ") ; DWORD(header+16,16) ; WORD(header+20,1) ; /* WAVE_FORMAT_PCM */ WORD(header+22,1) ; /* channel 1=mono,2=stereo */ DWORD(header+24,SAMPLERATE) ; /* samplesPerSec */ DWORD(header+28,2*SAMPLERATE) ; /* bytesPerSec */ WORD(header+32,2) ; /* blockSize */ WORD(header+34,16) ; /* bitsPerSample */ chunkID(header+36,"data") ; DWORD(header+40,2*DATALENGTH) ; opll = OPLL_new(MSX_CLK,SAMPLERATE) ; OPLL_reset(opll); OPLL_writeReg(opll,0x30,0x30) ; /* select PIANO Voice to ch1. */ OPLL_writeReg(opll,0x10,0x80) ; /* set F-Number(L). */ OPLL_writeReg(opll,0x20,0x15) ; /* set BLK & F-Number(H) and keyon. */ start = clock() ; i=0; for(i=0;i<DATALENGTH;i++) { WORD(wave+i*2,OPLL_calc(opll)); } finish = clock() ; OPLL_delete(opll) ; printf("It has been %f sec to calc %d waves.\n", (double)(finish-start)/CLOCKS_PER_SEC, DATALENGTH) ; printf("%f times faster than real YM2413.\n", ((double)DATALENGTH/SAMPLERATE)/((double)(finish-start)/CLOCKS_PER_SEC)) ; fp = fopen(filename,"wb") ; if(fp == NULL) return 1 ; fwrite(header,46,1,fp) ; fwrite(wave,DATALENGTH,2,fp) ; fclose(fp) ; printf("Wrote : %s\n",filename) ; return 0 ; }
NES_VRC7::~NES_VRC7 () { OPLL_delete (opll); }