Creating a Built in 4 Score device

Started by lifewithmatthew, September 14, 2021, 11:57:14 am

Previous topic - Next topic

lifewithmatthew

I'm having fun messing around with the expansion slot connector on the bottom of the front loader NES and wanted to make my own 4 score adapter using the exposed pins rather than just plugging into the two front controller ports.

I have an original Four Score that uses the Hori FPA-92-S01 9109 U chip that I'm using as a reference and am working on making a circuit diagram of.  So far I've mapped out the circuit and figured out the pinout of the main FPA-92-S01 chip and the 7 pin connector that goes to the two controller ports:

                             ,---v---.                 
                    J2 CLK ->|01   22|-- +5v         
                     J2 D0 ->|02   21|-- 2 Controller Mode Selected on +5v / 4 Controller on Ground
                    J3 CLK ->|03   20|<- J1 CLK         
                     J3 D0 ->|04   19|<- J1 D0         
                    J4 CLK ->|05   18|<- Latch/Strobe All
                     J4 D0 ->|06   17|<- CN5 Pin 1 (Latch/Strobe)
 Turbo B (Selected on +5v) --|07   16|-> CN5 Pin 2 (D0 Controller 1)
 Turbo A (Selected on +5v) --|08   15|-> CN5 Pin 5 (CLK Controller 2)
     Voltage Divider to 10 --|09   14|-> CN5 Pin 4 (D0 Controller 2)
     Voltage Divider to 09 --|10   13|-> CN5 Pin 3 (CLK Controller 1)
                       GND --|11   12|-- GND  
                             +-------+             
                             FPA-92-S01
                             ,-V-.
         FPA-92-S01 Pin 17 <-|01 |<- Latch/Strobe Controller 1 Only
         FPA-92-S01 Pin 16 ->|02 |-> Controller 1 D0
         FPA-92-S01 Pin 13 ->|03 |-> CLK Controller 1
         FPA-92-S01 Pin 14 ->|04 |-> Controller 2 D0
         FPA-92-S01 Pin 15 ->|05 |-> CLK Controller 2
                       GND --|06 |-- GND Controller 1 Only
                       +5v --|07 |-- +5v Controller 1 Only
                             +---+
              CN5

So I have two questions I was hoping y'all could help me out with.

First off, if I'm understanding the schematic of the expansion port then I can use pin 43 (Latch/Strobe Controller 1) pin 35 (Controller 1 D0), pin 37 (CLK Controller 1?), pin 19 (Controller 2 D0), pin 11 (CLK Controller 2?), pin 1 and 48 for +5v, and pin 2 and 47 for ground.  Am I right about Pin 37 and 11 of the expansion port being the Clock pulse for Controller 1 and 2? The diagram I'm referencing  has pin 37 and 11 listed as
/OE for joypad 1 ($4016 read strobe) and ($4017 read strobe) /OE for joypad 2 respectively

Second, I was reading on NesDev that if I wanted to duplicate the effects of the Hori chip you just need chip that has six total shift registers acting in parallel.  Does anyone know of a good option for that?  I'm a bit lost as anytime I search for a shift register that can handle 8 elements per channel I get results for a chip that have 64 pins, so I know I'm missing a crucial concept.

Thanks for any pointers you can provide!

lifewithmatthew

For those interested I mapped out the circuitry on my board, here's the wiring diagram.  Just as a note, I have no idea what diode is being used on this board.  It has no marking, but it is clearly and purposeful being used in reverse.

If anyone could help me figure out an appropriate substitute for the main chip I'd really appreciate it!

Also I currently have zero idea what's going on with the pins I've labeled as "Volt_Div".  I named it when I thought it was split between two resistors and only later realized one of them was a radial capacitor.  The rest of it I'm confident about


P

Cool project there. :) I've been hoping someone would make a home-made Four Score some day. If you support the signature used by the Hori 4 Players Adapter (which is basically the Famicom version of the Four Score) as well and add $4016.D1 and 4017.D1 to the mix you could increase compatibility with games.

I'm not the right person to answer but I will answer what I know.

Quote from: lifewithmatthew on September 14, 2021, 11:57:14 amFirst off, if I'm understanding the schematic of the expansion port then I can use pin 43 (Latch/Strobe Controller 1) pin 35 (Controller 1 D0), pin 37 (CLK Controller 1?), pin 19 (Controller 2 D0), pin 11 (CLK Controller 2?), pin 1 and 48 for +5v, and pin 2 and 47 for ground.  Am I right about Pin 37 and 11 of the expansion port being the Clock pulse for Controller 1 and 2? The diagram I'm referencing  has pin 37 and 11 listed as
/OE for joypad 1 ($4016 read strobe) and ($4017 read strobe) /OE for joypad 2 respectively
Yes that is my understanding of it too, and it matches the Famicom expansion port pin 9 and 14 which are also called /OE, they are indeed what clocks $4016 and $4017 respectively and are usually called CLK.

The other pins also looks right, but one thing to be aware of is that you are using duplicates of the controller port pins (the "xx" pins on Nesdev wiki). The latch (pin 43) and clock pins are not a problem but D0 of both controllers would conflict with any controllers connected to the controller ports in front at the same time. The Famicom has a similar problem with expansion port pin 8 which is controller II D0 and controller II is normally permanently plugged in on a Famicom.


Unfortunately I can't answer the question about shift registers (I would like to know too). It's too bad that Nesdev forums are still down.

lifewithmatthew

Quote from: P on September 16, 2021, 02:20:47 pmUnfortunately I can't answer the question about shift registers (I would like to know too). It's too bad that Nesdev forums are still down.

Thanks for the response!  As I've been looking over it the past couple of days I realized that it's probably not a shift register being used in the four score at all, but a very basic micro processor.  It has no external clock or relays or anything, and yet it can provide a turbo mode?  After sending data for ports 1/3 it can send a signature?  Where does that signature even get generated without the the physical inputs going into a shift register?

It has to be mirco processor!  I've got some controller extension cords coming in that I plan to cut up and use to test this theory with an arduino.  We'll see how close to the mark I am with my developing theories.

P

Yeah it might be a custom microcontroller, I think I remember someone thinking it was that on Nesdev but I can't remember for sure. I'm sure it can be reproduced just using logic chips and discrete components though.

Yes there is a signature in two parts in the bitstream coming in after the controller 3 and the controller 4 data respectively. It's %00010000 and %00100000 respectively with bits in order coming in from the most significant bit to the least one in both cases. The Famicom variant uses the same signature but swaps the two parts, but otherwise it works exactly the same as the Four-Score/Nes-Satelite, except that it connects to the expansion port and thus uses $4016.D1 and 4017.D1 for all controllers instead of $4016.D0 and 4017.D0 like the Four-Score does. All this should be explained on the wiki.

If you build a Four-Score you need to make sure the signature is wired or games won't detect it as connected.
I made a test program for both the Four-Score and Famicom expansion controllers (the "Simple" method in the wiki). I've yet to add Hori's Famicom multitap though.

Here is the program: You cannot see attachments on this board., it's in NROM and FDS so it can be played on a flashcart, FDSStick or an emulator. Rename the file extension ".txt" to ".7z" to open and extract it.