diff --git a/src/mame/drivers/zac_proto.cpp b/src/mame/drivers/zac_proto.cpp index f202a1594fe..af58eb34982 100644 --- a/src/mame/drivers/zac_proto.cpp +++ b/src/mame/drivers/zac_proto.cpp @@ -54,7 +54,7 @@ private: void sound_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER(audio_clock); void zac_proto_map(address_map &map); - u8 m_u36 = 0; // preset divider for u44/u45 + u8 m_u36 = 0x80; // preset divider for u44/u45 u8 m_u37 = 0; // selector for u48 u8 m_u44u45 = 0; // counters for u44/u45 u8 m_u46u47 = 0; // counters for u46/u47 @@ -73,14 +73,14 @@ void zac_proto_state::zac_proto_map(address_map &map) { map(0x0000, 0x0bff).rom(); map(0x0d00, 0x0dff).ram().share("nvram"); - map(0x0e00, 0x0e00).portr("PL0"); - map(0x0e01, 0x0e01).portr("PL1"); - map(0x0e02, 0x0e02).portr("PL2"); - map(0x0e03, 0x0e03).portr("PL3"); - map(0x0e04, 0x0e04).portr("PL4"); - map(0x0e05, 0x0e05).portr("PL5"); - map(0x0e06, 0x0e06).portr("PL6"); - map(0x0e07, 0x0e07).portr("PL7"); + map(0x0e00, 0x0e00).portr("X0"); + map(0x0e01, 0x0e01).portr("X1"); + map(0x0e02, 0x0e02).portr("X2"); + map(0x0e03, 0x0e03).portr("X3"); + map(0x0e04, 0x0e04).portr("X4"); + map(0x0e05, 0x0e05).portr("X5"); + map(0x0e06, 0x0e06).portr("X6"); + map(0x0e07, 0x0e07).portr("X7"); map(0x0e00, 0x0e01).w(FUNC(zac_proto_state::out0_w)); map(0x0e02, 0x0e06).w(FUNC(zac_proto_state::digit_w)); map(0x0e07, 0x0e08).w(FUNC(zac_proto_state::sound_w)); @@ -90,47 +90,47 @@ void zac_proto_state::zac_proto_map(address_map &map) static INPUT_PORTS_START( zac_proto ) // playfield inputs - PORT_START("PL0") + PORT_START("X0") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_START ) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Z) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_NAME("Tilt") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Z) PORT_NAME("Ball Ready") PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole") - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) - PORT_START("PL1") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_J) - PORT_START("PL2") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_K) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_P) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) - PORT_START("PL3") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_COMMA) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_STOP) - PORT_START("PL4") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("INP 06") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("INP 07") + PORT_START("X1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("INP 10") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_NAME("INP 11") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("INP 12") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("INP 13") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("INP 14") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_NAME("INP 15") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("INP 16") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_J) PORT_NAME("INP 17") + PORT_START("X2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_K) PORT_NAME("INP 20") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("INP 21") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("INP 22") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("INP 23") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("INP 24") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_P) PORT_NAME("INP 25") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("INP 26") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("INP 27") + PORT_START("X3") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("INP 30") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("INP 31") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("INP 32") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("INP 33") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("INP 34") + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Y) PORT_NAME("INP 35") + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP 36") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP 37") + PORT_START("X4") PORT_BIT(0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) // dipswitches - PORT_START("PL5") + PORT_START("X5") PORT_DIPNAME( 0x0f, 0x02, "Coinage Slot 1" ) PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) @@ -164,7 +164,7 @@ static INPUT_PORTS_START( zac_proto ) PORT_DIPSETTING( 0xe0, DEF_STR( 1C_7C ) ) PORT_DIPSETTING( 0xf0, "2 Coins/15 Credits" ) - PORT_START("PL6") + PORT_START("X6") PORT_DIPNAME( 0x03, 0x01, "High Score" ) PORT_DIPSETTING( 0x00, "0" ) PORT_DIPSETTING( 0x01, "1" ) @@ -187,7 +187,7 @@ static INPUT_PORTS_START( zac_proto ) PORT_DIPSETTING( 0x80, "Extra Game" ) PORT_DIPSETTING( 0xc0, "Super Bonus" ) - PORT_START("PL7") + PORT_START("X7") PORT_DIPNAME( 0x01, 0x00, "Random" ) PORT_DIPSETTING( 0x00, "Enabled" ) PORT_DIPSETTING( 0x01, "Disabled" ) @@ -275,15 +275,15 @@ void zac_proto_state::sound_w(offs_t offset, uint8_t data) WRITE_LINE_MEMBER(zac_proto_state::audio_clock) { - if (state)// && BIT(m_u37, 3)) + if (state) { m_u44u45--; if (m_u44u45 == 0) { m_u44u45 = m_u36; m_u46u47--; - if (BIT(m_u37, 3)) - m_speaker->level_w(BIT(m_u46u47, m_u37 & 7) ? 1 : -1); + // if sound muted set speaker to 0, otherwise use the selected frequency. + m_speaker->level_w(BIT(m_u37, 3) ? (BIT(m_u46u47, m_u37 & 7) ? 1 : -1) : 0); } } }