Previous 199869 Revisions Next

r17700 Friday 7th September, 2012 at 17:34:33 UTC by Curt Coder
(MESS) mos6566: Refactored to use an rgb32 bitmap. (nw)
[src/mess/drivers]vic10.c
[src/mess/video]mos6566.c mos6566.h

trunk/src/mess/video/mos6566.c
r17699r17700
471471            c = 0;
472472            break;
473473      }
474      m_bitmap->plot_box(m_graphic_x, VIC2_RASTER_2_EMU(m_rasterline), 8, 1, c);
474      m_bitmap.plot_box(m_graphic_x, VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[c]);
475475   }
476476}
477477
r17699r17700
483483   c[0] = c0;
484484   c[1] = c1;
485485
486   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 7) = c[data & 1];
486   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 7) = PALETTE[c[data & 1]];
487487   m_fore_coll_buf[p + 7] = data & 1; data >>= 1;
488   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 6) = c[data & 1];
488   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 6) = PALETTE[c[data & 1]];
489489   m_fore_coll_buf[p + 6] = data & 1; data >>= 1;
490   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 5) = c[data & 1];
490   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 5) = PALETTE[c[data & 1]];
491491   m_fore_coll_buf[p + 5] = data & 1; data >>= 1;
492   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 4) = c[data & 1];
492   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 4) = PALETTE[c[data & 1]];
493493   m_fore_coll_buf[p + 4] = data & 1; data >>= 1;
494   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 3) = c[data & 1];
494   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 3) = PALETTE[c[data & 1]];
495495   m_fore_coll_buf[p + 3] = data & 1; data >>= 1;
496   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 2) = c[data & 1];
496   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 2) = PALETTE[c[data & 1]];
497497   m_fore_coll_buf[p + 2] = data & 1; data >>= 1;
498   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 1) = c[data & 1];
498   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 1) = PALETTE[c[data & 1]];
499499   m_fore_coll_buf[p + 1] = data & 1; data >>= 1;
500   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 0) = c[data];
500   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 0) = PALETTE[c[data]];
501501   m_fore_coll_buf[p + 0] = data & 1;
502502}
503503
r17699r17700
511511   c[2] = c2;
512512   c[3] = c3;
513513
514   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 7) = c[data & 3];
514   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 7) = PALETTE[c[data & 3]];
515515   m_fore_coll_buf[p + 7] = data & 2;
516   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 6) = c[data & 3];
516   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 6) = PALETTE[c[data & 3]];
517517   m_fore_coll_buf[p + 6] = data & 2; data >>= 2;
518   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 5) = c[data & 3];
518   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 5) = PALETTE[c[data & 3]];
519519   m_fore_coll_buf[p + 5] = data & 2;
520   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 4) = c[data & 3];
520   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 4) = PALETTE[c[data & 3]];
521521   m_fore_coll_buf[p + 4] = data & 2; data >>= 2;
522   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 3) = c[data & 3];
522   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 3) = PALETTE[c[data & 3]];
523523   m_fore_coll_buf[p + 3] = data & 2;
524   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 2) = c[data & 3];
524   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 2) = PALETTE[c[data & 3]];
525525   m_fore_coll_buf[p + 2] = data & 2; data >>= 2;
526   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 1) = c[data];
526   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 1) = PALETTE[c[data]];
527527   m_fore_coll_buf[p + 1] = data & 2;
528   m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 0) = c[data];
528   m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 0) = PALETTE[c[data]];
529529   m_fore_coll_buf[p + 0] = data & 2;
530530}
531531
r17699r17700
626626   m_cpu = machine().device<cpu_device>(m_cpu_tag);
627627
628628   m_screen = machine().device<screen_device>(m_screen_tag);
629   int width = m_screen->width();
630   int height = m_screen->height();
629   m_screen->register_screen_bitmap(m_bitmap);
631630
632   m_bitmap = auto_bitmap_ind16_alloc(machine(), width, height);
633
634   // initialize palette
635   palette_set_colors(machine(), 0, PALETTE, ARRAY_LENGTH(PALETTE));
636
637631   for (int i = 0; i < 256; i++)
638632   {
639633      m_expandx[i] = 0;
r17699r17700
749743
750744void mos6566_device::device_reset()
751745{
752   int i, j;
753
754746   memset(m_reg, 0, ARRAY_LENGTH(m_reg));
755747
756   for (i = 0; i < ARRAY_LENGTH(m_mc); i++)
748   for (int i = 0; i < ARRAY_LENGTH(m_mc); i++)
757749      m_mc[i] = 63;
758750
759751   // from 0 to 311 (0 first, PAL) or from 0 to 261 (? first, NTSC 6567R56A) or from 0 to 262 (? first, NTSC 6567R8)
r17699r17700
802794   memset(m_border_on_sample, 0, ARRAY_LENGTH(m_border_on_sample));
803795   memset(m_border_color_sample, 0, ARRAY_LENGTH(m_border_color_sample));
804796
805   for (i = 0; i < 8; i++)
797   for (int i = 0; i < 8; i++)
806798   {
807799      m_spr_ptr[i] = 0;
808800      m_mc_base[i] = 0;
809801      m_mc[i] = 0;
810      for (j = 0; j < 4; j++)
802     
803      for (int j = 0; j < 4; j++)
811804      {
812805         m_spr_draw_data[i][j] = 0;
813806         m_spr_data[i][j] = 0;
814807      }
815808   }
809
810   for (int i = 0; i < 4; i++)
811   {
812      m_colors[i] = 0;
813      m_spritemulti[i] = 0;
814   }
816815}
817816
818817
r17699r17700
13251324
13261325            if (m_border_on_sample[0])
13271326               for (i = 0; i < 4; i++)
1328                  m_bitmap->plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, m_border_color_sample[i]);
1327                  m_bitmap.plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[m_border_color_sample[i]]);
13291328
13301329            if (m_border_on_sample[1])
1331               m_bitmap->plot_box(VIC2_X_2_EMU(4 * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, m_border_color_sample[4]);
1330               m_bitmap.plot_box(VIC2_X_2_EMU(4 * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[m_border_color_sample[4]]);
13321331
13331332            if (m_border_on_sample[2])
13341333               for (i = 5; i < 43; i++)
1335                  m_bitmap->plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, m_border_color_sample[i]);
1334                  m_bitmap.plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[m_border_color_sample[i]]);
13361335
13371336            if (m_border_on_sample[3])
1338               m_bitmap->plot_box(VIC2_X_2_EMU(43 * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, m_border_color_sample[43]);
1337               m_bitmap.plot_box(VIC2_X_2_EMU(43 * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[m_border_color_sample[43]]);
13391338
13401339            if (m_border_on_sample[4])
13411340            {
13421341               for (i = 44; i < 48; i++)
1343                  m_bitmap->plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, m_border_color_sample[i]);
1342                  m_bitmap.plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[m_border_color_sample[i]]);
13441343               for (i = 48; i < 53; i++)
1345                  m_bitmap->plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, m_border_color_sample[47]);
1344                  m_bitmap.plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[m_border_color_sample[47]]);
13461345            }
13471346         }
13481347
r17699r17700
19481947
19491948            if (m_border_on_sample[0])
19501949               for (i = 0; i < 4; i++)
1951                  m_bitmap->plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, m_border_color_sample[i]);
1950                  m_bitmap.plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[m_border_color_sample[i]]);
19521951
19531952            if (m_border_on_sample[1])
1954               m_bitmap->plot_box(VIC2_X_2_EMU(4 * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, m_border_color_sample[4]);
1953               m_bitmap.plot_box(VIC2_X_2_EMU(4 * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[m_border_color_sample[4]]);
19551954
19561955            if (m_border_on_sample[2])
19571956               for (i = 5; i < 43; i++)
1958                  m_bitmap->plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, m_border_color_sample[i]);
1957                  m_bitmap.plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[m_border_color_sample[i]]);
19591958
19601959            if (m_border_on_sample[3])
1961               m_bitmap->plot_box(VIC2_X_2_EMU(43 * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, m_border_color_sample[43]);
1960               m_bitmap.plot_box(VIC2_X_2_EMU(43 * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[m_border_color_sample[43]]);
19621961
19631962            if (m_border_on_sample[4])
19641963            {
19651964               for (i = 44; i < 48; i++)
1966                  m_bitmap->plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, m_border_color_sample[i]);
1965                  m_bitmap.plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[m_border_color_sample[i]]);
19671966               for (i = 48; i < 51; i++)
1968                  m_bitmap->plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, m_border_color_sample[47]);
1967                  m_bitmap.plot_box(VIC2_X_2_EMU(i * 8), VIC2_RASTER_2_EMU(m_rasterline), 8, 1, PALETTE[m_border_color_sample[47]]);
19691968            }
19701969         }
19711970
r17699r17700
20982097            vic2_draw_mono(p, tmp_col, m_color_data & 0x0f);
20992098            break;
21002099         case 5:
2101            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 7) = 0;
2100            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 7) = PALETTE[0];
21022101            m_fore_coll_buf[p + 7] = 0;
2103            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 6) = 0;
2102            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 6) = PALETTE[0];
21042103            m_fore_coll_buf[p + 6] = 0;
2105            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 5) = 0;
2104            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 5) = PALETTE[0];
21062105            m_fore_coll_buf[p + 5] = 0;
2107            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 4) = 0;
2106            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 4) = PALETTE[0];
21082107            m_fore_coll_buf[p + 4] = 0;
2109            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 3) = 0;
2108            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 3) = PALETTE[0];
21102109            m_fore_coll_buf[p + 3] = 0;
2111            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 2) = 0;
2110            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 2) = PALETTE[0];
21122111            m_fore_coll_buf[p + 2] = 0;
2113            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 1) = 0;
2112            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 1) = PALETTE[0];
21142113            m_fore_coll_buf[p + 1] = 0;
2115            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 0) = 0;
2114            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 0) = PALETTE[0];
21162115            m_fore_coll_buf[p + 0] = 0;
21172116            break;
21182117         case 6:
2119            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 7) = 0;
2118            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 7) = PALETTE[0];
21202119            m_fore_coll_buf[p + 7] = 0;
2121            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 6) = 0;
2120            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 6) = PALETTE[0];
21222121            m_fore_coll_buf[p + 6] = 0;
2123            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 5) = 0;
2122            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 5) = PALETTE[0];
21242123            m_fore_coll_buf[p + 5] = 0;
2125            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 4) = 0;
2124            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 4) = PALETTE[0];
21262125            m_fore_coll_buf[p + 4] = 0;
2127            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 3) = 0;
2126            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 3) = PALETTE[0];
21282127            m_fore_coll_buf[p + 3] = 0;
2129            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 2) = 0;
2128            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 2) = PALETTE[0];
21302129            m_fore_coll_buf[p + 2] = 0;
2131            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 1) = 0;
2130            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 1) = PALETTE[0];
21322131            m_fore_coll_buf[p + 1] = 0;
2133            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 0) = 0;
2132            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 0) = PALETTE[0];
21342133            m_fore_coll_buf[p + 0] = 0;
21352134            break;
21362135         case 7:
2137            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 7) = 0;
2136            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 7) = PALETTE[0];
21382137            m_fore_coll_buf[p + 7] = 0;
2139            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 6) = 0;
2138            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 6) = PALETTE[0];
21402139            m_fore_coll_buf[p + 6] = 0;
2141            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 5) = 0;
2140            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 5) = PALETTE[0];
21422141            m_fore_coll_buf[p + 5] = 0;
2143            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 4) = 0;
2142            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 4) = PALETTE[0];
21442143            m_fore_coll_buf[p + 4] = 0;
2145            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 3) = 0;
2144            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 3) = PALETTE[0];
21462145            m_fore_coll_buf[p + 3] = 0;
2147            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 2) = 0;
2146            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 2) = PALETTE[0];
21482147            m_fore_coll_buf[p + 2] = 0;
2149            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 1) = 0;
2148            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 1) = PALETTE[0];
21502149            m_fore_coll_buf[p + 1] = 0;
2151            m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + 0) = 0;
2150            m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + 0) = PALETTE[0];
21522151            m_fore_coll_buf[p + 0] = 0;
21532152            break;
21542153      }
r17699r17700
22232222                     if (SPRITE_PRIORITY(snum))
22242223                     {
22252224                        if (m_fore_coll_buf[p + i] == 0)
2226                           m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + i) = col;
2225                           m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + i) = PALETTE[col];
22272226                        m_spr_coll_buf[p + i] = sbit;
22282227                     }
22292228                     else
22302229                     {
2231                        m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + i) = col;
2230                        m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + i) = PALETTE[col];
22322231                        m_spr_coll_buf[p + i] = sbit;
22332232                     }
22342233                  }
r17699r17700
22712270                     if (SPRITE_PRIORITY(snum))
22722271                     {
22732272                        if (m_fore_coll_buf[p + i] == 0)
2274                           m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + i) = col;
2273                           m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + i) = PALETTE[col];
22752274                        m_spr_coll_buf[p + i] = sbit;
22762275                     }
22772276                     else
22782277                     {
2279                        m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + i) = col;
2278                        m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + i) = PALETTE[col];
22802279                        m_spr_coll_buf[p + i] = sbit;
22812280                     }
22822281                  }
r17699r17700
23022301                        if (SPRITE_PRIORITY(snum))
23032302                        {
23042303                           if (m_fore_coll_buf[p + i] == 0)
2305                              m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + i) = color;
2304                              m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + i) = PALETTE[color];
23062305                           m_spr_coll_buf[p + i] = sbit;
23072306                        }
23082307                        else
23092308                        {
2310                           m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + i) = color;
2309                           m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + i) = PALETTE[color];
23112310                           m_spr_coll_buf[p + i] = sbit;
23122311                        }
23132312                     }
r17699r17700
23282327                        if (SPRITE_PRIORITY(snum))
23292328                        {
23302329                           if (m_fore_coll_buf[p + i] == 0)
2331                              m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + i) = color;
2330                              m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + i) = PALETTE[color];
23322331                           m_spr_coll_buf[p + i] = sbit;
23332332                        }
23342333                        else
23352334                        {
2336                           m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + i) = color;
2335                           m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + i) = PALETTE[color];
23372336                           m_spr_coll_buf[p + i] = sbit;
23382337                        }
23392338                     }
r17699r17700
23832382                     if (SPRITE_PRIORITY(snum))
23842383                     {
23852384                        if (m_fore_coll_buf[p + i] == 0)
2386                           m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + i) = col;
2385                           m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + i) = PALETTE[col];
23872386                        m_spr_coll_buf[p + i] = sbit;
23882387                     }
23892388                     else
23902389                     {
2391                        m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + i) = col;
2390                        m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + i) = PALETTE[col];
23922391                        m_spr_coll_buf[p + i] = sbit;
23932392                     }
23942393                  }
r17699r17700
24132412                        if (SPRITE_PRIORITY(snum))
24142413                        {
24152414                           if (m_fore_coll_buf[p + i] == 0)
2416                              m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + i) = color;
2415                              m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + i) = PALETTE[color];
24172416                           m_spr_coll_buf[p + i] = sbit;
24182417                        }
24192418                        else
24202419                        {
2421                           m_bitmap->pix16(VIC2_RASTER_2_EMU(m_rasterline), p + i) = color;
2420                           m_bitmap.pix32(VIC2_RASTER_2_EMU(m_rasterline), p + i) = PALETTE[color];
24222421                           m_spr_coll_buf[p + i] = sbit;
24232422                        }
24242423                     }
r17699r17700
24532452//  screen_update -
24542453//-------------------------------------------------
24552454
2456UINT32 mos6566_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2455UINT32 mos6566_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
24572456{
2457   bitmap.fill(PALETTE[0], cliprect);
2458
24582459   if (m_on)
2459      copybitmap(bitmap, *m_bitmap, 0, 0, 0, 0, cliprect);
2460      copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
24602461
24612462   return 0;
24622463}
r17699r17700
27932794      if (IS_VICIIE)
27942795      {
27952796         m_reg[offset] = data;
2797         m_on = !BIT(data, 0);
27962798      }
27972799      break;
27982800
trunk/src/mess/video/mos6566.h
r17699r17700
100100   MCFG_SCREEN_REFRESH_RATE(VIC6566_VRETRACERATE) \
101101   MCFG_SCREEN_SIZE(VIC6567_COLUMNS, VIC6567_LINES) \
102102   MCFG_SCREEN_VISIBLE_AREA(0, VIC6567_VISIBLECOLUMNS - 1, 0, VIC6567_VISIBLELINES - 1) \
103   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos6566_device, screen_update) \
104   MCFG_PALETTE_LENGTH(16)
103   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos6566_device, screen_update)
105104
106105#define MCFG_MOS6567_ADD(_tag, _screen_tag, _clock, _config, _videoram_map, _colorram_map) \
107106   MCFG_DEVICE_ADD(_tag, MOS6567, _clock) \
r17699r17700
112111   MCFG_SCREEN_REFRESH_RATE(VIC6567_VRETRACERATE) \
113112   MCFG_SCREEN_SIZE(VIC6567_COLUMNS, VIC6567_LINES) \
114113   MCFG_SCREEN_VISIBLE_AREA(0, VIC6567_VISIBLECOLUMNS - 1, 0, VIC6567_VISIBLELINES - 1) \
115   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos6567_device, screen_update) \
116   MCFG_PALETTE_LENGTH(16)
114   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos6567_device, screen_update)
117115
118116#define MCFG_MOS8562_ADD(_tag, _screen_tag, _clock, _config, _videoram_map, _colorram_map) \
119117   MCFG_DEVICE_ADD(_tag, MOS8562, _clock) \
r17699r17700
124122   MCFG_SCREEN_REFRESH_RATE(VIC6567_VRETRACERATE) \
125123   MCFG_SCREEN_SIZE(VIC6567_COLUMNS, VIC6567_LINES) \
126124   MCFG_SCREEN_VISIBLE_AREA(0, VIC6567_VISIBLECOLUMNS - 1, 0, VIC6567_VISIBLELINES - 1) \
127   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos8562_device, screen_update) \
128   MCFG_PALETTE_LENGTH(16)
125   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos8562_device, screen_update)
129126
130127#define MCFG_MOS8564_ADD(_tag, _screen_tag, _clock, _config, _videoram_map, _colorram_map) \
131128   MCFG_DEVICE_ADD(_tag, MOS8564, _clock) \
r17699r17700
136133   MCFG_SCREEN_REFRESH_RATE(VIC6567_VRETRACERATE) \
137134   MCFG_SCREEN_SIZE(VIC6567_COLUMNS, VIC6567_LINES) \
138135   MCFG_SCREEN_VISIBLE_AREA(0, VIC6567_VISIBLECOLUMNS - 1, 0, VIC6567_VISIBLELINES - 1) \
139   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos8562_device, screen_update) \
140   MCFG_PALETTE_LENGTH(16+16) // 16 for VIC, 16 for VDC
136   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos8562_device, screen_update)
141137
142138#define MCFG_MOS6569_ADD(_tag, _screen_tag, _clock, _config, _videoram_map, _colorram_map) \
143139   MCFG_DEVICE_ADD(_tag, MOS6569, _clock) \
r17699r17700
148144   MCFG_SCREEN_REFRESH_RATE(VIC6569_VRETRACERATE) \
149145   MCFG_SCREEN_SIZE(VIC6569_COLUMNS, VIC6569_LINES) \
150146   MCFG_SCREEN_VISIBLE_AREA(0, VIC6569_VISIBLECOLUMNS - 1, 0, VIC6569_VISIBLELINES - 1) \
151   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos6569_device, screen_update) \
152   MCFG_PALETTE_LENGTH(16)
147   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos6569_device, screen_update)
153148
154149#define MCFG_MOS8565_ADD(_tag, _screen_tag, _clock, _config, _videoram_map, _colorram_map) \
155150   MCFG_DEVICE_ADD(_tag, MOS8565, _clock) \
r17699r17700
160155   MCFG_SCREEN_REFRESH_RATE(VIC6569_VRETRACERATE) \
161156   MCFG_SCREEN_SIZE(VIC6569_COLUMNS, VIC6569_LINES) \
162157   MCFG_SCREEN_VISIBLE_AREA(0, VIC6569_VISIBLECOLUMNS - 1, 0, VIC6569_VISIBLELINES - 1) \
163   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos8565_device, screen_update) \
164   MCFG_PALETTE_LENGTH(16)
158   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos8565_device, screen_update)
165159
166160#define MCFG_MOS8566_ADD(_tag, _screen_tag, _clock, _config, _videoram_map, _colorram_map) \
167161   MCFG_DEVICE_ADD(_tag, MOS8566, _clock) \
r17699r17700
172166   MCFG_SCREEN_REFRESH_RATE(VIC6569_VRETRACERATE) \
173167   MCFG_SCREEN_SIZE(VIC6569_COLUMNS, VIC6569_LINES) \
174168   MCFG_SCREEN_VISIBLE_AREA(0, VIC6569_VISIBLECOLUMNS - 1, 0, VIC6569_VISIBLELINES - 1) \
175   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos8565_device, screen_update) \
176   MCFG_PALETTE_LENGTH(16+16) // 16 for VIC, 16 for VDC
169   MCFG_SCREEN_UPDATE_DEVICE(_tag, mos8565_device, screen_update)
177170
178171
179172#define MOS6566_INTERFACE(_name) \
r17699r17700
327320
328321   UINT8 bus_r();
329322
330   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
323   UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
331324
332325protected:
333326   enum
r17699r17700
390383
391384   UINT16 m_chargenaddr, m_videoaddr, m_bitmapaddr;
392385
393   bitmap_ind16 *m_bitmap;
386   bitmap_rgb32 m_bitmap;
394387
395388   UINT16 m_colors[4], m_spritemulti[4];
396389
trunk/src/mess/drivers/vic10.c
r17699r17700
659659//  GAME DRIVERS
660660//**************************************************************************
661661
662COMP( 1982, vic10,      0,    0,    vic10, vic10, driver_device,     0, "Commodore Business Machines", "VIC-10 / Max Machine / UltiMax (NTSC)", GAME_NOT_WORKING )
662COMP( 1982, vic10,      0,    0,    vic10, vic10, driver_device,     0, "Commodore Business Machines", "VIC-10 / Max Machine / UltiMax (NTSC)", GAME_SUPPORTS_SAVE )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team