summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ville Linde <villedevs@gmail.com>2021-05-25 22:28:55 +0300
committer Ville Linde <villedevs@gmail.com>2021-05-25 22:28:55 +0300
commit7b44e5a30c264bcdbc847bab4dcab9eaaff6a42a (patch)
treea3472a6893ce37bb48a8701fb9089cd1d0f5c8b7
parent9b3e6508ddb036513a06f36480ace423c5bda0c3 (diff)
taitotz: Add controls for dendego3.
-rw-r--r--src/mame/drivers/taitotz.cpp57
1 files changed, 54 insertions, 3 deletions
diff --git a/src/mame/drivers/taitotz.cpp b/src/mame/drivers/taitotz.cpp
index 739a54743a5..af492a6df32 100644
--- a/src/mame/drivers/taitotz.cpp
+++ b/src/mame/drivers/taitotz.cpp
@@ -213,6 +213,7 @@ Notes:
0x7004: 0x4003d554()
0x7005: 0x4003d168()
0x8000: ? Used by vibration (force feedback?) on pwrshovl
+ 0x9100: ? Dendego3 speedometer and brake meter. io_shared[0x1c3c] = speed, io_shared[0x1c3e] = brake
0xa000: ? Used by vibration (force feedback?) on pwrshovl
0xf000: 0x4002f328() TLCS_Init
0xf010: 0x4002f074() Enables TLCS watchdog timer
@@ -1988,7 +1989,7 @@ void taitotz_state::ppc_common_w(offs_t offset, uint64_t data, uint64_t mem_mask
/*
if (m_io_share_ram[0xfff] == 0x1010)
{
- printf("PPC -> TLCS cmd 1010: %04X %04X %04X %04X\n", m_io_share_ram[0x1a02/2], m_io_share_ram[0x1a04/2], m_io_share_ram[0x1a06/2], m_io_share_ram[0x1a08/2]);
+ printf("PPC -> TLCS cmd 1010: %04X %04X %04X %04X\n", m_io_share_ram[0x1a02/2], m_io_share_ram[0x1a04/2], m_io_share_ram[0x1a06/2], m_io_share_ram[0x1a08/2]);
}
*/
@@ -2025,7 +2026,7 @@ void taitotz_state::ppc_common_w(offs_t offset, uint64_t data, uint64_t mem_mask
m_io_share_ram[0xfff] == 0x6000 || m_io_share_ram[0xfff] == 0x6010)
{
//m_maincpu->spin_until_trigger(PPC_TLCS_COMM_TRIGGER);
- m_maincpu->spin_until_interrupt();
+ //m_maincpu->spin_until_interrupt();
}
// pwrshovl sometimes writes commands during command handling... make sure that doesn't happen
@@ -2546,6 +2547,56 @@ static INPUT_PORTS_START( styphp )
PORT_START("ANALOG8")
INPUT_PORTS_END
+static INPUT_PORTS_START(dendego3)
+ PORT_START("INPUTS1")
+ PORT_BIT(0x00000001, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_SERVICE_NO_TOGGLE(0x00000002, IP_ACTIVE_LOW) /* Test Button */
+ PORT_BIT(0x00000004, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000008, IP_ACTIVE_LOW, IPT_SERVICE) PORT_NAME("Service") PORT_CODE(KEYCODE_7)
+ PORT_BIT(0x00000010, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000020, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000040, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000080, IP_ACTIVE_LOW, IPT_UNUSED)
+
+ PORT_START("INPUTS2")
+ PORT_BIT(0x00000001, IP_ACTIVE_LOW, IPT_COIN1) // Coin
+ PORT_BIT(0x00000002, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000004, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000008, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000010, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000020, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000040, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000080, IP_ACTIVE_LOW, IPT_UNUSED)
+
+ PORT_START("INPUTS3")
+ PORT_BIT(0x00000001, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000002, IP_ACTIVE_LOW, IPT_START1) // Start
+ PORT_BIT(0x00000004, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000008, IP_ACTIVE_LOW, IPT_BUTTON7) // Train Horn
+ PORT_BIT(0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1) // "NOCH0"
+ PORT_BIT(0x000000e0, IP_ACTIVE_LOW, IPT_UNUSED)
+
+ PORT_START("INPUTS4")
+ PORT_BIT(0x00000001, IP_ACTIVE_LOW, IPT_BUTTON3) // "NOCH2"
+ PORT_BIT(0x00000002, IP_ACTIVE_LOW, IPT_BUTTON5) // "NOCH4"
+ PORT_BIT(0x00000004, IP_ACTIVE_LOW, IPT_BUTTON2) // "NOCH1"
+ PORT_BIT(0x00000008, IP_ACTIVE_LOW, IPT_BUTTON4) // "NOCH3"
+ PORT_BIT(0x00000010, IP_ACTIVE_LOW, IPT_BUTTON6) // "NOCH5"
+ PORT_BIT(0x00000020, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000040, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x00000080, IP_ACTIVE_LOW, IPT_UNUSED)
+
+ PORT_START("ANALOG1")
+ PORT_BIT(0x3ff, 0x000, IPT_PADDLE) PORT_MINMAX(0x000, 0x3ff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_CENTERDELTA(0) PORT_NAME("Brake Lever")
+ PORT_START("ANALOG2")
+ PORT_START("ANALOG3")
+ PORT_START("ANALOG4")
+ PORT_START("ANALOG5")
+ PORT_START("ANALOG6")
+ PORT_START("ANALOG7")
+ PORT_START("ANALOG8")
+INPUT_PORTS_END
+
void taitotz_state::machine_reset()
{
if (m_hdd_serial_number != nullptr)
@@ -3012,7 +3063,7 @@ GAME( 1999, pwrshovl, taitotz, taitotz, pwrshovl, taitotz_state, init_pwrshov
GAME( 1999, pwrshovla, pwrshovl, taitotz, pwrshovl, taitotz_state, init_pwrshovl, ROT0, "Taito", "Power Shovel ni Norou!! - Power Shovel Simulator (v2.07J, alt)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // seem to be some differences in drive content, but identifies as the same revision, is it just user data changes??
GAME( 2000, batlgr2, taitotz, taitotz, batlgr2, taitotz_state, init_batlgr2, ROT0, "Taito", "Battle Gear 2 (v2.04J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_NODEVICE_LAN )
GAME( 2000, batlgr2a, batlgr2, taitotz, batlgr2, taitotz_state, init_batlgr2a, ROT0, "Taito", "Battle Gear 2 (v2.01J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_NODEVICE_LAN )
-GAME( 2000, dendego3, taitotz, taitotz, taitotz, taitotz_state, init_dendego3, ROT0, "Taito", "Densha de GO 3! Tsukin-hen (V2.03J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 2001/01/27 09:52:56
+GAME( 2000, dendego3, taitotz, taitotz, dendego3, taitotz_state, init_dendego3, ROT0, "Taito", "Densha de GO 3! Tsukin-hen (V2.03J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 2001/01/27 09:52:56
GAME( 2000, styphp, taitotz, taitotz, styphp, taitotz_state, init_styphp, ROT0, "Taito", "Stunt Typhoon Plus (Ver 2.04 J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
GAME( 2002, raizpin, taitotz, taitotz, taitotz, taitotz_state, init_raizpin, ROT0, "Taito", "Raizin Ping Pong (V2.01O)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
GAME( 2002, raizpinj, raizpin, taitotz, taitotz, taitotz_state, init_raizpinj, ROT0, "Taito", "Raizin Ping Pong (V2.01J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )