Well I have a strange problem with this snes Im trying to fix,everything works great except the b button does not work when playing a game,the controller ports are fine as I tested them out with my own snes and everything works properly. I thought maybe the ribbon cable might be damaged so I solderd 11 wires from the controller ports to the motherboard and still the b button gets no response,you guys know what's going on? Edit Just did some more testing and controller port two works great but the problem still persist on controller port one.
I'm not a SNES hardware guru, but if you've got a multimeter that can test resistance, I'd power the system off, and test right from the pin on the controller port back to the point where the trace connects to whatever controller chip handles IO. If the signal doesn't get through, trace back at key points until you identify where the break is. If there's no sign of a break, well, you've got a larger problem.
Pretty sure all the data from the controller comes over the same couple of pins. You wouldnt just have 1 button not working if it was that. I assume its an issue with that signal being decoded back into separate button presses. Where ever that is happening is probably where the problem is
Can you remove the controller ports from the mainboard (unplug ribbon cable) and try another controller port from another snes. Then you will know if the problem is with the controller ports or with the cpu/mainboard. The way the snes detects whether the b button is pressed is different to how it detects all other button presses. The SNES controllers drive data for the b button at the falling edge of latch. Data for all other buttons is driven at the rising edge of clock. A logic high on the serial data line means the button was not pressed, somehow the b button is not sending a logic low signal when it being pressed, or the cpu is not looking for it.
I did exactly that when I first noticed the problem. But its weird,I tried a nice chuck of my games and when I played super star wars the b button worked but ever other game got no response.
Actually the SNES and Super Famicom have a set of protection Zener diodes on the inputs (the P and N 3 pin parts that are close to the controller port connector on the mother board). Have that verified.
Not all games poll the controllers in exactly the same way, some games will have a slightly different timing to others. It's weird that swapping the controller block didn't fix it, as I really can't see anything else on the schematics between the controller block and S-CPU. Maybe one of the traces is a bit corroded?
If the zeners are shorted they will BLOCK any signal coming from the game pad chip or from the CPU. I said that like two years ago but nobody paid any mind. FYI, I've been repairing videogames since 1993.
In my case the pcb it's intact. No trace of corrosion. The diodes suggested by l_oliveira are good. Even if they are removed, there's no difference. It is possible that S-CPU it's damaged?
With the diodes removed take a meter with diode tester and measure if any of the signal pins are shorted to +5v or GND. Put the red probe on GND and test the signal pins for shorts or open circuit with the black probe. It should read like a diode. Repeat the test putting the black probe on +5v and use the red probe to test the signals. Again it should read like a diode. Should any pin read as infinite (open circuit) or 0 (shorted) the respective CPU pin is shoot. (with this procedure you're testing the ESD protection diodes that are internal to the S-CPU chip)
I removed them again. Sadly, I broke 2 pads, the one in blue. Also i didn't get a response on the pads in red. All the pins labeled 3 on the top row are vcc. All the pins labeled 3 on the bottom row are gnd.
I ending up finding my snes motherboard after I lost it for years but I did hook it up and yup the same exact problems . Going to take another stab at this following l_oliveira awesome information.