VIC-20 core with Kitrinx' 7800 paddle support system

User avatar
LamerDeluxe
Top Contributor
Posts: 1257
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 913 times
Been thanked: 299 times

VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by LamerDeluxe »

I've ported Kitrinx' excellent 7800 core paddle input system to the VIC-20 core (I'm planning to add it to more cores after this).

The VIC-20 core currently only supports MiSTer spinner compatible controllers. The tricky part was to support joystick and paddle input at the same time, as the core already supported that.

Kitrinx' system supports:

  • Paddle to USB adapters (like the Daptor D9 and Daptor PDL, among others): Turn each paddle's knob in succession, to automatically assign paddle A and B (the VIC-20 only has one joystick port)

  • Mouse: Press the left mouse button to activate it as a paddle controller. The 'repeat' option in the menu simulates endless spinner rotation, which works well for games like Omega Race.

  • Analog controllers: Either two analog controllers (move the left thumbstick left and right to activate it as a paddle), or only one with the horizontal and vertical axis mapped as two paddles. Apparently an analog joystick for the VIC-20 exists, but I don't know any game that supports it.

  • MiSTer spinner compatible controllers. Endless rotation 'repeat' mode doesn't work for them at the moment, not sure if I could detect if an input is a USB paddle or a MiSTer spinner.

  • SNAC connected paddles are not supported right now. I might look into that if there's interest in it.

I'd love it if people here could test it and let me know if something could be improved. If everything turns out to be working well enough, I'll make a pull request to add it to the official core.

VIC20_kitrinx_paddle_system_20250122.rbf
(2.92 MiB) Downloaded 102 times

EDIT:
Daptor D9 paddle tutorial with a MiSTer map file link: viewtopic.php?p=68155#p68155

PID information for renaming the map file for use with the PDL adapter: viewtopic.php?p=80086#p80086

Info about the Daptor PDL being the 2600-II with different firmware and the firmware to convert it: https://www.2600-daptor.com/2600-daptor%20PDL.htm

User avatar
LamerDeluxe
Top Contributor
Posts: 1257
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 913 times
Been thanked: 299 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by LamerDeluxe »

These are working config files for the Daptor D9, both the main MiSTer mapping and VIC-20 test core mapping. Copy the zip contents to config/inputs on the MiSTer. (Paddle A button is MiSTer A button, paddle B button is MiSTer left shoulder button), you can see it with the input tester core.

EDIT: DON'T USE THIS ZIP! See hex-edit fixed ones in new message below.

For some reason I haven't been able to get the paddle buttons working anymore when defining the 7800 core input.

EDIT: Sadly, the VIC-20 mapping I have uploaded here triggers the right d-pad direction when turning the paddle all the way left. Assigning paddle controllers in MiSTer cores is absolutely horrible right now, when you get the controller recognized by slowly turning it (not registering an input) it refuses to register the fire and paddle buttons after that.

If you turned it far enough to trigger a d-pad direction (which is hardcoded in the MiSTer input system, unfortunately, it converts analog stick directions into d-pad input by default) it will register the buttons after that, but that also means that turning a paddle knob with trigger the right direction, which is also paddle button B on a VIC-20.

Attachments
Daptor_PDL_MiSTer_VIC-20_Maps.zip
(399 Bytes) Downloaded 74 times
User avatar
LamerDeluxe
Top Contributor
Posts: 1257
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 913 times
Been thanked: 299 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by LamerDeluxe »

HEX-EDIT FIXED VIC-20 CORE INPUT VERSIONS! For Daptor PDL and Daptor D9. Please re-download!

Daptor_PDL_D9_MiSTer_VIC-20_Maps.zip
(772 Bytes) Downloaded 100 times
rhester72
Top Contributor
Posts: 1444
Joined: Thu Jun 11, 2020 2:31 am
Has thanked: 17 times
Been thanked: 245 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by rhester72 »

@LamerDeluxe Would a hex edit potentially allow for both paddle buttons to work in the Atari 7800 (nee 2600) core? hopeful look

User avatar
LamerDeluxe
Top Contributor
Posts: 1257
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 913 times
Been thanked: 299 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by LamerDeluxe »

rhester72 wrote: Thu Jan 23, 2025 8:59 pm

@LamerDeluxe Would a hex edit potentially allow for both paddle buttons to work in the Atari 7800 (nee 2600) core? hopeful look

I think it should, I need to try that.

User avatar
LamerDeluxe
Top Contributor
Posts: 1257
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 913 times
Been thanked: 299 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by LamerDeluxe »

EDIT: DON'T USE, BUTTONS NOW MAPPED TO FIRE 2 AND PADDLE. See below for updated zip.
Looks like the second paddle button is Fire 2 instead of paddle button, that is odd, seems like a bug. Tested with Kaboom! two player mode.

Can't get the paddle buttons to work with the D9 on the 7800 core, for some odd reason.

Attachments
ATARI7800_Daptor_PDL_input_v3.zip
(219 Bytes) Downloaded 97 times
User avatar
LamerDeluxe
Top Contributor
Posts: 1257
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 913 times
Been thanked: 299 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by LamerDeluxe »

And the correctly working 7800 input map for the Daptor D9. Strangely I needed to map Fire2 to Paddle B and the Paddle button to Paddle A. Now I need to double check my PDL map :)

ATARI7800_Daptor_D9_input_v3.zip
(221 Bytes) Downloaded 97 times
User avatar
LamerDeluxe
Top Contributor
Posts: 1257
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 913 times
Been thanked: 299 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by LamerDeluxe »

FIXED DAPTOR PDL 7800 INPUT MAP Both buttons work, mapped to FIre 2 and Paddle

ATARI7800_Daptor_PDL_input_v3.zip
(221 Bytes) Downloaded 97 times

Unfortunately it doesn't seem to be possible to remove attachments from previous messages

User avatar
LamerDeluxe
Top Contributor
Posts: 1257
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 913 times
Been thanked: 299 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by LamerDeluxe »

I've updated my test core with automatic paddle range scaling, similar to what is done in the 7800 core. This means that, for instance, Commodore paddles, which have a limited range, will be automatically scaled up to a full range.

VIC20_kitrinx_paddle_system_20250207.rbf
(2.93 MiB) Downloaded 56 times
User avatar
Alkadian
Top Contributor
Posts: 734
Joined: Thu May 28, 2020 9:55 am
Has thanked: 295 times
Been thanked: 120 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by Alkadian »

That's awesome! Thanks for that!👍

rhester72
Top Contributor
Posts: 1444
Joined: Thu Jun 11, 2020 2:31 am
Has thanked: 17 times
Been thanked: 245 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by rhester72 »

LamerDeluxe wrote: Fri Feb 07, 2025 9:13 pm

I've updated my test core with automatic paddle range scaling, similar to what is done in the 7800 core. This means that, for instance, Commodore paddles, which have a limited range, will be automatically scaled up to a full range.

VIC20_kitrinx_paddle_system_20250207.rbf

Full or full-by-Atari-standards? True full range is way, way too much.

User avatar
LamerDeluxe
Top Contributor
Posts: 1257
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 913 times
Been thanked: 299 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by LamerDeluxe »

rhester72 wrote: Fri Feb 07, 2025 9:38 pm
LamerDeluxe wrote: Fri Feb 07, 2025 9:13 pm

I've updated my test core with automatic paddle range scaling, similar to what is done in the 7800 core. This means that, for instance, Commodore paddles, which have a limited range, will be automatically scaled up to a full range.

VIC20_kitrinx_paddle_system_20250207.rbf

Full or full-by-Atari-standards? True full range is way, way too much.

Full as in outputting the full 0 to 255 value range to the core. On the Atari paddles that isn't quite the full range of the paddles (with the Daptor Paddle anyway). I was thinking about adding a sensitivity setting, that could also be interesting in combination with the repeat option, for spinner-style games like Omega Race.

One other thing I was thinking about, is that the Daptor PDL should really be doing the conversion to full range 0 to 255, with the Commodore paddles. As now I'm upscaling a much smaller range, which results in a loss of precision.

EDIT: Wait, this is probably what you mean: Connecting Atari paddles to a Commodore computer means you are using a much smaller range of the paddle, so the sensitivity is a lot higher. I should simulate that as well.

EDIT2: Increasing the sensitivity to match that of a real Atari paddle controller on a Commodore system would decrease the sensitivity though... maybe that is what the Commodore setting on the PDL adapter is for... I need to do some testing.

rhester72
Top Contributor
Posts: 1444
Joined: Thu Jun 11, 2020 2:31 am
Has thanked: 17 times
Been thanked: 245 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by rhester72 »

Ah, OK...the 'daptor will keep it constrained to something reasonable then, fair enough.

I've been meaning to test this out for a good while now since you first started work on it, I think this weekend is the time. =)

User avatar
LamerDeluxe
Top Contributor
Posts: 1257
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 913 times
Been thanked: 299 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by LamerDeluxe »

rhester72 wrote: Fri Feb 07, 2025 9:51 pm

Ah, OK...the 'daptor will keep it constrained to something reasonable then, fair enough.

I've been meaning to test this out for a good while now since you first started work on it, I think this weekend is the time. =)

I'm looking forward to your findings. Also if you think the menu option names could be improved. I'm also thinking the controller input options might need their own sub-section in the menu.

User avatar
LamerDeluxe
Top Contributor
Posts: 1257
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 913 times
Been thanked: 299 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by LamerDeluxe »

Testing the different Daptor PDL modes for Atari paddle knob rotation range:

  • MiSter 7800: Shortest by far, very sensitive and fast
  • Commodore: A bit longer and less sensitive
  • Stella uses most of the range, I suppose that is similar to when using an Atari system
  • Full range, almost the full range

So for this adapter a sensitivity setting wouldn't be needed. I wish someone could get the rights to producing these adapters, like MiSTer Addons, misterfpga.co.uk or Ultimate MiSTer, ideally all of them together.

User avatar
ericgus09
Posts: 221
Joined: Mon May 25, 2020 2:47 am
Has thanked: 19 times
Been thanked: 34 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by ericgus09 »

I dont know if its been mentioned but "Commodore" paddles use a different value in their potentiometer than Atari ones .. Commodore paddle controllers typically use roughly a 470 kΩ potentiometer, while Atari paddle controllers use about a 1 MΩ (1,000 kΩ) potentiometer. (if my sources are correct) . I (re)discovered this when trying to fix old commodore paddles with parts from an atari set and couldn't for the life of me sort out what the problem was..

niallquinn
Posts: 212
Joined: Wed Jun 05, 2024 4:54 pm
Has thanked: 215 times
Been thanked: 45 times

Re: VIC-20 core with Kitrinx' 7800 paddle support system

Unread post by niallquinn »

Yay, we can go canooing with paddle support. :)

Post Reply