Changes
Per char :
*1 byte BYTE : flag , is equal to #36 =emptyif block is not collidable*BYTE*8 bytes : pixels in 1bitgraphics
There are 16 chars so 144 bytes per block.
Levels are composed of columns of 5 blocks.The first column of the level is located at #C4B1 (byte).The column number 0 is located at (#C4BC)
Using block index , it is possible to compute address (word) with this simple formula :
(#C4BC)-((index+1)*144) Routine at #167B solves block index in A and return block address in HL. Code located at #5C4F draws the first screen of the level before scrolling.It uses the sprite code (#8D08,#8D70,#8DDE,#8E34) to put the level graphics on screen. Current column is located at #7A84 and there is a copy of (#C4BC) at #C4AE.When game passes a checkpoint , it saves the current column at #C4AE so when player dies, game restarts at #C4AE. Code located at #8A7F feeds scrolling , update attribute array , draw blocks on right side of the screen.There are 4 routines to feed scroll according to reverse flags. * #1E4C - x=N y=N* #1E83 - x=R y=N* #1EC3 - x=N y=R* #1640 - x=R y=R
[[User:Fano|Fano]] 20:23, 6 January 2010 (UTC)