diff --git a/src/mess/drivers/a51xx.c b/src/mess/drivers/a51xx.c index 2c4ba6c1aba..2c29a45c7be 100644 --- a/src/mess/drivers/a51xx.c +++ b/src/mess/drivers/a51xx.c @@ -123,26 +123,18 @@ static MACHINE_CONFIG_START( a5120, a51xx_state ) MCFG_VIDEO_START(a5120) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( a5130, a51xx_state ) +static MACHINE_CONFIG_DERIVED( a5130, a5120 ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu",Z80, XTAL_4MHz) + MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(a5130_mem) MCFG_CPU_IO_MAP(a5130_io) MCFG_MACHINE_RESET(a5130) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) + MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_UPDATE_STATIC(a5130) - MCFG_GFXDECODE(a51xx) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT(black_and_white) - MCFG_VIDEO_START(a5130) MACHINE_CONFIG_END diff --git a/src/mess/drivers/alesis.c b/src/mess/drivers/alesis.c index 2d6fcae8767..522b3e76a69 100644 --- a/src/mess/drivers/alesis.c +++ b/src/mess/drivers/alesis.c @@ -294,32 +294,21 @@ static MACHINE_CONFIG_START( hr16, alesis_state ) MCFG_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END -static MACHINE_CONFIG_START( sr16, alesis_state ) +static MACHINE_CONFIG_DERIVED( sr16, hr16 ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu",I8031, XTAL_12MHz) + MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(sr16_mem) MCFG_CPU_IO_MAP(sr16_io) /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ + MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(6*8, 9*2) MCFG_SCREEN_VISIBLE_AREA(0, 6*8-1, 0, 9*2-1) MCFG_DEFAULT_LAYOUT(layout_sr16) - MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update) - MCFG_PALETTE_LENGTH(2) MCFG_PALETTE_INIT(black_and_white) - MCFG_CASSETTE_ADD( CASSETTE_TAG, hr16_cassette_interface ) - - MCFG_HD44780_ADD("hd44780", sr16_display) - - /* sound hardware */ - MCFG_ALESIS_DM3AG_ADD("dm3ag", XTAL_12MHz/2) - - MCFG_NVRAM_ADD_0FILL("nvram") + MCFG_HD44780_REPLACE("hd44780", sr16_display) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/basic52.c b/src/mess/drivers/basic52.c index 6286f3fb579..a8ef6a95301 100644 --- a/src/mess/drivers/basic52.c +++ b/src/mess/drivers/basic52.c @@ -137,18 +137,11 @@ static MACHINE_CONFIG_START( basic31, basic52_state ) MCFG_I8255_ADD("ppi8255", ppi8255_intf ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( basic52, basic52_state ) +static MACHINE_CONFIG_DERIVED( basic52, basic31 ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", I8052, XTAL_11_0592MHz) + MCFG_CPU_REPLACE("maincpu", I8052, XTAL_11_0592MHz) MCFG_CPU_PROGRAM_MAP(basic52_mem) MCFG_CPU_IO_MAP(basic52_io) - - MCFG_MACHINE_RESET(basic52) - - /* video hardware */ - MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf) - - MCFG_I8255_ADD("ppi8255", ppi8255_intf ) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/bk.c b/src/mess/drivers/bk.c index be7a3bbb36c..7c2ece53af5 100644 --- a/src/mess/drivers/bk.c +++ b/src/mess/drivers/bk.c @@ -199,33 +199,10 @@ static MACHINE_CONFIG_START( bk0010, bk_state ) MCFG_CASSETTE_ADD( CASSETTE_TAG, bk0010_cassette_interface ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( bk0010fd, bk_state ) +static MACHINE_CONFIG_DERIVED( bk0010fd, bk0010 ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", T11, 3000000) - MCFG_CPU_CONFIG(t11_data) + MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(bk0010fd_mem) - - MCFG_MACHINE_START( bk0010 ) - MCFG_MACHINE_RESET( bk0010 ) - - /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_STATIC(bk0010) - - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT(black_and_white) - - MCFG_VIDEO_START(bk0010) - - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_WAVE_ADD(WAVE_TAG, CASSETTE_TAG) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - MCFG_CASSETTE_ADD( CASSETTE_TAG, bk0010_cassette_interface ) MACHINE_CONFIG_END diff --git a/src/mess/drivers/pb1000.c b/src/mess/drivers/pb1000.c index b964abea1e8..3f4ee322e50 100644 --- a/src/mess/drivers/pb1000.c +++ b/src/mess/drivers/pb1000.c @@ -529,34 +529,12 @@ static MACHINE_CONFIG_START( pb1000, pb1000_state ) MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( pb2000c, pb1000_state ) +static MACHINE_CONFIG_DERIVED( pb2000c, pb1000 ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu",HD61700, 910000) + MCFG_CPU_MODIFY("maincpu") MCFG_CPU_PROGRAM_MAP(pb2000c_mem) MCFG_HD61700_CONFIG(pb2000c_config) - /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DEVICE("hd44352", hd44352_device, screen_update) - MCFG_SCREEN_SIZE(192, 32) - MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 32-1) - MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT( pb1000 ) - MCFG_GFXDECODE( pb1000 ) - - MCFG_HD44352_ADD("hd44352", 910000, hd44352_pb1000_conf) - - MCFG_NVRAM_ADD_0FILL("nvram1") - MCFG_NVRAM_ADD_0FILL("nvram2") - - /* sound hardware */ - MCFG_SPEAKER_STANDARD_MONO( "mono" ) - MCFG_SOUND_ADD( BEEPER_TAG, BEEP, 0 ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) - MCFG_CARTSLOT_ADD("card1") MCFG_CARTSLOT_EXTENSION_LIST("bin") MCFG_CARTSLOT_NOT_MANDATORY diff --git a/src/mess/drivers/psion.c b/src/mess/drivers/psion.c index 7da63d9107d..8b488003ca0 100644 --- a/src/mess/drivers/psion.c +++ b/src/mess/drivers/psion.c @@ -512,39 +512,14 @@ static HD44780_INTERFACE( psion_4line_display ) }; /* basic configuration for 4 lines display */ -static MACHINE_CONFIG_START( psion_4lines, psion_state ) - /* basic machine hardware */ - MCFG_CPU_ADD("maincpu",HD63701, 980000) // should be HD6303 at 0.98MHz - +static MACHINE_CONFIG_DERIVED( psion_4lines, psion_2lines ) /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update) + MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_SIZE(6*20, 9*4) MCFG_SCREEN_VISIBLE_AREA(0, 6*20-1, 0, 9*4-1) - MCFG_DEFAULT_LAYOUT(layout_lcd) - MCFG_PALETTE_LENGTH(2) - MCFG_PALETTE_INIT(psion) - MCFG_GFXDECODE(psion) + MCFG_DEVICE_REMOVE("hd44780") MCFG_PSION_CUSTOM_LCDC_ADD("hd44780", psion_4line_display) - - /* sound hardware */ - MCFG_SPEAKER_STANDARD_MONO( "mono" ) - MCFG_SOUND_ADD( BEEPER_TAG, BEEP, 0 ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) - - MCFG_NVRAM_HANDLER(psion) - - MCFG_TIMER_ADD_PERIODIC("nmi_timer", nmi_timer, attotime::from_seconds(1)) - - /* Datapack */ - MCFG_PSION_DATAPACK_ADD("pack1") - MCFG_PSION_DATAPACK_ADD("pack2") - - /* Software lists */ - MCFG_SOFTWARE_LIST_ADD("pack_list", "psion") MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( psioncm, psion_2lines ) diff --git a/src/mess/drivers/scv.c b/src/mess/drivers/scv.c index eef9b3848ba..da0840cf8ec 100644 --- a/src/mess/drivers/scv.c +++ b/src/mess/drivers/scv.c @@ -821,40 +821,14 @@ static MACHINE_CONFIG_START( scv, scv_state ) MACHINE_CONFIG_END -static MACHINE_CONFIG_START( scv_pal, scv_state ) +static MACHINE_CONFIG_DERIVED( scv_pal, scv ) - MCFG_CPU_ADD( "maincpu", UPD7801, 3780000 ) - MCFG_CPU_PROGRAM_MAP( scv_mem ) - MCFG_CPU_IO_MAP( scv_io ) - MCFG_CPU_CONFIG( scv_cpu_config ) - - MCFG_MACHINE_START( scv ) - MCFG_MACHINE_RESET( scv ) + MCFG_CPU_MODIFY( "maincpu" ) + MCFG_CPU_CLOCK( 3780000 ) /* Video chip is EPOCH TV-1A */ - MCFG_SCREEN_ADD( "screen", RASTER ) + MCFG_SCREEN_MODIFY( "screen" ) MCFG_SCREEN_RAW_PARAMS( XTAL_13_4MHz/2, 456, 24, 24+192, 342, 23, 23+222 ) /* TODO: Verify */ - MCFG_SCREEN_UPDATE_STATIC( scv ) - - MCFG_GFXDECODE(scv) - MCFG_PALETTE_LENGTH( 16 ) - MCFG_PALETTE_INIT( scv ) - - /* Sound is generated by UPD1771C clocked at XTAL_6MHz */ - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD( "upd1771c", UPD1771C, XTAL_6MHz ) - MCFG_SOUND_CONFIG( scv_upd1771c_config ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) - - MCFG_CARTSLOT_ADD( "cart" ) - MCFG_CARTSLOT_EXTENSION_LIST( "bin" ) - MCFG_CARTSLOT_NOT_MANDATORY - MCFG_CARTSLOT_INTERFACE("scv_cart") - MCFG_CARTSLOT_START( scv_cart ) - MCFG_CARTSLOT_LOAD( scv_cart ) - - /* Software lists */ - MCFG_SOFTWARE_LIST_ADD("cart_list","scv") MACHINE_CONFIG_END diff --git a/src/mess/video/hd44780.h b/src/mess/video/hd44780.h index 94584c34323..6ac5324b1a6 100644 --- a/src/mess/video/hd44780.h +++ b/src/mess/video/hd44780.h @@ -14,6 +14,10 @@ MCFG_DEVICE_ADD( _tag, HD44780, 0 ) \ MCFG_DEVICE_CONFIG(_config) +#define MCFG_HD44780_REPLACE( _tag , _config) \ + MCFG_DEVICE_REPLACE( _tag, HD44780, 0 ) \ + MCFG_DEVICE_CONFIG(_config) + //************************************************************************** // TYPE DEFINITIONS //**************************************************************************