Originally Posted by Codetapper
But again, a tiny bob may be in 4 different tiles. Potentially only 1 pixel high in the corner of 4 different tiles.
If it is only 1 pixel high, surely it can cover a maximum of only 2 different tiles.
Bit pedantic, i know. I get your point. But what is the total area of all these tiny bobs, compared to the total area of the large bobs? Usually, not a lot. Sure it costs us a bit of CPU time to handle these cases, but saves us a full blit the size of the bob for every bob on the screen, tiny or not.
And the chances of a bob overlapping more than one tile is at least 15/16. The only case where it wouldn't is a bob 16 pixels wide that fits perfectly inside the tile, so aligned on the edges.
Well that's one reason i use 32x32 tiles, although it is still advantageous not to cross word boundaries anyway, so i'm careful in the positioning of objects that only move along one axis. For platform games, this happens naturally anyway, since enemies spend a lot of time standing or walking on the platforms.
With some careful thought, it is possible to have bobs less than 16 pixels wide. Yes it will necessarily take up the full word width in memory, but if it has a few blank pixels down one side, obviously you don't need to draw or redraw that part, if it crosses a word boundary.
But coming back to Chuck Rock again for just a second, it makes me wonder about their design choice, if they are using the normal save/draw/clear method but drawing on the background layer, why have they bothered to do this? It must be because they want to use that colour palette, since it can have no performance advantage.
If, however, you wanted to use the foreground palette, but were content with bobs appearing "behind" the playfield, it might be advantageous to use the method i speculated about earlier. Are you aware of any games that use such a technique?