Open Source Cartridge Reader - Selbstbau Projekt zum Auslesen von Videospielmodulen

    • Tutorial

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Ok, also du benutzt momentan den SNES Resetbutton als Arduino Resetbutton. Besser wäre es, wenn du den Arduino Resetbutton als ganz normalen SMD Pushbutton auf die Platine machst. Den benötigt man sowieso nie.

      Und dann den SNES Reset Button als Steuerungsknopf für das Menü verwenden. Dazu muss er mit dem einen Lötpunkt auf GND und mit dem anderen durch einen 10K Widerstand auf 5V und direkt (ohne 10K) an Pin 0 des Arduinos. So wie in der Paint Zeichnung von mir.

      Was mir auch noch aufgefallen ist, ist, dass der eine Abblockkondensator (0,1uF) von den 2 VCC Pins an der falschen Stelle ist. Der hängt unten bei den 10K rum. Der muss ganz nah an die beiden VCC Pins ran.

      Rest muss ich noch angucken, ich tue mir super schwer mit Eagle. Das Dia Programm war da einfacher xD
    • ja, jetzt wo du's sagst :D
      hab die ganze zeit gedacht der reset hätte noch ne andere Funktion.

      Hast natürlich Recht, so ergibt das wesentlich mehr Sinn.

      ich hatte noch keine Gelegenheit die Höhe des Controller-Ports abzumessen ob das Display da rein passen würde.
      Braucht man die beiden LEDs? da is ja ne grüne und ne rote auf dem Arduino, könnte man die gegen eine rot/grün LED ersetzen und unter die Blende setzen?

      Ich denke mit nem Dremel und etwas Geschick könnte man den ganzen Controller-Port weiterverwenden, wofür auch immer...

      Danke schonmal!

      誰一人 知らない明日

      follow me: https://twitter.com/arcadetv


    • Die Leds würde ich beide entfernen und stattdessen einen 220 Ohm Widerstand an Arduino Pin 1 und dann an einen Pinheader mit 2 Pins wo der andere Pin GND ist. Dann kann man da eine 5mm LED per Kabel dran tun und per Arduino steuern. Z.b. blinken, wenn gerade etwas gedumpt wird.
    • sanni schrieb:

      Und dann den SNES Reset Button als Steuerungsknopf für das Menü verwenden. Dazu muss er mit dem einen Lötpunkt auf GND und mit dem anderen durch einen 10K Widerstand auf 5V und direkt (ohne 10K) an Pin 0 des Arduinos. So wie in der Paint Zeichnung von mir.


      Öhm... Wo is denn der Pin 0 des Arduinos? Ich seh nur entweder A0 oder Zahlen ab 2.

      誰一人 知らない明日

      follow me: https://twitter.com/arcadetv


    • Mir ist nicht klar warum du ein Pcb in voller Snes Größe neu bauen willst? Hat das noch mit dem Threadanfang zu tun, dem auslesen?

      Wird auch richtig ins Geld gehen, nehme ich die kosten einer Europlatine 100x160 im vergleich.
    • ^Hat ArcadeTV eine Seite davor schon durchgerechnet.
      Mal gerechnet...Bei iTead kosten 5 Platinen bis 20x20cm 68$. Also 13,60$ pro Stück, entspricht 10,50€ ohne Versand. Shipping kostete glaub ich unter 10$, also 2$ pro Kopf.insgesamt ~12€ pro Platine, plus ~10€ Bauteile.zu teuer??
    • zipzap schrieb:

      Mir ist nicht klar warum du ein Pcb in voller Snes Größe neu bauen willst? Hat das noch mit dem Threadanfang zu tun, dem auslesen?


      Naja, natürlich läßt sich über Sinn und Unsinn bei der Bastelei prima streiten...
      Ich seh das so - ich habe noch einige SNES-Gehäuse hier, das Dumper-Projekt find ich spitze, mir war nun daran gelegen eine Art "Deluxe Versionzu zaubern. Für alle die da keine Verwendung für haben, das unsinnig finden oder denen das schlicht zu teuer ist, gibt's ja die erste Variante in der VHS-Hülle.

      誰一人 知らない明日

      follow me: https://twitter.com/arcadetv


    • Hier ein paar Ideen:


      (einmal drauf klicken bitte xD)

      - Wenn man die Atmegas "leerkauft und nicht z.B. von einem Arduino Pro Mini ablötet, muss man noch den Arduino Bootloader flashen. Dazu wäre ein ISP 6-Pin Pinheader sehr hilfreich.

      - Den JP2 Pin Header würde ich verschieben und noch GND und VCC dazu tun, so dass man alle Pins für das LCD auf einem Pin Header hat.

      - Falls du das SD Modul nicht ebenfalls noch auf die Platine integrieren möchtest, so würde ich auch hier einen extra Pin Header dafür machen.

      - Direkt an den VCC Pins ist noch kein 0.1uF Abblock Kondensator, ich denke mal das ist der C10, der nach unten verrutscht ist.
    • Klasse, danke @sanni
      die Kondensatoren schau ich mir gerade an.

      ja, bin eigentlich auch davon ausgegangen, dass man den Atmega "leerkauft. Einen FTDI-Programmer könnte man auch noch gut integrieren und hinten eine USB-Buchse anstatt RF-Modul platzieren, so hat der abitionierte Entwickler immer zugriff auf den Chip und kann neue Features ohne viel Aufwand einspielen ;)

      Den besten Ort um den Reader zu positionieren habe ich noch nicht gefunden - sauber wäre die Lösung hinten wo der MultiAV war, aber das wäre weniger komfortabel als Zugriff von vorne auf die SD-Karte zu haben...
      Ich spinn jetzt mal: Könnte man das Menu anstatt auf einen LCD auch als Video/RGB ohne eine riesen Baustelle aufzumachen an eine Glotze weitergeben? Dann könnte man den MultiAV wieder anbringen und nutzen, gleichzeitig den Port für Player-2 ausfräsen und dort den Kartenleser unterbringen. Port-1 könnte dann per Joypad die Menuführung übernehmen.

      誰一人 知らない明日

      follow me: https://twitter.com/arcadetv


    • Mit dem FTDI Programmer kann man den Bootloader nicht flashen. Damit kann man nur den Arduino Sketch (also z.B. in dem Fall den Cartdumper) auf einen Arduino flashen. Aber dieser Arduino muss eben schon den Bootloader haben. Und den Bootloader flashed man z.B. mit einem USBASP über den 6Pin ISP.

      TV-Out über Composite in schwarz/weiß geht theoretisch schon mit dem Arduino, siehe hier: code.google.com/p/arduino-tvout/
      Gleiches gilt für das Auslesen des SNES Pads: code.google.com/p/nespad/

      Ob das jetzt alles auf den Atmega328 passt und auch gleichzeitig problemlos läuft weiß ich jetzt nicht. Irgendwie glaub ich das eher nicht.

      Der nächst größere Atmega, der mit Arduino kompatibel ist, wäre der ATmega2560. Vorteil wäre dann auch, dass man die ganzen 74HC595 IO-Expander nicht mehr bräuchte, da der Atmega2560 40 I/O Pins oder so hat und nicht nur 16 wie der Atmega328.
      Dann kann man aber natürlich nicht mehr den Rom-Reader Code von MichlK aus dem Arduino Forum verwenden, so wie ich das gemacht habe, sondern muss das alles entsprechend anpassen bzw. neuschreiben.

      Ich glaube dafür bräuchten wir jemanden, der tatsächlich programmieren kann und nicht nur einfach Code Teile anderer Leute per Copy&Paste zusammenwürfelt so wie ich X/

      Was das LCD abgeht, vielleicht würde auch sowas gehen:

      ebay.de/itm/White-0-96-IIC-I2C…ain_0&hash=item43cdde3429

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von sanni ()

    • Also Display würde ich von "China Displayserstmal abraten. Die sind meistens mit irgendwelchen geproschten Bibliotheken.
      Wenn die Bildwiederholrate egal ist, dann tun es solche Displays. Das Problem ist bei Arduino, dass er nur gewisse Displays schnell befeuern kann. Dafür ist die Leistung leider zu schwach.

      Eventuell bin ich der Richtige für die Programmierung, müsste nur genau wissen, was denn nun letztendlich Programmiert werden muss ;)
      [Werde den Thread mal genauer durchlesen...]


      EDIT: Soweit ich weiß, ist das erzeugen eines Bootloaders für Arduino-Libs gar kein Problem. Das geht mit kleinen hacks.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von danqua ()

    • Solange es um das Auslesen von SNES Modulen geht sind wir ja eigentlich On-Topic :P

      danqua schrieb:


      Eventuell bin ich der Richtige für die Programmierung, müsste nur genau wissen, was denn nun letztendlich Programmiert werden muss


      Also um ArcadeTV's Idee mal weiter zu spinnen:
      - man müsste den Code aus dem ersten Post von hier forum.arduino.cc/index.php?topic=158974.msg1723289 nehmen und ihn von einem Arduino Uno (Atmega328) auf einen Arduino Mega 2560 (Atmega2560) umschreiben.
      D.h. man müsste anstatt die SNES Cartslot Pins über Shiftout Register anzusprechen, die Pins direkt mit dem Atmega verbinden.
      Eigentlich sollte das die ganze Sache sogar einfacher machen. Vorteil ist dann auch, dass man keine Stunde mehr benötigt um ein Spiel zu dumpen, da alles schneller gehen sollte ohne die Shiftregister.

      - wenn das dann geht, nimmt man sich aus meiner Erweiterung aus dem ersten Post hier circuit-board.de/forum/index.p…art-ROM-Reader-SD-V8-zip/ , die Codeteile, die für das Sichern von Savegames zuständig sind und auch die Änderungen um alles auf die SD Karte zu schreiben und baut sie in den neuen Mega2560 Code ein

      - nun zaubert man mit dieser Library code.google.com/p/arduino-tvout/ ein Menü auf den TV

      - und steuert das ganze mit einen SNES Pad und dieser Library code.google.com/p/nespad/

      Klingt aber glaube ich ein bisschen nach Overkill nur um ein paar Savegames zu sichern, aber wie gesagt bestimmt ein sehr lehrreiches kleines Wochenend Projekt.
    • Also, ich bin zwar sehr bewandert was schöne saubere Programmierung angeht (Algorithmen, Low-Level, etc.), muss aber sagen, dass ich mit meinem Arduino nur so kleine Projekte gemacht habe. Ich habe auch schon einige Gamepads für den Arduino zum Laufen gebracht (SNES, PS1). Im Grunde sind das nichts anderes als Schieberegister.
      Von der Elektortechnik habe ich weniger Peil. Ich kann simple Digitaltechnik (1 Semester gehabt).

      Aber ich würde mich gerne einbringen. Vielleicht kommt da ja was handliches bei rum ;)
    • So, alles auf Anfang :P

      Ich hab nun im neuen File das Mainboard mit allem ausgestattet um das original Netzteil weiter benutzen zu können.
      Außerdem ist der Atmega 2560 (16MHz Variante) drin.
      Den Stromeingang, die kleine Buchse für's Kabel vom Ein/Aus-Schalter, den Resetknopf und den MultiAV hab ich an den Originalpositionen platziert.



      Dateien
      • SNES-DUMPER.zip

        (99,3 kB, 406 mal heruntergeladen, zuletzt: )

      誰一人 知らない明日

      follow me: https://twitter.com/arcadetv


      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von ArcadeTV ()

    • Hier kannst du den Atmega noch ein bisschen erweitern: arduino.cc/en/uploads/Main/ard…ega2560_R3-ref-design.zip

      Dann noch eine Pinreferenz(Arduino Pin zu Atmega Pin) zum Ausdrucken: arduino.cc/en/Hacking/PinMapping2560
      Und eine allgemeine Übersicht: pighixxx.com/megapdf.pdf
      Und nochmal: robot-italy.net/downloads/pighixxx/atmega2560u.pdf
      Bilder
      • 5225072558_5f5f760037.jpg

        20,02 kB, 395×127, 1.291 mal angesehen
      • NesSnesPinout.png

        11,94 kB, 338×187, 1.398 mal angesehen
      • 6AYwYVkh.png

        28,88 kB, 771×786, 605 mal angesehen

      Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von sanni ()

    • Es lebt. :monkey:




      Alle Pins direkt verkabelt ohne die Shiftregister, nach dem Pinout einen Post oben drüber. Den Arduino Code musste man nur ganz geringfügig anpassen.
      Als nächstes dann die SD Karte dran und gucken ob es nur die Infos auslesen oder das Rom auch dumpen kann.
      Dann kommt der TV-Out Test. Dann der SNES Controller.
      Und wenn das ganze Pinout dann geprüft ist, darf der gute ArcadeTV dann die Platine in Eagle bauen :saint:

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von sanni ()

    • Das Dumpen eines Roms ist aber immernoch super langsam, da müsste sich jemand mal den Low Level Arduino Quellcode ansehen.

      Dumpen von z.B. Super League Basketball dauert:
      Arduino Uno LCD: 12:39
      Arduino MEGA Serial: 4:28 (<-- schnell :o)
      Arduino MEGA TV-Out: 13:19 (<-- super langsam :((()

      Man müsste also die TV Ausgabe während des Dumpens einschränken/unterbrechen, da es den Arduino irgendwie verlangsamt. Ob es damit zusammenhängt, dass ich ""#define ENABLE_FAST_OUTPUTin der TV-Out Lib auskommentiert habe?

      Und das SRAM Lesen/Schreiben ist momentan auch wieder kaputt. Hätte ich mir doch nur die Version des Codes aufgehoben, wo das noch ging anstatt immer nach jeder Änderung auf Speichern zu drücken und die alte Version zu überschreiben :S

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von sanni ()