trunk/src/mame/drivers/8080bw.c
| r19602 | r19603 | |
| 718 | 718 | |
| 719 | 719 | /* basic machine hardware */ |
| 720 | 720 | MCFG_CPU_ADD("maincpu", I8080A, XTAL_18MHz / 10) // divider guessed |
| 721 | // TODO: move irq handling away from mw8080.c, this game runs on custom hardware |
| 721 | 722 | MCFG_CPU_PROGRAM_MAP(spacecom_map) |
| 722 | 723 | MCFG_CPU_IO_MAP(spacecom_io_map) |
| 723 | 724 | |
| r19602 | r19603 | |
| 752 | 753 | /* */ |
| 753 | 754 | /*******************************************************/ |
| 754 | 755 | |
| 755 | | READ8_MEMBER( _8080bw_state::invrvnge_02_r ) |
| 756 | READ8_MEMBER(_8080bw_state::invrvnge_02_r) |
| 756 | 757 | { |
| 757 | 758 | UINT8 data = ioport("IN2")->read(); |
| 758 | 759 | if (m_c8080bw_flip_screen) return data; |
| r19602 | r19603 | |
| 877 | 878 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY |
| 878 | 879 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 879 | 880 | |
| 880 | | // TODO: figure out where dipswitch is read, it's not IN0 or IN2 in the current implementation |
| 881 | // TODO: figure out where dipswitch is read, it's not IN0 or IN2 in the current implementation. |
| 882 | // ROM disassembly doesn't show any dipswitch reads on portmapped I/O, maybe the manual is for a different ROM set? (that we don't have the dump for) |
| 881 | 883 | #if 0 |
| 882 | 884 | // these are the settings according to Gameplan Intruder manual |
| 883 | 885 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") |
| r19602 | r19603 | |
| 1293 | 1295 | /*******************************************************/ |
| 1294 | 1296 | |
| 1295 | 1297 | |
| 1296 | | READ8_MEMBER( _8080bw_state::schasercv_02_r ) |
| 1298 | READ8_MEMBER(_8080bw_state::schasercv_02_r) |
| 1297 | 1299 | { |
| 1298 | 1300 | UINT8 data = ioport("IN2")->read(); |
| 1299 | 1301 | if (m_c8080bw_flip_screen) return data; |
| r19602 | r19603 | |
| 1620 | 1622 | MACHINE_START_CALL_MEMBER(mw8080bw); |
| 1621 | 1623 | } |
| 1622 | 1624 | |
| 1623 | | READ8_MEMBER( _8080bw_state::polaris_port00_r ) |
| 1625 | READ8_MEMBER(_8080bw_state::polaris_port00_r) |
| 1624 | 1626 | { |
| 1625 | 1627 | UINT8 data = ioport("IN0")->read(); |
| 1626 | 1628 | if (m_c8080bw_flip_screen) return data; |
| r19602 | r19603 | |
| 1645 | 1647 | |
| 1646 | 1648 | |
| 1647 | 1649 | static INPUT_PORTS_START( polaris ) |
| 1648 | | PORT_INCLUDE( schaser ) |
| 1649 | | |
| 1650 | | PORT_MODIFY("IN0") |
| 1650 | PORT_START("IN0") |
| 1651 | 1651 | PORT_DIPUNUSED_DIPLOC( 0x01, 0x00, "SW?:1" ) |
| 1652 | 1652 | PORT_DIPUNUSED_DIPLOC( 0x02, 0x00, "SW?:2" ) |
| 1653 | 1653 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT ) |
| r19602 | r19603 | |
| 1657 | 1657 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) |
| 1658 | 1658 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) |
| 1659 | 1659 | |
| 1660 | | PORT_MODIFY("IN1") |
| 1660 | PORT_START("IN1") |
| 1661 | 1661 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 1662 | 1662 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) |
| 1663 | 1663 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) |
| r19602 | r19603 | |
| 1667 | 1667 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) |
| 1668 | 1668 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) |
| 1669 | 1669 | |
| 1670 | | PORT_MODIFY("IN2") |
| 1670 | PORT_START("IN2") |
| 1671 | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2") |
| 1672 | PORT_DIPSETTING( 0x00, "3" ) |
| 1673 | PORT_DIPSETTING( 0x01, "4" ) |
| 1674 | PORT_DIPSETTING( 0x02, "5" ) |
| 1675 | PORT_DIPSETTING( 0x03, "6" ) |
| 1671 | 1676 | /* 0x04 should be Cabinet - Upright/Cocktail, |
| 1672 | 1677 | but until the cocktail hack is changed, |
| 1673 | 1678 | this will have to do. */ |
| r19602 | r19603 | |
| 1688 | 1693 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 1689 | 1694 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 1690 | 1695 | |
| 1691 | | PORT_MODIFY("VR1") |
| 1696 | /* Dummy port for cocktail mode */ |
| 1697 | INVADERS_CAB_TYPE_PORT |
| 1698 | |
| 1699 | PORT_START("VR1") |
| 1692 | 1700 | PORT_ADJUSTER( 80, "Sub Volume VR1" ) |
| 1693 | 1701 | |
| 1694 | | PORT_MODIFY("VR2") |
| 1702 | PORT_START("VR2") |
| 1695 | 1703 | PORT_ADJUSTER( 70, "Sub Volume VR2" ) |
| 1696 | 1704 | |
| 1697 | | PORT_MODIFY("VR3") |
| 1705 | PORT_START("VR3") |
| 1698 | 1706 | PORT_ADJUSTER( 90, "Sub Volume VR3" ) |
| 1699 | 1707 | INPUT_PORTS_END |
| 1700 | 1708 | |
| r19602 | r19603 | |
| 2212 | 2220 | INVADERS_CAB_TYPE_PORT |
| 2213 | 2221 | INPUT_PORTS_END |
| 2214 | 2222 | |
| 2215 | | READ8_MEMBER( _8080bw_state::shuttlei_ff_r ) |
| 2223 | READ8_MEMBER(_8080bw_state::shuttlei_ff_r) |
| 2216 | 2224 | { |
| 2217 | 2225 | UINT8 data = ioport("INPUTS")->read(); |
| 2218 | 2226 | if (!m_c8080bw_flip_screen) return data; |
| 2219 | 2227 | return (data & 0x3b) | ioport("P2")->read(); |
| 2220 | 2228 | } |
| 2221 | 2229 | |
| 2222 | | WRITE8_MEMBER( _8080bw_state::shuttlei_ff_w ) |
| 2230 | WRITE8_MEMBER(_8080bw_state::shuttlei_ff_w) |
| 2223 | 2231 | { |
| 2224 | 2232 | /* bit 0 goes high when first coin inserted |
| 2225 | 2233 | bit 1 also goes high when subsequent coins are inserted |
| r19602 | r19603 | |
| 2248 | 2256 | |
| 2249 | 2257 | /* basic machine hardware */ |
| 2250 | 2258 | MCFG_CPU_ADD("maincpu", I8080, XTAL_18MHz / 10) // divider guessed |
| 2259 | // TODO: move irq handling away from mw8080.c, this game runs on custom hardware |
| 2251 | 2260 | MCFG_CPU_PROGRAM_MAP(shuttlei_map) |
| 2252 | 2261 | MCFG_CPU_IO_MAP(shuttlei_io_map) |
| 2253 | 2262 | |