Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Ah, OK that makes sense. Nice idea for compression! So you're saying 1 byte per block, and the key block position. Then a block count? Or a bit to represent the end of the level data? What's the largest level's size? (Sorry for all the questions, I just really enjoy this stuff :-)

(4 edits)

No, I love great questions!  Yes exactly 1 Byte per block.  1 Byte for the key block and header.  I basically search through each Byte for the header flag. When I find one I loop that 122 more times, it then stops at header 123 and then loads the blocks after it until the next header/keyblock byte.  If you're curious I have a header byte for level 10001 so that it knows how to load level 10000 :). You might think that it's slow to do that, but it's about 1300ish levels in each rom bank and I have constants to determine which rom bank to search based on which level is being loaded.  So at most it takes maybe half a second to find the correct level to load.  I think my largest level is 16 blocks but I can't remember with 100% certainty.