~rabbits/uxn-gba

a12953ab78933bbfef36fa7cff04e5829ab0c947 — Bad Diode 3 months ago 656d36e
Change controller behaviour to avoid repeats on hold
2 files changed, 14 insertions(+), 14 deletions(-)

M src/main.c
M src/ppu.c
M src/main.c => src/main.c +13 -13
@@ 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.

M src/ppu.c => src/ppu.c +1 -1
@@ 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;