Limited area refresh

This is sort of a continuation of the faster way thread, but it’s along
a different route. I did some major re-coding of the iso engine and got
the frame rates up highter (by not redrawing entire display every frame)
and now I’d like to work on the limited area refreshing. I’ve come up
with two different aproaches:

The first is to track everything and build a ‘changed areas’ list, this
would require lots of bookkeeping, unitX moved from here to here so this
produces a change-area, unitY turned so that produces a change-area,

The second is to keep a copy of the back buffer from before the refresh
and compare it to the new buffer to determine the changes.

The second method is more algorithmic, and I think it’s a bit more
elegent because I would not have to worry about tracking anything, it
would just work regardless of how something changes. But I’m not sure
about speed issues. So I’m curios what people think of the two ideas.