From 8b3b2aa20d15cbc2dc1c5503b93deaa7a2597579 Mon Sep 17 00:00:00 2001 From: Robin Chappatte Date: Fri, 1 May 2026 21:13:55 +0200 Subject: [PATCH] add directional characters display --- assets/sprites/{ghost.ppm => ghost_down.ppm} | Bin assets/sprites/ghost_left.ppm | Bin 0 -> 130 bytes assets/sprites/ghost_right.ppm | Bin 0 -> 130 bytes assets/sprites/ghost_up.ppm | Bin 0 -> 130 bytes assets/sprites/robot.ppm | Bin 130 -> 0 bytes assets/sprites/robot_down.ppm | Bin 0 -> 130 bytes assets/sprites/robot_left.ppm | Bin 0 -> 130 bytes assets/sprites/robot_right.ppm | Bin 0 -> 130 bytes assets/sprites/robot_up.ppm | Bin 0 -> 130 bytes build.ts | 10 +- src/consts/game.asm | 15 -- src/consts/sprites.asm | 19 +- src/lib/drawing.asm | 53 +++++ src/lib/u64.asm | 18 ++ src/main.asm | 36 ++- src/reserved_space.asm | 17 +- src/sections/characters_movement.asm | 231 ------------------- src/sections/init_ghost_state.asm | 2 +- src/sections/init_robot_state.asm | 2 +- src/sections/init_sprite_lookup_table.asm | 51 +++- src/sections/init_timers.asm | 48 ++-- src/sections/timer_ghost.asm | 99 ++++++++ src/sections/timer_robot.asm | 99 ++++++++ 23 files changed, 417 insertions(+), 283 deletions(-) rename assets/sprites/{ghost.ppm => ghost_down.ppm} (100%) create mode 100644 assets/sprites/ghost_left.ppm create mode 100644 assets/sprites/ghost_right.ppm create mode 100644 assets/sprites/ghost_up.ppm delete mode 100644 assets/sprites/robot.ppm create mode 100644 assets/sprites/robot_down.ppm create mode 100644 assets/sprites/robot_left.ppm create mode 100644 assets/sprites/robot_right.ppm create mode 100644 assets/sprites/robot_up.ppm create mode 100644 src/lib/u64.asm delete mode 100644 src/sections/characters_movement.asm create mode 100644 src/sections/timer_ghost.asm create mode 100644 src/sections/timer_robot.asm diff --git a/assets/sprites/ghost.ppm b/assets/sprites/ghost_down.ppm similarity index 100% rename from assets/sprites/ghost.ppm rename to assets/sprites/ghost_down.ppm diff --git a/assets/sprites/ghost_left.ppm b/assets/sprites/ghost_left.ppm new file mode 100644 index 0000000000000000000000000000000000000000..5e632614cd9c85d77e087c15d2bb69ea721745f2 GIT binary patch literal 130 zcmWGA<5E^|E=o--Nlj5ms#I|I^bJrbOD!tS%+FIW)-%#GQ3&w!RVc_QP1nuL<1$q+ g(^b literal 0 HcmV?d00001 diff --git a/assets/sprites/ghost_right.ppm b/assets/sprites/ghost_right.ppm new file mode 100644 index 0000000000000000000000000000000000000000..e72da9a532525cc33051f2288550b98766dc984c GIT binary patch literal 130 zcmWGA<5E^|E=o--Nlj5ms#I|I^bJrbOD!tS%+FIW)-%#GQ3&w!RVc_QP1nuL<1$q+ igAh;lDkXi%@0B5%&CIA2c literal 0 HcmV?d00001 diff --git a/assets/sprites/robot_left.ppm b/assets/sprites/robot_left.ppm new file mode 100644 index 0000000000000000000000000000000000000000..68b44fae03b22f734cb569d9c3437f98f14a2016 GIT binary patch literal 130 zcmWGA<5E^|E=o--Nlj5ms#I|I^bJrbOD!tS%+FIW)-%#GQ3&w!RVc_QP1nuL<1$q+ l cancel movement +sub r1, r1, r5 +sub r2, r2, r6 +jmp timer_robot.draw + +pub timer_robot.move: +; TODO: handle coin and empty differently +mov r10, map.tiles.empty +store_8 [r13], r10 + +add r9, zr, ptr.state_robot +store_8 [r9], r1 +add r9, r9, 1 +store_8 [r9], r2 + +pub timer_robot.draw: +; draw robot on new position +mov r3, sprites.rotation_0 +add r4, r4, sprites.robot +call drawing.draw_sprite_at_map_coord + +pub timer_robot.end: \ No newline at end of file