[Versione: 1.01] [Ultimo aggiornamento: 26/03/96]
Autore: Jim Christy
Versione: 1.01
E-Mail: jchristy@hplred.HP.COM
Per tutti voi appasionati di hardware per videogiochi, questo fine settimana ho colto l'occasione per collegare un oscilloscopio sui connettori del mio Super Nintendo e scoprire cosa ci passa. Visto che il connettore standard del cavo Multi-out monta solo i contatti interni per i segnali audio e video, ho dovuto procurarmi ulteriori contatti push-in dorati presso un negozio di elettronica del posto, in modo da portar fuori tutti i segnali. Sembra un compito più facile rispetto al doversi realizzare il proprio connettore.
In breve, ho scoperto che oltre al S-VHS, il Multi-out supporta anche RGB e sincronismi. Ho anche ottenuto la piedinatura ed il protocollo del controller, il che apre alcune interessanti possibilità. Si potrebbe facilmente costruire un "registratore di macro" per memorizzare esattamente i pulsanti premuti durante una partita e riprodurli in un secondo momento. La registrazione risulterebbe accurata nel tempo grazie al protocollo, e dipendentemente dalla casualità dello svolgimento del gioco, dovreste essere in grado di replicare quelle sequenze che a lungo andare diventano noiose, e quindi assumere il controllo quando lo desiderate.
Se tutte queste informazioni erano già ben note, allora spiacente per questo spreco di banda della rete...
I piedini sono numerati allo stesso modo stabilito dalla Nintendo, e sono intesi guardando indietro "nel" nel connettore montato sul cavo.
1 3 5 7 9 11
| | | | | |
| | | _ | | |
--------------------/ \--------------------
/ \
| |
| |
\ /
-------------------------------------------
| | | | | |
| | | | | |
2 4 6 8 10 12
Piedino Descrizione
======= ===========
1 Uscita video Red analogico (Offset DC 1 Volt, video 1 Volt
picco-picco su 75 Ohm)
2 Uscita video Green analogico (Offset DC 1 Volt, video 1 Volt
picco-picco su 75 Ohm)
3 Uscita sincronismo composito Orizzontale/Verticale (1 Volt
picco-picco su 75 Ohm)
4 Uscita video Blue analogico (Offset DC 1 Volt, video 1 Volt
picco-picco su 75 Ohm)
5 Massa
6 Massa
7 Segnale Y (luminanza) per S-VHS (1 Volt picco-picco su 75 Ohm)
8 Segnale C (crominanza) per S-VHS (1 Volt picco-picco su 75 Ohm)
9 Segnale video composito NTSC (1 Volt picco-picco su 75 Ohm)
10 +5 Volt (potrebbe trattarsi semplicemente di un segnale logico
a livello alto)
11 Uscita audio canale sinistro
12 Uscita audio canale destro
Note aggiuntive:
Come ho osservato in precedenza, il SNES prevede anche delle uscite RGB. Sono riuscito ad ottenere un raster stabile sul mio NEC MultiSync "classico" utilizzando i piedini RGB e sincronismo. Ad ogni modo, i livelli video non sono compatibili RS-170. Occorre filtrare l'offset DC con alcuni grossi condensatori, e quindi ridurre l'ampiezza video picco-picco a 0,7 Volt utilizzando un'impedenza di carico minore di 75 Ohm. I segnali Y/C (S-VHS) *sembrano* essere direttamente utilizzabili, ma non sarò in grado di controllarli fino a che non avrò trovato la piedinatura del connettore S-VHS del mio televisore.
Non sono riuscito a trovare uno schema della numerazione Nintendo, e quindi ne ho creato io uno. The view is looking back "nel" connettore montato sul CAVO.
----------------------------- ---------------------
| | \
| (1) (2) (3) (4) | (5) (6) (7) |
| | /
----------------------------- ---------------------
Piedino Descrizione Colore del filo nel cavo
======= =========== ========================
1 +5 Volt Bianco
2 Clock dati Giallo
3 Latch dati Arancio
4 Dati seriali Rosso
5 ? nessun filo
6 ? nessun filo
7 Massa Marrone
Note aggiuntive:
Sui pin 5 e 6 si misura una tensione di 5 Volt utilizzando un tester digitale. Ho dimenticato di osservare le tensioni su di un oscilloscopio, e quindi potrebbero anche essere presenti degli impulsi. Ad ogni modo, attualmente questi piedini non si collegano a niente.
I controller sono costituiti da un piccolo circuito stampato con due circuiti integrati da 14 piedini a montaggio superficiale, marchiati dalla Nintendo come IC-A e IC-B. Sebbene vengano utilizzate cupolette in gomma per implementare la risposta tattile dei pulsanti, non viene utilizzata una tecnologia capacitiva come si pensava in origine. Invece la Nintendo ha utilizzato ciò che sembra gomma impregnata di carbone sulla parte inferiore, il che realizza un percorso resistivo (200 Ohm) tra due piazzole del circuito stampato rivestite di carbone quando il pulsante viene premuto.
IC-A e IC-B sembrano essere identici, e riportano un codice 91 riferito all'anno, ed inoltre un 545 (forse un codice del componente). Si tratta molto probabilmente di due parallel load shift registers collegati in serie. I pulsanti sul controller collegano a massa gli ingressi parallel load tramite il contatto creato dalla pressione di un pulsante. IC-B alimenta in serie IC-A, che quindi pilota la linea dati seriali verso la CPU del SNES.
Ogni 16,67ms (o circa 60Hz), la CPU del SNES CPU invia sul piedino 3 un impulso data latch positivo largo 12us. Questo impulso indica ai circuiti integrati del controller di effettuare internamente il latch dello stato di tutti i bottoni. Sei microsencondi dopo la discesa dell'impulso data latch, la CPU invia in uscita 16 impulsi data clock sul piedino 2. Tali impulsi sono caratterizzati da un duty cycle del 50% con 12us per l'intero ciclo. Il controller effettua lo shift in modo seriale dello stato latched del bottone sul piedino 4 su ogni fronte di salita del clock, e la CPU campiona i dati su ciascun fronte di discesa.
A ciascun pulsante sul controller è assegnato uno specifico identificativo che corrisponde al ciclo di clock durante il quale viene riportato lo stato del pulsante. La tabella del paragrafo 4.0 elenca gli identificativi per tutti i pulsanti. Osservate che in qualunque istante è possibile premere più di un pulsante, e inoltre che un livello logico "alto" sulla linea serial data significa che il pulsante NON è premuto.
Al termine della sequenza dei 16 impulsi, la linea serial data viene posta a livello basso fino al successivo impulso data latch. L'unica leggera deviazione da questo protocollo risulta apparente nel primo ciclo di clock. Visto che il clock è normalmente a livello alto, la prima transizione che effettua dopo il segnale di latch è una transizione da livello alto a livello basso. Visto che il latch sui dati relativi al primo bottone (B in questo caso) sarà effettuato su questa transizione, i relativi dati devono in effetti essere controllati prima. I controller del Super Nintendo Entertainment System verificano i dati del primo pulsante sul fronte di discesa del latch. I dati relativi agli altri bottoni sono controllati sul fronte di salita del clock. Spero che lo schema seguente risulti esplicativo al riguardo; per brevità sono mostrati solo 4 dei 16 cicli di clock.
|<------------16.67ms------------>|
12us
-->| |<--
--- ---
| | | |
Data Latch --- -----------------/ /---------- --------...
Data Clock ---------- - - - -/ /---------------- - ...
| | | | | | | | | | | |
- - - - - -
1 2 3 4 1 2
Serial Data ---- --- ----/ / ---
| | | | | |
(Bottoni B --- --- --- ----------
& Select norm B SEL norm
premuti). low low
12us
-->| |<--
Ciclo di Clock Pulsante riportato
============== ==================
1 B
2 Y
3 Select
4 Start
5 Pulsante Up premuto sul joypad
6 Pulsante Down premuto sul joypad
7 Pulsante Left premuto sul joypad
8 Pulsante Right premuto sul joypad
9 A
10 X
11 L
12 R
13 nessuno (sempre a livello alto)
14 nessuno (sempre a livello alto)
15 nessuno (sempre a livello alto)
16 nessuno (sempre a livello alto)
Note aggiuntive:
I cicli di clock dal 13 al 16 sono essenzialmente inutilizzati. Sarebbe interessante vedere come risponde il SNES se i dati dei pulsanti sono posti a livello basso durante questi cicli. La Nintendo potrebbe utilizzarli per futuri controller con maggiori prestazioni.
Dall'Editore:
NOTA: S-VHS non è inteso ad indicare Super-VHS, ma significa Super-Video (riferito a connettore e uscita).
####Ulteriori informazioni
Da: Kevin Horton
OK, il SNES utilizza il processore 65816, che basilarmente è una versione a 16 bit del 6502. Funziona a 3,579545 MHz (frequenza burst colore), ed ha un bus di dati a 8 bit. E' in grado di indirizzare fino a 16 MegaByte.
Le cartucce non sono altro che ROM. Per stabilire quanti dati contengono, considerate il numero di 'MegaBits' e dividetelo per 8 in modo da ottenere i megabytes; è questa la reale quantità di dati contenuta nelle cartucce. Quindi, una cartuccia da 8-mbit contiene in realtà solo 1 megabyte.