From: Lukas Krickl Date: Thu, 2 Apr 2026 11:48:52 +0000 (+0200) Subject: player: limited cursor to screen space X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=42e9096d8b953efcb4de876e4e11839027b41610;p=pcq%2F.git player: limited cursor to screen space Added new tiles --- diff --git a/assets/maps/l1.tmx b/assets/maps/l1.tmx index 325c479..360dc61 100644 --- a/assets/maps/l1.tmx +++ b/assets/maps/l1.tmx @@ -5,18 +5,18 @@ 1,1,1,1,1,1,6,6,5,5,5,5,6,6,1,1,1,1,1,1, 1,1,1,1,1,1,6,6,5,5,5,5,6,6,1,1,1,1,1,1, -1,1,18,18,5,5,6,6,3,3,3,3,6,6,1,18,18,1,1,1, -1,1,18,18,5,5,6,6,3,5,5,3,6,6,1,18,18,1,1,1, -1,1,3,3,5,5,6,6,3,6,6,3,6,6,1,3,3,3,1,1, -1,19,3,1,5,5,6,6,3,6,6,3,6,6,1,1,1,3,19,1, -1,17,3,1,1,1,5,5,3,6,6,3,5,5,1,1,1,3,17,1, -1,17,3,1,1,1,1,1,3,6,6,3,1,1,1,1,1,3,17,1, +1,1,18,18,1,5,6,6,3,3,3,3,6,6,5,1,82,82,1,1, +1,1,18,18,1,5,6,6,3,5,5,3,6,6,5,1,82,82,1,1, +1,1,3,3,5,5,6,6,3,6,6,3,6,6,5,5,3,3,1,1, +1,19,3,1,5,5,6,6,3,6,6,3,6,6,5,5,1,3,83,1, +1,17,3,1,1,1,5,5,3,6,6,3,5,5,1,1,1,3,81,1, +1,17,3,1,1,1,1,50,3,6,6,3,50,1,1,1,1,3,81,1, 1,1,3,3,3,3,3,3,3,6,6,3,3,3,3,3,3,3,1,1, -1,1,1,1,1,1,1,1,5,6,6,5,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,5,6,6,5,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,5,6,6,5,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,5,6,6,5,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,5,6,6,5,1,1,1,1,1,1,1,1 +1,1,1,1,1,3,5,5,5,6,6,5,5,5,3,1,1,1,1,1, +1,1,1,5,5,3,5,5,5,6,6,5,5,5,3,5,5,1,1,1, +1,1,1,5,5,3,6,6,6,6,6,6,6,6,3,5,5,1,1,1, +1,1,1,5,5,3,3,3,3,3,3,3,3,3,3,5,5,1,1,1, +1,1,1,5,5,5,5,5,5,6,6,5,5,5,5,5,5,1,1,1 diff --git a/assets/tiles/bank0.png b/assets/tiles/bank0.png index 6989442..e0fc7d7 100644 --- a/assets/tiles/bank0.png +++ b/assets/tiles/bank0.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29df075359f0c564c70247b755e556fefd22b62f26c8a98b56059bbde550ae06 -size 680 +oid sha256:016bfd5e67f83dba887b1a8c8345d81225d64b46110cdd72f2274b260994a4e3 +size 852 diff --git a/assets/tiles/bank3.png b/assets/tiles/bank3.png index 6989442..e0fc7d7 100644 --- a/assets/tiles/bank3.png +++ b/assets/tiles/bank3.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29df075359f0c564c70247b755e556fefd22b62f26c8a98b56059bbde550ae06 -size 680 +oid sha256:016bfd5e67f83dba887b1a8c8345d81225d64b46110cdd72f2274b260994a4e3 +size 852 diff --git a/gen/maps/l1.inc b/gen/maps/l1.inc index 59f8bcc..8390ca1 100644 --- a/gen/maps/l1.inc +++ b/gen/maps/l1.inc @@ -10,16 +10,16 @@ .db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 .db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 -.db 0x0, 0x0, 0x11, 0x11, 0x4, 0x4, 0x5, 0x5, 0x2, 0x2, 0x2, 0x2, 0x5, 0x5, 0x0, 0x11, 0x11, 0x0, 0x0, 0x0 -.db 0x0, 0x0, 0x11, 0x11, 0x4, 0x4, 0x5, 0x5, 0x2, 0x4, 0x4, 0x2, 0x5, 0x5, 0x0, 0x11, 0x11, 0x0, 0x0, 0x0 -.db 0x0, 0x0, 0x2, 0x2, 0x4, 0x4, 0x5, 0x5, 0x2, 0x5, 0x5, 0x2, 0x5, 0x5, 0x0, 0x2, 0x2, 0x2, 0x0, 0x0 -.db 0x0, 0x12, 0x2, 0x0, 0x4, 0x4, 0x5, 0x5, 0x2, 0x5, 0x5, 0x2, 0x5, 0x5, 0x0, 0x0, 0x0, 0x2, 0x12, 0x0 -.db 0x0, 0x10, 0x2, 0x0, 0x0, 0x0, 0x4, 0x4, 0x2, 0x5, 0x5, 0x2, 0x4, 0x4, 0x0, 0x0, 0x0, 0x2, 0x10, 0x0 -.db 0x0, 0x10, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x5, 0x5, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x10, 0x0 +.db 0x0, 0x0, 0x11, 0x11, 0x0, 0x4, 0x5, 0x5, 0x2, 0x2, 0x2, 0x2, 0x5, 0x5, 0x4, 0x0, 0x51, 0x51, 0x0, 0x0 +.db 0x0, 0x0, 0x11, 0x11, 0x0, 0x4, 0x5, 0x5, 0x2, 0x4, 0x4, 0x2, 0x5, 0x5, 0x4, 0x0, 0x51, 0x51, 0x0, 0x0 +.db 0x0, 0x0, 0x2, 0x2, 0x4, 0x4, 0x5, 0x5, 0x2, 0x5, 0x5, 0x2, 0x5, 0x5, 0x4, 0x4, 0x2, 0x2, 0x0, 0x0 +.db 0x0, 0x12, 0x2, 0x0, 0x4, 0x4, 0x5, 0x5, 0x2, 0x5, 0x5, 0x2, 0x5, 0x5, 0x4, 0x4, 0x0, 0x2, 0x52, 0x0 +.db 0x0, 0x10, 0x2, 0x0, 0x0, 0x0, 0x4, 0x4, 0x2, 0x5, 0x5, 0x2, 0x4, 0x4, 0x0, 0x0, 0x0, 0x2, 0x50, 0x0 +.db 0x0, 0x10, 0x2, 0x0, 0x0, 0x0, 0x0, 0x31, 0x2, 0x5, 0x5, 0x2, 0x31, 0x0, 0x0, 0x0, 0x0, 0x2, 0x50, 0x0 .db 0x0, 0x0, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x5, 0x5, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x0, 0x0 -.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x5, 0x5, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 -.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x5, 0x5, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 -.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x5, 0x5, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 -.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x5, 0x5, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 -.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x5, 0x5, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 +.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x4, 0x4, 0x4, 0x5, 0x5, 0x4, 0x4, 0x4, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0 +.db 0x0, 0x0, 0x0, 0x4, 0x4, 0x2, 0x4, 0x4, 0x4, 0x5, 0x5, 0x4, 0x4, 0x4, 0x2, 0x4, 0x4, 0x0, 0x0, 0x0 +.db 0x0, 0x0, 0x0, 0x4, 0x4, 0x2, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x2, 0x4, 0x4, 0x0, 0x0, 0x0 +.db 0x0, 0x0, 0x0, 0x4, 0x4, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x4, 0x4, 0x0, 0x0, 0x0 +.db 0x0, 0x0, 0x0, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x0, 0x0, 0x0 diff --git a/gen/tiles/bank0.inc b/gen/tiles/bank0.inc index c2be4e2..7473585 100644 --- a/gen/tiles/bank0.inc +++ b/gen/tiles/bank0.inc @@ -37,13 +37,13 @@ .chr 00330000 ; tile 4 .chr 00000000 -.chr 03330000 -.chr 03330000 -.chr 03330333 -.chr 00100333 -.chr 00100333 -.chr 00000010 -.chr 00000010 +.chr 01110000 +.chr 01110000 +.chr 01110111 +.chr 00200111 +.chr 00200111 +.chr 00000020 +.chr 00000020 ; tile 5 .chr 00003000 .chr 00033000 @@ -433,31 +433,31 @@ .chr 00000000 ; tile 48 .chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00300000 +.chr 00300000 +.chr 03333330 +.chr 03000030 +.chr 03033030 +.chr 03333330 .chr 00000000 ; tile 49 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00000333 +.chr 00333323 +.chr 00302303 +.chr 33330323 +.chr 32032303 +.chr 30230323 +.chr 32032303 +.chr 30030303 ; tile 50 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00033000 +.chr 00033000 +.chr 00333300 +.chr 00300300 +.chr 03333330 +.chr 03000030 +.chr 03000030 +.chr 03333330 ; tile 51 .chr 00000000 .chr 00000000 @@ -721,31 +721,31 @@ .chr 00000000 ; tile 80 .chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00300000 +.chr 00300000 +.chr 03333330 +.chr 03222230 +.chr 03233230 +.chr 03333330 .chr 00000000 ; tile 81 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00000333 +.chr 00333313 +.chr 00321323 +.chr 33332313 +.chr 31231323 +.chr 32132313 +.chr 31231323 +.chr 32232323 ; tile 82 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00033000 +.chr 00033000 +.chr 00333300 +.chr 00322300 +.chr 03333330 +.chr 03222230 +.chr 03222230 +.chr 03333330 ; tile 83 .chr 00000000 .chr 00000000 @@ -1125,23 +1125,23 @@ .chr 00000000 .chr 00000000 ; tile 125 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 33333333 +.chr 11111111 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 ; tile 126 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 ; tile 127 .chr 33333333 .chr 32333333 diff --git a/gen/tiles/bank3.inc b/gen/tiles/bank3.inc index c2be4e2..7473585 100644 --- a/gen/tiles/bank3.inc +++ b/gen/tiles/bank3.inc @@ -37,13 +37,13 @@ .chr 00330000 ; tile 4 .chr 00000000 -.chr 03330000 -.chr 03330000 -.chr 03330333 -.chr 00100333 -.chr 00100333 -.chr 00000010 -.chr 00000010 +.chr 01110000 +.chr 01110000 +.chr 01110111 +.chr 00200111 +.chr 00200111 +.chr 00000020 +.chr 00000020 ; tile 5 .chr 00003000 .chr 00033000 @@ -433,31 +433,31 @@ .chr 00000000 ; tile 48 .chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00300000 +.chr 00300000 +.chr 03333330 +.chr 03000030 +.chr 03033030 +.chr 03333330 .chr 00000000 ; tile 49 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00000333 +.chr 00333323 +.chr 00302303 +.chr 33330323 +.chr 32032303 +.chr 30230323 +.chr 32032303 +.chr 30030303 ; tile 50 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00033000 +.chr 00033000 +.chr 00333300 +.chr 00300300 +.chr 03333330 +.chr 03000030 +.chr 03000030 +.chr 03333330 ; tile 51 .chr 00000000 .chr 00000000 @@ -721,31 +721,31 @@ .chr 00000000 ; tile 80 .chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00300000 +.chr 00300000 +.chr 03333330 +.chr 03222230 +.chr 03233230 +.chr 03333330 .chr 00000000 ; tile 81 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00000333 +.chr 00333313 +.chr 00321323 +.chr 33332313 +.chr 31231323 +.chr 32132313 +.chr 31231323 +.chr 32232323 ; tile 82 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 00033000 +.chr 00033000 +.chr 00333300 +.chr 00322300 +.chr 03333330 +.chr 03222230 +.chr 03222230 +.chr 03333330 ; tile 83 .chr 00000000 .chr 00000000 @@ -1125,23 +1125,23 @@ .chr 00000000 .chr 00000000 ; tile 125 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 33333333 +.chr 11111111 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 ; tile 126 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 -.chr 00000000 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 +.chr 22222222 ; tile 127 .chr 33333333 .chr 32333333 diff --git a/src/actor.s b/src/actor.s index 2ff46c8..f9881f3 100644 --- a/src/actor.s +++ b/src/actor.s @@ -79,6 +79,9 @@ act_move_up: ; lo -= b ld a, [hl] + cp a, 0 + ret z + sub a, b ld [hl+], a @@ -92,6 +95,9 @@ act_move_down: ; lo += b ld a, [hl] + cp a, TILE_SIZE * (MAP_H - 1) + ret z + add a, b ld [hl+], a @@ -112,6 +118,9 @@ act_move_left: ; lo -= b ld a, [hl] + cp a, 0 + ret z + sub a, b ld [hl+], a @@ -126,6 +135,9 @@ act_move_right: ; lo += b ld a, [hl] + cp a, TILE_SIZE * (MAP_W - 1) + ret z + add a, b ld [hl+], a diff --git a/src/d_map.s b/src/d_map.s index 0851c54..c3b6e39 100644 --- a/src/d_map.s +++ b/src/d_map.s @@ -1,4 +1,6 @@ +#define TILE_SIZE 8 + #define MAP_H 14 #define MAP_W 20 diff --git a/src/d_ui.s b/src/d_ui.s new file mode 100644 index 0000000..6f8cf95 --- /dev/null +++ b/src/d_ui.s @@ -0,0 +1,8 @@ +#define UI_TILE_BG_TOP 0x7D +#define UI_TILE_BG 0x7E + + ; tile to start at +#define UI_DRAW_START SCRN0+32*14 + +#define UI_W 20 +#define UI_H 4 diff --git a/src/defs.s b/src/defs.s index aa0081c..a68144e 100644 --- a/src/defs.s +++ b/src/defs.s @@ -3,6 +3,7 @@ #include "d_actor.s" #include "d_player.s" #include "d_tiles.s" +#include "d_ui.s" .def int OAMDMAFN = 0xFF80 diff --git a/src/main.s b/src/main.s index 5f6c740..fab2cf7 100644 --- a/src/main.s +++ b/src/main.s @@ -26,6 +26,7 @@ init: call map_init call player_init + call ui_init call lcd_on call vblank_wait @@ -58,3 +59,4 @@ main: #include "map.s" #include "actor.s" #include "player.s" +#include "ui.s" diff --git a/src/ui.s b/src/ui.s new file mode 100644 index 0000000..510c5e7 --- /dev/null +++ b/src/ui.s @@ -0,0 +1,33 @@ + ; inits the UI + ; clears UI area with empty UI tiles + ; only call when rendering is disabled +ui_init: + ld hl, UI_DRAW_START + + ld a, UI_TILE_BG_TOP + call ui_draw_row + + ld a, UI_TILE_BG + call ui_draw_row + call ui_draw_row + call ui_draw_row + + + ret + + ; draws UI row + ; inputs: + ; hl: scrn + ; a: tile + ; returns: + ; hl: next scrn address of new row +ui_draw_row: + ld b, UI_W +@loop: + ld [hl+], a + dec b + jr nz, @loop REL + + ld de, 12 + add hl, de + ret