Project Update #In previous updates, I talked about how I doubled the ROM size and I've tried to describe the consequences of this. Today I'd like to show you what it means with a picture.
Here is a comparison of the Marsh and Water zones, as they appeared in the demo, and now redone with the new target data size.
I'm very happy with what the bigger ROM size is letting me do. This looks and feels a lot more like what I had in mind when I was initially planning the game. There's more space to explore, and a lot of places that I felt were crowded can now be relaxed.
NES Tiling
Backgrounds on the NES are made of a grid of 8x8 pixel tiles, but using a 16x16 pixel grid of colours. Several systems of the time separated colour and detail, but the size disparity between these two things on the NES is a rather unusual feature of the machine.
The colour grid, known as the "attribute" table, allows you to select 1 of 4 palettes to use in each 16x16 region of the screen. Each of these regions requires 2 bits of data, so it packs groups of 4 of them into a single 8-bit byte representing a 32x32 pixel region of the screen. Various NES developers took a different approach to organizing their map data for the hardware.
Legacy of the Wizard builds its levels entirely with 16x16 pixel blocks. Basically, the 8x8 level of detail is foregone in solidarity with the colour selection. Most NES games are organized in a similar way.
Battletoads uses larger 32x32 pixel blocks. In this way it seems to be organized around whole attribute bytes, rather than the highest level of colour detail. The larger block size also helps create larger maps with less data. Because Battletoads scrolls in all directions and has large character sprites, this seems a sensible choice.
Lizard uses an 8x8 pixel level of detail, and I have to carefully tiptoe around the 16x16 colour grid while I'm laying out the tiles. A consequence of this is that my maps potentially take 4 times as much information as ones using 16x16 blocks. This is why doubling the ROM size has made such a difference; I wanted small characters and a high level of visual detail, and this has a significant data cost!
Sometimes I am at the mercy of the hardware, however, especially in areas which require an extra colour in the palette for the sky. Some places in Lizard have a blockier 16x16 look, where I am unable to work around the limitations.
Nekketsu! Street Basket: Ganbare Dunk Heroes
Well made NES backgrounds often involve art that is drawn in ways that hide the 16x16 boundaries. I think this one from Nekketsu! Street Basket: Ganbare Dunk Heroes is particularly well crafted, though it does have the luxury of being merely a backdrop, not bound by functional constraints like maps in a platform game would be.