Atari 7800 / 2600

User avatar
venice
Top Contributor
Posts: 739
Joined: Tue Jun 16, 2020 9:29 am
Location: Germany
Has thanked: 264 times
Been thanked: 261 times

Re: Atari 7800 / 2600

Unread post by venice »

Please correct me if i am wrong but the audio connector on the Atari SNAC Adapter must be connected to the audio in jack on the MiSTer.

My MiSTer Add-On-Projects tty2oled, i2c2oled, SNAC2IEC
You can donate by sending a Postcard to me.

User avatar
LamerDeluxe
Top Contributor
Posts: 1160
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 798 times
Been thanked: 257 times

Re: Atari 7800 / 2600

Unread post by LamerDeluxe »

venice wrote: Mon Oct 24, 2022 3:35 am Please correct me if i am wrong but the audio connector on the Atari SNAC Adapter must be connected to the audio in jack on the MiSTer.
That is correct, for using paddles.
netbeui
Posts: 148
Joined: Fri Jul 31, 2020 5:04 am
Has thanked: 77 times
Been thanked: 23 times

Re: Atari 7800 / 2600

Unread post by netbeui »

LamerDeluxe wrote: Mon Oct 24, 2022 11:14 am
venice wrote: Mon Oct 24, 2022 3:35 am Please correct me if i am wrong but the audio connector on the Atari SNAC Adapter must be connected to the audio in jack on the MiSTer.
That is correct, for using paddles.
The audio in jack that you’re referring to is either on the digital IO board or in the form of a small ADC add-on board, correct?

https://github.com/MiSTer-devel/Main_Mi ... ape-input)
User avatar
LamerDeluxe
Top Contributor
Posts: 1160
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 798 times
Been thanked: 257 times

Re: Atari 7800 / 2600

Unread post by LamerDeluxe »

netbeui wrote: Mon Oct 24, 2022 1:02 pm
LamerDeluxe wrote: Mon Oct 24, 2022 11:14 am
venice wrote: Mon Oct 24, 2022 3:35 am Please correct me if i am wrong but the audio connector on the Atari SNAC Adapter must be connected to the audio in jack on the MiSTer.
That is correct, for using paddles.
The audio in jack that you’re referring to is either on the digital IO board or in the form of a small ADC add-on board, correct?

https://github.com/MiSTer-devel/Main_Mi ... ape-input)
Yes, that is right. Both are the same kind of input.
netbeui
Posts: 148
Joined: Fri Jul 31, 2020 5:04 am
Has thanked: 77 times
Been thanked: 23 times

Re: Atari 7800 / 2600

Unread post by netbeui »

Great - thanks for the quick confirmation. Seems weird that they're using an audio jack for paddle controllers but I'm glad there's a way to directly connect and use those types of controllers via SNAC. I assume that little 3.5 mm audio connector on the Atari SNAC adapter can also be used to load Supercharger games? Or is it only there for the paddle?
User avatar
LamerDeluxe
Top Contributor
Posts: 1160
Joined: Sun May 24, 2020 10:25 pm
Has thanked: 798 times
Been thanked: 257 times

Re: Atari 7800 / 2600

Unread post by LamerDeluxe »

netbeui wrote: Mon Oct 24, 2022 1:42 pm Great - thanks for the quick confirmation. Seems weird that they're using an audio jack for paddle controllers but I'm glad there's a way to directly connect and use those types of controllers via SNAC. I assume that little 3.5 mm audio connector on the Atari SNAC adapter can also be used to load Supercharger games? Or is it only there for the paddle?
I don't expect it to be able to be used to load anything, as it is an output. Maybe that is possible with the audio input on the MiSTer IO boards, not sure if the 2600 cores have support for that.

The logic for using it for paddles is that paddles are nothing more than potentiometers, they return a certain voltage depending on their rotation (they need an input voltage to do that, which the SNAC adapter provides). So they are analog, not digital. The audio input on the MiSTer (named ADC = analog to digital converter), can convert a voltage to a digital value. The core can then use this value as the paddle rotation.
thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: Atari 7800 / 2600

Unread post by thorr »

I think the ADC in the 7800 core can be used to load Supercharger games, but I am not sure and I never tried it. I think you can just load them anyway from files, so no need to do it the hard way. It would be cool to try though. :-)
thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: Atari 7800 / 2600

Unread post by thorr »

Kitrinx wrote: Sun Jul 03, 2022 2:05 pm for the d9dapter I worked with the guy who makes it and he eventually was willing to add an indication to the thing as to when it is using paddles, so it can finally be handled by the framework. Now it's up to Alexey if he wants to add support for it or not in the framework, I gave him all the information a few days ago.
Do you know if this ever happened? It would be great to have this working properly.
thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: Atari 7800 / 2600

Unread post by thorr »

Thank you for the core update! I am looking forward to trying it out. I was planning to make a new paddles adapter, but hopefully this is no longer necessary and will work with the d9 adapter. FYI - the Readme does not mention the keys for the keypad adapter in case you wanted to add those.

User avatar
Kitrinx
Core Developer
Posts: 185
Joined: Sat May 23, 2020 2:14 am
Location: NYC
Has thanked: 1 time
Been thanked: 147 times
Contact:

Re: Atari 7800 / 2600

Unread post by Kitrinx »

thorr wrote: Tue Dec 27, 2022 6:11 pm

Thank you for the core update! I am looking forward to trying it out. I was planning to make a new paddles adapter, but hopefully this is no longer necessary and will work with the d9 adapter. FYI - the Readme does not mention the keys for the keypad adapter in case you wanted to add those.

There's actually three sets for the keypad controller iirc. The numeric keypad, the number keys in row 1, and a grid below the 1 2 3 keys

thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: Atari 7800 / 2600

Unread post by thorr »

From the Readme:

Kitrinx wrote: Tue Dec 27, 2022 6:24 pm

Over the years several Atari joystick to USB adapters have been created for 2600 and 7800 peripherals. Some of these do not split paddle operations into two distinct devices. For this scenario, a special option has been added in the periphal configuration section of the menu that allows multiple paddles to be on the same controller. When this mode is enabled, the first axis on a controller seen will be mapped as the first paddle, and the second axis moved will be mapped as the second. The first paddle button will be the assigned "Paddle" button, and the second paddle button will be the Fire II button. This is not a good user experience and I apologize for this, but there is nothing further that can be done on the matter without the framework properly splitting the paddles into two distinct devices. Also worth noting is both paddles MUST BE MAPPED AS AXIS AND BUTTONS ON THE MAIN MENU before they will work in the core.

It sounds like Paddle 2's button won't work currently, correct? Can you add a core menu option to map/reroute the Fire II button to the second paddle button, or is there no way to cross-over between devices? In the Robotron core, you can have two joystick devices for player 1, or alternatively one joystick device with its buttons for player 1, so it might be possible to do the same for this core.

User avatar
Chris23235
Top Contributor
Posts: 841
Joined: Sun May 24, 2020 8:45 pm
Has thanked: 106 times
Been thanked: 167 times

Re: Atari 7800 / 2600

Unread post by Chris23235 »

@kitrinx
Many thanks for fixing 1942, this is really one of the best games on the 7800. It shows what the system is capable of.

User avatar
Kitrinx
Core Developer
Posts: 185
Joined: Sat May 23, 2020 2:14 am
Location: NYC
Has thanked: 1 time
Been thanked: 147 times
Contact:

Re: Atari 7800 / 2600

Unread post by Kitrinx »

thorr wrote: Tue Dec 27, 2022 7:37 pm

From the Readme:

Kitrinx wrote: Tue Dec 27, 2022 6:24 pm

Over the years several Atari joystick to USB adapters have been created for 2600 and 7800 peripherals. Some of these do not split paddle operations into two distinct devices. For this scenario, a special option has been added in the periphal configuration section of the menu that allows multiple paddles to be on the same controller. When this mode is enabled, the first axis on a controller seen will be mapped as the first paddle, and the second axis moved will be mapped as the second. The first paddle button will be the assigned "Paddle" button, and the second paddle button will be the Fire II button. This is not a good user experience and I apologize for this, but there is nothing further that can be done on the matter without the framework properly splitting the paddles into two distinct devices. Also worth noting is both paddles MUST BE MAPPED AS AXIS AND BUTTONS ON THE MAIN MENU before they will work in the core.

It sounds like Paddle 2's button won't work currently, correct? Can you add a core menu option to map/reroute the Fire II button to the second paddle button, or is there no way to cross-over between devices? In the Robotron core, you can have two joystick devices for player 1, or alternatively one joystick device with its buttons for player 1, so it might be possible to do the same for this core.

It will work, you have to use that new option and map it all correctly in main as well. I can't really help with this as I don't have one, but user 240p on the MiSTer discord successfully set it up with that option.

You can now fully use both paddles and both paddle buttons if you set it up correctly. It's a user experience nightmare to set up but that's about all I can do from a core standpoint, if you want a better solution look to the framework of mister properly handling that adapter or the adapter splitting up the controller or any number of less confusing options.

thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: Atari 7800 / 2600

Unread post by thorr »

Kitrinx wrote: Tue Dec 27, 2022 10:25 pm

It will work, you have to use that new option and map it all correctly in main as well. I can't really help with this as I don't have one, but user 240p on the MiSTer discord successfully set it up with that option.

You can now fully use both paddles and both paddle buttons if you set it up correctly. It's a user experience nightmare to set up but that's about all I can do from a core standpoint, if you want a better solution look to the framework of mister properly handling that adapter or the adapter splitting up the controller or any number of less confusing options.

That's great news! I know it might be a pain to set up, but it is way better than nothing. I really appreciate your efforts to getting this working for us.

rhester72
Top Contributor
Posts: 1107
Joined: Thu Jun 11, 2020 2:31 am
Has thanked: 13 times
Been thanked: 169 times

Re: Atari 7800 / 2600

Unread post by rhester72 »

Can anyone please describe the exact steps to get it 'set up correctly'? This is major news!

mister240p
Posts: 1
Joined: Wed Dec 28, 2022 3:20 pm
Been thanked: 4 times

Re: Atari 7800 / 2600

Unread post by mister240p »

@rhester72 and others, here's a link of the general MiSTer controller mapping and Kitrinx's core mapping. (perhaps wrong terms). Drop both of these map files into the mapping directory and you should be good.

The mappings do two things:

1) Map the two paddles to the left analog stick's X and Y axis. The default behavior of the framework (IIRC per Kitrinx) is that it maps one of the paddles to the right analog stick.

2) Within the core, each of the paddles are mapped to the correct buttons

I've also attached the core version that was known to work with this method.

Last requirement... because the 2600dapter-d9 is still supported, firmware is released regularly and I can't anticipate if future firmware will break this. I know the above setup works at least with the 2021 and 2022 firmware versions.

Prior to the 2021 version, the 2600dapter-d9 firmware still works but the autosensing added an extra layer of complexity to it since while you're trying to map the MiSTer controller config, you have no idea if the 2600dapter-d9 has decided you have paddles connected. With the 2021 and 2022 versions, you can now force the paddle selection via dip switches.

I hope this works! If it does, please respond back to validate as well as if this continues to work on new main releases of Kitrinx's awesome 7800 core.

mister2600dapterd9.zip
(1.44 MiB) Downloaded 121 times
thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: Atari 7800 / 2600

Unread post by thorr »

mister240p wrote: Wed Dec 28, 2022 3:28 pm

I hope this works! If it does, please respond back to validate as well as if this continues to work on new main releases of Kitrinx's awesome 7800 core.

Kitrinx wrote: Tue Dec 27, 2022 10:25 pm

It will work

(Kitrinx quote taken out of context, lol) :-)

I got a chance to try this tonight. At first I was having problems, but no biggie. I am happy to report that everything is working GREAT so far! Thank you so much Kitrinx and mister240p.

Here is the short version of what i had to do:

  • Download the two .map files from mister240p's link and put them in the \\mister\sdcard\config\inputs folder
  • Run the latest core (yes it works with the latest!)
  • Plug in the 2600daptor D9 while holding in both paddle buttons at the same time to initialize it into paddles mode, then let go of the buttons.
  • Hit F12, go to Peripherals, and change Port 1 from Joystick to Paddles, and Allow Multi-Paddles: Yes.
  • You may have to choose hard reset in the core menu at this point.
  • Load up Kaboom (come on, are there any other paddles games worth testing for the first try at this? Didn't think so ;-))
  • Press F5 so that right Difficulty is set to B so both players' buckets will be big
  • Press F12 and save the settings for the core. If you want it to default to Joystick, then change that setting back in Peripherals first.
  • Enjoy Kaboom.

Also, I am pleased to say that it only uses a portion of the paddle range, just like on a real Atari 2600. I was worried about this, and would still make my own paddles adapter if this was an issue, but it's not, so awesome! I think part of what makes this work is using both paddles buttons when initializing the D9 adapter. There are two modes for paddles, and this one works well.

I will test Warlords with four players next... Edit: It works too! Awesome! Consider this paddles issue fixed! :-D

thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: Atari 7800 / 2600

Unread post by thorr »

As an aside, playing Indy 500 with a mouse is still way over accelerated. It would be great if this could be dialed way back for just the driving controller, or have a sensitivity setting in the core for it when using a mouse. I have one driving controller but not two and it would be great to be able to use the mouse for the second player. Thanks. ;-) Edit, well I just ordered a second one for $15 on ebay, so I should be good, but others may want this fixed. :-)

rhester72
Top Contributor
Posts: 1107
Joined: Thu Jun 11, 2020 2:31 am
Has thanked: 13 times
Been thanked: 169 times

Re: Atari 7800 / 2600

Unread post by rhester72 »

thorr wrote: Thu Dec 29, 2022 6:52 am

As an aside, playing Indy 500 with a mouse is still way over accelerated. It would be great if this could be dialed way back for just the driving controller, or have a sensitivity setting in the core for it when using a mouse. I have one driving controller but not two and it would be great to be able to use the mouse for the second player. Thanks. ;-) Edit, well I just ordered a second one for $15 on ebay, so I should be good, but others may want this fixed. :-)

Wait, what? The (real) driving controller (on a D9) works too?

thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: Atari 7800 / 2600

Unread post by thorr »

rhester72 wrote: Thu Dec 29, 2022 7:40 pm
thorr wrote: Thu Dec 29, 2022 6:52 am

As an aside, playing Indy 500 with a mouse is still way over accelerated. It would be great if this could be dialed way back for just the driving controller, or have a sensitivity setting in the core for it when using a mouse. I have one driving controller but not two and it would be great to be able to use the mouse for the second player. Thanks. ;-) Edit, well I just ordered a second one for $15 on ebay, so I should be good, but others may want this fixed. :-)

Wait, what? The (real) driving controller (on a D9) works too?

Yep, at least I think so. It worked on something I have, and that is what I think it was. I can't test it right now to confirm. I just tested the mouse last night. The keypad works too, but you have to assign the button mappings in the core for it to work.

User avatar
skooter
Posts: 60
Joined: Mon May 25, 2020 1:37 pm
Location: Brazil
Has thanked: 1 time
Been thanked: 14 times
Contact:

Re: Atari 7800 / 2600

Unread post by skooter »

I followed the steps but I still couldn't get the two paddles to work at the same time. The buttons do not work.

thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: Atari 7800 / 2600

Unread post by thorr »

skooter wrote: Thu Dec 29, 2022 9:36 pm

I followed the steps but I still couldn't get the two paddles to work at the same time. The buttons do not work.

Test in Windows and go into the joystick/gamepad control panel and see if the paddles are working right there when you press the buttons and move them. You may not have configured the D9 correctly. It usually takes me 2 tries before it works right. It seems to work better for me when unplugging and plugging the USB cable into the D9's USB socket, rather than the MiSTer USB port.

thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: Atari 7800 / 2600

Unread post by thorr »

rhester72 wrote: Thu Dec 29, 2022 7:40 pm

Wait, what? The (real) driving controller (on a D9) works too?

I tested this tonight, and unfortunately it does not work with this core with the D9. It does work perfectly with SNAC though. The driving controller works with the menus with the D9, but not the core itself. Maybe it is because I have a different spinner defined for the core, and perhaps if I change the PID/VID, it would work. I haven't tried this yet.

bankshot
Posts: 66
Joined: Thu Dec 16, 2021 5:13 pm
Has thanked: 18 times
Been thanked: 29 times

Re: Atari 7800 / 2600

Unread post by bankshot »

Woo hoo, this is great!!! This is the first time I have successfully played an Atari 2600 game on MiSTer with paddles (via D9)! The action is a bit jittery but my paddles are 40 years old so the potentiometers need some TLC, or replacement. Big thanks to kitrinx for the code upgrade, mister240p for the paddle mappings, and thorr for the config instructions!

Dumb question for kitrinx/developers: Is it possible to port the Atari 2600/D9 paddle code to other cores like NES/Arcade for games like Arkanoid?

thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: Atari 7800 / 2600

Unread post by thorr »

bankshot wrote: Sat Dec 31, 2022 9:20 pm

Woo hoo, this is great!!! This is the first time I have successfully played an Atari 2600 game on MiSTer with paddles (via D9)! The action is a bit jittery but my paddles are 40 years old so the potentiometers need some TLC, or replacement. Big thanks to kitrinx for the code upgrade, mister240p for the paddle mappings, and thorr for the config instructions!

Dumb question for kitrinx/developers: Is it possible to port the Atari 2600/D9 paddle code to other cores like NES/Arcade for games like Arkanoid?

To fix the jittery paddles, you need to clean the potentiometers. You might be able to just spray some contact cleaner into them and move them around, or if you are feeling like you want perfection and are willing to go this far, here is probably the best way: https://www.youtube.com/watch?v=QWllfkjGd3A

The D9 paddles act like an analog joystick or thumbpad. As long as the system supports analog controls, the paddles might work with it. The NES is digital, so that won't work. If the Arkanoid core supports an analog joystick then it should be possible to use the paddles. However, the original game was a spinner I think, so it may not be supported in the core.

bankshot
Posts: 66
Joined: Thu Dec 16, 2021 5:13 pm
Has thanked: 18 times
Been thanked: 29 times

Re: Atari 7800 / 2600

Unread post by bankshot »

Thanks thorr. Actually, the NES version of Arkanoid came with its own version of an Atari "paddle", a controller with an analog pot and a fire button. I bought the game new back then and after several years of continuous use, the controller finally died. It was a unique design that did not utilize an off-the-shelf pot replacement component.

I wasn't trying to derail the point of this thread - I just hoped that the hard work done on this code is useful and usable in as many gaming cores as possible.

pashdown
Posts: 4
Joined: Sun Jan 01, 2023 11:35 pm
Been thanked: 1 time

Re: Atari 7800 / 2600

Unread post by pashdown »

rhester72 wrote: Thu Dec 29, 2022 7:40 pm

Wait, what? The (real) driving controller (on a D9) works too?

Although the paddle controllers work great through a d9, the driving controller did not. Setting the Peripheral to Driving in Indy 500 did not change anything. Anyone had success? I wish I could find a good spinner for not only Indy 500 but the other spinner games.

User avatar
Kitrinx
Core Developer
Posts: 185
Joined: Sat May 23, 2020 2:14 am
Location: NYC
Has thanked: 1 time
Been thanked: 147 times
Contact:

Re: Atari 7800 / 2600

Unread post by Kitrinx »

pashdown wrote: Sun Jan 01, 2023 11:41 pm
rhester72 wrote: Thu Dec 29, 2022 7:40 pm

Wait, what? The (real) driving controller (on a D9) works too?

Although the paddle controllers work great through a d9, the driving controller did not. Setting the Peripheral to Driving in Indy 500 did not change anything. Anyone had success? I wish I could find a good spinner for not only Indy 500 but the other spinner games.

Actually this was implemented before spinners were in the framework and I don't think I ever updated it. I'll take a look at revisiting the driving controller when I get a chance. I think it also works poorly with mouse now that you've reminded me.

User avatar
Kitrinx
Core Developer
Posts: 185
Joined: Sat May 23, 2020 2:14 am
Location: NYC
Has thanked: 1 time
Been thanked: 147 times
Contact:

Re: Atari 7800 / 2600

Unread post by Kitrinx »

bankshot wrote: Sat Dec 31, 2022 9:20 pm

Woo hoo, this is great!!! This is the first time I have successfully played an Atari 2600 game on MiSTer with paddles (via D9)! The action is a bit jittery but my paddles are 40 years old so the potentiometers need some TLC, or replacement. Big thanks to kitrinx for the code upgrade, mister240p for the paddle mappings, and thorr for the config instructions!

Dumb question for kitrinx/developers: Is it possible to port the Atari 2600/D9 paddle code to other cores like NES/Arcade for games like Arkanoid?

The "paddle chooser" module is pretty portable, as it's mostly abstract, taking in a variety of inputs and trying to discern from them which one the player is trying to use as a paddle. The auto-range adjustment and the technical translation to atari controller pins is not portable, as that's very specific to the way the 2600 worked and isn't applicable to systems that used other means.

thorr
Top Contributor
Posts: 1101
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 537 times
Been thanked: 252 times

Re: Atari 7800 / 2600

Unread post by thorr »

Kitrinx wrote: Sat Jan 07, 2023 4:49 pm
pashdown wrote: Sun Jan 01, 2023 11:41 pm
rhester72 wrote: Thu Dec 29, 2022 7:40 pm

Wait, what? The (real) driving controller (on a D9) works too?

Although the paddle controllers work great through a d9, the driving controller did not. Setting the Peripheral to Driving in Indy 500 did not change anything. Anyone had success? I wish I could find a good spinner for not only Indy 500 but the other spinner games.

Actually this was implemented before spinners were in the framework and I don't think I ever updated it. I'll take a look at revisiting the driving controller when I get a chance. I think it also works poorly with mouse now that you've reminded me.

Much appreciated. The driving controller will move the menus up and down with the D9, but does nothing in the game, and yes the mouse is way too fast when used as the driving controller.

Post Reply