> I've looked into PNG more, and it is actually realistic to > use exactly that algorithm on a Sam (albeit that there's no > need to be identical in byte streams) - it's just a linear > predictor and LZ77 + Huffman on the end. With that in mind, > I've downloaded some of the classic Dizzy maps from those > places that tile screenshots to produce game maps (in their > Amiga versions) and they're all sub 400kb. Most would even > fit into 256kb.
Andrew did a DEFLATE implementation worth looking at for PNG: http://sourceforge.net/projects/samflate/ It could be worth-wile to look at some variant of modified Huffman RLE. Speed-wise it should be faster, but with an pre-optimised tree could also quite possibly be smaller given the low bit depth. : > How about two pages for the current screen, each filled with > the same data by the screen decompressor, which is (in order): > > 24576 bytes; normal screen image > 6144 bytes; mask image - bit set = that pixel is in front of > the character sprites, bit clear = that pixel is behind, same > bit layout as a Mode 2 screen > 768 bytes; collision tile map. 32x24 entries, each a byte in > length, linear left-to-right, top-to-bottom as per Mode 1 > attributes. Just use 0 = empty, 1 = solid for now? Never liked the Dizzy games myself, hence I haven't played them much, but shouldn't the collision detecion be more finely grained than that? -Frode