⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 .#palette.c.1.24

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 24
📖 第 1 页 / 共 4 页
字号:
void map_12bit_rrrr_gggg_bbbb_xxxx_rev_32(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT32 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5)+30);   ct = (UINT32 *) coltab[bank];   do{      yy = ReadWord68k(ta--) >> 4;      GET_PEN_FOR_COLOUR_32(         (yy&0x0F00)>>6,         (yy&0x00F0)>>2,         (yy&0x000F)<<2,         res      );      *ct++ = res;   }while(--cols);}struct COLOUR_MAPPER col_map_rrrr_gggg_bbbb_xxxx_68k ={   "12bit rrrr gggg bbbb xxxx [M68000]",   map_12bit_rrrr_gggg_bbbb_xxxx_rev_8,   map_12bit_rrrr_gggg_bbbb_xxxx_rev_15,   map_12bit_rrrr_gggg_bbbb_xxxx_rev_16,   map_12bit_rrrr_gggg_bbbb_xxxx_rev_24,   map_12bit_rrrr_gggg_bbbb_xxxx_rev_32,};/******************************************************************************//* 15-bit xRGB (15-bit mapping)                                               *//******************************************************************************/void Map_15bit_xRGB(int bank, int cols){   UINT16 yy;   UINT16 *ta;   UINT8 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_8(         (yy&0x7C00)>>9,         (yy&0x03E0)>>4,         (yy&0x001F)<<1,         res      );      *ct++ = res;   }while(--cols);}/******************************************************************************//* 15-bit xRGB (15-bit mapping) Reverse Colour Order 680X0 format (Gunbird)   *//******************************************************************************/void map_15bit_xrrr_rrgg_gggb_bbbb_rev_68k_8(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT8 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5)+30);   ct = coltab[bank];   do{      yy = ReadWord68k(ta--) & 0x7FFF;      GET_PEN_FOR_COLOUR_8(         (yy&0x7C00)>>9,         (yy&0x03E0)>>4,         (yy&0x001F)<<1,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xrrr_rrgg_gggb_bbbb_rev_68k_15(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT16 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5)+30);   ct = (UINT16 *) coltab[bank];   do{      yy = ReadWord68k(ta--) & 0x7FFF;      GET_PEN_FOR_COLOUR_15(         (yy&0x7C00)>>9,         (yy&0x03E0)>>4,         (yy&0x001F)<<1,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xrrr_rrgg_gggb_bbbb_rev_68k_16(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT16 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5)+30);   ct = (UINT16 *) coltab[bank];   do{      yy = ReadWord68k(ta--) & 0x7FFF;      GET_PEN_FOR_COLOUR_16(         (yy&0x7C00)>>9,         (yy&0x03E0)>>4,         (yy&0x001F)<<1,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xrrr_rrgg_gggb_bbbb_rev_68k_24(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT32 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5)+30);   ct = (UINT32 *) coltab[bank];   do{      yy = ReadWord68k(ta--) & 0x7FFF;      GET_PEN_FOR_COLOUR_24(         (yy&0x7C00)>>9,         (yy&0x03E0)>>4,         (yy&0x001F)<<1,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xrrr_rrgg_gggb_bbbb_rev_68k_32(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT32 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5)+30);   ct = (UINT32 *) coltab[bank];   do{      yy = ReadWord68k(ta--) & 0x7FFF;      GET_PEN_FOR_COLOUR_32(         (yy&0x7C00)>>9,         (yy&0x03E0)>>4,         (yy&0x001F)<<1,         res      );      *ct++ = res;   }while(--cols);}struct COLOUR_MAPPER col_map_xrrr_rrgg_gggb_bbbb_rev_68k ={   "15bit xrrr rrgg gggb bbbb [reverse] [68000]",   map_15bit_xrrr_rrgg_gggb_bbbb_rev_68k_8,   map_15bit_xrrr_rrgg_gggb_bbbb_rev_68k_15,   map_15bit_xrrr_rrgg_gggb_bbbb_rev_68k_16,   map_15bit_xrrr_rrgg_gggb_bbbb_rev_68k_24,   map_15bit_xrrr_rrgg_gggb_bbbb_rev_68k_32,};/******************************************************************************//* 15-bit xRGB (15-bit mapping)                                               *//******************************************************************************/void map_15bit_xrrr_rrgg_gggb_bbbb_8(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT8 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_8(         (yy&0x7C00)>>9,         (yy&0x03E0)>>4,         (yy&0x001F)<<1,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xrrr_rrgg_gggb_bbbb_15(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT16 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = (UINT16 *) coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_15(         (yy&0x7C00)>>9,         (yy&0x03E0)>>4,         (yy&0x001F)<<1,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xrrr_rrgg_gggb_bbbb_16(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT16 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = (UINT16 *) coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_16(         (yy&0x7C00)>>9,         (yy&0x03E0)>>4,         (yy&0x001F)<<1,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xrrr_rrgg_gggb_bbbb_24(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT32 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = (UINT32 *) coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_24(         (yy&0x7C00)>>9,         (yy&0x03E0)>>4,         (yy&0x001F)<<1,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xrrr_rrgg_gggb_bbbb_32(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT32 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = (UINT32 *) coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_32(         (yy&0x7C00)>>9,         (yy&0x03E0)>>4,         (yy&0x001F)<<1,         res      );      *ct++ = res;   }while(--cols);}struct COLOUR_MAPPER col_map_xrrr_rrgg_gggb_bbbb ={   "15bit xrrr rrgg gggb bbbb",   map_15bit_xrrr_rrgg_gggb_bbbb_8,   map_15bit_xrrr_rrgg_gggb_bbbb_15,   map_15bit_xrrr_rrgg_gggb_bbbb_16,   map_15bit_xrrr_rrgg_gggb_bbbb_24,   map_15bit_xrrr_rrgg_gggb_bbbb_32,};/******************************************************************************//* 15-bit xBGR (15-bit mapping)                                               *//******************************************************************************/void Map_15bit_xBGR(int bank, int cols){   UINT16 yy;   UINT16 *ta;   UINT8 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_8(         (yy&0x001F)<<1,         (yy&0x03E0)>>4,         (yy&0x7C00)>>9,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xbbb_bbgg_gggr_rrrr_8(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT8 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_8(         (yy&0x001F)<<1,         (yy&0x03E0)>>4,         (yy&0x7C00)>>9,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xbbb_bbgg_gggr_rrrr_15(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT16 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = (UINT16 *) coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_15(         (yy&0x001F)<<1,         (yy&0x03E0)>>4,         (yy&0x7C00)>>9,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xbbb_bbgg_gggr_rrrr_16(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT16 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = (UINT16 *) coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_16(         (yy&0x001F)<<1,         (yy&0x03E0)>>4,         (yy&0x7C00)>>9,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xbbb_bbgg_gggr_rrrr_24(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT32 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = (UINT32 *) coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_24(         (yy&0x001F)<<1,         (yy&0x03E0)>>4,         (yy&0x7C00)>>9,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xbbb_bbgg_gggr_rrrr_32(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT32 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = (UINT32 *) coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_32(         (yy&0x001F)<<1,         (yy&0x03E0)>>4,         (yy&0x7C00)>>9,         res      );      *ct++ = res;   }while(--cols);}struct COLOUR_MAPPER col_map_xbbb_bbgg_gggr_rrrr ={   "15bit xbbb bbgg gggr rrrr",   map_15bit_xbbb_bbgg_gggr_rrrr_8,   map_15bit_xbbb_bbgg_gggr_rrrr_15,   map_15bit_xbbb_bbgg_gggr_rrrr_16,   map_15bit_xbbb_bbgg_gggr_rrrr_24,   map_15bit_xbbb_bbgg_gggr_rrrr_32,};/******************************************************************************//* 15-bit xBGR (15-bit mapping) [4bits used; AIR-SYSTEM; change to 12-bit?]   *//******************************************************************************/void map_15bit_xxbb_bbxg_gggx_rrrr_8(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT8 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_8(         (yy&0x000F)<<2,         (yy&0x01E0)>>3,         (yy&0x3C00)>>8,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xxbb_bbxg_gggx_rrrr_15(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT16 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = (UINT16 *) coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_15(         (yy&0x000F)<<2,         (yy&0x01E0)>>3,         (yy&0x3C00)>>8,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xxbb_bbxg_gggx_rrrr_16(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT16 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = (UINT16 *) coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_16(         (yy&0x000F)<<2,         (yy&0x01E0)>>3,         (yy&0x3C00)>>8,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xxbb_bbxg_gggx_rrrr_24(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT32 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = (UINT32 *) coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_24(         (yy&0x000F)<<2,         (yy&0x01E0)>>3,         (yy&0x3C00)>>8,         res      );      *ct++ = res;   }while(--cols);}void map_15bit_xxbb_bbxg_gggx_rrrr_32(UINT32 bank, UINT32 cols){   UINT16 yy;   UINT16 *ta;   UINT32 *ct,res;   bank_status[bank] = cols;   ta = (UINT16 *) (RAM_PAL+(bank<<5));   ct = (UINT32 *) coltab[bank];   do{      yy = (*ta++) & 0x7FFF;      GET_PEN_FOR_COLOUR_32(         (yy&0x000F)<<2,         (yy&0x01E0)>>3,         (yy&0x3C00)>>8,         res      );      *ct++ = res;   }while(--cols);}struct COLOUR_MAPPER col_map_xxbb_bbxg_gggx_rrrr ={   "15bit xxbb bbxg gggx rrrr",   map_15bit_xxbb_bbxg_gggx_rrrr_8,   map_15bit_xxbb_bbxg_gggx_rrrr_15,   map_15bit_xxbb_bbxg_gggx_rrrr_16,   map_15bit_xxbb_bbxg_gggx_rrrr_24,   map_15bit_xxbb_bbxg_gggx_rrrr_32,};/******************************************************************************//* 24-bit xRGB (12-bit mapping) 680x0 format                                  *//******************************************************************************/void Map_24bit_xRGB(int bank, int cols){   UINT8 yr,yg,yb;   UINT16 yy;   UINT8 *ta;   UINT8 *ct,res;   bank_status[bank] = cols;   ta = (RAM_PAL+(bank<<6));   ct = coltab[bank];   do{      yr = (*(ta+1)) >>4;      yg = (*(ta+2)) >>4;      yb = (*(ta+3)) >>4;      ta += 4;      yy=((yr<<8)|(yg<<4)|(yb));      GET_PEN_FOR_COLOUR_8(         yr<<2,         yg<<2,         yb<<2,         res      );      *ct++ = res;   }while(--cols);}void map_24bit_xxxx_xxxx_rrrr_rrrr_gggg_gggg_bbbb_bbbb_8(UINT32 bank, UINT32 cols){   UINT8 yr,yg,yb;   UINT32 yy;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -