summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Alex W. Jackson <alex.w.jackson@gmail.com>2014-04-06 22:25:28 +0000
committer Alex W. Jackson <alex.w.jackson@gmail.com>2014-04-06 22:25:28 +0000
commit284f8a00a66763106bad74df44a9d8f677a6dee0 (patch)
tree40238d0e63ea6ec5eea827517da4e7090c7a9701 /src
parent0b1ef23ed36788cff22833ae15429be99248bd90 (diff)
Various Atari vector drivers: derive (fake) refresh rate from CPU IRQ frequency to reduce juddering [Alex Jackson]
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/asteroid.c11
-rw-r--r--src/mame/drivers/bwidow.c6
-rw-r--r--src/mame/drivers/bzone.c8
-rw-r--r--src/mame/drivers/quantum.c6
-rw-r--r--src/mame/drivers/starwars.c9
-rw-r--r--src/mame/drivers/tempest.c5
-rw-r--r--src/mame/includes/bwidow.h4
-rw-r--r--src/mame/includes/bzone.h2
8 files changed, 22 insertions, 29 deletions
diff --git a/src/mame/drivers/asteroid.c b/src/mame/drivers/asteroid.c
index d44eedd1b21..88e3aee1a1c 100644
--- a/src/mame/drivers/asteroid.c
+++ b/src/mame/drivers/asteroid.c
@@ -200,7 +200,7 @@ There is not a rev 03 known or dumped. An Asteroids rev 03 is not mentioned in a
#include "astdelux.lh"
#define MASTER_CLOCK (XTAL_12_096MHz)
-#define CLOCK_3KHZ (MASTER_CLOCK / 4096)
+#define CLOCK_3KHZ ((double)MASTER_CLOCK / 4096)
/*************************************
*
@@ -633,13 +633,12 @@ static MACHINE_CONFIG_START( asteroid, asteroid_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK/8)
MCFG_CPU_PROGRAM_MAP(asteroid_map)
- MCFG_CPU_PERIODIC_INT_DRIVER(asteroid_state, asteroid_interrupt, (double)MASTER_CLOCK/4096/12)
-
+ MCFG_CPU_PERIODIC_INT_DRIVER(asteroid_state, asteroid_interrupt, CLOCK_3KHZ/12)
/* video hardware */
MCFG_VECTOR_ADD("vector")
MCFG_SCREEN_ADD("screen", VECTOR)
- MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_REFRESH_RATE(CLOCK_3KHZ/12/4)
MCFG_SCREEN_SIZE(400,300)
MCFG_SCREEN_VISIBLE_AREA(522, 1566, 394, 1182)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
@@ -659,7 +658,7 @@ static MACHINE_CONFIG_DERIVED( asterock, asteroid )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_PERIODIC_INT_DRIVER(asteroid_state, asterock_interrupt, (double)MASTER_CLOCK/4096/12)
+ MCFG_CPU_PERIODIC_INT_DRIVER(asteroid_state, asterock_interrupt, CLOCK_3KHZ/12)
MACHINE_CONFIG_END
@@ -693,7 +692,7 @@ static MACHINE_CONFIG_DERIVED( llander, asteroid )
MCFG_MACHINE_RESET_OVERRIDE(asteroid_state, llander)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_REFRESH_RATE(40)
+ MCFG_SCREEN_REFRESH_RATE(CLOCK_3KHZ/12/6)
MCFG_SCREEN_VISIBLE_AREA(522, 1566, 270, 1070)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
diff --git a/src/mame/drivers/bwidow.c b/src/mame/drivers/bwidow.c
index 46e69f5f6cc..a91b1959da9 100644
--- a/src/mame/drivers/bwidow.c
+++ b/src/mame/drivers/bwidow.c
@@ -695,14 +695,14 @@ static MACHINE_CONFIG_START( bwidow, bwidow_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, MASTER_CLOCK / 8)
MCFG_CPU_PROGRAM_MAP(bwidow_map)
- MCFG_CPU_PERIODIC_INT_DRIVER(bwidow_state, irq0_line_assert, (double)MASTER_CLOCK / 4096 / 12)
+ MCFG_CPU_PERIODIC_INT_DRIVER(bwidow_state, irq0_line_assert, CLOCK_3KHZ / 12)
MCFG_ATARIVGEAROM_ADD("earom")
/* video hardware */
MCFG_VECTOR_ADD("vector")
MCFG_SCREEN_ADD("screen", VECTOR)
- MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_REFRESH_RATE(CLOCK_3KHZ / 12 / 4)
MCFG_SCREEN_SIZE(400, 300)
MCFG_SCREEN_VISIBLE_AREA(0, 480, 0, 440)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
@@ -736,7 +736,6 @@ static MACHINE_CONFIG_DERIVED( lunarbat, gravitar )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_REFRESH_RATE(45)
MCFG_SCREEN_VISIBLE_AREA(0, 500, 0, 440)
MACHINE_CONFIG_END
@@ -749,7 +748,6 @@ static MACHINE_CONFIG_DERIVED( spacduel, gravitar )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_REFRESH_RATE(45)
MCFG_SCREEN_VISIBLE_AREA(0, 540, 0, 400)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/bzone.c b/src/mame/drivers/bzone.c
index 9270d8062df..1779fc2f6cc 100644
--- a/src/mame/drivers/bzone.c
+++ b/src/mame/drivers/bzone.c
@@ -550,13 +550,12 @@ static MACHINE_CONFIG_START( bzone_base, bzone_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, BZONE_MASTER_CLOCK / 8)
MCFG_CPU_PROGRAM_MAP(bzone_map)
- MCFG_CPU_PERIODIC_INT_DRIVER(bzone_state, bzone_interrupt, (double)BZONE_MASTER_CLOCK / 4096 / 12)
-
+ MCFG_CPU_PERIODIC_INT_DRIVER(bzone_state, bzone_interrupt, BZONE_CLOCK_3KHZ / 12)
/* video hardware */
MCFG_VECTOR_ADD("vector")
MCFG_SCREEN_ADD("screen", VECTOR)
- MCFG_SCREEN_REFRESH_RATE(40)
+ MCFG_SCREEN_REFRESH_RATE(BZONE_CLOCK_3KHZ / 12 / 6)
MCFG_SCREEN_SIZE(400, 300)
MCFG_SCREEN_VISIBLE_AREA(0, 580, 0, 400)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
@@ -583,7 +582,6 @@ static MACHINE_CONFIG_DERIVED( redbaron, bzone_base )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(redbaron_map)
- MCFG_CPU_PERIODIC_INT_DRIVER(bzone_state, bzone_interrupt, (double)BZONE_MASTER_CLOCK / 4096 / 12)
MCFG_MACHINE_START_OVERRIDE(bzone_state,redbaron)
@@ -591,7 +589,7 @@ static MACHINE_CONFIG_DERIVED( redbaron, bzone_base )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_REFRESH_RATE(BZONE_CLOCK_3KHZ / 12 / 4)
MCFG_SCREEN_VISIBLE_AREA(0, 520, 0, 400)
diff --git a/src/mame/drivers/quantum.c b/src/mame/drivers/quantum.c
index 3a57fe3aa60..e0fd32cc834 100644
--- a/src/mame/drivers/quantum.c
+++ b/src/mame/drivers/quantum.c
@@ -69,8 +69,8 @@ public:
};
-#define MASTER_CLOCK (12096000)
-#define CLOCK_3KHZ (MASTER_CLOCK / 4096)
+#define MASTER_CLOCK (XTAL_12_096MHz)
+#define CLOCK_3KHZ ((double)MASTER_CLOCK / 4096)
/*************************************
@@ -296,7 +296,7 @@ static MACHINE_CONFIG_START( quantum, quantum_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK / 2)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_CPU_PERIODIC_INT_DRIVER(quantum_state, irq1_line_hold, (double)MASTER_CLOCK / 4096 / 12)
+ MCFG_CPU_PERIODIC_INT_DRIVER(quantum_state, irq1_line_hold, CLOCK_3KHZ / 12)
MCFG_NVRAM_ADD_1FILL("nvram")
diff --git a/src/mame/drivers/starwars.c b/src/mame/drivers/starwars.c
index aa07ce69236..00bda703196 100644
--- a/src/mame/drivers/starwars.c
+++ b/src/mame/drivers/starwars.c
@@ -33,8 +33,8 @@
#include "includes/slapstic.h"
-#define MASTER_CLOCK (12096000)
-#define CLOCK_3KHZ (MASTER_CLOCK / 4096)
+#define MASTER_CLOCK (XTAL_12_096MHz)
+#define CLOCK_3KHZ ((double)MASTER_CLOCK / 4096)
WRITE8_MEMBER(starwars_state::quad_pokeyn_w)
@@ -328,13 +328,12 @@ static MACHINE_CONFIG_START( starwars, starwars_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6809, MASTER_CLOCK / 8)
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_CPU_PERIODIC_INT_DRIVER(starwars_state, irq0_line_assert, (double)MASTER_CLOCK / 4096 / 12)
+ MCFG_CPU_PERIODIC_INT_DRIVER(starwars_state, irq0_line_assert, CLOCK_3KHZ / 12)
MCFG_WATCHDOG_TIME_INIT(attotime::from_hz(CLOCK_3KHZ / 128))
MCFG_CPU_ADD("audiocpu", M6809, MASTER_CLOCK / 8)
MCFG_CPU_PROGRAM_MAP(sound_map)
-
MCFG_RIOT6532_ADD("riot", MASTER_CLOCK / 8, starwars_riot6532_intf)
MCFG_X2212_ADD_AUTOSAVE("x2212") /* nvram */
@@ -342,7 +341,7 @@ static MACHINE_CONFIG_START( starwars, starwars_state )
/* video hardware */
MCFG_VECTOR_ADD("vector")
MCFG_SCREEN_ADD("screen", VECTOR)
- MCFG_SCREEN_REFRESH_RATE(40)
+ MCFG_SCREEN_REFRESH_RATE(CLOCK_3KHZ / 12 / 6)
MCFG_SCREEN_SIZE(400, 300)
MCFG_SCREEN_VISIBLE_AREA(0, 250, 0, 280)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
diff --git a/src/mame/drivers/tempest.c b/src/mame/drivers/tempest.c
index 53043544fae..ab1317a586b 100644
--- a/src/mame/drivers/tempest.c
+++ b/src/mame/drivers/tempest.c
@@ -309,7 +309,7 @@ public:
#define MASTER_CLOCK (XTAL_12_096MHz)
-#define CLOCK_3KHZ (MASTER_CLOCK / 4096)
+#define CLOCK_3KHZ ((double)MASTER_CLOCK / 4096)
#define TEMPEST_KNOB_P1_TAG ("KNOBP1")
#define TEMPEST_KNOB_P2_TAG ("KNOBP2")
@@ -599,12 +599,11 @@ static MACHINE_CONFIG_START( tempest, tempest_state )
/* needed to ensure routine at ae1c passes checks and does not corrupt data */
MCFG_QUANTUM_PERFECT_CPU("maincpu")
- MCFG_CPU_PERIODIC_INT_DRIVER(tempest_state, irq0_line_assert, (double)MASTER_CLOCK / 4096 / 12)
+ MCFG_CPU_PERIODIC_INT_DRIVER(tempest_state, irq0_line_assert, CLOCK_3KHZ / 12)
MCFG_WATCHDOG_TIME_INIT(attotime::from_hz(CLOCK_3KHZ / 256))
MCFG_ATARIVGEAROM_ADD("earom")
-
/* video hardware */
MCFG_VECTOR_ADD("vector")
MCFG_SCREEN_ADD("screen", VECTOR)
diff --git a/src/mame/includes/bwidow.h b/src/mame/includes/bwidow.h
index c96c00093ce..f0ab4b6349d 100644
--- a/src/mame/includes/bwidow.h
+++ b/src/mame/includes/bwidow.h
@@ -2,8 +2,8 @@
#ifndef BWIDOW_H_
#define BWIDOW_H_
-#define MASTER_CLOCK (12096000)
-#define CLOCK_3KHZ (MASTER_CLOCK / 4096)
+#define MASTER_CLOCK (XTAL_12_096MHz)
+#define CLOCK_3KHZ ((double)MASTER_CLOCK / 4096)
class bwidow_state : public driver_device
diff --git a/src/mame/includes/bzone.h b/src/mame/includes/bzone.h
index 735e200c4eb..e2d09c608f3 100644
--- a/src/mame/includes/bzone.h
+++ b/src/mame/includes/bzone.h
@@ -9,7 +9,7 @@
#include "sound/discrete.h"
#define BZONE_MASTER_CLOCK (XTAL_12_096MHz)
-#define BZONE_CLOCK_3KHZ (MASTER_CLOCK / 4096)
+#define BZONE_CLOCK_3KHZ ((double)BZONE_MASTER_CLOCK / 4096)
class bzone_state : public driver_device
{