|
|
| version 1.1, 2004/08/07 07:19:56 | version 1.4, 2004/08/18 09:17:56 |
|---|---|
| Line 5 | Line 5 |
| // 遅いのが嫌なら後でインラインにすればいい | // 遅いのが嫌なら後でインラインにすればいい |
| void makemix_txt(UINT8 *dst, UINT align, const UINT8 *txt, UINT count) { | void makemix_mixtext(UINT8 *dst, UINT align, const UINT8 *txt, UINT count) { |
| UINT32 datl; | |
| UINT32 datr; | |
| REG8 dat; | |
| do { | |
| datl = (*(UINT32 *)(dst + 0)) & 0x07070707; | |
| datr = (*(UINT32 *)(dst + 4)) & 0x07070707; | |
| dat = txt[MAKETEXT_ROW * 0]; | |
| datl |= TO256COLL(dat, 3); | |
| datr |= TO256COLR(dat, 3); | |
| dat = txt[MAKETEXT_ROW * 1]; | |
| datl |= TO256COLL(dat, 4); | |
| datr |= TO256COLR(dat, 4); | |
| dat = txt[MAKETEXT_ROW * 2]; | |
| datl |= TO256COLL(dat, 5); | |
| datr |= TO256COLR(dat, 5); | |
| *(UINT32 *)(dst + 0) = datl; | |
| *(UINT32 *)(dst + 4) = datr; | |
| txt++; | |
| dst += align; | |
| } while(--count); | |
| } | |
| void makemix_mixgrph(UINT8 *dst, UINT align, const UINT8 *grp, UINT count) { | |
| UINT pos; | |
| UINT32 datl; | |
| UINT32 datr; | |
| REG8 dat; | |
| pos = 0; | |
| do { | |
| datl = (*(UINT32 *)(dst + 0)) & 0x38383838; | |
| datr = (*(UINT32 *)(dst + 4)) & 0x38383838; | |
| dat = grp[pos + GRAM_B]; | |
| datl |= TO256COLL(dat, 0); | |
| datr |= TO256COLR(dat, 0); | |
| dat = grp[pos + GRAM_R]; | |
| datl |= TO256COLL(dat, 1); | |
| datr |= TO256COLR(dat, 1); | |
| dat = grp[pos + GRAM_G]; | |
| datl |= TO256COLL(dat, 2); | |
| datr |= TO256COLR(dat, 2); | |
| *(UINT32 *)(dst + 0) = datl; | |
| *(UINT32 *)(dst + 4) = datr; | |
| pos = (pos + 1) & 7; | |
| dst += align; | |
| } while(--count); | |
| } | |
| void makemix_settext(UINT8 *dst, UINT align, const UINT8 *txt, UINT count) { | |
| REG8 dat; | REG8 dat; |
| UINT32 datl; | UINT32 datl; |
| Line 28 void makemix_txt(UINT8 *dst, UINT align, | Line 81 void makemix_txt(UINT8 *dst, UINT align, |
| } while(--count); | } while(--count); |
| } | } |
| void makemix_ul20(UINT8 *dst, UINT pos) { | |
| UINT32 dat; | |
| dat = (tram[TRAM_KNJ + pos] & TRAMKNJ_ULINE)?0x01010101:0x00000000; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 0) + 0) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 0) + 4) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 1) + 0) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 1) + 4) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 2) + 0) = 0; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 2) + 4) = 0; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 3) + 0) = 0; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 3) + 4) = 0; | |
| } | |
| void makemix_ul10(UINT8 *dst, UINT pos) { | |
| UINT32 dat; | |
| dat = (tram[TRAM_KNJ + pos] & TRAMKNJ_ULINE)?0x01010101:0x00000000; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 0) + 0) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 0) + 4) = dat; | |
| // *(UINT32 *)(dst + (SURFACE_WIDTH * 1) + 0) = dat; | |
| // *(UINT32 *)(dst + (SURFACE_WIDTH * 1) + 4) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 2) + 0) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 2) + 4) = dat; | |
| // *(UINT32 *)(dst + (SURFACE_WIDTH * 3) + 0) = dat; | |
| // *(UINT32 *)(dst + (SURFACE_WIDTH * 3) + 4) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 4) + 0) = 0; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 4) + 4) = 0; | |
| // *(UINT32 *)(dst + (SURFACE_WIDTH * 5) + 0) = 0; | |
| // *(UINT32 *)(dst + (SURFACE_WIDTH * 5) + 4) = 0; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 6) + 0) = 0; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 6) + 4) = 0; | |
| // *(UINT32 *)(dst + (SURFACE_WIDTH * 7) + 0) = 0; | |
| // *(UINT32 *)(dst + (SURFACE_WIDTH * 7) + 4) = 0; | |
| } | |
| void makemix_cpy200(UINT8 *dst, UINT pos, UINT count) { | |
| count -= pos; | |
| pos = pos * SURFACE_WIDTH * 2; | |
| do { | |
| *(UINT32 *)(dst + pos + 0) = *(UINT32 *)(dst + 0); | |
| *(UINT32 *)(dst + pos + 4) = *(UINT32 *)(dst + 4); | |
| dst += SURFACE_WIDTH * 2; | |
| } while(--count); | |
| } | |
| void makemix_cpy400(UINT8 *dst, UINT pos, UINT count) { | |
| count -= pos; | |
| pos = pos * SURFACE_WIDTH; | |
| do { | |
| *(UINT32 *)(dst + pos + 0) = *(UINT32 *)(dst + 0); | |
| *(UINT32 *)(dst + pos + 4) = *(UINT32 *)(dst + 4); | |
| dst += SURFACE_WIDTH; | |
| } while(--count); | |
| } | |
| #if 0 | |
| void makemix_mix(UINT8 *dst, UINT align, | void makemix_mix(UINT8 *dst, UINT align, |
| const UINT8 *txt, const UINT8 *grp, UINT count) { | const UINT8 *txt, const UINT8 *grp, UINT count) { |
| Line 45 void makemix_mix(UINT8 *dst, UINT align, | Line 167 void makemix_mix(UINT8 *dst, UINT align, |
| dat = txt[MAKETEXT_ROW * 2]; | dat = txt[MAKETEXT_ROW * 2]; |
| datl |= TO256COLL(dat, 5); | datl |= TO256COLL(dat, 5); |
| datr |= TO256COLR(dat, 5); | datr |= TO256COLR(dat, 5); |
| dat = grp[PLANE_B]; | dat = grp[GRAM_B]; |
| datl |= TO256COLL(dat, 0); | datl |= TO256COLL(dat, 0); |
| datr |= TO256COLR(dat, 0); | datr |= TO256COLR(dat, 0); |
| dat = grp[PLANE_R]; | dat = grp[GRAM_R]; |
| datl |= TO256COLL(dat, 1); | datl |= TO256COLL(dat, 1); |
| datr |= TO256COLR(dat, 1); | datr |= TO256COLR(dat, 1); |
| dat = grp[PLANE_G]; | dat = grp[GRAM_G]; |
| datl |= TO256COLL(dat, 2); | datl |= TO256COLL(dat, 2); |
| datr |= TO256COLR(dat, 2); | datr |= TO256COLR(dat, 2); |
| *(UINT32 *)(dst + 0) = datl; | *(UINT32 *)(dst + 0) = datl; |
| Line 83 void makemix_remcpy(UINT8 *dst, UINT pos | Line 205 void makemix_remcpy(UINT8 *dst, UINT pos |
| dst += SURFACE_WIDTH; | dst += SURFACE_WIDTH; |
| } while(--count); | } while(--count); |
| } | } |
| #endif | |
| void makemix_ul20(UINT8 *dst, UINT pos, UINT32 skipline) { | |
| UINT32 dat; | |
| dat = (tram[TRAM_KNJ + pos] & X1KNJ_ULINE)?0x010101010:0x00000000; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 0) + 0) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 0) + 4) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 1) + 0) = dat + skipline; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 1) + 4) = dat + skipline; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 2) + 0) = 0x00000000; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 2) + 4) = 0x00000000; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 3) + 0) = skipline; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 3) + 4) = skipline; | |
| } | |
| void makemix_ul10(UINT8 *dst, UINT pos, UINT32 skipline) { | |
| UINT32 dat; | |
| dat = (tram[TRAM_KNJ + pos] & X1KNJ_ULINE)?0x010101010:0x00000000; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 0) + 0) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 0) + 4) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 1) + 0) = dat + skipline; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 1) + 4) = dat + skipline; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 2) + 0) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 2) + 4) = dat; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 3) + 0) = dat + skipline; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 3) + 4) = dat + skipline; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 4) + 0) = 0; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 4) + 4) = 0; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 5) + 0) = skipline; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 5) + 4) = skipline; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 6) + 0) = 0; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 6) + 4) = 0; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 7) + 0) = skipline; | |
| *(UINT32 *)(dst + (SURFACE_WIDTH * 7) + 4) = skipline; | |
| } |