Quantcast
Channel: nesdev.org
Viewing all articles
Browse latest Browse all 746

Joypad contact and bounce tests

$
0
0
I wrote two new test ROMs that reads 12 bits of controller data every scanline and displays them using BGnVOFS tricks.

I've used the tests to find my best controller. I've written about my findings on my website.

The first test (joypad-rapid-read) reads and displays the controller data every scanline. I used a USB HDMI capture device to record 60Hz video of from my Super Famicom and analysed the output by reviewing the recording frame by frame.

The joypad-rapid-test has been useful in finding phantom inputs on 3 of my D-Pads, bad contacts on my start/select button and found stable output with minimal contact bounce for my face/shoulder buttons.
rapid-read-test contact bounce when releasing A
rapid-read-test, bad button contacts on a controller with a bad select button.

I found sifting through the recordings frame-by-frame annoying, so I build a second test ROM - joypad-bounce-test. This test has basic button press and release logic and uses HDMA to display the 214 scanline controller reads after button-press and up to 214 controller reads before button-release.

This test is designed for testing a single button one at a time and I did not find it useful for detecting phantom inputs.

Each pair of vertical lines represents a single button. The left line is the 214 reads after button press, the right line is the 214 reads before button release.
joypad-bounce-test showing contact bounce on press and release.

Most of the time I did not detect measurable contact bounce on my good controllers. Occasionally I saw contact bounce that lasted less then 20 scanlines and when I was mashing the controller I sometimes saw contact bounce that lasted just under half a frame.

Surprisingly I have 2 controllers that have different contact bounces depending on how I hold the controller (screen captures are in the blog post).
  • My SFC controller (with its annoyingly short cable) has less contact bounce when I hold it with 2 hands (compared to resting the it on my leg)
  • My PAL controller (with its long but stiff cable) has less contact bounce when I mash buttons while resting it on my leg (as opposed to holding it in both hands).

The source code for my tests can be found on GitHub (zlib licensed):
joypad_rapid_read_test.zip

joypad_bounce_test.zip

Statistics: Posted by UnDisbeliever — Sat Sep 28, 2024 7:42 pm — Replies 0 — Views 149



Viewing all articles
Browse latest Browse all 746

Trending Articles