Arkanoid controller

From NESdev Wiki
Revision as of 05:46, 12 June 2009 by Banshaku (talk | contribs) (Created page with 'The Arkanoid Vaus controller was included with the Arkanoid game, and is only used for this game. It has an analog potentiometer dial and a single button. Under the black rubbe...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

The Arkanoid Vaus controller was included with the Arkanoid game, and is only used for this game. It has an analog potentiometer dial and a single button.

Under the black rubber dot is another potentiometer to adjust the dial range.

The controller uses D3 and D4 so it will not work in a Four score.

Input ($4016 write)

7  bit  0
---- ----
xxxx xxxS
        |
        +- Dial shift register strobe

Writing 1 to this bit will record the state of the dial. Writing 0 afterwards will allow the dial to be read back.

The analog to digital conversion takes time so strobing too fast will return bad dial data. A function that reads the controller multiple times in a row to avoid DPCM glitches may not work.

Output ($4016/$4017 read)

7  bit  0
---- ----
xxxD Bxxx
   | |
   | +---- Button
   +------ Serial dial data
   

Button status is returned in D3, and does not need to be latched. Button is 1 if pressed, 0 if not pressed.

Dial data is returned in D4, MSB first. The data is also inverted. The whole dial range is about 270 degrees, and returned in $A0 steps. Variations in the analog to digital and pot physical range can vary the result slightly.


With the trim pot at minimum the range returned is $0D-$AD.

With the trim pot at maximum the range returned is $5C-$FC.

The Arkanoid game expects the range to be $54-$F4.