dos33fsprogs/games/keen/NOTES
2024-03-25 00:53:05 -04:00

77 lines
1.5 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)
$9000-$93ff = tiles (1k)
$9400-????? = big_tilemap (10k)
$BC00-????? = tilemap (1k) 10x16
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