Added internal divider on m680* series CPUs (except the original m6800).

Updated clocks on all games using them to remove the explicit divider.
This commit is contained in:
Aaron Giles 2008-01-17 17:14:45 +00:00
parent 2299164694
commit 8c4ccedaff
20 changed files with 37 additions and 27 deletions

View File

@ -2697,6 +2697,7 @@ void m6801_get_info(UINT32 state, cpuinfo *info)
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 8; break;
case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = 9; break;
@ -2725,6 +2726,9 @@ void m6802_get_info(UINT32 state, cpuinfo *info)
{
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = m6802_init; break;
#ifdef MAME_DEBUG
@ -2750,6 +2754,7 @@ void m6803_get_info(UINT32 state, cpuinfo *info)
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 8; break;
case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = 9; break;
@ -2780,6 +2785,9 @@ void m6808_get_info(UINT32 state, cpuinfo *info)
{
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = m6808_init; break;
#ifdef MAME_DEBUG
@ -2805,6 +2813,7 @@ void hd63701_get_info(UINT32 state, cpuinfo *info)
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 8; break;
case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = 9; break;
@ -2833,6 +2842,9 @@ void nsc8105_get_info(UINT32 state, cpuinfo *info)
{
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_INIT: info->init = nsc8105_init; break;
case CPUINFO_PTR_EXECUTE: info->execute = nsc8105_execute; break;

View File

@ -153,7 +153,7 @@ ADDRESS_MAP_END
MACHINE_DRIVER_START( irem_audio )
/* basic machine hardware */
MDRV_CPU_ADD(M6803, XTAL_3_579545MHz/4) /* verified on pcb */
MDRV_CPU_ADD(M6803, XTAL_3_579545MHz) /* verified on pcb */
/* audio CPU */
MDRV_CPU_PROGRAM_MAP(irem_sound_readmem,irem_sound_writemem)
MDRV_CPU_IO_MAP(irem_sound_readport,irem_sound_writeport)

View File

@ -937,7 +937,7 @@ static const pia6821_interface squawkntalk_pia1_intf =
/********* machine driver ***********/
MACHINE_DRIVER_START(squawk_n_talk)
MDRV_CPU_ADD_TAG("snt", M6802, SQUAWKTALK_CLOCK/4)
MDRV_CPU_ADD_TAG("snt", M6802, SQUAWKTALK_CLOCK)
MDRV_CPU_PROGRAM_MAP(squawkntalk_map,0)
/* only used on Discs of Tron, which is stereo */

View File

@ -439,7 +439,7 @@ static MACHINE_DRIVER_START( baraduke )
MDRV_CPU_PROGRAM_MAP(baraduke_map,0)
MDRV_CPU_VBLANK_INT(irq0_line_assert,1)
MDRV_CPU_ADD(HD63701,49152000/32)
MDRV_CPU_ADD(HD63701,49152000/8)
MDRV_CPU_PROGRAM_MAP(mcu_map,0)
MDRV_CPU_IO_MAP(mcu_port_map,0)
MDRV_CPU_VBLANK_INT(irq0_line_hold,1)

View File

@ -784,7 +784,7 @@ static MACHINE_DRIVER_START( bublbobl )
/* audio CPU */ // 3 MHz
MDRV_CPU_PROGRAM_MAP(sound_map, 0) // IRQs are triggered by the YM2203
MDRV_CPU_ADD_TAG("mcu", M6801, 4000000/4) // actually 6801U4 // xtal is 4MHz, divided by 4 internally
MDRV_CPU_ADD_TAG("mcu", M6801, 4000000) // actually 6801U4 // xtal is 4MHz, divided by 4 internally
MDRV_CPU_PROGRAM_MAP(mcu_map, 0)
MDRV_CPU_VBLANK_INT(irq0_line_pulse, 1) // comes from the same clock that latches the INT pin on the second Z80

View File

@ -995,7 +995,7 @@ static MACHINE_DRIVER_START( ddragon )
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_VBLANK_INT(ddragon_interrupt,272)
MDRV_CPU_ADD(HD63701, 3579545 / 3) /* This divider seems correct by comparison to real board */
MDRV_CPU_ADD(HD63701, 3579545) /* This divider seems correct by comparison to real board */
MDRV_CPU_PROGRAM_MAP(sub_readmem,sub_writemem)
MDRV_CPU_ADD(HD6309, 3579545)
@ -1044,7 +1044,7 @@ static MACHINE_DRIVER_START( darktowr )
MDRV_CPU_PROGRAM_MAP(darktowr_readmem,darktowr_writemem)
MDRV_CPU_VBLANK_INT(ddragon_interrupt,272)
MDRV_CPU_ADD(HD63701, 3579545 / 3)
MDRV_CPU_ADD(HD63701, 3579545)
MDRV_CPU_PROGRAM_MAP(sub_readmem,sub_writemem)
MDRV_CPU_ADD(HD6309, 3579545)

View File

@ -701,7 +701,7 @@ static MACHINE_DRIVER_START( catnmous )
MDRV_CPU_IO_MAP(catnmous_io_map,0)
MDRV_CPU_VBLANK_INT(laserbat_interrupt,1)
MDRV_CPU_ADD(M6802,3580000/4) /* ? */
MDRV_CPU_ADD(M6802,3580000) /* ? */
MDRV_CPU_PROGRAM_MAP(catnmous_sound_map,0)
MDRV_CPU_PERIODIC_INT(zaccaria_cb1_toggle, (double)3580000/4096)

View File

@ -197,7 +197,7 @@ static VIDEO_UPDATE(murogem)
static MACHINE_DRIVER_START( murogem )
/* basic machine hardware */
MDRV_CPU_ADD(M6802,2000000) /* ? MHz */
MDRV_CPU_ADD(M6802,8000000) /* ? MHz */
MDRV_CPU_PROGRAM_MAP(murogem_map,0)
MDRV_CPU_VBLANK_INT(irq0_line_hold,1)

View File

@ -1007,7 +1007,7 @@ static MACHINE_DRIVER_START( ns1 )
MDRV_CPU_PROGRAM_MAP(sound_map, 0)
MDRV_CPU_VBLANK_INT(irq0_line_assert,1)
MDRV_CPU_ADD_TAG("MCU",HD63701,49152000/32)
MDRV_CPU_ADD_TAG("MCU",HD63701,49152000/8)
MDRV_CPU_PROGRAM_MAP(mcu_map, 0)
MDRV_CPU_IO_MAP(mcu_port_map, 0)
MDRV_CPU_VBLANK_INT(irq0_line_assert,1)

View File

@ -1071,7 +1071,7 @@ static MACHINE_DRIVER_START( hopmappy )
MDRV_CPU_PROGRAM_MAP(hopmappy_cpu2_map,0)
MDRV_CPU_VBLANK_INT(irq0_line_assert,1)
MDRV_CPU_ADD_TAG("mcu", HD63701, 49152000/32) /* or compatible 6808 with extra instructions */
MDRV_CPU_ADD_TAG("mcu", HD63701, 49152000/8) /* or compatible 6808 with extra instructions */
MDRV_CPU_PROGRAM_MAP(hopmappy_mcu_map,0)
MDRV_CPU_IO_MAP(mcu_port_map,0)
MDRV_CPU_VBLANK_INT(irq0_line_hold,1) /* ??? */

View File

@ -77,9 +77,9 @@
#define PIXEL_CLOCK (MAIN_CPU_MASTER_CLOCK / 2)
#define CRTC_CLOCK (MAIN_CPU_MASTER_CLOCK / 16)
#define AUDIO_1_MASTER_CLOCK (4000000)
#define AUDIO_CPU_1_CLOCK (AUDIO_1_MASTER_CLOCK / 4) /* internal divisor */
#define AUDIO_CPU_1_CLOCK (AUDIO_1_MASTER_CLOCK)
#define AUDIO_2_MASTER_CLOCK (4000000)
#define AUDIO_CPU_2_CLOCK (AUDIO_2_MASTER_CLOCK / 4) /* internal divisor */
#define AUDIO_CPU_2_CLOCK (AUDIO_2_MASTER_CLOCK)
static UINT8 *nyny_videoram_1;

View File

@ -416,7 +416,7 @@ static MACHINE_DRIVER_START( pacland )
MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT(irq0_line_assert,1)
MDRV_CPU_ADD(HD63701, 49152000/32) /* 1.536 MHz? */
MDRV_CPU_ADD(HD63701, 49152000/8) /* 1.536 MHz? */
MDRV_CPU_PROGRAM_MAP(mcu_map,0)
MDRV_CPU_IO_MAP(mcu_port_map,0)
MDRV_CPU_VBLANK_INT(irq0_line_assert,1)

View File

@ -618,7 +618,7 @@ static MACHINE_DRIVER_START( qix )
MDRV_CPU_ADD_TAG("video", M6809, MAIN_CLOCK_OSC/4/4) /* 1.25 MHz */
MDRV_CPU_PROGRAM_MAP(video_map,0)
MDRV_CPU_ADD_TAG("sound", M6802, SOUND_CLOCK_OSC/2/4) /* 0.92 MHz */
MDRV_CPU_ADD_TAG("sound", M6802, SOUND_CLOCK_OSC/2) /* 0.92 MHz */
MDRV_CPU_PROGRAM_MAP(sound_map,0)
/* high interleave needed to ensure correct text in service mode */

View File

@ -526,7 +526,7 @@ static MACHINE_DRIVER_START( r2dtank )
MDRV_CPU_PROGRAM_MAP(r2dtank_main_map,0)
/* audio CPU */
MDRV_CPU_ADD(M6802,3000000/4) /* ?? */
MDRV_CPU_ADD(M6802,3000000) /* ?? */
MDRV_CPU_PROGRAM_MAP(r2dtank_audio_map,0)
MDRV_MACHINE_START(r2dtank)

View File

@ -405,7 +405,7 @@ static MACHINE_DRIVER_START( nvram )
MDRV_CPU_IO_MAP(main_portmap,0)
MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
MDRV_CPU_ADD_TAG("mcu", NSC8105, 6000000/4) /* ??? */
MDRV_CPU_ADD_TAG("mcu", NSC8105, 6000000) /* ??? */
MDRV_CPU_PROGRAM_MAP(mcu_nvram_map,0)
MDRV_SCREEN_REFRESH_RATE(60)

View File

@ -455,7 +455,7 @@ static MACHINE_DRIVER_START( skykid )
MDRV_CPU_PROGRAM_MAP(skykid_map,0)
MDRV_CPU_VBLANK_INT(irq0_line_assert,1)
MDRV_CPU_ADD(HD63701,49152000/32) /* or compatible 6808 with extra instructions */
MDRV_CPU_ADD(HD63701,49152000/8) /* or compatible 6808 with extra instructions */
MDRV_CPU_PROGRAM_MAP(mcu_map,0)
MDRV_CPU_IO_MAP(mcu_port_map,0)
MDRV_CPU_VBLANK_INT(irq0_line_assert,1)

View File

@ -447,7 +447,7 @@ static MACHINE_DRIVER_START( tceptor )
MDRV_CPU_PROGRAM_MAP(m68k_map,0)
MDRV_CPU_VBLANK_INT(m68k_vb_interrupt,1)
MDRV_CPU_ADD(HD63701, 49152000/32) /* or compatible 6808 with extra instructions */
MDRV_CPU_ADD(HD63701, 49152000/8) /* or compatible 6808 with extra instructions */
MDRV_CPU_PROGRAM_MAP(mcu_map,0)
MDRV_CPU_IO_MAP(mcu_io_map,0)
MDRV_CPU_VBLANK_INT(mcu_vb_interrupt,1)

View File

@ -936,7 +936,7 @@ static MACHINE_DRIVER_START( tubep )
MDRV_CPU_PROGRAM_MAP(tubep_sound_map,0)
MDRV_CPU_IO_MAP(tubep_sound_portmap,0)
MDRV_CPU_ADD_TAG("nsc",NSC8105,6000000 / 2) /* 6 MHz Xtal - divided internally ??? */
MDRV_CPU_ADD_TAG("nsc",NSC8105,6000000) /* 6 MHz Xtal - divided internally ??? */
MDRV_CPU_PROGRAM_MAP(nsc_map,0)
MDRV_SCREEN_REFRESH_RATE(60)
@ -980,7 +980,7 @@ static MACHINE_DRIVER_START( tubepb )
MDRV_CPU_REMOVE("nsc")
MDRV_CPU_ADD(M6802,6000000/4) /* ? MHz Xtal */
MDRV_CPU_ADD(M6802,6000000) /* ? MHz Xtal */
MDRV_CPU_PROGRAM_MAP(nsc_map,0)
MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
MACHINE_DRIVER_END
@ -1002,7 +1002,7 @@ static MACHINE_DRIVER_START( rjammer )
MDRV_CPU_PROGRAM_MAP(rjammer_sound_map,0)
MDRV_CPU_IO_MAP(rjammer_sound_portmap,0)
MDRV_CPU_ADD_TAG("nsc",NSC8105,6000000/4) /* 6 MHz Xtal - divided internally ??? */
MDRV_CPU_ADD_TAG("nsc",NSC8105,6000000) /* 6 MHz Xtal - divided internally ??? */
MDRV_CPU_PROGRAM_MAP(nsc_map,0)
MDRV_SCREEN_REFRESH_RATE(60)

View File

@ -1370,7 +1370,7 @@ static MACHINE_DRIVER_START( defender )
MDRV_CPU_ADD_TAG("main", M6809, MASTER_CLOCK/3/4)
MDRV_CPU_PROGRAM_MAP(defender_map,0)
MDRV_CPU_ADD_TAG("sound", M6808, SOUND_CLOCK/4)
MDRV_CPU_ADD_TAG("sound", M6808, SOUND_CLOCK)
MDRV_CPU_PROGRAM_MAP(defender_sound_map,0)
MDRV_MACHINE_RESET(defender)
@ -1476,7 +1476,7 @@ static MACHINE_DRIVER_START( williams2 )
MDRV_CPU_ADD_TAG("main", M6809, MASTER_CLOCK/3/4)
MDRV_CPU_PROGRAM_MAP(williams2_map,0)
MDRV_CPU_ADD_TAG("sound", M6808, MASTER_CLOCK/3/4) /* yes, this is different from the older games */
MDRV_CPU_ADD_TAG("sound", M6808, MASTER_CLOCK/3) /* yes, this is different from the older games */
MDRV_CPU_PROGRAM_MAP(williams2_sound_map,0)
MDRV_MACHINE_RESET(williams2)

View File

@ -663,13 +663,11 @@ static MACHINE_DRIVER_START( zaccaria )
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
MDRV_CPU_ADD(M6802,XTAL_3_579545MHz/4) /* verified on pcb */
/* audio CPU */
MDRV_CPU_ADD(M6802,XTAL_3_579545MHz) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(sound_readmem1,sound_writemem1)
MDRV_CPU_PERIODIC_INT(zaccaria_cb1_toggle,(double)3580000/4096)
MDRV_CPU_ADD(M6802,XTAL_3_579545MHz/4) /* verified on pcb */
/* audio CPU */
MDRV_CPU_ADD(M6802,XTAL_3_579545MHz) /* verified on pcb */
MDRV_CPU_PROGRAM_MAP(sound_readmem2,sound_writemem2)
MDRV_SCREEN_REFRESH_RATE(60)