From 62c67467165972288a2aaa659733faf643847217 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Thu, 30 Oct 2025 06:36:42 +0100 Subject: [PATCH] player: wip rendering --- src/defs.s | 2 + src/levels.s | 19 ++++ src/player.s | 42 +++++++ src/update.s | 1 + tiles/bank8800.inc | 272 ++++++++++++++++++++++----------------------- 5 files changed, 200 insertions(+), 136 deletions(-) diff --git a/src/defs.s b/src/defs.s index efbd193..05ddbda 100644 --- a/src/defs.s +++ b/src/defs.s @@ -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 diff --git a/src/levels.s b/src/levels.s index 473e4e2..0d392c8 100644 --- a/src/levels.s +++ b/src/levels.s @@ -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 diff --git a/src/player.s b/src/player.s index fdee32e..8fb8662 100644 --- a/src/player.s +++ b/src/player.s @@ -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 diff --git a/src/update.s b/src/update.s index 800bc85..824249e 100644 --- a/src/update.s +++ b/src/update.s @@ -9,6 +9,7 @@ update_game: ; TODO: only clear used OAM call shadow_oam_clear + call player_update call player_draw diff --git a/tiles/bank8800.inc b/tiles/bank8800.inc index cb6d2e0..b5988ef 100644 --- a/tiles/bank8800.inc +++ b/tiles/bank8800.inc @@ -50,14 +50,14 @@ .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 @@ -67,86 +67,86 @@ .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 @@ -155,15 +155,15 @@ .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 @@ -171,70 +171,70 @@ ; 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 -- 2.30.2