PALETTE_INIT_MEMBER(equites_state,splndrbt) { const UINT8 *color_prom = memregion("proms")->base(); int i; machine().colortable = colortable_alloc(machine(), 256); for (i = 0; i < 0x100; i++) colortable_palette_set_color(machine().colortable, i, MAKE_RGB(pal4bit(color_prom[i]), pal4bit(color_prom[i + 0x100]), pal4bit(color_prom[i + 0x200]))); for (i = 0; i < 0x100; i++) colortable_entry_set_value(machine().colortable, i, i); // point to the bg CLUT color_prom += 0x300; for (i = 0; i < 0x80; i++) colortable_entry_set_value(machine().colortable, i + 0x100, color_prom[i] + 0x10); // point to the sprite CLUT color_prom += 0x100; for (i = 0; i < 0x100; i++) colortable_entry_set_value(machine().colortable, i + 0x180, color_prom[i]); }
/* x xB0123 xG0123 xR0123 */ PALETTE_INIT_MEMBER(dynax_state,janyuki) { const UINT8 *color_prom = memregion("proms")->base(); if (!color_prom) return; for (int i = 0; i < palette.entries(); i++) { int x = (color_prom[i] << 8) + color_prom[0x200 + i]; /* The bits are in reverse order! */ int r = BITSWAP8((x >> 0) & 0x0f, 7, 6, 5, 4, 0, 1, 2, 3); int g = BITSWAP8((x >> 5) & 0x0f, 7, 6, 5, 4, 0, 1, 2, 3); int b = BITSWAP8((x >> 10) & 0x0f, 7, 6, 5, 4, 0, 1, 2, 3); palette.set_pen_color(i, pal4bit(r), pal4bit(g), pal4bit(b)); } }
PALETTE_INIT_MEMBER(exedexes_state, exedexes) { const UINT8 *color_prom = memregion("proms")->base(); int i; /* create a lookup table for the palette */ for (i = 0; i < 0x100; i++) { int r = pal4bit(color_prom[i + 0x000]); int g = pal4bit(color_prom[i + 0x100]); int b = pal4bit(color_prom[i + 0x200]); palette.set_indirect_color(i, rgb_t(r, g, b)); } /* color_prom now points to the beginning of the lookup table */ color_prom += 0x300; /* characters use colors 0xc0-0xcf */ for (i = 0; i < 0x100; i++) { UINT8 ctabentry = color_prom[i] | 0xc0; palette.set_pen_indirect(i, ctabentry); } /* 32x32 tiles use colors 0-0x0f */ for (i = 0x100; i < 0x200; i++) { UINT8 ctabentry = color_prom[i]; palette.set_pen_indirect(i, ctabentry); } /* 16x16 tiles use colors 0x40-0x4f */ for (i = 0x200; i < 0x300; i++) { UINT8 ctabentry = color_prom[i] | 0x40; palette.set_pen_indirect(i, ctabentry); } /* sprites use colors 0x80-0xbf in four banks */ for (i = 0x300; i < 0x400; i++) { UINT8 ctabentry = color_prom[i] | (color_prom[i + 0x100] << 4) | 0x80; palette.set_pen_indirect(i, ctabentry); } }
PALETTE_INIT_MEMBER(equites_state,equites) { const UINT8 *color_prom = memregion("proms")->base(); int i; for (i = 0; i < 256; i++) palette.set_indirect_color(i, rgb_t(pal4bit(color_prom[i]), pal4bit(color_prom[i + 0x100]), pal4bit(color_prom[i + 0x200]))); // point to the CLUT color_prom += 0x380; for (i = 0; i < 256; i++) palette.set_pen_indirect(i, i); for (i = 0; i < 0x80; i++) palette.set_pen_indirect(i + 0x100, color_prom[i]); }
void punchout_state::punchout_copy_bot_palette(int bank) { int i; const UINT8 *color_prom = memregion("proms")->base() + 0x600; // bottom monitor palette for (i = 0; i < 0x100; i++) { int base = 0x100 * bank; int r, g, b; r = 255 - pal4bit(color_prom[i + 0x000 + base]); g = 255 - pal4bit(color_prom[i + 0x200 + base]); b = 255 - pal4bit(color_prom[i + 0x400 + base]); palette_set_color(machine(), (i ^ m_palette_reverse_bot) + 0x100, MAKE_RGB(r, g, b)); } }
void ikki_state::palette_init() { const UINT8 *color_prom = memregion("proms")->base(); int i; /* allocate the colortable - extra pen for the punch through pen */ machine().colortable = colortable_alloc(machine(), 0x101); /* create a lookup table for the palette */ for (i = 0; i < 0x100; i++) { int r = pal4bit(color_prom[i + 0x000]); int g = pal4bit(color_prom[i + 0x100]); int b = pal4bit(color_prom[i + 0x200]); colortable_palette_set_color(machine().colortable, i, MAKE_RGB(r, g, b)); } /* color_prom now points to the beginning of the lookup table */ color_prom += 0x300; /* sprites lookup table */ for (i = 0; i < 0x200; i++) { UINT16 ctabentry = color_prom[i] ^ 0xff; if (((i & 0x07) == 0x07) && (ctabentry == 0)) { /* punch through */ m_punch_through_pen = i; ctabentry = 0x100; } colortable_entry_set_value(machine().colortable, i, ctabentry); } /* bg lookup table */ for (i = 0x200; i < 0x400; i++) { UINT8 ctabentry = color_prom[i]; colortable_entry_set_value(machine().colortable, i, ctabentry); } }
void punchout_state::punchout_copy_bot_palette(int bank) { int i; const UINT8 *color_prom = memregion("proms")->base() + 0x600; // bottom monitor palette for (i = 0; i < 0x100; i++) { int base = 0x100 * bank; int r, g, b; r = 255 - pal4bit(color_prom[i + 0x000 + base]); g = 255 - pal4bit(color_prom[i + 0x200 + base]); b = 255 - pal4bit(color_prom[i + 0x400 + base]); m_palette->set_pen_color(i + 0x100, rgb_t(r, g, b)); // pink labeled color proms //m_palette->set_pen_color((i ^ 0xff) + 0x100, rgb_t(r, g, b)); // in case of white labeled color proms } }
AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END static PALETTE_INIT( mirderby ) { int i; for (i = 0; i < 0x100; i++) { int r,g,b; r = color_prom[0x000+i]; g = color_prom[0x100+i]; b = color_prom[0x200+i]; palette_set_color_rgb(machine,i,pal4bit(r),pal4bit(g),pal4bit(b)); } }
static void punchout_copy_bot_palette(running_machine &machine, int bank) { punchout_state *state = machine.driver_data<punchout_state>(); int i; const UINT8 *color_prom = machine.region("proms")->base() + 0x600; // bottom monitor palette for (i = 0; i < 0x100; i++) { int base = 0x100 * bank; int r, g, b; r = 255 - pal4bit(color_prom[i + 0x000 + base]); g = 255 - pal4bit(color_prom[i + 0x200 + base]); b = 255 - pal4bit(color_prom[i + 0x400 + base]); palette_set_color(machine, (i ^ state->m_palette_reverse_bot) + 0x100, MAKE_RGB(r, g, b)); } }
void gunsmoke_state::palette_init() { const UINT8 *color_prom = machine().root_device().memregion("proms")->base(); int i; /* allocate the colortable */ machine().colortable = colortable_alloc(machine(), 0x100); /* create a lookup table for the palette */ for (i = 0; i < 0x100; i++) { int r = pal4bit(color_prom[i + 0x000]); int g = pal4bit(color_prom[i + 0x100]); int b = pal4bit(color_prom[i + 0x200]); colortable_palette_set_color(machine().colortable, i, MAKE_RGB(r, g, b)); } /* color_prom now points to the beginning of the lookup table */ color_prom += 0x300; /* characters use colors 0x40-0x4f */ for (i = 0; i < 0x80; i++) { UINT8 ctabentry = color_prom[i] | 0x40; colortable_entry_set_value(machine().colortable, i, ctabentry); } /* background tiles use colors 0-0x3f */ for (i = 0x100; i < 0x200; i++) { UINT8 ctabentry = color_prom[i] | ((color_prom[i + 0x100] & 0x03) << 4); colortable_entry_set_value(machine().colortable, i - 0x80, ctabentry); } /* sprites use colors 0x80-0xff */ for (i = 0x300; i < 0x400; i++) { UINT8 ctabentry = color_prom[i] | ((color_prom[i + 0x100] & 0x07) << 4) | 0x80; colortable_entry_set_value(machine().colortable, i - 0x180, ctabentry); } }
void flower_state::palette_init() { const UINT8 *color_prom = memregion("proms")->base(); int i; /* allocate the colortable */ machine().colortable = colortable_alloc(machine(), 0x100); /* create a lookup table for the palette */ for (i = 0; i < 0x100; i++) { int r = pal4bit(color_prom[i + 0x000]); int g = pal4bit(color_prom[i + 0x100]); int b = pal4bit(color_prom[i + 0x200]); colortable_palette_set_color(machine().colortable, i, MAKE_RGB(r, g, b)); } for (i = 0; i < 0x100; i++) colortable_entry_set_value(machine().colortable, i, i); }
PALETTE_INIT_MEMBER(ikki_state, ikki) { const UINT8 *color_prom = memregion("proms")->base(); int i; /* create a lookup table for the palette */ for (i = 0; i < 0x100; i++) { int r = pal4bit(color_prom[i + 0x000]); int g = pal4bit(color_prom[i + 0x100]); int b = pal4bit(color_prom[i + 0x200]); palette.set_indirect_color(i, rgb_t(r, g, b)); } /* color_prom now points to the beginning of the lookup table */ color_prom += 0x300; /* sprites lookup table */ for (i = 0; i < 0x200; i++) { UINT16 ctabentry = color_prom[i] ^ 0xff; if (((i & 0x07) == 0x07) && (ctabentry == 0)) { /* punch through */ m_punch_through_pen = i; ctabentry = 0x100; } palette.set_pen_indirect(i, ctabentry); } /* bg lookup table */ for (i = 0x200; i < 0x400; i++) { UINT8 ctabentry = color_prom[i]; palette.set_pen_indirect(i, ctabentry); } }
PALETTE_INIT_MEMBER(gunsmoke_state, gunsmoke) { const UINT8 *color_prom = memregion("proms")->base(); int i; /* create a lookup table for the palette */ for (i = 0; i < 0x100; i++) { int r = pal4bit(color_prom[i + 0x000]); int g = pal4bit(color_prom[i + 0x100]); int b = pal4bit(color_prom[i + 0x200]); palette.set_indirect_color(i, rgb_t(r, g, b)); } /* color_prom now points to the beginning of the lookup table */ color_prom += 0x300; /* characters use colors 0x40-0x4f */ for (i = 0; i < 0x80; i++) { UINT8 ctabentry = color_prom[i] | 0x40; palette.set_pen_indirect(i, ctabentry); } /* background tiles use colors 0-0x3f */ for (i = 0x100; i < 0x200; i++) { UINT8 ctabentry = color_prom[i] | ((color_prom[i + 0x100] & 0x03) << 4); palette.set_pen_indirect(i - 0x80, ctabentry); } /* sprites use colors 0x80-0xff */ for (i = 0x300; i < 0x400; i++) { UINT8 ctabentry = color_prom[i] | ((color_prom[i + 0x100] & 0x07) << 4) | 0x80; palette.set_pen_indirect(i - 0x180, ctabentry); } }
static WRITE8_HANDLER(vroulet_paletteram_w) { /* paletteram_xxxxBBBBGGGGRRRR_be_w but... each palette has 8 colors only, not 16 as expected... */ int i,j,a,b; space->machine().generic.paletteram.u8[offset]=data; for(i=0;i<32;i++) { for(j=0;j<16;j++) { a=space->machine().generic.paletteram.u8[((i*8+j)*2)&0xff ]; b=space->machine().generic.paletteram.u8[((i*8+j)*2+1)&0xff ]; palette_set_color_rgb(space->machine(),i*16+j,pal4bit(b),pal4bit(b>>4),pal4bit(a)); } } }
static void psychic5_change_bg_palette(running_machine *machine, int color, int lo_offs, int hi_offs) { psychic5_state *state = machine->driver_data<psychic5_state>(); UINT8 r,g,b,lo,hi,ir,ig,ib,ix; rgb_t irgb; /* red,green,blue intensities */ ir = pal4bit(state->palette_intensity >> 12); ig = pal4bit(state->palette_intensity >> 8); ib = pal4bit(state->palette_intensity >> 4); ix = state->palette_intensity & 0x0f; irgb = MAKE_RGB(ir,ig,ib); lo = state->ps5_palette_ram[lo_offs]; hi = state->ps5_palette_ram[hi_offs]; /* red,green,blue component */ r = pal4bit(lo >> 4); g = pal4bit(lo); b = pal4bit(hi >> 4); /* Grey background enable */ if (state->bg_status & 2) { UINT8 val = (r + g + b) / 3; /* Grey */ /* Just leave plain grey */ palette_set_color(machine,color,jal_blend_func(MAKE_RGB(val,val,val),irgb,ix)); } else { /* Seems fishy, but the title screen would be black otherwise... */ if (!(state->title_screen & 1)) { /* Leave the world as-is */ palette_set_color(machine,color,jal_blend_func(MAKE_RGB(r,g,b),irgb,ix)); } } }
void c65_state::PalEntryFlush(UINT8 offset) { m_palette->set_pen_color(offset, pal4bit(m_palred[offset]), pal4bit(m_palgreen[offset]), pal4bit(m_palblue[offset])); }
PALETTE_INIT_MEMBER(dday_state, dday) { const UINT8 *color_prom = memregion("proms")->base(); int i; palette.set_shadow_factor(1.0 / 8); /* create a lookup table for the palette */ for (i = 0; i < 0x100; i++) { int r = pal4bit(color_prom[i + 0x000]); int g = pal4bit(color_prom[i + 0x100]); int b = pal4bit(color_prom[i + 0x200]); palette.set_indirect_color(i, rgb_t(r, g, b)); } for (i = 0; i < 0x100; i++) palette.set_pen_indirect(i, i); /* HACK!!! This table is handgenerated, but it matches the screenshot. I have no clue how it really works */ palette.set_pen_indirect(0*8+0+0, 0x00); palette.set_pen_indirect(0*8+0+1, 0x01); palette.set_pen_indirect(0*8+0+2, 0x15); palette.set_pen_indirect(0*8+0+3, 0x02); palette.set_pen_indirect(0*8+4+0, 0x00); palette.set_pen_indirect(0*8+4+1, 0x01); palette.set_pen_indirect(0*8+4+2, 0x15); palette.set_pen_indirect(0*8+4+3, 0x02); palette.set_pen_indirect(1*8+0+0, 0x04); palette.set_pen_indirect(1*8+0+1, 0x05); palette.set_pen_indirect(1*8+0+2, 0x03); palette.set_pen_indirect(1*8+0+3, 0x07); palette.set_pen_indirect(1*8+4+0, 0x04); palette.set_pen_indirect(1*8+4+1, 0x05); palette.set_pen_indirect(1*8+4+2, 0x03); palette.set_pen_indirect(1*8+4+3, 0x07); palette.set_pen_indirect(2*8+0+0, 0x08); palette.set_pen_indirect(2*8+0+1, 0x15); palette.set_pen_indirect(2*8+0+2, 0x0a); palette.set_pen_indirect(2*8+0+3, 0x03); palette.set_pen_indirect(2*8+4+0, 0x08); palette.set_pen_indirect(2*8+4+1, 0x15); palette.set_pen_indirect(2*8+4+2, 0x0a); palette.set_pen_indirect(2*8+4+3, 0x03); palette.set_pen_indirect(3*8+0+0, 0x08); palette.set_pen_indirect(3*8+0+1, 0x15); palette.set_pen_indirect(3*8+0+2, 0x0a); palette.set_pen_indirect(3*8+0+3, 0x03); palette.set_pen_indirect(3*8+4+0, 0x08); palette.set_pen_indirect(3*8+4+1, 0x15); palette.set_pen_indirect(3*8+4+2, 0x0a); palette.set_pen_indirect(3*8+4+3, 0x03); palette.set_pen_indirect(4*8+0+0, 0x10); palette.set_pen_indirect(4*8+0+1, 0x11); palette.set_pen_indirect(4*8+0+2, 0x12); palette.set_pen_indirect(4*8+0+3, 0x07); palette.set_pen_indirect(4*8+4+0, 0x10); palette.set_pen_indirect(4*8+4+1, 0x11); palette.set_pen_indirect(4*8+4+2, 0x12); palette.set_pen_indirect(4*8+4+3, 0x07); palette.set_pen_indirect(5*8+0+0, 0x1d); palette.set_pen_indirect(5*8+0+1, 0x15); palette.set_pen_indirect(5*8+0+2, 0x16); palette.set_pen_indirect(5*8+0+3, 0x1b); palette.set_pen_indirect(5*8+4+0, 0x1d); palette.set_pen_indirect(5*8+4+1, 0x15); palette.set_pen_indirect(5*8+4+2, 0x16); palette.set_pen_indirect(5*8+4+3, 0x1b); palette.set_pen_indirect(6*8+0+0, 0x1d); palette.set_pen_indirect(6*8+0+1, 0x15); palette.set_pen_indirect(6*8+0+2, 0x1a); palette.set_pen_indirect(6*8+0+3, 0x1b); palette.set_pen_indirect(6*8+4+0, 0x1d); palette.set_pen_indirect(6*8+4+1, 0x15); palette.set_pen_indirect(6*8+4+2, 0x1a); palette.set_pen_indirect(6*8+4+3, 0x1b); palette.set_pen_indirect(7*8+0+0, 0x1d); palette.set_pen_indirect(7*8+0+1, 0x02); palette.set_pen_indirect(7*8+0+2, 0x04); palette.set_pen_indirect(7*8+0+3, 0x1b); palette.set_pen_indirect(7*8+4+0, 0x1d); palette.set_pen_indirect(7*8+4+1, 0x02); palette.set_pen_indirect(7*8+4+2, 0x04); palette.set_pen_indirect(7*8+4+3, 0x1b); }
void dday_state::palette_init() { const UINT8 *color_prom = machine().root_device().memregion("proms")->base(); int i; palette_set_shadow_factor(machine(), 1.0 / 8); /* allocate the colortable */ machine().colortable = colortable_alloc(machine(), 0x100); /* create a lookup table for the palette */ for (i = 0; i < 0x100; i++) { int r = pal4bit(color_prom[i + 0x000]); int g = pal4bit(color_prom[i + 0x100]); int b = pal4bit(color_prom[i + 0x200]); colortable_palette_set_color(machine().colortable, i, MAKE_RGB(r, g, b)); } for (i = 0; i < 0x100; i++) colortable_entry_set_value(machine().colortable, i, i); /* HACK!!! This table is handgenerated, but it matches the screenshot. I have no clue how it really works */ colortable_entry_set_value(machine().colortable, 0*8+0+0, 0x00); colortable_entry_set_value(machine().colortable, 0*8+0+1, 0x01); colortable_entry_set_value(machine().colortable, 0*8+0+2, 0x15); colortable_entry_set_value(machine().colortable, 0*8+0+3, 0x02); colortable_entry_set_value(machine().colortable, 0*8+4+0, 0x00); colortable_entry_set_value(machine().colortable, 0*8+4+1, 0x01); colortable_entry_set_value(machine().colortable, 0*8+4+2, 0x15); colortable_entry_set_value(machine().colortable, 0*8+4+3, 0x02); colortable_entry_set_value(machine().colortable, 1*8+0+0, 0x04); colortable_entry_set_value(machine().colortable, 1*8+0+1, 0x05); colortable_entry_set_value(machine().colortable, 1*8+0+2, 0x03); colortable_entry_set_value(machine().colortable, 1*8+0+3, 0x07); colortable_entry_set_value(machine().colortable, 1*8+4+0, 0x04); colortable_entry_set_value(machine().colortable, 1*8+4+1, 0x05); colortable_entry_set_value(machine().colortable, 1*8+4+2, 0x03); colortable_entry_set_value(machine().colortable, 1*8+4+3, 0x07); colortable_entry_set_value(machine().colortable, 2*8+0+0, 0x08); colortable_entry_set_value(machine().colortable, 2*8+0+1, 0x15); colortable_entry_set_value(machine().colortable, 2*8+0+2, 0x0a); colortable_entry_set_value(machine().colortable, 2*8+0+3, 0x03); colortable_entry_set_value(machine().colortable, 2*8+4+0, 0x08); colortable_entry_set_value(machine().colortable, 2*8+4+1, 0x15); colortable_entry_set_value(machine().colortable, 2*8+4+2, 0x0a); colortable_entry_set_value(machine().colortable, 2*8+4+3, 0x03); colortable_entry_set_value(machine().colortable, 3*8+0+0, 0x08); colortable_entry_set_value(machine().colortable, 3*8+0+1, 0x15); colortable_entry_set_value(machine().colortable, 3*8+0+2, 0x0a); colortable_entry_set_value(machine().colortable, 3*8+0+3, 0x03); colortable_entry_set_value(machine().colortable, 3*8+4+0, 0x08); colortable_entry_set_value(machine().colortable, 3*8+4+1, 0x15); colortable_entry_set_value(machine().colortable, 3*8+4+2, 0x0a); colortable_entry_set_value(machine().colortable, 3*8+4+3, 0x03); colortable_entry_set_value(machine().colortable, 4*8+0+0, 0x10); colortable_entry_set_value(machine().colortable, 4*8+0+1, 0x11); colortable_entry_set_value(machine().colortable, 4*8+0+2, 0x12); colortable_entry_set_value(machine().colortable, 4*8+0+3, 0x07); colortable_entry_set_value(machine().colortable, 4*8+4+0, 0x10); colortable_entry_set_value(machine().colortable, 4*8+4+1, 0x11); colortable_entry_set_value(machine().colortable, 4*8+4+2, 0x12); colortable_entry_set_value(machine().colortable, 4*8+4+3, 0x07); colortable_entry_set_value(machine().colortable, 5*8+0+0, 0x1d); colortable_entry_set_value(machine().colortable, 5*8+0+1, 0x15); colortable_entry_set_value(machine().colortable, 5*8+0+2, 0x16); colortable_entry_set_value(machine().colortable, 5*8+0+3, 0x1b); colortable_entry_set_value(machine().colortable, 5*8+4+0, 0x1d); colortable_entry_set_value(machine().colortable, 5*8+4+1, 0x15); colortable_entry_set_value(machine().colortable, 5*8+4+2, 0x16); colortable_entry_set_value(machine().colortable, 5*8+4+3, 0x1b); colortable_entry_set_value(machine().colortable, 6*8+0+0, 0x1d); colortable_entry_set_value(machine().colortable, 6*8+0+1, 0x15); colortable_entry_set_value(machine().colortable, 6*8+0+2, 0x1a); colortable_entry_set_value(machine().colortable, 6*8+0+3, 0x1b); colortable_entry_set_value(machine().colortable, 6*8+4+0, 0x1d); colortable_entry_set_value(machine().colortable, 6*8+4+1, 0x15); colortable_entry_set_value(machine().colortable, 6*8+4+2, 0x1a); colortable_entry_set_value(machine().colortable, 6*8+4+3, 0x1b); colortable_entry_set_value(machine().colortable, 7*8+0+0, 0x1d); colortable_entry_set_value(machine().colortable, 7*8+0+1, 0x02); colortable_entry_set_value(machine().colortable, 7*8+0+2, 0x04); colortable_entry_set_value(machine().colortable, 7*8+0+3, 0x1b); colortable_entry_set_value(machine().colortable, 7*8+4+0, 0x1d); colortable_entry_set_value(machine().colortable, 7*8+4+1, 0x02); colortable_entry_set_value(machine().colortable, 7*8+4+2, 0x04); colortable_entry_set_value(machine().colortable, 7*8+4+3, 0x1b); }
void cedar_magnet_state::set_palette(int offset) { m_palette->set_pen_color(offset^0xff, pal4bit(m_pal_r[offset]), pal4bit(m_pal_g[offset]), pal4bit(m_pal_b[offset])); }