NES - Player 1 controller not working. (NES PCB ISSUE)

Are you new to 6502, NES, or even programming in general? Post any of your questions here. Remember - the only dumb question is the question that remains unasked.

Moderator: Moderators

User avatar
raizenkohakus
Posts: 8
Joined: Thu May 19, 2022 11:43 am

NES - Player 1 controller not working. (NES PCB ISSUE)

Post by raizenkohakus »

Hello everyone and apologies in advance if I've landed in the wrong area, this seems like the most knowledgeable NES forum on the WWW! :)


I have 2 NES-001 1987 motherboards and both have the same issue: Player 1 slot not working, I am hoping I am not the only one stumbling upon this and maybe we can discover a solution that will stay here for years to come! : :D

What I have done:
- Swapped P1 and P2 slots, the issue movies on Player 2 afterwards so I have determined the issue is on the NES-001 motherboard
- Replaced buffers
- Checked diodes, resistors. The 5.6K resistors came back as roughly 6.3K.
- No way of checking capacitors, I have tried a simple resistance and they do look like they're "charging up"
- Sadly I do not own an Oscilloscope so my prying is rather limited.


I'm thinking this issue lies somewhere on the U6 CPU (RP2A03) but I can't explain what would cause the P2 inputs to be disabled...


+-----+--+-----+
AUDIO 1 |1 40| Vcc
AUDIO 2 |2 39| OUT0
/RESET |3 38| OUT1
A0 |4 37| OUT2
A1 |5 36| /INP 0
A2 |6 35| /INP 1
A3 |7 34| R / /W
A4 |8 33| /NMI
A5 |9 32| /IRQ
A6 |10 31| Φ2
A7 |11 30| /IOE (IO ports disabled when high)
A8 |12 29| CLK
A9 |13 28| D0
A10 |14 27| D1
A11 |15 26| D2
A12 |16 25| D3
A13 |17 24| D4
A14 |18 23| D5
A15 |19 22| D6
GND |20 21| D7
+--------------+

Many many thanks!

Ray
Attachments
Untitled.jpg
Drag
Posts: 1615
Joined: Mon Sep 27, 2004 2:57 pm
Contact:

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by Drag »

Controller port 1 was not working, then you desoldered the ports and switched them around, and when you did that, the problem moved to controller port 2, so after the swap, port 1 is working, and port 2 is not. Did I understand correctly?
User avatar
raizenkohakus
Posts: 8
Joined: Thu May 19, 2022 11:43 am

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by raizenkohakus »

Drag wrote: Thu May 19, 2022 1:11 pm Controller port 1 was not working, then you desoldered the ports and switched them around, and when you did that, the problem moved to controller port 2, so after the swap, port 1 is working, and port 2 is not. Did I understand correctly?
Not desoldering, just unplugged green connectors from PI and PII ports on the PCB.

I have moved PI connector into PII slot and it was working.
Attachments
Untitled2.jpg
unregistered
Posts: 1318
Joined: Thu Apr 23, 2009 11:21 pm
Location: cypress, texas

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by unregistered »

hi raizenk,

It seems to me, a person not as skilled as you with insides of the NES ;), that since the controller 1 circuitry worked fine when you plugged it into controller 2, the actual controller 1 female connection part, attached in your NES, is bad; the controller 1 port probably needs to be replaced?


Or maybe cleaned? Though, I’m lost on how difficult that would be.


EDIT: NEVERMIND… sry, your attached schematic’s green check marks seem to show a stable valid controller 1 female port.
Last edited by unregistered on Fri May 20, 2022 7:40 am, edited 1 time in total.
Fiskbit
Posts: 891
Joined: Sat Nov 18, 2017 9:15 pm

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by Fiskbit »

My understanding, based on the clarifying post, is that the problem is always joypad 1, even if the controller ports are swapped, so it's not a port problem, but something on the main board.

While this could maybe be a problem with the CPU (RP2A03), I'd be surprised. Most of the joypad stuff on the CPU's side is shared between both joypads. There is one pin, joypad 1 /OE (pin 36), that is specific to joypad 1, so maybe this could be broken, though it seems to me an odd issue for the CPU to develop with no other symptoms. I'm not sure what the behavior would be in that case, so maybe someone can chime in there. Would joypad reads return 0, or would they always give the state of the A button? If the latter, pressing A would make a game think all 8 buttons are pressed.

There are other chips involved in getting joypad input to the CPU. I don't know what they are, I'm sure others can help there, but I'd start with those instead of the CPU.
Drag
Posts: 1615
Joined: Mon Sep 27, 2004 2:57 pm
Contact:

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by Drag »

Ah! I understand now. :D

Full disclosure, I'm interested in the repair of 8-bit computers and old game consoles, but I'm not well-versed in it. I can read schematics and build the circuits, but I'm only familiar with tracing the TTL logic, so if the problem is a random diode or capacitor, it'll be out of my grasp. :P


U6 pins 28(D0), 36(/INP 0), 39(OUT0) are relevant for the player 1 joypad to work correctly. Of those signals, D0 and OUT0 are common to both player ports, and since games boot (D0) and player 2 works (OUT0, D0), I think we can rule those out, leaving /INP 0.

Next, here's how the standard joypads work:
  1. The game software pulses OUT0 (pin 3 of both player ports), and that tells both joypads to generate a button report.
  2. The software repeatedly reads the report, bit by bit:
    1. /INP (pin 2, /INP 0 for player 1, /INP 1 for player 2) goes LOW to activate the buffer so the CPU can read one bit of the report on D0 (pin 4).
    2. /INP returns HIGH, and the rising edge clocks the shift register in the joypad, to advance the report to the next bit.
The most common failure mode of the port will be "no buttons pressed", but there are some things that can cause a constant "all buttons pressed" (missing OUT0 while standard joypad connected), and things which can cause button "A" to make the game think all buttons are pressed together (OUT0 stuck, INP missing at port but present at buffer).

So, two things which may reveal extra information: try pressing "A", and try unplugging/replugging the player 1 joypad while the game's running.
User avatar
raizenkohakus
Posts: 8
Joined: Thu May 19, 2022 11:43 am

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by raizenkohakus »

Hello everyone and apologies for the late reply;

I have tested plugging the controller mid-game and hunting for any changes.

I can confirm the following:

- No movement on plug/unplug

I have then proceeded with "shorting" pins on the PCB but no luck here:

1) shorting Latch (Orange) and Data (Yellow) will activate the "START" button on Player 2 port, the one that is working but does nothing on Player 1 port which does not work. (This was tested with and without controllers plugged, in both scenarios the result was identical)

2) Shoring GND (Brown) to Clock (Red) or Pin3:Latch (Orange) - will freeze the console, this happens on both ports (P1 and P2).



I am assuming this means 4016-D0 (pin4) is not working, but the buffers are brand new so it is possible something is wrong between U7 and U6...
User avatar
Ben Boldt
Posts: 1149
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by Ben Boldt »

How do you know that controller port #2 start button is working? Do you have a game that let you press start on controller 2 or something? I am wondering exactly how you test that.

Are you using only 1 controller and plugging it into each port? This would be a good idea; then you eliminate the possibility that 1 controller might be bad and confusing the issue. Controllers go bad rarely, but I have seen at least 1 controller that did go bad (shift register chip inside blew).

Is this an NTSC or a PAL NES? The combination of PAL NES with NTSC controller is not compatible without adding additional pull-up resistors.
User avatar
raizenkohakus
Posts: 8
Joined: Thu May 19, 2022 11:43 am

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by raizenkohakus »

I have 2 controllers that I test with but I also just short the pins using a needle.

Using the needle to short yellow and orange on each port will show that P2 registers that as a "start" press, whereas P1 doesn't do anything.

PAL console with PAL controllers forgot to mention apologies. :D
User avatar
Ben Boldt
Posts: 1149
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by Ben Boldt »

Please make sure you are unplugging the controller before shorting.

I am trying to think what happens when you short orange ("OUT 0" / Latch) to yellow (data). I think that the OUT 0 will just toggle a pulse before reading the data afterwards, during each of 8 pulses of the red wire. So I am not sure that what you are shorting is a reliable way to simulate pressing start.

I think it is possible that something unexpected is going on. A very explicit step-by-step is your best bet. I know you already tried all these things, but it is worth trying it again very explicitly each step carefully. Then something we didn't expect might appear.
  1. Turn NES off.
  2. Plug a controller only into port #2. Port#1 has no controller attached.
  3. Place all other controllers somewhere else where you can't get them confused. We want to make sure to test always the same controller.
  4. Turn on the NES and test to make sure that controller #2 start button works (we expect it does work).
  5. Turn off the NES, unplug the controller from port #2 and plug it into port #1. Now port #2 has no controller attached.
  6. Turn on the NES and test to see if controller #1 start button works (we expect that it does not work).
  7. Turn off the NES and reverse the controller connectors to the motherboard.
  8. Turn on the NES and test to see if controller port #1 works (we expect it does work).
Drag
Posts: 1615
Joined: Mon Sep 27, 2004 2:57 pm
Contact:

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by Drag »

When you short OUT0 and D0 together, it will cause all buttons to register as "pressed", including the start button. :P The same thing should happen when you short D0 to GND.

Since you get a reaction when you short /INP 0 or OUT0 to GND on the player 1 port, I think the connections are OK there, and now I think D0 isn't making it all the way from the port to U6.

Can you check two things:
  • /INP 0 should have continuity to both enable lines of the buffer
  • D0 should have continuity from the player 1 port yellow wire to the buffer input, and then from the buffer output to U6 pin 28
After that, I can only think D0 (on the port side of the buffer again) may be shorted to something inappropriate, or something analog/environmental is wrong, like the capacitor going bad or something, and at that point, I may be out of ideas.
User avatar
raizenkohakus
Posts: 8
Joined: Thu May 19, 2022 11:43 am

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by raizenkohakus »

@Ben Boldt.

I have repeated the tests and the console reacted as expected.
Turn NES off.
Plug a controller only into port #2. Port#1 has no controller attached.
Place all other controllers somewhere else where you can't get them confused. We want to make sure to test always the same controller.
Turn on the NES and test to make sure that controller #2 start button works (we expect it does work).
Turn off the NES, unplug the controller from port #2 and plug it into port #1. Now port #2 has no controller attached.
Turn on the NES and test to see if controller #1 start button works (we expect that it does not work).
Turn off the NES and reverse the controller connectors to the motherboard.
Turn on the NES and test to see if controller port #1 works (we expect it does work).

@Drag
Can confirm /INP 0 has continuity to both enable lines of the buffer. This is true for both buffers, I've attached a continuity test log and the schematic I am using for pins.

I will try sourcing some capacitors to test it out perhaps this may indeed be analog,
I can only think of capacitors wearing out on Player 1 circuits because it's the most used port but I didn't pursue this too much because I couldn't see any capacitors linked to the buffer circuits. I will try sourcing new diode packs too.
Attachments
ONES-CPU-01_Schematic.pdf
(245.98 KiB) Downloaded 24 times
Continuity.jpg
unregistered
Posts: 1318
Joined: Thu Apr 23, 2009 11:21 pm
Location: cypress, texas

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by unregistered »

raizenkohakus wrote: Sat May 21, 2022 1:51 am @Ben Boldt.

I have repeated the tests and the console reacted as expected.
Turn NES off.
Plug a controller only into port #2. Port#1 has no controller attached.
Place all other controllers somewhere else where you can't get them confused. We want to make sure to test always the same controller.
Turn on the NES and test to make sure that controller #2 start button works (we expect it does work).
Turn off the NES, unplug the controller from port #2 and plug it into port #1. Now port #2 has no controller attached.
Turn on the NES and test to see if controller #1 start button works (we expect that it does not work).
Turn off the NES and reverse the controller connectors to the motherboard.
Turn on the NES and test to see if controller port #1 works (we expect it does work).
Glad controller port#1 works! 😀

In the future, you could take a nes controller that doesn’t work anymore, and cut the cord in half, discard the nes controller, strip and the outter covering off the spliced end on the other cord half, strip each of the wires, and try multimeter continuity tests on each wire and it’s connection inside your nes; if continuity happens on each of those wires, your controller port is guaranteed to be connected (it’s clean).


That doesn’t help your current problem, but it seems good to share.
User avatar
raizenkohakus
Posts: 8
Joined: Thu May 19, 2022 11:43 am

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by raizenkohakus »

Thanks for the tip!

Additional tip if you want to clean the contacts, what I did was to sacrifice a fauly controller, take out one terminal from the plug and insert it into a cordless drill, then proceed to plug it into the ports and gently press on the drill, this will finely scratch the tips of each port.


I had to do this to make sure both Port#1 and Port#2 are in working order. :D
Fiskbit
Posts: 891
Joined: Sat Nov 18, 2017 9:15 pm

Re: NES - Player 1 controller not working. (NES PCB ISSUE)

Post by Fiskbit »

unregistered wrote: Sat May 21, 2022 12:29 pm In the future, you could take a nes controller that doesn’t work anymore, and cut the cord in half, discard the nes controller, strip and the outter covering off the spliced end on the other cord half, strip each of the wires, and try multimeter continuity tests on each wire and it’s connection inside your nes; if continuity happens on each of those wires, your controller port is guaranteed to be connected (it’s clean).
You don't need to do anything destructive. Simply open the controller and test on the PCB where the wires connect. NES controllers are also very simple and if they are not working, they just need their contacts cleaned, a replacement shift register, or new rubbers.
Post Reply