I made an iOS game using GLES 2.0 for iOS. When I run it on an actual device, it works perfectly with my high-res images, but when I run it in the simulator, I get very choppy images:

I haven’t really cared during development, but now that I am going to submit to the iTunes Store, I have to upload screenshots for 3.5” and 4” iPhones, which I don’t have (I’ve been developing on an iPad). So I decided to use simulator, but I honestly can’t use these screenshots.
Short of buying 3.5” and 4” devices just to take the screenshots, how can I fix this and get good quality screenshots?
Note: The original images are of huge quality. They don’t look choppy at all even on the retina iPad.
It turns out the simulator was right all along.
I tried the final version on a friend’s iPhone 5, and at first sight it looked okay, but on closer inspection it looked just like the screenshot above. I could verify this by having my friend take a screenshot, and in fact looks just like the screenshot I posted up there.
The reason why it looks good on the iPad is because on the iPad, the game is actually upscaling the textures even if just slightly, and the upscaling algorithm yields better results than the downscaling one. (I can swear it looks pretty good on 480×320 2.3 droids)
So anyways, I started fixing the problem by creating mipmaps at loading time with
And then setting the downscaling to use these mipmaps with
And now the choppy downscaling is gone, but replaced by a smudgy one. orz
Actually doing this revealed that I was incorrectly using the support for retina displays. The app was running with the resolution of an iPhone 3GS.
So I just had to make sure the framebuffer was created with the correct size, and the problem was gone. However, with retina display, I was upscaling my textures again, so I left the mipmap creation (which consumes more VRAM and makes the game slower to load) only on non-retina devices.