What's the fastest way to do parallax scrolling in a 16-bit 640x480 graphics mode, using Allegro (DOS)? The game that I'm writing (a platform game) uses two parallax scrolling layers plus 3 "normal" layers, and it's too slow to redraw the whole screen using a double buffer every frame (I only get 20 fps on my P2-233 MMX with a cheap Cirrus Logic 5446 video card, with 2MB of VRAM, without music or even enemies.) The only way to get my game to run at a decent speed right now is to drop frames (it's choppy, but at least it's playable). I could try to use 8-bit mode instead, but I designed my graphics to work in 16-bit, and I don't really want to deal with the inevitable pallete problems - together, some of the background and foreground graphics use as much as 27,000 colors. I will if I absolutely have to, though, because I care more about the gameplay than what the graphics look like... but part of the reason I used 16-bit in the first place was to make my game engine more flexible (and forward compatible with future games I might write) - it's designed to be added onto in just about every respect including levels, graphics, and music. It's easier to do this without having to deal with palletes. I could also just live with the choppy framerate, but imagine what it would be like on a slower system. I could also drop the parallax backgrounds, but I want to do that even less than converting my game to 8-bit (they add a lot of feel to the game). Any ideas to make this run faster (40-60 fps)? Or is this really just too much for the computer (and video card) to handle? Dirty rectangles probably wouldn't work too well, since everything on the screen scrolls. Hardware acceleration might, but the VBE/AF drivers don't work right with my card (I can get into the mode, but blitting doesn't work right), and not everybody has hardware accelerated drivers anyway.