static void tekipakiHD647180Write(UINT16 d) { if (d == 0xfe) { StopAllSamples(); } if (d >= 0x01 && d <= 0x03) { StopSamplesChannel0(); BurnSampleSetLoop(d, 1); BurnSamplePlay(d); } if (d >= 0x04 && d <= 0x05) { StopSamplesChannel0(); BurnSamplePlay(d); } if (d >= 0x06 && d <= 0x07) { StopSamplesChannel1(); BurnSamplePlay(d); } if (d == 0x08 || d == 0x09) { StopSamplesChannel2(); BurnSamplePlay(d); } if (d >= 0x0a && d <= 0x0d) { StopSamplesChannel3(); BurnSamplePlay(d); } if (d == 0x0e || d == 0x12) { StopSamplesChannel4(); BurnSamplePlay(d); } if (d >= 0x13 && d <= 0x14) { StopSamplesChannel5(); BurnSamplePlay(d); } if (d == 0x15) { BurnSampleStop(d); BurnSamplePlay(d); } }
void BurnSampleReset() { #if defined FBA_DEBUG if (!DebugSnd_SamplesInitted) bprintf(PRINT_ERROR, _T("BurnSampleReset called without init\n")); #endif for (INT32 i = 0; i < nTotalSamples; i++) { BurnSampleStop(i); if (sample_ptr->flags & SAMPLE_AUTOLOOP) { BurnSampleSetLoop(i, true); BurnSamplePlay(i); } } }
static INT32 DrvFrame() { INT32 nInterleave = 4; if (DrvReset) { DrvDoReset(); } memset (DrvInputs, 0, 3); for (INT32 i = 0; i < 8; i++) { DrvInputs[0] |= (DrvJoy1[i] & 1) << i; DrvInputs[1] |= (DrvJoy2[i] & 1) << i; DrvInputs[2] |= (DrvJoy3[i] & 1) << i; } ToaClearOpposites(&DrvInputs[0]); ToaClearOpposites(&DrvInputs[1]); SekNewFrame(); SekOpen(0); SekIdle(nCyclesDone[0]); nCyclesTotal[0] = (INT32)((INT64)10000000 * nBurnCPUSpeedAdjust / (0x0100 * REFRESHRATE)); SekSetCyclesScanline(nCyclesTotal[0] / 262); nToaCyclesDisplayStart = nCyclesTotal[0] - ((nCyclesTotal[0] * (TOA_VBLANK_LINES + 240)) / 262); nToaCyclesVBlankStart = nCyclesTotal[0] - ((nCyclesTotal[0] * TOA_VBLANK_LINES) / 262); bVBlank = false; for (INT32 i = 0; i < nInterleave; i++) { INT32 nNext; // Run 68000 nNext = (i + 1) * nCyclesTotal[0] / nInterleave; // Trigger VBlank interrupt if (nNext > nToaCyclesVBlankStart) { if (SekTotalCycles() < nToaCyclesVBlankStart) { nCyclesSegment = nToaCyclesVBlankStart - SekTotalCycles(); SekRun(nCyclesSegment); } if (pBurnDraw) { DrvDraw(); } ToaBufferFCU2Sprites(); bVBlank = true; if (bEnableInterrupts) { SekSetIRQLine(4, CPU_IRQSTATUS_AUTO); } } nCyclesSegment = nNext - SekTotalCycles(); if (bVBlank || (!CheckSleep(0))) { SekRun(nCyclesSegment); } else { SekIdle(nCyclesSegment); } } nToa1Cycles68KSync = SekTotalCycles(); // BurnTimerEndFrameYM3812(nCyclesTotal[1]); // BurnYM3812Update(pBurnSoundOut, nBurnSoundLen); if (pBurnSoundOut) { BurnSampleRender(pBurnSoundOut, nBurnSoundLen); #ifdef TOAPLAN_SOUND_SAMPLES_HACK if (Start > 0) Wait++; if (Wait >= (108 + Start2)) { StopSamplesChannel0(); SetVolumeSamplesChannel0(1.00); BurnSamplePlay(0x07); Start = 0; Start2 = 1; Wait = 0; } if (Start2 == 0) ESEFadeout2(); #endif } nCyclesDone[0] = SekTotalCycles() - nCyclesTotal[0]; // bprintf(PRINT_NORMAL, _T(" %i\n"), nCyclesDone[0]); ToaBufferFCU2Sprites(); SekSetIRQLine(2, CPU_IRQSTATUS_AUTO); // sprite buffer finished... SekClose(); return 0; }
static void samesameSndCmd(UINT16 d) { if (d == 0x00 || d == 0xdf) { StopAllSamples(); } if (d >= 0x01 && d <= 0x05) { StopSamplesChannel0(); SetVolumeSamplesChannel0(1.00); FadeoutStop = 1; Start2 = 0; BurnSampleSetLoop(d, 1); BurnSamplePlay(d); } if (d == 0x06) { StopSamplesChannel0(); BurnSamplePlay(d); Start2 = 72; } if (d == 0x07) { FadeoutReady = 1; Start = 1; } if (d == 0x08 || d == 0x09) { StopSamplesChannel1(); BurnSamplePlay(d); } if (d >= 0x0a && d <= 0x0f) { StopSamplesChannel2(); BurnSamplePlay(d); } if (d == 0x10 || d == 0x11) { StopSamplesChannel3(); BurnSamplePlay(d); } if (d >= 0x12 && d <= 0x16) { StopSamplesChannel4(); BurnSamplePlay(d); } if (d >= 0x17 && d <= 0x1b) { StopSamplesChannel5(); BurnSamplePlay(d); } if (d >= 0x1c && d <= 0x1f) { StopSamplesChannel0(); BurnSamplePlay(d); } if (d == 0x20 || d == 0x21) { StopSamplesChannel6(); BurnSamplePlay(d); } if (d == 0x22) { StopSamplesChannel0(); BurnSamplePlay(d); } if (d == 0x23) { StopSamplesChannel7(); BurnSamplePlay(d); } if (d == 0x24) { StopSamplesChannel7(); BurnSamplePlay(d); FadeoutReady = 1; } if (d == 0x25) { StopSamplesChannel0(); SetVolumeSamplesChannel0(1.00); BurnSamplePlay(d); FadeoutStop = 1; } if (d == 0x26) { StopSamplesChannel2(); BurnSamplePlay(d); } if (d == 0x27) { StopSamplesChannel0(); SetVolumeSamplesChannel0(1.00); BurnSamplePlay(d); FadeoutStop = 1; } if (d == 0x28) { BurnSamplePlay(d); } }
static void ghoxSoundCmd(UINT16 d) { if (d == 0xfe) { StopSamplesChannel0(); } if (d == 0x42 || d == 0x44 || d == 0x45 || d == 0x47 || d == 0x48 || d == 0x4c || d == 0x4d || d == 0x4e) { StopSamplesChannel0(); BurnSampleSetLoop(d, 1); BurnSamplePlay(d); } if (d == 0xd0) { StopSamplesChannel0(); BurnSampleSetLoop(0, 1); BurnSamplePlay(0); } if (d == 0x49) { StopSamplesChannel0(); BurnSamplePlay(d); } if (d >= 0x02 && d <= 0x0f) { StopSamplesChannel1(); BurnSamplePlay(d); } if (d >= 0x10 && d <= 0x17) { StopSamplesChannel2(); BurnSamplePlay(d); } if (d >= 0x18 && d <= 0x1f) { StopSamplesChannel3(); BurnSamplePlay(d); } if (d >= 0x20 && d <= 0x27) { StopSamplesChannel4(); BurnSamplePlay(d); } if (d >= 0x28 && d <= 0x2f) { StopSamplesChannel5(); BurnSamplePlay(d); } if (d >= 0x30 && d <= 0x38) { StopSamplesChannel6(); BurnSamplePlay(d); } if (d == 0x39) { StopSamplesChannel8(); BurnSamplePlay(d); } if (d >= 0x3a && d <= 0x3f) { StopSamplesChannel7(); BurnSamplePlay(d); } if (d == 0x01) { StopSamplesChannel8(); BurnSamplePlay(d); } if (d == 0x4b) { StopSamplesChannel0(); BurnSamplePlay(0x4f); } }