diff options
Diffstat (limited to 'src/mame/drivers/nes_vt.cpp')
-rw-r--r-- | src/mame/drivers/nes_vt.cpp | 80 |
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 |