Atari CX21 Keypad incompatible with real hardware
Versatile Commodore Emulator
Brought to you by:
blackystardust,
gpz
There are two incompatibilities with the CX-21 implementation in Vice compared to real hardware. I've tested it with a Video Touch Pad, which is a CX-21 in a different case. This does work with Star Raiders on the Atari 2600.
The Vice test program agrees with the Vice implementation and does not work on real hardware. The attached version of Joyride works with the real hardware and clearly shows the problem when run in Vice. (Select Keypad (Atari CX21) for control port 1, then press F2 and then F3 until Atari CX-21 is shown in the program.)
I've provided a fix in patch #372
fixed in r45189 (via #372)
BTW are you sure the swapped columns are actually caused by wrong implementation in VICE - and not simply by messed up keymaps? eg in the german keymap it looks like the keypad is always mapped positional, even with a symbolic keymap (which is the default)
Yes, I'm sure:
I've tested the Vice test program for the CX-21 with real hardware and Vice without my fix, and it worked in Vice but not on real hardware.
I've double checked the key mapping (and even tweaked it since some keys didn't work on my keyboard).
It now behaves consistently across all keypads in Vice with my fixes, and works with my program.
I've verified my fixes and the implementation of my program with available real hardware, originial driver software, and documentation; for each keypad, I have at least one of the three.
That is good to hear, i will try to fix that test program then :)
I updated cx21-c64.prg in the test repo - would be great if you could check it on real hw