trunk/src/mame/drivers/jankenmn.c
| r244926 | r244927 | |
| 152 | 152 | : driver_device(mconfig, type, tag), |
| 153 | 153 | m_maincpu(*this, "maincpu") { } |
| 154 | 154 | |
| 155 | | DECLARE_CUSTOM_INPUT_MEMBER(jankenmn_hopper_status_r); |
| 156 | | DECLARE_WRITE8_MEMBER(jankenmn_lamps1_w); |
| 157 | | DECLARE_WRITE8_MEMBER(jankenmn_lamps2_w); |
| 158 | | DECLARE_WRITE8_MEMBER(jankenmn_lamps3_w); |
| 159 | 155 | required_device<cpu_device> m_maincpu; |
| 156 | |
| 157 | DECLARE_WRITE8_MEMBER(lamps1_w); |
| 158 | DECLARE_WRITE8_MEMBER(lamps2_w); |
| 159 | DECLARE_WRITE8_MEMBER(lamps3_w); |
| 160 | |
| 161 | DECLARE_CUSTOM_INPUT_MEMBER(hopper_status_r); |
| 160 | 162 | }; |
| 161 | 163 | |
| 162 | 164 | |
| r244926 | r244927 | |
| 167 | 169 | static const UINT8 led_map[16] = // 7748 IC? |
| 168 | 170 | { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x58,0x4c,0x62,0x69,0x78,0x00 }; |
| 169 | 171 | |
| 170 | | WRITE8_MEMBER(jankenmn_state::jankenmn_lamps1_w) |
| 172 | WRITE8_MEMBER(jankenmn_state::lamps1_w) |
| 171 | 173 | { |
| 172 | 174 | // hand state: d0: rock, d1: scissors, d2: paper |
| 173 | 175 | output_set_lamp_value(8, (data & 7) != 0); |
| r244926 | r244927 | |
| 183 | 185 | // d3: ? (only set if game is over) |
| 184 | 186 | } |
| 185 | 187 | |
| 186 | | WRITE8_MEMBER(jankenmn_state::jankenmn_lamps2_w) |
| 188 | WRITE8_MEMBER(jankenmn_state::lamps2_w) |
| 187 | 189 | { |
| 188 | 190 | // button LEDs: d1: paper, d2: scissors, d3: rock |
| 189 | 191 | output_set_lamp_value(2, data >> 3 & 1); |
| r244926 | r244927 | |
| 202 | 204 | output_set_digit_value(0, led_map[data & 1]); |
| 203 | 205 | } |
| 204 | 206 | |
| 205 | | WRITE8_MEMBER(jankenmn_state::jankenmn_lamps3_w) |
| 207 | WRITE8_MEMBER(jankenmn_state::lamps3_w) |
| 206 | 208 | { |
| 207 | 209 | // d1: blue rotating lamp on top of cab |
| 208 | 210 | output_set_lamp_value(15, data >> 1 & 1); |
| r244926 | r244927 | |
| 220 | 222 | // d0, d6, d7: N/C? |
| 221 | 223 | } |
| 222 | 224 | |
| 223 | | CUSTOM_INPUT_MEMBER(jankenmn_state::jankenmn_hopper_status_r) |
| 225 | CUSTOM_INPUT_MEMBER(jankenmn_state::hopper_status_r) |
| 224 | 226 | { |
| 225 | 227 | // temp workaround, needs hopper |
| 226 | 228 | return machine().rand(); |
| r244926 | r244927 | |
| 257 | 259 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Paa (Paper)") |
| 258 | 260 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 259 | 261 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN3 ) // 100 yen coin |
| 260 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jankenmn_state,jankenmn_hopper_status_r, NULL) |
| 262 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, jankenmn_state, hopper_status_r, NULL) |
| 261 | 263 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN2 ) // 10 yen coin |
| 262 | 264 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 ) // 10 yen coin |
| 263 | 265 | |
| r244926 | r244927 | |
| 315 | 317 | /* (10-13) Mode 0 - Ports A & B set as input, high C & low C as output. */ |
| 316 | 318 | MCFG_I8255_IN_PORTA_CB(IOPORT("DSW")) |
| 317 | 319 | MCFG_I8255_IN_PORTB_CB(IOPORT("IN0")) |
| 318 | | MCFG_I8255_OUT_PORTC_CB(WRITE8(jankenmn_state, jankenmn_lamps3_w)) |
| 320 | MCFG_I8255_OUT_PORTC_CB(WRITE8(jankenmn_state, lamps3_w)) |
| 319 | 321 | |
| 320 | 322 | MCFG_DEVICE_ADD("ppi8255_1", I8255, 0) |
| 321 | 323 | /* (20-23) Mode 0 - Ports A, B, high C & low C set as output. */ |
| 322 | 324 | MCFG_I8255_OUT_PORTA_CB(DEVWRITE8("dac", dac_device, write_unsigned8)) |
| 323 | | MCFG_I8255_OUT_PORTB_CB(WRITE8(jankenmn_state, jankenmn_lamps1_w)) |
| 324 | | MCFG_I8255_OUT_PORTC_CB(WRITE8(jankenmn_state, jankenmn_lamps2_w)) |
| 325 | MCFG_I8255_OUT_PORTB_CB(WRITE8(jankenmn_state, lamps1_w)) |
| 326 | MCFG_I8255_OUT_PORTC_CB(WRITE8(jankenmn_state, lamps2_w)) |
| 325 | 327 | |
| 326 | 328 | MCFG_DEVICE_ADD("ctc", Z80CTC, MASTER_CLOCK) |
| 327 | 329 | MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) |
| r244926 | r244927 | |
| 359 | 361 | *********************************************/ |
| 360 | 362 | |
| 361 | 363 | /* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS... LAYOUT */ |
| 362 | | GAMEL( 1991, jankenmn, 0, jankenmn, jankenmn, driver_device, 0, ROT0, "Sunwise", "Janken Man Kattara Ageru", 0, layout_jankenmn ) |
| 364 | GAMEL( 1991, jankenmn, 0, jankenmn, jankenmn, driver_device, 0, ROT0, "Sunwise", "Janken Man Kattara Ageru", GAME_SUPPORTS_SAVE, layout_jankenmn ) |