summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/segas16b.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/segas16b.cpp')
-rw-r--r--src/mame/drivers/segas16b.cpp178
1 files changed, 89 insertions, 89 deletions
diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp
index e7f3e4069ae..1bb18fc01a7 100644
--- a/src/mame/drivers/segas16b.cpp
+++ b/src/mame/drivers/segas16b.cpp
@@ -3711,32 +3711,31 @@ GFXDECODE_END
// GENERIC MACHINE DRIVERS
//**************************************************************************
-MACHINE_CONFIG_START(segas16b_state::system16b)
-
+void segas16b_state::system16b(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK_10MHz)
- MCFG_DEVICE_PROGRAM_MAP(system16b_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", segas16b_state, irq4_line_hold)
+ M68000(config, m_maincpu, MASTER_CLOCK_10MHz);
+ m_maincpu->set_addrmap(AS_PROGRAM, &segas16b_state::system16b_map);
+ m_maincpu->set_vblank_int("screen", FUNC(segas16b_state::irq4_line_hold));
- MCFG_DEVICE_ADD("soundcpu", Z80, MASTER_CLOCK_10MHz/2)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_IO_MAP(sound_portmap)
+ Z80(config, m_soundcpu, MASTER_CLOCK_10MHz/2);
+ m_soundcpu->set_addrmap(AS_PROGRAM, &segas16b_state::sound_map);
+ m_soundcpu->set_addrmap(AS_IO, &segas16b_state::sound_portmap);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
- MCFG_DEVICE_ADD("mapper", SEGA_315_5195_MEM_MAPPER, MASTER_CLOCK_10MHz)
- MCFG_SEGA_315_5195_CPU("maincpu")
- MCFG_SEGA_315_5195_MAPPER_HANDLER(segas16b_state, memory_mapper)
- MCFG_SEGA_315_5195_PBF_CALLBACK(INPUTLINE("soundcpu", 0))
+ SEGA_315_5195_MEM_MAPPER(config, m_mapper, MASTER_CLOCK_10MHz, m_maincpu);
+ m_mapper->set_mapper(FUNC(segas16b_state::memory_mapper));
+ m_mapper->pbf().set_inputline("soundcpu", 0);
// video hardware
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_segas16b)
- MCFG_PALETTE_ADD("palette", 2048*3)
+ GFXDECODE(config, m_gfxdecode, "palette", gfx_segas16b);
+ PALETTE(config, "palette", 2048*3);
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_25MHz/4, 400, 0, 320, 262, 0, 224)
- MCFG_SCREEN_UPDATE_DRIVER(segas16b_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_raw(MASTER_CLOCK_25MHz/4, 400, 0, 320, 262, 0, 224);
+ m_screen->set_screen_update(FUNC(segas16b_state::screen_update));
+ m_screen->set_palette("palette");
SEGA_SYS16B_SPRITES(config, m_sprites, 0);
SEGAIC16VID(config, m_segaic16vid, 0, m_gfxdecode);
@@ -3746,41 +3745,45 @@ MACHINE_CONFIG_START(segas16b_state::system16b)
YM2151(config, m_ym2151, MASTER_CLOCK_8MHz/2).add_route(ALL_OUTPUTS, "mono", 0.43);
- MCFG_DEVICE_ADD("upd", UPD7759)
- MCFG_UPD7759_MD(0)
- MCFG_UPD7759_DRQ_CALLBACK(WRITELINE(*this, segas16b_state,upd7759_generate_nmi))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.48)
-MACHINE_CONFIG_END
+ UPD7759(config, m_upd7759);
+ m_upd7759->md_w(0);
+ m_upd7759->drq().set(FUNC(segas16b_state::upd7759_generate_nmi));
+ m_upd7759->add_route(ALL_OUTPUTS, "mono", 0.48);
+}
-MACHINE_CONFIG_START(segas16b_state::system16b_mc8123)
+void segas16b_state::system16b_mc8123(machine_config &config)
+{
system16b(config);
- MCFG_DEVICE_REPLACE("soundcpu", MC8123, MASTER_CLOCK_10MHz/2)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_IO_MAP(sound_portmap)
- MCFG_DEVICE_OPCODES_MAP(sound_decrypted_opcodes_map)
-MACHINE_CONFIG_END
+ MC8123(config.replace(), m_soundcpu, MASTER_CLOCK_10MHz/2);
+ m_soundcpu->set_addrmap(AS_PROGRAM, &segas16b_state::sound_map);
+ m_soundcpu->set_addrmap(AS_IO, &segas16b_state::sound_portmap);
+ m_soundcpu->set_addrmap(AS_OPCODES, &segas16b_state::sound_decrypted_opcodes_map);
+}
-MACHINE_CONFIG_START(segas16b_state::system16b_fd1089a)
+void segas16b_state::system16b_fd1089a(machine_config &config)
+{
system16b(config);
- MCFG_DEVICE_REPLACE("maincpu", FD1089A, MASTER_CLOCK_10MHz)
- MCFG_DEVICE_PROGRAM_MAP(system16b_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", segas16b_state, irq4_line_hold)
-MACHINE_CONFIG_END
+ FD1089A(config.replace(), m_maincpu, MASTER_CLOCK_10MHz);
+ m_maincpu->set_addrmap(AS_PROGRAM, &segas16b_state::system16b_map);
+ m_maincpu->set_vblank_int("screen", FUNC(segas16b_state::irq4_line_hold));
+}
-MACHINE_CONFIG_START(segas16b_state::system16b_fd1089b)
+void segas16b_state::system16b_fd1089b(machine_config &config)
+{
system16b(config);
- MCFG_DEVICE_REPLACE("maincpu", FD1089B, MASTER_CLOCK_10MHz)
- MCFG_DEVICE_PROGRAM_MAP(system16b_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", segas16b_state, irq4_line_hold)
-MACHINE_CONFIG_END
+ FD1089B(config.replace(), m_maincpu, MASTER_CLOCK_10MHz);
+ m_maincpu->set_addrmap(AS_PROGRAM, &segas16b_state::system16b_map);
+ m_maincpu->set_vblank_int("screen", FUNC(segas16b_state::irq4_line_hold));
+}
-MACHINE_CONFIG_START(segas16b_state::system16b_fd1094)
+void segas16b_state::system16b_fd1094(machine_config &config)
+{
system16b(config);
- MCFG_DEVICE_REPLACE("maincpu", FD1094, MASTER_CLOCK_10MHz)
- MCFG_DEVICE_PROGRAM_MAP(system16b_map)
- MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", segas16b_state, irq4_line_hold)
-MACHINE_CONFIG_END
+ FD1094(config.replace(), m_maincpu, MASTER_CLOCK_10MHz);
+ m_maincpu->set_addrmap(AS_PROGRAM, &segas16b_state::system16b_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &segas16b_state::decrypted_opcodes_map);
+ m_maincpu->set_vblank_int("screen", FUNC(segas16b_state::irq4_line_hold));
+}
void segas16b_state::aceattacb_fd1094(machine_config &config)
{
@@ -3794,22 +3797,20 @@ void segas16b_state::aceattacb_fd1094(machine_config &config)
m_cxdio->in_portb_cb().set_ioport("HANDX2");
}
-
-MACHINE_CONFIG_START(segas16b_state::system16b_i8751)
+void segas16b_state::system16b_i8751(machine_config &config)
+{
system16b(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", segas16b_state, i8751_main_cpu_vblank)
+ m_maincpu->set_vblank_int("screen", FUNC(segas16b_state::i8751_main_cpu_vblank));
- MCFG_DEVICE_ADD("mcu", I8751, MASTER_CLOCK_8MHz)
- MCFG_DEVICE_IO_MAP(mcu_io_map)
- MCFG_MCS51_PORT_P1_IN_CB(IOPORT("SERVICE"))
- MCFG_MCS51_PORT_P1_OUT_CB(WRITE8(*this, segas16b_state, spin_68k_w))
+ I8751(config, m_mcu, MASTER_CLOCK_8MHz);
+ m_mcu->set_addrmap(AS_IO, &segas16b_state::mcu_io_map);
+ m_mcu->port_in_cb<1>().set_ioport("SERVICE");
+ m_mcu->port_out_cb<1>().set(FUNC(segas16b_state::spin_68k_w));
- MCFG_QUANTUM_TIME(attotime::from_hz(6000))
+ config.m_minimum_quantum = attotime::from_hz(6000);
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("mcu", INPUT_LINE_IRQ0))
-MACHINE_CONFIG_END
+ m_screen->screen_vblank().set_inputline(m_mcu, INPUT_LINE_IRQ0);
+}
// same as the above, but with custom Sega ICs
@@ -3820,35 +3821,37 @@ void segas16b_state::rom_5797_fragment(machine_config &config)
SEGA_315_5250_COMPARE_TIMER(config, m_cmptimer_2, 0);
}
-MACHINE_CONFIG_START(segas16b_state::system16b_5797)
+void segas16b_state::system16b_5797(machine_config &config)
+{
system16b(config);
rom_5797_fragment(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(segas16b_state::system16b_i8751_5797)
+void segas16b_state::system16b_i8751_5797(machine_config &config)
+{
system16b_i8751(config);
rom_5797_fragment(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(segas16b_state::system16b_fd1094_5797)
+void segas16b_state::system16b_fd1094_5797(machine_config &config)
+{
system16b_fd1094(config);
rom_5797_fragment(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(segas16b_state::system16b_split)
+void segas16b_state::system16b_split(machine_config &config)
+{
system16b(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(system16b_bootleg_map)
- MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map_x)
+ m_maincpu->set_addrmap(AS_PROGRAM, &segas16b_state::system16b_bootleg_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &segas16b_state::decrypted_opcodes_map_x);
- MCFG_DEVICE_REMOVE("mapper")
+ config.device_remove("mapper");
- MCFG_DEVICE_MODIFY("soundcpu")
- MCFG_DEVICE_PROGRAM_MAP(bootleg_sound_map)
- MCFG_DEVICE_IO_MAP(bootleg_sound_portmap)
+ m_soundcpu->set_addrmap(AS_PROGRAM, &segas16b_state::bootleg_sound_map);
+ m_soundcpu->set_addrmap(AS_IO, &segas16b_state::bootleg_sound_portmap);
GENERIC_LATCH_8(config, m_soundlatch);
-MACHINE_CONFIG_END
+}
void segas16b_state::tilemap_16b_fpointbl_fill_latch(int i, uint16_t* latched_pageselect, uint16_t* latched_yscroll, uint16_t* latched_xscroll, uint16_t* textram)
{
@@ -3876,19 +3879,18 @@ void segas16b_state::tilemap_16b_fpointbl_fill_latch(int i, uint16_t* latched_pa
// printf("%02x returning latched page select %04x scrollx %04x scrolly %04x\n", i, latched_pageselect[i], latched_xscroll[i], latched_yscroll[i]);
}
-MACHINE_CONFIG_START(segas16b_state::fpointbl)
+void segas16b_state::fpointbl(machine_config &config)
+{
system16b(config);
- MCFG_DEVICE_REMOVE("mapper")
- MCFG_DEVICE_REMOVE("sprites")
+ config.device_remove("mapper");
+ config.device_remove("sprites");
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(fpointbl_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &segas16b_state::fpointbl_map);
- MCFG_DEVICE_MODIFY("soundcpu")
- MCFG_DEVICE_PROGRAM_MAP(fpointbl_sound_map)
- MCFG_DEVICE_IO_MAP(bootleg_sound_portmap)
+ m_soundcpu->set_addrmap(AS_PROGRAM, &segas16b_state::fpointbl_sound_map);
+ m_soundcpu->set_addrmap(AS_IO, &segas16b_state::bootleg_sound_portmap);
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_soundcpu, 0);
@@ -3898,20 +3900,18 @@ MACHINE_CONFIG_START(segas16b_state::fpointbl)
m_sprites->set_local_originy(-2); // some other gfx don't have identical alignment to original tho (flickey character over 'good luck')
m_segaic16vid->set_pagelatch_cb(FUNC(segas16b_state::tilemap_16b_fpointbl_fill_latch), this);
+}
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(segas16b_state::fpointbla)
+void segas16b_state::fpointbla(machine_config &config)
+{
fpointbl(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(map_fpointbla)
- MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map_fpointbla)
+ m_maincpu->set_addrmap(AS_PROGRAM, &segas16b_state::map_fpointbla);
+ m_maincpu->set_addrmap(AS_OPCODES, &segas16b_state::decrypted_opcodes_map_fpointbla);
- MCFG_DEVICE_MODIFY("soundcpu")
- MCFG_DEVICE_PROGRAM_MAP(bootleg_sound_map)
+ m_soundcpu->set_addrmap(AS_PROGRAM, &segas16b_state::bootleg_sound_map);
m_sprites->set_local_originx(60); // these align the pieces with the playfield
- MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(segas16b_state::lockonph)