Exemple #1
0
int picasso_palette (void)
{
  int i, changed;

  changed = 0;
  for (i = 0; i < 256; i++) {
    int r = picasso96_state.CLUT[i].Red;
    int g = picasso96_state.CLUT[i].Green;
    int b = picasso96_state.CLUT[i].Blue;
  	uae_u32 v = CONVERT_RGB(r << 16 | g << 8 | b);
	  if (v !=  picasso_vidinfo.clut[i]) {
	     picasso_vidinfo.clut[i] = v;
	     changed = 1;
	  } 
  }
  return changed;
}
Exemple #2
0
int picasso_palette(struct MyCLUTEntry *CLUT)
{
	int i, changed;

	changed = 0;
	for (i = 0; i < 256; i++) {
    int r = CLUT[i].Red;
    int g = CLUT[i].Green;
    int b = CLUT[i].Blue;
		int value = (r << 16 | g << 8 | b);
		uae_u32 v = CONVERT_RGB(value);
		if (v !=  picasso_vidinfo.clut[i]) {
			picasso_vidinfo.clut[i] = v;
			changed = 1;
		} 
	}
	return changed;
}
Exemple #3
0
static NOINLINE int LNAME (int spix, int dpix, int stoppos)
{
    TYPE *buf = ((TYPE *)xlinebuffer);
    uae_u8 xor_val;

    if (AGAC) xor_val = (uae_u8)(dp_for_drawing->bplcon4 >> 8);
    if (dp_for_drawing->ham_seen) {
	/* HAM 6 / HAM 8 */
	while (dpix < stoppos) {
	    TYPE d = AGAC ? (TYPE)CONVERT_RGB (ham_linebuf[spix]) : (TYPE)xcolors[ham_linebuf[spix]];
	    spix += SRC_INC;
	    buf[dpix++] = d;
	    if (HDOUBLE)
		buf[dpix++] = d;
	}
    } else if (bpldualpf) {
	if (AGAC) {
	    /* AGA Dual playfield */
	    int *lookup = bpldualpfpri ? dblpf_ind2_aga : dblpf_ind1_aga;
	    int *lookup_no = bpldualpfpri ? dblpf_2nd2 : dblpf_2nd1;
	    while (dpix < stoppos) {
		int pixcol = pixdata.apixels[spix];
		TYPE d;
		if (spriteagadpfpixels[spix]) {
		    d = colors_for_drawing.acolors[spriteagadpfpixels[spix]];
		    spriteagadpfpixels[spix]=0;
		} else {
		    int val = lookup[pixcol];
		    if (lookup_no[pixcol] == 2)  val += dblpfofs[bpldualpf2of];
		    /* val ^= xor; ??? */
		    d = colors_for_drawing.acolors[val];
		}
		spix += SRC_INC;
		buf[dpix++] = d;
		if (HDOUBLE)
		    buf[dpix++] = d;
	    }
	} else {
	    /* OCS/ECS Dual playfield  */
	    int *lookup = bpldualpfpri ? dblpf_ind2 : dblpf_ind1;
	    while (dpix < stoppos) {
		int pixcol = pixdata.apixels[spix];
		TYPE d = colors_for_drawing.acolors[lookup[pixcol]];
		spix += SRC_INC;
		buf[dpix++] = d;
		if (HDOUBLE)
		    buf[dpix++] = d;
	    }
	}
    } else if (bplehb) {
	while (dpix < stoppos) {
	    int p = pixdata.apixels[spix];
	    TYPE d = colors_for_drawing.acolors[p];
	    spix += SRC_INC;
	    if (AGAC) {
		/* AGA EHB playfield */
		if (p>= 32 && p < 64) /* FIXME: what about sprite colors between 32 and 64? */
		    d = (colors_for_drawing.color_regs_aga[(p-32)^xor_val] >> 1) & 0x7F7F7F;
	    } else {
		/* OCS/ECS EHB playfield */
		if (p >= 32)
		    d = xcolors[(colors_for_drawing.color_regs_ecs[p-32] >> 1) & 0x777];
	    }
	    buf[dpix++] = d;
	    if (HDOUBLE)
		buf[dpix++] = d;
	}
    } else {