コード例 #1
0
int32 psf_gen(int16 *buffer, uint32 samples)
{
    int i;

    for (i = 0; i < samples; i++)
    {
        psx_hw_slice();
        SPUasync(384);
    }

    spu_pOutput = (char *)buffer;
    SPU_flushboot();

    psx_hw_frame();

    return AO_SUCCESS;
}
コード例 #2
0
ファイル: PsxCounters.c プロジェクト: XeresRazor/iPSFPlayer
int CounterSPURun(void)
{
    u32 cycles;
    
    if(psxRegs.cycle<last)
    {
        cycles=0xFFFFFFFF-last;
        cycles+=psxRegs.cycle;
    }
    else
        cycles=psxRegs.cycle-last;
    
    if(cycles>=16)
    {
        if(!SPUasync(cycles)) return(0);
        last=psxRegs.cycle;
    }
    return(1);
}
コード例 #3
0
ファイル: upse_ps1_counters.c プロジェクト: DeejStar/q-gears
int CounterSPURun(void)
{
    u32 cycles;

    if (upse_r3000_cpu_regs.cycle < last)
    {
	cycles = 0xFFFFFFFF - last;
	cycles += upse_r3000_cpu_regs.cycle;
    }
    else
	cycles = upse_r3000_cpu_regs.cycle - last;

    if (cycles >= 16)
    {
	if (!SPUasync(cycles))
	    return (0);
	last = upse_r3000_cpu_regs.cycle;
    }
    return (1);
}
コード例 #4
0
ファイル: eng_spx.c プロジェクト: CBke/audacious-plugins
int32_t spx_execute(InputPlayback *playback)
{
	int i, run = 1;

	while (!stop_flag)
	{
		if (old_fmt && (cur_event >= num_events))
			run = 0;
		else if (cur_tick >= end_tick)
			run = 0;

		if (run)
		{
			for (i = 0; i < 44100 / 60; i++)
			{
			  	spx_tick();
				SPUasync(384, (void *) playback);
			}
		}
	}

	return AO_SUCCESS;
}
コード例 #5
0
ファイル: zn.cpp プロジェクト: Cancerous/pcsxr-xenon
void CALLBACK ZN_SPUupdate(void) 
{
	SPUasync( cpu_clock / 1000 );
}