trunk/src/mame/drivers/jongkyo.c
| r26292 | r26293 | |
| 43 | 43 | /* misc */ |
| 44 | 44 | UINT8 m_rom_bank; |
| 45 | 45 | UINT8 m_mux_data; |
| 46 | UINT8 m_flip_screen; |
| 46 | 47 | |
| 47 | 48 | /* memory pointers */ |
| 48 | 49 | required_shared_ptr<UINT8> m_videoram; |
| r26292 | r26293 | |
| 85 | 86 | for (x = 0; x < 256; x += 4) |
| 86 | 87 | { |
| 87 | 88 | int b; |
| 89 | int res_x,res_y; |
| 88 | 90 | UINT8 data1; |
| 89 | 91 | UINT8 data2; |
| 90 | 92 | UINT8 data3; |
| r26292 | r26293 | |
| 103 | 105 | |
| 104 | 106 | for (b = 0; b < 4; ++b) |
| 105 | 107 | { |
| 106 | | bitmap.pix16(255 - y, 255 - (x + b)) = ((data2 & 0x01)) + ((data2 & 0x10) >> 3) + |
| 108 | res_x = m_flip_screen ? 255 - (x + b) : (x + b); |
| 109 | res_y = m_flip_screen ? 255 - y : y; |
| 110 | bitmap.pix16(res_y, res_x) = ((data2 & 0x01)) + ((data2 & 0x10) >> 3) + |
| 107 | 111 | ((data1 & 0x01) << 2) + ((data1 & 0x10) >> 1) + |
| 108 | 112 | ((data3 & 0x01) << 4) + ((data3 & 0x10) << 1); |
| 109 | 113 | data1 >>= 1; |
| r26292 | r26293 | |
| 143 | 147 | |
| 144 | 148 | WRITE8_MEMBER(jongkyo_state::jongkyo_coin_counter_w) |
| 145 | 149 | { |
| 150 | /* bit 0 = hopper out? */ |
| 151 | |
| 146 | 152 | /* bit 1 = coin counter */ |
| 147 | 153 | coin_counter_w(machine(), 0, data & 2); |
| 148 | 154 | |
| 149 | 155 | /* bit 2 always set? */ |
| 156 | m_flip_screen = (data & 4) >> 2; |
| 150 | 157 | } |
| 151 | 158 | |
| 152 | 159 | READ8_MEMBER(jongkyo_state::input_1p_r) |
| r26292 | r26293 | |
| 244 | 251 | AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW") AM_WRITE(jongkyo_coin_counter_w) |
| 245 | 252 | AM_RANGE(0x11, 0x11) AM_READ_PORT("IN0") AM_WRITE(mux_w) |
| 246 | 253 | // W 11 select keyboard row (fe fd fb f7) |
| 254 | AM_RANGE(0x40, 0x40) AM_READNOP // unknown, if (A & 0xf) == 0x0a then a bit 0 write to 0x7520 doesn't occur |
| 247 | 255 | AM_RANGE(0x40, 0x45) AM_WRITE(bank_select_w) |
| 248 | 256 | AM_RANGE(0x46, 0x4f) AM_WRITE(unknown_w) |
| 249 | 257 | ADDRESS_MAP_END |
| r26292 | r26293 | |
| 387 | 395 | PORT_DIPNAME( 0x02, 0x00, "Memory Reset" ) |
| 388 | 396 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 389 | 397 | PORT_DIPSETTING( 0x02, DEF_STR( Yes ) ) |
| 390 | | PORT_DIPNAME( 0x04, 0x00, "Analizer" ) |
| 398 | PORT_DIPNAME( 0x04, 0x00, "Analyzer" ) |
| 391 | 399 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 392 | 400 | PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) |
| 393 | 401 | PORT_SERVICE( 0x08, IP_ACTIVE_HIGH ) |
| r26292 | r26293 | |
| 484 | 492 | { |
| 485 | 493 | m_rom_bank = 0; |
| 486 | 494 | m_mux_data = 0; |
| 495 | m_flip_screen = 1; |
| 487 | 496 | } |
| 488 | 497 | |
| 489 | 498 | |