Exemple #1
0
int sound_context_save(uint8 *state)
{
    int bufferptr = 0;

    if ((system_hw & SYSTEM_PBC) == SYSTEM_MD)
    {
        bufferptr = YM2612SaveContext(state);
    }
    else
    {
        save_param(YM2413GetContextPtr(),YM2413GetContextSize());
    }

    save_param(SN76489_GetContextPtr(),SN76489_GetContextSize());

    save_param(&fm_cycles_start,sizeof(fm_cycles_start));

    return bufferptr;
}
Exemple #2
0
int sound_context_load(uint8 *state)
{
    int bufferptr = 0;

    if ((system_hw & SYSTEM_PBC) == SYSTEM_MD)
    {
        bufferptr = YM2612LoadContext(state);
        YM2612Config(config.dac_bits);
    }
    else
    {
        load_param(YM2413GetContextPtr(),YM2413GetContextSize());
    }

    load_param(SN76489_GetContextPtr(),SN76489_GetContextSize());

    load_param(&fm_cycles_start,sizeof(fm_cycles_start));
    fm_cycles_count = fm_cycles_start;

    return bufferptr;
}
Exemple #3
0
void sound_restore()
{
    int size;
    uint8 *ptr, *temp;

    /* save YM context */
    if ((system_hw & SYSTEM_PBC) == SYSTEM_MD)
    {
        size = YM2612GetContextSize();
        ptr = YM2612GetContextPtr();
    }
    else
    {
        size = YM2413GetContextSize();
        ptr = YM2413GetContextPtr();
    }
    temp = malloc(size);
    if (temp)
    {
        memcpy(temp, ptr, size);
    }

    /* reinitialize sound chips */
    sound_init();

    /* restore YM context */
    if (temp)
    {
        if ((system_hw & SYSTEM_PBC) == SYSTEM_MD)
        {
            YM2612Restore(temp);
        }
        else
        {
            YM2413Restore(temp);
        }
        free(temp);
    }
}