In my application I need to test the IC after it has been thermo-cycled and removed from the SNES controller, especially since they have poor ESD protection. I am removing the ICs for use in a different project outside of the SNES controller PCB so testing that the controller works isn't the best test for me.
Wasn't the SNES controller just based around a shift register? Wouldn't it be easier and cheaper to buy some cheap modern shift register?
Yes, you beat me to it.
Thanks for explaining! I didn't really understand why you would remove the chip(s) from the controllers versus just test the controllers. Really though, just buy new flop-flop parallel to series shift registers. They're
cheap and plentiful and no one going to notice if they're the real thing or not. Can use 3.3V to be more power efficient. Real thing probably has thousands of hours of wear and tear and of course needs testing. New ones are just going to work.
NES needs one 8-bit shift register for up, down, left, right, B, A, Select, Start. SNES needs two (or one 16-bit) with 4 leftover bits that indicate
peripherals like the 16th bit for SNES mouse. Would be nice to support the mouse or Super Scope (lol) or Konami Justifier but then they would need 15 kHz CRT monitors for light gun syncing.
As NES and SNES are extremely popular consoles, controller circuits have been
reverse engineered long ago.
NES B is SNES Y and NES A is SNES B. Seems you can use NES and SNES controllers on the other console just by changing the adapter but I didn't know NES and Famicom wiring were different. I use a Super Famicom Hudson Super Joy Card turbo controller on North American SNES, so no issue there. May as well support NES with minimal extra effort for the arcade game ROM variants.
If you wanted a test suite in any case, 12 buttons which can be on or off in almost any combination is 2^12 = 4096 combinations and at 1 NTSC frame to test each would take 69 seconds. There is the important point of illegal controller input. Lots of games glitch by hitting left + right or up + down directions at the same time, which is impossible on normal controllers and speedrunning communities don't allow it...except for Super Mario Kart. They grind down the pad to cheat but since everyone cheats, it's fair. Emulators usually have a box to check to allow illegal input. You might want to have a toggleable option on your device with LED indicator light so fair play can be confirmed.
You know what, I've been meaning to get around to checking what the turbo frequencies are. Hudson Soft added cheat codes to Super Bomberman 2-5 using the timing on their Super Joy Card. Presumably, if another turbo controller has a different frequency then it won't work. Really hard to trigger manually. Lockout at its finest.
The only errors I know of are the controller latching on B like I was saying and people saying controller port 1 or 2 doesn't work and the other does, which seems obviously from the console circuity being oxidized and probably repairable with isopropyl alcohol.
Genesis 6 button controllers, interesting to me how those have a 3-button compatibility mode to be compatible with all games. If the timing and circuitry still have some unknowns, I can't imagine the rules being hard to figure out with a digital logic analyzer. We're talking kHz speed. Maybe there's a custom chip.