mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
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:
parent
2299164694
commit
8c4ccedaff
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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 */
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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) /* ??? */
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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 */
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user