2024-03-13 04:46:34 +00:00
|
|
|
|
|
|
|
|
|
|
|
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
|
2024-03-17 04:29:57 +00:00
|
|
|
$2000-$3fff = code (8k? currently 5k)
|
|
|
|
|
2024-04-19 05:30:17 +00:00
|
|
|
; 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
|
2024-03-13 04:46:34 +00:00
|
|
|
|
|
|
|
tiles are 2x4, or 4 bytes each
|
|
|
|
so in theory can have up to 256 of them
|
2024-03-14 05:21:45 +00:00
|
|
|
but if we want data to fit in one page then 64 it the maximum
|
|
|
|
|
|
|
|
tilemap:
|
2024-03-13 04:46:34 +00:00
|
|
|
tilemap is 256 wide by 40 tall = 10k
|
|
|
|
|
2024-03-14 05:21:45 +00:00
|
|
|
Tile types:
|
|
|
|
0..26 transparent tiles
|
|
|
|
27..31 items
|
|
|
|
32..39 walkthrough tiles
|
|
|
|
40..63 hard tiles
|
|
|
|
|
2024-03-13 04:46:34 +00:00
|
|
|
|
2024-03-16 05:28:25 +00:00
|
|
|
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*
|
2024-03-20 05:47:05 +00:00
|
|
|
* 33221100 * 20000 * 5 * N *
|
|
|
|
|
|
|
|
score always multiple of 100
|
2024-03-16 05:28:25 +00:00
|
|
|
|
|
|
|
|
2024-03-16 20:09:01 +00:00
|
|
|
Level1:
|
|
|
|
in png: X=80 to 543, Y=12 to 80 (tiles 4x4)
|
|
|
|
x=0 to 116 Y=0..17
|
2024-03-16 05:28:25 +00:00
|
|
|
|
2024-03-16 20:09:01 +00:00
|
|
|
start position: in png 88,65
|
|
|
|
tile position = 0,5
|
|
|
|
keen position = 2,24 (remember, tiles 2 bytes high)
|
2024-03-16 05:28:25 +00:00
|
|
|
|
2024-03-16 20:09:01 +00:00
|
|
|
tilemap copies
|
2024-03-16 05:28:25 +00:00
|
|
|
|
2024-03-25 04:53:05 +00:00
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|