Beispiel #1
0
void opl3_write(uint16_t a, uint8_t v, void *priv)
{
        opl_t *opl = (opl_t *)priv;
        
        opl3_update2(opl);
        opl_write(0, a, v);
}
Beispiel #2
0
uint8_t opl3_read(uint16_t a, void *priv)
{
        opl_t *opl = (opl_t *)priv;

        cycles -= ISA_CYCLES(8);
        opl3_update2(opl);
        return opl_read(0, a);
}
Beispiel #3
0
uint8_t opl3_read(uint16_t a, void *priv)
{
        opl_t *opl = (opl_t *)priv;

        cycles -= (int)(isa_timing * 8);
        opl3_update2(opl);
        return opl_read(0, a);
}
Beispiel #4
0
static void wss_get_buffer(int16_t *buffer, int len, void *p)
{
    wss_t *wss = (wss_t *)p;

    int c;

    opl3_update2(&wss->opl);
    ad1848_update(&wss->ad1848);
    for (c = 0; c < len * 2; c++)
    {
        buffer[c] += wss->opl.buffer[c];
        buffer[c] += (wss->ad1848.buffer[c] / 2);
    }

    wss->opl.pos = 0;
    wss->ad1848.pos = 0;
}
Beispiel #5
0
void pas16_get_buffer(int32_t *buffer, int len, void *p)
{
        pas16_t *pas16 = (pas16_t *)p;
        int c;

        opl3_update2(&pas16->opl);
        sb_dsp_update(&pas16->dsp);
        pas16_update(pas16);
        for (c = 0; c < len * 2; c++)
        {
                buffer[c] += pas16->opl.buffer[c];
                buffer[c] += (int16_t)(sb_iir(c & 1, (float)pas16->dsp.buffer[c]) / 1.3) / 2;
                buffer[c] += (pas16->pcm_buffer[c & 1][c >> 1] / 2);
        }

        pas16->pos = 0;
        pas16->opl.pos = 0;
        pas16->dsp.pos = 0;
}