diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2013-03-25 12:30:09 +0000 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2013-03-25 12:30:09 +0000 |
commit | 7ccedf2bd510028426104c2e14d4611f38e6f953 (patch) | |
tree | 6eb6a7ac98a2f4820b72e94a18361f6d2340af3f /src | |
parent | 1a9b55d88ff6285ebdcc9b02829f5be90ddb658a (diff) |
and some more megadriv modernization (nw)
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/megaplay.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/megatech.c | 8 | ||||
-rw-r--r-- | src/mame/drivers/segac2.c | 4 | ||||
-rw-r--r-- | src/mame/includes/megadriv.h | 21 | ||||
-rw-r--r-- | src/mame/machine/megadriv.c | 80 | ||||
-rw-r--r-- | src/mame/machine/megavdp.c | 6 | ||||
-rw-r--r-- | src/mess/drivers/megadriv.c | 48 |
7 files changed, 80 insertions, 95 deletions
diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c index 9612826632b..b6c66f52c0b 100644 --- a/src/mame/drivers/megaplay.c +++ b/src/mame/drivers/megaplay.c @@ -600,14 +600,14 @@ ADDRESS_MAP_END VIDEO_START_MEMBER(mplay_state,megplay) { //printf("megplay vs\n"); - VIDEO_START_CALL_LEGACY(megadriv); + VIDEO_START_CALL_MEMBER(megadriv); // VIDEO_START_CALL_MEMBER(megaplay_normal); } UINT32 mplay_state::screen_update_megplay(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { //printf("megplay vu\n"); - SCREEN_UPDATE32_CALL(megadriv); + screen_update_megadriv(screen,bitmap,cliprect); // SCREEN_UPDATE32_CALL(megaplay_normal); SCREEN_UPDATE32_CALL(megaplay_bios); return 0; @@ -620,14 +620,14 @@ MACHINE_RESET_MEMBER(mplay_state,megaplay) m_bios_mode = MP_ROM; m_mp_bios_bank_addr = 0; m_readpos = 1; - MACHINE_RESET_CALL_LEGACY(megadriv); + MACHINE_RESET_CALL_MEMBER(megadriv); MACHINE_RESET_CALL_LEGACY(megatech_bios); } void mplay_state::screen_eof_megaplay(screen_device &screen, bool state) { bool vblank_on = state; - SCREEN_VBLANK_CALL(megadriv); + screen_eof_megadriv(screen,state); SCREEN_VBLANK_CALL(megatech_bios); } diff --git a/src/mame/drivers/megatech.c b/src/mame/drivers/megatech.c index 32175b917f4..83b51d185f2 100644 --- a/src/mame/drivers/megatech.c +++ b/src/mame/drivers/megatech.c @@ -428,7 +428,7 @@ DRIVER_INIT_MEMBER(mtech_state,mt_crt) VIDEO_START_MEMBER(mtech_state,mtnew) { init_for_megadrive(machine()); // create an sms vdp too, for compatibility mode - VIDEO_START_CALL_LEGACY(megadriv); + VIDEO_START_CALL_MEMBER(megadriv); } //attotime::never @@ -436,7 +436,7 @@ UINT32 mtech_state::screen_update_mtnew(screen_device &screen, bitmap_rgb32 &bit { /* if we're running an sms game then use the SMS update.. maybe this should be moved to the megadrive emulation core as compatibility mode is a feature of the chip */ if (!m_current_game_is_sms) - SCREEN_UPDATE32_CALL(megadriv); + screen_update_megadriv(screen, bitmap, cliprect); else SCREEN_UPDATE32_CALL(megatech_md_sms); return 0; @@ -446,7 +446,7 @@ void mtech_state::screen_eof_mtnew(screen_device &screen, bool state) { bool vblank_on = state; if (!m_current_game_is_sms) - SCREEN_VBLANK_CALL(megadriv); + screen_eof_megadriv(screen, state); else SCREEN_VBLANK_CALL(megatech_md_sms); } @@ -455,7 +455,7 @@ MACHINE_RESET_MEMBER(mtech_state,mtnew) { m_mt_bank_addr = 0; - MACHINE_RESET_CALL_LEGACY(megadriv); + MACHINE_RESET_CALL_MEMBER(megadriv); MACHINE_RESET_CALL_LEGACY(megatech_md_sms); megatech_select_game(0); } diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index 93d4ab51dbe..4384596a3d6 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -1248,7 +1248,7 @@ static const ym3438_interface ym3438_intf = VIDEO_START_MEMBER(segac2_state,segac2_new) { - VIDEO_START_CALL_LEGACY(megadriv); + VIDEO_START_CALL_MEMBER(megadriv); } // C2 doesn't use the internal VDP CRAM, instead it uses the digital output of the chip @@ -1379,7 +1379,7 @@ static MACHINE_CONFIG_START( segac, segac2_state ) MCFG_SCREEN_SIZE(64*8, 64*8) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 28*8-1) MCFG_SCREEN_UPDATE_DRIVER(segac2_state, screen_update_segac2_new) - MCFG_SCREEN_VBLANK_STATIC( megadriv ) + MCFG_SCREEN_VBLANK_DRIVER(segac2_state, screen_eof_megadriv ) MCFG_PALETTE_LENGTH(2048*3) diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h index cb5443aad61..43b1f1c1d7d 100644 --- a/src/mame/includes/megadriv.h +++ b/src/mame/includes/megadriv.h @@ -39,18 +39,6 @@ MACHINE_CONFIG_EXTERN( md_ntsc ); MACHINE_CONFIG_EXTERN( md_pal ); MACHINE_CONFIG_EXTERN( md_bootleg ); // for topshoot.c & hshavoc.c -MACHINE_START( megadriv ); -MACHINE_RESET( megadriv ); -VIDEO_START( megadriv ); -SCREEN_UPDATE_RGB32( megadriv ); -SCREEN_VBLANK( megadriv ); - - - - - -extern int m_megadrive_6buttons_pad; - /* Megaplay - Megatech specific */ /* It might be possible to move the following structs in the drivers */ @@ -156,6 +144,13 @@ public: void megadrive_io_write_sctrl_port(int portnum, UINT16 data); void megadriv_stop_scanline_timer(); + + DECLARE_MACHINE_START( megadriv ); + DECLARE_MACHINE_RESET( megadriv ); + DECLARE_VIDEO_START( megadriv ); + UINT32 screen_update_megadriv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + void screen_eof_megadriv(screen_device &screen, bool state); + }; class md_boot_state : public md_base_state @@ -477,7 +472,5 @@ extern UINT16 vdp_get_word_from_68k_mem_default(running_machine &machine, UINT32 extern int megadrive_total_scanlines; extern int megadrive_vblank_flag; extern UINT16* megadrive_vdp_palette_lookup; - -/* machine/megadriv.c */ extern TIMER_DEVICE_CALLBACK( megadriv_scanline_timer_callback ); extern timer_device* megadriv_scanline_timer; diff --git a/src/mame/machine/megadriv.c b/src/mame/machine/megadriv.c index fb059f64df0..3b92b9b12b0 100644 --- a/src/mame/machine/megadriv.c +++ b/src/mame/machine/megadriv.c @@ -836,9 +836,9 @@ MACHINE_CONFIG_END -SCREEN_UPDATE_RGB32(megadriv) +UINT32 md_base_state::screen_update_megadriv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - sega_genesis_vdp_device *vdp = screen.machine().device<sega_genesis_vdp_device>("gen_vdp"); // yuck + sega_genesis_vdp_device *vdp = machine().device<sega_genesis_vdp_device>("gen_vdp"); // yuck /* Copy our screen buffer here */ for (int y = cliprect.min_y; y <= cliprect.max_y; y++) @@ -869,51 +869,51 @@ SCREEN_UPDATE_RGB32(megadriv) /*****************************************************************************************/ - -MACHINE_START( megadriv ) +VIDEO_START_MEMBER(md_base_state,megadriv) { - md_base_state *state = machine.driver_data<md_base_state>(); - if (state->m_megadrive_6buttons_pad) - state->init_megadri6_io(); } -MACHINE_RESET( megadriv ) +MACHINE_START_MEMBER(md_base_state,megadriv) { - md_base_state *state = machine.driver_data<md_base_state>(); + if (m_megadrive_6buttons_pad) + init_megadri6_io(); +} +MACHINE_RESET_MEMBER(md_base_state,megadriv) +{ /* default state of z80 = reset, with bus */ mame_printf_debug("Resetting Megadrive / Genesis\n"); - if (state->m_z80snd) + if (m_z80snd) { - state->m_genz80.z80_is_reset = 1; - state->m_genz80.z80_has_bus = 1; - state->m_genz80.z80_bank_addr = 0; - state->m_vdp->set_scanline_counter(-1); - machine.scheduler().timer_set(attotime::zero, timer_expired_delegate(FUNC(md_base_state::megadriv_z80_run_state),state)); + m_genz80.z80_is_reset = 1; + m_genz80.z80_has_bus = 1; + m_genz80.z80_bank_addr = 0; + m_vdp->set_scanline_counter(-1); + machine().scheduler().timer_set(attotime::zero, timer_expired_delegate(FUNC(md_base_state::megadriv_z80_run_state),this)); } - state->megadrive_reset_io(); + megadrive_reset_io(); - if (!state->m_vdp->m_use_alt_timing) + if (!m_vdp->m_use_alt_timing) { - megadriv_scanline_timer = machine.device<timer_device>("md_scan_timer"); + megadriv_scanline_timer = machine().device<timer_device>("md_scan_timer"); megadriv_scanline_timer->adjust(attotime::zero); } - if (state->m_other_hacks) + if (m_other_hacks) { // machine.device("maincpu")->set_clock_scale(0.9950f); /* Fatal Rewind is very fussy... (and doesn't work now anyway, so don't bother with this) */ - if (state->m_megadrive_ram) - memset(state->m_megadrive_ram,0x00,0x10000); + if (m_megadrive_ram) + memset(m_megadrive_ram,0x00,0x10000); } - megadriv_reset_vdp(machine); + megadriv_reset_vdp(machine()); // if the system has a 32x, pause the extra CPUs until they are actually turned on - if (state->m_32x) - state->m_32x->pause_cpu(); + if (m_32x) + m_32x->pause_cpu(); } void md_base_state::megadriv_stop_scanline_timer() @@ -1018,8 +1018,8 @@ MACHINE_CONFIG_FRAGMENT( md_ntsc ) MCFG_CPU_IO_MAP(megadriv_z80_io_map) /* IRQ handled via the timers */ - MCFG_MACHINE_START(megadriv) - MCFG_MACHINE_RESET(megadriv) + MCFG_MACHINE_START_OVERRIDE(md_base_state,megadriv) + MCFG_MACHINE_RESET_OVERRIDE(md_base_state,megadriv) MCFG_FRAGMENT_ADD(megadriv_timers) @@ -1036,14 +1036,14 @@ MACHINE_CONFIG_FRAGMENT( md_ntsc ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // Vblank handled manually. MCFG_SCREEN_SIZE(64*8, 620) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(megadriv) /* Copies a bitmap */ - MCFG_SCREEN_VBLANK_STATIC(megadriv) /* Used to Sync the timing */ + MCFG_SCREEN_UPDATE_DRIVER(md_base_state,screen_update_megadriv) /* Copies a bitmap */ + MCFG_SCREEN_VBLANK_DRIVER(md_base_state,screen_eof_megadriv) /* Used to Sync the timing */ MCFG_TIMER_ADD_SCANLINE("scantimer", megadriv_scanline_timer_callback_alt_timing, "megadriv", 0, 1) MCFG_PALETTE_LENGTH(0x200) - MCFG_VIDEO_START(megadriv) + MCFG_VIDEO_START_OVERRIDE(md_base_state,megadriv) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1071,8 +1071,8 @@ MACHINE_CONFIG_FRAGMENT( md_pal ) MCFG_CPU_IO_MAP(megadriv_z80_io_map) /* IRQ handled via the timers */ - MCFG_MACHINE_START(megadriv) - MCFG_MACHINE_RESET(megadriv) + MCFG_MACHINE_START_OVERRIDE(md_base_state,megadriv) + MCFG_MACHINE_RESET_OVERRIDE(md_base_state,megadriv) MCFG_FRAGMENT_ADD(megadriv_timers) @@ -1087,12 +1087,12 @@ MACHINE_CONFIG_FRAGMENT( md_pal ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // Vblank handled manually. MCFG_SCREEN_SIZE(64*8, 620) MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 28*8-1) - MCFG_SCREEN_UPDATE_STATIC(megadriv) /* Copies a bitmap */ - MCFG_SCREEN_VBLANK_STATIC(megadriv) /* Used to Sync the timing */ + MCFG_SCREEN_UPDATE_DRIVER(md_base_state,screen_update_megadriv) /* Copies a bitmap */ + MCFG_SCREEN_VBLANK_DRIVER(md_base_state,screen_eof_megadriv) /* Used to Sync the timing */ MCFG_PALETTE_LENGTH(0x200) - MCFG_VIDEO_START(megadriv) + MCFG_VIDEO_START_OVERRIDE(md_base_state,megadriv) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") @@ -1341,19 +1341,17 @@ void mtech_state::megatech_set_megadrive_z80_as_megadrive_z80(const char* tag) -SCREEN_VBLANK(megadriv) +void md_base_state::screen_eof_megadriv(screen_device &screen, bool state) { - md_base_state *state = screen.machine().driver_data<md_base_state>(); - if (screen.ioport(":RESET")->read_safe(0x00) & 0x01) - state->m_maincpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE); + m_maincpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE); // rising edge - if (vblank_on) + if (state) { - if (!state->m_vdp->m_use_alt_timing) + if (!m_vdp->m_use_alt_timing) { - state->m_vdp->vdp_handle_eof(screen.machine()); + m_vdp->vdp_handle_eof(machine()); megadriv_scanline_timer->adjust(attotime::zero); } } diff --git a/src/mame/machine/megavdp.c b/src/mame/machine/megavdp.c index d7c82159ee5..386e40a8cf2 100644 --- a/src/mame/machine/megavdp.c +++ b/src/mame/machine/megavdp.c @@ -2602,12 +2602,6 @@ void sega_genesis_vdp_device::genesis_render_scanline(running_machine &machine) } } - -VIDEO_START(megadriv) -{ -} - - void sega_genesis_vdp_device::vdp_handle_scanline_callback(running_machine &machine, int scanline) { /* Compensate for some rounding errors diff --git a/src/mess/drivers/megadriv.c b/src/mess/drivers/megadriv.c index b8358c5d85a..2b303f65b86 100644 --- a/src/mess/drivers/megadriv.c +++ b/src/mess/drivers/megadriv.c @@ -34,6 +34,8 @@ public: READ8_MEMBER(mess_md_io_read_data_port); WRITE16_MEMBER(mess_md_io_write_data_port); + DECLARE_MACHINE_START( ms_megadriv ); + DECLARE_MACHINE_RESET( ms_megadriv ); }; class pico_state : public md_cons_state @@ -49,6 +51,7 @@ public: UINT16 pico_read_penpos(int pen); DECLARE_READ16_HANDLER(pico_68k_io_read); DECLARE_WRITE16_MEMBER(pico_68k_io_write); + DECLARE_MACHINE_START(pico); }; @@ -313,23 +316,21 @@ UINT16 vdp_get_word_from_68k_mem_console(running_machine &machine, UINT32 source } } -static MACHINE_START( ms_megadriv ) +MACHINE_START_MEMBER(md_cons_state,ms_megadriv ) { - md_cons_state *state = machine.driver_data<md_cons_state>(); - - state->init_megadri6_io(); + init_megadri6_io(); vdp_get_word_from_68k_mem = vdp_get_word_from_68k_mem_console; - machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)state->m_slotcart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)state->m_slotcart)); - machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)state->m_slotcart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)state->m_slotcart)); - machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)state->m_slotcart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)state->m_slotcart)); - machine.device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)state->m_slotcart)); + machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_slotcart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_slotcart)); + machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_slotcart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_slotcart)); + machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_slotcart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_slotcart)); + machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_slotcart)); } -static MACHINE_RESET( ms_megadriv ) +MACHINE_RESET_MEMBER(md_cons_state,ms_megadriv ) { - MACHINE_RESET_CALL( megadriv ); + MACHINE_RESET_CALL_MEMBER( megadriv ); } static SLOT_INTERFACE_START(md_cart) @@ -393,8 +394,8 @@ SLOT_INTERFACE_END static MACHINE_CONFIG_START( ms_megadriv, md_cons_state ) MCFG_FRAGMENT_ADD( md_ntsc ) - MCFG_MACHINE_START( ms_megadriv ) - MCFG_MACHINE_RESET( ms_megadriv ) + MCFG_MACHINE_START_OVERRIDE( md_cons_state, ms_megadriv ) + MCFG_MACHINE_RESET_OVERRIDE( md_cons_state, ms_megadriv ) MCFG_MD_CARTRIDGE_ADD("mdslot", md_cart, NULL, NULL) MCFG_SOFTWARE_LIST_ADD("cart_list","megadriv") @@ -403,8 +404,8 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_START( ms_megadpal, md_cons_state ) MCFG_FRAGMENT_ADD( md_pal ) - MCFG_MACHINE_START( ms_megadriv ) - MCFG_MACHINE_RESET( ms_megadriv ) + MCFG_MACHINE_START_OVERRIDE( md_cons_state, ms_megadriv ) + MCFG_MACHINE_RESET_OVERRIDE( md_cons_state, ms_megadriv ) MCFG_MD_CARTRIDGE_ADD("mdslot", md_cart, NULL, NULL) MCFG_SOFTWARE_LIST_ADD("cart_list","megadriv") @@ -1014,13 +1015,12 @@ static SLOT_INTERFACE_START(pico_cart) SLOT_INTERFACE_INTERNAL("rom_sramsafe", MD_ROM_SRAM) // not sure these are needed... SLOT_INTERFACE_END -static MACHINE_START(pico) +MACHINE_START_MEMBER(pico_state,pico) { - pico_state *state = machine.driver_data<pico_state>(); - machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)state->m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)state->m_picocart)); - machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)state->m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)state->m_picocart)); - machine.device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)state->m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)state->m_picocart)); - machine.device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)state->m_picocart)); + machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_picocart)); + machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart)); + machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart)); + machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_picocart)); } static MACHINE_CONFIG_START( pico, pico_state ) @@ -1031,8 +1031,8 @@ static MACHINE_CONFIG_START( pico, pico_state ) MCFG_DEVICE_REMOVE("genesis_snd_z80") - MCFG_MACHINE_START( pico ) - MCFG_MACHINE_RESET( ms_megadriv ) + MCFG_MACHINE_START_OVERRIDE( pico_state, pico ) + MCFG_MACHINE_RESET_OVERRIDE( pico_state, ms_megadriv ) MCFG_PICO_CARTRIDGE_ADD("picoslot", pico_cart, NULL, NULL) MCFG_SOFTWARE_LIST_ADD("cart_list","pico") @@ -1046,8 +1046,8 @@ static MACHINE_CONFIG_START( picopal, pico_state ) MCFG_DEVICE_REMOVE("genesis_snd_z80") - MCFG_MACHINE_START( pico ) - MCFG_MACHINE_RESET( ms_megadriv ) + MCFG_MACHINE_START_OVERRIDE( pico_state, pico ) + MCFG_MACHINE_RESET_OVERRIDE( pico_state, ms_megadriv ) MCFG_PICO_CARTRIDGE_ADD("picoslot", pico_cart, NULL, NULL) MCFG_SOFTWARE_LIST_ADD("cart_list","pico") |