From 0dc62726354c4e4929a6fa001f0e2529b09be032 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Fri, 6 Aug 2021 07:24:48 +0200 Subject: ssfindo.cpp: hooked up dips for ppcar --- src/mame/drivers/ssfindo.cpp | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/src/mame/drivers/ssfindo.cpp b/src/mame/drivers/ssfindo.cpp index 38981e27766..30c55831202 100644 --- a/src/mame/drivers/ssfindo.cpp +++ b/src/mame/drivers/ssfindo.cpp @@ -17,8 +17,7 @@ TODO: - timing - unknown reads/writes - improve sound hook up - - does ppcar only use the VIDC internal DAC? Could also be using just the QS1000 internal ROM and the - wave ROM for music and the DAC for SFX + - ppcar uses the VIDC internal DAC for SFX and the QS1000 for music. It's configured to use the undumped internal ROM. ************************************************************************************************************* @@ -380,12 +379,12 @@ void ssfindo_state::sound_w(uint8_t data) void ssfindo_state::ssfindo_map(address_map &map) { map(0x00000000, 0x000fffff).rom(); - map(0x03200000, 0x032001ff).m(m_iomd, FUNC(arm7500fe_iomd_device::map)); map(0x03012e60, 0x03012e67).noprw(); map(0x03012fe0, 0x03012fe3).w(FUNC(ssfindo_state::debug_w)); map(0x03012ff0, 0x03012ff3).noprw(); map(0x03012ff4, 0x03012ff7).nopw().r(FUNC(ssfindo_state::ff4_r)); //status flag ? map(0x03012ff8, 0x03012fff).noprw(); + map(0x03200000, 0x032001ff).m(m_iomd, FUNC(arm7500fe_iomd_device::map)); map(0x03240000, 0x03240003).portr("IN0").nopw(); map(0x03241000, 0x03241003).portr("IN1").nopw(); map(0x03242000, 0x03242003).r(FUNC(ssfindo_state::io_r)).w(FUNC(ssfindo_state::io_w)); @@ -399,10 +398,12 @@ void ssfindo_state::ssfindo_map(address_map &map) void ssfindo_state::ppcar_map(address_map &map) { map(0x00000000, 0x000fffff).rom(); - map(0x03200000, 0x032001ff).m(m_iomd, FUNC(arm7500fe_iomd_device::map)); - map(0x03012b00, 0x03012bff).r(FUNC(ssfindo_state::randomized_r)).nopw(); + //map(0x03012be0, 0x03012be0).w(FUNC(ssfindo_state::sound_w)); // once the internal ROM is dumped + map(0x03012bf4, 0x03012bf7).r(FUNC(ssfindo_state::randomized_r)).nopw(); + map(0x03012de0, 0x03012de3).portr("DSW"); map(0x03012e60, 0x03012e67).nopw(); map(0x03012ff8, 0x03012ffb).portr("IN0").nopw(); + map(0x03200000, 0x032001ff).m(m_iomd, FUNC(arm7500fe_iomd_device::map)); map(0x032c0000, 0x032c0003).portr("IN1").nopw(); map(0x03340000, 0x03340007).nopw(); map(0x03341000, 0x0334101f).nopw(); @@ -507,6 +508,29 @@ static INPUT_PORTS_START( ppcar ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) + + PORT_START("DSW") + PORT_DIPNAME( 0x03, 0x00, "Credits to Start" ) + PORT_DIPSETTING( 0x00, "1" ) + PORT_DIPSETTING( 0x01, "2" ) + PORT_DIPSETTING( 0x02, "3" ) + PORT_DIPSETTING( 0x03, "4" ) + PORT_DIPNAME( 0x0c, 0x00, "Missiles" ) + PORT_DIPSETTING( 0x0c, "2" ) + PORT_DIPSETTING( 0x08, "2" ) // same + PORT_DIPSETTING( 0x04, "3" ) + PORT_DIPSETTING( 0x00, "4" ) + PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x10, DEF_STR( On ) ) + PORT_DIPNAME( 0x60, 0x00, DEF_STR( Coinage ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) ) + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) INPUT_PORTS_END static INPUT_PORTS_START( tetfight ) @@ -602,16 +626,19 @@ void ssfindo_state::ppcar(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &ssfindo_state::ppcar_map); + subdevice("qs1000")->set_external_rom(false); // ppcar has no external ROM + subdevice("qs1000:cpu")->set_disable(); // internal ROM hasn't been dumped yet + config.device_remove("i2cmem"); } void tetfight_state::tetfight(machine_config &config) { - ppcar(config); + ssfindo(config); m_maincpu->set_addrmap(AS_PROGRAM, &tetfight_state::tetfight_map); - I2C_24C02(config, m_i2cmem); + I2C_24C02(config.replace(), m_i2cmem); m_iomd->iocr_read_od<0>().set(FUNC(tetfight_state::iocr_od0_r)); m_iomd->iocr_read_od<1>().set(FUNC(tetfight_state::iocr_od1_r)); @@ -655,9 +682,6 @@ ROM_START( ppcar ) ROM_LOAD16_BYTE( "du3", 0x800000, 0x400000, CRC(73882474) SHA1(191b64e662542b5322160c99af8e00079420d473) ) ROM_LOAD16_BYTE( "du2", 0x800001, 0x400000, CRC(9250124a) SHA1(650f4b89c92fe4fb63fc89d4e08c4c4c611bebbc) ) - ROM_REGION(0x10000, "qs1000:cpu", ROMREGION_ERASE00 ) /* qdsp code */ - /* none */ - ROM_REGION(0x100000, "qs1000", 0 ) /* HWASS 1008S-1 qdsp samples */ ROM_LOAD( "nasn9289.u9", 0x000000, 0x100000, CRC(9aef9545) SHA1(f23ef72c3e3667923768dfdd0c5b4951b23dcbcf) ) ROM_END -- cgit v1.2.3