static WRITE16_HANDLER( audio_volume_w ) { relief_state *state = (relief_state *)space->machine->driver_data; if (ACCESSING_BITS_0_7) { state->overall_volume = data & 127; atarigen_set_ym2413_vol(space->machine, (state->ym2413_volume * state->overall_volume * 100) / (127 * 15)); atarigen_set_oki6295_vol(space->machine, state->overall_volume * 100 / 127); } }
static WRITE16_HANDLER( audio_control_w ) { relief_state *state = (relief_state *)space->machine->driver_data; if (ACCESSING_BITS_0_7) { state->ym2413_volume = (data >> 1) & 15; atarigen_set_ym2413_vol(space->machine, (state->ym2413_volume * state->overall_volume * 100) / (127 * 15)); state->adpcm_bank_base = (0x040000 * ((data >> 6) & 3)) | (state->adpcm_bank_base & 0x100000); } if (ACCESSING_BITS_8_15) state->adpcm_bank_base = (0x100000 * ((data >> 8) & 1)) | (state->adpcm_bank_base & 0x0c0000); okim6295_set_bank_base(devtag_get_device(space->machine, "oki"), state->adpcm_bank_base); }
static WRITE16_HANDLER( audio_control_w ) { relief_state *state = space->machine().driver_data<relief_state>(); if (ACCESSING_BITS_0_7) { state->m_ym2413_volume = (data >> 1) & 15; atarigen_set_ym2413_vol(space->machine(), (state->m_ym2413_volume * state->m_overall_volume * 100) / (127 * 15)); state->m_adpcm_bank_base = (0x040000 * ((data >> 6) & 3)) | (state->m_adpcm_bank_base & 0x100000); } if (ACCESSING_BITS_8_15) state->m_adpcm_bank_base = (0x100000 * ((data >> 8) & 1)) | (state->m_adpcm_bank_base & 0x0c0000); okim6295_device *oki = space->machine().device<okim6295_device>("oki"); oki->set_bank_base(state->m_adpcm_bank_base); }