Previous | 199869 Revisions | Next |
r36816 Tuesday 31st March, 2015 at 00:20:53 UTC by hap |
---|
(MESS)New games added or promoted to working ----------------- Bandai Packri Monster [hap, Kevin Horton, Olivier Galibert] Bandai Zackman [hap, Kevin Horton, Olivier Galibert] Parker Brothers Q*Bert [hap, Kevin Horton, Olivier Galibert] Tomy Kingman [hap, Kevin Horton, Olivier Galibert] Tomy Tron [hap, Kevin Horton, Olivier Galibert] |
[src/mess/drivers] | hh_hmcs40.c |
r245327 | r245328 | |
---|---|---|
473 | 473 | |
474 | 474 | // D0-D3: plate 9-12 (update display there) |
475 | 475 | packmon_plate_w(space, 4, data & 0xf); |
476 | ||
477 | // 12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,13,14,15,16,17,18,19 | |
478 | // 23,22,21,20,19,18,17,16,15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 | |
479 | // 23,22,21,20, 0, 1, 2, 3, 4, 5, 6,19,18,17,16,15,14,13,12,11,10, 9, 8, 7 | |
480 | ||
481 | 476 | } |
482 | 477 | |
483 | 478 | READ16_MEMBER(hh_hmcs40_state::packmon_input_r) |
r245327 | r245328 | |
547 | 542 | int shift = offset * 4; |
548 | 543 | m_plate = (m_plate & ~(0xf << shift)) | (data << shift); |
549 | 544 | |
550 | // 13,12,nc,14,15,16,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,17,18,19,20,21,22,23,24,25,26,27,28 | |
551 | // 31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 | |
552 | // 31,30,27, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,24,25,26,29,28,23,22,21,20,19,18,17,16,15,14,13,12 | |
553 | ||
554 | 545 | // update display |
555 | 546 | UINT8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7); |
556 | 547 | UINT32 plate = BITSWAP32(m_plate,31,30,27,0,1,2,3,4,5,6,7,8,9,10,11,24,25,26,29,28,23,22,21,20,19,18,17,16,15,14,13,12); |
r245327 | r245328 | |
945 | 936 | * cyan/red VFD display Futaba DM-34Z 2A, with color overlay |
946 | 937 | |
947 | 938 | NOTE!: MESS external artwork is recommended |
939 | ||
940 | The game is started by pushing a P1 joystick direction, selecting a game mode: | |
941 | - Right: Pac-Man (default game) | |
942 | - Left: Head-to-Head Pac-Man (2-player mode) | |
943 | - Up: Eat & Run | |
944 | - Down: Demo | |
948 | 945 | |
949 | 946 | ***************************************************************************/ |
950 | 947 | |
r245327 | r245328 | |
955 | 952 | m_plate = (m_plate & ~(0xf << shift)) | (data << shift); |
956 | 953 | |
957 | 954 | // update display |
958 | ||
959 | // 31,30,29,28,27,13,14, 8,12,11,10, 9,15,16,17,18, 7, 6, 5, 4,19,20,21,22, 0, 1, 2, 3,23,24,25,26 | |
960 | // 31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 | |
961 | // 31,30,29,28,27, 0, 1, 2, 3, 8, 9,10,11,16,17,18,19,25,26,23,22,21,20,24,15,14,13,12, 4, 5, 6, 7 | |
962 | ||
963 | 955 | UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,0,1,2,3,4,5,6,7,8,9,10); |
964 | 956 | UINT32 plate = BITSWAP32(m_plate,31,30,29,28,27,0,1,2,3,8,9,10,11,16,17,18,19,25,26,23,22,21,20,24,15,14,13,12,4,5,6,7); |
965 | 957 | |
r245327 | r245328 | |
1254 | 1246 | ***************************************************************************/ |
1255 | 1247 | |
1256 | 1248 | // i/o hookup is identical to Galaxian 2, so we can use those handlers |
1257 | // note: plate numbers are 0-23, not 1-24(with 24 always-on) | |
1258 | 1249 | |
1259 | 1250 | static INPUT_PORTS_START( epacman2 ) |
1260 | 1251 | PORT_START("IN.0") // D1 port R0x |
r245327 | r245328 | |
1331 | 1322 | int shift = offset * 4; |
1332 | 1323 | m_plate = (m_plate & ~(0xf << shift)) | (data << shift); |
1333 | 1324 | |
1334 | // 31,30,29,25,26,27,28,29, 0, 1, 2, 3, 4, 5, 6, 7,24,23,21,20,19,18,17,16,15,14,13,12,11,10, 9, 8 | |
1335 | // 31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 | |
1336 | // 31,30,24,25,26,27,28,15,14,29,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,16,17,18,19,20,21,22,23 | |
1337 | ||
1338 | 1325 | // update display |
1339 | 1326 | UINT32 plate = BITSWAP32(m_plate,31,30,24,25,26,27,28,15,14,29,13,12,11,10,9,8,7,6,5,4,3,2,1,0,16,17,18,19,20,21,22,23); |
1340 | 1327 | |
r245327 | r245328 | |
1529 | 1516 | int shift = offset * 4; |
1530 | 1517 | m_plate = (m_plate & ~(0xf << shift)) | (data << shift); |
1531 | 1518 | |
1532 | ||
1533 | // 20 7 | |
1534 | // 13,sp,11, 6, 5, 4, 0, 1, 2, 3,14,15,16, 8,17,18,22, 9,10,21,19,12 | |
1535 | // 23,22,21,20,19,18,17,16,15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 | |
1536 | // 23, 5, 2,21, 1, 6, 7, 9,10,11,21, 0,19, 3, 4, 8, 3,18,17,16,12,13,14,15 | |
1537 | ||
1538 | ||
1539 | ||
1540 | 1519 | tmtron_display(); |
1541 | 1520 | } |
1542 | 1521 | |
r245327 | r245328 | |
1556 | 1535 | // D6-D15: vfd matrix grid |
1557 | 1536 | m_grid = data >> 6 & 0x3ff; |
1558 | 1537 | |
1559 | // 1,2,3,4,5,6,7,8,9,0 | |
1560 | // 9,8,7,6,5,4,3,2,1,0 | |
1561 | // 15,14,13,12,11,10,1,2,3,4,5,6,7,8,9,0 | |
1562 | ||
1563 | 1538 | // D0-D3,D5: more plates |
1564 | 1539 | m_plate = (m_plate & 0x00ffff) | (data << 16 & 0x2f0000); |
1565 | 1540 | tmtron_display(); |
1566 | 1541 | } |
1567 | 1542 | |
1543 | ||
1568 | 1544 | void hh_hmcs40_state::tmtron_update_int1() |
1569 | 1545 | { |
1570 | 1546 | // INT1 on multiplexed inputs |
1571 | 1547 | set_interrupt(1, read_inputs(4)); |
1572 | 1548 | } |
1573 | 1549 | |
1574 | ||
1575 | 1550 | INPUT_CHANGED_MEMBER(hh_hmcs40_state::tmtron_input_changed) |
1576 | 1551 | { |
1577 | 1552 | tmtron_update_int1(); |
r245327 | r245328 | |
1579 | 1554 | |
1580 | 1555 | static INPUT_PORTS_START( tmtron ) |
1581 | 1556 | PORT_START("IN.0") // D12 INT1 |
1582 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, tmtron_input_changed, NULL) | |
1557 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, tmtron_input_changed, NULL) PORT_16WAY // separate directional buttons, hence 16way | |
1583 | 1558 | |
1584 | 1559 | PORT_START("IN.1") // D13 INT1 |
1585 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, tmtron_input_changed, NULL) | |
1560 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, tmtron_input_changed, NULL) PORT_16WAY // " | |
1586 | 1561 | |
1587 | 1562 | PORT_START("IN.2") // D14 INT1 |
1588 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, tmtron_input_changed, NULL) | |
1563 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, tmtron_input_changed, NULL) PORT_16WAY // " | |
1589 | 1564 | |
1590 | 1565 | PORT_START("IN.3") // D15 INT1 |
1591 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, tmtron_input_changed, NULL) | |
1566 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, tmtron_input_changed, NULL) PORT_16WAY // " | |
1592 | 1567 | |
1593 | 1568 | PORT_START("IN.4") // INT0 |
1594 | 1569 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)0) |
1595 | ||
1596 | ||
1597 | 1570 | INPUT_PORTS_END |
1598 | 1571 | |
1599 | 1572 | |
r245327 | r245328 | |
1729 | 1702 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ |
1730 | 1703 | CONS( 1979, bambball, 0, 0, bambball, bambball, driver_device, 0, "Bambino", "Basketball - Dribble Away", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) |
1731 | 1704 | |
1732 | CONS( 1981, packmon, 0, 0, packmon, packmon, driver_device, 0, "Bandai", "Packri Monster", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) | |
1733 | CONS( 1983, zackman, 0, 0, zackman, zackman, driver_device, 0, "Bandai", "Zackman", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) | |
1705 | CONS( 1981, packmon, 0, 0, packmon, packmon, driver_device, 0, "Bandai", "Packri Monster", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) | |
1706 | CONS( 1983, zackman, 0, 0, zackman, zackman, driver_device, 0, "Bandai", "Zackman", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) | |
1734 | 1707 | |
1735 | 1708 | CONS( 1981, alnattck, 0, 0, alnattck, alnattck, driver_device, 0, "Coleco", "Alien Attack", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) |
1736 | 1709 | CONS( 1982, cdkong, 0, 0, cdkong, cdkong, driver_device, 0, "Coleco", "Donkey Kong (Coleco)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) |
r245327 | r245328 | |
1742 | 1715 | CONS( 1981, egalaxn2, 0, 0, egalaxn2, egalaxn2, driver_device, 0, "Entex", "Galaxian 2 (Entex)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) |
1743 | 1716 | CONS( 1981, epacman2, 0, 0, epacman2, epacman2, driver_device, 0, "Entex", "Pac Man 2 (Entex)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) |
1744 | 1717 | |
1745 | CONS( 1983, pbqbert, 0, 0, pbqbert, pbqbert, driver_device, 0, "Parker Brothers", "Q*Bert (Parker Brothers)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | |
1718 | CONS( 1983, pbqbert, 0, 0, pbqbert, pbqbert, driver_device, 0, "Parker Brothers", "Q*Bert (Parker Brothers)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) | |
1746 | 1719 | |
1747 | CONS( 1982, kingman, 0, 0, kingman, kingman, driver_device, 0, "Tomy", "Kingman", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) | |
1748 | CONS( 1984, tmtron, 0, 0, tmtron, tmtron, driver_device, 0, "Tomy", "Tron (Tomy)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) | |
1720 | CONS( 1982, kingman, 0, 0, kingman, kingman, driver_device, 0, "Tomy", "Kingman", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) | |
1721 | CONS( 1984, tmtron, 0, 0, tmtron, tmtron, driver_device, 0, "Tomy", "Tron (Tomy)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) |
https://github.com/mamedev/mame/commit/23a2142b7c67c6c181fded6c93ac1c640c277812 |
Previous | 199869 Revisions | Next |