From 6843e0ac9e17f645e95c358fd2426e9506f5dbb3 Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Mon, 24 Nov 2014 01:47:13 +0100 Subject: Added SCREEN_RAW_PARAMS for Arkanoid and Astrocorp HWs [Angelo Salese] --- src/mame/drivers/arkanoid.c | 38 ++++++++++++++++++++++++++------------ src/mame/drivers/astrcorp.c | 30 ++++++++++++++++++++++-------- 2 files changed, 48 insertions(+), 20 deletions(-) diff --git a/src/mame/drivers/arkanoid.c b/src/mame/drivers/arkanoid.c index 39ae0a50380..81021915b92 100644 --- a/src/mame/drivers/arkanoid.c +++ b/src/mame/drivers/arkanoid.c @@ -1220,6 +1220,17 @@ MACHINE_RESET_MEMBER(arkanoid_state,arkanoid) m_palettebank = 0; } +/* +Pixel clock: 3 MHz = 192 HTotal, assuming it's 6 MHz +*/ +#define ARKANOID_PIXEL_CLOCK XTAL_12MHz/2 +#define ARKANOID_HTOTAL 384 +#define ARKANOID_HBEND 0 +#define ARKANOID_HBSTART 256 +#define ARKANOID_VTOTAL 264 +#define ARKANOID_VBEND 16 +#define ARKANOID_VBSTART 240 + static MACHINE_CONFIG_START( arkanoid, arkanoid_state ) /* basic machine hardware */ @@ -1237,10 +1248,11 @@ static MACHINE_CONFIG_START( arkanoid, arkanoid_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) +// MCFG_SCREEN_REFRESH_RATE(60) +// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) +// MCFG_SCREEN_SIZE(32*8, 32*8) +// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) + MCFG_SCREEN_RAW_PARAMS(ARKANOID_PIXEL_CLOCK,ARKANOID_HTOTAL,ARKANOID_HBEND,ARKANOID_HBSTART,ARKANOID_VTOTAL,ARKANOID_VBEND,ARKANOID_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_arkanoid) MCFG_SCREEN_PALETTE("palette") @@ -1270,10 +1282,11 @@ static MACHINE_CONFIG_START( hexa, arkanoid_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) +// MCFG_SCREEN_REFRESH_RATE(60) +// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) +// MCFG_SCREEN_SIZE(32*8, 32*8) +// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) + MCFG_SCREEN_RAW_PARAMS(ARKANOID_PIXEL_CLOCK,ARKANOID_HTOTAL,ARKANOID_HBEND,ARKANOID_HBSTART,ARKANOID_VTOTAL,ARKANOID_VBEND,ARKANOID_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_hexa) MCFG_SCREEN_PALETTE("palette") @@ -1325,10 +1338,11 @@ static MACHINE_CONFIG_START( brixian, arkanoid_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) +// MCFG_SCREEN_REFRESH_RATE(60) +// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) +// MCFG_SCREEN_SIZE(32*8, 32*8) +// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) + MCFG_SCREEN_RAW_PARAMS(ARKANOID_PIXEL_CLOCK,ARKANOID_HTOTAL,ARKANOID_HBEND,ARKANOID_HBSTART,ARKANOID_VTOTAL,ARKANOID_VBEND,ARKANOID_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_hexa) MCFG_SCREEN_PALETTE("palette") diff --git a/src/mame/drivers/astrcorp.c b/src/mame/drivers/astrcorp.c index cd9d9f9f772..a8d8e49b1b7 100644 --- a/src/mame/drivers/astrcorp.c +++ b/src/mame/drivers/astrcorp.c @@ -465,6 +465,18 @@ GFXDECODE_END static const UINT16 showhand_default_eeprom[15] = {0x0001,0x0007,0x000a,0x0003,0x0000,0x0009,0x0003,0x0000,0x0002,0x0001,0x0000,0x0000,0x0000,0x0000,0x0000}; + +/* +TODO: understand if later hardware uses different parameters (XTAL is almost surely NOT 20 MHz so ...). +*/ +#define ASTROCORP_PIXEL_CLOCK XTAL_20MHz/2 +#define ASTROCORP_HTOTAL 651 +#define ASTROCORP_HBEND 0 +//#define ASTROCORP_HBSTART 320 +#define ASTROCORP_VTOTAL 261 +#define ASTROCORP_VBEND 0 +#define ASTROCORP_VBSTART 240 + static MACHINE_CONFIG_START( showhand, astrocorp_state ) /* basic machine hardware */ @@ -478,10 +490,11 @@ static MACHINE_CONFIG_START( showhand, astrocorp_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58.846) // measured on pcb - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(320, 240) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) +// MCFG_SCREEN_REFRESH_RATE(58.846) // measured on pcb +// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) +// MCFG_SCREEN_SIZE(320, 240) +// MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) + MCFG_SCREEN_RAW_PARAMS(ASTROCORP_PIXEL_CLOCK,ASTROCORP_HTOTAL,ASTROCORP_HBEND,320,ASTROCORP_VTOTAL,ASTROCORP_VBEND,ASTROCORP_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(astrocorp_state, screen_update_astrocorp) MCFG_SCREEN_PALETTE("palette") @@ -531,10 +544,11 @@ static MACHINE_CONFIG_START( skilldrp, astrocorp_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58.846) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(0x200, 0x100) - MCFG_SCREEN_VISIBLE_AREA(0, 0x200-1, 0, 0xf0-1) +// MCFG_SCREEN_REFRESH_RATE(58.846) +// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) +// MCFG_SCREEN_SIZE(0x200, 0x100) +// MCFG_SCREEN_VISIBLE_AREA(0, 0x200-1, 0, 0xf0-1) + MCFG_SCREEN_RAW_PARAMS(ASTROCORP_PIXEL_CLOCK,ASTROCORP_HTOTAL,ASTROCORP_HBEND,512,ASTROCORP_VTOTAL,ASTROCORP_VBEND,ASTROCORP_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(astrocorp_state, screen_update_astrocorp) MCFG_SCREEN_PALETTE("palette") -- cgit v1.2.3