removed mixed scalers entirely, they're in git
This commit is contained in:
parent
2eb550826d
commit
d24721469d
4 changed files with 1 additions and 102 deletions
|
|
@ -1039,84 +1039,3 @@ void scale6x_c32(void* __restrict src, void* __restrict dst, uint32_t sw, uint32
|
||||||
memcpy((uint8_t*)dst+dp*5, dst, swl);
|
memcpy((uint8_t*)dst+dp*5, dst, swl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// mixed scalers
|
|
||||||
//
|
|
||||||
|
|
||||||
void scale1x2_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp) {
|
|
||||||
if (!sw||!sh) { return; }
|
|
||||||
uint32_t swl = sw*sizeof(uint16_t);
|
|
||||||
if (!sp) { sp = swl; } if (!dp) { dp = swl*1; }
|
|
||||||
for (; sh>0; sh--, src=(uint8_t*)src+sp, dst=(uint8_t*)dst+dp*2) {
|
|
||||||
memcpy(dst, src, swl);
|
|
||||||
memcpy((uint8_t*)dst+dp, dst, swl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void scale2x1_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp) {
|
|
||||||
if (!sw||!sh) { return; }
|
|
||||||
uint32_t x, dx, pix, dpix1, dpix2, swl = sw*sizeof(uint16_t);
|
|
||||||
if (!sp) { sp = swl; } swl*=2; if (!dp) { dp = swl; }
|
|
||||||
for (; sh>0; sh--, src=(uint8_t*)src+sp, dst=(uint8_t*)dst+dp*1) {
|
|
||||||
uint32_t *s = (uint32_t* __restrict)src;
|
|
||||||
uint32_t *d = (uint32_t* __restrict)dst;
|
|
||||||
for (x=dx=0; x<(sw/2); x++, dx+=2) {
|
|
||||||
pix = s[x];
|
|
||||||
dpix1=(pix & 0x0000FFFF)|(pix<<16);
|
|
||||||
dpix2=(pix & 0xFFFF0000)|(pix>>16);
|
|
||||||
d[dx] = dpix1; d[dx+1] = dpix2;
|
|
||||||
}
|
|
||||||
if (sw&1) {
|
|
||||||
uint16_t *s16 = (uint16_t*)s;
|
|
||||||
uint16_t pix16 = s16[x*2];
|
|
||||||
d[dx] = pix16|(pix16<<16);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void scale2x3_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp) {
|
|
||||||
if (!sw||!sh) { return; }
|
|
||||||
uint32_t x, dx, pix, dpix1, dpix2, swl = sw*sizeof(uint16_t);
|
|
||||||
if (!sp) { sp = swl; } swl*=2; if (!dp) { dp = swl; }
|
|
||||||
for (; sh>0; sh--, src=(uint8_t*)src+sp, dst=(uint8_t*)dst+dp*3) {
|
|
||||||
uint32_t *s = (uint32_t* __restrict)src;
|
|
||||||
uint32_t *d = (uint32_t* __restrict)dst;
|
|
||||||
for (x=dx=0; x<(sw/2); x++, dx+=2) {
|
|
||||||
pix = s[x];
|
|
||||||
dpix1=(pix & 0x0000FFFF)|(pix<<16);
|
|
||||||
dpix2=(pix & 0xFFFF0000)|(pix>>16);
|
|
||||||
d[dx] = dpix1; d[dx+1] = dpix2;
|
|
||||||
}
|
|
||||||
if (sw&1) {
|
|
||||||
uint16_t *s16 = (uint16_t*)s;
|
|
||||||
uint16_t pix16 = s16[x*2];
|
|
||||||
d[dx] = pix16|(pix16<<16);
|
|
||||||
}
|
|
||||||
memcpy((uint8_t*)dst+dp*1, dst, swl);
|
|
||||||
memcpy((uint8_t*)dst+dp*2, dst, swl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void scale4x2_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp) {
|
|
||||||
if (!sw||!sh) { return; }
|
|
||||||
uint32_t x, dx, pix, dpix1, dpix2, swl = sw*sizeof(uint16_t);
|
|
||||||
if (!sp) { sp = swl; } swl*=4; if (!dp) { dp = swl; }
|
|
||||||
for (; sh>0; sh--, src=(uint8_t*)src+sp, dst=(uint8_t*)dst+dp*2) {
|
|
||||||
uint32_t *s = (uint32_t* __restrict)src;
|
|
||||||
uint32_t *d = (uint32_t* __restrict)dst;
|
|
||||||
for (x=dx=0; x<(sw/2); x++, dx+=4) {
|
|
||||||
pix = s[x];
|
|
||||||
dpix1=(pix & 0x0000FFFF)|(pix<<16);
|
|
||||||
dpix2=(pix & 0xFFFF0000)|(pix>>16);
|
|
||||||
d[dx] = dpix1; d[dx+1] = dpix1; d[dx+2] = dpix2; d[dx+3] = dpix2;
|
|
||||||
}
|
|
||||||
if (sw&1) {
|
|
||||||
uint16_t *s16 = (uint16_t*)s;
|
|
||||||
uint16_t pix16 = s16[x*2];
|
|
||||||
dpix1 = pix16|(pix16<<16);
|
|
||||||
d[dx] = dpix1; d[dx+1] = dpix1;
|
|
||||||
}
|
|
||||||
memcpy((uint8_t*)dst+dp*1, dst, swl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -51,10 +51,4 @@ void scale5x_c32(void* __restrict src, void* __restrict dst, uint32_t sw, uint32
|
||||||
void scale6x_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
void scale6x_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
||||||
void scale6x_c32(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
void scale6x_c32(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
||||||
|
|
||||||
// mixed scalers
|
|
||||||
void scale1x2_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
|
||||||
void scale2x1_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
|
||||||
void scale2x3_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
|
||||||
void scale4x2_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -2316,20 +2316,6 @@ static void selectScaler_AR(int width, int height, int pitch) {
|
||||||
case 3: renderer.scaler = scale3x_n16; break;
|
case 3: renderer.scaler = scale3x_n16; break;
|
||||||
case 2: renderer.scaler = scale2x_n16; break;
|
case 2: renderer.scaler = scale2x_n16; break;
|
||||||
default: renderer.scaler = scale1x_n16; break;
|
default: renderer.scaler = scale1x_n16; break;
|
||||||
// case 4:
|
|
||||||
// if (scale_y==2) renderer.scaler = scale4x2_c16;
|
|
||||||
// else renderer.scaler = scale4x_c16;
|
|
||||||
// break;
|
|
||||||
// case 3:
|
|
||||||
// if (scale_x==2) renderer.scaler = scale2x3_c16;
|
|
||||||
// else renderer.scaler = scale3x_c16;
|
|
||||||
// break;
|
|
||||||
// case 2:
|
|
||||||
// if (scale_x==1) renderer.scaler = scale1x2_c16;
|
|
||||||
// else if (scale_y==1) renderer.scaler = scale2x1_c16;
|
|
||||||
// else renderer.scaler = scale2x_c16;
|
|
||||||
// break;
|
|
||||||
// default: renderer.scaler = scale1x_n16; break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scaler_surface) SDL_FreeSurface(scaler_surface);
|
if (scaler_surface) SDL_FreeSurface(scaler_surface);
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ static CoreOverrides pokemini_overrides = {
|
||||||
.core_name = "pokemini",
|
.core_name = "pokemini",
|
||||||
.option_overrides = (OptionOverride[]){
|
.option_overrides = (OptionOverride[]){
|
||||||
{"pokemini_video_scale", "6x",1},
|
{"pokemini_video_scale", "6x",1},
|
||||||
{"pokemini_60hz_mode", "enabled",1},
|
{"pokemini_60hz_mode", "enabled",1}, // 75fps isn't practical here
|
||||||
{"pokemini_palette", "Old"},
|
{"pokemini_palette", "Old"},
|
||||||
{"pokemini_piezofilter", "disabled"},
|
{"pokemini_piezofilter", "disabled"},
|
||||||
{"pokemini_lowpass_filter", "enabled"},
|
{"pokemini_lowpass_filter", "enabled"},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue