| version 1.2, 2004/08/05 04:53:15 | version 1.4, 2004/08/07 12:10:27 | 
| Line 3 | Line 3 | 
 | #include        "pccore.h" | #include        "pccore.h" | 
 | #include        "iocore.h" | #include        "iocore.h" | 
 | #include        "vram.h" | #include        "vram.h" | 
 | #include        "draw.h" |  | 
 | #include        "palettes.h" | #include        "palettes.h" | 
 |  | #include        "makescrn.h" | 
 |  |  | 
 |  |  | 
 | BYTE    crtc_TEXTPAL[8]; | BYTE    crtc_TEXTPAL[8]; | 
| Line 13 | Line 13 | 
 |  |  | 
 | static const UINT8 def_TEXTPAL[8] = { | static const UINT8 def_TEXTPAL[8] = { | 
 | 0x00, 0x03, 0x0c, 0x0f, 0x30, 0x33, 0x3c, 0x3f}; | 0x00, 0x03, 0x0c, 0x0f, 0x30, 0x33, 0x3c, 0x3f}; | 
 |  |  | 
 | static const UINT16 def_GRPHPAL[64] = { | static const UINT16 def_GRPHPAL[64] = { | 
 | 0x000, 0x00a, 0x0a0, 0x0aa, 0xa00, 0xa0a, 0xaa0, 0xaaa, | 0x000, 0x00a, 0x0a0, 0x0aa, 0xa00, 0xa0a, 0xaa0, 0xaaa, | 
 | 0x005, 0x00f, 0x0a5, 0x0af, 0xa05, 0xa0f, 0xaa5, 0xaaf, | 0x005, 0x00f, 0x0a5, 0x0af, 0xa05, 0xa0f, 0xaa5, 0xaaf, | 
| Line 23  static const UINT16 def_GRPHPAL[64] = { | Line 24  static const UINT16 def_GRPHPAL[64] = { | 
 | 0x550, 0x55a, 0x5f0, 0x5fa, 0xf50, 0xf5a, 0xff0, 0xffa, | 0x550, 0x55a, 0x5f0, 0x5fa, 0xf50, 0xf5a, 0xff0, 0xffa, | 
 | 0x555, 0x55f, 0x5f5, 0x5ff, 0xf55, 0xf5f, 0xff5, 0xfff}; | 0x555, 0x55f, 0x5f5, 0x5ff, 0xf55, 0xf5f, 0xff5, 0xfff}; | 
 |  |  | 
 |  |  | 
 | static const CRTCSTAT crtcdefault = { | static const CRTCSTAT crtcdefault = { | 
 | 0xaa,                                           // PAL_B; | 0xaa,                                           // PAL_B; | 
 | 0xcc,                                           // PAL_R; | 0xcc,                                           // PAL_R; | 
| Line 246  void IOOUTCALL crtc_o(UINT port, REG8 va | Line 246  void IOOUTCALL crtc_o(UINT port, REG8 va | 
 | case 0x0c: | case 0x0c: | 
 | crtc.s.TXT_TOP &= 0xff; | crtc.s.TXT_TOP &= 0xff; | 
 | crtc.s.TXT_TOP |= (value & 7) << 8; | crtc.s.TXT_TOP |= (value & 7) << 8; | 
| doubleatrchange = 1; | makescrn.remakeattr = 1; | 
 | break; | break; | 
 |  |  | 
 | case 0x0d: | case 0x0d: | 
 | crtc.s.TXT_TOP &= 0x7ff; | crtc.s.TXT_TOP &= 0x7ff; | 
 | crtc.s.TXT_TOP |= value; | crtc.s.TXT_TOP |= value; | 
| doubleatrchange = 1; | makescrn.remakeattr = 1; | 
 | break; | break; | 
 |  |  | 
 | default: | default: | 
| Line 275  void IOOUTCALL scrn_o(UINT port, REG8 va | Line 275  void IOOUTCALL scrn_o(UINT port, REG8 va | 
 | modify = crtc.s.SCRN_BITS ^ value; | modify = crtc.s.SCRN_BITS ^ value; | 
 | crtc.s.SCRN_BITS = value; | crtc.s.SCRN_BITS = value; | 
 | if (modify & SCRN_DISPCHANGE) { | if (modify & SCRN_DISPCHANGE) { | 
| textdrawproc_renewal(); | //              pal_reset();                                    // ¤Ê¤ó¤Ç¡© | 
| reflesh_palette(); |  | 
 | scrnallflash = 1; | scrnallflash = 1; | 
| palandply = 1; | makescrn.palandply = 1; | 
 | crtc_updt(); | crtc_updt(); | 
 | } | } | 
 | vrambank_patch(); | vrambank_patch(); | 
| Line 300  void IOOUTCALL ply_o(UINT port, REG8 val | Line 299  void IOOUTCALL ply_o(UINT port, REG8 val | 
 |  |  | 
 | if (crtc.s.PLY != value) { | if (crtc.s.PLY != value) { | 
 | crtc.s.PLY = value; | crtc.s.PLY = value; | 
| palandply = 1; | makescrn.palandply = 1; | 
 | } | } | 
 | (void)port; | (void)port; | 
 | } | } | 
| Line 392  void IOOUTCALL palette_o(UINT port, REG8 | Line 391  void IOOUTCALL palette_o(UINT port, REG8 | 
 | case 0x1000: | case 0x1000: | 
 | if (crtc.s.PAL_B != value) { | if (crtc.s.PAL_B != value) { | 
 | crtc.s.PAL_B = value; | crtc.s.PAL_B = value; | 
| palandply = 1; | makescrn.palandply = 1; | 
 | } | } | 
 | break; | break; | 
 |  |  | 
 | case 0x1100: | case 0x1100: | 
 | if (crtc.s.PAL_R != value) { | if (crtc.s.PAL_R != value) { | 
 | crtc.s.PAL_R = value; | crtc.s.PAL_R = value; | 
| palandply = 1; | makescrn.palandply = 1; | 
 | } | } | 
 | break; | break; | 
 |  |  | 
 | case 0x1200: | case 0x1200: | 
 | if (crtc.s.PAL_G != value) { | if (crtc.s.PAL_G != value) { | 
 | crtc.s.PAL_G = value; | crtc.s.PAL_G = value; | 
| palandply = 1; | makescrn.palandply = 1; | 
 | } | } | 
 | break; | break; | 
 | } | } | 
| Line 531  REG8 IOINPCALL exttextdisp_i(UINT port) | Line 530  REG8 IOINPCALL exttextdisp_i(UINT port) | 
 | void IOOUTCALL blackctrl_o(UINT port, REG8 value) { | void IOOUTCALL blackctrl_o(UINT port, REG8 value) { | 
 |  |  | 
 | crtc.s.BLACKPAL = value; | crtc.s.BLACKPAL = value; | 
| palandply = 1; | makescrn.palandply = 1; | 
 | } | } | 
 |  |  | 
 | REG8 IOINPCALL blackctrl_i(UINT port) { | REG8 IOINPCALL blackctrl_i(UINT port) { | 
| Line 563  void crtc_reset(void) { | Line 562  void crtc_reset(void) { | 
 |  |  | 
 | crtc.s = crtcdefault; | crtc.s = crtcdefault; | 
 |  |  | 
 | palandply = 1; |  | 
 | dispmode = SCRN64_INVALID; | dispmode = SCRN64_INVALID; | 
 | pal_bank = pal_disp = PAL_NORMAL; | pal_bank = pal_disp = PAL_NORMAL; | 
 | if (pccore.ROM_TYPE < 3) { | if (pccore.ROM_TYPE < 3) { | 
| Line 574  void crtc_reset(void) { | Line 572  void crtc_reset(void) { | 
 | crtc.s.FNT_YL = 16; | crtc.s.FNT_YL = 16; | 
 | } | } | 
 |  |  | 
| textdrawproc_renewal(); | pal_reset(); | 
| reflesh_palette(); |  | 
 | crtc_updt(); | crtc_updt(); | 
 |  |  | 
 | vrambank_patch(); | vrambank_patch(); | 
| palandply = 1; | makescrn.palandply = 1; | 
 | scrnallflash = 1; | scrnallflash = 1; | 
 | } | } | 
 |  |  |