Vom Romfile zum SNES Modul - Repro 101

  • Präambel
    Ich finde die Art und Weise, wie Beckenrand-schwimmer mein Netzteil auseinandernimmt und es hier dokumentiert beispielhaft. Ich dachte, ich gebe auch mal etwas zurück und dokumentiere hier den Weg, den ich für mich gefunden habe, eine Reproduktion eines SNES-Games zu erstellen. Sensible Teile spare ich dabei aus. Ich weiss, es tangiert den Hauptzweck des Boards nur peripher (man riecht auch hier Lötdämpfe), aber vielleicht interessiert es den einen oder anderen, bzw. gibt einen Jumpstart. Verbesserungen oder Detailfragen diskutiere ich gerne.


    Zweck des Dokumentes
    Ich versuche anhand eines Beispieles den Weg vom ROM-File zum fertigen SNES-Cartridge zu beschreiben, wie ich ihn mir aus diversen Quellen im Netz konsolidiert und vereinfacht habe. Ich hoffe, das ist für den einen oder anderen interessant, und entzaubert den Vorgang ein bisschen.


    Warum
    Ich bin ein Retro Gamer. Und was könnte mehr Retro sein, als physikalische Konsolen und physikalische Medien wie Cartridges? Leider sind die Preise für SNES-Spiele in den letzten Jahren in so astronomische Höhen geschnellt, dass der Start oder die Erweiterung einer Sammlung unverhältnismässig kostspielig ist.
    Ich erstelle mir eigene Repros, mit Platine, Plastikhülle und passendem Aufkleber. Soweit die Vorgeschichte.


    ROM finden
    Ogott, es geht schon los mit einem Kapitel, wo ich nebulös bleibe, aus Gründen. Wie ihr das ROM-File aufspürt ist eurer Kreativität überlassen.
    Ihr sucht ein File, das *.sfc oder *.smc heisst. Meines heisst jetzt mal tutorial_rnh.smc


    ROM identifizieren
    Ich versuche zu identifizieren, wie es aufgebaut ist, dabei hilft mir das Internet. Ich finde über das Modul heraus: LoRom, 32MBit, keine Spezialchips, es hat eine Batterie und SRAM um Spielstände zu speichern. Gut, kann ich. Je nach Bauart des Moduls nehme ich ein anderes PCB als Grundlage bzw. setzte die Jumper anders.
    Hat es einen Spezialchip, ist es für mich aussen vor - andere können dies, Stichwort Spender-Modul.


    ROM testen
    Ich besitze ein Super-NT, ein in einen FPGA gegossenes SNES. Nach einem Firmware-Flash kann ich via SD-Karte Games zocken. Ich bin kein Fan davon (100 Fantastilliarden Games im direkten Zugriff überfordern mich), aber zum Testen ist es super. Variante B wäre ein SNES-Emulator um herauszufinden, ob das File was ihr da habt binärer Unsinn oder ein ROM-Abbild des Spieles ist, das ihr gerne physikalisch hättet. Emulation ist für diesen Post aber out of scope.


    ROM aufbereiten
    Hat man sich die Images für die Spiele, die man in ein physikalisches Cartridge verwandeln will erst einmal beschafft, beginnt der Spiessrutenlauf, unzählige Windows-Tools von dubiosen Seiten herunterzuladen, die die Images nach und nach in einen Zustand versetzen, den ein EEPrommer tatsächlich versteht.


    Die Schritte sind:

    • Überprüfen der Checksumme
    • Entfernen unnützer Header
    • Etwaiges Padden auf ein Vielfaches von 8MBit
    • Anpassen der Checksumme
    • Splitten in 4MBit Häppchen

    Einen jedem dieser Tools ist gemein, dass sie teils uralt, teils buggy, aber immer umständlich bedienbar sind.
    Ich habe das ganze jetzt auf ein Tool reduziert, ergänzt um Linux Hausmittel, alles als Alias in meine Shellconfig verpackt und kann jetzt via snes_go32 tutorial_rnh.smc alles mundgerecht für meinen EEPrommer aufbereiten.



    Ich erspare mir nervtötende Minuten und den Wechsel auf eine Windows Maschine.


    Und einen weiteren Vorteil hat das ganze auch noch: es werden Segmente mit einem Zähler als Suffix generiert. Dieser bei 0 startende Zähler hilft mir bei der richtigen Konfiguration meines Flashers. Dort sind 3 Dipschalter zu setzen, das erste Segment flasht man in der Stellung 0-0-0.


    Das Zwischenergebnis stellt sich jetzt so dar.

  • Das Flashen
    Das Flashen so wie ich es beschreibe ist der mit Abstand langweiligste Teil. Es ist zu langweilig und langwierig um nicht noch etwas parallel dazu zu machen. Auf der anderen Seite zu fehlerträchtig, wenn man seine Gedanken schweifen lässt und nicht genau aufpasst.


    Woran liegt das
    Ein gebräuchliches EPROM, welches 32MBit fasst, ist der 27C322. Genau dieses werden wir flashen. Schaut man sich meinen EEPrommer an, dann sieht man, dass er EPROMs mit bis zu 40 Beinchen beschreiben kann. Der 27C322 hat derer aber 42. Mit einem Adapter behebe ich dieses Defizit, muss nun aber 8 mal flashen und vorher die Bank switchen. Acht? Ja genau, das ist genau die Anzahl der Files, die wir vorbereitet haben.



    Teileliste

    • ein MinPro TL866 (AliExpress)
    • den DIP 42 Adapter 27C4096 (Ebay)
    • USB Kabel
    • kleinen Schraubenzieher (sic!, zum Setzen der DIP Switches)
    • M27C322 Eprom
    • schwarzes Isolierband


    Für den MiniPro habe ich mich entschieden, weil er sehr sehr günstig zu haben ist und im Internet recht viel Support zu finden ist. Es gibt unterschiedliche Modellvarianten, für dieses Tutorial tut jede. Der UseCase DIP42 wird mit dem Adapter zwar prinzipiell abgedeckt, ist aber auch recht nervtötend. Man bekommt das, für was man bezahlt.


    Ablauf
    Den EEprommer konfiguriere ich intial wie folgt:

    • ich verwende den C322, heisst beide Jumper auf rechts
    • ich starte mit File 000, alle DIPs nach oben


    Zum Flashen benutze ich das dem TL866 beliegende Windows Programm. Ich konfiguriere wie folgt:

    • IC: AM27C4096 @DIP40
    • Pin Detect: deaktiviert
    • Check ID: deaktiviert
    • Verify after: aktiviert
    • Skip 0xFF: deaktiviert

    Die Spannung zum Flashen setzte ich auf 12.5V. Im Zweifelsfall sucht ihr nach dem Datenblatt des von euch konkret verwendeten Eprom.



    Vom Programm verwende ich hier nur 2 Kernfunktionalitäten, Open um ein File zu öffnen und P = Program um das File in das Eprom zu flashen. Das ganze wiederhole ich noch sieben mal mit den weiteren Files. Vor jedem Schreibvorgang muss ich die DIPs richtig setzen (binär codiert, im Beispiel unten flashe ich File 003). Achtung, bei eurem Adapter könnte das Mäuseklavier genau umgekehrt funktionieren, bei mir heisst unten=on.



    Wenn ich fertig bin, überklebe ich das Sichtfenster oben mit schwarzem Tape. Der Chip kann via UV gelöscht werden. Ich will verhindern, dass dies aus Versehen passiert.


    Testen
    Hier habe ich einen blinden Fleck. Schön wäre, ein fertiges gesockeltes PCB für die gebräuchlichsten Games zu haben, um im Super Nintendo die Funktion zu überprüfen.
    Paranoide könnten jetzt nochmal die 8 Files öffnen, die verschiedenen Bänke auslesen und miteinander vergleichen. Ich verzichte darauf, weil es mich angurkt.


    SuperCIC
    Wo ihr den Flasher gerade draussen hab, könnt ihr auch gleich den PIC12F629 flashen, den wir später brauchen werden. Das sollte jetzt eine Fingerübung sein: kein Adapter, nur einmal flashen. Das File was benötigt wird, heisst supercic-key.hex. Gibt es aber auch schon fertig geflashed zum 3fachen Preis.


  • Das Löten
    Eigentlich der einfachste Teil von allen: ein bisschen lecker Blei schnüffeln und sich an die Anweisungen des Lieferanten des PCB halten: einfach den ersten Lötpunkt setzen und dann das verdammte Modul fertigstellen.



    Es gibt zahlreiche ausgetüftelte PCBs auf dem Markt, die von 2 bis zu 7 Dollar reichen. Welche man nimmt, hängt von den Spezifika des Games ab:

    • HiRom, LoRom
    • Speichergrösse
    • Save Funktionalität

    Die MegaROM ist die eierlegende Wollmilchsau und unterstützt so ziemlich alles. Je nach Game konfiguriert man via Jumper.


    Werkzeug
    Ich hasse die sog. Dritte Hand. Umständlich, nutzlos, PCB zerkratzend, zu leicht, zu billig. Ich bin Fan vom Mini-Schraubstock in den ich das PCB zwischen zwei Gummilippen einklemme. Bauelemente halte ich mit einer selbstklemmenden Pinzette fest und pinne 2 oder drei Beinchen bevor ich die Pinzette wieder entferne. Zwei Zangen runden das ganze ab: eine zum Biegen der Beinchen, die andere zum Abknipsen der Beinchen und unter dem Board verschränken. Fehlen noch mein getreuer Ersa und dünnes Sn60Pb40. Das schwarze Teil links oben spart viel Zeit beim zurechtbiegen der Pins von ICs auf rechte Winkel.



    Bauteile

    • das PCB Mega ROM 2.0 von RetroStage
    • das vorbereitete 32 MBit ROM 27C322
    • der Super-CIC PIC12F629
    • ein 64 kBit SRAM für die Spielstände
    • die Stützbatterie CR2032 für die Spielstände mit Lötfähnchen
    • einen Demultiplexer HD74LS139P
    • zwei Multiplexer HD74LS157P
    • 7 Kondensatoren à 1uF
    • 2 Dioden 1N4148
    • 2 Widerstände 100kOhm



    Jumper setzen
    Verlasst euch nicht auf das Internet, sonst bürdet ihr euch viel unnütze Arbeit (Entlöten, ROM beim Entfernen demoliert, Neuflashen) auf. Ursprünglich habe ich recherchiert, dass es sich um ein LoROM Spiel handelte, habs aber nochmal mit ucon64 gegengeprüft. Fehlanzeige!



    Von oben recht jumpere ich im Uhrzeigersinn:

    • der SRAM ist 64kBit gross
    • das Modul benutzt HiROM
    • ich verwende nur 1 ROM
    • es handelt sich um ein 27C322


    ICs auflöten



    Dioden, Widerstände, Kondensatoren auflöten
    C08 auf der Rückseite nicht vergessen!


    Batterie und ROM auflöten
    Bevor ich das ROM verlöte gehe ich jeden vorherigen Schritt noch einmal durch. Entdecke ich den Fehler hier, muss ich keine 42 Beinchen entlöten und hoffen, das ROM wieder heil aus der Platine zu bekommen.



    Enclosure vorbereiten
    Die meisten Enclosures haben in der Mitte noch einen Stift, der bei kleinen PCBs nicht stört, bei grossen wie dieser hier aber schon .. weg damit mit dem Dremel oder einem scharfen Messer.



    Resultat ohne Sticker
    Das PCB lässt sich verdrehsicher in die Plastikhülle einfassen. Zuklipsen. Fertig. Ab ins Gerät damit zum Testen. Kann das Game Spielstände verwalten, dann sollte unbedingt das Speichern und Laden getestet werden. Dass das Spiel startet, langt allein nicht.
    Protip: Es gibt die Enclosures auch in diversen Farben, durchscheinend und mit Nintendo Schrauben für mehr Authentizität.


  • Label erstellen
    Lasst mich den Scope ein bisschen anpassen. Dieser Teil des Tutorials eignet sich sowohl, um ein unansehnliches Label eines Originalspieles zu ersetzen, als auch ein Label für ein Repro zu erstellen. Ich bin ein Fan der alten Labels und es muss schon ziemlich ramponiert sein, damit ich es ersetzen möchte, geht doch auch ein Wertverlust mit dem neuen Label einher.


    Lässt sich das Label nicht mehr restaurieren, gehe ich im Netz auf die Suche. Ist es ein 08/15 Spiel finde ich das Label und bin fertig. Finde ich nichts, oder das Label sagt mir nicht zu, finde ich zumindest ein Leertemplate oder ein Label in guter Auflösung, welches ich adaptieren kann.


    Ich gehe mal vom ungünstigsten Fall aus. Ihr habt ein Label eines anderen Spieles (gefunden oder selbst gescannt). Ladet dieses in ein Bildbearbeitungsprogramm, das Layer unterstützt. Schneided jedes Logo für sich aus und fügt es an der gleichen Position als neuen Layer ein, so seid ihr flexibel, die Proportionen und Relationen zueinander anzupassen. Als unterste Ebene fügt ihr einen Volltonlayer in schwarz hinzu.



    Was fehlt ist, ein Logo des Publishers und ein gut aufgelöstes Bild des Spieles zu finden, dessen Label ihr ersetzen wollt. Placiert diese auf eigenen Layern und ihr könnt schieben, bis es passt.


    Custom Format
    Meine Labels sind bewusst weniger hoch als die originalen NTSC-Labels. Diese sind so hoch, weil sie einmal um die obere Kante des Moduls herum geklebt werden. Am oberen Rand des Labels steht nochmal der Name des Spieles, der deshalb gut ablesbar ist, wenn man die Module in der Schublade hochkant lagert. Gute Idee eigentlich.
    Ich habe aber immer wieder damit zu kämpfen, dass sich je nach Qualität des Klebers genau an der Umklebung das Label löst. Ich habe keine Lust, den Doktor im Falten und Falzen zu machen, verzichte auf dieses Feature und erfreue mich an dauerhaft klebenden Labels. Die Pal-Cartridges haben die Umklebung i.Ü. auch nicht. Mein Custom-Format hat die Proportionen 82x34mm.


    Label drucken lassen: Variante 1
    Variante 1 benutzt ein vorhandenes Produkt, was der Photodienstleister eurer Wahl im Angebot hat. Es heisst bei Cewe z.B. Fotosticker, ihr wollt den Bogen mit "4 grossformatigen Bildern" Der Clou ist, dass die Breite der Aufkleber schon gut passt und ihr pro Label schon zwei vorgefertigte gerundete Ecken habt.
    Nun könnt ihr online 4 eurer Labels (oder 8, wenn ihr vorher je 2 Labels kombiniert) in die Vorlage einpassen.


    Vorbereitung zum Druck
    Achtung: niemand garantiert euch, dass die Aufkleber genau da geschnitten werden, wo sie online zu sehen sind. Rechnet mit 3mm Toleranz. Am besten vergrössert ihr den (schwarzen) Canvas eurer Labels in Photoshop noch um 5-7mm.
    Ihr müsst hinterher noch mit dem Cutter nacharbeiten. Am besten markiert ihr euch die Stelle, wo das Label geschnitten werden soll mit einer dunkelgrauen Linie.




    Ausschneiden
    Die Post war da und ihr habt einen Photosticker Bogen mit 4 oder 8 Labels und die sehen spitze aus? Jetzt müsst ihr die noch aus dem Bogen lösen. Ein Teil der Kanten ist schon dem Produkt entsprechend geschnitten. Den Rest der Schnitte bewerkstelligt ihr mit Schneidematte, Skalpell (oder Teppichmesser) und Lineal. Für präzise abgerundete Ecken gibts in Japan den "Kadomaru pro" - Amazon importiert den euch. Dieser Stanzer kann abgerundete Ecken in 3 verschiedenen Grössen machen. Medium ist für mich die beste Einstellung.



    Schlussbemerkung
    Dieser Stickerbogen ist ein Consumer Produkt. Es wird (ob ihr wollt oder nicht) für euch optimiert und verschlimmbessert. Spart euch die Gedanken um Arbeitsfarbräume und sonstigen Kokolores. Es kommt wie es kommt, in den meisten Fällen sogar gut. Das Papier ist sehr dick und einigermassen störrisch beim um die Ecke kleben.


    Label drucken lassen: Variante 2
    Das ist die Luxusvariante, die Labels kommen fertig geschnitten zu euch nach Hause und ihr braucht sie nur noch aufzukleben.
    Ich benutze das Produkt "Stickerbogen" der Firma "Wir machen Druck" (euer Dienstleister hat sicher Ähnliches am Start). Hier kann ich das Format, die Anzahl der Sticker und wo geschnitten wird komplett selbst bestimmen. Ich kann nicht nur, ich muss! Eure Druckerei braucht eure Vorlage in einem bestimmten Format und mit ganz bestimmten Konventionen. Lest die Dokumente, die euch eure Druckerei zur Verfügung stellt!


    Zuerst erstelle ich mir im Layoutprogramm (hier Affinity Designer) einen grossen schwarzen Bogen und placiere darauf Rechtecke mit abgerundeten Ecken. Eine solche Box hat die Abmessungen 82x34 für mein Custom Format.



    In einen dieser Rahmen placiere ich jetzt mein Label, das ich nach CMYK konvertiert habe. Ist euer Label schwarz, braucht ihr keinen Extra-Canvas und auch die grauen Hilfslinien lasst bitte weg. Ist euer Label nicht schwarz, gebt grosszügig Canvas hinzu. Achtet darauf, dass die Magenta-Box über eurem Label liegt.



    Die umlaufende Linie ist die Volltonfarbe Magenta, die zudem noch speziell benannt werden muss. Hier wird die Druckerei schneiden. Besser erklärt es dieser Herr hier, auch wie man das Projekt für die Druckerei exportiert:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Die Aufkleber gibt es mit unterschiedlichem Finish zu Wahl. Ich habe mich auf "75μ Qualitätsdruck auf weißer polymer kalandrierter Vinylfolie folienkaschiert matt" eingeschossen, weil sie dem Original am nähsten kommen. Die glänzende Variante hingegen sieht feiner aufgelöst aus und hat fast ein bisschen einen 3D Touch. Das Photo unten wird der Realität nicht in Ansätzen gerecht.



    Bestellen
    Nur der erste individuelle Bogen kostet richtig Geld, jede Kopie ist super günstig. Ich habe auf einem Bogen deshalb 14 unterschiedliche Labels und bestelle in der Summe drei Bögen.

  • Warum
    Ich bin ein Retro Gamer. Und was könnte mehr Retro sein, als physikalische Konsolen und physikalische Medien wie Cartridges? Leider sind die Preise für SNES-Spiele in den letzten Jahren in so astronomische Höhen geschnellt, dass der Start oder die Erweiterung einer Sammlung unverhältnismässig kostspielig ist.
    Ich erstelle mir eigene Repros, mit Platine, Plastikhülle und passendem Aufkleber. Soweit die Vorgeschichte.

    Auch wenn die Spiele alt sind ist es illegal sie einfach zu kopieren wenn du keine Erlaubnis dafür hast.
    Daher sollte sich dieser Thread ausschließlich auf Homebrew beziehen.

  • ROMs ansich sind nicht illegal, man kann sie mit ein paar Konsolen selbst erstellen (z.B. SuperNT) auch hab ich gelesen, dass man sie inzwischen ganz legal kaufen kann. Meine sogar das war bei STEAM. Ich bin jetzt kein Jurist, aber wenn man sich davon für private Zwecke eine Cartridge erstellt sollte das doch keine Probleme darstellen.

  • ja wenn du dir Privatkopien deiner in deinen Besitz befindlichen Spiele erstellst ist das soweit legal.
    Sobald du dir aber irgendwo Zelda aus dem Netz besorgst nicht mehr.

  • Raubkopierer
    Oh mein Gott, was sollen wir nur tun?


    _.sAlu:scared_.sAlu


    Da bin ich aber froh dass wir hier so viele Juristen im Forum haben.


    Nein mal ehrlich. Matze hat die Sache schon gut auf den Punkt gebracht.


    @not_aligned
    Das Urheberrecht erlischt nach 75 Jahren oder wie war das gleich?


    Aber bitte keine große Diskussion jetzt ;)
    Ich weiß, ihr seid Deutsche und wollt gern und viel über Verbote reden :D

  • Ja, es geht um die Sache an sich, dann schreibt er halt romfiles mit Nullen drauf....


    Egal,.danke für die gute Idee, hatte damals selber sehr viel mit SNES am Hut, habe grad neulich für meine Firma ein kleines Cracktro gecoded, damit wir auf der Messe als coole Typen dastehen :)

  • Ich weiß, ihr seid Deutsche und wollt gern und viel über Verbote reden

    Mir persönlich ginge das am Arsch vorbei, aber es will doch keiner, dass sie uns den Laden hier zusperren und die Betreiber vor Gericht ziehen - oder?


    (und ja, ich hab den Humor durchaus verstanden)

  • Man könnte sich ROMs auch ganz legal aus dem SNES Mini laden ;)

    Compaq Deskpro 286n/12MHz - 1MB - 40MB HDD - 3,5" Floppy //
    Panatek 386DX33 - 80387 - 8MB - 504MB CF2IDE - 5.25" & 3,5" Floppy - SB Vibra - NIC - 512Kb VGA //
    486DX2-66 - 16MB - 4GB CF2IDE - 5,25" & 3,5" 2,88MB Floppy - DVD - SB Vibra - NIC - 1MB CL VLB VGA //
    Intel Pentium 233MMX - 64MB - 16GB CF2IDE - 3,5" Floppy - DVD - SB AWE64 - NIC - 3Dfx Voodoo Banshee//
    Intel Pentium III 600MHz - 256MB - 4GB CF2IDE - 3,5" Floppy - DVD - SB AWE64 - NIC - 3Dfx Voodoo 3 3000 //

  • Leute diskutiert woanders weiter, es geht hier um andere wichtigere Dinge.

    3x 486´er, Amiga 1200, Amiga 500, Atari ST, 2xAtari 800, Atari 130, 1x NES, PS1
    72x Leisure Suit Larry in the land of the Lounge lizards

  • Genau!
    Ich bin bis jetzt nicht mal dazu gekommen den Hauptbeitrag zu lesen, obwohl das sehr interessant ist.
    Man könnte ja alle Beiträge hier löschen, welche die Wörter "legal" + "Illegal" enthalten ;)
    Dann wird mal durchgefegt. Hier schauts wieder aus wie bei Hempels unterm Sofa.

  • und 2 threads weiter wird über das komplette Dos-archiv auf archive.org geredet, wo JEDES Dos Spiel drin steckt...auf einer offiziellen legalen Internetseite....


    ich finde den Thread gut :) muss mich wieder reinhinken damit meine Chips und Muramasa Boards mal genutzt werden^^

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!