From a12953ab78933bbfef36fa7cff04e5829ab0c947 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Mon, 28 Nov 2022 18:23:59 +0100 Subject: Change controller behaviour to avoid repeats on hold --- src/main.c | 26 +++++++++++++------------- src/ppu.c | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main.c b/src/main.c index 06353e0..7c77dd4 100644 --- a/src/main.c +++ b/src/main.c @@ -342,42 +342,42 @@ handle_input(Uxn *u) { // TODO: We don't need ifs if we use KEY_INPUTS directly and mayvbe just // swap some things if needed. u8 *flag = &devctrl->dat[2]; - if (key_pressed(KEY_A)) { + if (key_tap(KEY_A)) { *flag |= 0x01; } else { *flag &= ~0x01; } - if (key_pressed(KEY_B)) { + if (key_tap(KEY_B)) { *flag |= 0x02; } else { *flag &= ~0x02; } - if (key_pressed(KEY_L)) { + if (key_tap(KEY_L)) { *flag |= 0x04; } else { *flag &= ~0x04; } - if (key_pressed(KEY_R)) { + if (key_tap(KEY_R)) { *flag |= 0x08; } else { *flag &= ~0x08; } - if (key_pressed(KEY_UP)) { + if (key_tap(KEY_UP)) { *flag |= 0x10; } else { *flag &= ~0x10; } - if (key_pressed(KEY_DOWN)) { + if (key_tap(KEY_DOWN)) { *flag |= 0x20; } else { *flag &= ~0x20; } - if (key_pressed(KEY_LEFT)) { + if (key_tap(KEY_LEFT)) { *flag |= 0x40; } else { *flag &= ~0x40; } - if (key_pressed(KEY_RIGHT)) { + if (key_tap(KEY_RIGHT)) { *flag |= 0x80; } else { *flag &= ~0x80; @@ -409,14 +409,14 @@ handle_input(Uxn *u) { } // Detect mouse movement. - if (key_pressed(KEY_UP)) { + if (key_tap(KEY_UP)) { mouse.y = CLAMP(mouse.y - MOUSE_DELTA, 0, SCREEN_HEIGHT - 8); - } else if (key_pressed(KEY_DOWN)) { + } else if (key_tap(KEY_DOWN)) { mouse.y = CLAMP(mouse.y + MOUSE_DELTA, 0, SCREEN_HEIGHT - 8); } - if (key_pressed(KEY_LEFT)) { + if (key_tap(KEY_LEFT)) { mouse.x = CLAMP(mouse.x - MOUSE_DELTA, 0, SCREEN_WIDTH - 8); - } else if (key_pressed(KEY_RIGHT)) { + } else if (key_tap(KEY_RIGHT)) { mouse.x = CLAMP(mouse.x + MOUSE_DELTA, 0, SCREEN_WIDTH - 8); } @@ -475,7 +475,7 @@ handle_input(Uxn *u) { static Uxn u; EWRAM_BSS -static u8 umem[KB(65)]; +static u8 umem[KB(64)]; int main(void) { // Adjust system wait times. diff --git a/src/ppu.c b/src/ppu.c index 91694b7..0f8fefd 100644 --- a/src/ppu.c +++ b/src/ppu.c @@ -169,7 +169,7 @@ putcolors(u8 *addr) { IWRAM_CODE void ppu_pixel(u32 *layer, u16 x, u16 y, u8 color) { - if (x >= SCREEN_WIDTH || y >= SCREEN_HEIGHT) return; + if (x > SCREEN_WIDTH || y > SCREEN_HEIGHT) return; size_t tile_x = x / 8; size_t tile_y = y / 8; size_t start_col = x % 8; -- cgit v1.2.1