Previous 199869 Revisions Next

r21518 Friday 1st March, 2013 at 15:35:38 UTC by Angelo Salese
Tied colors to drawing routines, and added transparent pen
[src/mame/drivers]gunpey.c

trunk/src/mame/drivers/gunpey.c
r21517r21518
287287               for(int xi=0;xi<width/2;xi++)
288288               {
289289                  UINT8 data = vram[((((ysource+yi)&0x7ff)*0x800) + ((xsource+xi)&0x7ff))];
290
291290                  UINT8 pix;
291                  UINT32 col_offs;
292                  UINT16 color_data;
292293
293294                  pix = (data & 0x0f);
295                  col_offs = ((pix + color*0x10) & 0xff) << 1;
296                  col_offs+= ((pix + color*0x10) >> 8)*0x800;
297                  color_data = (vram[col_offs])|(vram[col_offs+1]<<8);
294298
299                  if(!(color_data & 0x8000))
295300                  if(cliprect.contains(x+(xi*2), y+yi))
296                     bitmap.pix16(y+yi, x+(xi*2)) = pix + color*0x10;
301                     bitmap.pix16(y+yi, x+(xi*2)) = color_data & 0x7fff;
297302
298303                  pix = (data & 0xf0)>>4;
304                  col_offs = ((pix + color*0x10) & 0xff) << 1;
305                  col_offs+= ((pix + color*0x10) >> 8)*0x800;
306                  color_data = (vram[col_offs])|(vram[col_offs+1]<<8);
299307
308                  if(!(color_data & 0x8000))
300309                  if(cliprect.contains(x+1+(xi*2), y+yi))
301                     bitmap.pix16(y+yi, x+1+(xi*2)) = pix + color*0x10;
310                     bitmap.pix16(y+yi, x+1+(xi*2)) = color_data & 0x7fff;
302311               }
303312            }
304313         }
r21517r21518
311320               {
312321                  UINT8 data = vram[((((ysource+yi)&0x7ff)*0x800) + ((xsource+xi)&0x7ff))];
313322                  UINT8 pix;
323                  UINT32 col_offs;
324                  UINT16 color_data;
314325
315326                  pix = (data & 0x3f);
316327
r21517r21518
328339               {
329340                  UINT8 data = vram[((((ysource+yi)&0x7ff)*0x800) + ((xsource+xi)&0x7ff))];
330341                  UINT8 pix;
342                  UINT32 col_offs;
343                  UINT16 color_data;
331344
332345                  pix = (data & 0xff);
346                  col_offs = ((pix + color*0x100) & 0xff) << 1;
347                  col_offs+= ((pix + color*0x100) >> 8)*0x800;
348                  color_data = (vram[col_offs])|(vram[col_offs+1]<<8);
333349
350                  if(!(color_data & 0x8000))
334351                  if(cliprect.contains(x+xi, y+yi))
335                     bitmap.pix16(y+yi, x+xi) = pix + color*0x100;
352                     bitmap.pix16(y+yi, x+xi) = color_data & 0x7fff;
336353               }
337354            }
338355         }
r21517r21518
399416   gunpey_irq_check(4);
400417}
401418
419//flush_pal_data((dstx+x) & 0x7fe,(dsty+y) & 0x7ff);
420
402421void gunpey_state::flush_pal_data(int x, int y)
403422{
404423   if(y < 512 && x < 512)
r21517r21518
466485         for (int x=0;x<xsize;x++)
467486         {
468487            vram[(((dsty+y)&0x7ff)*0x800)+((dstx+x)&0x7ff)] = blit_rom[(((srcy+y)&0x7ff)*0x800)+((srcx+x)&0x7ff)];
469            flush_pal_data((dstx+x) & 0x7fe,(dsty+y) & 0x7ff);
488            //flush_pal_data((dstx+x) & 0x7fe,(dsty+y) & 0x7ff);
470489         }
471490      }
472491
r21517r21518
620639
621640/***************************************************************************************/
622641
623/* test hack */
624642void gunpey_state::palette_init()
625643{
626   #if 0
627   int i,r,g,b,val;
628   UINT8 *blit_rom = memregion("blit_data")->base();
644   int i;
629645
630   for (i = 0; i < 512; i+=2)
631   {
632      val = (blit_rom[i+0x3B1DFD]) | (blit_rom[i+0x3B1DFD+1]<<8);
633
634      b = (val & 0x001f) >> 0;
635      b<<=3;
636      g = (val & 0x03e0) >> 5;
637      g<<=3;
638      r = (val & 0x7c00) >> 10;
639      r<<=3;
640
641      palette_set_color(machine(), i/2, MAKE_RGB(r, g, b));
642   }
643   #endif
646   for (i = 0; i < 0x8000; i++)
647      palette_set_color(machine(), i, MAKE_RGB( pal5bit((i >> 10)&0x1f), pal5bit(((i >> 5))&0x1f), pal5bit((i >> 0)&0x1f)));
644648}
645649
646650
647651/*:
6486520x01
6496530x04 blitter ready
6500x10 vblank too?
6540x10 vblank too? (otherwise you'll get various hangs/inputs stop to work)
6516550x40 almost certainly vblank (reads inputs)
6526560x80
653657*/

Previous 199869 Revisions Next


© 1997-2024 The MAME Team