void opl2_init(opl_t *opl) { opl_init(ym3812_timer_set_0, opl, 0, 0); opl_init(ym3812_timer_set_1, opl, 1, 0); timer_add(opl_timer_callback00, &opl->timers[0][0], &opl->timers_enable[0][0], (void *)opl); timer_add(opl_timer_callback01, &opl->timers[0][1], &opl->timers_enable[0][1], (void *)opl); timer_add(opl_timer_callback10, &opl->timers[1][0], &opl->timers_enable[1][0], (void *)opl); timer_add(opl_timer_callback11, &opl->timers[1][1], &opl->timers_enable[1][1], (void *)opl); }
void lds_rewind( void ) { int i; /* init all with 0 */ tempo_now = 3; playing = true; songlooped = false; jumping = fadeonoff = allvolume = hardfade = pattplay = posplay = jumppos = mainvolume = 0; memset(channel, 0, sizeof(channel)); memset(fmchip, 0, sizeof(fmchip)); /* OPL2 init */ opl_init(); /* Reset OPL chip */ opl_write(1, 0x20); opl_write(8, 0); opl_write(0xbd, regbd); for(i = 0; i < 9; i++) { opl_write(0x20 + op_table[i], 0); opl_write(0x23 + op_table[i], 0); opl_write(0x40 + op_table[i], 0x3f); opl_write(0x43 + op_table[i], 0x3f); opl_write(0x60 + op_table[i], 0xff); opl_write(0x63 + op_table[i], 0xff); opl_write(0x80 + op_table[i], 0xff); opl_write(0x83 + op_table[i], 0xff); opl_write(0xe0 + op_table[i], 0); opl_write(0xe3 + op_table[i], 0); opl_write(0xa0 + i, 0); opl_write(0xb0 + i, 0); opl_write(0xc0 + i, 0); } }
bool init_audio( void ) { if (audio_disabled) return false; SDL_AudioSpec ask, got; ask.freq = freq; ask.format = (BYTES_PER_SAMPLE == 2) ? AUDIO_S16SYS : AUDIO_S8; ask.channels = 1; ask.samples = 512; ask.callback = audio_cb; printf("\trequested %d Hz, %d channels, %d samples\n", ask.freq, ask.channels, ask.samples); if (SDL_OpenAudio(&ask, &got) == -1) { fprintf(stderr, "error: failed to initialize SDL audio: %s\n", SDL_GetError()); audio_disabled = true; return false; } printf("\tobtained %d Hz, %d channels, %d samples\n", got.freq, got.channels, got.samples); SDL_BuildAudioCVT(&audio_cvt, ask.format, ask.channels, ask.freq, got.format, got.channels, got.freq); opl_init(); SDL_PauseAudio(0); // unpause return true; }
void opl3_init(opl_t *opl) { opl_init(ymf262_timer_set, opl, 0, 1); }
void opl2_init(opl_t *opl) { opl_init(ym3812_timer_set_0, opl, 0, 0); opl_init(ym3812_timer_set_1, opl, 1, 0); }
void opl3_init(opl_t *opl) { opl_init(ymf262_timer_set, opl, 0, 1); timer_add(opl_timer_callback00, &opl->timers[0][0], &opl->timers_enable[0][0], (void *)opl); timer_add(opl_timer_callback01, &opl->timers[0][1], &opl->timers_enable[0][1], (void *)opl); }
// converted from DOSBOX dbopl.cpp: DBOPL::Handler::Init void dbadlib_init(AdlibTimer *timer, int opl3_rate) { AdlibChip__AdlibChip(timer); opl_init(opl3_rate); }