trunk/src/mame/drivers/8080bw.c
r22734 | r22735 | |
2007 | 2007 | /*******************************************************/ |
2008 | 2008 | /* */ |
2009 | 2009 | /* Taito "Indian battle" */ |
| 2010 | /* In "indianbtbr", the "number of animals" dipswitch */ |
| 2011 | /* is ineffective because they compare for 8 kills at */ |
| 2012 | /* 0x811, which is not possible. This byte should be */ |
| 2013 | /* 0x03. */ |
2010 | 2014 | /* */ |
2011 | 2015 | /*******************************************************/ |
2012 | 2016 | |
r22734 | r22735 | |
2042 | 2046 | INVADERS_CAB_TYPE_PORT |
2043 | 2047 | INPUT_PORTS_END |
2044 | 2048 | |
| 2049 | static INPUT_PORTS_START( indianbtbr ) |
| 2050 | PORT_START("IN0") |
| 2051 | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) |
| 2052 | PORT_DIPSETTING( 0x00, "3" ) |
| 2053 | PORT_DIPSETTING( 0x01, "4" ) |
| 2054 | PORT_DIPSETTING( 0x02, "5" ) |
| 2055 | PORT_DIPSETTING( 0x03, "6" ) |
| 2056 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 2057 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 2058 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 2059 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) //Enable color map to be in C400-DFFF |
| 2060 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 2061 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) //Length of manufacturer's logo (0x11 or 0x16) |
2045 | 2062 | |
| 2063 | PORT_START("IN1") |
| 2064 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 2065 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) |
| 2066 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) |
| 2067 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 2068 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| 2069 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY |
| 2070 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY |
| 2071 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2072 | |
| 2073 | PORT_START("IN2") |
| 2074 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 2075 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 2076 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 2077 | PORT_DIPNAME(0x08, 0x00, "Invulnerability (Cheat)") |
| 2078 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 2079 | PORT_DIPSETTING( 0x08, DEF_STR( On ) ) |
| 2080 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) |
| 2081 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2) |
| 2082 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2) |
| 2083 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 2084 | |
| 2085 | /* Dummy port for cocktail mode */ |
| 2086 | INVADERS_CAB_TYPE_PORT |
| 2087 | INPUT_PORTS_END |
| 2088 | |
| 2089 | |
2046 | 2090 | /* |
2047 | 2091 | Protection / sound hw checks ? |
2048 | 2092 | |
r22734 | r22735 | |
2075 | 2119 | return machine().rand(); |
2076 | 2120 | } |
2077 | 2121 | |
| 2122 | READ8_MEMBER(_8080bw_state::indianbtbr_01_r) |
| 2123 | { |
| 2124 | UINT8 data = ioport("IN1")->read(); |
| 2125 | if (!m_flip_screen) return data; |
| 2126 | return (data & 0x8f) | (ioport("IN2")->read() & 0x70); |
| 2127 | } |
| 2128 | |
2078 | 2129 | static ADDRESS_MAP_START( indianbt_io_map, AS_IO, 8, _8080bw_state ) |
2079 | 2130 | AM_RANGE(0x00, 0x00) AM_READ(indianbt_r) |
2080 | 2131 | AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") |
r22734 | r22735 | |
2082 | 2133 | AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(indianbt_sh_port_1_w) |
2083 | 2134 | AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) |
2084 | 2135 | AM_RANGE(0x05, 0x05) AM_WRITE(indianbt_sh_port_2_w) |
2085 | | AM_RANGE(0x06, 0x06) AM_WRITENOP /* sound ? */ |
| 2136 | AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) |
2086 | 2137 | AM_RANGE(0x07, 0x07) AM_WRITE(indianbt_sh_port_3_w) |
2087 | 2138 | ADDRESS_MAP_END |
2088 | 2139 | |
| 2140 | static ADDRESS_MAP_START( indianbtbr_io_map, AS_IO, 8, _8080bw_state ) |
| 2141 | AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") |
| 2142 | AM_RANGE(0x01, 0x01) AM_READ(indianbtbr_01_r) |
| 2143 | AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w) |
| 2144 | AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(indianbtbr_sh_port_1_w) |
| 2145 | AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w) |
| 2146 | AM_RANGE(0x05, 0x05) AM_WRITE(indianbtbr_sh_port_2_w) |
| 2147 | AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w) |
| 2148 | AM_RANGE(0x07, 0x07) AM_WRITENOP |
| 2149 | ADDRESS_MAP_END |
2089 | 2150 | |
| 2151 | |
2090 | 2152 | static MACHINE_CONFIG_DERIVED_CLASS( indianbt, mw8080bw_root, _8080bw_state ) |
2091 | 2153 | |
2092 | 2154 | /* basic machine hardware */ |
r22734 | r22735 | |
2109 | 2171 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
2110 | 2172 | MACHINE_CONFIG_END |
2111 | 2173 | |
| 2174 | static MACHINE_CONFIG_DERIVED_CLASS( indianbtbr, mw8080bw_root, _8080bw_state ) |
2112 | 2175 | |
| 2176 | /* basic machine hardware */ |
| 2177 | MCFG_CPU_MODIFY("maincpu") |
| 2178 | MCFG_CPU_PROGRAM_MAP(schaser_map) |
| 2179 | MCFG_CPU_IO_MAP(indianbtbr_io_map) |
| 2180 | MCFG_MACHINE_START_OVERRIDE(_8080bw_state,extra_8080bw) |
2113 | 2181 | |
| 2182 | /* add shifter */ |
| 2183 | MCFG_MB14241_ADD("mb14241") |
| 2184 | |
| 2185 | /* video hardware */ |
| 2186 | MCFG_SCREEN_MODIFY("screen") |
| 2187 | MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt) |
| 2188 | |
| 2189 | /* sound hardware */ |
| 2190 | MCFG_FRAGMENT_ADD(invaders_samples_audio) |
| 2191 | MACHINE_CONFIG_END |
| 2192 | |
| 2193 | |
| 2194 | |
2114 | 2195 | /*******************************************************/ |
2115 | 2196 | /* */ |
2116 | 2197 | /* Taito "Steel Worker" */ |
r22734 | r22735 | |
4438 | 4519 | GAME( 1981, polarisbr, polaris, polaris, polaris, driver_device, 0, ROT270, "Taito do Brasil", "Polaris (Brazil)", GAME_SUPPORTS_SAVE ) |
4439 | 4520 | GAME( 1980, ballbomb, 0, ballbomb, ballbomb, driver_device, 0, ROT270, "Taito", "Balloon Bomber", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) /* missing clouds */ |
4440 | 4521 | GAME( 1980, indianbt, 0, indianbt, indianbt, driver_device, 0, ROT270, "Taito", "Indian Battle", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) |
4441 | | GAME( 1983, indianbtbr, indianbt, indianbt, indianbt, driver_device, 0, ROT270, "Taito do Brasil", "Indian Battle (Brazil)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) |
| 4522 | GAME( 1983, indianbtbr, indianbt, indianbtbr,indianbtbr,driver_device, 0, ROT270, "Taito do Brasil", "Indian Battle (Brazil)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) |
4442 | 4523 | GAME( 1980, steelwkr, 0, steelwkr, steelwkr, driver_device, 0, ROT0 , "Taito", "Steel Worker", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) |
4443 | 4524 | GAMEL(1980?,galactic, 0, galactic, galactic, driver_device, 0, ROT270, "Taito do Brasil", "Galactica - Batalha Espacial", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_galactic ) |
4444 | 4525 | GAMEL(1980?,spacmiss, galactic, galactic, galactic, driver_device, 0, ROT270, "bootleg?", "Space Missile - Space Fighting Game", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_galactic ) |