Removed MDRV_INTERLEAVE(x), which specified the minimum scheduling

quantum in terms of "frames" (a dubious concept now with multiple
screens and changing refresh rates). Replaced it with a new
MDRV_QUANTUM_TIME(x) which specifies the minimum scheduling quantum
as a time value. Time can be specified as HZ(x), NSEC(x), USEC(x),
etc. Updated all drivers to use this, assuming 60 was the frame
rate (this is not perfect but should work for almost all cases).

Changed MDRV_WATCHDOG_INIT_TIME(x) to automatically prepend
UINT64_ATTOTIME_IN_ to the parameter, ensuring there is no
improper use of this macro and bringing it in line with the
MDRV_QUANTUM_TIME() macro. Updated all callers.

Added new MDRV_QUANTUM_PERFECT_CPU(x) to specify that the minimum
quantum should be enough to ensure that the specified CPU tag
only ever executes a single instruction at a time. This can be
used to explicitly require "perfect" synchronization for drivers
that have multiple CPUs with shared memory. Turned this on for
the arknoid2 driver for now as a test (the interleave on that
driver was already very close to perfect anyway).
This commit is contained in:
Aaron Giles 2008-12-20 21:17:53 +00:00
parent 0b6b3886cc
commit 5279595eee
221 changed files with 488 additions and 437 deletions

View File

@ -135,11 +135,11 @@ static int get_register_string_max_width(const device_config *device, void *base
***************************************************************************/
/*-------------------------------------------------
cpu_get_class_data - return a pointer to
the class data
get_class_data - return a pointer to the
class data
-------------------------------------------------*/
INLINE cpu_class_data *cpu_get_class_data(const device_config *device)
INLINE cpu_class_data *get_class_data(const device_config *device)
{
assert(device != NULL);
assert(device->class == DEVICE_CLASS_CPU_CHIP);
@ -148,6 +148,35 @@ INLINE cpu_class_data *cpu_get_class_data(const device_config *device)
}
/*-------------------------------------------------
get_minimum_quantum - return the minimum
quantum required for a given CPU device
-------------------------------------------------*/
INLINE attoseconds_t get_minimum_quantum(const device_config *device)
{
attoseconds_t basetick = 0;
/* fetch the base clock from the classdata if present */
if (device->token != NULL)
{
cpu_class_data *classdata = get_class_data(device);
if (classdata->attoseconds_per_cycle != 0)
basetick = classdata->attoseconds_per_cycle;
}
/* otherwise compute it from the raw data */
if (basetick == 0)
{
UINT32 baseclock = (UINT64)device->clock * cpu_get_clock_multiplier(device) / cpu_get_clock_divider(device);
basetick = HZ_TO_ATTOSECONDS(baseclock);
}
/* apply the minimum cycle count */
return basetick * cpu_get_min_cycles(device);
}
/*-------------------------------------------------
suspend_until_trigger - suspend execution
until the given trigger fires
@ -155,7 +184,7 @@ INLINE cpu_class_data *cpu_get_class_data(const device_config *device)
INLINE void suspend_until_trigger(const device_config *device, int trigger, int eatcycles)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
/* suspend the CPU immediately if it's not already */
cpu_suspend(device, SUSPEND_REASON_TRIGGER, eatcycles);
@ -177,20 +206,28 @@ INLINE void suspend_until_trigger(const device_config *device, int trigger, int
void cpuexec_init(running_machine *machine)
{
int numscreens = video_screen_count(machine->config);
attoseconds_t refresh_attosecs;
int ipf;
attotime min_quantum;
/* allocate global state */
machine->cpuexec_data = auto_malloc(sizeof(*machine->cpuexec_data));
memset(machine->cpuexec_data, 0, sizeof(*machine->cpuexec_data));
/* set the core scheduling quantum */
ipf = machine->config->cpu_slices_per_frame;
if (ipf <= 0)
ipf = 1;
refresh_attosecs = (numscreens == 0) ? HZ_TO_ATTOSECONDS(60) : video_screen_get_frame_period(machine->primary_screen).attoseconds;
timer_add_scheduling_quantum(machine, refresh_attosecs / ipf, attotime_never);
min_quantum = machine->config->minimum_quantum;
if (attotime_compare(min_quantum, attotime_zero) == 0)
min_quantum = ATTOTIME_IN_HZ(60);
if (machine->config->perfect_cpu_quantum != NULL)
{
const device_config *cpu = cputag_get_cpu(machine, machine->config->perfect_cpu_quantum);
attotime cpu_quantum;
if (cpu == NULL)
fatalerror("CPU '%s' specified for perfect interleave is not present!", machine->config->perfect_cpu_quantum);
cpu_quantum = attotime_make(0, get_minimum_quantum(cpu));
min_quantum = attotime_min(cpu_quantum, min_quantum);
}
assert(min_quantum.seconds == 0);
timer_add_scheduling_quantum(machine, min_quantum.attoseconds, attotime_never);
}
@ -214,7 +251,7 @@ void cpuexec_timeslice(running_machine *machine)
/* apply pending suspension changes */
for (cpu = machine->cpu[0]; cpu != NULL; cpu = cpu->typenext)
{
cpu_class_data *classdata = cpu_get_class_data(cpu);
cpu_class_data *classdata = get_class_data(cpu);
classdata->suspend = classdata->nextsuspend;
classdata->nextsuspend &= ~SUSPEND_REASON_TIMESLICE;
classdata->eatcycles = classdata->nexteatcycles;
@ -223,7 +260,7 @@ void cpuexec_timeslice(running_machine *machine)
/* loop over non-suspended CPUs */
for (cpu = machine->cpu[0]; cpu != NULL; cpu = cpu->typenext)
{
cpu_class_data *classdata = cpu_get_class_data(cpu);
cpu_class_data *classdata = get_class_data(cpu);
if (classdata->suspend == 0)
{
attotime delta = attotime_sub(target, classdata->localtime);
@ -275,7 +312,7 @@ void cpuexec_timeslice(running_machine *machine)
/* update the local times of all CPUs */
for (cpu = machine->cpu[0]; cpu != NULL; cpu = cpu->typenext)
{
cpu_class_data *classdata = cpu_get_class_data(cpu);
cpu_class_data *classdata = get_class_data(cpu);
/* if we're suspended and counting, process */
if (classdata->suspend != 0 && classdata->eatcycles && attotime_compare(classdata->localtime, target) < 0)
@ -382,7 +419,7 @@ static DEVICE_START( cpu )
/* get pointers to our data */
config = device->inline_config;
header = cpu_get_class_header(device);
classdata = cpu_get_class_data(device);
classdata = get_class_data(device);
/* add ourself to the global array */
if (index < ARRAY_LENGTH(device->machine->cpu))
@ -480,7 +517,7 @@ static DEVICE_START( cpu )
static DEVICE_RESET( cpu )
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
const cpu_config *config = device->inline_config;
cpu_reset_func reset;
int line;
@ -575,7 +612,7 @@ static DEVICE_SET_INFO( cpu )
/* if we have a state pointer, we can handle some stuff for free */
if (device->token != NULL)
{
const cpu_class_data *classdata = cpu_get_class_data(device);
const cpu_class_data *classdata = get_class_data(device);
if (classdata->state != NULL)
{
if (state >= CPUINFO_INT_REGISTER && state <= CPUINFO_INT_REGISTER_LAST)
@ -638,7 +675,7 @@ DEVICE_GET_INFO( cpu )
/* if we have a state pointer, we can handle some stuff for free */
if (device->token != NULL)
{
const cpu_class_data *classdata = cpu_get_class_data(device);
const cpu_class_data *classdata = get_class_data(device);
if (classdata->state != NULL)
{
if (state >= CPUINFO_INT_REGISTER && state <= CPUINFO_INT_REGISTER_LAST)
@ -690,7 +727,7 @@ DEVICE_GET_INFO( cpu )
void cpu_suspend(const device_config *device, int reason, int eatcycles)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
/* set the suspend reason and eat cycles flag */
classdata->nextsuspend |= reason;
@ -708,7 +745,7 @@ void cpu_suspend(const device_config *device, int reason, int eatcycles)
void cpu_resume(const device_config *device, int reason)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
/* clear the suspend reason and eat cycles flag */
classdata->nextsuspend &= ~reason;
@ -737,7 +774,7 @@ int cpu_is_executing(const device_config *device)
int cpu_is_suspended(const device_config *device, int reason)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
/* return true if the given reason is indicated */
return ((classdata->nextsuspend & reason) != 0);
@ -756,9 +793,14 @@ int cpu_is_suspended(const device_config *device, int reason)
int cpu_get_clock(const device_config *device)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata;
/* if we haven't been started yet, compute it manually */
if (device->token == NULL)
return (UINT64)device->clock * cpu_get_clock_multiplier(device) / cpu_get_clock_divider(device);
/* return the current clock value */
classdata = get_class_data(device);
return classdata->clock;
}
@ -770,7 +812,7 @@ int cpu_get_clock(const device_config *device)
void cpu_set_clock(const device_config *device, int clock)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
/* set the clock and update the information */
classdata->clock = clock;
@ -785,7 +827,7 @@ void cpu_set_clock(const device_config *device, int clock)
double cpu_get_clockscale(const device_config *device)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
/* return the current clock scale factor */
return classdata->clockscale;
@ -799,7 +841,7 @@ double cpu_get_clockscale(const device_config *device)
void cpu_set_clockscale(const device_config *device, double clockscale)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
/* set the scale factor and update the information */
classdata->clockscale = clockscale;
@ -814,7 +856,7 @@ void cpu_set_clockscale(const device_config *device, double clockscale)
attotime cpu_clocks_to_attotime(const device_config *device, UINT64 clocks)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
if (clocks < classdata->cycles_per_second)
return attotime_make(0, clocks * classdata->attoseconds_per_cycle);
else
@ -833,7 +875,7 @@ attotime cpu_clocks_to_attotime(const device_config *device, UINT64 clocks)
UINT64 cpu_attotime_to_clocks(const device_config *device, attotime duration)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
return mulu_32x32(duration.seconds, classdata->cycles_per_second) + (UINT64)duration.attoseconds * (UINT64)classdata->attoseconds_per_cycle;
}
@ -850,7 +892,7 @@ UINT64 cpu_attotime_to_clocks(const device_config *device, attotime duration)
attotime cpu_get_local_time(const device_config *device)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
attotime result;
/* if we're active, add in the time from the current slice */
@ -887,7 +929,7 @@ attotime cpuexec_override_local_time(running_machine *machine, attotime default_
UINT64 cpu_get_total_cycles(const device_config *device)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
if (device == device->machine->cpuexec_data->executingcpu)
return classdata->totalcycles + classdata->cycles_running - *classdata->icount;
@ -903,7 +945,7 @@ UINT64 cpu_get_total_cycles(const device_config *device)
void cpu_eat_cycles(const device_config *device, int cycles)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
/* ignore if not the executing CPU */
if (device != device->machine->cpuexec_data->executingcpu)
@ -922,7 +964,7 @@ void cpu_eat_cycles(const device_config *device, int cycles)
void cpu_adjust_icount(const device_config *device, int delta)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
/* ignore if not the executing CPU */
if (device != device->machine->cpuexec_data->executingcpu)
@ -940,7 +982,7 @@ void cpu_adjust_icount(const device_config *device, int delta)
void cpu_abort_timeslice(const device_config *device)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
int delta;
/* ignore if not the executing CPU */
@ -1006,7 +1048,7 @@ void cpu_spinuntil_trigger(const device_config *device, int trigger)
void cpu_spinuntil_int(const device_config *device)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
/* suspend until the given trigger fires */
suspend_until_trigger(device, classdata->inttrigger, TRUE);
@ -1047,7 +1089,7 @@ void cpuexec_trigger(running_machine *machine, int trigger)
/* look for suspended CPUs waiting for this trigger and unsuspend them */
for (cpu = machine->cpu[0]; cpu != NULL; cpu = cpu->typenext)
{
cpu_class_data *classdata = cpu_get_class_data(cpu);
cpu_class_data *classdata = get_class_data(cpu);
/* if we're executing, for an immediate abort */
cpu_abort_timeslice(cpu);
@ -1080,7 +1122,7 @@ void cpuexec_triggertime(running_machine *machine, int trigger, attotime duratio
void cpu_triggerint(const device_config *device)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
/* signal this CPU's interrupt trigger */
cpuexec_trigger(device->machine, classdata->inttrigger);
@ -1100,7 +1142,7 @@ void cpu_triggerint(const device_config *device)
void cpu_set_input_line(const device_config *device, int line, int state)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
int vector = (line >= 0 && line < MAX_INPUT_LINES) ? classdata->input[line].vector : 0xff;
cpu_set_input_line_and_vector(device, line, state, vector);
}
@ -1114,7 +1156,7 @@ void cpu_set_input_line(const device_config *device, int line, int state)
void cpu_set_input_line_vector(const device_config *device, int line, int vector)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
if (line >= 0 && line < MAX_INPUT_LINES)
{
classdata->input[line].vector = vector;
@ -1132,7 +1174,7 @@ void cpu_set_input_line_vector(const device_config *device, int line, int vector
void cpu_set_input_line_and_vector(const device_config *device, int line, int state, int vector)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
/* catch errors where people use PULSE_LINE for CPUs that don't support it */
if (state == PULSE_LINE && line != INPUT_LINE_NMI && line != INPUT_LINE_RESET)
@ -1175,7 +1217,7 @@ void cpu_set_input_line_and_vector(const device_config *device, int line, int st
void cpu_set_irq_callback(const device_config *device, cpu_irq_callback callback)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
classdata->driver_irq = callback;
}
@ -1192,7 +1234,7 @@ void cpu_set_irq_callback(const device_config *device, cpu_irq_callback callback
int cpu_getiloops(const device_config *device)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
return classdata->iloops;
}
@ -1209,12 +1251,12 @@ int cpu_getiloops(const device_config *device)
static void update_clock_information(const device_config *device)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
INT64 attos;
/* recompute cps and spc */
classdata->cycles_per_second = (double)classdata->clock * classdata->clockscale;
classdata->attoseconds_per_cycle = ATTOSECONDS_PER_SECOND / ((double)classdata->clock * classdata->clockscale);
classdata->attoseconds_per_cycle = HZ_TO_ATTOSECONDS((double)classdata->clock * classdata->clockscale);
/* update the CPU's divisor */
attos = classdata->attoseconds_per_cycle;
@ -1238,28 +1280,25 @@ static void update_clock_information(const device_config *device)
static void compute_perfect_interleave(running_machine *machine)
{
if (machine->cpu[0] != NULL && machine->cpu[0]->token != NULL)
if (machine->cpu[0] != NULL)
{
cpu_class_data *classdata = cpu_get_class_data(machine->cpu[0]);
attoseconds_t smallest = classdata->attoseconds_per_cycle * cpu_get_min_cycles(machine->cpu[0]);
attoseconds_t smallest = get_minimum_quantum(machine->cpu[0]);
attoseconds_t perfect = ATTOSECONDS_PER_SECOND - 1;
const device_config *cpu;
/* start with a huge time factor and find the 2nd smallest cycle time */
for (cpu = machine->cpu[0]->typenext; cpu != NULL; cpu = cpu->typenext)
if (cpu->token != NULL)
{
cpu_class_data *classdata = cpu_get_class_data(cpu);
attoseconds_t curtime = classdata->attoseconds_per_cycle * cpu_get_min_cycles(cpu);
attoseconds_t curquantum = get_minimum_quantum(cpu);
/* find the 2nd smallest cycle interval */
if (curtime < smallest)
if (curquantum < smallest)
{
perfect = smallest;
smallest = curtime;
smallest = curquantum;
}
else if (curtime < perfect)
perfect = classdata->attoseconds_per_cycle;
else if (curquantum < perfect)
perfect = curquantum;
}
/* adjust the final value */
@ -1286,7 +1325,7 @@ static void on_vblank(const device_config *device, void *param, int vblank_state
for (cpu = device->machine->cpu[0]; cpu != NULL; cpu = cpu->typenext)
{
const cpu_config *config = cpu->inline_config;
cpu_class_data *classdata = cpu_get_class_data(cpu);
cpu_class_data *classdata = get_class_data(cpu);
int cpu_interested;
/* start the interrupt counter */
@ -1334,7 +1373,7 @@ static TIMER_CALLBACK( trigger_partial_frame_interrupt )
{
const device_config *device = ptr;
const cpu_config *config = device->inline_config;
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
if (classdata->iloops == 0)
classdata->iloops = config->vblank_interrupts_per_frame;
@ -1386,7 +1425,7 @@ static TIMER_CALLBACK( triggertime_callback )
static TIMER_CALLBACK( empty_event_queue )
{
const device_config *device = ptr;
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
cpu_input_data *inputline = &classdata->input[param];
int curevent;
@ -1475,7 +1514,7 @@ static TIMER_CALLBACK( empty_event_queue )
static IRQ_CALLBACK( standard_irq_callback )
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
cpu_input_data *inputline = &classdata->input[irqline];
int vector = inputline->curvector;
@ -1508,7 +1547,7 @@ static IRQ_CALLBACK( standard_irq_callback )
static void register_save_states(const device_config *device)
{
cpu_class_data *classdata = cpu_get_class_data(device);
cpu_class_data *classdata = get_class_data(device);
int line;
state_save_register_device_item(device, 0, classdata->suspend);

View File

@ -3022,6 +3022,7 @@ static int memory_view_read(debug_view_memory *memdata, UINT8 size, offs_t offs,
int ismapped;
ismapped = memdata->no_translation ? TRUE : memory_address_physical(space, TRANSLATE_READ_DEBUG, &dummyaddr);
*data = ~(UINT64)0;
if (ismapped)
{
switch (size)

View File

@ -272,9 +272,13 @@ static void machine_config_detokenize(machine_config *config, const machine_conf
TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, config->driver_data_size, 24);
break;
case MCONFIG_TOKEN_INTERLEAVE:
TOKEN_UNGET_UINT32(tokens);
TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, config->cpu_slices_per_frame, 24);
case MCONFIG_TOKEN_QUANTUM_TIME:
TOKEN_EXTRACT_UINT64(tokens, data64);
config->minimum_quantum = UINT64_ATTOTIME_TO_ATTOTIME(data64);
break;
case MCONFIG_TOKEN_QUANTUM_PERFECT_CPU:
config->perfect_cpu_quantum = TOKEN_GET_STRING(tokens);
break;
case MCONFIG_TOKEN_WATCHDOG_VBLANK:

View File

@ -46,7 +46,8 @@ enum
MCONFIG_TOKEN_DEVICE_CONFIG_DATAFP64,
MCONFIG_TOKEN_DRIVER_DATA,
MCONFIG_TOKEN_INTERLEAVE,
MCONFIG_TOKEN_QUANTUM_TIME,
MCONFIG_TOKEN_QUANTUM_PERFECT_CPU,
MCONFIG_TOKEN_WATCHDOG_VBLANK,
MCONFIG_TOKEN_WATCHDOG_TIME,
@ -113,7 +114,8 @@ struct _machine_config
{
UINT32 driver_data_size; /* amount of memory needed for driver_data */
UINT32 cpu_slices_per_frame; /* number of times to interleave execution per frame */
attotime minimum_quantum; /* minimum scheduling quantum */
const char * perfect_cpu_quantum; /* tag of CPU to use for "perfect" scheduling */
INT32 watchdog_vblank_count; /* number of VBLANKs until the watchdog kills us */
attotime watchdog_time; /* length of time until the watchdog kills us */
@ -271,15 +273,20 @@ union _machine_config_token
#define MDRV_DRIVER_DATA(_struct) \
TOKEN_UINT32_PACK2(MCONFIG_TOKEN_DRIVER_DATA, 8, sizeof(_struct), 24),
#define MDRV_INTERLEAVE(_interleave) \
TOKEN_UINT32_PACK2(MCONFIG_TOKEN_INTERLEAVE, 8, _interleave, 24),
#define MDRV_QUANTUM_TIME(_time) \
TOKEN_UINT32_PACK1(MCONFIG_TOKEN_QUANTUM_TIME, 8), \
TOKEN_UINT64(UINT64_ATTOTIME_IN_##_time),
#define MDRV_QUANTUM_PERFECT_CPU(_cputag) \
TOKEN_UINT32_PACK1(MCONFIG_TOKEN_QUANTUM_PERFECT_CPU, 8), \
TOKEN_STRING(_cputag),
#define MDRV_WATCHDOG_VBLANK_INIT(_count) \
TOKEN_UINT32_PACK2(MCONFIG_TOKEN_WATCHDOG_VBLANK, 8, _count, 24),
#define MDRV_WATCHDOG_TIME_INIT(_time) \
TOKEN_UINT32_PACK1(MCONFIG_TOKEN_WATCHDOG_TIME, 8), \
TOKEN_UINT64(_time),
TOKEN_UINT64(UINT64_ATTOTIME_IN_##_time),
/* core functions */

View File

@ -300,7 +300,7 @@ MACHINE_DRIVER_START( carnival_audio )
MDRV_CPU_PROGRAM_MAP(carnival_audio_map,0)
MDRV_CPU_IO_MAP(carnival_audio_io_map,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
MDRV_SOUND_ADD("psg", AY8910, PSG_CLOCK)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)

View File

@ -1034,7 +1034,7 @@ static MACHINE_DRIVER_START( 40love )
MDRV_CPU_ADD("mcu",M68705,18432000/6) /* OK */
MDRV_CPU_PROGRAM_MAP(mcu_map,0)
MDRV_INTERLEAVE(100) /* high interleave to ensure proper synchronization of CPUs */
MDRV_QUANTUM_TIME(HZ(6000)) /* high interleave to ensure proper synchronization of CPUs */
MDRV_MACHINE_RESET(ta7630) /* init machine */
/* video hardware */

View File

@ -619,10 +619,10 @@ static MACHINE_DRIVER_START( airbustr )
MDRV_CPU_IO_MAP(sound_io_map, 0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold) // nmi are caused by sub cpu writing a sound command
MDRV_INTERLEAVE(100) // Palette RAM is filled by sub cpu with data supplied by main cpu
MDRV_QUANTUM_TIME(HZ(6000)) // Palette RAM is filled by sub cpu with data supplied by main cpu
// Maybe a high value is safer in order to avoid glitches
MDRV_MACHINE_RESET(airbustr)
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_SEC(3)) /* a guess, and certainly wrong */
MDRV_WATCHDOG_TIME_INIT(SEC(3)) /* a guess, and certainly wrong */
// video hardware
@ -656,7 +656,7 @@ MACHINE_DRIVER_END
static MACHINE_DRIVER_START( airbusb )
MDRV_IMPORT_FROM(airbustr)
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_SEC(0)) // no protection device or watchdog
MDRV_WATCHDOG_TIME_INIT(SEC(0)) // no protection device or watchdog
MACHINE_DRIVER_END

View File

@ -239,7 +239,7 @@ static MACHINE_DRIVER_START( ajax )
MDRV_CPU_ADD("audio", Z80, 3579545) /* 3.58 MHz */
MDRV_CPU_PROGRAM_MAP(ajax_sound_map,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
MDRV_MACHINE_RESET(ajax)

View File

@ -1025,7 +1025,7 @@ static MACHINE_DRIVER_START( ampoker2 )
MDRV_CPU_PROGRAM_MAP(ampoker2_map, 0)
MDRV_CPU_IO_MAP(ampoker2_io_map, 0)
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 1536)
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_MSEC(200)) /* 200 ms, measured */
MDRV_WATCHDOG_TIME_INIT(MSEC(200)) /* 200 ms, measured */
MDRV_NVRAM_HANDLER(generic_0fill)

View File

@ -608,7 +608,7 @@ static MACHINE_DRIVER_START( angelkds )
MDRV_CPU_PROGRAM_MAP(sub_map,0)
MDRV_CPU_IO_MAP(sub_portmap,0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -525,7 +525,7 @@ static MACHINE_DRIVER_START( argus )
MDRV_CPU_IO_MAP(sound_portmap_2,0)
#endif
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -579,7 +579,7 @@ static MACHINE_DRIVER_START( valtric )
MDRV_CPU_PROGRAM_MAP(sound_map_a,0)
MDRV_CPU_IO_MAP(sound_portmap_2,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -624,7 +624,7 @@ static MACHINE_DRIVER_START( butasan )
MDRV_CPU_PROGRAM_MAP(sound_map_b,0)
MDRV_CPU_IO_MAP(sound_portmap_2,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -768,7 +768,7 @@ static MACHINE_DRIVER_START( arkanoid )
MDRV_CPU_ADD("mcu", M68705, XTAL_12MHz/4) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(mcu_map, 0)
MDRV_INTERLEAVE(100) // 100 CPU slices per second to synchronize between the MCU and the main CPU
MDRV_QUANTUM_TIME(HZ(6000)) // 100 CPU slices per second to synchronize between the MCU and the main CPU
MDRV_MACHINE_START(arkanoid)
MDRV_MACHINE_RESET(arkanoid)

View File

@ -700,7 +700,7 @@ static MACHINE_DRIVER_START( artmagic )
MDRV_CPU_PROGRAM_MAP(tms_map,0)
MDRV_MACHINE_RESET(artmagic)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_NVRAM_HANDLER(generic_1fill)
/* video hardware */

View File

@ -797,7 +797,7 @@ static MACHINE_DRIVER_START( bonzeadv )
MDRV_CPU_ADD("audio", Z80,4000000) /* sound CPU, also required for test mode */
MDRV_CPU_PROGRAM_MAP(bonzeadv_z80_map,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -836,7 +836,7 @@ static MACHINE_DRIVER_START( asuka )
MDRV_CPU_ADD("audio", Z80, XTAL_16MHz/4) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(z80_map,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -878,7 +878,7 @@ static MACHINE_DRIVER_START( cadash )
MDRV_CPU_ADD("audio", Z80, XTAL_8MHz/2) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(cadash_z80_map,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -916,7 +916,7 @@ static MACHINE_DRIVER_START( mofflott )
MDRV_CPU_ADD("audio", Z80, 4000000) /* 4 MHz ??? */
MDRV_CPU_PROGRAM_MAP(z80_map,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -958,7 +958,7 @@ static MACHINE_DRIVER_START( galmedes )
MDRV_CPU_ADD("audio", Z80, 4000000) /* 4 MHz ??? */
MDRV_CPU_PROGRAM_MAP(cadash_z80_map,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -996,7 +996,7 @@ static MACHINE_DRIVER_START( eto )
MDRV_CPU_ADD("audio", Z80, 4000000) /* 4 MHz ??? */
MDRV_CPU_PROGRAM_MAP(cadash_z80_map,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -1194,7 +1194,7 @@ static MACHINE_DRIVER_START( balsente )
MDRV_CPU_PROGRAM_MAP(cpu2_map,0)
MDRV_CPU_IO_MAP(cpu2_io_map,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
MDRV_MACHINE_RESET(balsente)
MDRV_NVRAM_HANDLER(generic_0fill)
@ -1247,7 +1247,7 @@ static MACHINE_DRIVER_START( shrike )
MDRV_CPU_ADD("68k", M68000, 8000000)
MDRV_CPU_PROGRAM_MAP(shrike68k_map,0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MACHINE_DRIVER_END

View File

@ -402,7 +402,7 @@ static MACHINE_DRIVER_START( baraduke )
MDRV_CPU_IO_MAP(mcu_port_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_INTERLEAVE(100) /* we need heavy synch */
MDRV_QUANTUM_TIME(HZ(6000)) /* we need heavy synch */
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -262,7 +262,7 @@ static MACHINE_DRIVER_START( battlane )
MDRV_CPU_ADD("sub", M6809, 1250000) /* 1.25 MHz ? */
MDRV_CPU_PROGRAM_MAP(battlane_map, 0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -2220,7 +2220,7 @@ INPUT_PORTS_END
static MACHINE_DRIVER_START( scorpion2_vid )
MDRV_MACHINE_RESET( init ) // main scorpion2 board initialisation
MDRV_INTERLEAVE(16) // needed for serial communication !!
MDRV_QUANTUM_TIME(HZ(960)) // needed for serial communication !!
MDRV_CPU_ADD("main", M6809, MASTER_CLOCK/4 ) // 6809 CPU at 2 Mhz
MDRV_CPU_PROGRAM_MAP(memmap_vid,0) // setup scorpion2 board memorymap
MDRV_CPU_PERIODIC_INT(timer_irq, 1000) // generate 1000 IRQ's per second

View File

@ -446,7 +446,7 @@ static MACHINE_DRIVER_START( bigevglf )
MDRV_CPU_ADD("mcu", M68705,2000000) /* ??? */
MDRV_CPU_PROGRAM_MAP(m68705_map,0)
MDRV_INTERLEAVE(10) /* 10 CPU slices per frame - interleaving is forced on the fly */
MDRV_QUANTUM_TIME(HZ(600)) /* 10 CPU slices per frame - interleaving is forced on the fly */
MDRV_MACHINE_RESET(bigevglf)
/* video hardware */

View File

@ -484,7 +484,7 @@ static MACHINE_DRIVER_START( bking3 )
MDRV_MACHINE_RESET(buggychl)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MACHINE_DRIVER_END
/***************************************************************************

View File

@ -322,7 +322,7 @@ static MACHINE_DRIVER_START( bladestl )
MDRV_CPU_ADD("audio", M6809, 2000000)
MDRV_CPU_PROGRAM_MAP(sound_map, 0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -1337,7 +1337,7 @@ static MACHINE_DRIVER_START( bnstars )
// MDRV_CPU_ADD("audio", Z80, 4000000)
// MDRV_CPU_PROGRAM_MAP(bnstars_z80_map, 0)
MDRV_INTERLEAVE(1000)
MDRV_QUANTUM_TIME(HZ(60000))
MDRV_MACHINE_RESET(ms32)

View File

@ -701,7 +701,7 @@ static MACHINE_DRIVER_START( tokio )
MDRV_CPU_ADD("audio", Z80, MAIN_XTAL/8) // 3 MHz
MDRV_CPU_PROGRAM_MAP(tokio_sound_map, 0) // NMIs are triggered by the main CPU, IRQs are triggered by the YM2203
MDRV_INTERLEAVE(100) // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
MDRV_QUANTUM_TIME(HZ(6000)) // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
// video hardware
@ -745,7 +745,7 @@ static MACHINE_DRIVER_START( bublbobl )
MDRV_CPU_PROGRAM_MAP(mcu_map, 0)
MDRV_CPU_VBLANK_INT("main", irq0_line_pulse) // comes from the same clock that latches the INT pin on the second Z80
MDRV_INTERLEAVE(100) // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
MDRV_QUANTUM_TIME(HZ(6000)) // 100 CPU slices per frame - a high value to ensure proper synchronization of the CPUs
// video hardware

View File

@ -399,7 +399,7 @@ static MACHINE_DRIVER_START( bwing )
MDRV_CPU_IO_MAP(bwp3_io_map,0)
MDRV_CPU_PERIODIC_INT(bwp3_interrupt, 1000)
MDRV_INTERLEAVE(300) // high enough?
MDRV_QUANTUM_TIME(HZ(18000)) // high enough?
MDRV_MACHINE_RESET(bwing)

View File

@ -560,7 +560,7 @@ static MACHINE_DRIVER_START( cabalbl )
MDRV_CPU_IO_MAP(cabalbl_talk2_portmap,0)
MDRV_CPU_PERIODIC_INT(irq0_line_hold,8000)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
MDRV_MACHINE_RESET(cabalbl)

View File

@ -2326,7 +2326,7 @@ static MACHINE_DRIVER_START( mazinger )
MDRV_CPU_PROGRAM_MAP(mazinger_sound_readmem,mazinger_sound_writemem)
MDRV_CPU_IO_MAP(mazinger_sound_readport,mazinger_sound_writeport)
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_SEC(3)) /* a guess, and certainly wrong */
MDRV_WATCHDOG_TIME_INIT(SEC(3)) /* a guess, and certainly wrong */
MDRV_MACHINE_RESET(cave)
MDRV_NVRAM_HANDLER(cave)
@ -2382,7 +2382,7 @@ static MACHINE_DRIVER_START( metmqstr )
MDRV_CPU_PROGRAM_MAP(metmqstr_sound_readmem,metmqstr_sound_writemem)
MDRV_CPU_IO_MAP(metmqstr_sound_readport,metmqstr_sound_writeport)
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_SEC(3)) /* a guess, and certainly wrong */
MDRV_WATCHDOG_TIME_INIT(SEC(3)) /* a guess, and certainly wrong */
MDRV_MACHINE_RESET(cave) /* start with the watchdog armed */
MDRV_NVRAM_HANDLER(cave)
@ -2498,7 +2498,7 @@ static MACHINE_DRIVER_START( sailormn )
MDRV_CPU_PROGRAM_MAP(sailormn_sound_readmem,sailormn_sound_writemem)
MDRV_CPU_IO_MAP(sailormn_sound_readport,sailormn_sound_writeport)
// MDRV_INTERLEAVE(10)
// MDRV_QUANTUM_TIME(HZ(600))
MDRV_MACHINE_RESET(cave)
MDRV_NVRAM_HANDLER(cave)

View File

@ -639,7 +639,7 @@ static MACHINE_DRIVER_START( champmcu )
MDRV_CPU_PROGRAM_MAP(mcu_map,0)
/* to MCU timeout champbbj */
MDRV_INTERLEAVE(50)
MDRV_QUANTUM_TIME(HZ(3000))
MACHINE_DRIVER_END

View File

@ -506,7 +506,7 @@ static MACHINE_DRIVER_START( chinagat )
MDRV_CPU_ADD("audio", Z80, 3579545) /* 3.579545 MHz */
MDRV_CPU_PROGRAM_MAP(sound_map,0)
MDRV_INTERLEAVE(100) /* heavy interleaving to sync up sprite<->main cpu's */
MDRV_QUANTUM_TIME(HZ(6000)) /* heavy interleaving to sync up sprite<->main cpu's */
MDRV_MACHINE_RESET(chinagat)
@ -554,7 +554,7 @@ static MACHINE_DRIVER_START( saiyugb1 )
MDRV_CPU_PROGRAM_MAP(i8748_map,0)
MDRV_CPU_IO_MAP(i8748_portmap,0)
MDRV_INTERLEAVE(100) /* heavy interleaving to sync up sprite<->main cpu's */
MDRV_QUANTUM_TIME(HZ(6000)) /* heavy interleaving to sync up sprite<->main cpu's */
MDRV_MACHINE_RESET(chinagat)
@ -598,7 +598,7 @@ static MACHINE_DRIVER_START( saiyugb2 )
MDRV_CPU_ADD("audio", Z80, 3579545) /* 3.579545 MHz oscillator */
MDRV_CPU_PROGRAM_MAP(ym2203c_sound_map,0)
MDRV_INTERLEAVE(100) /* heavy interleaving to sync up sprite<->main cpu's */
MDRV_QUANTUM_TIME(HZ(6000)) /* heavy interleaving to sync up sprite<->main cpu's */
MDRV_MACHINE_RESET(chinagat)

View File

@ -354,7 +354,7 @@ static MACHINE_DRIVER_START( chqflag )
MDRV_CPU_ADD("audio", Z80, XTAL_3_579545MHz) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(chqflag_readmem_sound,chqflag_writemem_sound)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)

View File

@ -1778,7 +1778,7 @@ static MACHINE_DRIVER_START( bigrun )
MDRV_CPU_PROGRAM_MAP(bigrun_sound_readmem,bigrun_sound_writemem)
MDRV_CPU_VBLANK_INT_HACK(irq4_line_hold,CISCHEAT_SOUND_INTERRUPT_NUM)
MDRV_INTERLEAVE(20)
MDRV_QUANTUM_TIME(HZ(1200))
/* video hardware */
MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_HAS_SHADOWS)

View File

@ -338,7 +338,7 @@ static MACHINE_DRIVER_START( cloak )
MDRV_CPU_PROGRAM_MAP(slave_map,0)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2)
MDRV_INTERLEAVE(5)
MDRV_QUANTUM_TIME(HZ(300))
MDRV_NVRAM_HANDLER(generic_0fill)

View File

@ -583,7 +583,7 @@ static MACHINE_DRIVER_START( combasc )
MDRV_CPU_ADD("audio", Z80,3579545) /* 3.579545 MHz */
MDRV_CPU_PROGRAM_MAP(combasc_readmem_sound,combasc_writemem_sound)
MDRV_INTERLEAVE(20)
MDRV_QUANTUM_TIME(HZ(1200))
MDRV_MACHINE_RESET(combasc)
@ -624,7 +624,7 @@ static MACHINE_DRIVER_START( combascb )
MDRV_CPU_ADD("audio", Z80,3579545) /* 3.579545 MHz */
MDRV_CPU_PROGRAM_MAP(combasc_readmem_sound,combasc_writemem_sound) /* FAKE */
MDRV_INTERLEAVE(20)
MDRV_QUANTUM_TIME(HZ(1200))
MDRV_MACHINE_RESET(combasc)

View File

@ -256,7 +256,7 @@ static MACHINE_DRIVER_START( contra )
MDRV_CPU_ADD("audio", M6809, 2000000)
MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound)
MDRV_INTERLEAVE(10) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
MDRV_QUANTUM_TIME(HZ(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -376,7 +376,7 @@ static MACHINE_DRIVER_START( crgolf )
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_MACHINE_START(crgolf)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
/* video hardware */
MDRV_IMPORT_FROM(crgolf_video)

View File

@ -505,7 +505,7 @@ static MACHINE_DRIVER_START( cubeqst )
MDRV_CPU_PROGRAM_MAP(line_sound_map, 0)
MDRV_CPU_CONFIG(snd_config)
MDRV_INTERLEAVE(800)
MDRV_QUANTUM_TIME(HZ(48000))
MDRV_MACHINE_START(cubeqst)
MDRV_MACHINE_RESET(cubeqst)

View File

@ -426,7 +426,7 @@ static MACHINE_DRIVER_START( cyberbal )
MDRV_CPU_PROGRAM_MAP(sound_68k_map,0)
MDRV_CPU_PERIODIC_INT(cyberbal_sound_68k_irq_gen, 10000)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
MDRV_MACHINE_RESET(cyberbal)
MDRV_NVRAM_HANDLER(atarigen)

View File

@ -574,7 +574,7 @@ static MACHINE_DRIVER_START( cybertnk )
MDRV_CPU_ADD("audio", Z80,3579500)
MDRV_CPU_PROGRAM_MAP(sound_mem,0)
MDRV_INTERLEAVE(100)//arbitrary value,needed to get the communication to work
MDRV_QUANTUM_TIME(HZ(6000))//arbitrary value,needed to get the communication to work
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -846,7 +846,7 @@ static MACHINE_DRIVER_START( darius )
MDRV_CPU_PROGRAM_MAP(darius_sound2_readmem,darius_sound2_writemem)
MDRV_CPU_IO_MAP(darius_sound2_io_map,0)
MDRV_INTERLEAVE(10) /* 10 CPU slices per frame ? */
MDRV_QUANTUM_TIME(HZ(600)) /* 10 CPU slices per frame ? */
MDRV_MACHINE_START(darius)
MDRV_MACHINE_RESET(darius)

View File

@ -565,7 +565,7 @@ static MACHINE_DRIVER_START( dassault )
MDRV_CPU_ADD("audio", H6280,32220000/8) /* Accurate */
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
MDRV_INTERLEAVE(140) /* 140 CPU slices per frame */
MDRV_QUANTUM_TIME(HZ(8400)) /* 140 CPU slices per frame */
/* video hardware */
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)

View File

@ -409,7 +409,7 @@ static MACHINE_DRIVER_START( ddayjlc )
MDRV_CPU_PROGRAM_MAP(sound_cpu,0)
MDRV_CPU_VBLANK_INT("main", ddayjlc_snd_interrupt)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -987,7 +987,7 @@ static MACHINE_DRIVER_START( ddragon )
MDRV_CPU_ADD("sound", M6809, MAIN_CLOCK/2) /* 6MHz / 4 internally */
MDRV_CPU_PROGRAM_MAP(sound_map,0)
MDRV_INTERLEAVE(1000) /* heavy interleaving to sync up sprite<->main cpu's */
MDRV_QUANTUM_TIME(HZ(60000)) /* heavy interleaving to sync up sprite<->main cpu's */
MDRV_MACHINE_START(ddragon)
MDRV_MACHINE_RESET(ddragon)
@ -1052,7 +1052,7 @@ static MACHINE_DRIVER_START( ddgn6809 )
MDRV_CPU_ADD("sound", M6809, MAIN_CLOCK/2) /* 6MHz / 4 internally */
MDRV_CPU_PROGRAM_MAP(sound_map,0)
MDRV_INTERLEAVE(1000) /* heavy interleaving to sync up sprite<->main cpu's */
MDRV_QUANTUM_TIME(HZ(60000)) /* heavy interleaving to sync up sprite<->main cpu's */
MDRV_MACHINE_START(ddragon)
MDRV_MACHINE_RESET(ddragon)
@ -1098,7 +1098,7 @@ static MACHINE_DRIVER_START( ddragon2 )
MDRV_CPU_ADD("sound", Z80, 3579545)
MDRV_CPU_PROGRAM_MAP(dd2_sound_map,0)
MDRV_INTERLEAVE(1000) /* heavy interleaving to sync up sprite<->main cpu's */
MDRV_QUANTUM_TIME(HZ(60000)) /* heavy interleaving to sync up sprite<->main cpu's */
MDRV_MACHINE_START(ddragon)
MDRV_MACHINE_RESET(ddragon)

View File

@ -350,7 +350,7 @@ static MACHINE_DRIVER_START( ddribble )
MDRV_CPU_ADD("cpu2", M6809, XTAL_18_432MHz/12) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(readmem_cpu2,writemem_cpu2)
MDRV_INTERLEAVE(100) /* we need heavy synch */
MDRV_QUANTUM_TIME(HZ(6000)) /* we need heavy synch */
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -238,7 +238,7 @@ static MACHINE_DRIVER_START( deadang )
SEIBU3A_SOUND_SYSTEM_CPU(XTAL_14_31818MHz/4)
MDRV_INTERLEAVE(1) // the game stops working with higher interleave rates..
MDRV_QUANTUM_TIME(HZ(60)) // the game stops working with higher interleave rates..
MDRV_MACHINE_RESET(seibu_sound)

View File

@ -984,7 +984,7 @@ static MACHINE_DRIVER_START( robocop )
MDRV_CPU_ADD("sub", H6280,21477200/16) /* 21.4772MHz clock */
MDRV_CPU_PROGRAM_MAP(robocop_sub_readmem,robocop_sub_writemem)
MDRV_INTERLEAVE(50) /* Interleave between HuC6280 & 68000 */
MDRV_QUANTUM_TIME(HZ(3000)) /* Interleave between HuC6280 & 68000 */
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -1073,7 +1073,7 @@ static MACHINE_DRIVER_START( hippodrm )
MDRV_CPU_ADD("sub", H6280,21477200/16) /* 21.4772MHz clock */
MDRV_CPU_PROGRAM_MAP(hippodrm_sub_readmem,hippodrm_sub_writemem)
MDRV_INTERLEAVE(5) /* Interleave between H6280 & 68000 */
MDRV_QUANTUM_TIME(HZ(300)) /* Interleave between H6280 & 68000 */
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -2223,7 +2223,7 @@ static MACHINE_DRIVER_START( oscar )
MDRV_CPU_ADD("audio", M6502, XTAL_12MHz/8)
MDRV_CPU_PROGRAM_MAP(dec8_s_readmem,oscar_s_writemem)
/* NMIs are caused by the main CPU */
MDRV_INTERLEAVE(40) /* 40 CPU slices per frame */
MDRV_QUANTUM_TIME(HZ(2400)) /* 40 CPU slices per frame */
/* video hardware */
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
@ -2267,7 +2267,7 @@ static MACHINE_DRIVER_START( lastmiss )
MDRV_CPU_ADD("audio", M6502, 1500000)
MDRV_CPU_PROGRAM_MAP(ym3526_s_readmem,ym3526_s_writemem)
/* NMIs are caused by the main CPU */
MDRV_INTERLEAVE(200)
MDRV_QUANTUM_TIME(HZ(12000))
/* video hardware */
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
@ -2311,7 +2311,7 @@ static MACHINE_DRIVER_START( shackled )
MDRV_CPU_ADD("audio", M6502, 1500000)
MDRV_CPU_PROGRAM_MAP(ym3526_s_readmem,ym3526_s_writemem)
/* NMIs are caused by the main CPU */
MDRV_INTERLEAVE(80)
MDRV_QUANTUM_TIME(HZ(4800))
/* video hardware */
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
@ -2356,7 +2356,7 @@ static MACHINE_DRIVER_START( csilver )
MDRV_CPU_ADD("audio", M6502, XTAL_12MHz/8) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(csilver_s_readmem,csilver_s_writemem)
/* NMIs are caused by the main CPU */
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
/* video hardware */
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)

View File

@ -390,7 +390,7 @@ static MACHINE_DRIVER_START( decocass )
MDRV_CPU_ADD("mcu", I8041,500000*15) /* 500 kHz ( I doubt it is 400kHz Al! )*/
MDRV_CPU_IO_MAP(decocass_mcu_portmap,0)
MDRV_INTERLEAVE(70) /* interleave CPUs */
MDRV_QUANTUM_TIME(HZ(4200)) /* interleave CPUs */
MDRV_MACHINE_RESET(decocass)

View File

@ -841,7 +841,7 @@ static MACHINE_DRIVER_START( djboy )
MDRV_CPU_IO_MAP(cpu2_port_am,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_SCREEN_ADD("main", RASTER)
MDRV_SCREEN_REFRESH_RATE(60)

View File

@ -743,7 +743,7 @@ static MACHINE_DRIVER_START( dleuro )
MDRV_Z80CTC_ADD("ctc", MASTER_CLOCK_EURO/4 /* same as "main" */, ctc_intf)
MDRV_Z80SIO_ADD("sio", MASTER_CLOCK_EURO/4 /* same as "main" */, sio_intf)
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_HZ(MASTER_CLOCK_EURO/(16*16*16*16*16*8)))
MDRV_WATCHDOG_TIME_INIT(HZ(MASTER_CLOCK_EURO/(16*16*16*16*16*8)))
MDRV_MACHINE_START(dlair)
MDRV_MACHINE_RESET(dlair)

View File

@ -249,7 +249,7 @@ static MACHINE_DRIVER_START( dogfgt )
MDRV_CPU_ADD("sub", M6502, 1500000) /* 1.5 MHz ???? */
MDRV_CPU_PROGRAM_MAP(sub_readmem,sub_writemem)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -225,7 +225,7 @@ static MACHINE_DRIVER_START( drmicro )
MDRV_CPU_IO_MAP(io_map,0)
MDRV_CPU_VBLANK_INT("main", drmicro_interrupt)
MDRV_INTERLEAVE(1)
MDRV_QUANTUM_TIME(HZ(60))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -680,7 +680,7 @@ static MACHINE_DRIVER_START( dunhuang )
MDRV_CPU_IO_MAP(dunhuang_io_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_SEC(5))
MDRV_WATCHDOG_TIME_INIT(SEC(5))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -293,7 +293,7 @@ static MACHINE_DRIVER_START( dynduke )
SEIBU_SOUND_SYSTEM_CPU(14318180/4)
MDRV_INTERLEAVE(60)
MDRV_QUANTUM_TIME(HZ(3600))
MDRV_MACHINE_RESET(seibu_sound)

View File

@ -417,7 +417,7 @@ static MACHINE_DRIVER_START( eprom )
MDRV_CPU_ADD("extra", M68000, ATARI_CLOCK_14MHz/2)
MDRV_CPU_PROGRAM_MAP(extra_map,0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_MACHINE_RESET(eprom)
MDRV_NVRAM_HANDLER(atarigen)
@ -448,7 +448,7 @@ static MACHINE_DRIVER_START( klaxp )
MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT("main", atarigen_video_int_gen)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
MDRV_MACHINE_RESET(klaxp)
MDRV_NVRAM_HANDLER(atarigen)
@ -478,7 +478,7 @@ static MACHINE_DRIVER_START( guts )
MDRV_CPU_PROGRAM_MAP(guts_map,0)
MDRV_CPU_VBLANK_INT("main", atarigen_video_int_gen)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
MDRV_MACHINE_RESET(eprom)
MDRV_NVRAM_HANDLER(atarigen)

View File

@ -844,7 +844,7 @@ static MACHINE_DRIVER_START( venture )
MDRV_CPU_MODIFY("main")
MDRV_CPU_PROGRAM_MAP(exidy_map,venture_map)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* audio hardware */
MDRV_IMPORT_FROM(venture_audio)
@ -865,7 +865,7 @@ static MACHINE_DRIVER_START( mtrap )
/* basic machine hardware */
MDRV_IMPORT_FROM(venture)
MDRV_INTERLEAVE(32)
MDRV_QUANTUM_TIME(HZ(1920))
/* audio hardware */
MDRV_IMPORT_FROM(mtrap_cvsd_audio)

View File

@ -501,7 +501,7 @@ static MACHINE_DRIVER_START( galsnew )
MDRV_PALETTE_INIT(berlwall)
/* arm watchdog */
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_SEC(3)) /* a guess, and certainly wrong */
MDRV_WATCHDOG_TIME_INIT(SEC(3)) /* a guess, and certainly wrong */
/* sound hardware */
MDRV_SPEAKER_STANDARD_MONO("mono")
@ -520,7 +520,7 @@ static MACHINE_DRIVER_START( fantasia )
MDRV_CPU_MODIFY("main")
MDRV_CPU_PROGRAM_MAP(fantasia_map,0)
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_SEC(0)) /* a guess, and certainly wrong */
MDRV_WATCHDOG_TIME_INIT(SEC(0)) /* a guess, and certainly wrong */
MACHINE_DRIVER_END

View File

@ -489,7 +489,7 @@ static MACHINE_DRIVER_START( exterm )
MDRV_CPU_ADD("audioslave", M6502, 2000000)
MDRV_CPU_PROGRAM_MAP(sound_slave_map,0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_MACHINE_RESET(exterm)
MDRV_NVRAM_HANDLER(generic_0fill)

View File

@ -341,7 +341,7 @@ static MACHINE_DRIVER_START( exzisus )
MDRV_CPU_PROGRAM_MAP(cpuc_readmem,cpuc_writemem)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_INTERLEAVE(10) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
MDRV_QUANTUM_TIME(HZ(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -485,7 +485,7 @@ static MACHINE_DRIVER_START( f1gp )
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
MDRV_CPU_IO_MAP(sound_io_map,0)
MDRV_INTERLEAVE(100) /* 100 CPU slices per frame */
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame */
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -524,7 +524,7 @@ static MACHINE_DRIVER_START( f1gpb )
MDRV_CPU_VBLANK_INT("main", irq1_line_hold)
/* NO sound CPU */
MDRV_INTERLEAVE(100) /* 100 CPU slices per frame */
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame */
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -830,7 +830,7 @@ static MACHINE_DRIVER_START( fantland )
MDRV_MACHINE_RESET(fantland)
MDRV_INTERLEAVE(8000/60) // sound irq must feed the DAC at 8kHz
MDRV_QUANTUM_TIME(HZ(8000)) // sound irq must feed the DAC at 8kHz
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -658,10 +658,10 @@ static MACHINE_DRIVER_START( firefox )
MDRV_CPU_ADD("audio", M6502, MASTER_XTAL/8)
MDRV_CPU_PROGRAM_MAP(audio_map, 0)
MDRV_INTERLEAVE(1000)
MDRV_QUANTUM_TIME(HZ(60000))
MDRV_MACHINE_START(firefox)
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_HZ((double)MASTER_XTAL/8/16/16/16/16))
MDRV_WATCHDOG_TIME_INIT(HZ((double)MASTER_XTAL/8/16/16/16/16))
/* video hardware */
MDRV_LASERDISC_SCREEN_ADD_NTSC("main", BITMAP_FORMAT_RGB32)

View File

@ -290,7 +290,7 @@ static MACHINE_DRIVER_START( flkatck )
MDRV_CPU_ADD("audio", Z80,3579545) /* NEC D780C-1, 3.579545 MHz */
MDRV_CPU_PROGRAM_MAP(flkatck_readmem_sound,flkatck_writemem_sound)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
MDRV_MACHINE_RESET(flkatck)

View File

@ -668,7 +668,7 @@ static MACHINE_DRIVER_START( flstory )
MDRV_CPU_ADD("mcu", M68705,XTAL_18_432MHz/6) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(flstory_m68705_map,0)
MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
MDRV_MACHINE_RESET(ta7630)
@ -725,7 +725,7 @@ static MACHINE_DRIVER_START( onna34ro )
// MDRV_CPU_ADD("mcu", M68705,4000000) /* ??? */
// MDRV_CPU_PROGRAM_MAP(m68705_readmem,m68705_writemem)
MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
MDRV_MACHINE_RESET(ta7630)
@ -782,7 +782,7 @@ static MACHINE_DRIVER_START( victnine )
// MDRV_CPU_ADD("mcu", M68705,4000000) /* ??? */
// MDRV_CPU_PROGRAM_MAP(m68705_readmem,m68705_writemem)
MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
MDRV_MACHINE_RESET(ta7630)

View File

@ -231,7 +231,7 @@ static MACHINE_DRIVER_START( bigkarnk )
MDRV_CPU_ADD("audio", M6809, 8867000/4) /* 68B09, 2.21675 MHz? */
MDRV_CPU_PROGRAM_MAP(bigkarnk_readmem_snd,bigkarnk_writemem_snd)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -624,7 +624,7 @@ static MACHINE_DRIVER_START( squash )
MDRV_CPU_PROGRAM_MAP(squash_readmem,squash_writemem)
MDRV_CPU_VBLANK_INT("main", irq6_line_hold)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -775,7 +775,7 @@ static MACHINE_DRIVER_START( thoop )
MDRV_CPU_PROGRAM_MAP(squash_readmem,thoop_writemem)
MDRV_CPU_VBLANK_INT("main", irq6_line_hold)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -940,7 +940,7 @@ static MACHINE_DRIVER_START( gaelco3d )
MDRV_MACHINE_RESET(gaelco3d)
MDRV_NVRAM_HANDLER(93C66B)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -1649,7 +1649,7 @@ static MACHINE_DRIVER_START( bosco )
MDRV_CPU_IO_MAP(namco_54xx_map_io,0)
MDRV_WATCHDOG_VBLANK_INIT(8)
MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
MDRV_MACHINE_START(galaga)
MDRV_MACHINE_RESET(bosco)
@ -1708,7 +1708,7 @@ static MACHINE_DRIVER_START( galaga )
MDRV_CPU_IO_MAP(namco_54xx_map_io,0)
MDRV_WATCHDOG_VBLANK_INIT(8)
MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
MDRV_MACHINE_START(galaga)
MDRV_MACHINE_RESET(galaga)
@ -1782,7 +1782,7 @@ static MACHINE_DRIVER_START( xevious )
MDRV_CPU_IO_MAP(namco_54xx_map_io,0)
MDRV_WATCHDOG_VBLANK_INIT(8)
MDRV_INTERLEAVE(1000) /* 1000 CPU slices per frame - an high value to ensure proper */
MDRV_QUANTUM_TIME(HZ(60000)) /* 1000 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
MDRV_MACHINE_START(galaga)
MDRV_MACHINE_RESET(xevious)
@ -1855,7 +1855,7 @@ static MACHINE_DRIVER_START( digdug )
MDRV_CPU_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
MDRV_CPU_PROGRAM_MAP(digdug_map,0)
MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
MDRV_MACHINE_START(galaga)
MDRV_MACHINE_RESET(digdug)

View File

@ -967,7 +967,7 @@ static MACHINE_DRIVER_START( galpania )
MDRV_IMPORT_FROM(galpanic)
/* arm watchdog */
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_SEC(3)) /* a guess, and certainly wrong */
MDRV_WATCHDOG_TIME_INIT(SEC(3)) /* a guess, and certainly wrong */
MACHINE_DRIVER_END
static MACHINE_DRIVER_START( comad )

View File

@ -553,7 +553,7 @@ static MACHINE_DRIVER_START( gaplus )
MDRV_CPU_PROGRAM_MAP(readmem_cpu3,writemem_cpu3)
MDRV_CPU_VBLANK_INT("main", irq0_line_assert)
MDRV_INTERLEAVE(100) /* a high value to ensure proper synchronization of the CPUs */
MDRV_QUANTUM_TIME(HZ(6000)) /* a high value to ensure proper synchronization of the CPUs */
MDRV_MACHINE_RESET(gaplus)
/* video hardware */

View File

@ -653,7 +653,7 @@ static MACHINE_DRIVER_START( genesis_base )
MDRV_CPU_PROGRAM_MAP(genesis_z80_readmem, genesis_z80_writemem)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold) /* from vdp at scanline 0xe0 */
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_MACHINE_START(genesis)
MDRV_MACHINE_RESET(genesis)

View File

@ -705,7 +705,7 @@ static MACHINE_DRIVER_START( ppking )
MDRV_CPU_ADD("audio", M6809, XTAL_12MHz/16) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(ppking_cpu3_map,0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_MACHINE_RESET(ppking)
MDRV_NVRAM_HANDLER(generic_0fill)
@ -754,7 +754,7 @@ static MACHINE_DRIVER_START( gladiatr )
MDRV_CPU_ADD("audio", M6809, XTAL_12MHz/16) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(gladiatr_cpu3_map,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
MDRV_MACHINE_RESET(gladiator)
MDRV_NVRAM_HANDLER(generic_0fill)

View File

@ -349,7 +349,7 @@ static MACHINE_DRIVER_START( gradius3 )
MDRV_CPU_ADD("audio", Z80, 3579545)
MDRV_CPU_PROGRAM_MAP(gradius3_s_map,0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_MACHINE_RESET(gradius3)

View File

@ -692,7 +692,7 @@ static MACHINE_DRIVER_START( grchamp )
MDRV_MACHINE_RESET(grchamp)
MDRV_WATCHDOG_VBLANK_INIT(8)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
/* video hardware */
MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)

View File

@ -707,13 +707,13 @@ static MACHINE_DRIVER_START( gsword )
MDRV_CPU_ADD("audio", Z80, XTAL_18MHz/6) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(cpu3_map,0)
MDRV_INTERLEAVE(200) /* Allow time for 2nd cpu to interleave*/
MDRV_QUANTUM_TIME(HZ(12000)) /* Allow time for 2nd cpu to interleave*/
MDRV_MACHINE_RESET(gsword)
#if 1
/* to MCU timeout champbbj */
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
#endif
/* video hardware */

View File

@ -924,7 +924,7 @@ static MACHINE_DRIVER_START( gticlub )
MDRV_CPU_CONFIG(sharc_cfg)
MDRV_CPU_DATA_MAP(sharc_map, 0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_NVRAM_HANDLER(gticlub)
MDRV_MACHINE_START(gticlub)
@ -972,7 +972,7 @@ static MACHINE_DRIVER_START( hangplt )
MDRV_CPU_CONFIG(sharc_cfg)
MDRV_CPU_DATA_MAP(hangplt_sharc1_map, 0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_NVRAM_HANDLER(gticlub)
MDRV_MACHINE_START(gticlub)

View File

@ -521,7 +521,7 @@ static MACHINE_DRIVER_START( gyruss )
MDRV_CPU_PROGRAM_MAP(audio_cpu2_map,0)
MDRV_CPU_IO_MAP(audio_cpu2_io_map,0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -1015,7 +1015,7 @@ static MACHINE_DRIVER_START( driver_nomsp )
MDRV_CPU_PROGRAM_MAP(driver_gsp_map,0)
MDRV_CPU_CONFIG(gsp_config_driver)
MDRV_INTERLEAVE(500)
MDRV_QUANTUM_TIME(HZ(30000))
MDRV_MACHINE_START(harddriv)
MDRV_MACHINE_RESET(harddriv)
@ -1112,7 +1112,7 @@ static MACHINE_DRIVER_START( ds3 )
MDRV_CPU_PROGRAM_MAP(ds3_program_map,0)
MDRV_CPU_DATA_MAP(ds3_data_map,0)
MDRV_INTERLEAVE(1000)
MDRV_QUANTUM_TIME(HZ(60000))
MACHINE_DRIVER_END

View File

@ -1287,7 +1287,7 @@ static MACHINE_DRIVER_START( reikaids )
MDRV_CPU_IO_MAP(reikaids_upd7807_io_map,0)
MDRV_CPU_VBLANK_INT("main", upd7807_irq)
MDRV_INTERLEAVE(500) // very high interleave required to sync for startup tests
MDRV_QUANTUM_TIME(HZ(30000)) // very high interleave required to sync for startup tests
MDRV_MACHINE_RESET(reikaids_upd7807)
@ -1337,7 +1337,7 @@ static MACHINE_DRIVER_START( pteacher )
MDRV_CPU_IO_MAP(pteacher_upd7807_io_map,0)
MDRV_CPU_VBLANK_INT("main", upd7807_irq)
MDRV_INTERLEAVE(100) // should be enough
MDRV_QUANTUM_TIME(HZ(6000)) // should be enough
MDRV_MACHINE_RESET(pteacher_upd7807)

View File

@ -1056,7 +1056,7 @@ static MACHINE_DRIVER_START( hornet )
MDRV_CPU_CONFIG(sharc_cfg)
MDRV_CPU_DATA_MAP(sharc0_map, 0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_MACHINE_START( hornet )
MDRV_MACHINE_RESET( hornet )

View File

@ -141,7 +141,7 @@ static MACHINE_DRIVER_START( genesis_base )
MDRV_CPU_PROGRAM_MAP(genesis_z80_readmem, genesis_z80_writemem)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold) /* from vdp at scanline 0xe0 */
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_MACHINE_START(genesis)
MDRV_MACHINE_RESET(genesis)

View File

@ -202,7 +202,7 @@ static MACHINE_DRIVER_START( ikki )
MDRV_CPU_PROGRAM_MAP(ikki_cpu2,0)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -415,7 +415,7 @@ static MACHINE_DRIVER_START( imolagp )
MDRV_CPU_IO_MAP(readport_slave,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_PPI8255_ADD( "ppi8255", ppi8255_intf )

View File

@ -1747,7 +1747,7 @@ static MACHINE_DRIVER_START( drivedge )
// MDRV_CPU_ADD("comm", M6803, 8000000/4) -- network CPU
MDRV_MACHINE_RESET(drivedge)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MACHINE_DRIVER_END

View File

@ -307,7 +307,7 @@ static MACHINE_DRIVER_START( jackal )
MDRV_CPU_ADD("slave", M6809, MASTER_CLOCK/12) // verified on pcb
MDRV_CPU_PROGRAM_MAP(slave_map, 0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_MACHINE_RESET(jackal)

View File

@ -349,7 +349,7 @@ static MACHINE_DRIVER_START( jedi )
MDRV_CPU_ADD("main", M6502, JEDI_MAIN_CPU_CLOCK)
MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_INTERLEAVE(4)
MDRV_QUANTUM_TIME(HZ(240))
MDRV_MACHINE_START(jedi)
MDRV_MACHINE_RESET(jedi)

View File

@ -851,7 +851,7 @@ static MACHINE_DRIVER_START( jpmimpct )
MDRV_CPU_CONFIG(tms_config)
MDRV_CPU_PROGRAM_MAP(tms_program_map, 0)
MDRV_INTERLEAVE(500)
MDRV_QUANTUM_TIME(HZ(30000))
MDRV_MACHINE_RESET(jpmimpct)
MDRV_NVRAM_HANDLER(generic_0fill)

View File

@ -560,7 +560,7 @@ static MACHINE_DRIVER_START( kingofb )
MDRV_CPU_IO_MAP(sound_io_map,0)
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 6000) /* Hz */
MDRV_INTERLEAVE(100) /* We really need heavy synching among the processors */
MDRV_QUANTUM_TIME(HZ(6000)) /* We really need heavy synching among the processors */
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -610,7 +610,7 @@ static MACHINE_DRIVER_START( ringking )
MDRV_CPU_IO_MAP(rk_sound_io_map,0)
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 6000) /* Hz */
MDRV_INTERLEAVE(100) /* We really need heavy synching among the processors */
MDRV_QUANTUM_TIME(HZ(6000)) /* We really need heavy synching among the processors */
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -1310,7 +1310,7 @@ static MACHINE_DRIVER_START( konamigx )
MDRV_CPU_PROGRAM_MAP(gxsndmap, 0)
MDRV_CPU_PERIODIC_INT(irq2_line_hold, 480)
MDRV_INTERLEAVE(32)
MDRV_QUANTUM_TIME(HZ(1920))
MDRV_MACHINE_START(konamigx)
MDRV_MACHINE_RESET(konamigx)

View File

@ -250,7 +250,7 @@ static MACHINE_DRIVER_START( ksayakyu )
MDRV_CPU_PROGRAM_MAP(soundcpu_map,0)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,4)
MDRV_INTERLEAVE(1000)
MDRV_QUANTUM_TIME(HZ(60000))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -473,7 +473,7 @@ static MACHINE_DRIVER_START( gyrodine )
MDRV_CPU_IO_MAP(gyrodine_sub_portmap,0)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,4)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_MACHINE_RESET(kyugo)

View File

@ -290,7 +290,7 @@ static MACHINE_DRIVER_START( ladyfrog )
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2)
/* video hardware */
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -473,7 +473,7 @@ static MACHINE_DRIVER_START( base )
MDRV_CPU_ADD("audio", M6502, 600000)
MDRV_CPU_PROGRAM_MAP(lasso_audio_map, 0)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -525,7 +525,7 @@ static MACHINE_DRIVER_START( liberate )
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,16)
MDRV_INTERLEAVE(200)
MDRV_QUANTUM_TIME(HZ(12000))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -596,7 +596,7 @@ static MACHINE_DRIVER_START( prosport )
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,16)
MDRV_INTERLEAVE(200)
MDRV_QUANTUM_TIME(HZ(12000))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -473,8 +473,8 @@ static MACHINE_DRIVER_START( lockon )
MDRV_CPU_PROGRAM_MAP(sound_prg, 0)
MDRV_CPU_IO_MAP(sound_io, 0)
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_NSEC(PERIOD_OF_555_ASTABLE_NSEC(10000, 4700, 10000e-12) * 4096))
MDRV_INTERLEAVE(10)
MDRV_WATCHDOG_TIME_INIT(NSEC(PERIOD_OF_555_ASTABLE_NSEC(10000, 4700, 10000e-12) * 4096))
MDRV_QUANTUM_TIME(HZ(600))
MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)

View File

@ -570,7 +570,7 @@ static MACHINE_DRIVER_START( lsasquad )
MDRV_CPU_ADD("mcu", M68705,4000000) /* ? */
MDRV_CPU_PROGRAM_MAP(m68705_readmem,m68705_writemem)
MDRV_INTERLEAVE(500) /* 500 CPU slices per frame - an high value to ensure proper */
MDRV_QUANTUM_TIME(HZ(30000)) /* 500 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
/* main<->sound synchronization depends on this */
@ -613,7 +613,7 @@ static MACHINE_DRIVER_START( daikaiju )
MDRV_CPU_PROGRAM_MAP(sound_mem_daikaiju, 0)
/* IRQs are triggered by the YM2203 */
MDRV_INTERLEAVE(500) /* 500 CPU slices per frame - an high value to ensure proper */
MDRV_QUANTUM_TIME(HZ(30000)) /* 500 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
/* main<->sound synchronization depends on this */

View File

@ -378,7 +378,7 @@ static MACHINE_DRIVER_START( magmax )
MDRV_CPU_PROGRAM_MAP(magmax_soundreadmem,magmax_soundwritemem)
MDRV_CPU_IO_MAP(magmax_sound_io_map,0)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
MDRV_MACHINE_START(magmax)
MDRV_MACHINE_RESET(magmax)

View File

@ -1584,7 +1584,7 @@ static MACHINE_DRIVER_START( superpac )
MDRV_CPU_VBLANK_INT("main", irq0_line_assert)
MDRV_WATCHDOG_VBLANK_INIT(8)
MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
MDRV_MACHINE_RESET(superpac)
@ -1635,7 +1635,7 @@ static MACHINE_DRIVER_START( phozon )
MDRV_CPU_VBLANK_INT("main", irq0_line_assert)
MDRV_WATCHDOG_VBLANK_INIT(8)
MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
MDRV_MACHINE_RESET(phozon)
@ -1672,7 +1672,7 @@ static MACHINE_DRIVER_START( mappy )
MDRV_CPU_VBLANK_INT("main", irq0_line_assert)
MDRV_WATCHDOG_VBLANK_INIT(8)
MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
MDRV_MACHINE_RESET(mappy)

View File

@ -207,7 +207,7 @@ static MACHINE_DRIVER_START( markham )
MDRV_CPU_PROGRAM_MAP(readmem2,writemem2)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_INTERLEAVE(100)
MDRV_QUANTUM_TIME(HZ(6000))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -329,7 +329,7 @@ static MACHINE_DRIVER_START( matmania )
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,15) /* ???? */
/* IRQs are caused by the main CPU */
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@ -386,7 +386,7 @@ static MACHINE_DRIVER_START( maniach )
MDRV_CPU_ADD("mcu", M68705, 1500000*2) /* (don't know really how fast, but it doesn't need to even be this fast) */
MDRV_CPU_PROGRAM_MAP(mcu_readmem,mcu_writemem)
MDRV_INTERLEAVE(100) /* 100 CPU slice per frame - high interleaving to sync main and mcu */
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slice per frame - high interleaving to sync main and mcu */
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -492,7 +492,7 @@ static MACHINE_DRIVER_START( mcatadv )
MDRV_GFXDECODE(mcatadv)
MDRV_PALETTE_LENGTH(0x2000/2)
MDRV_WATCHDOG_TIME_INIT(UINT64_ATTOTIME_IN_SEC(3)) /* a guess, and certainly wrong */
MDRV_WATCHDOG_TIME_INIT(SEC(3)) /* a guess, and certainly wrong */
MDRV_VIDEO_START(mcatadv)
MDRV_VIDEO_EOF(mcatadv) // Buffer Spriteram

View File

@ -597,7 +597,7 @@ static MACHINE_DRIVER_START( meadows )
MDRV_CPU_PROGRAM_MAP(audio_map,0)
MDRV_CPU_PERIODIC_INT(audio_interrupt, (double)5000000/131072)
MDRV_INTERLEAVE(10)
MDRV_QUANTUM_TIME(HZ(600))
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -6375,7 +6375,7 @@ MACHINE_DRIVER_START( genesis_32x )
//
// boosting the interleave here actually makes Kolibri run incorrectly however, that
// one works best just boosting the interleave on communications?!
MDRV_INTERLEAVE(30000)
MDRV_QUANTUM_TIME(HZ(1800000))
MACHINE_DRIVER_END

Some files were not shown because too many files have changed in this diff Show More