Forum: Mikrocontroller und Digitale Elektronik Nintendo NES Taktproblem Controller


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Michael D. (sirs)


Bewertung
0 lesenswert
nicht 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)


Bewertung
2 lesenswert
nicht lesenswert

von dr.know (Gast)


Bewertung
0 lesenswert
nicht lesenswert
368er driver defekt

von pillemann (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
und?

von H. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mach mal "nintendo nes circuit" bei Google und suche nach Bildern...

von Michael B. (froeschl)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Alles bereits gesagt. Nur den TO interessierts wohl nicht ...

von Michael D. (sirs)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.