Added screen raw params and irq ack to the dec0 driver, fixing hole 1 hang in Birdie Try and improving fade in/out effects for Boulder Dash

This commit is contained in:
Angelo Salese 2011-04-03 22:34:02 +00:00
parent 792c76e741
commit 0566d3e089

View File

@ -39,13 +39,12 @@ Original Service Manuals and Service Mode (when available).
ToDo: ToDo:
- Fix protection simulation in Birdie Try (that part needs a complete rewrite); - Fix protection simulation in Birdie Try (that part needs a complete rewrite);
- IPT_VBLANK doesn't work properly, that's particularly true for Birdie Try hang when you clear an hole (in any way it never clears out)
and for Boulder Dash fade in / fade out transitions (they are far too slow right now);
- graphics are completely broken in Automat and Secret Agent (bootleg); - graphics are completely broken in Automat and Secret Agent (bootleg);
- Fighting Fantasy (bootleg) doesn't boot at all; - Fighting Fantasy (bootleg) doesn't boot at all;
- Hook up the 68705 in Midnight Resistance (bootleg) - Hook up the 68705 in Midnight Resistance (bootleg) (it might not be used, leftover from the Fighting Fantasy bootleg on the same PCB?)
(it might not be used, leftover from the Fighting Fantasy bootleg on the same PCB?)
- Get rid of ROM patches in Sly Spy and Hippodrome; - Get rid of ROM patches in Sly Spy and Hippodrome;
- Accurate pixel clock parameters;
- background pen in Birdie Try is presumably wrong.
- Finally, get a proper decap of the MCUs used by Bad Dudes and Birdie Try; - Finally, get a proper decap of the MCUs used by Bad Dudes and Birdie Try;
@ -199,6 +198,7 @@ static WRITE16_HANDLER( dec0_control_w )
break; break;
case 8: /* Interrupt ack (VBL - IRQ 6) */ case 8: /* Interrupt ack (VBL - IRQ 6) */
cputag_set_input_line(space->machine(), "maincpu", 6, CLEAR_LINE);
break; break;
case 0xa: /* Mix Psel(?). */ case 0xa: /* Mix Psel(?). */
@ -1358,6 +1358,16 @@ static MACHINE_CONFIG_DERIVED( dec0_base_sound_alt, dec0_base )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MACHINE_CONFIG_END MACHINE_CONFIG_END
// MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK, DEC0_HTOTAL, DEC0_HBEND, DEC0_HBSTART, DEC0_VTOTAL, DEC0_VBEND, DEC0_VBSTART)
/* TODO: These are raw guesses, only to get ~57,41 Hz */
#define DEC0_PIXEL_CLOCK XTAL_20MHz/4
#define DEC0_HTOTAL 256+74
#define DEC0_HBEND 0
#define DEC0_HBSTART 256
#define DEC0_VTOTAL 264
#define DEC0_VBEND 8
#define DEC0_VBSTART 256-8
static MACHINE_CONFIG_DERIVED( automat, dec0_base ) static MACHINE_CONFIG_DERIVED( automat, dec0_base )
@ -1372,11 +1382,10 @@ static MACHINE_CONFIG_DERIVED( automat, dec0_base )
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57.41) // MCFG_SCREEN_REFRESH_RATE(57.41)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE(robocop) MCFG_SCREEN_UPDATE(robocop)
MCFG_GFXDECODE(automat) MCFG_GFXDECODE(automat)
@ -1407,7 +1416,7 @@ static MACHINE_CONFIG_DERIVED( hbarrel, dec0_base_sound )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2) MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
MCFG_CPU_PROGRAM_MAP(dec0_map) MCFG_CPU_PROGRAM_MAP(dec0_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)/* VBL, level 5 interrupts from i8751 */ MCFG_CPU_VBLANK_INT("screen", irq6_line_assert)/* VBL, level 5 interrupts from i8751 */
MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8) MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8)
MCFG_CPU_PROGRAM_MAP(dec0_s_map) MCFG_CPU_PROGRAM_MAP(dec0_s_map)
@ -1417,11 +1426,12 @@ static MACHINE_CONFIG_DERIVED( hbarrel, dec0_base_sound )
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57.41) //MCFG_SCREEN_REFRESH_RATE(57.41)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) //MCFG_SCREEN_SIZE(32*8, 32*8)
//MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE(hbarrel) MCFG_SCREEN_UPDATE(hbarrel)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1430,18 +1440,19 @@ static MACHINE_CONFIG_DERIVED( baddudes, dec0_base_sound )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2) MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
MCFG_CPU_PROGRAM_MAP(dec0_map) MCFG_CPU_PROGRAM_MAP(dec0_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)/* VBL, level 5 interrupts from i8751 */ MCFG_CPU_VBLANK_INT("screen", irq6_line_assert)/* VBL, level 5 interrupts from i8751 */
MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8) MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8)
MCFG_CPU_PROGRAM_MAP(dec0_s_map) MCFG_CPU_PROGRAM_MAP(dec0_s_map)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57.41) // MCFG_SCREEN_REFRESH_RATE(57.41)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) // MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE(baddudes) MCFG_SCREEN_UPDATE(baddudes)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1450,18 +1461,19 @@ static MACHINE_CONFIG_DERIVED( birdtry, dec0_base_sound )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2) MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
MCFG_CPU_PROGRAM_MAP(dec0_map) MCFG_CPU_PROGRAM_MAP(dec0_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)/* VBL, level 5 interrupts from i8751 */ MCFG_CPU_VBLANK_INT("screen", irq6_line_assert)/* VBL, level 5 interrupts from i8751 */
MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8) MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8)
MCFG_CPU_PROGRAM_MAP(dec0_s_map) MCFG_CPU_PROGRAM_MAP(dec0_s_map)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57.41) // MCFG_SCREEN_REFRESH_RATE(57.41)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) // MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE(birdtry) MCFG_SCREEN_UPDATE(birdtry)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1470,7 +1482,7 @@ static MACHINE_CONFIG_DERIVED( robocop, dec0_base_sound )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2) MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
MCFG_CPU_PROGRAM_MAP(dec0_map) MCFG_CPU_PROGRAM_MAP(dec0_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)/* VBL */ MCFG_CPU_VBLANK_INT("screen", irq6_line_assert)/* VBL */
MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8) MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8)
MCFG_CPU_PROGRAM_MAP(dec0_s_map) MCFG_CPU_PROGRAM_MAP(dec0_s_map)
@ -1482,11 +1494,12 @@ static MACHINE_CONFIG_DERIVED( robocop, dec0_base_sound )
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57.41) // MCFG_SCREEN_REFRESH_RATE(57.41)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) // MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE(robocop) MCFG_SCREEN_UPDATE(robocop)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1495,18 +1508,19 @@ static MACHINE_CONFIG_DERIVED( robocopb, dec0_base_sound )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 10000000) MCFG_CPU_ADD("maincpu", M68000, 10000000)
MCFG_CPU_PROGRAM_MAP(dec0_map) MCFG_CPU_PROGRAM_MAP(dec0_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)/* VBL */ MCFG_CPU_VBLANK_INT("screen", irq6_line_assert)/* VBL */
MCFG_CPU_ADD("audiocpu", M6502, 1500000) MCFG_CPU_ADD("audiocpu", M6502, 1500000)
MCFG_CPU_PROGRAM_MAP(dec0_s_map) MCFG_CPU_PROGRAM_MAP(dec0_s_map)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57.41) // MCFG_SCREEN_REFRESH_RATE(57.41)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) // MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE(robocop) MCFG_SCREEN_UPDATE(robocop)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1515,7 +1529,7 @@ static MACHINE_CONFIG_DERIVED( hippodrm, dec0_base_sound )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2) MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
MCFG_CPU_PROGRAM_MAP(dec0_map) MCFG_CPU_PROGRAM_MAP(dec0_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)/* VBL */ MCFG_CPU_VBLANK_INT("screen", irq6_line_assert)/* VBL */
MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8) MCFG_CPU_ADD("audiocpu", M6502, XTAL_12MHz / 8)
MCFG_CPU_PROGRAM_MAP(dec0_s_map) MCFG_CPU_PROGRAM_MAP(dec0_s_map)
@ -1527,11 +1541,12 @@ static MACHINE_CONFIG_DERIVED( hippodrm, dec0_base_sound )
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57.41) // MCFG_SCREEN_REFRESH_RATE(57.41)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) // MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE(hippodrm) MCFG_SCREEN_UPDATE(hippodrm)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1546,18 +1561,19 @@ static MACHINE_CONFIG_DERIVED( slyspy, dec0_base_sound_alt )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */ MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz/2) /* verified on pcb (20MHZ OSC) 68000P12 running at 10Mhz */
MCFG_CPU_PROGRAM_MAP(slyspy_map) MCFG_CPU_PROGRAM_MAP(slyspy_map)
MCFG_CPU_VBLANK_INT("screen", irq6_line_hold)/* VBL */ MCFG_CPU_VBLANK_INT("screen", irq6_line_hold) /* VBL, apparently it auto-acks */
MCFG_CPU_ADD("audiocpu", H6280, XTAL_12MHz/2/3) /* verified on pcb (6Mhz is XIN on pin 10 of H6280, verified on pcb */ MCFG_CPU_ADD("audiocpu", H6280, XTAL_12MHz/2/3) /* verified on pcb (6Mhz is XIN on pin 10 of H6280, verified on pcb */
MCFG_CPU_PROGRAM_MAP(slyspy_s_map) MCFG_CPU_PROGRAM_MAP(slyspy_s_map)
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57.41) // MCFG_SCREEN_REFRESH_RATE(57.41)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) // MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE(slyspy) MCFG_SCREEN_UPDATE(slyspy)
MCFG_VIDEO_START(dec0_nodma) MCFG_VIDEO_START(dec0_nodma)
@ -1580,11 +1596,12 @@ static MACHINE_CONFIG_DERIVED( secretab, dec0_base_sound_alt )
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57.41) // MCFG_SCREEN_REFRESH_RATE(57.41)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) // MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE(robocop) MCFG_SCREEN_UPDATE(robocop)
MCFG_GFXDECODE(secretab) MCFG_GFXDECODE(secretab)
@ -1603,11 +1620,12 @@ static MACHINE_CONFIG_DERIVED( midres, dec0_base_sound_alt )
/* video hardware */ /* video hardware */
MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57.41) // MCFG_SCREEN_REFRESH_RATE(57.41)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) // MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_UPDATE(midres) MCFG_SCREEN_UPDATE(midres)
MCFG_GFXDECODE(midres) MCFG_GFXDECODE(midres)