trunk/src/mess/video/a7800.c
| r21805 | r21806 | |
| 61 | 61 | } |
| 62 | 62 | |
| 63 | 63 | m_maria_write_mode=0; |
| 64 | | m_maria_scanline=0; |
| 65 | 64 | m_maria_dmaon=0; |
| 66 | 65 | m_maria_vblank=0x80; |
| 67 | 66 | m_maria_dll=0; |
| r21805 | r21806 | |
| 94 | 93 | UINT16 *scanline; |
| 95 | 94 | |
| 96 | 95 | /* set up scanline */ |
| 97 | | scanline = &m_bitmap.pix16(m_maria_scanline); |
| 96 | scanline = &m_bitmap.pix16(m_screen->vpos()); |
| 98 | 97 | for (i = 0; i < 320; i++) |
| 99 | 98 | scanline[i] = m_maria_backcolor; |
| 100 | 99 | |
| r21805 | r21806 | |
| 128 | 127 | |
| 129 | 128 | mode = m_maria_rm | m_maria_write_mode; |
| 130 | 129 | |
| 131 | | /*logerror("%x DL: ADR=%x width=%x hpos=%x pal=%x mode=%x ind=%x\n",m_maria_scanline,graph_adr,width,hpos,pal,mode,ind );*/ |
| 130 | /*logerror("%x DL: ADR=%x width=%x hpos=%x pal=%x mode=%x ind=%x\n",m_screen->vpos(),graph_adr,width,hpos,pal,mode,ind );*/ |
| 132 | 131 | |
| 133 | 132 | for (x=0; x<width; x++) // 20030621 ericball get graphic data first, then switch (mode) |
| 134 | 133 | { |
| r21805 | r21806 | |
| 319 | 318 | int frame_scanline; |
| 320 | 319 | UINT8 *ROM = m_region_maincpu->base(); |
| 321 | 320 | address_space& space = m_maincpu->space(AS_PROGRAM); |
| 321 | int maria_scanline = m_screen->vpos(); |
| 322 | 322 | |
| 323 | | m_maria_scanline++; |
| 324 | | |
| 325 | 323 | /* why + 1? */ |
| 326 | | frame_scanline = m_maria_scanline % ( m_lines + 1 ); |
| 324 | frame_scanline = maria_scanline % ( m_lines + 1 ); |
| 327 | 325 | |
| 328 | 326 | if( frame_scanline == 1 ) |
| 329 | 327 | { |
| r21805 | r21806 | |
| 389 | 387 | |
| 390 | 388 | if( ( frame_scanline > 15 ) && m_maria_dodma ) |
| 391 | 389 | { |
| 392 | | if (m_maria_scanline < ( m_lines - 4 ) ) |
| 390 | if (maria_scanline < ( m_lines - 4 ) ) |
| 393 | 391 | maria_draw_scanline(); |
| 394 | 392 | |
| 395 | 393 | if( m_maria_offset == 0 ) |
| r21805 | r21806 | |
| 427 | 425 | /* This routine is called at the start of vblank to refresh the screen */ |
| 428 | 426 | UINT32 a7800_state::screen_update_a7800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 429 | 427 | { |
| 430 | | m_maria_scanline = 0; |
| 431 | 428 | copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect); |
| 432 | 429 | return 0; |
| 433 | 430 | } |
trunk/src/mess/includes/a7800.h
| r21805 | r21806 | |
| 21 | 21 | , m_maincpu(*this, "maincpu") |
| 22 | 22 | , m_pokey(*this, "pokey") |
| 23 | 23 | , m_tia(*this, "tia") |
| 24 | , m_screen(*this, "screen") |
| 24 | 25 | , m_region_maincpu(*this, "maincpu") |
| 25 | 26 | , m_bank1(*this, "bank1") |
| 26 | 27 | , m_bank2(*this, "bank2") |
| r21805 | r21806 | |
| 51 | 52 | UINT8 *m_ROM; |
| 52 | 53 | int m_maria_palette[8][4]; |
| 53 | 54 | int m_maria_write_mode; |
| 54 | | int m_maria_scanline; |
| 55 | 55 | unsigned int m_maria_dll; |
| 56 | 56 | unsigned int m_maria_dl; |
| 57 | 57 | int m_maria_holey; |
| r21805 | r21806 | |
| 97 | 97 | required_device<cpu_device> m_maincpu; |
| 98 | 98 | required_device<pokey_device> m_pokey; |
| 99 | 99 | required_device<tia_device> m_tia; |
| 100 | required_device<screen_device> m_screen; |
| 100 | 101 | required_memory_region m_region_maincpu; |
| 101 | 102 | required_memory_bank m_bank1; |
| 102 | 103 | required_memory_bank m_bank2; |