Nintendo NES Taktproblem Controller

OP #4753611
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
Gast #4761876
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.
Gast #4763187
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 :-)
OP #4765575
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....
OP #4775785
> 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?
OP #4842084
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.