trunk/src/mame/drivers/mw18w.c
| r26555 | r26556 | |
| 35 | 35 | required_device<cpu_device> m_maincpu; |
| 36 | 36 | required_device<timer_device> m_lamp_timer; |
| 37 | 37 | |
| 38 | | int m_lamps_on[5][8]; |
| 38 | int m_lamps_on[8][5]; |
| 39 | 39 | |
| 40 | 40 | DECLARE_WRITE8_MEMBER(mw18w_sound0_w); |
| 41 | 41 | DECLARE_WRITE8_MEMBER(mw18w_sound1_w); |
| r26555 | r26556 | |
| 57 | 57 | |
| 58 | 58 | WRITE8_MEMBER(mw18w_state::mw18w_sound0_w) |
| 59 | 59 | { |
| 60 | | // sound write (airhorn, brake, crash) plus motor speed for backdrop, and coin counter |
| 60 | // d0: coin counter |
| 61 | // d1: "summer" |
| 62 | // d2-d3: backdrop motor speed |
| 63 | // d4: air horn sound |
| 64 | // d5: crash sound |
| 65 | // d6-d7: brake sound |
| 66 | |
| 61 | 67 | coin_counter_w(machine(), 0, data & 1); |
| 62 | 68 | } |
| 63 | 69 | |
| 64 | 70 | WRITE8_MEMBER(mw18w_state::mw18w_sound1_w) |
| 65 | 71 | { |
| 66 | | // sound write (bell, engine) plus lamp dim control for backdrop lamp |
| 67 | | ; |
| 72 | // d0-d5: engine sound |
| 73 | // d6: bell sound |
| 74 | // d7: backdrop lamp dim control |
| 75 | |
| 76 | output_set_lamp_value(80, data >> 7 & 1); |
| 68 | 77 | } |
| 69 | 78 | |
| 70 | 79 | WRITE8_MEMBER(mw18w_state::mw18w_lamps_w) |
| r26555 | r26556 | |
| 77 | 86 | |
| 78 | 87 | // refresh lamp status |
| 79 | 88 | for (int i = 0; i < 5; i++) |
| 80 | | if (rows >> i & 1) m_lamps_on[i][col] = 100; |
| 89 | if (rows >> i & 1) m_lamps_on[col][i] = 100; |
| 81 | 90 | } |
| 82 | 91 | |
| 83 | 92 | WRITE8_MEMBER(mw18w_state::mw18w_led_display_w) |
| r26555 | r26556 | |
| 213 | 222 | TIMER_DEVICE_CALLBACK_MEMBER(mw18w_state::mw18w_update_lamps) |
| 214 | 223 | { |
| 215 | 224 | // arbitrary timer to update and output lamp matrix |
| 216 | | for (int row = 0; row < 5; row++) |
| 217 | | for (int col = 0; col < 8; col++) |
| 225 | for (int col = 0; col < 8; col++) |
| 226 | { |
| 227 | for (int row = 0; row < 5; row++) |
| 218 | 228 | { |
| 219 | 229 | if (m_lamps_on[row][col]) m_lamps_on[row][col]--; |
| 220 | | output_set_lamp_value(row * 10 + col, m_lamps_on[row][col] != 0); |
| 230 | output_set_lamp_value(col * 10 + row, m_lamps_on[col][row] != 0); |
| 221 | 231 | } |
| 232 | } |
| 233 | |
| 234 | /* lamps info: |
| 235 | |
| 236 | 00: upper right load zone |
| 237 | 01: lower right load zone |
| 238 | 02: lost cargo |
| 239 | 03: hi score |
| 240 | 04: right crash |
| 241 | |
| 242 | 10: 2 pos. load lost sequence |
| 243 | 11: 3 pos. load lost sequence |
| 244 | 12: 4 pos. load lost sequence |
| 245 | 13: 5 pos. load lost sequence |
| 246 | 14: 6 pos. load lost sequence |
| 247 | |
| 248 | 20: down shift |
| 249 | 21: pick up cargo |
| 250 | 22: ahead |
| 251 | 23: 1 pos. load lost sequence |
| 252 | 24: go |
| 253 | |
| 254 | 30: right man arm body |
| 255 | 31: right man arm down |
| 256 | 32: right man arm up |
| 257 | 33: not used |
| 258 | 34: not used |
| 259 | |
| 260 | 40: left man arm up |
| 261 | 41: left man body |
| 262 | 42: left man arm down |
| 263 | 43: left crash |
| 264 | 44: not used |
| 265 | |
| 266 | 50: 1 cargo |
| 267 | 51: 3 cargo |
| 268 | 52: 5 cargo |
| 269 | 53: 7 cargo |
| 270 | 54: not used |
| 271 | |
| 272 | 60: 2 cargo |
| 273 | 61: 4 cargo |
| 274 | 62: 6 cargo |
| 275 | 63: 8 cargo |
| 276 | 64: not used |
| 277 | |
| 278 | 70: upper left load zone |
| 279 | 71: lower left load zone |
| 280 | 72: extended play |
| 281 | 73: credit |
| 282 | 74: game over |
| 283 | |
| 284 | (80: backdrop dim) |
| 285 | |
| 286 | */ |
| 222 | 287 | } |
| 223 | 288 | |
| 224 | 289 | void mw18w_state::machine_start() |
| r26555 | r26556 | |
| 265 | 330 | |
| 266 | 331 | ROM_START( 18w2 ) |
| 267 | 332 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 268 | | ROM_LOAD( "18w_b1(__18w2).rom1",0x0000, 0x0800, CRC(cbc0fb2c) SHA1(66b14f0d76baebbd64e8ed107e536ad811d55273) ) |
| 333 | ROM_LOAD( "18w_b1(__18w2).rom1", 0x0000, 0x0800, CRC(cbc0fb2c) SHA1(66b14f0d76baebbd64e8ed107e536ad811d55273) ) |
| 269 | 334 | ROM_LOAD( "18w_b2.rom2", 0x0800, 0x0800, CRC(efbadee8) SHA1(834eaf8ca50544123de7529b90b828cf46b1c001) ) |
| 270 | 335 | ROM_LOAD( "18w_b3.rom3", 0x1000, 0x0800, CRC(214606f6) SHA1(9a9dc20259b4462661c6be410d98d2be54657a0e) ) |
| 271 | 336 | ROM_LOAD( "18w_b4.rom4", 0x1800, 0x0800, CRC(e88ad6a9) SHA1(ac010aa7e0288197ff9342801522623b64dd2a47) ) |