Forum: Mikrocontroller und Digitale Elektronik Nintendo NES Taktproblem Controller


von Michael D. (sirs)


Lesenswert?

HI

Erster Beitrag - erstes Problem :(

Habe mir auf Ebay eine alte Nintendo NES geschossen, Spiele und 
Controller sind vom Flohmarkt. Spiele funktionieren auch, aber der 
Controller macht Probleme (reagiert nicht). Wie ich rausgefunden hab, 
kommt dort zwar 5V Versorgungsspannung an, aber kein Takt. Und damit 
keine Antwort...

Hab schon mit meinem Oszi direkt auf der Hauptplatine der NES 
nachgemessen wo die Controller angesteckt werden. Es kommt aber auch 
hier direkt am Stecker kein Takt an.

Kann mir jemand verraten, wo dieser Takt erzeugt wird?

So sollten die Signale aussehen: 
www.mit.edu/~tarvizo/nes-controller.html

von dr.know (Gast)


Lesenswert?


von dr.know (Gast)


Lesenswert?

368er driver defekt

von pillemann (Gast)


Lesenswert?

und?

von H. (Gast)


Lesenswert?

Mach mal "nintendo nes circuit" bei Google und suche nach Bildern...

von Michael B. (froeschl)


Lesenswert?

Michael D. schrieb:
> Kann mir jemand verraten, wo dieser Takt erzeugt wird?

In meinen NES-Unterlagen (Nintendo) liefert Pin 31 (Phi2)
der CPU RP2A03C den Takt für die 4021 der Joypads.

von checker (Gast)


Lesenswert?

Alles bereits gesagt. Nur den TO interessierts wohl nicht ...

von Michael D. (sirs)


Lesenswert?

HI

Interssiert mich schon, bin nur noch nicht zum Messen gekommen um die 
Theorien zu testen - Unistress. Ich melde mich wieder und danke schon 
mal :)

von foobar (Gast)


Lesenswert?

Warum hat ein Moderator meinen Post mit "In der CPU" gelöscht?
Ist doch richtig?

Das Programm schreibt zuerst eine 1 auf $4016 (Button States werden 
eingelesen). Dann liest man von $4016 (bzw. $4017 für das zweite 
Gamepad). Pro Lesezugriff gibt das LSB den Zustand an (1=pressed, 0=not 
pressed).
Und zwar in der Reihenfolge: A, B, Select, Start, Up, Down, Left, Right.
Dh pro Gamepad 8x lesen.

Ohne Programm kein Takt.

von Michael B. (froeschl)


Lesenswert?

foobar schrieb:
> Ohne Programm kein Takt.

Für den TO und für mich, wie sieht eine kurze
Programm-Sequenz für einen Pad-Prüfadapter aus?

von foobar (Gast)


Lesenswert?

Das kann ich dir jetzt nur allgemeingültig beantworten.
Im NMI kannst du das eigentlich zuverlässig machen, momentan mach ich 
das einmal pro Frame.
Mit einem Codesnippet alleine fangst halt nicht viel an. Du brauchst 
dann noch einen Compiler, ein entsprechendes Linkerscript, musst dir 
EPROMs brennen, brauchst eine bootfähige Cartridge mit gültigem CIC Chip 
oder deaktivierst den CIC in deiner Konsole.
Einfacher ist es deshalb ein Spiel einzulegen :-)

von Michael B. (froeschl)


Lesenswert?

foobar schrieb:
> Einfacher ist es deshalb ein Spiel einzulegen

Helfen würde es, wenn man die Vorgaben von Nintendo an
NES-Spieleentwickler kennen würde?

von Michael D. (sirs)


Lesenswert?

HI

@foobar: Als Gast und ohne Begründung war das vielleicht eine unpassende 
oder unpräzise Antwort?

Ein Spiel einlegen ist kein Problem. Hab "Captain skyhawk" drin :) 
Starten kann man das Spiel nur durch Einstecken des Controllers (erzeugt 
wohl ein passendes Pulssignal). Dann zieht der dauerfeuernde 
Kampfflieger aber immer nach rechts und man verliert. Klar, Stuern geht 
halt nicht ohne Takt.

Bin leider noch immer nicht zum Messen gekommen....

von Michael D. (sirs)


Lesenswert?

> Bin leider noch immer nicht zum Messen gekommen....

Hallo!

So, bin endlich zum Messen gekommen :) Pin 31 der CPU liefert 
tatsächlich einen digitalen Takt. Das gute, alte Analogoszi zeigt mir 
etwa dreieinhalb Takte pro µs mit einer leicht runden Flanke beim 
Übergang von low auf high-Level. Geht also so weit.

Der SN74LS139N (bezeichnet als Chip U3) in den das Signal eingespeist 
wird, scheint auch zu arbeiten.
Danach verliert sich der Takt irgendwo in gemultiplexter Form. Aus den 
Schaltplänen unter dem vorgegebenen Suchbegriff bin ich übrigens nicht 
ganz schlau geworden, da ist das genauso, zum Beispiel bei
www.freeinfosociety.com/electronics/schemview.php?id=2405

An den beiden Hex-Buffern SN74HC368N kommt jedenfalls was an was so wie 
das Taktsignal aussieht. Da auch  dr.know schon hier einen Defekt 
vermutet hat: Wie stelle ich an besten fest ob sie ihren Job tun, ohne 
sie auszulöten?

: Bearbeitet durch User
von Michael D. (sirs)


Lesenswert?

So, ist etwas her, aber über Weihnachten hatte ich endlich Zeit und die 
Teile (zwei 74LS von Reichelt). Nur die beiden Chips auszutauschen hat 
gebracht dass sie ein Signal ausgeben. Immerhin! Waren wohl wirklich 
hinüber. Aber das ganze hat noch nicht ganz funktioniert.

Dann hab ich noch die 6 Eingangsdioden direkt an den beiden 
Controllerbuchsen gebrückt, da war wohl auch was kaputt, weil da ging 
kein Signal durch. Was auch immer Diode(n) und chip geschrottet hat?

Mit diesen beiden Veränderungen geht die Sache jetzt endlich :)  Da ich 
das alles für beide Controller ausgeführt habe, kann ich Mario und Luigi 
auch endlich gegeneinander antreten lassen. "Captain skyhawk" ignoriert 
übrigens einfach den zweiten Controller.

Guten Rutsch und viel Spaß beim Zocken an alle, die geholfen haben das 
Problem zu lösen!

Habe fertig

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.