static void SBoxDBG_SetRegister(const unsigned int id, uint32 value) { if (id < _PSG_GSREG_COUNT) pce_psg->SetRegister(id, value); else switch (id) { case GSREG_ADPCM_CTRL: sbox.ADPCMControl = value & 0xFFFF; break; case GSREG_ADPCM0_LVOL: sbox.ADPCMVolume[0][0] = value & 0x3F; break; case GSREG_ADPCM0_RVOL: sbox.ADPCMVolume[0][1] = value & 0x3F; break; case GSREG_ADPCM1_LVOL: sbox.ADPCMVolume[1][0] = value & 0x3F; break; case GSREG_ADPCM1_RVOL: sbox.ADPCMVolume[1][1] = value & 0x3F; break; case GSREG_CDDA_LVOL: sbox.CDDAVolume[0] = value & 0x3F; SCSICD_SetCDDAVolume(0.50f * sbox.CDDAVolume[0] / 63, 0.50f * sbox.CDDAVolume[1] / 63); break; case GSREG_CDDA_RVOL: sbox.CDDAVolume[1] = value & 0x3F; SCSICD_SetCDDAVolume(0.50f * sbox.CDDAVolume[0] / 63, 0.50f * sbox.CDDAVolume[1] / 63); break; case GSREG_ADPCM0_CUR: sbox.ADPCMPredictor[0] = ((int32)value & 0x7FFF) - 0x4000; break; case GSREG_ADPCM1_CUR: sbox.ADPCMPredictor[1] = ((int32)value & 0x7FFF) - 0x4000; break; } }
static INLINE void Fader_SyncWhich(void) { if(Fader.Command & 0x2) // ADPCM fade { ADPCMFadeVolume = Fader.Volume; CDDAFadeVolume = 65536; } else // CD-DA Fade { CDDAFadeVolume = Fader.Volume; ADPCMFadeVolume = 65536; } ADPCMFadeVolume >>= 6; SCSICD_SetCDDAVolume(0.50f * CDDAFadeVolume * CDDAVolumeSetting / 65536, 0.50f * CDDAFadeVolume * CDDAVolumeSetting / 65536); }
static void SyncCDVolume(void) { SCSICD_SetCDDAVolume(0.50f * CurrentCDVolume * CDDAVolumeSetting / 65536, 0.50f * CurrentCDVolume * CDDAVolumeSetting / 65536); }