mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
Various Atari vector drivers: derive (fake) refresh rate from CPU IRQ frequency to reduce juddering [Alex Jackson]
This commit is contained in:
parent
0b1ef23ed3
commit
284f8a00a6
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
||||
|
@ -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")
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user