|
|
| version 1.14, 2004/08/17 14:46:37 | version 1.18, 2005/02/04 06:42:12 |
|---|---|
| Line 35 static const UINT16 pal4096banktbl[2][64 | Line 35 static const UINT16 pal4096banktbl[2][64 |
| 0x101, 0x103, 0x121, 0x123, 0x301, 0x303, 0x321, 0x323, | 0x101, 0x103, 0x121, 0x123, 0x301, 0x303, 0x321, 0x323, |
| 0x110, 0x112, 0x130, 0x132, 0x310, 0x312, 0x330, 0x332, | 0x110, 0x112, 0x130, 0x132, 0x310, 0x312, 0x330, 0x332, |
| 0x111, 0x113, 0x131, 0x133, 0x311, 0x313, 0x331, 0x333}}; | 0x111, 0x113, 0x131, 0x133, 0x311, 0x313, 0x331, 0x333}}; |
| static void pal4096to64(RGB32 *pal, const UINT16 *map) { | |
| UINT r; | |
| r = 64; | |
| do { | |
| pal->d = xmil_pal32[XMILPAL_4096G + (*map++)].d; | |
| pal++; | |
| } while(--r); | |
| } | |
| #endif | #endif |
| // ---- | |
| void pal_makegrad(RGB32 *pal, int pals, UINT32 bg, UINT32 fg) { | void pal_makegrad(RGB32 *pal, int pals, UINT32 bg, UINT32 fg) { |
| Line 97 static void pal_settext(REG8 num) { | Line 109 static void pal_settext(REG8 num) { |
| pals.text[num+8].p.b = (UINT8)((pals.skipline * rgb.p.b) >> 8); | pals.text[num+8].p.b = (UINT8)((pals.skipline * rgb.p.b) >> 8); |
| pals.text[num+8].p.g = (UINT8)((pals.skipline * rgb.p.g) >> 8); | pals.text[num+8].p.g = (UINT8)((pals.skipline * rgb.p.g) >> 8); |
| pals.text[num+8].p.r = (UINT8)((pals.skipline * rgb.p.r) >> 8); | pals.text[num+8].p.r = (UINT8)((pals.skipline * rgb.p.r) >> 8); |
| makescrn.palandply = 1; | crtc.e.palandply = 1; |
| } | } |
| #else | #else |
| void pal_settext(REG8 num) { | void pal_settext(REG8 num) { |
| Line 136 void pal_settext(REG8 num) { | Line 148 void pal_settext(REG8 num) { |
| pals.text[num+8].p.b = (UINT8)((pals.skipline * rgb.p.b) >> 8); | pals.text[num+8].p.b = (UINT8)((pals.skipline * rgb.p.b) >> 8); |
| pals.text[num+8].p.g = (UINT8)((pals.skipline * rgb.p.g) >> 8); | pals.text[num+8].p.g = (UINT8)((pals.skipline * rgb.p.g) >> 8); |
| pals.text[num+8].p.r = (UINT8)((pals.skipline * rgb.p.r) >> 8); | pals.text[num+8].p.r = (UINT8)((pals.skipline * rgb.p.r) >> 8); |
| makescrn.palandply = 1; | crtc.e.palandply = 1; |
| } | } |
| void pal_setgrph(REG8 bank, REG8 num) { | void pal_setgrph(REG8 bank, REG8 num) { |
| Line 173 void pal_setgrph(REG8 bank, REG8 num) { | Line 185 void pal_setgrph(REG8 bank, REG8 num) { |
| pals.grph[bank][num+8].p.g = (UINT8)((pals.skipline * rgb.p.g) >> 8); | pals.grph[bank][num+8].p.g = (UINT8)((pals.skipline * rgb.p.g) >> 8); |
| pals.grph[bank][num+8].p.r = (UINT8)((pals.skipline * rgb.p.r) >> 8); | pals.grph[bank][num+8].p.r = (UINT8)((pals.skipline * rgb.p.r) >> 8); |
| } | } |
| makescrn.palandply = 1; | crtc.e.palandply = 1; |
| } | } |
| void pal_setgrph4096(UINT num) { | void pal_setgrph4096(UINT num) { |
| Line 208 void pal_setgrph4096(UINT num) { | Line 220 void pal_setgrph4096(UINT num) { |
| xmil_pal16[XMILPAL_4096G + num] = scrnmng_makepal16(rgb); | xmil_pal16[XMILPAL_4096G + num] = scrnmng_makepal16(rgb); |
| } | } |
| #endif | #endif |
| makescrn.palandply = 1; | crtc.e.palandply = 1; |
| } | } |
| #endif | #endif |
| // ---- | // ---- |
| #if defined(SUPPORT_TURBOZ) | |
| static void pal4096to64(RGB32 *pal, const UINT16 *map) { | |
| UINT r; | |
| r = 64; | |
| do { | |
| pal->d = xmil_pal32[XMILPAL_4096G + (*map++)].d; | |
| pal++; | |
| } while(--r); | |
| } | |
| #endif | |
| void pal_update1(const UINT8 *rgbp) { | void pal_update1(const UINT8 *rgbp) { |
| UINT i; | UINT i; |
| Line 290 void pal_update1(const UINT8 *rgbp) { | Line 288 void pal_update1(const UINT8 *rgbp) { |
| } | } |
| } | } |
| } | } |
| #if defined(SUPPORT_16BPP) | |
| if (scrnmng_getbpp() == 16) { | |
| for (i=0; i<xmil_palettes; i++) { | |
| xmil_pal16[i] = scrnmng_makepal16(xmil_pal32[i]); | |
| } | |
| } | |
| #endif | |
| } | } |
| void pal_update(void) { | void pal_update(void) { |
| Line 302 void pal_update(void) { | Line 307 void pal_update(void) { |
| pal_update1(crtc.s.rgbp); | pal_update1(crtc.s.rgbp); |
| xmil_palettes = 64 + 64; | xmil_palettes = 64 + 64; |
| #else | #else |
| if (crtc.e.pal_disp & PAL_4096) { | if (!(crtc.e.dispmode & SCRN64_ENABLE)) { |
| pal_update1(crtc.s.rgbp); | |
| xmil_palettes = 64 + 64; | |
| scrndraw_changepalette(); | |
| return; | |
| } | |
| else if (crtc.e.pal_disp & PAL_4096) { | |
| switch(crtc.e.pal_disp & 0xf) { | switch(crtc.e.pal_disp & 0xf) { |
| case PAL_4096H: | case PAL_4096H: |
| pal4096to64(xmil_pal32, pal4096banktbl[0]); | pal4096to64(xmil_pal32, pal4096banktbl[0]); |
| Line 333 void pal_update(void) { | Line 344 void pal_update(void) { |
| xmil_pal32[xmil_palettes++].d = pals.text[i].d; | xmil_pal32[xmil_palettes++].d = pals.text[i].d; |
| } | } |
| } | } |
| else if ((crtc.e.dispmode & SCRN64_MASK) == SCRN64_INVALID) { | |
| pal_update1(crtc.s.rgbp); | |
| xmil_palettes = 64 + 64; | |
| } | |
| else { | else { |
| for (i=0; i<64; i++) { | for (i=0; i<64; i++) { |
| xmil_pal32[i].d = pals.grph64[crtc.e.pal_disp][i].d; | xmil_pal32[i].d = pals.grph64[crtc.e.pal_disp][i].d; |