mirror of
https://github.com/holub/mame
synced 2025-07-06 10:29:38 +03:00
Add Jongputer support (#3912)
* Add Jongputer support Jongputer was an origin of mahjong video games, developed by Alpha Denshi at 1981. T.T Mahjong by Taito that was already supported by mame, and Computer Mahjong by Nichibutsu were licensed variants of the Jongputer. This patch reuses T.T Mahjong's proms to decide palette colors for rendering. This may be inaccurate in terms of emulating the real devices, since I could not find relevant proms on the Jongputer's PCB. Also j1 rom placed beside the AY-3-8910 is still unknown. Address pins seems to be managed by counter logic chips, and probably this is used to realize pseudo sampling voice, "reach". * Jongputer support cleanups - BAD_DUMP marks for reused proms - Mark T.T Mahjong as a clone of Jongputer - Use jongpute instead of ttmahjng since the jongpute is parent now - Sort mame.lst entry in the dict order
This commit is contained in:
parent
b034e281af
commit
1a10a84a36
@ -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 )
|
||||
|
@ -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;
|
||||
|
@ -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 //
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user