mirror of
https://github.com/holub/mame
synced 2025-05-24 23:05:32 +03:00
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:
parent
0b6b3886cc
commit
5279595eee
@ -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
|
get_class_data - return a pointer to the
|
||||||
the class data
|
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 != NULL);
|
||||||
assert(device->class == DEVICE_CLASS_CPU_CHIP);
|
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
|
suspend_until_trigger - suspend execution
|
||||||
until the given trigger fires
|
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)
|
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 */
|
/* suspend the CPU immediately if it's not already */
|
||||||
cpu_suspend(device, SUSPEND_REASON_TRIGGER, eatcycles);
|
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)
|
void cpuexec_init(running_machine *machine)
|
||||||
{
|
{
|
||||||
int numscreens = video_screen_count(machine->config);
|
attotime min_quantum;
|
||||||
attoseconds_t refresh_attosecs;
|
|
||||||
int ipf;
|
|
||||||
|
|
||||||
/* allocate global state */
|
/* allocate global state */
|
||||||
machine->cpuexec_data = auto_malloc(sizeof(*machine->cpuexec_data));
|
machine->cpuexec_data = auto_malloc(sizeof(*machine->cpuexec_data));
|
||||||
memset(machine->cpuexec_data, 0, sizeof(*machine->cpuexec_data));
|
memset(machine->cpuexec_data, 0, sizeof(*machine->cpuexec_data));
|
||||||
|
|
||||||
/* set the core scheduling quantum */
|
/* set the core scheduling quantum */
|
||||||
ipf = machine->config->cpu_slices_per_frame;
|
min_quantum = machine->config->minimum_quantum;
|
||||||
if (ipf <= 0)
|
if (attotime_compare(min_quantum, attotime_zero) == 0)
|
||||||
ipf = 1;
|
min_quantum = ATTOTIME_IN_HZ(60);
|
||||||
refresh_attosecs = (numscreens == 0) ? HZ_TO_ATTOSECONDS(60) : video_screen_get_frame_period(machine->primary_screen).attoseconds;
|
if (machine->config->perfect_cpu_quantum != NULL)
|
||||||
timer_add_scheduling_quantum(machine, refresh_attosecs / ipf, attotime_never);
|
{
|
||||||
|
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 */
|
/* apply pending suspension changes */
|
||||||
for (cpu = machine->cpu[0]; cpu != NULL; cpu = cpu->typenext)
|
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->suspend = classdata->nextsuspend;
|
||||||
classdata->nextsuspend &= ~SUSPEND_REASON_TIMESLICE;
|
classdata->nextsuspend &= ~SUSPEND_REASON_TIMESLICE;
|
||||||
classdata->eatcycles = classdata->nexteatcycles;
|
classdata->eatcycles = classdata->nexteatcycles;
|
||||||
@ -223,7 +260,7 @@ void cpuexec_timeslice(running_machine *machine)
|
|||||||
/* loop over non-suspended CPUs */
|
/* loop over non-suspended CPUs */
|
||||||
for (cpu = machine->cpu[0]; cpu != NULL; cpu = cpu->typenext)
|
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)
|
if (classdata->suspend == 0)
|
||||||
{
|
{
|
||||||
attotime delta = attotime_sub(target, classdata->localtime);
|
attotime delta = attotime_sub(target, classdata->localtime);
|
||||||
@ -275,7 +312,7 @@ void cpuexec_timeslice(running_machine *machine)
|
|||||||
/* update the local times of all CPUs */
|
/* update the local times of all CPUs */
|
||||||
for (cpu = machine->cpu[0]; cpu != NULL; cpu = cpu->typenext)
|
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 we're suspended and counting, process */
|
||||||
if (classdata->suspend != 0 && classdata->eatcycles && attotime_compare(classdata->localtime, target) < 0)
|
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 */
|
/* get pointers to our data */
|
||||||
config = device->inline_config;
|
config = device->inline_config;
|
||||||
header = cpu_get_class_header(device);
|
header = cpu_get_class_header(device);
|
||||||
classdata = cpu_get_class_data(device);
|
classdata = get_class_data(device);
|
||||||
|
|
||||||
/* add ourself to the global array */
|
/* add ourself to the global array */
|
||||||
if (index < ARRAY_LENGTH(device->machine->cpu))
|
if (index < ARRAY_LENGTH(device->machine->cpu))
|
||||||
@ -480,7 +517,7 @@ static DEVICE_START( cpu )
|
|||||||
|
|
||||||
static DEVICE_RESET( 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;
|
const cpu_config *config = device->inline_config;
|
||||||
cpu_reset_func reset;
|
cpu_reset_func reset;
|
||||||
int line;
|
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 we have a state pointer, we can handle some stuff for free */
|
||||||
if (device->token != NULL)
|
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 (classdata->state != NULL)
|
||||||
{
|
{
|
||||||
if (state >= CPUINFO_INT_REGISTER && state <= CPUINFO_INT_REGISTER_LAST)
|
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 we have a state pointer, we can handle some stuff for free */
|
||||||
if (device->token != NULL)
|
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 (classdata->state != NULL)
|
||||||
{
|
{
|
||||||
if (state >= CPUINFO_INT_REGISTER && state <= CPUINFO_INT_REGISTER_LAST)
|
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)
|
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 */
|
/* set the suspend reason and eat cycles flag */
|
||||||
classdata->nextsuspend |= reason;
|
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)
|
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 */
|
/* clear the suspend reason and eat cycles flag */
|
||||||
classdata->nextsuspend &= ~reason;
|
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)
|
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 true if the given reason is indicated */
|
||||||
return ((classdata->nextsuspend & reason) != 0);
|
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)
|
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 */
|
/* return the current clock value */
|
||||||
|
classdata = get_class_data(device);
|
||||||
return classdata->clock;
|
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)
|
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 */
|
/* set the clock and update the information */
|
||||||
classdata->clock = clock;
|
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)
|
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 the current clock scale factor */
|
||||||
return classdata->clockscale;
|
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)
|
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 */
|
/* set the scale factor and update the information */
|
||||||
classdata->clockscale = clockscale;
|
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)
|
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)
|
if (clocks < classdata->cycles_per_second)
|
||||||
return attotime_make(0, clocks * classdata->attoseconds_per_cycle);
|
return attotime_make(0, clocks * classdata->attoseconds_per_cycle);
|
||||||
else
|
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)
|
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;
|
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)
|
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;
|
attotime result;
|
||||||
|
|
||||||
/* if we're active, add in the time from the current slice */
|
/* 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)
|
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)
|
if (device == device->machine->cpuexec_data->executingcpu)
|
||||||
return classdata->totalcycles + classdata->cycles_running - *classdata->icount;
|
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)
|
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 */
|
/* ignore if not the executing CPU */
|
||||||
if (device != device->machine->cpuexec_data->executingcpu)
|
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)
|
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 */
|
/* ignore if not the executing CPU */
|
||||||
if (device != device->machine->cpuexec_data->executingcpu)
|
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)
|
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;
|
int delta;
|
||||||
|
|
||||||
/* ignore if not the executing CPU */
|
/* 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)
|
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 the given trigger fires */
|
||||||
suspend_until_trigger(device, classdata->inttrigger, TRUE);
|
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 */
|
/* look for suspended CPUs waiting for this trigger and unsuspend them */
|
||||||
for (cpu = machine->cpu[0]; cpu != NULL; cpu = cpu->typenext)
|
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 */
|
/* if we're executing, for an immediate abort */
|
||||||
cpu_abort_timeslice(cpu);
|
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)
|
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 */
|
/* signal this CPU's interrupt trigger */
|
||||||
cpuexec_trigger(device->machine, classdata->inttrigger);
|
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)
|
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;
|
int vector = (line >= 0 && line < MAX_INPUT_LINES) ? classdata->input[line].vector : 0xff;
|
||||||
cpu_set_input_line_and_vector(device, line, state, vector);
|
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)
|
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)
|
if (line >= 0 && line < MAX_INPUT_LINES)
|
||||||
{
|
{
|
||||||
classdata->input[line].vector = vector;
|
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)
|
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 */
|
/* 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)
|
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)
|
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;
|
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)
|
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;
|
return classdata->iloops;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1209,12 +1251,12 @@ int cpu_getiloops(const device_config *device)
|
|||||||
|
|
||||||
static void update_clock_information(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;
|
INT64 attos;
|
||||||
|
|
||||||
/* recompute cps and spc */
|
/* recompute cps and spc */
|
||||||
classdata->cycles_per_second = (double)classdata->clock * classdata->clockscale;
|
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 */
|
/* update the CPU's divisor */
|
||||||
attos = classdata->attoseconds_per_cycle;
|
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)
|
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 = get_minimum_quantum(machine->cpu[0]);
|
||||||
attoseconds_t smallest = classdata->attoseconds_per_cycle * cpu_get_min_cycles(machine->cpu[0]);
|
|
||||||
attoseconds_t perfect = ATTOSECONDS_PER_SECOND - 1;
|
attoseconds_t perfect = ATTOSECONDS_PER_SECOND - 1;
|
||||||
const device_config *cpu;
|
const device_config *cpu;
|
||||||
|
|
||||||
/* start with a huge time factor and find the 2nd smallest cycle time */
|
/* start with a huge time factor and find the 2nd smallest cycle time */
|
||||||
for (cpu = machine->cpu[0]->typenext; cpu != NULL; cpu = cpu->typenext)
|
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 curquantum = get_minimum_quantum(cpu);
|
||||||
attoseconds_t curtime = classdata->attoseconds_per_cycle * cpu_get_min_cycles(cpu);
|
|
||||||
|
|
||||||
/* find the 2nd smallest cycle interval */
|
/* find the 2nd smallest cycle interval */
|
||||||
if (curtime < smallest)
|
if (curquantum < smallest)
|
||||||
{
|
{
|
||||||
perfect = smallest;
|
perfect = smallest;
|
||||||
smallest = curtime;
|
smallest = curquantum;
|
||||||
}
|
}
|
||||||
else if (curtime < perfect)
|
else if (curquantum < perfect)
|
||||||
perfect = classdata->attoseconds_per_cycle;
|
perfect = curquantum;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* adjust the final value */
|
/* 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)
|
for (cpu = device->machine->cpu[0]; cpu != NULL; cpu = cpu->typenext)
|
||||||
{
|
{
|
||||||
const cpu_config *config = cpu->inline_config;
|
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;
|
int cpu_interested;
|
||||||
|
|
||||||
/* start the interrupt counter */
|
/* start the interrupt counter */
|
||||||
@ -1334,7 +1373,7 @@ static TIMER_CALLBACK( trigger_partial_frame_interrupt )
|
|||||||
{
|
{
|
||||||
const device_config *device = ptr;
|
const device_config *device = ptr;
|
||||||
const cpu_config *config = device->inline_config;
|
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)
|
if (classdata->iloops == 0)
|
||||||
classdata->iloops = config->vblank_interrupts_per_frame;
|
classdata->iloops = config->vblank_interrupts_per_frame;
|
||||||
@ -1386,7 +1425,7 @@ static TIMER_CALLBACK( triggertime_callback )
|
|||||||
static TIMER_CALLBACK( empty_event_queue )
|
static TIMER_CALLBACK( empty_event_queue )
|
||||||
{
|
{
|
||||||
const device_config *device = ptr;
|
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];
|
cpu_input_data *inputline = &classdata->input[param];
|
||||||
int curevent;
|
int curevent;
|
||||||
|
|
||||||
@ -1475,7 +1514,7 @@ static TIMER_CALLBACK( empty_event_queue )
|
|||||||
|
|
||||||
static IRQ_CALLBACK( standard_irq_callback )
|
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];
|
cpu_input_data *inputline = &classdata->input[irqline];
|
||||||
int vector = inputline->curvector;
|
int vector = inputline->curvector;
|
||||||
|
|
||||||
@ -1508,7 +1547,7 @@ static IRQ_CALLBACK( standard_irq_callback )
|
|||||||
|
|
||||||
static void register_save_states(const device_config *device)
|
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;
|
int line;
|
||||||
|
|
||||||
state_save_register_device_item(device, 0, classdata->suspend);
|
state_save_register_device_item(device, 0, classdata->suspend);
|
||||||
|
@ -3022,6 +3022,7 @@ static int memory_view_read(debug_view_memory *memdata, UINT8 size, offs_t offs,
|
|||||||
int ismapped;
|
int ismapped;
|
||||||
|
|
||||||
ismapped = memdata->no_translation ? TRUE : memory_address_physical(space, TRANSLATE_READ_DEBUG, &dummyaddr);
|
ismapped = memdata->no_translation ? TRUE : memory_address_physical(space, TRANSLATE_READ_DEBUG, &dummyaddr);
|
||||||
|
*data = ~(UINT64)0;
|
||||||
if (ismapped)
|
if (ismapped)
|
||||||
{
|
{
|
||||||
switch (size)
|
switch (size)
|
||||||
|
@ -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);
|
TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, config->driver_data_size, 24);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MCONFIG_TOKEN_INTERLEAVE:
|
case MCONFIG_TOKEN_QUANTUM_TIME:
|
||||||
TOKEN_UNGET_UINT32(tokens);
|
TOKEN_EXTRACT_UINT64(tokens, data64);
|
||||||
TOKEN_GET_UINT32_UNPACK2(tokens, entrytype, 8, config->cpu_slices_per_frame, 24);
|
config->minimum_quantum = UINT64_ATTOTIME_TO_ATTOTIME(data64);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MCONFIG_TOKEN_QUANTUM_PERFECT_CPU:
|
||||||
|
config->perfect_cpu_quantum = TOKEN_GET_STRING(tokens);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MCONFIG_TOKEN_WATCHDOG_VBLANK:
|
case MCONFIG_TOKEN_WATCHDOG_VBLANK:
|
||||||
|
@ -46,7 +46,8 @@ enum
|
|||||||
MCONFIG_TOKEN_DEVICE_CONFIG_DATAFP64,
|
MCONFIG_TOKEN_DEVICE_CONFIG_DATAFP64,
|
||||||
|
|
||||||
MCONFIG_TOKEN_DRIVER_DATA,
|
MCONFIG_TOKEN_DRIVER_DATA,
|
||||||
MCONFIG_TOKEN_INTERLEAVE,
|
MCONFIG_TOKEN_QUANTUM_TIME,
|
||||||
|
MCONFIG_TOKEN_QUANTUM_PERFECT_CPU,
|
||||||
MCONFIG_TOKEN_WATCHDOG_VBLANK,
|
MCONFIG_TOKEN_WATCHDOG_VBLANK,
|
||||||
MCONFIG_TOKEN_WATCHDOG_TIME,
|
MCONFIG_TOKEN_WATCHDOG_TIME,
|
||||||
|
|
||||||
@ -113,7 +114,8 @@ struct _machine_config
|
|||||||
{
|
{
|
||||||
UINT32 driver_data_size; /* amount of memory needed for driver_data */
|
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 */
|
INT32 watchdog_vblank_count; /* number of VBLANKs until the watchdog kills us */
|
||||||
attotime watchdog_time; /* length of time 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) \
|
#define MDRV_DRIVER_DATA(_struct) \
|
||||||
TOKEN_UINT32_PACK2(MCONFIG_TOKEN_DRIVER_DATA, 8, sizeof(_struct), 24),
|
TOKEN_UINT32_PACK2(MCONFIG_TOKEN_DRIVER_DATA, 8, sizeof(_struct), 24),
|
||||||
|
|
||||||
#define MDRV_INTERLEAVE(_interleave) \
|
#define MDRV_QUANTUM_TIME(_time) \
|
||||||
TOKEN_UINT32_PACK2(MCONFIG_TOKEN_INTERLEAVE, 8, _interleave, 24),
|
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) \
|
#define MDRV_WATCHDOG_VBLANK_INIT(_count) \
|
||||||
TOKEN_UINT32_PACK2(MCONFIG_TOKEN_WATCHDOG_VBLANK, 8, _count, 24),
|
TOKEN_UINT32_PACK2(MCONFIG_TOKEN_WATCHDOG_VBLANK, 8, _count, 24),
|
||||||
|
|
||||||
#define MDRV_WATCHDOG_TIME_INIT(_time) \
|
#define MDRV_WATCHDOG_TIME_INIT(_time) \
|
||||||
TOKEN_UINT32_PACK1(MCONFIG_TOKEN_WATCHDOG_TIME, 8), \
|
TOKEN_UINT32_PACK1(MCONFIG_TOKEN_WATCHDOG_TIME, 8), \
|
||||||
TOKEN_UINT64(_time),
|
TOKEN_UINT64(UINT64_ATTOTIME_IN_##_time),
|
||||||
|
|
||||||
|
|
||||||
/* core functions */
|
/* core functions */
|
||||||
|
@ -300,7 +300,7 @@ MACHINE_DRIVER_START( carnival_audio )
|
|||||||
MDRV_CPU_PROGRAM_MAP(carnival_audio_map,0)
|
MDRV_CPU_PROGRAM_MAP(carnival_audio_map,0)
|
||||||
MDRV_CPU_IO_MAP(carnival_audio_io_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_ADD("psg", AY8910, PSG_CLOCK)
|
||||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
|
||||||
|
@ -1034,7 +1034,7 @@ static MACHINE_DRIVER_START( 40love )
|
|||||||
MDRV_CPU_ADD("mcu",M68705,18432000/6) /* OK */
|
MDRV_CPU_ADD("mcu",M68705,18432000/6) /* OK */
|
||||||
MDRV_CPU_PROGRAM_MAP(mcu_map,0)
|
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 */
|
MDRV_MACHINE_RESET(ta7630) /* init machine */
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -619,10 +619,10 @@ static MACHINE_DRIVER_START( airbustr )
|
|||||||
MDRV_CPU_IO_MAP(sound_io_map, 0)
|
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_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
|
// Maybe a high value is safer in order to avoid glitches
|
||||||
MDRV_MACHINE_RESET(airbustr)
|
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
|
// video hardware
|
||||||
|
|
||||||
@ -656,7 +656,7 @@ MACHINE_DRIVER_END
|
|||||||
|
|
||||||
static MACHINE_DRIVER_START( airbusb )
|
static MACHINE_DRIVER_START( airbusb )
|
||||||
MDRV_IMPORT_FROM(airbustr)
|
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
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -239,7 +239,7 @@ static MACHINE_DRIVER_START( ajax )
|
|||||||
MDRV_CPU_ADD("audio", Z80, 3579545) /* 3.58 MHz */
|
MDRV_CPU_ADD("audio", Z80, 3579545) /* 3.58 MHz */
|
||||||
MDRV_CPU_PROGRAM_MAP(ajax_sound_map,0)
|
MDRV_CPU_PROGRAM_MAP(ajax_sound_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(ajax)
|
MDRV_MACHINE_RESET(ajax)
|
||||||
|
|
||||||
|
@ -1025,7 +1025,7 @@ static MACHINE_DRIVER_START( ampoker2 )
|
|||||||
MDRV_CPU_PROGRAM_MAP(ampoker2_map, 0)
|
MDRV_CPU_PROGRAM_MAP(ampoker2_map, 0)
|
||||||
MDRV_CPU_IO_MAP(ampoker2_io_map, 0)
|
MDRV_CPU_IO_MAP(ampoker2_io_map, 0)
|
||||||
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 1536)
|
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)
|
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||||
|
|
||||||
|
@ -608,7 +608,7 @@ static MACHINE_DRIVER_START( angelkds )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sub_map,0)
|
MDRV_CPU_PROGRAM_MAP(sub_map,0)
|
||||||
MDRV_CPU_IO_MAP(sub_portmap,0)
|
MDRV_CPU_IO_MAP(sub_portmap,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -525,7 +525,7 @@ static MACHINE_DRIVER_START( argus )
|
|||||||
MDRV_CPU_IO_MAP(sound_portmap_2,0)
|
MDRV_CPU_IO_MAP(sound_portmap_2,0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
@ -579,7 +579,7 @@ static MACHINE_DRIVER_START( valtric )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_map_a,0)
|
MDRV_CPU_PROGRAM_MAP(sound_map_a,0)
|
||||||
MDRV_CPU_IO_MAP(sound_portmap_2,0)
|
MDRV_CPU_IO_MAP(sound_portmap_2,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
@ -624,7 +624,7 @@ static MACHINE_DRIVER_START( butasan )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_map_b,0)
|
MDRV_CPU_PROGRAM_MAP(sound_map_b,0)
|
||||||
MDRV_CPU_IO_MAP(sound_portmap_2,0)
|
MDRV_CPU_IO_MAP(sound_portmap_2,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -768,7 +768,7 @@ static MACHINE_DRIVER_START( arkanoid )
|
|||||||
MDRV_CPU_ADD("mcu", M68705, XTAL_12MHz/4) /* verified on pcb */
|
MDRV_CPU_ADD("mcu", M68705, XTAL_12MHz/4) /* verified on pcb */
|
||||||
MDRV_CPU_PROGRAM_MAP(mcu_map, 0)
|
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_START(arkanoid)
|
||||||
MDRV_MACHINE_RESET(arkanoid)
|
MDRV_MACHINE_RESET(arkanoid)
|
||||||
|
@ -700,7 +700,7 @@ static MACHINE_DRIVER_START( artmagic )
|
|||||||
MDRV_CPU_PROGRAM_MAP(tms_map,0)
|
MDRV_CPU_PROGRAM_MAP(tms_map,0)
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(artmagic)
|
MDRV_MACHINE_RESET(artmagic)
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
MDRV_NVRAM_HANDLER(generic_1fill)
|
MDRV_NVRAM_HANDLER(generic_1fill)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -797,7 +797,7 @@ static MACHINE_DRIVER_START( bonzeadv )
|
|||||||
MDRV_CPU_ADD("audio", Z80,4000000) /* sound CPU, also required for test mode */
|
MDRV_CPU_ADD("audio", Z80,4000000) /* sound CPU, also required for test mode */
|
||||||
MDRV_CPU_PROGRAM_MAP(bonzeadv_z80_map,0)
|
MDRV_CPU_PROGRAM_MAP(bonzeadv_z80_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
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_ADD("audio", Z80, XTAL_16MHz/4) /* verified on pcb */
|
||||||
MDRV_CPU_PROGRAM_MAP(z80_map,0)
|
MDRV_CPU_PROGRAM_MAP(z80_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
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_ADD("audio", Z80, XTAL_8MHz/2) /* verified on pcb */
|
||||||
MDRV_CPU_PROGRAM_MAP(cadash_z80_map,0)
|
MDRV_CPU_PROGRAM_MAP(cadash_z80_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
@ -916,7 +916,7 @@ static MACHINE_DRIVER_START( mofflott )
|
|||||||
MDRV_CPU_ADD("audio", Z80, 4000000) /* 4 MHz ??? */
|
MDRV_CPU_ADD("audio", Z80, 4000000) /* 4 MHz ??? */
|
||||||
MDRV_CPU_PROGRAM_MAP(z80_map,0)
|
MDRV_CPU_PROGRAM_MAP(z80_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
@ -958,7 +958,7 @@ static MACHINE_DRIVER_START( galmedes )
|
|||||||
MDRV_CPU_ADD("audio", Z80, 4000000) /* 4 MHz ??? */
|
MDRV_CPU_ADD("audio", Z80, 4000000) /* 4 MHz ??? */
|
||||||
MDRV_CPU_PROGRAM_MAP(cadash_z80_map,0)
|
MDRV_CPU_PROGRAM_MAP(cadash_z80_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
@ -996,7 +996,7 @@ static MACHINE_DRIVER_START( eto )
|
|||||||
MDRV_CPU_ADD("audio", Z80, 4000000) /* 4 MHz ??? */
|
MDRV_CPU_ADD("audio", Z80, 4000000) /* 4 MHz ??? */
|
||||||
MDRV_CPU_PROGRAM_MAP(cadash_z80_map,0)
|
MDRV_CPU_PROGRAM_MAP(cadash_z80_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -1194,7 +1194,7 @@ static MACHINE_DRIVER_START( balsente )
|
|||||||
MDRV_CPU_PROGRAM_MAP(cpu2_map,0)
|
MDRV_CPU_PROGRAM_MAP(cpu2_map,0)
|
||||||
MDRV_CPU_IO_MAP(cpu2_io_map,0)
|
MDRV_CPU_IO_MAP(cpu2_io_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(balsente)
|
MDRV_MACHINE_RESET(balsente)
|
||||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||||
@ -1247,7 +1247,7 @@ static MACHINE_DRIVER_START( shrike )
|
|||||||
MDRV_CPU_ADD("68k", M68000, 8000000)
|
MDRV_CPU_ADD("68k", M68000, 8000000)
|
||||||
MDRV_CPU_PROGRAM_MAP(shrike68k_map,0)
|
MDRV_CPU_PROGRAM_MAP(shrike68k_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -402,7 +402,7 @@ static MACHINE_DRIVER_START( baraduke )
|
|||||||
MDRV_CPU_IO_MAP(mcu_port_map,0)
|
MDRV_CPU_IO_MAP(mcu_port_map,0)
|
||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -262,7 +262,7 @@ static MACHINE_DRIVER_START( battlane )
|
|||||||
MDRV_CPU_ADD("sub", M6809, 1250000) /* 1.25 MHz ? */
|
MDRV_CPU_ADD("sub", M6809, 1250000) /* 1.25 MHz ? */
|
||||||
MDRV_CPU_PROGRAM_MAP(battlane_map, 0)
|
MDRV_CPU_PROGRAM_MAP(battlane_map, 0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -2220,7 +2220,7 @@ INPUT_PORTS_END
|
|||||||
|
|
||||||
static MACHINE_DRIVER_START( scorpion2_vid )
|
static MACHINE_DRIVER_START( scorpion2_vid )
|
||||||
MDRV_MACHINE_RESET( init ) // main scorpion2 board initialisation
|
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_ADD("main", M6809, MASTER_CLOCK/4 ) // 6809 CPU at 2 Mhz
|
||||||
MDRV_CPU_PROGRAM_MAP(memmap_vid,0) // setup scorpion2 board memorymap
|
MDRV_CPU_PROGRAM_MAP(memmap_vid,0) // setup scorpion2 board memorymap
|
||||||
MDRV_CPU_PERIODIC_INT(timer_irq, 1000) // generate 1000 IRQ's per second
|
MDRV_CPU_PERIODIC_INT(timer_irq, 1000) // generate 1000 IRQ's per second
|
||||||
|
@ -446,7 +446,7 @@ static MACHINE_DRIVER_START( bigevglf )
|
|||||||
MDRV_CPU_ADD("mcu", M68705,2000000) /* ??? */
|
MDRV_CPU_ADD("mcu", M68705,2000000) /* ??? */
|
||||||
MDRV_CPU_PROGRAM_MAP(m68705_map,0)
|
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)
|
MDRV_MACHINE_RESET(bigevglf)
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -484,7 +484,7 @@ static MACHINE_DRIVER_START( bking3 )
|
|||||||
|
|
||||||
MDRV_MACHINE_RESET(buggychl)
|
MDRV_MACHINE_RESET(buggychl)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
@ -322,7 +322,7 @@ static MACHINE_DRIVER_START( bladestl )
|
|||||||
MDRV_CPU_ADD("audio", M6809, 2000000)
|
MDRV_CPU_ADD("audio", M6809, 2000000)
|
||||||
MDRV_CPU_PROGRAM_MAP(sound_map, 0)
|
MDRV_CPU_PROGRAM_MAP(sound_map, 0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -1337,7 +1337,7 @@ static MACHINE_DRIVER_START( bnstars )
|
|||||||
// MDRV_CPU_ADD("audio", Z80, 4000000)
|
// MDRV_CPU_ADD("audio", Z80, 4000000)
|
||||||
// MDRV_CPU_PROGRAM_MAP(bnstars_z80_map, 0)
|
// MDRV_CPU_PROGRAM_MAP(bnstars_z80_map, 0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(1000)
|
MDRV_QUANTUM_TIME(HZ(60000))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(ms32)
|
MDRV_MACHINE_RESET(ms32)
|
||||||
|
|
||||||
|
@ -701,7 +701,7 @@ static MACHINE_DRIVER_START( tokio )
|
|||||||
MDRV_CPU_ADD("audio", Z80, MAIN_XTAL/8) // 3 MHz
|
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_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
|
// video hardware
|
||||||
|
|
||||||
@ -745,7 +745,7 @@ static MACHINE_DRIVER_START( bublbobl )
|
|||||||
MDRV_CPU_PROGRAM_MAP(mcu_map, 0)
|
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_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
|
// video hardware
|
||||||
|
|
||||||
|
@ -399,7 +399,7 @@ static MACHINE_DRIVER_START( bwing )
|
|||||||
MDRV_CPU_IO_MAP(bwp3_io_map,0)
|
MDRV_CPU_IO_MAP(bwp3_io_map,0)
|
||||||
MDRV_CPU_PERIODIC_INT(bwp3_interrupt, 1000)
|
MDRV_CPU_PERIODIC_INT(bwp3_interrupt, 1000)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(300) // high enough?
|
MDRV_QUANTUM_TIME(HZ(18000)) // high enough?
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(bwing)
|
MDRV_MACHINE_RESET(bwing)
|
||||||
|
|
||||||
|
@ -560,7 +560,7 @@ static MACHINE_DRIVER_START( cabalbl )
|
|||||||
MDRV_CPU_IO_MAP(cabalbl_talk2_portmap,0)
|
MDRV_CPU_IO_MAP(cabalbl_talk2_portmap,0)
|
||||||
MDRV_CPU_PERIODIC_INT(irq0_line_hold,8000)
|
MDRV_CPU_PERIODIC_INT(irq0_line_hold,8000)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(cabalbl)
|
MDRV_MACHINE_RESET(cabalbl)
|
||||||
|
|
||||||
|
@ -2326,7 +2326,7 @@ static MACHINE_DRIVER_START( mazinger )
|
|||||||
MDRV_CPU_PROGRAM_MAP(mazinger_sound_readmem,mazinger_sound_writemem)
|
MDRV_CPU_PROGRAM_MAP(mazinger_sound_readmem,mazinger_sound_writemem)
|
||||||
MDRV_CPU_IO_MAP(mazinger_sound_readport,mazinger_sound_writeport)
|
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_MACHINE_RESET(cave)
|
||||||
MDRV_NVRAM_HANDLER(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_PROGRAM_MAP(metmqstr_sound_readmem,metmqstr_sound_writemem)
|
||||||
MDRV_CPU_IO_MAP(metmqstr_sound_readport,metmqstr_sound_writeport)
|
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_MACHINE_RESET(cave) /* start with the watchdog armed */
|
||||||
MDRV_NVRAM_HANDLER(cave)
|
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_PROGRAM_MAP(sailormn_sound_readmem,sailormn_sound_writemem)
|
||||||
MDRV_CPU_IO_MAP(sailormn_sound_readport,sailormn_sound_writeport)
|
MDRV_CPU_IO_MAP(sailormn_sound_readport,sailormn_sound_writeport)
|
||||||
|
|
||||||
// MDRV_INTERLEAVE(10)
|
// MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(cave)
|
MDRV_MACHINE_RESET(cave)
|
||||||
MDRV_NVRAM_HANDLER(cave)
|
MDRV_NVRAM_HANDLER(cave)
|
||||||
|
@ -639,7 +639,7 @@ static MACHINE_DRIVER_START( champmcu )
|
|||||||
MDRV_CPU_PROGRAM_MAP(mcu_map,0)
|
MDRV_CPU_PROGRAM_MAP(mcu_map,0)
|
||||||
|
|
||||||
/* to MCU timeout champbbj */
|
/* to MCU timeout champbbj */
|
||||||
MDRV_INTERLEAVE(50)
|
MDRV_QUANTUM_TIME(HZ(3000))
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -506,7 +506,7 @@ static MACHINE_DRIVER_START( chinagat )
|
|||||||
MDRV_CPU_ADD("audio", Z80, 3579545) /* 3.579545 MHz */
|
MDRV_CPU_ADD("audio", Z80, 3579545) /* 3.579545 MHz */
|
||||||
MDRV_CPU_PROGRAM_MAP(sound_map,0)
|
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)
|
MDRV_MACHINE_RESET(chinagat)
|
||||||
|
|
||||||
@ -554,7 +554,7 @@ static MACHINE_DRIVER_START( saiyugb1 )
|
|||||||
MDRV_CPU_PROGRAM_MAP(i8748_map,0)
|
MDRV_CPU_PROGRAM_MAP(i8748_map,0)
|
||||||
MDRV_CPU_IO_MAP(i8748_portmap,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)
|
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_ADD("audio", Z80, 3579545) /* 3.579545 MHz oscillator */
|
||||||
MDRV_CPU_PROGRAM_MAP(ym2203c_sound_map,0)
|
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)
|
MDRV_MACHINE_RESET(chinagat)
|
||||||
|
|
||||||
|
@ -354,7 +354,7 @@ static MACHINE_DRIVER_START( chqflag )
|
|||||||
MDRV_CPU_ADD("audio", Z80, XTAL_3_579545MHz) /* verified on pcb */
|
MDRV_CPU_ADD("audio", Z80, XTAL_3_579545MHz) /* verified on pcb */
|
||||||
MDRV_CPU_PROGRAM_MAP(chqflag_readmem_sound,chqflag_writemem_sound)
|
MDRV_CPU_PROGRAM_MAP(chqflag_readmem_sound,chqflag_writemem_sound)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
|
MDRV_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS)
|
||||||
|
@ -1778,7 +1778,7 @@ static MACHINE_DRIVER_START( bigrun )
|
|||||||
MDRV_CPU_PROGRAM_MAP(bigrun_sound_readmem,bigrun_sound_writemem)
|
MDRV_CPU_PROGRAM_MAP(bigrun_sound_readmem,bigrun_sound_writemem)
|
||||||
MDRV_CPU_VBLANK_INT_HACK(irq4_line_hold,CISCHEAT_SOUND_INTERRUPT_NUM)
|
MDRV_CPU_VBLANK_INT_HACK(irq4_line_hold,CISCHEAT_SOUND_INTERRUPT_NUM)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(20)
|
MDRV_QUANTUM_TIME(HZ(1200))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_HAS_SHADOWS)
|
MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_HAS_SHADOWS)
|
||||||
|
@ -338,7 +338,7 @@ static MACHINE_DRIVER_START( cloak )
|
|||||||
MDRV_CPU_PROGRAM_MAP(slave_map,0)
|
MDRV_CPU_PROGRAM_MAP(slave_map,0)
|
||||||
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2)
|
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(5)
|
MDRV_QUANTUM_TIME(HZ(300))
|
||||||
|
|
||||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||||
|
|
||||||
|
@ -583,7 +583,7 @@ static MACHINE_DRIVER_START( combasc )
|
|||||||
MDRV_CPU_ADD("audio", Z80,3579545) /* 3.579545 MHz */
|
MDRV_CPU_ADD("audio", Z80,3579545) /* 3.579545 MHz */
|
||||||
MDRV_CPU_PROGRAM_MAP(combasc_readmem_sound,combasc_writemem_sound)
|
MDRV_CPU_PROGRAM_MAP(combasc_readmem_sound,combasc_writemem_sound)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(20)
|
MDRV_QUANTUM_TIME(HZ(1200))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(combasc)
|
MDRV_MACHINE_RESET(combasc)
|
||||||
|
|
||||||
@ -624,7 +624,7 @@ static MACHINE_DRIVER_START( combascb )
|
|||||||
MDRV_CPU_ADD("audio", Z80,3579545) /* 3.579545 MHz */
|
MDRV_CPU_ADD("audio", Z80,3579545) /* 3.579545 MHz */
|
||||||
MDRV_CPU_PROGRAM_MAP(combasc_readmem_sound,combasc_writemem_sound) /* FAKE */
|
MDRV_CPU_PROGRAM_MAP(combasc_readmem_sound,combasc_writemem_sound) /* FAKE */
|
||||||
|
|
||||||
MDRV_INTERLEAVE(20)
|
MDRV_QUANTUM_TIME(HZ(1200))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(combasc)
|
MDRV_MACHINE_RESET(combasc)
|
||||||
|
|
||||||
|
@ -256,7 +256,7 @@ static MACHINE_DRIVER_START( contra )
|
|||||||
MDRV_CPU_ADD("audio", M6809, 2000000)
|
MDRV_CPU_ADD("audio", M6809, 2000000)
|
||||||
MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound)
|
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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -376,7 +376,7 @@ static MACHINE_DRIVER_START( crgolf )
|
|||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
||||||
|
|
||||||
MDRV_MACHINE_START(crgolf)
|
MDRV_MACHINE_START(crgolf)
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_IMPORT_FROM(crgolf_video)
|
MDRV_IMPORT_FROM(crgolf_video)
|
||||||
|
@ -505,7 +505,7 @@ static MACHINE_DRIVER_START( cubeqst )
|
|||||||
MDRV_CPU_PROGRAM_MAP(line_sound_map, 0)
|
MDRV_CPU_PROGRAM_MAP(line_sound_map, 0)
|
||||||
MDRV_CPU_CONFIG(snd_config)
|
MDRV_CPU_CONFIG(snd_config)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(800)
|
MDRV_QUANTUM_TIME(HZ(48000))
|
||||||
|
|
||||||
MDRV_MACHINE_START(cubeqst)
|
MDRV_MACHINE_START(cubeqst)
|
||||||
MDRV_MACHINE_RESET(cubeqst)
|
MDRV_MACHINE_RESET(cubeqst)
|
||||||
|
@ -426,7 +426,7 @@ static MACHINE_DRIVER_START( cyberbal )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_68k_map,0)
|
MDRV_CPU_PROGRAM_MAP(sound_68k_map,0)
|
||||||
MDRV_CPU_PERIODIC_INT(cyberbal_sound_68k_irq_gen, 10000)
|
MDRV_CPU_PERIODIC_INT(cyberbal_sound_68k_irq_gen, 10000)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(cyberbal)
|
MDRV_MACHINE_RESET(cyberbal)
|
||||||
MDRV_NVRAM_HANDLER(atarigen)
|
MDRV_NVRAM_HANDLER(atarigen)
|
||||||
|
@ -574,7 +574,7 @@ static MACHINE_DRIVER_START( cybertnk )
|
|||||||
MDRV_CPU_ADD("audio", Z80,3579500)
|
MDRV_CPU_ADD("audio", Z80,3579500)
|
||||||
MDRV_CPU_PROGRAM_MAP(sound_mem,0)
|
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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -846,7 +846,7 @@ static MACHINE_DRIVER_START( darius )
|
|||||||
MDRV_CPU_PROGRAM_MAP(darius_sound2_readmem,darius_sound2_writemem)
|
MDRV_CPU_PROGRAM_MAP(darius_sound2_readmem,darius_sound2_writemem)
|
||||||
MDRV_CPU_IO_MAP(darius_sound2_io_map,0)
|
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_START(darius)
|
||||||
MDRV_MACHINE_RESET(darius)
|
MDRV_MACHINE_RESET(darius)
|
||||||
|
@ -565,7 +565,7 @@ static MACHINE_DRIVER_START( dassault )
|
|||||||
MDRV_CPU_ADD("audio", H6280,32220000/8) /* Accurate */
|
MDRV_CPU_ADD("audio", H6280,32220000/8) /* Accurate */
|
||||||
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
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 */
|
/* video hardware */
|
||||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
||||||
|
@ -409,7 +409,7 @@ static MACHINE_DRIVER_START( ddayjlc )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_cpu,0)
|
MDRV_CPU_PROGRAM_MAP(sound_cpu,0)
|
||||||
MDRV_CPU_VBLANK_INT("main", ddayjlc_snd_interrupt)
|
MDRV_CPU_VBLANK_INT("main", ddayjlc_snd_interrupt)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -987,7 +987,7 @@ static MACHINE_DRIVER_START( ddragon )
|
|||||||
MDRV_CPU_ADD("sound", M6809, MAIN_CLOCK/2) /* 6MHz / 4 internally */
|
MDRV_CPU_ADD("sound", M6809, MAIN_CLOCK/2) /* 6MHz / 4 internally */
|
||||||
MDRV_CPU_PROGRAM_MAP(sound_map,0)
|
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_START(ddragon)
|
||||||
MDRV_MACHINE_RESET(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_ADD("sound", M6809, MAIN_CLOCK/2) /* 6MHz / 4 internally */
|
||||||
MDRV_CPU_PROGRAM_MAP(sound_map,0)
|
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_START(ddragon)
|
||||||
MDRV_MACHINE_RESET(ddragon)
|
MDRV_MACHINE_RESET(ddragon)
|
||||||
@ -1098,7 +1098,7 @@ static MACHINE_DRIVER_START( ddragon2 )
|
|||||||
MDRV_CPU_ADD("sound", Z80, 3579545)
|
MDRV_CPU_ADD("sound", Z80, 3579545)
|
||||||
MDRV_CPU_PROGRAM_MAP(dd2_sound_map,0)
|
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_START(ddragon)
|
||||||
MDRV_MACHINE_RESET(ddragon)
|
MDRV_MACHINE_RESET(ddragon)
|
||||||
|
@ -350,7 +350,7 @@ static MACHINE_DRIVER_START( ddribble )
|
|||||||
MDRV_CPU_ADD("cpu2", M6809, XTAL_18_432MHz/12) /* verified on pcb */
|
MDRV_CPU_ADD("cpu2", M6809, XTAL_18_432MHz/12) /* verified on pcb */
|
||||||
MDRV_CPU_PROGRAM_MAP(readmem_cpu2,writemem_cpu2)
|
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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -238,7 +238,7 @@ static MACHINE_DRIVER_START( deadang )
|
|||||||
|
|
||||||
SEIBU3A_SOUND_SYSTEM_CPU(XTAL_14_31818MHz/4)
|
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)
|
MDRV_MACHINE_RESET(seibu_sound)
|
||||||
|
|
||||||
|
@ -984,7 +984,7 @@ static MACHINE_DRIVER_START( robocop )
|
|||||||
MDRV_CPU_ADD("sub", H6280,21477200/16) /* 21.4772MHz clock */
|
MDRV_CPU_ADD("sub", H6280,21477200/16) /* 21.4772MHz clock */
|
||||||
MDRV_CPU_PROGRAM_MAP(robocop_sub_readmem,robocop_sub_writemem)
|
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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
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_ADD("sub", H6280,21477200/16) /* 21.4772MHz clock */
|
||||||
MDRV_CPU_PROGRAM_MAP(hippodrm_sub_readmem,hippodrm_sub_writemem)
|
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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -2223,7 +2223,7 @@ static MACHINE_DRIVER_START( oscar )
|
|||||||
MDRV_CPU_ADD("audio", M6502, XTAL_12MHz/8)
|
MDRV_CPU_ADD("audio", M6502, XTAL_12MHz/8)
|
||||||
MDRV_CPU_PROGRAM_MAP(dec8_s_readmem,oscar_s_writemem)
|
MDRV_CPU_PROGRAM_MAP(dec8_s_readmem,oscar_s_writemem)
|
||||||
/* NMIs are caused by the main CPU */
|
/* 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 */
|
/* video hardware */
|
||||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
||||||
@ -2267,7 +2267,7 @@ static MACHINE_DRIVER_START( lastmiss )
|
|||||||
MDRV_CPU_ADD("audio", M6502, 1500000)
|
MDRV_CPU_ADD("audio", M6502, 1500000)
|
||||||
MDRV_CPU_PROGRAM_MAP(ym3526_s_readmem,ym3526_s_writemem)
|
MDRV_CPU_PROGRAM_MAP(ym3526_s_readmem,ym3526_s_writemem)
|
||||||
/* NMIs are caused by the main CPU */
|
/* NMIs are caused by the main CPU */
|
||||||
MDRV_INTERLEAVE(200)
|
MDRV_QUANTUM_TIME(HZ(12000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
||||||
@ -2311,7 +2311,7 @@ static MACHINE_DRIVER_START( shackled )
|
|||||||
MDRV_CPU_ADD("audio", M6502, 1500000)
|
MDRV_CPU_ADD("audio", M6502, 1500000)
|
||||||
MDRV_CPU_PROGRAM_MAP(ym3526_s_readmem,ym3526_s_writemem)
|
MDRV_CPU_PROGRAM_MAP(ym3526_s_readmem,ym3526_s_writemem)
|
||||||
/* NMIs are caused by the main CPU */
|
/* NMIs are caused by the main CPU */
|
||||||
MDRV_INTERLEAVE(80)
|
MDRV_QUANTUM_TIME(HZ(4800))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
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_ADD("audio", M6502, XTAL_12MHz/8) /* verified on pcb */
|
||||||
MDRV_CPU_PROGRAM_MAP(csilver_s_readmem,csilver_s_writemem)
|
MDRV_CPU_PROGRAM_MAP(csilver_s_readmem,csilver_s_writemem)
|
||||||
/* NMIs are caused by the main CPU */
|
/* NMIs are caused by the main CPU */
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
||||||
|
@ -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_ADD("mcu", I8041,500000*15) /* 500 kHz ( I doubt it is 400kHz Al! )*/
|
||||||
MDRV_CPU_IO_MAP(decocass_mcu_portmap,0)
|
MDRV_CPU_IO_MAP(decocass_mcu_portmap,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(70) /* interleave CPUs */
|
MDRV_QUANTUM_TIME(HZ(4200)) /* interleave CPUs */
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(decocass)
|
MDRV_MACHINE_RESET(decocass)
|
||||||
|
|
||||||
|
@ -841,7 +841,7 @@ static MACHINE_DRIVER_START( djboy )
|
|||||||
MDRV_CPU_IO_MAP(cpu2_port_am,0)
|
MDRV_CPU_IO_MAP(cpu2_port_am,0)
|
||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
MDRV_SCREEN_REFRESH_RATE(60)
|
MDRV_SCREEN_REFRESH_RATE(60)
|
||||||
|
@ -743,7 +743,7 @@ static MACHINE_DRIVER_START( dleuro )
|
|||||||
MDRV_Z80CTC_ADD("ctc", MASTER_CLOCK_EURO/4 /* same as "main" */, ctc_intf)
|
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_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_START(dlair)
|
||||||
MDRV_MACHINE_RESET(dlair)
|
MDRV_MACHINE_RESET(dlair)
|
||||||
|
@ -249,7 +249,7 @@ static MACHINE_DRIVER_START( dogfgt )
|
|||||||
MDRV_CPU_ADD("sub", M6502, 1500000) /* 1.5 MHz ???? */
|
MDRV_CPU_ADD("sub", M6502, 1500000) /* 1.5 MHz ???? */
|
||||||
MDRV_CPU_PROGRAM_MAP(sub_readmem,sub_writemem)
|
MDRV_CPU_PROGRAM_MAP(sub_readmem,sub_writemem)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -225,7 +225,7 @@ static MACHINE_DRIVER_START( drmicro )
|
|||||||
MDRV_CPU_IO_MAP(io_map,0)
|
MDRV_CPU_IO_MAP(io_map,0)
|
||||||
MDRV_CPU_VBLANK_INT("main", drmicro_interrupt)
|
MDRV_CPU_VBLANK_INT("main", drmicro_interrupt)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(1)
|
MDRV_QUANTUM_TIME(HZ(60))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -680,7 +680,7 @@ static MACHINE_DRIVER_START( dunhuang )
|
|||||||
MDRV_CPU_IO_MAP(dunhuang_io_map,0)
|
MDRV_CPU_IO_MAP(dunhuang_io_map,0)
|
||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -293,7 +293,7 @@ static MACHINE_DRIVER_START( dynduke )
|
|||||||
|
|
||||||
SEIBU_SOUND_SYSTEM_CPU(14318180/4)
|
SEIBU_SOUND_SYSTEM_CPU(14318180/4)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(60)
|
MDRV_QUANTUM_TIME(HZ(3600))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(seibu_sound)
|
MDRV_MACHINE_RESET(seibu_sound)
|
||||||
|
|
||||||
|
@ -417,7 +417,7 @@ static MACHINE_DRIVER_START( eprom )
|
|||||||
MDRV_CPU_ADD("extra", M68000, ATARI_CLOCK_14MHz/2)
|
MDRV_CPU_ADD("extra", M68000, ATARI_CLOCK_14MHz/2)
|
||||||
MDRV_CPU_PROGRAM_MAP(extra_map,0)
|
MDRV_CPU_PROGRAM_MAP(extra_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(eprom)
|
MDRV_MACHINE_RESET(eprom)
|
||||||
MDRV_NVRAM_HANDLER(atarigen)
|
MDRV_NVRAM_HANDLER(atarigen)
|
||||||
@ -448,7 +448,7 @@ static MACHINE_DRIVER_START( klaxp )
|
|||||||
MDRV_CPU_PROGRAM_MAP(main_map,0)
|
MDRV_CPU_PROGRAM_MAP(main_map,0)
|
||||||
MDRV_CPU_VBLANK_INT("main", atarigen_video_int_gen)
|
MDRV_CPU_VBLANK_INT("main", atarigen_video_int_gen)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(klaxp)
|
MDRV_MACHINE_RESET(klaxp)
|
||||||
MDRV_NVRAM_HANDLER(atarigen)
|
MDRV_NVRAM_HANDLER(atarigen)
|
||||||
@ -478,7 +478,7 @@ static MACHINE_DRIVER_START( guts )
|
|||||||
MDRV_CPU_PROGRAM_MAP(guts_map,0)
|
MDRV_CPU_PROGRAM_MAP(guts_map,0)
|
||||||
MDRV_CPU_VBLANK_INT("main", atarigen_video_int_gen)
|
MDRV_CPU_VBLANK_INT("main", atarigen_video_int_gen)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(eprom)
|
MDRV_MACHINE_RESET(eprom)
|
||||||
MDRV_NVRAM_HANDLER(atarigen)
|
MDRV_NVRAM_HANDLER(atarigen)
|
||||||
|
@ -844,7 +844,7 @@ static MACHINE_DRIVER_START( venture )
|
|||||||
MDRV_CPU_MODIFY("main")
|
MDRV_CPU_MODIFY("main")
|
||||||
MDRV_CPU_PROGRAM_MAP(exidy_map,venture_map)
|
MDRV_CPU_PROGRAM_MAP(exidy_map,venture_map)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* audio hardware */
|
/* audio hardware */
|
||||||
MDRV_IMPORT_FROM(venture_audio)
|
MDRV_IMPORT_FROM(venture_audio)
|
||||||
@ -865,7 +865,7 @@ static MACHINE_DRIVER_START( mtrap )
|
|||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MDRV_IMPORT_FROM(venture)
|
MDRV_IMPORT_FROM(venture)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(32)
|
MDRV_QUANTUM_TIME(HZ(1920))
|
||||||
|
|
||||||
/* audio hardware */
|
/* audio hardware */
|
||||||
MDRV_IMPORT_FROM(mtrap_cvsd_audio)
|
MDRV_IMPORT_FROM(mtrap_cvsd_audio)
|
||||||
|
@ -501,7 +501,7 @@ static MACHINE_DRIVER_START( galsnew )
|
|||||||
MDRV_PALETTE_INIT(berlwall)
|
MDRV_PALETTE_INIT(berlwall)
|
||||||
|
|
||||||
/* arm watchdog */
|
/* 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 */
|
/* sound hardware */
|
||||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||||
@ -520,7 +520,7 @@ static MACHINE_DRIVER_START( fantasia )
|
|||||||
MDRV_CPU_MODIFY("main")
|
MDRV_CPU_MODIFY("main")
|
||||||
MDRV_CPU_PROGRAM_MAP(fantasia_map,0)
|
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
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
|
@ -489,7 +489,7 @@ static MACHINE_DRIVER_START( exterm )
|
|||||||
MDRV_CPU_ADD("audioslave", M6502, 2000000)
|
MDRV_CPU_ADD("audioslave", M6502, 2000000)
|
||||||
MDRV_CPU_PROGRAM_MAP(sound_slave_map,0)
|
MDRV_CPU_PROGRAM_MAP(sound_slave_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(exterm)
|
MDRV_MACHINE_RESET(exterm)
|
||||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||||
|
@ -341,7 +341,7 @@ static MACHINE_DRIVER_START( exzisus )
|
|||||||
MDRV_CPU_PROGRAM_MAP(cpuc_readmem,cpuc_writemem)
|
MDRV_CPU_PROGRAM_MAP(cpuc_readmem,cpuc_writemem)
|
||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -485,7 +485,7 @@ static MACHINE_DRIVER_START( f1gp )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
||||||
MDRV_CPU_IO_MAP(sound_io_map,0)
|
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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
@ -524,7 +524,7 @@ static MACHINE_DRIVER_START( f1gpb )
|
|||||||
MDRV_CPU_VBLANK_INT("main", irq1_line_hold)
|
MDRV_CPU_VBLANK_INT("main", irq1_line_hold)
|
||||||
|
|
||||||
/* NO sound CPU */
|
/* NO sound CPU */
|
||||||
MDRV_INTERLEAVE(100) /* 100 CPU slices per frame */
|
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame */
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -830,7 +830,7 @@ static MACHINE_DRIVER_START( fantland )
|
|||||||
|
|
||||||
MDRV_MACHINE_RESET(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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -658,10 +658,10 @@ static MACHINE_DRIVER_START( firefox )
|
|||||||
MDRV_CPU_ADD("audio", M6502, MASTER_XTAL/8)
|
MDRV_CPU_ADD("audio", M6502, MASTER_XTAL/8)
|
||||||
MDRV_CPU_PROGRAM_MAP(audio_map, 0)
|
MDRV_CPU_PROGRAM_MAP(audio_map, 0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(1000)
|
MDRV_QUANTUM_TIME(HZ(60000))
|
||||||
|
|
||||||
MDRV_MACHINE_START(firefox)
|
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 */
|
/* video hardware */
|
||||||
MDRV_LASERDISC_SCREEN_ADD_NTSC("main", BITMAP_FORMAT_RGB32)
|
MDRV_LASERDISC_SCREEN_ADD_NTSC("main", BITMAP_FORMAT_RGB32)
|
||||||
|
@ -290,7 +290,7 @@ static MACHINE_DRIVER_START( flkatck )
|
|||||||
MDRV_CPU_ADD("audio", Z80,3579545) /* NEC D780C-1, 3.579545 MHz */
|
MDRV_CPU_ADD("audio", Z80,3579545) /* NEC D780C-1, 3.579545 MHz */
|
||||||
MDRV_CPU_PROGRAM_MAP(flkatck_readmem_sound,flkatck_writemem_sound)
|
MDRV_CPU_PROGRAM_MAP(flkatck_readmem_sound,flkatck_writemem_sound)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(flkatck)
|
MDRV_MACHINE_RESET(flkatck)
|
||||||
|
|
||||||
|
@ -668,7 +668,7 @@ static MACHINE_DRIVER_START( flstory )
|
|||||||
MDRV_CPU_ADD("mcu", M68705,XTAL_18_432MHz/6) /* verified on pcb */
|
MDRV_CPU_ADD("mcu", M68705,XTAL_18_432MHz/6) /* verified on pcb */
|
||||||
MDRV_CPU_PROGRAM_MAP(flstory_m68705_map,0)
|
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 */
|
/* synchronization of the CPUs */
|
||||||
MDRV_MACHINE_RESET(ta7630)
|
MDRV_MACHINE_RESET(ta7630)
|
||||||
|
|
||||||
@ -725,7 +725,7 @@ static MACHINE_DRIVER_START( onna34ro )
|
|||||||
// MDRV_CPU_ADD("mcu", M68705,4000000) /* ??? */
|
// MDRV_CPU_ADD("mcu", M68705,4000000) /* ??? */
|
||||||
// MDRV_CPU_PROGRAM_MAP(m68705_readmem,m68705_writemem)
|
// 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 */
|
/* synchronization of the CPUs */
|
||||||
MDRV_MACHINE_RESET(ta7630)
|
MDRV_MACHINE_RESET(ta7630)
|
||||||
|
|
||||||
@ -782,7 +782,7 @@ static MACHINE_DRIVER_START( victnine )
|
|||||||
// MDRV_CPU_ADD("mcu", M68705,4000000) /* ??? */
|
// MDRV_CPU_ADD("mcu", M68705,4000000) /* ??? */
|
||||||
// MDRV_CPU_PROGRAM_MAP(m68705_readmem,m68705_writemem)
|
// 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 */
|
/* synchronization of the CPUs */
|
||||||
MDRV_MACHINE_RESET(ta7630)
|
MDRV_MACHINE_RESET(ta7630)
|
||||||
|
|
||||||
|
@ -231,7 +231,7 @@ static MACHINE_DRIVER_START( bigkarnk )
|
|||||||
MDRV_CPU_ADD("audio", M6809, 8867000/4) /* 68B09, 2.21675 MHz? */
|
MDRV_CPU_ADD("audio", M6809, 8867000/4) /* 68B09, 2.21675 MHz? */
|
||||||
MDRV_CPU_PROGRAM_MAP(bigkarnk_readmem_snd,bigkarnk_writemem_snd)
|
MDRV_CPU_PROGRAM_MAP(bigkarnk_readmem_snd,bigkarnk_writemem_snd)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
@ -624,7 +624,7 @@ static MACHINE_DRIVER_START( squash )
|
|||||||
MDRV_CPU_PROGRAM_MAP(squash_readmem,squash_writemem)
|
MDRV_CPU_PROGRAM_MAP(squash_readmem,squash_writemem)
|
||||||
MDRV_CPU_VBLANK_INT("main", irq6_line_hold)
|
MDRV_CPU_VBLANK_INT("main", irq6_line_hold)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
@ -775,7 +775,7 @@ static MACHINE_DRIVER_START( thoop )
|
|||||||
MDRV_CPU_PROGRAM_MAP(squash_readmem,thoop_writemem)
|
MDRV_CPU_PROGRAM_MAP(squash_readmem,thoop_writemem)
|
||||||
MDRV_CPU_VBLANK_INT("main", irq6_line_hold)
|
MDRV_CPU_VBLANK_INT("main", irq6_line_hold)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -940,7 +940,7 @@ static MACHINE_DRIVER_START( gaelco3d )
|
|||||||
MDRV_MACHINE_RESET(gaelco3d)
|
MDRV_MACHINE_RESET(gaelco3d)
|
||||||
MDRV_NVRAM_HANDLER(93C66B)
|
MDRV_NVRAM_HANDLER(93C66B)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -1649,7 +1649,7 @@ static MACHINE_DRIVER_START( bosco )
|
|||||||
MDRV_CPU_IO_MAP(namco_54xx_map_io,0)
|
MDRV_CPU_IO_MAP(namco_54xx_map_io,0)
|
||||||
|
|
||||||
MDRV_WATCHDOG_VBLANK_INIT(8)
|
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 */
|
/* synchronization of the CPUs */
|
||||||
MDRV_MACHINE_START(galaga)
|
MDRV_MACHINE_START(galaga)
|
||||||
MDRV_MACHINE_RESET(bosco)
|
MDRV_MACHINE_RESET(bosco)
|
||||||
@ -1708,7 +1708,7 @@ static MACHINE_DRIVER_START( galaga )
|
|||||||
MDRV_CPU_IO_MAP(namco_54xx_map_io,0)
|
MDRV_CPU_IO_MAP(namco_54xx_map_io,0)
|
||||||
|
|
||||||
MDRV_WATCHDOG_VBLANK_INIT(8)
|
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 */
|
/* synchronization of the CPUs */
|
||||||
MDRV_MACHINE_START(galaga)
|
MDRV_MACHINE_START(galaga)
|
||||||
MDRV_MACHINE_RESET(galaga)
|
MDRV_MACHINE_RESET(galaga)
|
||||||
@ -1782,7 +1782,7 @@ static MACHINE_DRIVER_START( xevious )
|
|||||||
MDRV_CPU_IO_MAP(namco_54xx_map_io,0)
|
MDRV_CPU_IO_MAP(namco_54xx_map_io,0)
|
||||||
|
|
||||||
MDRV_WATCHDOG_VBLANK_INIT(8)
|
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 */
|
/* synchronization of the CPUs */
|
||||||
MDRV_MACHINE_START(galaga)
|
MDRV_MACHINE_START(galaga)
|
||||||
MDRV_MACHINE_RESET(xevious)
|
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_ADD("sub2", Z80, MASTER_CLOCK/6) /* 3.072 MHz */
|
||||||
MDRV_CPU_PROGRAM_MAP(digdug_map,0)
|
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 */
|
/* synchronization of the CPUs */
|
||||||
MDRV_MACHINE_START(galaga)
|
MDRV_MACHINE_START(galaga)
|
||||||
MDRV_MACHINE_RESET(digdug)
|
MDRV_MACHINE_RESET(digdug)
|
||||||
|
@ -967,7 +967,7 @@ static MACHINE_DRIVER_START( galpania )
|
|||||||
MDRV_IMPORT_FROM(galpanic)
|
MDRV_IMPORT_FROM(galpanic)
|
||||||
|
|
||||||
/* arm watchdog */
|
/* 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
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( comad )
|
static MACHINE_DRIVER_START( comad )
|
||||||
|
@ -553,7 +553,7 @@ static MACHINE_DRIVER_START( gaplus )
|
|||||||
MDRV_CPU_PROGRAM_MAP(readmem_cpu3,writemem_cpu3)
|
MDRV_CPU_PROGRAM_MAP(readmem_cpu3,writemem_cpu3)
|
||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_assert)
|
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)
|
MDRV_MACHINE_RESET(gaplus)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -653,7 +653,7 @@ static MACHINE_DRIVER_START( genesis_base )
|
|||||||
MDRV_CPU_PROGRAM_MAP(genesis_z80_readmem, genesis_z80_writemem)
|
MDRV_CPU_PROGRAM_MAP(genesis_z80_readmem, genesis_z80_writemem)
|
||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_hold) /* from vdp at scanline 0xe0 */
|
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_START(genesis)
|
||||||
MDRV_MACHINE_RESET(genesis)
|
MDRV_MACHINE_RESET(genesis)
|
||||||
|
@ -705,7 +705,7 @@ static MACHINE_DRIVER_START( ppking )
|
|||||||
MDRV_CPU_ADD("audio", M6809, XTAL_12MHz/16) /* verified on pcb */
|
MDRV_CPU_ADD("audio", M6809, XTAL_12MHz/16) /* verified on pcb */
|
||||||
MDRV_CPU_PROGRAM_MAP(ppking_cpu3_map,0)
|
MDRV_CPU_PROGRAM_MAP(ppking_cpu3_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(ppking)
|
MDRV_MACHINE_RESET(ppking)
|
||||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
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_ADD("audio", M6809, XTAL_12MHz/16) /* verified on pcb */
|
||||||
MDRV_CPU_PROGRAM_MAP(gladiatr_cpu3_map,0)
|
MDRV_CPU_PROGRAM_MAP(gladiatr_cpu3_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(gladiator)
|
MDRV_MACHINE_RESET(gladiator)
|
||||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||||
|
@ -349,7 +349,7 @@ static MACHINE_DRIVER_START( gradius3 )
|
|||||||
MDRV_CPU_ADD("audio", Z80, 3579545)
|
MDRV_CPU_ADD("audio", Z80, 3579545)
|
||||||
MDRV_CPU_PROGRAM_MAP(gradius3_s_map,0)
|
MDRV_CPU_PROGRAM_MAP(gradius3_s_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(gradius3)
|
MDRV_MACHINE_RESET(gradius3)
|
||||||
|
|
||||||
|
@ -692,7 +692,7 @@ static MACHINE_DRIVER_START( grchamp )
|
|||||||
|
|
||||||
MDRV_MACHINE_RESET(grchamp)
|
MDRV_MACHINE_RESET(grchamp)
|
||||||
MDRV_WATCHDOG_VBLANK_INIT(8)
|
MDRV_WATCHDOG_VBLANK_INIT(8)
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
|
MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
|
||||||
|
@ -707,13 +707,13 @@ static MACHINE_DRIVER_START( gsword )
|
|||||||
MDRV_CPU_ADD("audio", Z80, XTAL_18MHz/6) /* verified on pcb */
|
MDRV_CPU_ADD("audio", Z80, XTAL_18MHz/6) /* verified on pcb */
|
||||||
MDRV_CPU_PROGRAM_MAP(cpu3_map,0)
|
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)
|
MDRV_MACHINE_RESET(gsword)
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
/* to MCU timeout champbbj */
|
/* to MCU timeout champbbj */
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -924,7 +924,7 @@ static MACHINE_DRIVER_START( gticlub )
|
|||||||
MDRV_CPU_CONFIG(sharc_cfg)
|
MDRV_CPU_CONFIG(sharc_cfg)
|
||||||
MDRV_CPU_DATA_MAP(sharc_map, 0)
|
MDRV_CPU_DATA_MAP(sharc_map, 0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
MDRV_NVRAM_HANDLER(gticlub)
|
MDRV_NVRAM_HANDLER(gticlub)
|
||||||
MDRV_MACHINE_START(gticlub)
|
MDRV_MACHINE_START(gticlub)
|
||||||
@ -972,7 +972,7 @@ static MACHINE_DRIVER_START( hangplt )
|
|||||||
MDRV_CPU_CONFIG(sharc_cfg)
|
MDRV_CPU_CONFIG(sharc_cfg)
|
||||||
MDRV_CPU_DATA_MAP(hangplt_sharc1_map, 0)
|
MDRV_CPU_DATA_MAP(hangplt_sharc1_map, 0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
MDRV_NVRAM_HANDLER(gticlub)
|
MDRV_NVRAM_HANDLER(gticlub)
|
||||||
MDRV_MACHINE_START(gticlub)
|
MDRV_MACHINE_START(gticlub)
|
||||||
|
@ -521,7 +521,7 @@ static MACHINE_DRIVER_START( gyruss )
|
|||||||
MDRV_CPU_PROGRAM_MAP(audio_cpu2_map,0)
|
MDRV_CPU_PROGRAM_MAP(audio_cpu2_map,0)
|
||||||
MDRV_CPU_IO_MAP(audio_cpu2_io_map,0)
|
MDRV_CPU_IO_MAP(audio_cpu2_io_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -1015,7 +1015,7 @@ static MACHINE_DRIVER_START( driver_nomsp )
|
|||||||
MDRV_CPU_PROGRAM_MAP(driver_gsp_map,0)
|
MDRV_CPU_PROGRAM_MAP(driver_gsp_map,0)
|
||||||
MDRV_CPU_CONFIG(gsp_config_driver)
|
MDRV_CPU_CONFIG(gsp_config_driver)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(500)
|
MDRV_QUANTUM_TIME(HZ(30000))
|
||||||
|
|
||||||
MDRV_MACHINE_START(harddriv)
|
MDRV_MACHINE_START(harddriv)
|
||||||
MDRV_MACHINE_RESET(harddriv)
|
MDRV_MACHINE_RESET(harddriv)
|
||||||
@ -1112,7 +1112,7 @@ static MACHINE_DRIVER_START( ds3 )
|
|||||||
MDRV_CPU_PROGRAM_MAP(ds3_program_map,0)
|
MDRV_CPU_PROGRAM_MAP(ds3_program_map,0)
|
||||||
MDRV_CPU_DATA_MAP(ds3_data_map,0)
|
MDRV_CPU_DATA_MAP(ds3_data_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(1000)
|
MDRV_QUANTUM_TIME(HZ(60000))
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -1287,7 +1287,7 @@ static MACHINE_DRIVER_START( reikaids )
|
|||||||
MDRV_CPU_IO_MAP(reikaids_upd7807_io_map,0)
|
MDRV_CPU_IO_MAP(reikaids_upd7807_io_map,0)
|
||||||
MDRV_CPU_VBLANK_INT("main", upd7807_irq)
|
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)
|
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_IO_MAP(pteacher_upd7807_io_map,0)
|
||||||
MDRV_CPU_VBLANK_INT("main", upd7807_irq)
|
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)
|
MDRV_MACHINE_RESET(pteacher_upd7807)
|
||||||
|
|
||||||
|
@ -1056,7 +1056,7 @@ static MACHINE_DRIVER_START( hornet )
|
|||||||
MDRV_CPU_CONFIG(sharc_cfg)
|
MDRV_CPU_CONFIG(sharc_cfg)
|
||||||
MDRV_CPU_DATA_MAP(sharc0_map, 0)
|
MDRV_CPU_DATA_MAP(sharc0_map, 0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
MDRV_MACHINE_START( hornet )
|
MDRV_MACHINE_START( hornet )
|
||||||
MDRV_MACHINE_RESET( hornet )
|
MDRV_MACHINE_RESET( hornet )
|
||||||
|
@ -141,7 +141,7 @@ static MACHINE_DRIVER_START( genesis_base )
|
|||||||
MDRV_CPU_PROGRAM_MAP(genesis_z80_readmem, genesis_z80_writemem)
|
MDRV_CPU_PROGRAM_MAP(genesis_z80_readmem, genesis_z80_writemem)
|
||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_hold) /* from vdp at scanline 0xe0 */
|
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_START(genesis)
|
||||||
MDRV_MACHINE_RESET(genesis)
|
MDRV_MACHINE_RESET(genesis)
|
||||||
|
@ -202,7 +202,7 @@ static MACHINE_DRIVER_START( ikki )
|
|||||||
MDRV_CPU_PROGRAM_MAP(ikki_cpu2,0)
|
MDRV_CPU_PROGRAM_MAP(ikki_cpu2,0)
|
||||||
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2)
|
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -415,7 +415,7 @@ static MACHINE_DRIVER_START( imolagp )
|
|||||||
MDRV_CPU_IO_MAP(readport_slave,0)
|
MDRV_CPU_IO_MAP(readport_slave,0)
|
||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
MDRV_PPI8255_ADD( "ppi8255", ppi8255_intf )
|
MDRV_PPI8255_ADD( "ppi8255", ppi8255_intf )
|
||||||
|
|
||||||
|
@ -1747,7 +1747,7 @@ static MACHINE_DRIVER_START( drivedge )
|
|||||||
// MDRV_CPU_ADD("comm", M6803, 8000000/4) -- network CPU
|
// MDRV_CPU_ADD("comm", M6803, 8000000/4) -- network CPU
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(drivedge)
|
MDRV_MACHINE_RESET(drivedge)
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -307,7 +307,7 @@ static MACHINE_DRIVER_START( jackal )
|
|||||||
MDRV_CPU_ADD("slave", M6809, MASTER_CLOCK/12) // verified on pcb
|
MDRV_CPU_ADD("slave", M6809, MASTER_CLOCK/12) // verified on pcb
|
||||||
MDRV_CPU_PROGRAM_MAP(slave_map, 0)
|
MDRV_CPU_PROGRAM_MAP(slave_map, 0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(jackal)
|
MDRV_MACHINE_RESET(jackal)
|
||||||
|
|
||||||
|
@ -349,7 +349,7 @@ static MACHINE_DRIVER_START( jedi )
|
|||||||
MDRV_CPU_ADD("main", M6502, JEDI_MAIN_CPU_CLOCK)
|
MDRV_CPU_ADD("main", M6502, JEDI_MAIN_CPU_CLOCK)
|
||||||
MDRV_CPU_PROGRAM_MAP(main_map,0)
|
MDRV_CPU_PROGRAM_MAP(main_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(4)
|
MDRV_QUANTUM_TIME(HZ(240))
|
||||||
|
|
||||||
MDRV_MACHINE_START(jedi)
|
MDRV_MACHINE_START(jedi)
|
||||||
MDRV_MACHINE_RESET(jedi)
|
MDRV_MACHINE_RESET(jedi)
|
||||||
|
@ -851,7 +851,7 @@ static MACHINE_DRIVER_START( jpmimpct )
|
|||||||
MDRV_CPU_CONFIG(tms_config)
|
MDRV_CPU_CONFIG(tms_config)
|
||||||
MDRV_CPU_PROGRAM_MAP(tms_program_map, 0)
|
MDRV_CPU_PROGRAM_MAP(tms_program_map, 0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(500)
|
MDRV_QUANTUM_TIME(HZ(30000))
|
||||||
MDRV_MACHINE_RESET(jpmimpct)
|
MDRV_MACHINE_RESET(jpmimpct)
|
||||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||||
|
|
||||||
|
@ -560,7 +560,7 @@ static MACHINE_DRIVER_START( kingofb )
|
|||||||
MDRV_CPU_IO_MAP(sound_io_map,0)
|
MDRV_CPU_IO_MAP(sound_io_map,0)
|
||||||
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 6000) /* Hz */
|
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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
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_IO_MAP(rk_sound_io_map,0)
|
||||||
MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 6000) /* Hz */
|
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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -1310,7 +1310,7 @@ static MACHINE_DRIVER_START( konamigx )
|
|||||||
MDRV_CPU_PROGRAM_MAP(gxsndmap, 0)
|
MDRV_CPU_PROGRAM_MAP(gxsndmap, 0)
|
||||||
MDRV_CPU_PERIODIC_INT(irq2_line_hold, 480)
|
MDRV_CPU_PERIODIC_INT(irq2_line_hold, 480)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(32)
|
MDRV_QUANTUM_TIME(HZ(1920))
|
||||||
|
|
||||||
MDRV_MACHINE_START(konamigx)
|
MDRV_MACHINE_START(konamigx)
|
||||||
MDRV_MACHINE_RESET(konamigx)
|
MDRV_MACHINE_RESET(konamigx)
|
||||||
|
@ -250,7 +250,7 @@ static MACHINE_DRIVER_START( ksayakyu )
|
|||||||
MDRV_CPU_PROGRAM_MAP(soundcpu_map,0)
|
MDRV_CPU_PROGRAM_MAP(soundcpu_map,0)
|
||||||
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,4)
|
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,4)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(1000)
|
MDRV_QUANTUM_TIME(HZ(60000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -473,7 +473,7 @@ static MACHINE_DRIVER_START( gyrodine )
|
|||||||
MDRV_CPU_IO_MAP(gyrodine_sub_portmap,0)
|
MDRV_CPU_IO_MAP(gyrodine_sub_portmap,0)
|
||||||
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,4)
|
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,4)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
MDRV_MACHINE_RESET(kyugo)
|
MDRV_MACHINE_RESET(kyugo)
|
||||||
|
|
||||||
|
@ -290,7 +290,7 @@ static MACHINE_DRIVER_START( ladyfrog )
|
|||||||
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2)
|
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
|
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -473,7 +473,7 @@ static MACHINE_DRIVER_START( base )
|
|||||||
MDRV_CPU_ADD("audio", M6502, 600000)
|
MDRV_CPU_ADD("audio", M6502, 600000)
|
||||||
MDRV_CPU_PROGRAM_MAP(lasso_audio_map, 0)
|
MDRV_CPU_PROGRAM_MAP(lasso_audio_map, 0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -525,7 +525,7 @@ static MACHINE_DRIVER_START( liberate )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
||||||
MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,16)
|
MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,16)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(200)
|
MDRV_QUANTUM_TIME(HZ(12000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
@ -596,7 +596,7 @@ static MACHINE_DRIVER_START( prosport )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
||||||
MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,16)
|
MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,16)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(200)
|
MDRV_QUANTUM_TIME(HZ(12000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -473,8 +473,8 @@ static MACHINE_DRIVER_START( lockon )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_prg, 0)
|
MDRV_CPU_PROGRAM_MAP(sound_prg, 0)
|
||||||
MDRV_CPU_IO_MAP(sound_io, 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_WATCHDOG_TIME_INIT(NSEC(PERIOD_OF_555_ASTABLE_NSEC(10000, 4700, 10000e-12) * 4096))
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
|
MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
|
||||||
|
|
||||||
|
@ -570,7 +570,7 @@ static MACHINE_DRIVER_START( lsasquad )
|
|||||||
MDRV_CPU_ADD("mcu", M68705,4000000) /* ? */
|
MDRV_CPU_ADD("mcu", M68705,4000000) /* ? */
|
||||||
MDRV_CPU_PROGRAM_MAP(m68705_readmem,m68705_writemem)
|
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 */
|
/* synchronization of the CPUs */
|
||||||
/* main<->sound synchronization depends on this */
|
/* main<->sound synchronization depends on this */
|
||||||
|
|
||||||
@ -613,7 +613,7 @@ static MACHINE_DRIVER_START( daikaiju )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_mem_daikaiju, 0)
|
MDRV_CPU_PROGRAM_MAP(sound_mem_daikaiju, 0)
|
||||||
/* IRQs are triggered by the YM2203 */
|
/* 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 */
|
/* synchronization of the CPUs */
|
||||||
/* main<->sound synchronization depends on this */
|
/* main<->sound synchronization depends on this */
|
||||||
|
|
||||||
|
@ -378,7 +378,7 @@ static MACHINE_DRIVER_START( magmax )
|
|||||||
MDRV_CPU_PROGRAM_MAP(magmax_soundreadmem,magmax_soundwritemem)
|
MDRV_CPU_PROGRAM_MAP(magmax_soundreadmem,magmax_soundwritemem)
|
||||||
MDRV_CPU_IO_MAP(magmax_sound_io_map,0)
|
MDRV_CPU_IO_MAP(magmax_sound_io_map,0)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
MDRV_MACHINE_START(magmax)
|
MDRV_MACHINE_START(magmax)
|
||||||
MDRV_MACHINE_RESET(magmax)
|
MDRV_MACHINE_RESET(magmax)
|
||||||
|
@ -1584,7 +1584,7 @@ static MACHINE_DRIVER_START( superpac )
|
|||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_assert)
|
MDRV_CPU_VBLANK_INT("main", irq0_line_assert)
|
||||||
|
|
||||||
MDRV_WATCHDOG_VBLANK_INIT(8)
|
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 */
|
/* synchronization of the CPUs */
|
||||||
MDRV_MACHINE_RESET(superpac)
|
MDRV_MACHINE_RESET(superpac)
|
||||||
|
|
||||||
@ -1635,7 +1635,7 @@ static MACHINE_DRIVER_START( phozon )
|
|||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_assert)
|
MDRV_CPU_VBLANK_INT("main", irq0_line_assert)
|
||||||
|
|
||||||
MDRV_WATCHDOG_VBLANK_INIT(8)
|
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 */
|
/* synchronization of the CPUs */
|
||||||
MDRV_MACHINE_RESET(phozon)
|
MDRV_MACHINE_RESET(phozon)
|
||||||
|
|
||||||
@ -1672,7 +1672,7 @@ static MACHINE_DRIVER_START( mappy )
|
|||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_assert)
|
MDRV_CPU_VBLANK_INT("main", irq0_line_assert)
|
||||||
|
|
||||||
MDRV_WATCHDOG_VBLANK_INIT(8)
|
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 */
|
/* synchronization of the CPUs */
|
||||||
MDRV_MACHINE_RESET(mappy)
|
MDRV_MACHINE_RESET(mappy)
|
||||||
|
|
||||||
|
@ -207,7 +207,7 @@ static MACHINE_DRIVER_START( markham )
|
|||||||
MDRV_CPU_PROGRAM_MAP(readmem2,writemem2)
|
MDRV_CPU_PROGRAM_MAP(readmem2,writemem2)
|
||||||
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(100)
|
MDRV_QUANTUM_TIME(HZ(6000))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -329,7 +329,7 @@ static MACHINE_DRIVER_START( matmania )
|
|||||||
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
||||||
MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,15) /* ???? */
|
MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,15) /* ???? */
|
||||||
/* IRQs are caused by the main CPU */
|
/* IRQs are caused by the main CPU */
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
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_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_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 */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -492,7 +492,7 @@ static MACHINE_DRIVER_START( mcatadv )
|
|||||||
MDRV_GFXDECODE(mcatadv)
|
MDRV_GFXDECODE(mcatadv)
|
||||||
MDRV_PALETTE_LENGTH(0x2000/2)
|
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_START(mcatadv)
|
||||||
MDRV_VIDEO_EOF(mcatadv) // Buffer Spriteram
|
MDRV_VIDEO_EOF(mcatadv) // Buffer Spriteram
|
||||||
|
@ -597,7 +597,7 @@ static MACHINE_DRIVER_START( meadows )
|
|||||||
MDRV_CPU_PROGRAM_MAP(audio_map,0)
|
MDRV_CPU_PROGRAM_MAP(audio_map,0)
|
||||||
MDRV_CPU_PERIODIC_INT(audio_interrupt, (double)5000000/131072)
|
MDRV_CPU_PERIODIC_INT(audio_interrupt, (double)5000000/131072)
|
||||||
|
|
||||||
MDRV_INTERLEAVE(10)
|
MDRV_QUANTUM_TIME(HZ(600))
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("main", RASTER)
|
MDRV_SCREEN_ADD("main", RASTER)
|
||||||
|
@ -6375,7 +6375,7 @@ MACHINE_DRIVER_START( genesis_32x )
|
|||||||
//
|
//
|
||||||
// boosting the interleave here actually makes Kolibri run incorrectly however, that
|
// boosting the interleave here actually makes Kolibri run incorrectly however, that
|
||||||
// one works best just boosting the interleave on communications?!
|
// one works best just boosting the interleave on communications?!
|
||||||
MDRV_INTERLEAVE(30000)
|
MDRV_QUANTUM_TIME(HZ(1800000))
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user