summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/nes_vt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/nes_vt.cpp')
-rw-r--r--src/mame/drivers/nes_vt.cpp80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/mame/drivers/nes_vt.cpp b/src/mame/drivers/nes_vt.cpp
index 653ef17ac1c..ebfaf854049 100644
--- a/src/mame/drivers/nes_vt.cpp
+++ b/src/mame/drivers/nes_vt.cpp
@@ -176,6 +176,24 @@ public:
void nes_vt_waixing_alt_pal_8mb(machine_config& config);
};
+class nes_vt_waixing_alt_duetpp_state : public nes_vt_waixing_alt_state
+{
+public:
+ nes_vt_waixing_alt_duetpp_state(const machine_config& mconfig, device_type type, const char* tag) :
+ nes_vt_waixing_alt_state(mconfig, type, tag)
+ { }
+
+ void nes_vt_waixing_alt_4mb_duetpp(machine_config& config);
+
+private:
+ uint8_t in1_r() override
+ {
+ uint8_t i = machine().rand() & 0x18;
+ uint8_t ret = m_io1->read() & ~0x18;
+ return i | ret;
+ }
+};
+
class nes_vt_timetp36_state : public nes_vt_state
{
@@ -356,6 +374,8 @@ public:
m_ablpinb_in0_val(0),
m_plunger(*this, "PLUNGER")
{ }
+
+ void nes_vt_waixing_alt_4mb_duetpp(machine_config& config);
protected:
virtual void machine_start() override;
@@ -881,6 +901,19 @@ void nes_vt_waixing_alt_state::nes_vt_waixing_alt_pal_8mb(machine_config &config
m_soc->set_8000_scramble(0x5, 0x4, 0x3, 0x2, 0x7, 0x6, 0x7, 0x8);
}
+void nes_vt_waixing_alt_duetpp_state::nes_vt_waixing_alt_4mb_duetpp(machine_config& config)
+{
+ NES_VT_SOC(config, m_soc, NTSC_APU_CLOCK);
+ configure_soc(m_soc);
+
+ m_soc->set_addrmap(AS_PROGRAM, &nes_vt_ablping_state::vt_external_space_map_4mbyte);
+ m_soc->set_201x_descramble(0x3, 0x2, 0x7, 0x6, 0x5, 0x4);
+ m_soc->set_8000_scramble(0x5, 0x4, 0x3, 0x2, 0x7, 0x6, 0x7, 0x8);
+
+ GFXDECODE(config, "gfxdecode", "soc:ppu", vt03_gfx_helper);
+}
+
+
void nes_vt_hum_state::nes_vt_hummer_2mb(machine_config& config)
{
NES_VT_SOC(config, m_soc, NTSC_APU_CLOCK);
@@ -1364,6 +1397,46 @@ static INPUT_PORTS_START( ablpinb )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("NUDGE" )
INPUT_PORTS_END
+
+static INPUT_PORTS_START( duetpp )
+ PORT_START("IO0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("1")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("2")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_PLAYER(1)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
+
+ PORT_START("IO1")
+ PORT_DIPNAME( 0x0001, 0x0001, "P2:0001" )
+ PORT_DIPSETTING( 0x0000, "0000" )
+ PORT_DIPSETTING( 0x0001, "0001" )
+ PORT_DIPNAME( 0x0002, 0x0002, "P2:0002" )
+ PORT_DIPSETTING( 0x0000, "0000" )
+ PORT_DIPSETTING( 0x0002, "0002" )
+ PORT_DIPNAME( 0x0004, 0x0004, "P2:0004" )
+ PORT_DIPSETTING( 0x0000, "0000" )
+ PORT_DIPSETTING( 0x0004, "0004" )
+ PORT_DIPNAME( 0x0008, 0x0008, "P2:0008" )
+ PORT_DIPSETTING( 0x0000, "0000" )
+ PORT_DIPSETTING( 0x0008, "0008" )
+ PORT_DIPNAME( 0x0010, 0x0010, "P2:0010" )
+ PORT_DIPSETTING( 0x0000, "0000" )
+ PORT_DIPSETTING( 0x0010, "0010" )
+ PORT_DIPNAME( 0x0020, 0x0020, "P2:0020" )
+ PORT_DIPSETTING( 0x0000, "0000" )
+ PORT_DIPSETTING( 0x0020, "0020" )
+ PORT_DIPNAME( 0x0040, 0x0040, "P2:0040" )
+ PORT_DIPSETTING( 0x0000, "0000" )
+ PORT_DIPSETTING( 0x0040, "0040" )
+ PORT_DIPNAME( 0x0080, 0x0080, "P2:0080" )
+ PORT_DIPSETTING( 0x0000, "0000" )
+ PORT_DIPSETTING( 0x0080, "0080" )
+INPUT_PORTS_END
+
+
static INPUT_PORTS_START( sudoku )
PORT_INCLUDE(nes_vt)
INPUT_PORTS_END
@@ -1637,6 +1710,11 @@ ROM_START( silv35 )
ROM_LOAD( "silverlit35.bin", 0x00000, 0x400000, CRC(7540e350) SHA1(a0cb456136560fa4d8a365dd44d815ec0e9fc2e7) )
ROM_END
+ROM_START( duetpp )
+ ROM_REGION( 0x400000, "mainrom", 0 )
+ ROM_LOAD( "gamesporzduetpingpong.bin", 0x00000, 0x400000, CRC(96af199b) SHA1(c14ff15683545c1edf03376cebcee7ac408da733) )
+ROM_END
+
ROM_START( lpgm240 )
ROM_REGION( 0x800000, "mainrom", 0 )
ROM_LOAD( "w25q64jv.u1", 0x00000, 0x800000, CRC(b973e65b) SHA1(36ff137068ea56b4679c2db386ac0067de0a9eaf) )
@@ -1957,6 +2035,8 @@ CONS( 200?, vtboxing, 0, 0, nes_vt_512kb, nes_vt, nes_vt_state, empty_init
// 050329 (29th March 2005) date on PCB
CONS( 2005, ablpinb, 0, 0, nes_vt_pal_2mb, ablpinb, nes_vt_ablpinb_state, empty_init, "Advance Bright Ltd", "Pinball (P8002, ABL TV Game)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+// need to map 2 player controls for Ping Pong, 'Eat-Bean' (the PacMan hack) gets stuck during intermission?
+CONS( 200?, duetpp, 0, 0, nes_vt_waixing_alt_4mb_duetpp, duetpp, nes_vt_waixing_alt_duetpp_state, empty_init, "Game Sporz", "Wireless Duet Play Ping-Pong", MACHINE_NOT_WORKING )
// Black pad marked 'SUDOKU' with tails on the S and U characters looping over the logo. Box says "Plug and Play Sudoku"
// Has 2 sets of 4 buttons in circular 'direction pad' layouts (on the left for directions, on the right for functions) and 9 red numbered buttons with red power LED on left of them, and reset button on right