--- xmil/vram/palettes.c 2004/08/04 15:18:26 1.2 +++ xmil/vram/palettes.c 2004/08/07 12:10:27 1.6 @@ -1,11 +1,10 @@ #include "compiler.h" #include "scrnmng.h" #include "pccore.h" -#include "x1_io.h" -#include "x1_crtc.h" +#include "iocore.h" #include "scrndraw.h" -#include "draw.h" #include "palettes.h" +#include "makescrn.h" RGB32 x1n_pal32[256]; // xm_palette @@ -139,7 +138,7 @@ void pal_settext(REG8 num) { pals.text[num+16].p.r = (halfgrp * rgb.p.r) / 255; pals.text[num+16].p.e = num + START_EXT + 0x10; - palandply = 1; + makescrn.palandply = 1; } void pal_setgrph(REG8 bank, REG8 num) { @@ -178,7 +177,7 @@ void pal_setgrph(REG8 bank, REG8 num) { pals.grph[bank][num+8].p.r = (halfgrp * rgb.p.r) / 0xff; pals.grph[bank][num+8].p.e = num + START_EXT + 0x20; } - palandply = 1; + makescrn.palandply = 1; } void pal_setgrph4096(UINT num) { @@ -213,7 +212,7 @@ void pal_setgrph4096(UINT num) { x1z_pal16[num] = scrnmng_makepal16(rgb); } #endif - palandply = 1; + makescrn.palandply = 1; } @@ -230,7 +229,7 @@ static void pal4096to64(RGB32 *pal, cons } while(--r); } -void palettes(void) { +void pal_update(void) { int i, j; BYTE bit; @@ -270,20 +269,20 @@ void palettes(void) { } } else if ((dispmode & SCRN64_MASK) == SCRN64_INVALID) { - if ((xmilcfg.SKIP_LINE) && (!(crtc.SCRN_BITS & SCRN_24KHZ))) { + if ((xmilcfg.SKIP_LINE) && (!(crtc.s.SCRN_BITS & SCRN_24KHZ))) { skip8 = 8; skip16 = 16; } for (i=0, bit=1; i<8; i++, bit<<=1) { - if (!(crtc.EXTPALMODE & 0x80)) { + if (!(crtc.s.EXTPALMODE & 0x80)) { c = 0; - if (crtc.PAL_B & bit) { + if (crtc.s.PAL_B & bit) { c |= 1; } - if (crtc.PAL_R & bit) { + if (crtc.s.PAL_R & bit) { c |= 2; } - if (crtc.PAL_G & bit) { + if (crtc.s.PAL_G & bit) { c |= 4; } } @@ -293,7 +292,7 @@ void palettes(void) { x1n_pal32[i].d = pals.grph[pal_disp][c].d; x1n_pal32[i+64].d = x1n_pal32[i+128].d = pals.grph[pal_disp][c+skip8].d; - if (crtc.PLY & bit) { + if (crtc.s.PLY & bit) { for (j=i+8; j<64; j+=8) { x1n_pal32[j].d = x1n_pal32[i].d; x1n_pal32[j+64].d = x1n_pal32[j+128].d @@ -301,10 +300,10 @@ void palettes(void) { } } else { - BYTE cnt = (crtc.BLACKPAL & 15) - 8; + BYTE cnt = (crtc.s.BLACKPAL & 15) - 8; for (j=i+8; j<64; j+=8) { if (--cnt) { - c = crtc.TEXT_PAL[j>>3]; + c = crtc.s.TEXT_PAL[j>>3]; } else { c = 0; @@ -332,20 +331,25 @@ void palettes(void) { } xm_palettes = 64+8; } +#if defined(SUPPORT_16BPP) + if (scrnmng_getbpp() == 16) { + pals_cnv16pal(x1n_pal16, x1n_pal32, xm_palettes); + } +#endif scrndraw_changepalette(); } // ---- -void reflesh_palette(void) { +void pal_reset(void) { REG8 i; REG8 j; UINT k; pals.blankcol = xmilcfg.BLKLIGHT; - if ((!xmilcfg.SKIP_LINE) || (crtc.SCRN_BITS & SCRN_24KHZ)) { + if ((!xmilcfg.SKIP_LINE) || (crtc.s.SCRN_BITS & SCRN_24KHZ)) { pals.blankcol >>= 1; } halfgrp = xmilcfg.LINEDEPTH; @@ -366,9 +370,9 @@ void reflesh_palette(void) { for (i=0; i<8; i++) { pal_settext(i); } - for (j=0; j<2; j++) { - for (i=0; i<64; i++) { - pal_setgrph(j, i); + for (i=0; i<2; i++) { + for (j=0; j<64; j++) { + pal_setgrph(i, j); } } for (k=0; k<4096; k++) {