aboutsummaryrefslogtreecommitdiff
path: root/basics
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <msabate@suse.com>2024-04-02 23:49:52 +0200
committerMiquel Sabaté Solà <mikisabate@gmail.com>2025-02-04 21:04:36 +0100
commit3c6a583190b827c0e88e535d486a4f191ee255c0 (patch)
treefd21f0c22dbd7e340a53dcb8fad1f4e8c07c73bc /basics
parent1d1f08646352df00977a88adb99e04d54e4dfd5d (diff)
downloadcode.nes-3c6a583190b827c0e88e535d486a4f191ee255c0.tar.gz
code.nes-3c6a583190b827c0e88e535d486a4f191ee255c0.zip
Add a way to safely read from controllers
First of all, move some reading utilities into the new `shared` directory, so controllers can be read by more than one example. Second, even if we keep the example on `basics/input.s` simple, let's provide a safe alternative for the other examples. Signed-off-by: Miquel Sabaté Solà <msabate@suse.com>
Diffstat (limited to 'basics')
-rw-r--r--basics/flicker.s2
-rw-r--r--basics/input.s5
2 files changed, 6 insertions, 1 deletions
diff --git a/basics/flicker.s b/basics/flicker.s
index b170d5e..640817a 100644
--- a/basics/flicker.s
+++ b/basics/flicker.s
@@ -36,7 +36,7 @@
@main_game_loop:
;; NOTE: the logic is pretty simply: read the pad, move the player
;; accordingly, and apply the flickering effect.
- jsr Joypad::read
+ jsr joypad_read
jsr Diskun::update
;; NOTE: comment this `jsr` out if you want to see what happens if no
diff --git a/basics/input.s b/basics/input.s
index dbb9ee6..6918487 100644
--- a/basics/input.s
+++ b/basics/input.s
@@ -8,6 +8,11 @@
;; we are constantly polling it and filling it, the value will move constantly).
;; - $21: the previous status of the right arrow.
;; - $42: the counter which is incremented on each press of the right arrow button.
+;;
+;; Whenever you are done with this example, hop into the `shared/joypad.s` file,
+;; which brings some other considerations when reading from controllers. That
+;; is, the algorithm shown below is not entirely "safe" due to a hardware bug
+;; which might give unreliable inputs on some spikes.
;;;
;;;