Jump to content
IGNORED

MiSTer FPGA - 7800 Core


RevEng

Recommended Posts

On 1/3/2023 at 9:09 AM, MrZarniwoop said:

I haven't tried the recent MiSTer Atari 7800 core, but earlier playing around with a 2600-daptor D9 for paddles wasn't overly satisfactory on the MiSTer Atari 7800 core. It worked, but the range of motion and feel was all wrong. If I recall correctly, turning the paddle all the way moved paddles across the screen, as opposed to a very small range of motion needed on real hardware.

 

Hi, I have the same setup as yours.  A MiSTer using the 2600-dapter-D9 running Kitrinx's 7800 core for Kaboom!.   I also happen to have a real Sixer 2600 with the Kaboom! cartridge.  I have an Atari adapter for SNAC on it's way but I don't have the analog board w/ the 3.5mm jack to work w/ the paddles anyway.

 

My suspicion of what you're experiencing is related more to the 2600-dapter-D9's sampling and communication of that analog range than the core itself.   

 

You're right in that with Kaboom! (haven't tested other games), the rotational distance/travel of the paddles is lower to cover the same on-screen movement of the buckets on the 2600 than with the core+2600dapterd9 combo.   However, I don't find the difference on rotation-distance between the two too much.  If anything I actually prefer the rotation-distance using the 2600dapterD9 than on real hardware since it gives you finer control of where your buckets are.

Link to comment
Share on other sites

2 hours ago, RockLobster said:

 

Hi, I have the same setup as yours.  A MiSTer using the 2600-dapter-D9 running Kitrinx's 7800 core for Kaboom!.   I also happen to have a real Sixer 2600 with the Kaboom! cartridge.  I have an Atari adapter for SNAC on it's way but I don't have the analog board w/ the 3.5mm jack to work w/ the paddles anyway.

 

My suspicion of what you're experiencing is related more to the 2600-dapter-D9's sampling and communication of that analog range than the core itself.   

 

You're right in that with Kaboom! (haven't tested other games), the rotational distance/travel of the paddles is lower to cover the same on-screen movement of the buckets on the 2600 than with the core+2600dapterd9 combo.   However, I don't find the difference on rotation-distance between the two too much.  If anything I actually prefer the rotation-distance using the 2600dapterD9 than on real hardware since it gives you finer control of where your buckets are.

You're a better Kaboom! player than I am. I can barely break 1,000 points on a MiSTer + 2600-dapter-D9. I can consistently pass 2,000 and often 3,000 with either real hardware or MiSTer + old 2600 core I noted earlier + SNAC adapter.

 

At PRGE I sat down at an Atari 2600 with CRT and very, very loose (albeit responsive) paddles and easily got almost to 5,000 points. The combo of loose, almost free-spinning, paddles and CRT just felt "right" in a way that I hadn't experienced with LED screens even with a very good upscaler at home. Maybe because Kaboom! is an exceptionally "twitchy" game where any lag makes a big difference?

Link to comment
Share on other sites

5 minutes ago, MrZarniwoop said:

You're a better Kaboom! player than I am. I can barely break 1,000 points on a MiSTer + 2600-dapter-D9. I can consistently pass 2,000 and often 3,000 with either real hardware or MiSTer + old 2600 core I noted earlier + SNAC adapter.

 

At PRGE I sat down at an Atari 2600 with CRT and very, very loose (albeit responsive) paddles and easily got almost to 5,000 points. The combo of loose, almost free-spinning, paddles and CRT just felt "right" in a way that I hadn't experienced with LED screens even with a very good upscaler at home. Maybe because Kaboom! is an exceptionally "twitchy" game where any lag makes a big difference?

Upscalers aside (mister's has something like 10 scanlines of latency, it's very  low on a good oled or something) analog devices like paddles have a lot of challenges since they are based on the very specific behavior of a capacitor charging with a potentiometer, and how the game chooses to poll the TIA for when this capacitor charges. That said, I created a table of the time in nanoseconds for the capacitor to charge in the event that Blue ever figures out how he wants to implement analog SNAC in the updated core. Then you'll be able to use the real paddles directly, just like on the real thing.

  • Like 1
Link to comment
Share on other sites

21 hours ago, RockLobster said:

My suspicion of what you're experiencing is related more to the 2600-dapter-D9's sampling and communication of that analog range than the core itself.   

 

The adapter sends an analog value that represents the paddle position.  I calibrated this analog value to work with the Stella emulator default paddle scaling (Stella being the predominate 2600 emulator at the time). 

 

Normal practice has been for emulators to have a user adjustable scaling factor for analog inputs so the user can adjust for the particular adapter & controller they are using, and well as for their own personal preference.

 

Tom

http://2600-daptor.com/

Link to comment
Share on other sites

18 hours ago, Kitrinx said:

Then you'll be able to use the real paddles directly, just like on the real thing.

This should be the top priority.  MiSTer is hardware based emulation and the primary focus should be on using controllers directly, and not the use of any USB adapter.

 

With that said, it would be nice if user adjustable scaling was there, so people could use of paddles with whichever USB adapter and be able to adjust for the range & feel they wanted.

 

People might like to adjust the paddle sensitivity even with directly connected paddles.  I do remember as a kid had friends that hated the 2600 paddles as they found them way too sensitive.

 

Tom

http://2600-daptor.com/

Link to comment
Share on other sites

On 1/8/2023 at 12:09 PM, dualcam said:

This should be the top priority.  MiSTer is hardware based emulation and the primary focus should be on using controllers directly, and not the use of any USB adapter.

 

With that said, it would be nice if user adjustable scaling was there, so people could use of paddles with whichever USB adapter and be able to adjust for the range & feel they wanted.

 

People might like to adjust the paddle sensitivity even with directly connected paddles.  I do remember as a kid had friends that hated the 2600 paddles as they found them way too sensitive.

 

Tom

http://2600-daptor.com/

It's not really my thing. I don't deal with the hardware and it's honestly extremely inconvenient. The guy who does manage the hardware for this never merged the code with the older atari core, and so there was nothing to port from it. When he gets to it, he gets to it. As a philosophical tangent, hardware based emulation has nothing to do with using old hardware. The purpose, in fact, is to replace the need for old hardware. The fact that it can, to some extent, interface directly with hardware is a perk but hardly a first priority. It's nice for funky hardware like light guns and atarivox that were sort of evolutionary dead ends in the tree of peripherals, so they can still be used.

 

Regarding speeds for paddles, that's great that stella or whatever has a UI nice enough for this, but mister's UI is pretty simplistic. The best you'd realistically get is like low-medium-high and it doesn't save per game. It would be a worse experience imho than normalizing the distance. Now that there are more menu bits available for adding options I can look into adding crude adjustments someday as an optional alternative.

Link to comment
Share on other sites

45 minutes ago, Kitrinx said:

As a philosophical tangent, hardware based emulation has nothing to do with using old hardware. The purpose, in fact, is to replace the need for old hardware. The fact that it can, to some extent, interface directly with hardware is a perk but hardly a first priority.

I have to disagree with this.  Emulation, whether it is hardware or software based should strive for 100% accuracy.  If it has that accuracy then the old peripherals will work.  If not, the emulation is not accurate and is therefore at best a close simulation.  If the idea is to preserve the old machines, a "close enough approximation" doesn't really cut it.

Link to comment
Share on other sites

2 hours ago, Kitrinx said:

It's not really my thing. I don't deal with the hardware and it's honestly extremely inconvenient. The guy who does manage the hardware for this never merged the code with the older atari core, and so there was nothing to port from it. When he gets to it, he gets to it. As a philosophical tangent, hardware based emulation has nothing to do with using old hardware. The purpose, in fact, is to replace the need for old hardware. The fact that it can, to some extent, interface directly with hardware is a perk but hardly a first priority. It's nice for funky hardware like light guns and atarivox that were sort of evolutionary dead ends in the tree of peripherals, so they can still be used.

 

Regarding speeds for paddles, that's great that stella or whatever has a UI nice enough for this, but mister's UI is pretty simplistic. The best you'd realistically get is like low-medium-high and it doesn't save per game. It would be a worse experience imho than normalizing the distance. Now that there are more menu bits available for adding options I can look into adding crude adjustments someday as an optional alternative.

Yes, more than fair enough, the hardware part is outside of your control.

 

I think the overall project goal is 100% accurate emulation of old hardware.  For the user, they would like 100% accurate recreation of the play experience, which includes the feel of the hand on the original controller, however that comes about.

 

I am aware that MiSTer has a very limited UI.  I think some presets chosen to work with existing available USB adapters would be a good minimal solution.

 

Tom

http://2600-daptor.com/

  • Like 1
Link to comment
Share on other sites

I made a special 2600-D9 firmware update with the paddle scaling changed just for MiSTer, however I am not able to check it.  If someone could try it, that would be great.  The firmware update is here -

http://2600-daptor.com/2600-daptor D9 Mr 230110.hex

and follow the D9 firmware update instructions -

http://2600-daptor.com/2600-firmware D9.htm

 

Take a paddle controller, and put some tape on the dial and the base.  Fire up Break-out in MiSTer, and position the player paddle to where it is just touching left border.  Put a reference mark on the tape on the dial and a corresponding mark on the base.  Now turn the paddle to position the player to just touching the right border, and mark the base where the mark on the dial is.  Measure the distance between the two marks on the base.  If the scaling is correct, this should be just under an 1", approx 15/16".

 

Tom

http://2600-daptor.com/

IMG20230110153250.jpg

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

2 hours ago, dualcam said:

I made a special 2600-D9 firmware update with the paddle scaling changed just for MiSTer, however I am not able to check it.  If someone could try it, that would be great.  The firmware update is here -

http://2600-daptor.com/2600-daptor D9 Mr 230110.hex

and follow the D9 firmware update instructions -

http://2600-daptor.com/2600-firmware D9.htm

 

Take a paddle controller, and put some tape on the dial and the base.  Fire up Break-out in MiSTer, and position the player paddle to where it is just touching left border.  Put a reference mark on the tape on the dial and a corresponding mark on the base.  Now turn the paddle to position the player to just touching the right border, and mark the base where the mark on the dial is.  Measure the distance between the two marks on the base.  If the scaling is correct, this should be just under an 1", approx 15/16".

Ok, first to answer my question from above.   Yes, it's the Breakout arcade core.  To use it with paddles + 2600dapter-d9, you need to:

 

1) Set Control P1: to X (not paddles somehow)

2) Map the paddle button for serve

3) Map the coin and start buttons to a keyboard or another controller

 

re: the "Mr 230110" firmware, I've validated the firmware works.

 

In the attached paddle photos, the left photo shows the distance from left to right of the screen to be about 2.5".   This is from the Oct 31, 2021 firmware.

 

After updating with the "Mr 230110" firmware, the distance is now about 0.75"

 

This should have the effect of being closer to the real 2600 paddle distance.  Thank you!

 

mister-breakout-controller-setting-for-paddles-20230110.jpg

2600dapter-d9-2021vs2023-paddle-firmware-adjustment.jpg

Link to comment
Share on other sites

32 minutes ago, dualcam said:

The Atari 7800/2600 core, and the Breakout cartridge.

 

 

Oh well, I used the Arcade Breakout core to test both the before and after rotational distance.

 

However, now using the 2600 Breakout with the 7800/2600 core, the full left to right onscreen travel is still exactly the same as the arcade breakout "after".   That is, about 0.75"

 

Link to comment
Share on other sites

23 hours ago, RockLobster said:

 

Oh well, I used the Arcade Breakout core to test both the before and after rotational distance.

 

However, now using the 2600 Breakout with the 7800/2600 core, the full left to right onscreen travel is still exactly the same as the arcade breakout "after".   That is, about 0.75"

 

OK, so pretty close.  The 15/16" measurement is from an original 2600 - that is what we are want to match.  If you don't mind, I will tweak it a bit and post another firmware update later today.

 

Tom

http://2600-daptor.com/

Link to comment
Share on other sites

On 1/11/2023 at 8:33 AM, RockLobster said:

 

Oh well, I used the Arcade Breakout core to test both the before and after rotational distance.

 

However, now using the 2600 Breakout with the 7800/2600 core, the full left to right onscreen travel is still exactly the same as the arcade breakout "after".   That is, about 0.75"

 

Another D9 update with the paddle scaling tweaked -

http://2600-daptor.com/2600-daptor D9 Mr 230112.hex

 

Same as before -trying to achieve 15/16" paddle movement in 7800/2600 core w/ breakout for player across screen (just touching the wall on either side)

 

Tom

http://2600-daptor.com/

 

  • Like 1
Link to comment
Share on other sites

16 hours ago, dualcam said:

Another D9 update with the paddle scaling tweaked -

http://2600-daptor.com/2600-daptor D9 Mr 230112.hex

 

Same as before -trying to achieve 15/16" paddle movement in 7800/2600 core w/ breakout for player across screen (just touching the wall on either side)

You've nailed it!  The pink sticker on the left actually moved a little before the photo but the MiSTer movement is now exactly 15/16"

 

 

Screen Shot 2023-01-13 at 10.09.33 AM.jpg

  • Like 1
Link to comment
Share on other sites

5 minutes ago, RockLobster said:

You've nailed it!  The pink sticker on the left actually moved a little before the photo but the MiSTer movement is now exactly 15/16"

 

 

Screen Shot 2023-01-13 at 10.09.33 AM.jpg

Great!  Hopefully that helps but I think having to have special versions or modes for adapters to cater to just one project is a really silly way to go.

 

There is another thing I need feedback on.  I also added mouse output for the driving controller, so that hopefully that is also working.  If someone could check it works, and it might need to be scaled.  Should be 1 to 1, one rotation of the driving controller should be one rotation of the car.

 

Tom

http://2600-daptor.com/

  • Like 2
Link to comment
Share on other sites

9 minutes ago, dualcam said:

I also added mouse output for the driving controller, so that hopefully that is also working.  If someone could check it works, and it might need to be scaled.  Should be 1 to 1, one rotation of the driving controller should be one rotation of the car.

Unfortunately while I have a gazillion light guns, controllers and randomly weird computer/console peripherals.  I somehow do not have a 2600 Driving Controller.

 

If someone wants to send me one or any other DB-9 controller to test on the MiSTer, please DM me. ;)

 

Link to comment
Share on other sites

On 1/14/2023 at 1:22 AM, dualcam said:

There is another thing I need feedback on.  I also added mouse output for the driving controller, so that hopefully that is also working.  If someone could check it works, and it might need to be scaled.  Should be 1 to 1, one rotation of the driving controller should be one rotation of the car.

I had a chance to try out the driving controller in the 7800 core with the most recent "2600-daptor D9 Mr 230112.hex" firmware you posted.

The car in Indy 500 will rotate 90 degrees clockwise, but any further rotation will rotate back to the initial position.  This pattern will keep repeating as the wheel is turned.  This is with the "Controller Type" option set to "Auto" or "Joystick".  Setting this to "Driving Controller" has no effect.  Note: I didn't go through the process of mapping the driving controller as a controller, as you mentioned it is emulating a mouse (mice are automatically mapped in MiSTer, they cannot be mapped with the normal controller mapping process).

Edited by Jstick
Link to comment
Share on other sites

15 hours ago, Jstick said:

I had a chance to try out the driving controller in the 7800 core with the most recent "2600-daptor D9 Mr 230112.hex" firmware you posted.

The car in Indy 500 will rotate 90 degrees clockwise, but any further rotation will rotate back to the initial position.  This pattern will keep repeating as the wheel is turned.  This is with the "Controller Type" option set to "Auto" or "Joystick".  Setting this to "Driving Controller" has no effect.  Note: I didn't go through the process of mapping the driving controller as a controller, as you mentioned it is emulating a mouse (mice are automatically mapped in MiSTer, they cannot be mapped with the normal controller mapping process).

Thanks for the feedback.  Sounds like I don't understand what type of input MiSTer is wanting.  If you use a mouse, does the car continually spin in one direction as you move the mouse continually left or continually right?

 

Tom

http://2600-daptor.com/

 

Link to comment
Share on other sites

16 hours ago, Jstick said:

I had a chance to try out the driving controller in the 7800 core with the most recent "2600-daptor D9 Mr 230112.hex" firmware you posted.

The car in Indy 500 will rotate 90 degrees clockwise, but any further rotation will rotate back to the initial position.  This pattern will keep repeating as the wheel is turned.  This is with the "Controller Type" option set to "Auto" or "Joystick".  Setting this to "Driving Controller" has no effect.  Note: I didn't go through the process of mapping the driving controller as a controller, as you mentioned it is emulating a mouse (mice are automatically mapped in MiSTer, they cannot be mapped with the normal controller mapping process).

Oh, and can also check the adapter+DC on Windows/Mac/Linux desktop.  Spinning the knob clock-wise should continuously move the mouse pointer right.  Like-wise, spinning counter-clockwise should continuously move the mouse pointer left.

 

Tom

http://2600-daptor.com/

Link to comment
Share on other sites

On 1/17/2023 at 5:51 PM, Jstick said:

I had a chance to try out the driving controller in the 7800 core with the most recent "2600-daptor D9 Mr 230112.hex" firmware you posted.

The car in Indy 500 will rotate 90 degrees clockwise, but any further rotation will rotate back to the initial position.  This pattern will keep repeating as the wheel is turned.  This is with the "Controller Type" option set to "Auto" or "Joystick".  Setting this to "Driving Controller" has no effect.  Note: I didn't go through the process of mapping the driving controller as a controller, as you mentioned it is emulating a mouse (mice are automatically mapped in MiSTer, they cannot be mapped with the normal controller mapping process).

@dualcam

@Kitrinx

 

Ok, I'd just tried my luck with a Driving Controller dualcam sent me to test on the MiSTer.

 

So to set the baseline, I marked the Driving Controller on a real 2600 with Indy 500.   To turn the car 180 degrees translate to about a half rotation.   However, I'm not able to get very far with the testing.

 

First, because there is no hard dip switch setting on the 2600dapter-d9, I can only set it to AutoSense or connect a joystick and then swap out the joystick with the Driving Controller after plugging in / powering on the 2600dapter-d9.

 

Once in the MiSTer, I setup the controller with twists for "right" and "left" and then FIRE1 for the button.  When I launch the input testing tool and go to the analog screen, I see what @Jstick described regarding the behavior.   First, the DC shows up as the second analog stick's Y-axis.    But instead of a smooth range of motion, there seems to be only a few steps / values on the Y-axis when the wheel is turned fully.

 

Because of this motion, I don't think anything matters within any of the cores.

 

Thoughts?

Link to comment
Share on other sites

13 hours ago, RockLobster said:

First, because there is no hard dip switch setting on the 2600dapter-d9, I can only set it to AutoSense or connect a joystick and then swap out the joystick with the Driving Controller after plugging in / powering on the 2600dapter-d9.

The hard dip switch setting is all 3 down:

"The Atari 2600 paddles are part of a "2600-daptor" mode.  When in this mode, you can freely switch between 2600 paddles, joystick, and driving just like you can with the Original and 2600 II - no need to use Auto Sense."

 

This note:
"Atari 2600 Joystick/Driving (driving may be miss-detected, use joystick or paddles, then swap to driving)"

only applies when the dips are set to Auto Sense, so it shouldn't be necessary to plug in a joystick first when using the driving controller in "2600-daptor" mode.

Edited by Jstick
Link to comment
Share on other sites

On 1/19/2023 at 1:12 AM, dualcam said:

Oh, and can also check the adapter+DC on Windows/Mac/Linux desktop.  Spinning the knob clock-wise should continuously move the mouse pointer right.  Like-wise, spinning counter-clockwise should continuously move the mouse pointer left.

 

Tom

http://2600-daptor.com/

Sorry, have been busy and haven't had a chance to test this further.

Something seems strange based on what RockLobster found though, that the driving controller is showing up as an analog axis rather than as a mouse.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...