int device_start_c6280(UINT8 ChipID, int clock) { c6280_state* info; int rate; if (ChipID >= MAX_CHIPS) return 0; info = &C6280Data[ChipID]; switch(EMU_CORE) { #ifdef ENABLE_ALL_CORES case EC_MAME: rate = (clock & 0x7FFFFFFF)/16; if (((CHIP_SAMPLING_MODE & 0x01) && rate < CHIP_SAMPLE_RATE) || CHIP_SAMPLING_MODE == 0x02) rate = CHIP_SAMPLE_RATE; info->chip = device_start_c6280m(clock, rate); if (info->chip == NULL) return 0; break; #endif case EC_OOTAKE: rate = SampleRate; info->chip = PSG_Init(clock, rate); if (info->chip == NULL) return 0; break; } return rate; }
int device_start_c6280(void **_info, int EMU_CORE, int clock, int SampleRate, int CHIP_SAMPLING_MODE, int CHIP_SAMPLE_RATE) { c6280_state* info; int rate; #ifdef ENABLE_ALL_CORES if (EMU_CORE >= 0x02) EMU_CORE = EC_OOTAKE; #else EMU_CORE = EC_OOTAKE; #endif info = (c6280_state *) calloc(1, sizeof(c6280_state)); *_info = (void *) info; info->EMU_CORE = EMU_CORE; switch(EMU_CORE) { #ifdef ENABLE_ALL_CORES case EC_MAME: rate = (clock & 0x7FFFFFFF)/16; if (((CHIP_SAMPLING_MODE & 0x01) && rate < CHIP_SAMPLE_RATE) || CHIP_SAMPLING_MODE == 0x02) rate = CHIP_SAMPLE_RATE; info->chip = device_start_c6280m(clock, rate); if (info->chip == NULL) return 0; break; #endif case EC_OOTAKE: rate = SampleRate; info->chip = PSG_Init(clock, rate); if (info->chip == NULL) return 0; break; } return rate; }