I am just about to do this in a worms clone I am making.
I am currently going to use an array for each pixel in the game area. I think I am going to store the colour of the pixel in the array for easy drawing of the image. Then just use a memblock to make the image from the data in the array.
It uses quite a lot of memory, an array(3071,767) and a 1024x768 memblock.
I think I should be able to keep the speed at a resonable level without too much clever code.
Unfortunatly it will also require I write some pixel perfect collision routines. I think there are a couple about that others have writen, check the codebase and code snippets forums.
I recently wrote a space invaders type game that uses a similar technique for the shields, the shields are much smaller so speed is obviously less of a problem.
http://winch.dbspot.com/space_inv.php
link is down atm.
can i scream