void MoviePlayer::drawFramePSX(const Graphics::Surface *frame) { // The PSX videos have half resolution Graphics::Surface scaledFrame; scaledFrame.create(frame->getWidth(), frame->getHeight() * 2, frame->getFormat()); for (int y = 0; y < scaledFrame.getHeight(); y++) memcpy(scaledFrame.getBasePtr(0, y), frame->getBasePtr(0, y / 2), scaledFrame.getWidth() * scaledFrame.getFormat().bytesPerPixel); uint16 x = (g_system->getWidth() - scaledFrame.getWidth()) / 2; uint16 y = (g_system->getHeight() - scaledFrame.getHeight()) / 2; _vm->_system->copyRectToScreen(scaledFrame.getPixels(), scaledFrame.getPitch(), x, y, scaledFrame.getWidth(), scaledFrame.getHeight()); }