From ea579a59a8ff1de93fa3d96187f8ee55d3241639 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sat, 2 Jun 2018 03:29:30 +1000 Subject: [PATCH] (nw) more cleanup - remove more literal tags, split redline/offroad/etc. out of leland state --- src/mame/drivers/leland.cpp | 139 +++++++++++++++++----------------- src/mame/drivers/osborne1.cpp | 6 +- src/mame/drivers/zorba.cpp | 8 +- src/mame/includes/leland.h | 73 ++++++++++++------ src/mame/machine/leland.cpp | 57 +++++++------- 5 files changed, 150 insertions(+), 133 deletions(-) diff --git a/src/mame/drivers/leland.cpp b/src/mame/drivers/leland.cpp index 1c549156e15..ae456010a65 100644 --- a/src/mame/drivers/leland.cpp +++ b/src/mame/drivers/leland.cpp @@ -97,13 +97,13 @@ void leland_state::master_map_io(address_map &map) map(0xfd, 0xff).rw(this, FUNC(leland_state::leland_master_analog_key_r), FUNC(leland_state::leland_master_analog_key_w)); } -void leland_state::master_redline_map_io(address_map &map) +void redline_state::master_redline_map_io(address_map &map) { map.global_mask(0xff); - map(0xf0, 0xf0).w(this, FUNC(leland_state::leland_master_alt_bankswitch_w)); + map(0xf0, 0xf0).w(this, FUNC(redline_state::redline_master_alt_bankswitch_w)); map(0xf2, 0xf2).rw(m_sound, FUNC(leland_80186_sound_device::leland_80186_response_r), FUNC(leland_80186_sound_device::leland_80186_command_lo_w)); map(0xf4, 0xf4).w(m_sound, FUNC(leland_80186_sound_device::leland_80186_command_hi_w)); - map(0xfd, 0xff).rw(this, FUNC(leland_state::leland_master_analog_key_r), FUNC(leland_state::leland_master_analog_key_w)); + map(0xfd, 0xff).rw(this, FUNC(redline_state::leland_master_analog_key_r), FUNC(redline_state::leland_master_analog_key_w)); } @@ -148,7 +148,7 @@ void leland_state::slave_small_map_program(address_map &map) } -void leland_state::slave_large_map_program(address_map &map) +void redline_state::slave_large_map_program(address_map &map) { map(0x0000, 0x1fff).rom(); map(0x4000, 0xbfff).bankr(m_slave_bankslot); @@ -981,16 +981,16 @@ INPUT_PORTS_END MACHINE_CONFIG_START(leland_state::leland) /* basic machine hardware */ - MCFG_DEVICE_ADD("master", Z80, MASTER_CLOCK/2) + MCFG_DEVICE_ADD(m_master, Z80, MASTER_CLOCK/2) MCFG_DEVICE_PROGRAM_MAP(master_map_program) MCFG_DEVICE_IO_MAP(master_map_io) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", leland_state, leland_master_interrupt) - MCFG_DEVICE_ADD("slave", Z80, MASTER_CLOCK/2) + MCFG_DEVICE_ADD(m_slave, Z80, MASTER_CLOCK/2) MCFG_DEVICE_PROGRAM_MAP(slave_small_map_program) MCFG_DEVICE_IO_MAP(slave_map_io) - MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") + MCFG_EEPROM_SERIAL_93C46_ADD(m_eeprom) MCFG_NVRAM_ADD_0FILL("battery") /* video hardware */ @@ -1013,15 +1013,15 @@ MACHINE_CONFIG_START(leland_state::leland) // MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(*this, leland_state, leland_sound_port_w)) // MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25) - MCFG_DEVICE_ADD("dac0", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625) // ls374.u79 + r17-r23 (24k,12k,6.2k,3k,1.5k,750,390,180) - MCFG_DEVICE_ADD("dac1", DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625) // ls374.u88 + r27-r34 (24k,12k,6.2k,3k,1.5k,750,390,180) + MCFG_DEVICE_ADD(m_dac[0], DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625) // ls374.u79 + r17-r23 (24k,12k,6.2k,3k,1.5k,750,390,180) + MCFG_DEVICE_ADD(m_dac[1], DAC_8BIT_BINARY_WEIGHTED, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.0625) // ls374.u88 + r27-r34 (24k,12k,6.2k,3k,1.5k,750,390,180) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_SOUND_ROUTE(0, "dac0", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac0", -1.0, DAC_VREF_NEG_INPUT) MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac1", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END -MACHINE_CONFIG_START(leland_state::redline) +MACHINE_CONFIG_START(redline_state::redline) leland(config); /* basic machine hardware */ @@ -1029,19 +1029,19 @@ MACHINE_CONFIG_START(leland_state::redline) MCFG_DEVICE_IO_MAP(master_redline_map_io) /* sound hardware */ - MCFG_DEVICE_ADD("custom", REDLINE_80186, 0) + MCFG_DEVICE_ADD(m_sound, REDLINE_80186, 0) MACHINE_CONFIG_END -MACHINE_CONFIG_START(leland_state::quarterb) +MACHINE_CONFIG_START(redline_state::quarterb) redline(config); /* sound hardware */ - MCFG_DEVICE_REPLACE("custom", LELAND_80186, 0) + MCFG_DEVICE_REPLACE(m_sound, LELAND_80186, 0) MACHINE_CONFIG_END -MACHINE_CONFIG_START(leland_state::lelandi) +MACHINE_CONFIG_START(redline_state::lelandi) quarterb(config); /* basic machine hardware */ @@ -1053,15 +1053,15 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(ataxx_state::ataxx) /* basic machine hardware */ - MCFG_DEVICE_ADD("master", Z80, 6000000) + MCFG_DEVICE_ADD(m_master, Z80, 6000000) MCFG_DEVICE_PROGRAM_MAP(master_map_program_2) MCFG_DEVICE_IO_MAP(master_map_io_2) - MCFG_DEVICE_ADD("slave", Z80, 6000000) + MCFG_DEVICE_ADD(m_slave, Z80, 6000000) MCFG_DEVICE_PROGRAM_MAP(slave_map_program) MCFG_DEVICE_IO_MAP(slave_map_io_2) - MCFG_EEPROM_SERIAL_93C56_ADD("eeprom") + MCFG_EEPROM_SERIAL_93C56_ADD(m_eeprom) MCFG_EEPROM_SERIAL_ENABLE_STREAMING() MCFG_NVRAM_ADD_0FILL("battery") @@ -1070,15 +1070,14 @@ MACHINE_CONFIG_START(ataxx_state::ataxx) ataxx_video(config); /* sound hardware */ - MCFG_DEVICE_ADD("custom", ATAXX_80186, 0) + MCFG_DEVICE_ADD(m_sound, ATAXX_80186, 0) MACHINE_CONFIG_END MACHINE_CONFIG_START(ataxx_state::wsf) ataxx(config); - MCFG_DEVICE_REMOVE("custom") - MCFG_DEVICE_ADD("custom", WSF_80186, 0) + MCFG_DEVICE_REPLACE(m_sound, WSF_80186, 0) MACHINE_CONFIG_END @@ -3075,7 +3074,7 @@ void leland_state::init_strkzone() } -void leland_state::init_redlin2p() +void redline_state::init_redlin2p() { /* master CPU bankswitching */ m_update_master_bank = &leland_state::redline_bankswitch; @@ -3086,14 +3085,14 @@ void leland_state::init_redlin2p() init_master_ports(0x00, 0xc0); /* set up additional input ports */ - m_master->space(AS_IO).install_read_handler(0xc0, 0xc0, read8_delegate(FUNC(leland_state::redline_pedal_1_r),this)); - m_master->space(AS_IO).install_read_handler(0xd0, 0xd0, read8_delegate(FUNC(leland_state::redline_pedal_2_r),this)); - m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8_delegate(FUNC(leland_state::redline_wheel_2_r),this)); - m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8_delegate(FUNC(leland_state::redline_wheel_1_r),this)); + m_master->space(AS_IO).install_read_handler(0xc0, 0xc0, read8_delegate(FUNC(redline_state::redline_pedal_1_r),this)); + m_master->space(AS_IO).install_read_handler(0xd0, 0xd0, read8_delegate(FUNC(redline_state::redline_pedal_2_r),this)); + m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8_delegate(FUNC(redline_state::redline_wheel_2_r),this)); + m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8_delegate(FUNC(redline_state::redline_wheel_1_r),this)); } -void leland_state::init_quarterb() +void redline_state::init_quarterb() { /* master CPU bankswitching */ m_update_master_bank = &leland_state::viper_bankswitch; @@ -3105,7 +3104,7 @@ void leland_state::init_quarterb() } -void leland_state::init_viper() +void redline_state::init_viper() { /* master CPU bankswitching */ m_update_master_bank = &leland_state::viper_bankswitch; @@ -3118,16 +3117,16 @@ void leland_state::init_viper() init_master_ports(0x00, 0xc0); /* set up additional input ports */ - m_master->space(AS_IO).install_read_handler(0xa4, 0xa4, read8_delegate(FUNC(leland_state::dangerz_input_upper_r),this)); - m_master->space(AS_IO).install_read_handler(0xb8, 0xb8, read8_delegate(FUNC(leland_state::dangerz_input_y_r),this)); - m_master->space(AS_IO).install_read_handler(0xbc, 0xbc, read8_delegate(FUNC(leland_state::dangerz_input_x_r),this)); + m_master->space(AS_IO).install_read_handler(0xa4, 0xa4, read8_delegate(FUNC(redline_state::dangerz_input_upper_r),this)); + m_master->space(AS_IO).install_read_handler(0xb8, 0xb8, read8_delegate(FUNC(redline_state::dangerz_input_y_r),this)); + m_master->space(AS_IO).install_read_handler(0xbc, 0xbc, read8_delegate(FUNC(redline_state::dangerz_input_x_r),this)); save_item(NAME(m_dangerz_x)); save_item(NAME(m_dangerz_y)); } -void leland_state::init_teamqb() +void redline_state::init_teamqb() { /* master CPU bankswitching */ m_update_master_bank = &leland_state::viper_bankswitch; @@ -3145,7 +3144,7 @@ void leland_state::init_teamqb() } -void leland_state::init_aafb() +void redline_state::init_aafb() { /* master CPU bankswitching */ m_update_master_bank = &leland_state::viper_bankswitch; @@ -3163,7 +3162,7 @@ void leland_state::init_aafb() } -void leland_state::init_aafbb() +void redline_state::init_aafbb() { /* master CPU bankswitching */ m_update_master_bank = &leland_state::viper_bankswitch; @@ -3181,7 +3180,7 @@ void leland_state::init_aafbb() } -void leland_state::init_aafbd2p() +void redline_state::init_aafbd2p() { /* master CPU bankswitching */ m_update_master_bank = &leland_state::viper_bankswitch; @@ -3199,7 +3198,7 @@ void leland_state::init_aafbd2p() } -void leland_state::init_offroad() +void redline_state::init_offroad() { /* master CPU bankswitching */ m_update_master_bank = &leland_state::offroad_bankswitch; @@ -3213,13 +3212,13 @@ void leland_state::init_offroad() init_master_ports(0x40, 0x80); /* yes, this is intentional */ /* set up additional input ports */ - m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8_delegate(FUNC(leland_state::offroad_wheel_3_r),this)); - m_master->space(AS_IO).install_read_handler(0xf9, 0xf9, read8_delegate(FUNC(leland_state::offroad_wheel_1_r),this)); - m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8_delegate(FUNC(leland_state::offroad_wheel_2_r),this)); + m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8_delegate(FUNC(redline_state::offroad_wheel_3_r),this)); + m_master->space(AS_IO).install_read_handler(0xf9, 0xf9, read8_delegate(FUNC(redline_state::offroad_wheel_1_r),this)); + m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8_delegate(FUNC(redline_state::offroad_wheel_2_r),this)); } -void leland_state::init_offroadt() +void redline_state::init_offroadt() { /* master CPU bankswitching */ m_update_master_bank = &leland_state::offroad_bankswitch; @@ -3232,13 +3231,13 @@ void leland_state::init_offroadt() init_master_ports(0x80, 0x40); /* set up additional input ports */ - m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8_delegate(FUNC(leland_state::offroad_wheel_3_r),this)); - m_master->space(AS_IO).install_read_handler(0xf9, 0xf9, read8_delegate(FUNC(leland_state::offroad_wheel_1_r),this)); - m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8_delegate(FUNC(leland_state::offroad_wheel_2_r),this)); + m_master->space(AS_IO).install_read_handler(0xf8, 0xf8, read8_delegate(FUNC(redline_state::offroad_wheel_3_r),this)); + m_master->space(AS_IO).install_read_handler(0xf9, 0xf9, read8_delegate(FUNC(redline_state::offroad_wheel_1_r),this)); + m_master->space(AS_IO).install_read_handler(0xfb, 0xfb, read8_delegate(FUNC(redline_state::offroad_wheel_2_r),this)); } -void leland_state::init_pigout() +void redline_state::init_pigout() { /* master CPU bankswitching */ m_update_master_bank = &leland_state::offroad_bankswitch; @@ -3293,7 +3292,7 @@ void ataxx_state::init_indyheat() leland_rotate_memory("slave"); /* set up additional input ports */ - m_master->space(AS_IO).install_read_handler(0x00, 0x02, read8_delegate(FUNC(ataxx_state::indyheat_wheel_r),this)); + m_master->space(AS_IO).install_read_handler(0x00, 0x02, read8_delegate(FUNC(ataxx_state::ataxx_trackball_r),this)); m_master->space(AS_IO).install_read_handler(0x08, 0x0b, read8_delegate(FUNC(ataxx_state::indyheat_analog_r),this)); m_master->space(AS_IO).install_read_port(0x0d, 0x0d, "P1"); m_master->space(AS_IO).install_read_port(0x0e, 0x0e, "P2"); @@ -3356,35 +3355,35 @@ GAME( 1987, dblplay, 0, leland, basebal2, leland_state, init_dblpl GAME( 1988, strkzone, 0, leland, basebal2, leland_state, init_strkzone, ROT0, "Leland Corporation", "Strike Zone Baseball", 0 ) /* large master banks, small slave banks, 80186 sound */ -GAME( 1987, redlin2p, 0, redline, redline, leland_state, init_redlin2p, ROT270, "Cinematronics (Tradewest license)", "Redline Racer (2 players)", 0 ) -GAME( 1987, quarterb, 0, quarterb, quarterb, leland_state, init_quarterb, ROT270, "Leland Corporation", "Quarterback (rev 5)", 0 ) -GAME( 1987, quarterba, quarterb, quarterb, quarterb, leland_state, init_quarterb, ROT270, "Leland Corporation", "Quarterback (rev 2)", 0 ) -GAME( 1987, quarterbc, quarterb, quarterb, quarterb, leland_state, init_quarterb, ROT270, "Leland Corporation", "Quarterback (rev 1, cocktail)", 0 ) +GAME( 1987, redlin2p, 0, redline, redline, redline_state, init_redlin2p, ROT270, "Cinematronics (Tradewest license)", "Redline Racer (2 players)", 0 ) +GAME( 1987, quarterb, 0, quarterb, quarterb, redline_state, init_quarterb, ROT270, "Leland Corporation", "Quarterback (rev 5)", 0 ) +GAME( 1987, quarterba, quarterb, quarterb, quarterb, redline_state, init_quarterb, ROT270, "Leland Corporation", "Quarterback (rev 2)", 0 ) +GAME( 1987, quarterbc, quarterb, quarterb, quarterb, redline_state, init_quarterb, ROT270, "Leland Corporation", "Quarterback (rev 1, cocktail)", 0 ) /* large master banks, large slave banks, 80186 sound */ -GAME( 1988, viper, 0, lelandi, dangerz, leland_state, init_viper, ROT0, "Leland Corporation", "Viper (rev 3)", 0 ) -GAME( 1988, teamqb, 0, lelandi, teamqb, leland_state, init_teamqb, ROT270, "Leland Corporation", "John Elway's Team Quarterback (rev 3)", 0 ) -GAME( 1988, teamqb2, teamqb, lelandi, teamqb, leland_state, init_teamqb, ROT270, "Leland Corporation", "John Elway's Team Quarterback (rev 2)", 0 ) -GAME( 1989, aafb, 0, lelandi, teamqb, leland_state, init_aafb, ROT270, "Leland Corporation", "All American Football (rev E)", 0 ) -GAME( 1989, aafbd2p, aafb, lelandi, aafb2p, leland_state, init_aafbd2p, ROT270, "Leland Corporation", "All American Football (rev D, 2 Players)", 0 ) -GAME( 1989, aafbc, aafb, lelandi, teamqb, leland_state, init_aafbb, ROT270, "Leland Corporation", "All American Football (rev C)", 0 ) -GAME( 1989, aafbb, aafb, lelandi, teamqb, leland_state, init_aafbb, ROT270, "Leland Corporation", "All American Football (rev B)", MACHINE_NOT_WORKING ) +GAME( 1988, viper, 0, lelandi, dangerz, redline_state, init_viper, ROT0, "Leland Corporation", "Viper (rev 3)", 0 ) +GAME( 1988, teamqb, 0, lelandi, teamqb, redline_state, init_teamqb, ROT270, "Leland Corporation", "John Elway's Team Quarterback (rev 3)", 0 ) +GAME( 1988, teamqb2, teamqb, lelandi, teamqb, redline_state, init_teamqb, ROT270, "Leland Corporation", "John Elway's Team Quarterback (rev 2)", 0 ) +GAME( 1989, aafb, 0, lelandi, teamqb, redline_state, init_aafb, ROT270, "Leland Corporation", "All American Football (rev E)", 0 ) +GAME( 1989, aafbd2p, aafb, lelandi, aafb2p, redline_state, init_aafbd2p, ROT270, "Leland Corporation", "All American Football (rev D, 2 Players)", 0 ) +GAME( 1989, aafbc, aafb, lelandi, teamqb, redline_state, init_aafbb, ROT270, "Leland Corporation", "All American Football (rev C)", 0 ) +GAME( 1989, aafbb, aafb, lelandi, teamqb, redline_state, init_aafbb, ROT270, "Leland Corporation", "All American Football (rev B)", MACHINE_NOT_WORKING ) /* huge master banks, large slave banks, 80186 sound */ -GAME( 1989, offroad, 0, lelandi, offroad, leland_state, init_offroad, ROT0, "Leland Corporation", "Ironman Ivan Stewart's Super Off-Road (rev 4)", 0 ) -GAME( 1989, offroad3, offroad, lelandi, offroad, leland_state, init_offroad, ROT0, "Leland Corporation", "Ironman Ivan Stewart's Super Off-Road (rev 3)", 0 ) -GAME( 1989, offroadt, 0, lelandi, offroad, leland_state, init_offroadt, ROT0, "Leland Corporation", "Ironman Ivan Stewart's Super Off-Road Track-Pak", 0 ) -GAME( 1989, offroadt2p, offroadt, lelandi, offroadt2p, leland_state, init_offroadt, ROT0, "Leland Corporation", "Ironman Ivan Stewart's Super Off-Road Track-Pak (rev 4, 2 Players)", 0 ) -GAME( 1990, pigout, 0, lelandi, pigout, leland_state, init_pigout, ROT0, "Leland Corporation", "Pig Out: Dine Like a Swine! (rev 2?)", 0 ) /* need to verify revision */ -GAME( 1990, pigouta, pigout, lelandi, pigout, leland_state, init_pigout, ROT0, "Leland Corporation", "Pig Out: Dine Like a Swine! (rev 1)", 0 ) +GAME( 1989, offroad, 0, lelandi, offroad, redline_state, init_offroad, ROT0, "Leland Corporation", "Ironman Ivan Stewart's Super Off-Road (rev 4)", 0 ) +GAME( 1989, offroad3, offroad, lelandi, offroad, redline_state, init_offroad, ROT0, "Leland Corporation", "Ironman Ivan Stewart's Super Off-Road (rev 3)", 0 ) +GAME( 1989, offroadt, 0, lelandi, offroad, redline_state, init_offroadt, ROT0, "Leland Corporation", "Ironman Ivan Stewart's Super Off-Road Track-Pak", 0 ) +GAME( 1989, offroadt2p, offroadt, lelandi, offroadt2p, redline_state, init_offroadt, ROT0, "Leland Corporation", "Ironman Ivan Stewart's Super Off-Road Track-Pak (rev 4, 2 Players)", 0 ) +GAME( 1990, pigout, 0, lelandi, pigout, redline_state, init_pigout, ROT0, "Leland Corporation", "Pig Out: Dine Like a Swine! (rev 2?)", 0 ) /* need to verify revision */ +GAME( 1990, pigouta, pigout, lelandi, pigout, redline_state, init_pigout, ROT0, "Leland Corporation", "Pig Out: Dine Like a Swine! (rev 1)", 0 ) /* Ataxx-era PCB, 80186 sound */ -GAME( 1990, ataxx, 0, ataxx, ataxx, ataxx_state, init_ataxx, ROT0, "Leland Corporation", "Ataxx (rev 5)", 0 ) -GAME( 1990, ataxxa, ataxx, ataxx, ataxx, ataxx_state, init_ataxx, ROT0, "Leland Corporation", "Ataxx (rev 4)", 0 ) -GAME( 1990, ataxxe, ataxx, ataxx, ataxx, ataxx_state, init_ataxx, ROT0, "Leland Corporation", "Ataxx (Europe)", 0 ) -GAME( 1990, ataxxj, ataxx, ataxx, ataxx, ataxx_state, init_ataxxj, ROT0, "Leland Corporation (Capcom license)", "Ataxx (Japan)", 0 ) -GAME( 1990, wsf, 0, wsf, wsf, ataxx_state, init_wsf, ROT0, "Leland Corporation", "World Soccer Finals (rev 4)", 0 ) -GAME( 1990, wsf3, wsf, wsf, wsf, ataxx_state, init_wsf, ROT0, "Leland Corporation", "World Soccer Finals (rev 3)", 0 ) -GAME( 1991, indyheat, 0, wsf, indyheat, ataxx_state, init_indyheat, ROT0, "Leland Corporation", "Danny Sullivan's Indy Heat (rev 1)", 0 ) -GAME( 1991, brutforc, 0, wsf, brutforc, ataxx_state, init_brutforc, ROT0, "Leland Corporation", "Brute Force", 0 ) -GAME( 1991, asylum, 0, wsf, brutforc, ataxx_state, init_asylum, ROT270, "Leland Corporation", "Asylum (prototype)", 0 ) +GAME( 1990, ataxx, 0, ataxx, ataxx, ataxx_state, init_ataxx, ROT0, "Leland Corporation", "Ataxx (rev 5)", 0 ) +GAME( 1990, ataxxa, ataxx, ataxx, ataxx, ataxx_state, init_ataxx, ROT0, "Leland Corporation", "Ataxx (rev 4)", 0 ) +GAME( 1990, ataxxe, ataxx, ataxx, ataxx, ataxx_state, init_ataxx, ROT0, "Leland Corporation", "Ataxx (Europe)", 0 ) +GAME( 1990, ataxxj, ataxx, ataxx, ataxx, ataxx_state, init_ataxxj, ROT0, "Leland Corporation (Capcom license)", "Ataxx (Japan)", 0 ) +GAME( 1990, wsf, 0, wsf, wsf, ataxx_state, init_wsf, ROT0, "Leland Corporation", "World Soccer Finals (rev 4)", 0 ) +GAME( 1990, wsf3, wsf, wsf, wsf, ataxx_state, init_wsf, ROT0, "Leland Corporation", "World Soccer Finals (rev 3)", 0 ) +GAME( 1991, indyheat, 0, wsf, indyheat, ataxx_state, init_indyheat, ROT0, "Leland Corporation", "Danny Sullivan's Indy Heat (rev 1)", 0 ) +GAME( 1991, brutforc, 0, wsf, brutforc, ataxx_state, init_brutforc, ROT0, "Leland Corporation", "Brute Force", 0 ) +GAME( 1991, asylum, 0, wsf, brutforc, ataxx_state, init_asylum, ROT270, "Leland Corporation", "Asylum (prototype)", 0 ) diff --git a/src/mame/drivers/osborne1.cpp b/src/mame/drivers/osborne1.cpp index 4ba24a259cf..9caa2d4bfe5 100644 --- a/src/mame/drivers/osborne1.cpp +++ b/src/mame/drivers/osborne1.cpp @@ -102,11 +102,11 @@ static constexpr XTAL MAIN_CLOCK = 15.9744_MHz_XTAL; void osborne1_state::osborne1_mem(address_map &map) { - map(0x0000, 0x0FFF).bankr("bank_0xxx").w(this, FUNC(osborne1_state::bank_0xxx_w)); - map(0x1000, 0x1FFF).bankr("bank_1xxx").w(this, FUNC(osborne1_state::bank_1xxx_w)); + map(0x0000, 0x0FFF).bankr(m_bank_0xxx).w(this, FUNC(osborne1_state::bank_0xxx_w)); + map(0x1000, 0x1FFF).bankr(m_bank_1xxx).w(this, FUNC(osborne1_state::bank_1xxx_w)); map(0x2000, 0x3FFF).rw(this, FUNC(osborne1_state::bank_2xxx_3xxx_r), FUNC(osborne1_state::bank_2xxx_3xxx_w)); map(0x4000, 0xEFFF).ram(); - map(0xF000, 0xFFFF).bankr("bank_fxxx").w(this, FUNC(osborne1_state::videoram_w)); + map(0xF000, 0xFFFF).bankr(m_bank_fxxx).w(this, FUNC(osborne1_state::videoram_w)); } diff --git a/src/mame/drivers/zorba.cpp b/src/mame/drivers/zorba.cpp index 3d35a304b19..cc55777ef71 100644 --- a/src/mame/drivers/zorba.cpp +++ b/src/mame/drivers/zorba.cpp @@ -73,7 +73,7 @@ ToDo: void zorba_state::zorba_mem(address_map &map) { - map(0x0000, 0x3fff).bankr("bankr0").bankw("bankw0"); + map(0x0000, 0x3fff).bankr(m_read_bank).bankw("bankw0"); map(0x4000, 0xffff).ram(); } @@ -273,8 +273,8 @@ void zorba_state::machine_start() { uint8_t *main = memregion("maincpu")->base(); - membank("bankr0")->configure_entry(0, &main[0x0000]); - membank("bankr0")->configure_entry(1, &main[0x10000]); + m_read_bank->configure_entry(0, &main[0x0000]); + m_read_bank->configure_entry(1, &main[0x10000]); membank("bankw0")->configure_entry(0, &main[0x0000]); save_item(NAME(m_intmask)); @@ -304,7 +304,7 @@ void zorba_state::machine_reset() m_pia0->cb1_w(m_printer_prowriter ? m_printer_select : m_printer_fault); m_read_bank->set_entry(1); // point at rom - membank("bankw0")->set_entry(0); // always write to ram + membank("bankw0")->set_entry(0); // always write to RAM m_maincpu->reset(); } diff --git a/src/mame/includes/leland.h b/src/mame/includes/leland.h index e5e79f0ede8..ef901fb80e8 100644 --- a/src/mame/includes/leland.h +++ b/src/mame/includes/leland.h @@ -37,7 +37,6 @@ public: , m_mainram(*this, "mainram") , m_battery_ram(*this, "battery") , m_eeprom(*this, "eeprom") - , m_sound(*this, "custom") , m_dac(*this, "dac%u", 0U) , m_ay8910(*this, "ay8910") , m_ay8912(*this, "ay8912") @@ -57,7 +56,6 @@ public: required_shared_ptr m_mainram; required_shared_ptr m_battery_ram; required_device m_eeprom; - optional_device m_sound; optional_device_array m_dac; optional_device m_ay8910; optional_device m_ay8912; @@ -107,13 +105,6 @@ public: DECLARE_READ8_MEMBER(dangerz_input_y_r); DECLARE_READ8_MEMBER(dangerz_input_x_r); DECLARE_READ8_MEMBER(dangerz_input_upper_r); - DECLARE_READ8_MEMBER(redline_pedal_1_r); - DECLARE_READ8_MEMBER(redline_pedal_2_r); - DECLARE_READ8_MEMBER(redline_wheel_1_r); - DECLARE_READ8_MEMBER(redline_wheel_2_r); - DECLARE_READ8_MEMBER(offroad_wheel_1_r); - DECLARE_READ8_MEMBER(offroad_wheel_2_r); - DECLARE_READ8_MEMBER(offroad_wheel_3_r); DECLARE_WRITE8_MEMBER(leland_master_alt_bankswitch_w); DECLARE_WRITE8_MEMBER(leland_battery_ram_w); DECLARE_READ8_MEMBER(leland_master_analog_key_r); @@ -138,25 +129,15 @@ public: DECLARE_WRITE8_MEMBER(leland_gfx_port_w); void init_dblplay(); - void init_viper(); - void init_quarterb(); - void init_aafb(); - void init_redlin2p(); - void init_aafbb(); void init_dangerz(); void init_mayhem(); - void init_offroad(); - void init_pigout(); void init_alleymas(); - void init_offroadt(); - void init_teamqb(); void init_strkzone(); void init_wseries(); void init_powrplay(); void init_basebal2(); void init_upyoural(); void init_cerberus(); - void init_aafbd2p(); virtual void machine_start() override; virtual void machine_reset() override; virtual void video_start() override; @@ -191,26 +172,65 @@ public: void keycard_w(int data); void leland_rotate_memory(const char *cpuname); void init_master_ports(uint8_t mvram_base, uint8_t io_base); - void redline(machine_config &config); - void lelandi(machine_config &config); void leland(machine_config &config); - void quarterb(machine_config &config); void leland_video(machine_config &config); void master_map_io(address_map &map); void master_map_program(address_map &map); - void master_redline_map_io(address_map &map); - void slave_large_map_program(address_map &map); void slave_map_io(address_map &map); void slave_map_program(address_map &map); void slave_small_map_program(address_map &map); }; +class redline_state : public leland_state +{ +public: + redline_state(const machine_config &mconfig, device_type type, const char *tag) + : leland_state(mconfig, type, tag) + , m_sound(*this, "custom") + { + } + + void init_redlin2p(); + void init_quarterb(); + void init_viper(); + void init_teamqb(); + void init_aafb(); + void init_aafbb(); + void init_aafbd2p(); + void init_offroad(); + void init_offroadt(); + void init_pigout(); + + void redline(machine_config &config); + void quarterb(machine_config &config); + void lelandi(machine_config &config); + +protected: + DECLARE_READ8_MEMBER(redline_pedal_1_r); + DECLARE_READ8_MEMBER(redline_pedal_2_r); + DECLARE_READ8_MEMBER(redline_wheel_1_r); + DECLARE_READ8_MEMBER(redline_wheel_2_r); + DECLARE_READ8_MEMBER(offroad_wheel_1_r); + DECLARE_READ8_MEMBER(offroad_wheel_2_r); + DECLARE_READ8_MEMBER(offroad_wheel_3_r); + DECLARE_WRITE8_MEMBER(redline_master_alt_bankswitch_w); + + void master_redline_map_io(address_map &map); + void slave_large_map_program(address_map &map); + +private: + required_device m_sound; +}; + + class ataxx_state : public leland_state { public: ataxx_state(const machine_config &mconfig, device_type type, const char *tag) : leland_state(mconfig, type, tag) + , m_sound(*this, "custom") + , m_track_axes(*this, "AN%u", 0U) , m_xrom_base(*this, "xrom") { } @@ -227,7 +247,6 @@ public: protected: DECLARE_READ8_MEMBER(ataxx_trackball_r); - DECLARE_READ8_MEMBER(indyheat_wheel_r); DECLARE_READ8_MEMBER(indyheat_analog_r); DECLARE_WRITE8_MEMBER(indyheat_analog_w); @@ -259,6 +278,10 @@ protected: void slave_map_io_2(address_map &map); private: + required_device m_sound; + + optional_ioport_array<4> m_track_axes; + required_region_ptr m_xrom_base; std::unique_ptr m_ataxx_qram; diff --git a/src/mame/machine/leland.cpp b/src/mame/machine/leland.cpp index 02e5db9f8a1..2db7de56531 100644 --- a/src/mame/machine/leland.cpp +++ b/src/mame/machine/leland.cpp @@ -187,27 +187,27 @@ READ8_MEMBER(leland_state::dangerz_input_upper_r) static const uint8_t redline_pedal_value[8] = { 0xf0, 0xe0, 0xc0, 0xd0, 0x90, 0xb0, 0x30, 0x70 }; -READ8_MEMBER(leland_state::redline_pedal_1_r) +READ8_MEMBER(redline_state::redline_pedal_1_r) { - int pedal = ioport("IN0")->read(); + ioport_value const pedal = ioport("IN0")->read(); return redline_pedal_value[pedal >> 5] | 0x0f; } -READ8_MEMBER(leland_state::redline_pedal_2_r) +READ8_MEMBER(redline_state::redline_pedal_2_r) { - int pedal = ioport("IN2")->read(); + ioport_value const pedal = ioport("IN2")->read(); return redline_pedal_value[pedal >> 5] | 0x0f; } -READ8_MEMBER(leland_state::redline_wheel_1_r) +READ8_MEMBER(redline_state::redline_wheel_1_r) { return dial_compute_value(ioport("AN0")->read(), 0); } -READ8_MEMBER(leland_state::redline_wheel_2_r) +READ8_MEMBER(redline_state::redline_wheel_2_r) { return dial_compute_value(ioport("AN1")->read(), 1); } @@ -220,19 +220,19 @@ READ8_MEMBER(leland_state::redline_wheel_2_r) * *************************************/ -READ8_MEMBER(leland_state::offroad_wheel_1_r) +READ8_MEMBER(redline_state::offroad_wheel_1_r) { return dial_compute_value(ioport("AN3")->read(), 0); } -READ8_MEMBER(leland_state::offroad_wheel_2_r) +READ8_MEMBER(redline_state::offroad_wheel_2_r) { return dial_compute_value(ioport("AN4")->read(), 1); } -READ8_MEMBER(leland_state::offroad_wheel_3_r) +READ8_MEMBER(redline_state::offroad_wheel_3_r) { return dial_compute_value(ioport("AN5")->read(), 2); } @@ -247,9 +247,7 @@ READ8_MEMBER(leland_state::offroad_wheel_3_r) READ8_MEMBER(ataxx_state::ataxx_trackball_r) { - static const char *const tracknames[] = { "AN0", "AN1", "AN2", "AN3" }; - - return dial_compute_value(ioport(tracknames[offset])->read(), offset); + return dial_compute_value(m_track_axes[offset]->read(), offset); } @@ -260,30 +258,22 @@ READ8_MEMBER(ataxx_state::ataxx_trackball_r) * *************************************/ -READ8_MEMBER(ataxx_state::indyheat_wheel_r) -{ - static const char *const tracknames[] = { "AN0", "AN1", "AN2" }; - - return dial_compute_value(ioport(tracknames[offset])->read(), offset); -} - - READ8_MEMBER(ataxx_state::indyheat_analog_r) { switch (offset) { - case 0: - return 0; + case 0: + return 0; - case 1: - return m_analog_result; + case 1: + return m_analog_result; - case 2: - return 0; + case 2: + return 0; - case 3: - logerror("Unexpected analog read(%02X)\n", 8 + offset); - break; + case 3: + logerror("Unexpected analog read(%02X)\n", 8 + offset); + break; } return 0xff; } @@ -478,10 +468,15 @@ WRITE8_MEMBER(leland_state::leland_master_alt_bankswitch_w) logerror("%04X:alternate_bank = %02X\n", m_master->pc(), data & 0x0f); m_alternate_bank = data & 15; (this->*m_update_master_bank)(); +} + + +WRITE8_MEMBER(redline_state::redline_master_alt_bankswitch_w) +{ + leland_master_alt_bankswitch_w(space, offset, data, mem_mask); /* sound control is in the rest */ - if (m_sound) - m_sound->leland_80186_control_w(space, offset, data); + m_sound->leland_80186_control_w(space, offset, data, mem_mask); }