Or it could be faster... resize-crop-resize vs direct write to framebuffer. I also think this would automatically solve the problem with garbled hires ham screens (if i remember correctly, in HAM mode, pixel color depends on a pixel next to it.)