Mac,Unix: Add 256*448,478 support / Mac:code cleanup

This commit is contained in:
zones 2011-02-20 20:27:20 +09:00
parent c717e7d5ef
commit a013ae3306
4 changed files with 619 additions and 1370 deletions

View File

@ -327,6 +327,23 @@ void S9xBlitPixHiRes16 (uint8 *srcPtr, int srcRowBytes, uint8 *dstPtr, int dstRo
}
}
void S9xBlitPixDoubled16 (uint8 *srcPtr, int srcRowBytes, uint8 *dstPtr, int dstRowBytes, int width, int height)
{
for (; height; height--)
{
uint16 *dP = (uint16 *) dstPtr, *bP = (uint16 *) srcPtr;
for (int i = 0; i < width; i++)
{
*dP++ = *bP;
*dP++ = *bP++;
}
srcPtr += srcRowBytes;
dstPtr += dstRowBytes;
}
}
void S9xBlitPixScaledTV16 (uint8 *srcPtr, int srcRowBytes, uint8 *dstPtr, int dstRowBytes, int width, int height)
{
uint8 *dstPtr2 = dstPtr + dstRowBytes, *deltaPtr = XDelta;

View File

@ -192,6 +192,7 @@ void S9xBlitNTSCFilterSet (const snes_ntsc_setup_t *);
void S9xBlitPixSmall16 (uint8 *, int, uint8 *, int, int, int);
void S9xBlitPixScaled16 (uint8 *, int, uint8 *, int, int, int);
void S9xBlitPixHiRes16 (uint8 *, int, uint8 *, int, int, int);
void S9xBlitPixDoubled16 (uint8 *, int, uint8 *, int, int, int);
void S9xBlitPixScaledTV16 (uint8 *, int, uint8 *, int, int, int);
void S9xBlitPixHiResTV16 (uint8 *, int, uint8 *, int, int, int);
void S9xBlitPixHiResMixedTV16 (uint8 *, int, uint8 *, int, int, int);

File diff suppressed because it is too large Load Diff

View File

@ -789,19 +789,28 @@ void S9xPutImage (int width, int height)
if (width <= SNES_WIDTH)
{
copyWidth = width * 2;
copyHeight = height * 2;
switch (GUI.video_mode)
if (height > SNES_HEIGHT_EXTENDED)
{
case VIDEOMODE_BLOCKY: blitFn = S9xBlitPixScaled16; break;
case VIDEOMODE_TV: blitFn = S9xBlitPixScaledTV16; break;
case VIDEOMODE_SMOOTH: blitFn = S9xBlitPixSmooth16; break;
case VIDEOMODE_SUPEREAGLE: blitFn = S9xBlitPixSuperEagle16; break;
case VIDEOMODE_2XSAI: blitFn = S9xBlitPix2xSaI16; break;
case VIDEOMODE_SUPER2XSAI: blitFn = S9xBlitPixSuper2xSaI16; break;
case VIDEOMODE_EPX: blitFn = S9xBlitPixEPX16; break;
case VIDEOMODE_HQ2X: blitFn = S9xBlitPixHQ2x16; break;
copyWidth = width * 2;
copyHeight = height;
blitFn = S9xBlitPixDoubled16;
}
else
{
copyWidth = width * 2;
copyHeight = height * 2;
switch (GUI.video_mode)
{
case VIDEOMODE_BLOCKY: blitFn = S9xBlitPixScaled16; break;
case VIDEOMODE_TV: blitFn = S9xBlitPixScaledTV16; break;
case VIDEOMODE_SMOOTH: blitFn = S9xBlitPixSmooth16; break;
case VIDEOMODE_SUPEREAGLE: blitFn = S9xBlitPixSuperEagle16; break;
case VIDEOMODE_2XSAI: blitFn = S9xBlitPix2xSaI16; break;
case VIDEOMODE_SUPER2XSAI: blitFn = S9xBlitPixSuper2xSaI16; break;
case VIDEOMODE_EPX: blitFn = S9xBlitPixEPX16; break;
case VIDEOMODE_HQ2X: blitFn = S9xBlitPixHQ2x16; break;
}
}
}
else