Close
0%
0%

Vaus Arkanoid Paddle Clone

diy replica of a classic controller

Similar projects worth following
The Arkanoid Controller, or Vaus, is an optional game controller for the Nintendo Entertainment System (NES) and MSX game Arkanoid which enhances the feel and play of the game. (source: Wikipedia)

The circuit is a replica of the Vaus controller made by TAITO and implements a DAC using a counter, a clock generator and a timer.

Half of a 556 is composes an oscillator with a fixed frequency around 60kHz.

A negative pulse coming from the MSX joystick port pin 8 resets a counter and start a timer formed by the other half of the 555 and has a potentiometer in its RC timing network. The output of this timer also works as a clock enable the counter.

The position of the knob determines then the amount of time that the counter has to count up clock pulses:

  • fully counter clockwise: 1ms
  • fully colockwise: 6.5 ms

Later, an assembly program was written to read the device and the results are

  • fully counter clockwise:  63 counts
  • fully colockwise: 405 counts

The outputs of the counter are connected to a shift register which is ready to send the data serially when the counting time is over.

Seial data is read at pin 1 of the MSX joystick port (UP) and clock pulses coming from pin 6 shifts out the next data bit

Interesting to notice is that the bits are read FIRST then the next counting cycle is initiated, thus the MSX do have have to waste time waiting for the analog to digital conversion (pulse counting)

TESTVAUS2.BIN

Enhanced version of testvaus, developed by [SD_Snatcher] provides better compatibility with different generations of MSX machines.

octet-stream - 226.00 bytes - 02/29/2020 at 04:52

Download

ReadPaddle.asm

Source code for reading the Vaus Paddle. Compile with pasmo --msx ReadPaddle.asm testvaus.bin

asm - 2.08 kB - 06/14/2019 at 04:16

Download

testvaus.bin

Load this program from BASIC with bload "testvaus.bin" and run with defusr=&HA000:print usr(0)

octet-stream - 161.00 bytes - 06/14/2019 at 04:16

Download

Vaus Arkanoid paddle.brd

PCB for CP-011 board, Eagle 7

- 111.78 kB - 06/13/2019 at 22:23

Download

Vaus Arkanoid paddle.sch

Schematics, Eagle 7

- 857.14 kB - 06/13/2019 at 22:22

Download

View all 6 files

  • Closing

    danjovic04/11/2020 at 19:03 0 comments

    The top cover required some Dremel job to accomodate to eliminate an interference with the recessed base of the pushbutton cap.

    But then if fitted very well.

    The height of the shaft above the top cover is about 10mm, just enough to tighten the screw of the knob I am using.

    And that's it!! Another completed project!

  • Working on the case

    danjovic03/01/2020 at 22:50 0 comments

    PCB mounted on the case. Unused wires have been isolated using shrink tube.

  • Assembled board

    danjovic02/28/2020 at 18:09 0 comments

    Here are some pictures of the board after assembly of the components.

    The potentiometer leads were too short to reach the board pads and required the use of some bare wire to extend them.

    The potentiometer value used was 10k instead of 4K7, but the timing capacitor was reduced to 0,47uF to compensate.

    Trimpot R7 is optional. Instead a 2k7 resistor was used for R1 and it provided a counting from 90 to 400 (approximately) which is right within the desired range.

  • PCBs ready!

    danjovic10/10/2019 at 03:01 0 comments

    Boards arrived from JLCPCB


    And they fit perfectly on the CP-011 box

  • De-glitching

    danjovic06/14/2019 at 04:03 0 comments

    The paddle " character "  was a little glitchy while playing the game. The first guess was the wiring from the counter to the shift register but it  was OK.

    Second guess was some glitches found in the capture by logig analyzer

    A 100nf capacitor was placed from the output pin (pin 1 - UP ) to ground and the glitches disappeared from the capture and the behavior of the paddle character now is smooth as expected!

    PCB and schematics were updated

View all 5 project logs

Enjoy this project?

Share

Discussions

Christopher Jones wrote 05/19/2020 at 21:41 point

Question: Is there a way to use this on the NES by using a different controller connector?

Or is there a cheap adapter I could buy or build to use instead?

I want to play NES Arkanoid as it was meant to be played.

Thanks!

  Are you sure? yes | no

Daybreak Strider wrote 12/08/2020 at 11:26 point

I’d also like an answer to this, but for the Japanese OG Famicom. I’d like to be able to make my own.

  Are you sure? yes | no

kkusz wrote 01/23/2024 at 21:36 point

Hi, I'm four years late but I've build a Famicom paddle based on Danjovic's DigiArka project, you can check it out here

https://github.com/kkusz/avrkanoid-fami

  Are you sure? yes | no

Leo Gomez wrote 03/20/2020 at 21:11 point

Hi danjovic. Is there a list of components I can look up for this project? I want to put this together, but not sure which resistors, capacitors, and ICs to use. Project looks awesome btw :)

  Are you sure? yes | no

sdsnatcher wrote 02/20/2020 at 23:41 point

I created a new TESTVAUS.BIN v2.0 that is less susceptible  to timing, is compliant to the MSX Coding Guidelines and also supports turbo and published it here. Hope it helps!

Note: It also works fine with a  simple BLOAD"testvaus.bin",R command, so it's not necessary to use the DEFUSR anymore.

Maybe it's a good idea to replace the testvaus.bin on the article with the v2.0?

  Are you sure? yes | no

Does this project spark your interest?

Become a member to follow this project and never miss any updates