Better support for SNAC?

Discussion of keyboards, gamepads, joysticks and other input related peripherals.
msimplay
Posts: 31
Joined: Tue Jun 16, 2020 6:33 am
Has thanked: 16 times

Better support for SNAC?

Unread post by msimplay »

Currently snac is one player only but I believe it should be two player.

I think people recommended just buy a low latency controller USB like the 8bitdo.

However the issue is now that latency on modern controller's is not a priority the 8bitdo controllers are
good but they seem to be having low print runs and starting to get scalped now

So I believe there should be better official support for snac.

What does everyone else think?
dshadoff
Posts: 281
Joined: Sun May 24, 2020 9:30 pm
Has thanked: 2 times
Been thanked: 58 times

Re: Better support for SNAC?

Unread post by dshadoff »

I think you may not understand what SNAC is; it is a series of actual I/Os from the core to what would be a controller port.
For any additional ports, you would need additional I/Os to be allocated, and they are all already accounted for.

Further - and Sorgelig says this very frequently - it isn't intended to be used for regular controllers, as there is already the low-latency USB path for that. What it is intended for, is to accommodate 'weird' devices which have a special communication protocol or perform a function that was unique to that time period. For example a fishing controller, pachinko controller, the SNES controller with the numeric pad, etc.
msimplay
Posts: 31
Joined: Tue Jun 16, 2020 6:33 am
Has thanked: 16 times

Re: Better support for SNAC?

Unread post by msimplay »

dshadoff wrote: Fri Apr 30, 2021 11:41 am I think you may not understand what SNAC is; it is a series of actual I/Os from the core to what would be a controller port.
For any additional ports, you would need additional I/Os to be allocated, and they are all already accounted for.
Thank you but it has been done unofficially already and quite well too
Further - and Sorgelig says this very frequently - it isn't intended to be used for regular controllers, as there is already the low-latency USB path for that. What it is intended for, is to accommodate 'weird' devices which have a special communication protocol or perform a function that was unique to that time period. For example a fishing controller, pachinko controller, the SNES controller with the numeric pad, etc.
There is a path however modern day controllers are not being made with latency in mind for the purpose of being low latency for use with MiSTer we are are the mercy of low print runs of whatever happens to be low latency. Such as 8bitdo controllers right now.
dshadoff
Posts: 281
Joined: Sun May 24, 2020 9:30 pm
Has thanked: 2 times
Been thanked: 58 times

Re: Better support for SNAC?

Unread post by dshadoff »

I am not aware of this unofficial implementation you are referring to - what did they sacrifice in order to salvage the missing pins ?

...or are you referring to one of the protocol-converter implementations which is actually NOT SNAC, as it only confirms to basic controllers, and breaks support for complex types (such as mouse, pachinko, etc.) ?
msimplay
Posts: 31
Joined: Tue Jun 16, 2020 6:33 am
Has thanked: 16 times

Re: Better support for SNAC?

Unread post by msimplay »

dshadoff wrote: Fri Apr 30, 2021 12:14 pm I am not aware of this unofficial implementation you are referring to - what did they sacrifice in order to salvage the missing pins ?
Not sure but its this one here using a DB9 Port

https://www.antoniovillena.es/store/pro ... ster-mini/

https://www.antoniovillena.es/store/product/decapod/

I'll be purchasing one soon but I do believe this should be a part of the official project
dshadoff
Posts: 281
Joined: Sun May 24, 2020 9:30 pm
Has thanked: 2 times
Been thanked: 58 times

Re: Better support for SNAC?

Unread post by dshadoff »

That's protocol conversion. It performs polling of standard joypads only, and would not work for mouse/etc. special-protocol devices.
In other words, it's the opposite of what SNAC is designed for (and may even require special versions of the cores).

This is doing effectively the same job as daemonbite converters, except that:
- it polls the original converter using its original protocol, and as such may introduce a small amount of lag while this is processed
- it isn't sending the data out via USB, but rather alternate interfaces

Being that it is the opposite of what SNAC is intended for, there is virtually no chance of it being supported by the project in a larger way.
If it were to be supported somehow, this would go through the HPS side of the device, and end up being the same as USB - which, it's not clear to me why you feel this is deficient in any way.
msimplay
Posts: 31
Joined: Tue Jun 16, 2020 6:33 am
Has thanked: 16 times

Re: Better support for SNAC?

Unread post by msimplay »

dshadoff wrote: Fri Apr 30, 2021 2:15 pm That's protocol conversion. It performs polling of standard joypads only, and would not work for mouse/etc. special-protocol devices.
In other words, it's the opposite of what SNAC is designed for (and may even require special versions of the cores).

This is doing effectively the same job as daemonbite converters, except that:
- it polls the original converter using its original protocol, and as such may introduce a small amount of lag while this is processed
- it isn't sending the data out via USB, but rather alternate interfaces

Being that it is the opposite of what SNAC is intended for, there is virtually no chance of it being supported by the project in a larger way.
If it were to be supported somehow, this would go through the HPS side of the device, and end up being the same as USB - which, it's not clear to me why you feel this is deficient in any way.
I think it does require special version I think the creator is on the forums.

That aside 2 player support in snac would be good.
The othet solution I am thinking of is if official MiSTer controllers designed to be low latency are a part of the project.

I am just proposing this solution because acquiring good low latency usb controllers is a problem.
antoniovillena
Posts: 66
Joined: Sun May 24, 2020 8:11 pm
Been thanked: 7 times

Re: Better support for SNAC?

Unread post by antoniovillena »

There is an open source / open hardware extension for SNAC here:

https://github.com/MiSTer-DB9

It's backwards compatible. That's official cores with SNAC support works with the adapters (only one player and without OSD control). Of course that means also gun support. There are improvements on NES (on US controllers) and PCE (full support 6 button gamepads) over the official SNAC.
User avatar
0x15e
Posts: 11
Joined: Sun Jul 26, 2020 8:10 pm
Has thanked: 1 time
Been thanked: 1 time

Re: Better support for SNAC?

Unread post by 0x15e »

msimplay wrote: Fri Apr 30, 2021 2:22 pm I am just proposing this solution because acquiring good low latency usb controllers is a problem.
It isn't, though. If you buy / build Daemonbite adapters, you can use original controllers over USB with very little latency (avg 0.75ms). That's one of the lowest latency input methods there is. They're not particularly expensive to buy pre-built but if for some reason you can't do that (export / shipping restrictions, etc.), they're also very easy to build using an Arduino Pro Micro.

Trust me. Before I got into MiSTer, I was a little put off about having to use USB for everything, but once I actually tried building and playing with those adapters using original controllers, all my fears were put to rest. There really isn't any reason to favor SNAC over USB unless you're using a nonstandard controller or a light gun.
PikWik
Posts: 90
Joined: Sat May 30, 2020 7:00 pm
Has thanked: 50 times
Been thanked: 16 times

Re: Better support for SNAC?

Unread post by PikWik »

i understand the need for the lowest latency for controllers.
specifically when referring to games for the atari, SHMUPs, arcade fighting games, NES titles, and super mario world ROM hacks.
those particular systems and games benefit the most from having the lowest input lag as possible.

that said, and after testing both USB controllers and SNAC with those cores on the mister, it is largely subjective as to how much you would notice the latency of a USB controller or a SNAC converter/controller. the fast polling option for USB on the MiSTer works.

https://docs.google.com/spreadsheets/d/ ... 1214855193

my advice would be to use that chart for wired controllers, and pick one from the top 10-15. anything in that 4ms or lower range is going to be perfectly playable for every single core, and anything from that list under 1ms will be imperceptible to a human (comparing to native SNAC).

if arcade games are your main systems you play on the mister, then getting a proper arcade stick and a UFB would be my recommendation.
referencing the above chart by MiSTeraddons, the UniversalFightingBoard by Brooks has sub 1ms input lag.
there is also a DIY version of a UFB, for PC/MiSTer/Pi only, which uses a ~$10 arduino board with incredible input lag stats as well

https://github.com/MickGyver/DaemonBite-Arcade-Encoder

zkeEDR6.png
zkeEDR6.png (17.29 KiB) Viewed 846 times
Jim Mack
Posts: 4
Joined: Sat Jun 13, 2020 6:49 pm

Re: Better support for SNAC?

Unread post by Jim Mack »

I feel like I am more sensitive to input latency than most and I still stand by using a USB controller. I have been singing the praises of the iBuffalo SNES USB controller for years. Was pumped to see it on the MisterAddons guy's latency tests as one of the best controllers. I use that particular controller for most things. 6 button fighters I use a wired RetroBit USB 6 button Genesis controller. That feels just as "crispy" to me.

Disclaimer, I am using fast usb polling and I am playing on a freesync monitor and have my ini set to take advantage. I have zero interest in using SNAC for a regular controller, especially given the fact that I play many cores and getting 4 adapters would be quite annoying.

I was close to building a 2 player SNES daemonbite adapter, but I heard that those might not work as well due to how they are assigned in MiSTer.
msimplay
Posts: 31
Joined: Tue Jun 16, 2020 6:33 am
Has thanked: 16 times

Re: Better support for SNAC?

Unread post by msimplay »

Jim Mack wrote: Fri Apr 30, 2021 10:35 pm I feel like I am more sensitive to input latency than most and I still stand by using a USB controller. I have been singing the praises of the iBuffalo SNES USB controller for years. Was pumped to see it on the MisterAddons guy's latency tests as one of the best controllers. I use that particular controller for most things. 6 button fighters I use a wired RetroBit USB 6 button Genesis controller. That feels just as "crispy" to me.

Disclaimer, I am using fast usb polling and I am playing on a freesync monitor and have my ini set to take advantage. I have zero interest in using SNAC for a regular controller, especially given the fact that I play many cores and getting 4 adapters would be quite annoying.

I was close to building a 2 player SNES daemonbite adapter, but I heard that those might not work as well due to how they are assigned in MiSTer.
Yes that's all correct but as I said usb controllers have low print runs see that iBuffalo controller I have one but at the time it was 22.95 which was worth it
because it's low latency but now it has risen to £38.95 in just a few months.
msimplay
Posts: 31
Joined: Tue Jun 16, 2020 6:33 am
Has thanked: 16 times

Re: Better support for SNAC?

Unread post by msimplay »

antoniovillena wrote: Fri Apr 30, 2021 4:08 pm There is an open source / open hardware extension for SNAC here:

https://github.com/MiSTer-DB9

It's backwards compatible. That's official cores with SNAC support works with the adapters (only one player and without OSD control). Of course that means also gun support. There are improvements on NES (on US controllers) and PCE (full support 6 button gamepads) over the official SNAC.
Yes I will be buying your version but it would be good if they added it officially
msimplay
Posts: 31
Joined: Tue Jun 16, 2020 6:33 am
Has thanked: 16 times

Re: Better support for SNAC?

Unread post by msimplay »

PikWik wrote: Fri Apr 30, 2021 7:25 pm i understand the need for the lowest latency for controllers.
specifically when referring to games for the atari, SHMUPs, arcade fighting games, NES titles, and super mario world ROM hacks.
those particular systems and games benefit the most from having the lowest input lag as possible.

that said, and after testing both USB controllers and SNAC with those cores on the mister, it is largely subjective as to how much you would notice the latency of a USB controller or a SNAC converter/controller. the fast polling option for USB on the MiSTer works.

https://docs.google.com/spreadsheets/d/ ... 1214855193

my advice would be to use that chart for wired controllers, and pick one from the top 10-15. anything in that 4ms or lower range is going to be perfectly playable for every single core, and anything from that list under 1ms will be imperceptible to a human (comparing to native SNAC).

if arcade games are your main systems you play on the mister, then getting a proper arcade stick and a UFB would be my recommendation.
referencing the above chart by MiSTeraddons, the UniversalFightingBoard by Brooks has sub 1ms input lag.
there is also a DIY version of a UFB, for PC/MiSTer/Pi only, which uses a ~$10 arduino board with incredible input lag stats as well

https://github.com/MickGyver/DaemonBite-Arcade-Encoder


zkeEDR6.png
I have the original hardware setup on a CRT so that's what I am comparing to and you notice straight away when the controls feel sticky due to latency.
I would like the MiSTer to be a solution where I can pack up the older consoles and save some space but it's not quite that yet.

I get that but just because a controller is low latency doesn't mean it feels right.
For example I have 8Bitdo SN30 Pro USB which feels perfectly fine however on Turrican NES press down and it also simultaneously presses right on the controller at the same time.

Then you have the iBuffalo controller it has the lowest latency but it feels cheap in the hand in comparison to original controllers.

Then you have low print runs iBuffalo controller has risen in price recently probably for it's low latency but it's kinda cheap feeling and isn't worth the now 38.95 it goes for not to mention the ones you want have sold out quite often.

Also I have heard newer versions of some controllers don't have the same latency as the older versions of said controllers.

There are a large amount of original controllers available and they aren't going for insane prices just yet.
USB alternatives to original controllers just don't feel quite right in my opinion that's why I advocate for better snac in the official builds

I will be going the DB9 Adapter route myself https://www.antoniovillena.es/store/product/decapod/
msimplay
Posts: 31
Joined: Tue Jun 16, 2020 6:33 am
Has thanked: 16 times

Re: Better support for SNAC?

Unread post by msimplay »

0x15e wrote: Fri Apr 30, 2021 4:18 pm
msimplay wrote: Fri Apr 30, 2021 2:22 pm I am just proposing this solution because acquiring good low latency usb controllers is a problem.
It isn't, though. If you buy / build Daemonbite adapters, you can use original controllers over USB with very little latency (avg 0.75ms). That's one of the lowest latency input methods there is. They're not particularly expensive to buy pre-built but if for some reason you can't do that (export / shipping restrictions, etc.), they're also very easy to build using an Arduino Pro Micro.

Trust me. Before I got into MiSTer, I was a little put off about having to use USB for everything, but once I actually tried building and playing with those adapters using original controllers, all my fears were put to rest. There really isn't any reason to favor SNAC over USB unless you're using a nonstandard controller or a light gun.
I'm not put off by usb for everything as such but SNAC is clearly a better choice because it's the same as the original and does support light gun controllers I have some buying damonbite adapters gets pricey if you buying for every controller.

https://www.antoniovillena.es/store/product/decapod/ << This looks the best solution but isn't official
antoniovillena
Posts: 66
Joined: Sun May 24, 2020 8:11 pm
Been thanked: 7 times

Re: Better support for SNAC?

Unread post by antoniovillena »

msimplay wrote: Mon May 03, 2021 6:34 am
https://www.antoniovillena.es/store/product/decapod/ << This looks the best solution but isn't official
The 1 player SNAC is official. That's the decapod will work with official cores. But for 2 player working or OSD manage need our fork. The schematics for the SNAC extension are available and can be added on the official IO
PikWik
Posts: 90
Joined: Sat May 30, 2020 7:00 pm
Has thanked: 50 times
Been thanked: 16 times

Re: Better support for SNAC?

Unread post by PikWik »

msimplay wrote: Mon May 03, 2021 6:29 am
I get that but just because a controller is low latency doesn't mean it feels right.
For example I have 8Bitdo SN30 Pro USB which feels perfectly fine however on Turrican NES press down and it also simultaneously presses right on the controller at the same time.
i have noticed varying degrees of what you described for years, with different controllers/manufacturers.
there is a simple fix for this, and is something ive done to the majority of my controllers - a Tape Mod

Image

that is an extreme example of a tape mod, but doing something similar to my controllers has relieved those combination inputs i would get when holding a direction and the neighboring contacts being activated, from my button mashing.
also, a more relaxed playstyle and not mashing the d-pad past the point of contact will correct this naturally, but im guilty of holding directions/tilting my controller "to turn more" as anyone else :)
oskarzer0
Posts: 2
Joined: Tue Jul 28, 2020 4:55 pm
Been thanked: 5 times

Re: Better support for SNAC?

Unread post by oskarzer0 »

msimplay wrote: Fri Apr 30, 2021 11:08 am Currently snac is one player only but I believe it should be two player.

I think people recommended just buy a low latency controller USB like the 8bitdo.

However the issue is now that latency on modern controller's is not a priority the 8bitdo controllers are
good but they seem to be having low print runs and starting to get scalped now

So I believe there should be better official support for snac.

What does everyone else think?
You are absolutely right, snac should be for two players and also the code is already done and it is functional even for the osd.
In addition, it is the purest way to play, the controllers commands go directly to the core, I don't want polling, I don't want linux, I don't want low-lag intermediaries, I want direct connection like the original systems and with the original controls.
That could be the spirit of the project, but it is not officially and never will be.
msimplay
Posts: 31
Joined: Tue Jun 16, 2020 6:33 am
Has thanked: 16 times

Re: Better support for SNAC?

Unread post by msimplay »

oskarzer0 wrote: Tue May 04, 2021 10:33 pm
msimplay wrote: Fri Apr 30, 2021 11:08 am Currently snac is one player only but I believe it should be two player.

I think people recommended just buy a low latency controller USB like the 8bitdo.

However the issue is now that latency on modern controller's is not a priority the 8bitdo controllers are
good but they seem to be having low print runs and starting to get scalped now

So I believe there should be better official support for snac.

What does everyone else think?
You are absolutely right, snac should be for two players and also the code is already done and it is functional even for the osd.
In addition, it is the purest way to play, the controllers commands go directly to the core, I don't want polling, I don't want linux, I don't want low-lag intermediaries, I want direct connection like the original systems and with the original controls.
That could be the spirit of the project, but it is not officially and never will be.
I am wondering why its not the spirit of the project though?

I thought the project is about preservation?
User avatar
Sorgelig
Site Admin
Posts: 636
Joined: Thu May 21, 2020 9:49 pm
Has thanked: 1 time
Been thanked: 96 times

Re: Better support for SNAC?

Unread post by Sorgelig »

There is no input lag using generic USB gamepad.
https://www.youtube.com/watch?v=5ZTS04rVOn0

All these direct connections have no benefits. It only wastes GPIOs and requires 30-years old gamepad.

Purists use original systems, not emulators, not FPGA.
msimplay
Posts: 31
Joined: Tue Jun 16, 2020 6:33 am
Has thanked: 16 times

Re: Better support for SNAC?

Unread post by msimplay »

There are loads of old controllers around but low print runs of new controllers and they end up getting scalped.
msimplay
Posts: 31
Joined: Tue Jun 16, 2020 6:33 am
Has thanked: 16 times

Re: Better support for SNAC?

Unread post by msimplay »

Sorgelig wrote: Wed May 05, 2021 1:13 pm There is no input lag using generic USB gamepad.
https://www.youtube.com/watch?v=5ZTS04rVOn0

All these direct connections have no benefits. It only wastes GPIOs and requires 30-years old gamepad.

Purists use original systems, not emulators, not FPGA.
I do use but I want to save space :P
mathieulh
Posts: 11
Joined: Sun May 24, 2020 11:03 pm

Re: Better support for SNAC?

Unread post by mathieulh »

Sorgelig wrote: Wed May 05, 2021 1:13 pm There is no input lag using generic USB gamepad.
https://www.youtube.com/watch?v=5ZTS04rVOn0

All these direct connections have no benefits. It only wastes GPIOs and requires 30-years old gamepad.

Purists use original systems, not emulators, not FPGA.
First of all, some people like playing with their original controllers, the experience just isn't the same unless the controller is an exact replica of the OEM one, then there is also the fact that using serial protocols such as LLAPI or SNAC the controller polling rate is synced to the core, making it more accurate than just spamming polling faster than the original hardware can handle, whether or not this is noticeable in real life is another argument however.

I am playing with original SNES and Saturn controllers and I wouldn't change for anything else, most 3rd party controllers don't come close to the original ergonmics and controller build quality in my opinion.
neogeo81
Posts: 10
Joined: Fri Apr 16, 2021 1:52 pm
Has thanked: 1 time

Re: Better support for SNAC?

Unread post by neogeo81 »

mathieulh wrote: Thu May 06, 2021 7:40 am
Sorgelig wrote: Wed May 05, 2021 1:13 pm There is no input lag using generic USB gamepad.
https://www.youtube.com/watch?v=5ZTS04rVOn0

All these direct connections have no benefits. It only wastes GPIOs and requires 30-years old gamepad.

Purists use original systems, not emulators, not FPGA.
First of all, some people like playing with their original controllers, the experience just isn't the same unless the controller is an exact replica of the OEM one, then there is also the fact that using serial protocols such as LLAPI or SNAC the controller polling rate is synced to the core, making it more accurate than just spamming polling faster than the original hardware can handle, whether or not this is noticeable in real life is another argument however.

I am playing with original SNES and Saturn controllers and I wouldn't change for anything else, most 3rd party controllers don't come close to the original ergonmics and controller build quality in my opinion.
8bitdo has very close controllers to the NES and SNES OG controllers, i would dare to say even better because you can buy a new one.
Retro-Bit also has very close Genesis and Saturn Controllers as they use the OG molds to produce them.
msimplay
Posts: 31
Joined: Tue Jun 16, 2020 6:33 am
Has thanked: 16 times

Re: Better support for SNAC?

Unread post by msimplay »

neogeo81 wrote: Thu May 06, 2021 10:23 am
8bitdo has very close controllers to the NES and SNES OG controllers, i would dare to say even better because you can buy a new one.
Retro-Bit also has very close Genesis and Saturn Controllers as they use the OG molds to produce them.
Retrobit Sega 8 button controllers are terrible in my experience and 8bitdo controllers have low print run.
Also there have been reports that newer versions of controllers have worse latency the older versions that were tested for latency
Post Reply