player: wip rendering
authorLukas Krickl <lukas@krickl.dev>
Thu, 30 Oct 2025 05:36:42 +0000 (06:36 +0100)
committerLukas Krickl <lukas@krickl.dev>
Thu, 30 Oct 2025 05:36:42 +0000 (06:36 +0100)
src/defs.s
src/levels.s
src/player.s
src/update.s
tiles/bank8800.inc

index efbd193ebf293509418a0c3505f99aa2f186c76d..05ddbdadbad9c144565994d56541000c0db248e5 100644 (file)
@@ -59,6 +59,8 @@
 .de map_tile_bank2_ptr, 2
 .de map_tile_bank3_ptr, 2
 .de map_header_size, 0
+.de map_tiles, MAP_W * MAP_H
+.de map_size, 0
 
        ; the map header is followed by MAP_W * MAP_H bytes
        
index 473e4e2b39e045ac8764dfabeace5f323fbb21a0..0d392c87c5f877c2d6d67172b9a5491fffa9ae40 100644 (file)
@@ -21,6 +21,25 @@ level_def_to_tile:
        ; levels always have a header
        ; with flags, tilesets to load
        ; followed by a 16x16 tilemap
+       ; the tilemap is an index into a tile lookup
+       ; table. The tile defs are then copied to a map_tiles table (16x16)
+       ; where each tile has values and its current state. The map can be drawn from this.
 
 l1:
        mapdef 0, map_r_nop, bank8000, bank8800, bank8C00, bank9000
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
+       .db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
index fdee32e112874afc0f942c41927ee8eeaf0e2dd7..8fb8662393467e021aa974e6f7cab4bbf8240fad 100644 (file)
@@ -1,3 +1,6 @@
+#define PLAYER_CURSOR_L 0x88
+#define PLAYER_CURSOR_R 0x8A
+
 
        ; sets up the player actor
 player_init:
@@ -9,4 +12,43 @@ player_update:
        
        ; draws player at current location
 player_draw:
+       ld a, 2
+       call oamalloc
+       
+       ; write left cursor
+       ld a, 100
+
+       ; write y
+       ld [hl+], a
+
+       ; write x
+       ld [hl+], a
+
+       ; write tile
+       ld a, PLAYER_CURSOR_L
+       ld [hl+], a
+
+       ; write flags
+       xor a, a
+       ld [hl+], a
+
+       ; write right cursor
+
+
+       ; write y
+       ld a, 100
+       ld [hl+], a
+
+       ; write x
+       ld a, 108
+       ld [hl+], a
+
+       ; write tile
+       ld a, PLAYER_CURSOR_R
+       ld [hl+], a
+
+       ; write flags
+       xor a, a
+       ld [hl+], a
+
        ret
index 800bc85db16c7c332f3b73cca0d0baec1bafbbae..824249e87fb66c246818dca3659b62cb0806393c 100644 (file)
@@ -9,6 +9,7 @@ update_game:
        ; TODO: only clear used OAM
   call shadow_oam_clear
 
+
        call player_update
        call player_draw
 
index cb6d2e00d9e470c764db595b9ccbc0e2cc94650f..b5988ef5560cf2e5a688c4aad683aefe9b1d955e 100644 (file)
 .chr 00000000
 .chr 00000000
 ; tile 3
-.chr 00003000
-.chr 00020300
-.chr 00020030
-.chr 00200030
-.chr 00200030
-.chr 00020030
-.chr 00020300
-.chr 00003000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 4
+.chr 33333300
+.chr 31222200
+.chr 32000000
+.chr 32000000
+.chr 32000000
+.chr 32000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
-.chr 00000033
-.chr 00000333
-.chr 00000322
-.chr 00000022
-.chr 00003111
-.chr 00001111
-.chr 00001111
-.chr 00003211
-.chr 00000111
-.chr 00000333
-.chr 00000330
-.chr 00000330
-.chr 00000330
-.chr 00000330
 .chr 00000000
+.chr 32000000
+.chr 32000000
+.chr 32000000
+.chr 32000000
+.chr 31222200
+.chr 33333300
 ; tile 5
+.chr 00333333
+.chr 00222213
+.chr 00000023
+.chr 00000023
+.chr 00000023
+.chr 00000023
+.chr 00000000
 .chr 00000000
-.chr 30000000
-.chr 33000000
-.chr 23000000
-.chr 20000000
-.chr 11300000
-.chr 11100000
-.chr 11100000
-.chr 11100000
-.chr 11320000
-.chr 33000000
-.chr 33000000
-.chr 33000000
-.chr 33000000
-.chr 33000000
 .chr 00000000
+.chr 00000000
+.chr 00000023
+.chr 00000023
+.chr 00000023
+.chr 00000023
+.chr 00222223
+.chr 00333333
 ; tile 6
 .chr 00000000
-.chr 00033300
-.chr 00333330
-.chr 00011100
-.chr 00022200
-.chr 01111111
-.chr 01111111
-.chr 02111112
-.chr 03111112
-.chr 00111113
-.chr 00333330
-.chr 00110110
-.chr 00220220
-.chr 00220220
-.chr 00330330
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
 ; tile 7
 .chr 00000000
-.chr 00033300
-.chr 00333330
-.chr 00011100
-.chr 00022200
-.chr 01111111
-.chr 01111111
-.chr 02111112
-.chr 02111113
-.chr 03111110
-.chr 00333330
-.chr 00110120
-.chr 00220330
-.chr 00220000
-.chr 00330000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
 ; tile 8
 .chr 00000000
 .chr 00000000
 .chr 00000000
-.chr 03000000
-.chr 03000000
-.chr 00300000
-.chr 00033333
-.chr 00031111
-.chr 00031111
-.chr 00031333
-.chr 00003000
-.chr 00003000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
-.chr 00030000
-.chr 00030000
-.chr 00313000
-.chr 33112300
-.chr 11111133
-.chr 11113300
-.chr 33313000
-.chr 00030000
-.chr 00030000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
 .chr 00000000
 .chr 00000000
 ; tile 10
 .chr 00000000
 .chr 00000000
-.chr 00000111
-.chr 00000122
-.chr 00000122
-.chr 00003111
-.chr 00001111
-.chr 00001333
-.chr 00003233
-.chr 00000111
-.chr 00000333
-.chr 00000330
-.chr 00000330
-.chr 00000330
-.chr 00000330
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
 ; tile 11
 .chr 00000000
 .chr 00000000
-.chr 10000000
-.chr 20000000
-.chr 10000000
-.chr 11300000
-.chr 11100000
-.chr 33333000
-.chr 33333300
-.chr 11320000
-.chr 33000000
-.chr 33000000
-.chr 33000000
-.chr 33000000
-.chr 33000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
 ; tile 12
 .chr 00000000
-.chr 00000333
-.chr 00000333
-.chr 00333222
-.chr 03333222
-.chr 00321111
-.chr 00001111
-.chr 00000111
-.chr 00000333
-.chr 00000111
-.chr 00000333
-.chr 00000330
-.chr 00000330
-.chr 00000330
-.chr 00000330
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
 ; tile 13
 .chr 00000000
-.chr 30000000
-.chr 30000000
-.chr 23323300
-.chr 23313331
-.chr 11113300
-.chr 11100000
-.chr 11000000
-.chr 33000000
-.chr 11000000
-.chr 33000000
-.chr 33000000
-.chr 33000000
-.chr 33000000
-.chr 33000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
+.chr 00000000
 .chr 00000000
 ; tile 14
 .chr 00000000