|
|
| version 1.8, 2004/08/08 09:12:06 | version 1.11, 2004/08/11 12:08:17 |
|---|---|
| Line 20 | Line 20 |
| int xm_palettes = 0; | int xm_palettes = 0; |
| extern BYTE dispmode; | |
| extern BYTE pal_disp; | |
| static const UINT16 pal4096banktbl[2][64] = { | static const UINT16 pal4096banktbl[2][64] = { |
| { 0x000, 0x008, 0x080, 0x088, 0x800, 0x808, 0x880, 0x888, | { 0x000, 0x008, 0x080, 0x088, 0x800, 0x808, 0x880, 0x888, |
| 0x004, 0x00C, 0x084, 0x08C, 0x804, 0x80C, 0x884, 0x88C, | 0x004, 0x00C, 0x084, 0x08C, 0x804, 0x80C, 0x884, 0x88C, |
| Line 88 void pal_settext(REG8 num) { | Line 84 void pal_settext(REG8 num) { |
| REG8 black; | REG8 black; |
| RGB32 rgb; | RGB32 rgb; |
| textpal = crtc_TEXTPAL[num]; | textpal = crtc.p.text[num]; |
| black = 0; | black = 0; |
| rgb.p.e = 0; | rgb.p.e = 0; |
| rgb.p.b = ((textpal >> 0) & 3) * 0x55; | rgb.p.b = ((textpal >> 0) & 3) * 0x55; |
| Line 127 void pal_setgrph(REG8 bank, REG8 num) { | Line 123 void pal_setgrph(REG8 bank, REG8 num) { |
| REG8 black; | REG8 black; |
| RGB32 rgb; | RGB32 rgb; |
| grphpal = crtc_GRPHPAL[bank][num]; | grphpal = crtc.p.grph[bank][num]; |
| black = 0; | black = 0; |
| rgb.p.e = 0; | rgb.p.e = 0; |
| rgb.p.b = ((grphpal >> 0) & 0x0f) * 0x11; | rgb.p.b = ((grphpal >> 0) & 0x0f) * 0x11; |
| Line 164 void pal_setgrph4096(UINT num) { | Line 160 void pal_setgrph4096(UINT num) { |
| REG8 black; | REG8 black; |
| RGB32 rgb; | RGB32 rgb; |
| grphpal = crtc_PAL4096[num]; | grphpal = crtc.p.grph4096[num]; |
| black = 0; | black = 0; |
| rgb.p.e = 0; | rgb.p.e = 0; |
| rgb.p.b = ((grphpal >> 0) & 0x0f) * 0x11; | rgb.p.b = ((grphpal >> 0) & 0x0f) * 0x11; |
| Line 217 void pal_update(void) { | Line 213 void pal_update(void) { |
| UINT bcnt; | UINT bcnt; |
| skip8 = 0; | skip8 = 0; |
| if (pal_disp & PAL_4096) { | if (crtc.e.pal_disp & PAL_4096) { |
| switch(pal_disp & 0xf) { | switch(crtc.e.pal_disp & 0xf) { |
| case PAL_4096H: | case PAL_4096H: |
| pal4096to64(x1n_pal32, pal4096banktbl[0]); | pal4096to64(x1n_pal32, pal4096banktbl[0]); |
| xm_palettes = 64; | xm_palettes = 64; |
| Line 248 void pal_update(void) { | Line 244 void pal_update(void) { |
| x1n_pal32[xm_palettes++].d = pals.text[i].d; | x1n_pal32[xm_palettes++].d = pals.text[i].d; |
| } | } |
| } | } |
| else if ((dispmode & SCRN64_MASK) == SCRN64_INVALID) { | else if ((crtc.e.dispmode & SCRN64_MASK) == SCRN64_INVALID) { |
| if (!(crtc.s.SCRN_BITS & SCRN_24KHZ)) { | if (!(crtc.s.SCRN_BITS & SCRN_24KHZ)) { |
| skip8 = 8; | skip8 = 8; |
| } | } |
| for (i=0, bit=1; i<8; i++, bit<<=1) { | for (i=0, bit=1; i<8; i++, bit<<=1) { |
| if (!(crtc.s.EXTPALMODE & 0x80)) { | if (!(crtc.s.EXTPALMODE & 0x80)) { |
| c = 0; | c = 0; |
| if (crtc.s.PAL_B & bit) { | if (crtc.s.rgbp[CRTC_PALB] & bit) { |
| c |= 1; | c += 1; |
| } | } |
| if (crtc.s.PAL_R & bit) { | if (crtc.s.rgbp[CRTC_PALR] & bit) { |
| c |= 2; | c += 2; |
| } | } |
| if (crtc.s.PAL_G & bit) { | if (crtc.s.rgbp[CRTC_PALG] & bit) { |
| c |= 4; | c += 4; |
| } | } |
| } | } |
| else { | else { |
| c = i; | c = i; |
| } | } |
| x1n_pal32[i].d = pals.grph[pal_disp][c].d; | x1n_pal32[i].d = pals.grph[crtc.e.pal_disp][c].d; |
| x1n_pal32[i+64].d = pals.grph[pal_disp][c + skip8].d; | x1n_pal32[i+64].d = pals.grph[crtc.e.pal_disp][c + skip8].d; |
| if (crtc.s.PLY & bit) { | if (crtc.s.rgbp[CRTC_PLY] & bit) { |
| for (j=i+8; j<64; j+=8) { | for (j=i+8; j<64; j+=8) { |
| x1n_pal32[j].d = x1n_pal32[i].d; | x1n_pal32[j].d = x1n_pal32[i].d; |
| x1n_pal32[j+64].d = x1n_pal32[i + 64].d; | x1n_pal32[j+64].d = x1n_pal32[i+64].d; |
| } | } |
| } | } |
| else { | else { |
| Line 281 void pal_update(void) { | Line 277 void pal_update(void) { |
| for (j=i+8; j<64; j+=8) { | for (j=i+8; j<64; j+=8) { |
| bcnt--; | bcnt--; |
| if (bcnt) { | if (bcnt) { |
| c = crtc.s.TEXT_PAL[j >> 3]; | c = j >> 3; |
| } | } |
| else { | else { |
| c = 0; | c = 0; |
| Line 295 void pal_update(void) { | Line 291 void pal_update(void) { |
| } | } |
| else { | else { |
| for (i=0; i<64; i++) { | for (i=0; i<64; i++) { |
| x1n_pal32[i].d = pals.grph64[pal_disp][i].d; | x1n_pal32[i].d = pals.grph64[crtc.e.pal_disp][i].d; |
| } | } |
| for (i=0; i<8; i++) { | for (i=0; i<8; i++) { |
| x1n_pal32[i+64].d = pals.text[i].d; | x1n_pal32[i+64].d = pals.text[i].d; |