aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2022-11-28 18:23:59 +0100
committerBad Diode <bd@badd10de.dev>2022-11-28 18:23:59 +0100
commita12953ab78933bbfef36fa7cff04e5829ab0c947 (patch)
tree487277535fd95f6b83dc7e69de3ecb525240d78b
parent656d36ed6971d12c668b19e609e8f25aba49cb88 (diff)
downloaduxngba-a12953ab78933bbfef36fa7cff04e5829ab0c947.tar.gz
uxngba-a12953ab78933bbfef36fa7cff04e5829ab0c947.zip
Change controller behaviour to avoid repeats on hold
-rw-r--r--src/main.c26
-rw-r--r--src/ppu.c2
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) {
342 // TODO: We don't need ifs if we use KEY_INPUTS directly and mayvbe just 342 // TODO: We don't need ifs if we use KEY_INPUTS directly and mayvbe just
343 // swap some things if needed. 343 // swap some things if needed.
344 u8 *flag = &devctrl->dat[2]; 344 u8 *flag = &devctrl->dat[2];
345 if (key_pressed(KEY_A)) { 345 if (key_tap(KEY_A)) {
346 *flag |= 0x01; 346 *flag |= 0x01;
347 } else { 347 } else {
348 *flag &= ~0x01; 348 *flag &= ~0x01;
349 } 349 }
350 if (key_pressed(KEY_B)) { 350 if (key_tap(KEY_B)) {
351 *flag |= 0x02; 351 *flag |= 0x02;
352 } else { 352 } else {
353 *flag &= ~0x02; 353 *flag &= ~0x02;
354 } 354 }
355 if (key_pressed(KEY_L)) { 355 if (key_tap(KEY_L)) {
356 *flag |= 0x04; 356 *flag |= 0x04;
357 } else { 357 } else {
358 *flag &= ~0x04; 358 *flag &= ~0x04;
359 } 359 }
360 if (key_pressed(KEY_R)) { 360 if (key_tap(KEY_R)) {
361 *flag |= 0x08; 361 *flag |= 0x08;
362 } else { 362 } else {
363 *flag &= ~0x08; 363 *flag &= ~0x08;
364 } 364 }
365 if (key_pressed(KEY_UP)) { 365 if (key_tap(KEY_UP)) {
366 *flag |= 0x10; 366 *flag |= 0x10;
367 } else { 367 } else {
368 *flag &= ~0x10; 368 *flag &= ~0x10;
369 } 369 }
370 if (key_pressed(KEY_DOWN)) { 370 if (key_tap(KEY_DOWN)) {
371 *flag |= 0x20; 371 *flag |= 0x20;
372 } else { 372 } else {
373 *flag &= ~0x20; 373 *flag &= ~0x20;
374 } 374 }
375 if (key_pressed(KEY_LEFT)) { 375 if (key_tap(KEY_LEFT)) {
376 *flag |= 0x40; 376 *flag |= 0x40;
377 } else { 377 } else {
378 *flag &= ~0x40; 378 *flag &= ~0x40;
379 } 379 }
380 if (key_pressed(KEY_RIGHT)) { 380 if (key_tap(KEY_RIGHT)) {
381 *flag |= 0x80; 381 *flag |= 0x80;
382 } else { 382 } else {
383 *flag &= ~0x80; 383 *flag &= ~0x80;
@@ -409,14 +409,14 @@ handle_input(Uxn *u) {
409 } 409 }
410 410
411 // Detect mouse movement. 411 // Detect mouse movement.
412 if (key_pressed(KEY_UP)) { 412 if (key_tap(KEY_UP)) {
413 mouse.y = CLAMP(mouse.y - MOUSE_DELTA, 0, SCREEN_HEIGHT - 8); 413 mouse.y = CLAMP(mouse.y - MOUSE_DELTA, 0, SCREEN_HEIGHT - 8);
414 } else if (key_pressed(KEY_DOWN)) { 414 } else if (key_tap(KEY_DOWN)) {
415 mouse.y = CLAMP(mouse.y + MOUSE_DELTA, 0, SCREEN_HEIGHT - 8); 415 mouse.y = CLAMP(mouse.y + MOUSE_DELTA, 0, SCREEN_HEIGHT - 8);
416 } 416 }
417 if (key_pressed(KEY_LEFT)) { 417 if (key_tap(KEY_LEFT)) {
418 mouse.x = CLAMP(mouse.x - MOUSE_DELTA, 0, SCREEN_WIDTH - 8); 418 mouse.x = CLAMP(mouse.x - MOUSE_DELTA, 0, SCREEN_WIDTH - 8);
419 } else if (key_pressed(KEY_RIGHT)) { 419 } else if (key_tap(KEY_RIGHT)) {
420 mouse.x = CLAMP(mouse.x + MOUSE_DELTA, 0, SCREEN_WIDTH - 8); 420 mouse.x = CLAMP(mouse.x + MOUSE_DELTA, 0, SCREEN_WIDTH - 8);
421 } 421 }
422 422
@@ -475,7 +475,7 @@ handle_input(Uxn *u) {
475 475
476static Uxn u; 476static Uxn u;
477EWRAM_BSS 477EWRAM_BSS
478static u8 umem[KB(65)]; 478static u8 umem[KB(64)];
479 479
480int main(void) { 480int main(void) {
481 // Adjust system wait times. 481 // 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) {
169IWRAM_CODE 169IWRAM_CODE
170void 170void
171ppu_pixel(u32 *layer, u16 x, u16 y, u8 color) { 171ppu_pixel(u32 *layer, u16 x, u16 y, u8 color) {
172 if (x >= SCREEN_WIDTH || y >= SCREEN_HEIGHT) return; 172 if (x > SCREEN_WIDTH || y > SCREEN_HEIGHT) return;
173 size_t tile_x = x / 8; 173 size_t tile_x = x / 8;
174 size_t tile_y = y / 8; 174 size_t tile_y = y / 8;
175 size_t start_col = x % 8; 175 size_t start_col = x % 8;