From 75a060d8cca1ed45c86428ee51f41b8a36eeef7a Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Tue, 23 Sep 2025 22:47:34 +0200 Subject: [PATCH] player: Added sub-pixel movement --- src/player.s | 22 +++++++++++++++++----- src/wram.s | 4 +++- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/player.s b/src/player.s index e4e5599..1794ae3 100644 --- a/src/player.s +++ b/src/player.s @@ -1,4 +1,4 @@ -#define PLAYER_SPEED 1 +#define PLAYER_SPEED 0x80 ; sets up the player actor player_init: @@ -104,12 +104,18 @@ player_try_scroll_up: ; returns: ; b/c: new y/x position player_stage_move_p: - ld a, [player+act_pos_y] + ld a, [player_sub_pixel_y] add a, b + ld [player_sub_pixel_y], a + ld a, [player+act_pos_y] + adc a, 0 ld b, a - ld a, [player+act_pos_x] + ld a, [player_sub_pixel_x] add a, c + ld [player_sub_pixel_x], a + ld a, [player+act_pos_x] + adc a, 0 ld c, a ret @@ -120,12 +126,18 @@ player_stage_move_p: ; returns: ; b/c: new y/x position player_stage_move_n: - ld a, [player+act_pos_y] + ld a, [player_sub_pixel_y] sub a, b + ld [player_sub_pixel_y], a + ld a, [player+act_pos_y] + sbc a, 0 ld b, a - ld a, [player+act_pos_x] + ld a, [player_sub_pixel_x] sub a, c + ld [player_sub_pixel_x], a + ld a, [player+act_pos_x] + sbc a, 0 ld c, a ret diff --git a/src/wram.s b/src/wram.s index e16109c..e52a323 100644 --- a/src/wram.s +++ b/src/wram.s @@ -63,7 +63,9 @@ srand: .adv 2 ; advance if possible player_next_scroll_y: .adv 1 - +; y/x sub pixel movement for player +player_sub_pixel_y: .adv 1 +player_sub_pixel_x: .adv 1 player: .adv act_size actors: .adv act_size * ACTS_MAX map_objs: .adv mo_size * MAP_OBJ_MAX -- 2.30.2