dos33fsprogs/games/keen/NOTES

86 lines
1.7 KiB
Plaintext

Memory map:
$0000-$00ff = zero page
$0100-$01ff = stack
$0200-$03ff = ???
$0400-$07ff = lo-res page1
$0800-$0bff = lo-res page2
$0c00-$0fff = background image
$1000-$1fff = loader
$2000-$3fff = code (8k? currently 5k)
; MARS = 6k
; LEVEL1 = 6k
; TITLE = 4k
; LOAD engine at $4000
; $4000 - $5fff = 8k worst case
; LOAD level data at $6000
; $6000 - $7fff = 8k worst case
$9000-$93FF = tiles (1k)
$9400-$BBFF = big_tilemap (10k) 128x80
$BC00-$BCFF = small tilemap (256B) 20x12
tiles are 2x4, or 4 bytes each
so in theory can have up to 256 of them
but if we want data to fit in one page then 64 it the maximum
tilemap:
tilemap is 256 wide by 40 tall = 10k
Tile types:
0..26 transparent tiles
27..31 items
32..39 walkthrough tiles
40..63 hard tiles
Status:
0123456789012345678901234567890123456789
****************************************
* KK KK KK KK KK KK * RR YY * *
* KK KK KK KK KK KK * RR YY * *
* KK KK KK KK KK KK * BB GG * *
* KK KK KK KK KK KK * BB GG * *
****************************************
* KEENS KEYCARDS PARTS *
****************************************
* SCORE * NEXT KEEN * RAYGUN * POGO*
* 33221100 * 20000 * 5 * N *
score always multiple of 100
Level1:
in png: X=80 to 543, Y=12 to 80 (tiles 4x4)
x=0 to 116 Y=0..17
start position: in png 88,65
tile position = 0,5
keen position = 2,24 (remember, tiles 2 bytes high)
tilemap copies
TILEMAP_X
TILEMAP_Y
KEEN_X / KEEN_XL
KEEN_Y
Enemy logic:
when update tilemap
detect if enemy on screen
if so mark active
give it current x/y value
when move
same as keen move
if move off left/right side of screen mark inactive