Nintendo NES Taktproblem Controller

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren