summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/route16.cpp219
-rw-r--r--src/mame/includes/route16.h16
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/video/route16.cpp2
4 files changed, 121 insertions, 119 deletions
diff --git a/src/mame/drivers/route16.cpp b/src/mame/drivers/route16.cpp
index 4ce75a8b8ce..60c17d4653e 100644
--- a/src/mame/drivers/route16.cpp
+++ b/src/mame/drivers/route16.cpp
@@ -133,25 +133,25 @@ WRITE8_MEMBER(route16_state::stratvox_sn76477_w)
-/*************************************
+/***************************************************
*
- * T.T Mahjong's multiplixed ports
+ * Jongputer and T.T Mahjong's multiplixed ports
*
- *************************************/
+ ***************************************************/
-WRITE8_MEMBER(route16_state::ttmahjng_input_port_matrix_w)
+WRITE8_MEMBER(route16_state::jongpute_input_port_matrix_w)
{
- m_ttmahjng_port_select = data;
+ m_jongpute_port_select = data;
}
-READ8_MEMBER(route16_state::ttmahjng_p1_matrix_r)
+READ8_MEMBER(route16_state::jongpute_p1_matrix_r)
{
uint8_t ret = 0;
- switch (m_ttmahjng_port_select)
+ switch (m_jongpute_port_select)
{
case 1: ret = ioport("KEY0")->read(); break;
case 2: ret = ioport("KEY1")->read(); break;
@@ -163,11 +163,11 @@ READ8_MEMBER(route16_state::ttmahjng_p1_matrix_r)
return ret;
}
-READ8_MEMBER(route16_state::ttmahjng_p2_matrix_r)
+READ8_MEMBER(route16_state::jongpute_p2_matrix_r)
{
uint8_t ret = 0;
- switch (m_ttmahjng_port_select)
+ switch (m_jongpute_port_select)
{
case 1: ret = ioport("KEY4")->read(); break;
case 2: ret = ioport("KEY5")->read(); break;
@@ -264,13 +264,13 @@ void route16_state::speakres_cpu1_map(address_map &map)
}
-void route16_state::ttmahjng_cpu1_map(address_map &map)
+void route16_state::jongpute_cpu1_map(address_map &map)
{
map(0x0000, 0x3fff).rom();
map(0x4000, 0x43ff).ram().share("sharedram");
map(0x4800, 0x4800).portr("DSW").w(FUNC(route16_state::out0_w));
- map(0x5000, 0x5000).r(FUNC(route16_state::ttmahjng_p2_matrix_r)).w(FUNC(route16_state::out1_w));
- map(0x5800, 0x5800).rw(FUNC(route16_state::ttmahjng_p1_matrix_r), FUNC(route16_state::ttmahjng_input_port_matrix_w));
+ map(0x5000, 0x5000).r(FUNC(route16_state::jongpute_p2_matrix_r)).w(FUNC(route16_state::out1_w));
+ map(0x5800, 0x5800).rw(FUNC(route16_state::jongpute_p1_matrix_r), FUNC(route16_state::jongpute_input_port_matrix_w));
map(0x6800, 0x6800).w("ay8910", FUNC(ay8910_device::data_w));
map(0x6900, 0x6900).w("ay8910", FUNC(ay8910_device::address_w));
map(0x8000, 0xbfff).ram().share("videoram1");
@@ -488,112 +488,93 @@ static INPUT_PORTS_START( spacecho )
INPUT_PORTS_END
-static INPUT_PORTS_START( ttmahjng )
+static INPUT_PORTS_START( jongpute )
PORT_START("DSW") /* IN0 */
- PORT_DIPNAME( 0x01, 0x00, "Unknown 01" )
- PORT_DIPSETTING( 0x00, "00" )
- PORT_DIPSETTING( 0x01, "01" )
- PORT_DIPNAME( 0x02, 0x00, "Unknown 02" )
- PORT_DIPSETTING( 0x00, "00" )
- PORT_DIPSETTING( 0x02, "02" )
- PORT_DIPNAME( 0x04, 0x00, "Unknown 04" )
- PORT_DIPSETTING( 0x00, "00" )
- PORT_DIPSETTING( 0x04, "04" )
- PORT_DIPNAME( 0x08, 0x00, "Unknown 08" )
- PORT_DIPSETTING( 0x00, "00" )
- PORT_DIPSETTING( 0x08, "08" )
- PORT_DIPNAME( 0x10, 0x00, "Unknown 10" )
- PORT_DIPSETTING( 0x00, "00" )
- PORT_DIPSETTING( 0x10, "10" )
- PORT_DIPNAME( 0x20, 0x00, "Unknown 20" )
- PORT_DIPSETTING( 0x00, "00" )
- PORT_DIPSETTING( 0x20, "20" )
- PORT_DIPNAME( 0x40, 0x00, "Unknown 40" )
- PORT_DIPSETTING( 0x00, "00" )
- PORT_DIPSETTING( 0x40, "40" )
- PORT_DIPNAME( 0x80, 0x00, "Unknown 80" )
- PORT_DIPSETTING( 0x00, "00" )
- PORT_DIPSETTING( 0x80, "80" )
+ PORT_DIPNAME( 0x0c, 0x08, "Timer Descrement Speed" )
+ PORT_DIPSETTING( 0x00, "Very Fast" )
+ PORT_DIPSETTING( 0x04, "Fast" )
+ PORT_DIPSETTING( 0x08, "Normal" )
+ PORT_DIPSETTING( 0x0c, "Slow" )
PORT_START("KEY0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_MAHJONG_A )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_MAHJONG_E )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_MAHJONG_I )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_MAHJONG_M )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_MAHJONG_KAN )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("KEY1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_MAHJONG_B )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_MAHJONG_F )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_MAHJONG_J )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_MAHJONG_N )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_MAHJONG_REACH )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("KEY2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_MAHJONG_C )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_MAHJONG_G )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_MAHJONG_K )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_MAHJONG_CHI )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_MAHJONG_RON )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("KEY3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_MAHJONG_D )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_MAHJONG_H )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_MAHJONG_L )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_MAHJONG_PON )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("KEY4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_MAHJONG_A ) PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_MAHJONG_E ) PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_MAHJONG_I ) PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_MAHJONG_M ) PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_MAHJONG_KAN ) PORT_COCKTAIL
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("KEY5")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_MAHJONG_B ) PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_MAHJONG_F ) PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_MAHJONG_J ) PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_MAHJONG_N ) PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_MAHJONG_REACH ) PORT_COCKTAIL
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("KEY6")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_MAHJONG_C ) PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_MAHJONG_G ) PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_MAHJONG_K ) PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_MAHJONG_CHI ) PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_MAHJONG_RON ) PORT_COCKTAIL
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
PORT_START("KEY7")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_COCKTAIL
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_COCKTAIL
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_COCKTAIL
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_MAHJONG_D ) PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_MAHJONG_H ) PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_MAHJONG_L ) PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_MAHJONG_PON ) PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
INPUT_PORTS_END
MACHINE_START_MEMBER(route16_state, speakres)
@@ -601,9 +582,9 @@ MACHINE_START_MEMBER(route16_state, speakres)
save_item(NAME(m_speakres_vrx));
}
-MACHINE_START_MEMBER(route16_state, ttmahjng)
+MACHINE_START_MEMBER(route16_state, jongpute)
{
- save_item(NAME(m_ttmahjng_port_select));
+ save_item(NAME(m_jongpute_port_select));
}
void route16_state::init_route16()
@@ -661,7 +642,7 @@ MACHINE_CONFIG_START(route16_state::stratvox)
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_ttmahjng)
+ MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_jongpute)
/* sound hardware */
MCFG_DEVICE_MODIFY("ay8910")
@@ -709,17 +690,17 @@ MACHINE_CONFIG_START(route16_state::spacecho)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(route16_state::ttmahjng)
+MACHINE_CONFIG_START(route16_state::jongpute)
route16(config);
MCFG_DEVICE_MODIFY("cpu1")
- MCFG_DEVICE_PROGRAM_MAP(ttmahjng_cpu1_map)
+ MCFG_DEVICE_PROGRAM_MAP(jongpute_cpu1_map)
MCFG_DEVICE_REMOVE_ADDRESS_MAP(AS_IO)
- MCFG_MACHINE_START_OVERRIDE(route16_state, ttmahjng)
+ MCFG_MACHINE_START_OVERRIDE(route16_state, jongpute)
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_ttmahjng)
+ MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_jongpute)
MCFG_DEVICE_REMOVE("palette")
MCFG_PALETTE_ADD_3BIT_BGR("palette")
@@ -1052,6 +1033,25 @@ ROM_START( ttmahjng )
ROM_LOAD( "ju09", 0x0100, 0x0100, CRC(27d47624) SHA1(ee04ce8043216be8b91413b546479419fca2b917) )
ROM_END
+ROM_START( jongpute )
+ ROM_REGION( 0x10000, "cpu1", 0 )
+ ROM_LOAD( "j2", 0x0000, 0x1000, CRC(6690b6a4) SHA1(ab79faa1ed84d766eee652f3cbdc0296ddb80fe2) )
+ ROM_LOAD( "j3", 0x1000, 0x1000, CRC(985723d3) SHA1(9d7499c48cfc242875a95d01459b8f3252ea41bc) )
+ ROM_LOAD( "j4", 0x2000, 0x1000, CRC(f35ab1e6) SHA1(5b76d05ab9d8b2a88b408cf9e9297ec31a8de33a) )
+ ROM_LOAD( "j5", 0x3000, 0x1000, CRC(77074618) SHA1(73329e945ea578bce1d04c80e09929bfb0e9875b) )
+
+ ROM_REGION( 0x10000, "cpu2", 0 )
+ ROM_LOAD( "j6", 0x0000, 0x1000, CRC(54b349b0) SHA1(e5620b85a24a35d995860c7121f1ddf16f7ea168) )
+
+ /* maybe used for pseudo sampling voice, "reach", that is not emulated yet */
+ ROM_REGION( 0x1000, "unknown", 0 )
+ ROM_LOAD( "j1", 0x0000, 0x1000, CRC(6d6ba272) SHA1(a4efd8daddbbf595ee46484578f544d7ed84e090) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ /* not dumped, but ttmahjng roms seem to be compatible completely */
+ ROM_LOAD( "ju03", 0x0000, 0x0100, BAD_DUMP CRC(27d47624) SHA1(ee04ce8043216be8b91413b546479419fca2b917) )
+ ROM_LOAD( "ju09", 0x0100, 0x0100, BAD_DUMP CRC(27d47624) SHA1(ee04ce8043216be8b91413b546479419fca2b917) )
+ROM_END
/*************************************
@@ -1107,4 +1107,5 @@ GAME( 1980, spacecho, speakres, spacecho, spacecho, route16_state, empty_init,
GAME( 1980, spacecho2,speakres, spacecho, spacecho, route16_state, empty_init, ROT270, "bootleg (Gayton Games)", "Space Echo (set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1980, speakhlp, speakres, spacecho, spacecho, route16_state, empty_init, ROT270, "bootleg", "Speak & Help", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
-GAME( 1981, ttmahjng, 0, ttmahjng, ttmahjng, route16_state, empty_init, ROT0, "Taito", "T.T Mahjong", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, jongpute, 0, jongpute, jongpute, route16_state, empty_init, ROT0, "Alpha Denshi Co.", "Jongputer", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // sampling voice is not emulated
+GAME( 1981, ttmahjng, jongpute, jongpute, jongpute, route16_state, empty_init, ROT0, "Alpha Denshi Co. (Taito license)", "T.T Mahjong", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/includes/route16.h b/src/mame/includes/route16.h
index 6d9dd999cf9..658b6743ca5 100644
--- a/src/mame/includes/route16.h
+++ b/src/mame/includes/route16.h
@@ -24,7 +24,7 @@ public:
{}
void routex(machine_config &config);
- void ttmahjng(machine_config &config);
+ void jongpute(machine_config &config);
void spacecho(machine_config &config);
void speakres(machine_config &config);
void stratvox(machine_config &config);
@@ -38,17 +38,17 @@ private:
template<bool cpu1> DECLARE_WRITE8_MEMBER(route16_sharedram_w);
DECLARE_READ8_MEMBER(route16_prot_read);
DECLARE_READ8_MEMBER(routex_prot_read);
- DECLARE_WRITE8_MEMBER(ttmahjng_input_port_matrix_w);
- DECLARE_READ8_MEMBER(ttmahjng_p1_matrix_r);
- DECLARE_READ8_MEMBER(ttmahjng_p2_matrix_r);
+ DECLARE_WRITE8_MEMBER(jongpute_input_port_matrix_w);
+ DECLARE_READ8_MEMBER(jongpute_p1_matrix_r);
+ DECLARE_READ8_MEMBER(jongpute_p2_matrix_r);
DECLARE_READ8_MEMBER(speakres_in3_r);
DECLARE_WRITE8_MEMBER(speakres_out2_w);
DECLARE_WRITE8_MEMBER(stratvox_sn76477_w);
DECLARE_MACHINE_START(speakres);
- DECLARE_MACHINE_START(ttmahjng);
+ DECLARE_MACHINE_START(jongpute);
uint32_t screen_update_route16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- uint32_t screen_update_ttmahjng(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update_jongpute(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void cpu1_io_map(address_map &map);
void route16_cpu1_map(address_map &map);
@@ -57,7 +57,7 @@ private:
void speakres_cpu1_map(address_map &map);
void stratvox_cpu1_map(address_map &map);
void stratvox_cpu2_map(address_map &map);
- void ttmahjng_cpu1_map(address_map &map);
+ void jongpute_cpu1_map(address_map &map);
required_device<cpu_device> m_cpu1;
required_device<cpu_device> m_cpu2;
@@ -69,7 +69,7 @@ private:
required_device<palette_device> m_palette;
uint8_t m_protection_data;
- uint8_t m_ttmahjng_port_select;
+ uint8_t m_jongpute_port_select;
int m_speakres_vrx;
uint8_t m_flipscreen;
uint8_t m_palette_1;
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 2c5d40eef43..851ab70b5e5 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -33094,6 +33094,7 @@ ron2 // (c) 1981 Sanritsu
roul // (c) 1990
@source:route16.cpp
+jongpute // 1981 Alpha Denshi Co.
route16 // (c) 1981 Tehkan/Sun + Centuri license
route16a // (c) 1981 Tehkan/Sun + Centuri license
route16bl // bootleg
@@ -33107,7 +33108,7 @@ speakresb // bootleg
stratvox // [1980 Sun Electronics] Taito
stratvoxa // [1980 Sun Electronics] Taito
stratvoxb // bootleg
-ttmahjng // Taito
+ttmahjng // 1981 Alpha Denshi Co. / Taito
@source:rowamet.cpp
heavymtl //
diff --git a/src/mame/video/route16.cpp b/src/mame/video/route16.cpp
index f37de62a68d..5dc1ea60bf1 100644
--- a/src/mame/video/route16.cpp
+++ b/src/mame/video/route16.cpp
@@ -109,7 +109,7 @@ uint32_t route16_state::screen_update_route16(screen_device &screen, bitmap_rgb3
* The Stratovox video connections have been verified from the schematics
*/
-uint32_t route16_state::screen_update_ttmahjng(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+uint32_t route16_state::screen_update_jongpute(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
offs_t offs;