static void Blitr_256x224_to_320x240() { // 256x224 rotate to 210x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; q += BW; p += 55; for (int i=0; i<240; i++) { --q; // 16px -> 15px if (i % 15 == 7) { --q; for (int it = 0; it < BW*BH; it += BW) { q[it] = COLORMIX(q[it],q[it+1]); } } q1 = q; for (int j=0; j<210; j++) { // 16px -> 15px if (j % 15 == 7) { p[0] = COLORMIX(q1[0],q1[BW]); q1 += BW; } else { p[0] = q1[0]; } ++p; q1 += BW; } p += 110; } }
static void Blitrf_256x224_to_320x240() { // 256x224 flipped rotate to 210x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; q += (BH - 1) * BW - 1; p += 55; for (int i=0; i<240; i++) { ++q; // 16px -> 15px if (i % 15 == 7) { ++q; for (int it = 0; it < BW*BH; it += BW) { *(q-it) = COLORMIX(*(q-it),*(q-it-1)); } } q1 = q; for (int j=0; j<210; j++) { // 16px -> 15px if (j % 15 == 7) { *p = COLORMIX(*q1,*(q1-BW)); q1 -= BW; } else { *p = *q1; } ++p; q1 -= BW; } p += 110; } }
static void Blitr_352x240_to_320x240() { // 352x240 rotate to 180x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; q += BW; p += 70; for (int i=0; i<240; i++) { --q; // 22px -> 15px if ((i % 15) % 2 != 0) { --q; for (int it = 0; it < BW*BH; it += BW) { q[it] = COLORMIX(q[it],q[it+1]); } } q1 = q; for (int j=0; j<180; j++) { // 8px -> 6px if ((j % 6) % 3 == 1) { p[0] = COLORMIX(q1[0],q1[BW]); q1 += BW; } else { p[0] = q1[0]; } ++p; q1 += BW; } p += 140; } }
static void Blitr_256x248_to_320x240() { // 256x248 rotate to 232x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; q += 256; p += 44; for (int i=0; i<240; i++) { --q; // 16px -> 15px if (i % 15 == 7) { --q; for (int it = 0; it < BW*BH; it += BW) { q[it] = COLORMIX(q[it],q[it+1]); } } q1 = q; for (int j=0; j<232; j++) { // 31px -> 29px if ((j % 29) % 15 == 7) { p[0] = COLORMIX(q1[0],q1[BW]); q1 += BW; } else { p[0] = q1[0]; } ++p; q1 += BW; } p += 88; } }
static void Blitr_320x224_to_320x240() { // 320x224 rotate to 192x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; q += BW; p += 64; for (int i=0; i<240; i++) { --q; // 4px -> 3px if (i % 3 == 1) { --q; for (int it = 0; it < BW*BH; it += BW) { q[it] = COLORMIX(q[it],q[it+1]); } } q1 = q; for (int j=0; j<192; j++) { // 7px -> 6px if (j % 6 == 3) { p[0] = COLORMIX(q1[0],q1[BW]); q1 += BW; } else { p[0] = q1[0]; } ++p; q1 += BW; } p += 128; } }
static void Blit_368x224_to_320x240() { // zerozone 368x224 unsigned short * p = &VideoBuffer[2560]; unsigned short * q = BurnVideoBuffer; for (int i=0; i<224; i++) for (int j=0; j<16; j++) { p[0] = q[0]; p[1] = q[1]; p[2] = q[2]; p[3] = q[3]; p[4] = COLORMIX(q[4], q[5]); p[5] = q[6]; p[6] = q[7]; p[7] = q[8]; p[8] = q[9]; p[9] = q[10]; p[10] = COLORMIX(q[11], q[12]); p[11] = q[13]; p[12] = q[14]; p[13] = q[15]; p[14] = q[16]; p[15] = COLORMIX(q[17], q[18]); p[16] = q[19]; p[17] = q[20]; p[18] = q[21]; p[19] = q[22]; p += 20; q += 23; } }
static void Blitrf_320x224_to_320x240() { // 320x224 flipped rotate to 192x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; q += (BH - 1) * BW - 1; p += 64; for (int i=0; i<240; i++) { ++q; // 4px -> 3px if (i % 3 == 1) { ++q; for (int it = 0; it < BW*BH; it += BW) { *(q-it) = COLORMIX(*(q-it),*(q-it-1)); } } q1 = q; for (int j=0; j<192; j++) { // 7px -> 6px if (j % 6 == 3) { *p = COLORMIX(*q1,*(q1-BW)); q1 -= BW; } else { *p = *q1; } ++p; q1 -= BW; } p += 128; } }
static void Blitr_248x240_to_320x240() { // 248x240 rotate to 240x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; q += BW; p += 40; for (int i=0; i<240; i++) { --q; if (i % 30 == 15) { --q; for (int it = 0; it < BW*BH; it += BW) { q[it] = COLORMIX(q[it],q[it+1]); } } q1 = q; for (int j=0; j<240; j++) { p[0] = q1[0]; ++p; q1 += BW; } p += 80; } }
void gp_video_RGB_setHZscaling(int W, int H) { uint16_t * pSource = (uint16_t *)pOutputScreen; uint16_t * pTarget = (uint16_t *)framebuffer16[currFB]; unsigned short y; unsigned short x; if (H == 224) { pSource += 2560; pTarget += 2560; } for (y = H; y != 0; y--) { pSource+=32; for (x = 64; x != 0; x--) { pTarget[0] = pSource[0]; pTarget[1] = pSource[1]; pTarget[2] = pSource[2]; pTarget[3] = COLORMIX(pSource[2],pSource[3]); pTarget[4] = pSource[3]; pTarget+=5; pSource+=4; } pSource+=32; } }
static void Blit_336x240_to_320x240() { // Atari 336x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; for (int i=0; i<240; i++) for (int j=0; j<16; j++) { p[0] = q[0]; p[1] = q[1]; p[2] = q[2]; p[3] = q[3]; p[4] = q[4]; p[5] = q[5]; p[6] = q[6]; p[7] = q[7]; p[8] = q[8]; p[9] = COLORMIX(q[9], q[10]); p[10] = q[11]; p[11] = q[12]; p[12] = q[13]; p[13] = q[14]; p[14] = q[15]; p[15] = q[16]; p[16] = q[17]; p[17] = q[18]; p[18] = q[19]; p[19] = q[20]; p += 20; q += 21; } }
static void Blit_448x224_to_320x240() { // IGS 448x224 unsigned short * p = &VideoBuffer[2560]; unsigned short * q = BurnVideoBuffer; for (int i=0; i<224; i++) for (int j=0; j<64; j++) { p[0] = q[0]; p[1] = COLORMIX(q[1], q[2]); p[2] = q[3]; p[3] = COLORMIX(q[4], q[5]); p[4] = q[6]; p += 5; q += 7; } }
static void Blitf_512x224_to_320x240() { // galpinbl, hotpinbl 512x224 unsigned short * p = &VideoBuffer[2560]; unsigned short * q = BurnVideoBuffer + 512 * 224 - 1 - 8; for (int i=0; i<224; i++) { for (int j=0; j<64; j++) { p[0] = COLORMIX(q[7], q[6]); p[1] = q[5]; p[2] = COLORMIX(q[4], q[3]); p[3] = q[2]; p[4] = COLORMIX(q[1], q[0]); p += 5; q -= 8; } } }
static void Blitf_512x256_to_320x240() { // Konami 512x256 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer + 512 * 256 - 1 - 8; for (int i=0; i<240; i++) { for (int j=0; j<64; j++) { p[0] = COLORMIX(q[7], q[6]); p[1] = q[5]; p[2] = COLORMIX(q[4], q[3]); p[3] = q[2]; p[4] = COLORMIX(q[1], q[0]); p += 5; q -= 8; } if(i % 16 == 0) q -= 512; } }
static void Blit_640x224_to_320x240() { // Taito 640x224 unsigned short * p = &VideoBuffer[2560]; unsigned short * q = BurnVideoBuffer; for (int i=0; i<224; i++) for (int j=0; j<320; j++) { p[0] = COLORMIX(q[0], q[1]); p += 1; q += 2; } }
static void Blit_864x224_to_320x240() { // Taito 864x224 unsigned short * p = &VideoBuffer[2560]; unsigned short * q = BurnVideoBuffer; for (int i=0; i<224; i++) for (int j=0; j<32; j++) { p[0] = COLORMIX(q[0], q[1]); // 0, 1, 2 p[1] = COLORMIX(q[3], q[4]); // 3, 4, 5 p[2] = COLORMIX(q[6], q[7]); // 6, 7, 8 p[3] = COLORMIX(q[9], q[10]); // 9, 10, 11 p[4] = COLORMIX(q[12], q[13]); // 12, 13 p[5] = COLORMIX(q[14], q[15]); // 14, 15, 16 p[6] = COLORMIX(q[17], q[18]); // 17, 18, 19 p[7] = COLORMIX(q[20], q[21]); // 20, 21, 22 p[8] = COLORMIX(q[23], q[24]); // 23, 24, 25 p[9] = COLORMIX(q[26], q[27]); // 26, 27 p += 10; q += 27; } }
static void Blitr_512x224_to_320x240() { // 512x224 rotate to 182x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; int mod = 0; q += BW; p += 69; for (int i=0; i<240; i++) { // 32px -> 15px mod = i % 15; if (mod == 7 || mod == 11) { --q; } q -= 2; for (int it = 0; it < BW*BH; it += BW) { q[it] = COLORMIX(q[it],q[it+1]); } q1 = q; for (int j=0; j<182; j++) { // 16px -> 13px mod = j % 13; if (mod == 1 || mod == 5 || mod == 10) { p[0] = COLORMIX(q1[0],q1[BW]); q1 += BW; } else { p[0] = q1[0]; } ++p; q1 += BW; } p += 138; } }
static void Blitrf_384x240_to_320x240() { // 384x240 flipped rotate to 180x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; int mod = 0; q += (BH - 1) * BW - 1; p += 70; for (int i=0; i<240; i++) { ++q; // 8px -> 5px mod = i % 5; if (mod != 1 && mod != 3) { ++q; for (int it = 0; it < BW*BH; it += BW) { *(q-it) = COLORMIX(*(q-it),*(q-it-1)); } } q1 = q; for (int j=0; j<180; j++) { // 8px -> 6px mod = j % 6; if (mod == 1 || mod == 4) { *p = COLORMIX(*q1,*(q1-BW)); q1 -= BW; } else { *p = *q1; } ++p; q1 -= BW; } p += 140; } }
static void Blitr_272x236_to_320x240() { // 272x236 rotate to 208x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; int mod = 0; q += BW; p += 56; for (int i=0; i<240; i++) { --q; // 17px -> 15px mod = i % 15; if (mod == 4 || mod == 11) { --q; for (int it = 0; it < BW*BH; it += BW) { q[it] = COLORMIX(q[it],q[it+1]); } } q1 = q; for (int j=0; j<208; j++) { // 59px -> 52px mod = j % 52; if (mod == 3 || mod == 11 || mod == 18 || mod == 25 || mod == 33 || mod == 40 || mod == 48) { p[0] = COLORMIX(q1[0],q1[BW]); q1 += BW; } else { p[0] = q1[0]; } ++p; q1 += BW; } p += 112; } }
static void Blitrf_512x224_to_320x240() { // 512x224 flipped rotate to 182x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; int mod = 0; q += (BH - 1) * BW - 1; p += 69; for (int i=0; i<240; i++) { // 32px -> 15px mod = i % 15; if (mod == 3 || mod == 11) { ++q; } q += 2; for (int it = 0; it < BW*BH; it += BW) { *(q-it) = COLORMIX(*(q-it),*(q-it-1)); } q1 = q; for (int j=0; j<182; j++) { // 16px -> 13px mod = j % 13; if (mod == 1 || mod ==5 || mod == 10) { *p = COLORMIX(*q1,*(q1-BW)); q1 -= BW; } else { *p = *q1; } ++p; q1 -= BW; } p += 138; } }
static void Blitr_384x224_to_320x240() { // CPS1 & CPS2 384x224 rotate to 192x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; int mod = 0; q += BW; p += 64; for (int i=0; i<240; i++) { --q; // 8px -> 5px mod = i % 5; if (mod != 1 && mod != 3) { --q; for (int it = 0; it < BW*BH; it += BW) { q[it] = COLORMIX(q[it],q[it+1]); } } q1 = q; for (int j=0; j<192; j++) { // 7px -> 6px if (j % 6 == 3) { p[0] = COLORMIX(q1[0],q1[BW]); q1 += BW; } else { p[0] = q1[0]; } ++p; q1 += BW; } p += 128; } }
static void Blitr_512x256_to_320x240() { // 512x256 rotate to 192x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; unsigned short * q1 = NULL; int mod = 0; q += BW; p += 64; for (int i=0; i<240; i++) { // 32px -> 15px mod = i % 15; if (mod == 3 || mod == 11) { --q; } q -= 2; for (int it = 0; it < BW*BH; it += BW) { q[it] = COLORMIX(q[it],q[it+1]); } q1 = q; for (int j=0; j<192; j++) { // 4px -> 3px if (j % 3 == 1) { p[0] = COLORMIX(q1[0],q1[BW]); q1 += BW; } else { p[0] = q1[0]; } ++p; q1 += BW; } p += 128; } }
static void Blitf_384x224_to_320x240() { // CPS1 & CPS2 384x224 unsigned short * p = &VideoBuffer[2560]; unsigned short * q = BurnVideoBuffer + 384 * 224 - 1 - 6; for (int i=0; i<224; i++) for (int j=0; j<64; j++) { p[0] = q[5]; p[1] = q[4]; p[2] = COLORMIX(q[3],q[2]); p[3] = q[1]; p[4] = q[0]; p += 5; q -= 6; } }
static void Blit_384x240_to_320x240() { // 384x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; for (int i=0; i<240; i++) for (int j=0; j<64; j++) { p[0] = q[0]; p[1] = q[1]; p[2] = COLORMIX(q[2],q[3]); p[3] = q[4]; p[4] = q[5]; p += 5; q += 6; } }
static void Blit_448x224_to_400x240() { // IGS 448x224 unsigned short * p = &VideoBuffer[8*400+4]; unsigned short * q = BurnVideoBuffer; for (int i=0; i<224; i++, p += 8) for (int j=0; j<56; j++) { p[0] = q[0]; p[1] = q[1]; p[2] = q[2]; p[3] = COLORMIX(q[3], q[4]); p[4] = q[5]; p[5] = q[6]; p[6] = q[7]; p += 7; q += 8; } }
static void Blit_380x224_to_320x240() { // silkroad 380x224 unsigned short * p = &VideoBuffer[2560+2]; unsigned short * q = BurnVideoBuffer; for (int i=0; i<224; i++) { for (int j=0; j<63; j++) { p[0] = q[0]; p[1] = q[1]; p[2] = COLORMIX(q[2],q[3]); p[3] = q[4]; p[4] = q[5]; p += 5; q += 6; } p[0] = q[0]; p[1] = q[1]; p += 5; q += 2; } }
static void Blit_352x240_to_320x240() { // V-System 352x240 unsigned short * p = &VideoBuffer[0]; unsigned short * q = BurnVideoBuffer; for (int i=0; i<240; i++) for (int j=0; j<32; j++) { p[0] = q[0]; p[1] = q[1]; p[2] = q[2]; p[3] = q[3]; p[4] = q[4]; p[5] = q[5]; p[6] = q[6]; p[7] = q[7]; p[8] = q[8]; p[9] = COLORMIX(q[9], q[10]); p += 10; q += 11; } }
static void Blit_376x240_to_320x240() { // myangel2 376x240 unsigned short * p = &VideoBuffer[3]; unsigned short * q = BurnVideoBuffer; for (int i=0; i<240; i++) { for (int j=0; j<62; j++) { p[0] = q[0]; p[1] = q[1]; p[2] = COLORMIX(q[2],q[3]); p[3] = q[4]; p[4] = q[5]; p += 5; q += 6; } p[0] = q[0]; p[1] = q[1]; p[2] = q[2]; p[3] = q[3]; p += 10; q += 4; } }