[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference rusure::nintendo

Title:Nintendo Game Systems
Notice:Please enter Super NES notes in Yuppy::Super_NES.
Moderator:RUSURE::EDP
Created:Tue Oct 20 1987
Last Modified:Mon Feb 03 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:847
Total number of notes:11602

673.0. "SNES pinouts (RGB & Pad info)" by STC::STC::TIMMONS (Stack Overflow) Thu Oct 03 1991 19:15

Article 21055 of rec.games.video:
>From jchristy@hplred.HP.COM (Jim Christy)
Subject: Here are SNES pinouts



        0.0  Introduction

        For all you game hardware enthusiasts out there, I took the
        opportunity this weekend to put a scope on my Super Nintendo
        connectors and find out what is going on.  Because the standard
        Multi-out cable connector only has internal contacts for the audio and
        video signals, I had to find some more push-in gold contacts at a
        local store to fully break out all the signals.  It appears easier to
        do this than make your own connector.

        In short, I found that in addition to S-VHS, the multiout also
        supports RGB and sync.  I also got the controller pinouts and
        protocol, which opens up some interesting possibilities.  One could
        rather easily construct a "macro recorder" that records your exact
        button presses for a game sequence and allows you to play them back.
        They will be time-accurate by definition of the protocol, and
        depending on how random the game plays, you should be able to replay
        those sequences that get boring, and then take over control when you
        want.

        If all of this is already well known, then sorry for the waste of net
        bandwidth...


        1.0  SNES Multi-out cable connector pins.

        These are numbered the way Nintendo did, and the view is looking back
        "into" the connector on the CABLE.


        1       3       5       7       9      11

        |       |       |       |       |       |
        |       |       |   _   |       |       |
       --------------------/ \--------------------
     /                                             \
    |                                               |
    |                                               |
     \                                             /
       -------------------------------------------
        |       |       |       |       |       |
        |       |       |       |       |       |

        2       4       6       8      10      12



        Pin     Description
        ===     ===========
        1       Red analog video out   (1v DC offset, 1vpp video into 75 ohms)
        2       Green analog video out (1v DC offset, 1vpp video into 75 ohms)
        3       Composite H/V sync out (1vpp into 75 ohms)
        4       Blue analog video out  (1v DC offset, 1vpp video into 75 ohms)
        5       Ground
        6       Ground
        7       Y (luminance) signal for S-VHS (1vpp into 75 ohms)
        8       C (chroma)    signal for S-VHS (1vpp into 75 ohms)
        9       NTSC composite video signal (1vpp into 75 ohms)
        10      +5v (Could be just a high logic signal)
        11      Left channel audio out
        12      Right channel audio out


        Additional notes:

        As seen above, the SNES does have RGB capability.  I was able to get a
        stable raster on my NEC MultiSync "classic" using the RGB and sync
        pins.  However, the video levels are not RS-170 compatible.  The DC
        offset needs to be filtered out with some large capacitors and the
        peak-to-peak video amplitude may need to be reduced to 0.7v by using a
        lower load impedance than 75 ohms.  The Y/C (S-VHS) signals *appear*
        to be directly usable, but tests cannot be made until I find the
        pinouts for the S-VHS connector on my TV.




        2.0  SNES Controller cable connector pins.

        I could not find a Nintendo numbering scheme, so I made one up.
        The view is looking back "into" the connector on the CABLE.


       ----------------------------- ---------------------
      |                             |                      \
      | (1)     (2)     (3)     (4) |   (5)     (6)     (7) |
      |                             |                      /
       ----------------------------- ---------------------



        Pin     Description             Color of wire in cable
        ===     ===========             ======================
        1       +5v                     White
        2       Data clock              Yellow
        3       Data latch              Orange
        4       Serial data             Red
        5       ?                       no wire
        6       ?                       no wire
        7       Ground                  Brown


        Additional notes;

        Pins 5 and 6 show a DC voltage of 5v on a DMM.  I forgot to look at
        them on a scope so there may pulses too.  However, they don't connect
        to anything at present.

        The controllers have a small circuit board with 2 surface mount 14-pin
        ICs, marked by Nintendo as IC-A and IC-B.  Although rubber domes are
        used to provide the tactile response of the buttons, they are not
        capacitive technology as originally thought.  Instead they use what
        appears to be carbon impregnated rubber on the underside which makes a
        resistive path (200 ohms) across 2 carbon coated PCB pads when
        depressed.

        The red wire goes to pin 2 on IC-A.
        The orange wire goes to pin 8 on both IC-A and IC-B.
        The yellow wire goes to pin 9 on both IC-A and IC-B.

        IC-A and IC-B appear to be identical, with a 91 date code and have
        another (possible part number) of 545.  These are most likely 2
        parallel load shift registers in series.  Buttons on the controller
        pull the parallel load inputs to ground through the contact formed by
        pressing a button.  IC-B serially feeds IC-A, which then drives the
        serial data line to the SNES CPU.


        3.0  SNES Controller Communication Protocol

        Every 16.67ms (or about 60Hz), the SNES CPU sends out a 12us wide,
        positive going data latch pulse on pin 3.  This instructs the ICs in
        the controller to latch the state of all buttons internally.  Six
        microsenconds after the fall of the data latch pulse, the CPU sends
        out 16 data clock pulses on pin 2.  These are 50% duty cycle with 12us
        per full cycle.  The controllers serially shift the latched button
        states out pin 4 on every rising edge of the clock, and the CPU
        samples the data on every falling edge.

        Each button on the controller is assigned a specific id which
        corresponds to the clock cycle during which that button's state will
        be reported.  The table in section 4.0 lists the ids for all buttons.
        Note that multiple buttons may be depressed at any given moment.  Also
        note that a logic "high" on the serial data line means the button is
        NOT depressed.

        At the end of the 16 cycle sequence, the serial data line is driven
        low until the next data latch pulse.  The only slight deviation from
        this protocol is apparent in the first clock cycle.  Because the clock
        is normally high, the first transition it makes after latch signal is
        a high-to-low transition.  Since data for the first button (B in this
        case) will be latched on this transition, it's data must actually be
        driven earlier.  The SNES controllers drive data for the first button
        at the falling edge of latch.  Data for all other buttons is driven at
        the rising edge of clock.  Hopefully the following timing diagram will
        serve to illustrate this.  Only 4 of the 16 clock cycles are shown for
        brevity.


                           |<------------16.67ms------------>|

                           12us
                        -->|   |<--

                            ---                               ---
                           |   |                             |   |
        Data Latch      ---     -----------------/ /----------    --------...



        Data Clock      ----------   -   -   -  -/ /----------------   -  ...
                                  | | | | | | | |                   | | | |
                                   -   -   -   -                     -   -
                                   1   2   3   4                     1   2

        Serial Data         ----     ---     ----/ /           ---
                           |    |   |   |   |                 |
        (Buttons B      ---      ---     ---        ----------
        & Select        norm      B      SEL           norm
        pressed).       low                            low
                                12us
                             -->|   |<--




        4.0  SNES Controller Button-to-Clock Pulse Assignment


        Clock Cycle     Button Reported
        ===========     ===============
        1               B
        2               Y
        3               Select
        4               Start
        5               Up on joypad
        6               Down on joypad
        7               Left on joypad
        8               Right on joypad
        9               A
        10              X
        11              L
        12              R
        13              none (always high)
        14              none (always high)
        15              none (always high)
        16              none (always high)


        Additional notes:

        Clock cycles 13-16 are essentially unused.  It would be interesting to
        see how the SNES responds if we drive low button data during these
        cycles.  Nintendo may use these for future controllers with more
        capabilities.






        Jim Christy
        jchristy@hplred.hp.com


T.RTitleUserPersonal
Name
DateLines
673.1But can he "speed-up" my SNES?BRAT::SMITHNever say never, I always say.Fri Oct 04 1991 12:477
    
    	Ray, it sounds as if this guy (Jim Christy) could modify my
    	SNES to cure those "slow-down" problems.  How can I get in
    	touch with him?  ;^)
    
    							       Mike
    
673.2No fix for slowdownSTC::STC::TIMMONSStack OverflowFri Oct 04 1991 19:205
See the super_famicon notes file for slow down info.  The last note
just added there says that Nintendo fixed the flashing sprite problem 
that the NES had by making the SNES games go as slow as required to keep
the sprites displayed.  That is most likely software code in a ROM in 
the console.
673.3Come on, Jim. Where's my "Turbo Kit"? ;^)BRAT::SMITHNever say never, I always say.Mon Oct 07 1991 11:209
    
    	Yeah, I know.  I'm the guy that called Nintendo and put that
    	Note in there.  I was sort of joking in my previous reply to
    	this Note (.1 - note the "smiley face"), but Jim sounded so
    	technical, I thought if anyone could devise some sort of
    	"turbo" circuit modification, he could.  Oh, well... :^(
    
    								Mike
    
673.4schematics?MR1PST::SITKA::WESTFri Nov 08 1991 14:4313

for those of us who can solder and wire, but are also dangereous,

could someone supply a schematic for .0 's idea of an RGB adapater
which requires the big caps and the differing impedance.

I'd love to take advantage of my 25" RGB monitor and surprise my son.


thx

Bob