I've been thinking about the backgrounds...
I assume for the concept art, you've been tiling them in photoshop (or something). That's probably more work then it needs to be, i can work just as well using a sketch like this:
http://picasaweb.google.com/h4ckur/P...00607952104306
And that's a really poor quality example, but i can work with it. Just tell me which tiles go with what number.
As for the colors of the background, that becomes a little tougher. If we want to use more then 4 colors per screen i'm going to have to assemble the tables by hand. It's not hard to do, it's just time consuming. Here's how it works:
You have 4 palettes per screen: 00, 01, 10, and 11. If the first 4 tiles use palettes 00, 00, 01, 10, then the first byte of the table would just be those numbers put together 00000110. Then i would convert that back to base 10, so it equals 6. So 6 would be the first entry in the table.
Now i just do it 63 more times per screen. Like i said, it's not hard but it takes some time. I'd certainly like to do it though because it adds a lot more to the backgrounds.
The only real problem is size. A background is setup by a grid of 224 bytes. Each byte describes a meta-tile of 2x2 tiles. Add in the 64 bytes for each attribute table and we're at 288 bytes per background (plus some extra to define each tile). We have about 9k of space left in the rom (from a total of 32K). If we set aside 3K of space for backgrounds, we can fit in 10 different background designs using 4 color palettes. If we were to limit the backgrounds to 4 colors, we could fit 15 backgrounds in the same amount of space.
The wild card is the compression scheme i came up with to reduce the size of the backgrounds. It's a very simple compression, but it doesn't take up much code to execute. I could do better compression, but that takes more code and more CPU time. If the decompression code takes up more space then it saves, it doesn't do us any good.
- Ace