Montag, 18. März 2013

Was soll der Radiergummi da? Oder: Wie reinige ich meine Spiele!

Vielleicht hat der ein oder andere bemerkt, dass auf einem der Bilder ein Radiergummi zu sehen ist. Wollte hierzu eine kleinigkeit schreiben:
Das ist das perfekte Werkzeug, um Spiele wieder flott zu machen, in die man sonst Stundenlang reinpustet. Einfach Game aufschrauben, mit dem Radiergummi die Goldpins wieder sauber radieren und evtl. mit einem Alkoholpad rübergehen. Dannach läuft das Spiel wieder wie neu!

Ein bisschen Theorieunterricht ;)

Ich habe im letzten Post ja schon geschrieben, wie ihr ein eigenes DPadHero herstellt. Dabei habe ich wild mit Begriffen wie "Adresspins" usw. um mich geworfen.

Hier will ich euch mehrere Dinge erklären:
  • Warum das ganze Kabelgedönse, geht das nicht auch so?
  • Warum löte ich ein 28pin Maskrom aus und ein 32pin EEPROM ein
  • Warum muss ich die Roms vergrößern
  • Warum läuft das Spiel etwas langsamer auf meinem NES?
  • Warum ein Spenderboard, gehts ohne?
  • Was sind diese "Mapper" überhaupt?
Zum Kabelgedönse:
 Die Maskroms von Nintendo haben andere Pinouts als die EEPROMs, sprich, die Adressierung ändert sich, es gibt einen Groundpin mehr, etc. Diese müssen angepasst werden, damit der NES wie gewohnt seine Daten Adressieren kann. Ein EEPROM ist nichts weiter als ein Speicher. Jeder Speicher hat Adressen. Möchte ich z.B. Byte 0 (immer bei 0 anfangen zu zählen) Adressieren, sprich die Daten auslesen, muss ich auf alle Adresspins eine logische 0 legen. Als Beispiel, wenn ich 4 Adresspins hätte, wäre das in binär die Adresse "0000", also "0". Wöllte ich hingegen Byte Nummer 5 haben, müsste ich "0101", also eine "6" auf die Adresspins legen.

Dies muss leider angepasst werden.

Zum 28 und 32pin gedönse:
Je nach Speichergröße haben EEPROMs mehr oder weniger Adressen. Die NES Karten können EEPROMs mit bis zu 32pins aufnehmen. Sollte ein 28 pin Maskrom verbaut sein, hat Nintendo glücklicherweise die anderen Pins trotzdem "Verkabelt", da diese Aber nie Adressiert werden, ist das egal.

Zum vergrößern:
Wenn vorher ein 128kb EEPROM verbaut worden sein, so muss der NES auch nur diese Adressieren, da die Pins für die höheren Adressen nicht belebt sind, ist dies dem NES scheissegal. Theoretisch müsste hier immer logisch 0 aufliegen, aber wer weiß, ob das auch so ist (es gibt auch undefinierte Zustände). Sollte der NES nun wieder erwarten auf die höchste Adresse eine logische 1 legen, so liest er nicht aus den unteren 128kb, sondern aus den höheren 128kb. Nun verdoppeln wir das ROM einfach, daher liegen im unteren und oberen Bereich exakt die gleichen Daten. So bekommt der NES das, was er will, egal ob er von oben oder unten liest.

Waurm läufts nun langsamer?
Die Spiele laufen auf Timingbasis. Das heißt der NES muss wissen, wieviele Bilder pro Sekunde er laufen lassen muss. Der PAL Standart arbeitet mit 50Hz, NTSC leider mit 60, somit muss der NES hier mehr Bilder pro Sekunde zeichnen. Die Geschwindigkeit ist allerdings fest im NES als "Quarz" verlötet, welches die Geschwindigkeit vorgibt. Das Spiel geht von 60Hz aus (ist im Programmcode so verankert). Der NES arbeitet nun aber nur auf 50Hz basis und zeigt die Bilder langsamer an. Das heißt also das Spiel läuft langsamer.

Gehts ohne Spenderboard?
Theoretisch ja. Kann man die Platine exakt reproduzieren wäre das kein Problem. Was sich als Problem aber ergibt sind 2 Punkte. 1. der CIC (lockout) Chip. Sollte dieser auf der Cartridge fehlen, erkennt der NES das Spiel aus raubkopie und hämmer auf den Resetbutton beim Start (kennt ihr, wenn das Spiel verschmutzt ist blinkt es, das kommt daher, dass der Lockout Chip nicht erkannt wird und der NES auf Reset hämmert). Dieses Problem kann man umgehen, indem man seinen Lockout Chip im NES durch trennen von Pin 4 unschädlich macht.
Das 2. Problem ist der Mapper. Leider befindet sich nicht die gesamte Hardware im NES. In den Karten selbst sind Mapper verbaut, welche dem NES Zusatzfunktionen geben. Als Beispiel wäre der vergleich Mario 1 mit 3, in Mario 1 steckt ein Mapper erster Generation, der MMC1, in Mario 3 der mit drittter Generation, der MMC3. Daher ist mit der Mario 3 Karte viel mehr möglich und das Spiel sieht z.B. besser aus. Darum ist Castlevania 3 auch so "aufwändig" für ein NES  Spiel, dies benutzt den MMC5 Mapper, der super Zeug zur verfügung stellt. Hätte man ein Spiel ohne Mapper könnte man sich die Platine ätzen und das Spiel würde laufen!

Was ist ein Mapper?
Wie gesagt, dieser stellt dem NES weitere Funktionen zur verfügung, meist Speicherfunktionen (diverse Speicherfunktionen wie spiegeln, schnelleres kopieren, WRAM Speicher, etc).

Homebrew auf dem NES! Heute: DPadHero!

Ich habe mich endlich mal drangesetzt, viel geforscht und auch teilweise selbst die Informationen erarbeitet, wie man NES Repros herstellt. Ich habe mich dabei auf die Spiele DPadHero 1 und 2 beschränkt, da sich dies im legalen Rahmen bewegt und ich die Spiele sowieso auf dem NES zocken wollte. Wers nicht kennt schaut mal bei DPadHero vorbei ;).

Zuerst einmal braucht man passende Spenderkassetten. Am besten lässt man sich von einem Emulator oder einem anderen Programm den iNES Header anzeigen und merkt, dass man hierfür eine Kassette mit einem MMC3 Mapper braucht, genauer gesagt eine TSROM Platine braucht. Als Nachschlagewerk bitet sich hier diese Seite an: http://www.thenesdump.com/New%20Website/mapper%20info.html

Leider muss ein Spiel geopfert werden, um das Repro herzustellen. Ich habe mich für "Bugs Bunny Birthday Blowout" entschieden, da das Spiel sehr günstig (ca 7€) zu bekommen ist.

Was brauche ich?

  • Kentnisse im Umgang mit Lötkolben, insb. das Entlöten
  • Einen Lötkolben
  • Eine Entlötpumpe
  • Entlötlitze
  • Die Spenderkasette
  • 2 Passende EEPROMs (mehr dazu später, ich verwende generell 27C2001 EEPROMs)
  • Falls die EEPROMs eine Scheibe haben ein UV Löschgerät (bitte keine Bräunungslampen nutzen! Falsche UV Strahlung!)
  • Ein Programmiergerät für die EEPROMs (ich empfehle den Willem Programmer)
  • Ein Gamebit zum öffnen der Cartridge
Wenn ihr alles beisammen habt kanns losgehen.

Zuerst wird die Cartridge aufgeschraubt und die Platine herausgenommen. Wer eine anderes Label später auf die Cartridge kleben will sollte jetzt den Deckel für ca 1 Stunde in ein warmes (NICHT HEIßES) Wasserbad legen, dann geht das Etikett wunderbarst ab.

Hier seht ihr die Platine:
 Die beiden Maksroms am unteren Teil müssen entfernt werden. KEINEN DER ANDEREN CHIPS ENTFERNEN!

Dies erfordert viel Geduld und ist das Zeitaufwendigste am Reprobastelieren. Ich schneide einfach die Beinchen mit einer Zange durch, entferne die Roms, schiebe mit dem heißen Lötkolben die Beinchen raus und mache die Löcher mit Entlötlitze (und ggf. Entlötpumpe) sauber.

Hier ein Bild von den abgetrennten Maskroms:
Und hier ein Bild der sauberen Platine:
Ihr müsst durch alle Löcher "durchsehen können".

Die Platine kann nun erstmal auf die Seite gepackt werden, denn jetzt werden die ROMs vorbereitet. Holt euch ein Tool wie "tniNES" und los gehts. Legt die Rom in ein Verzeichniss, öffnet ein Dosprompt (Windows+R, cmd, Enter) und geht in den Ordner. Dort gebt ihr ein:
tnines.exe -s dpadhero.nes
Nun erhaltet die 3 Dateien. Die .hdr Datei könnt ihr wegwerfen, die beiden anderen werden nun weiterverarbeitet.
Ihr werdet merken, die Dateien sind jeweils 128kb groß, wer gut aufgepasst hat weiß, dass unsere EEPROMs aber 256kb fassen. Also werden wir die Dateien größer machen mit dem copy Befehl:
copy /b dpadhero.chr + dpadhero.chr dpad_new.chr
undcopy /b dpadhero.prg + dpadhero.prg dpad_new.prg

Solltet ihr größere EEPROMs haben, macht die Dateien entsprechend groß, das verhinder nacher Probleme, falls der NES ein undefiniertes Signal auf den höchsten Adresspin legt. Wer interesse an der Theorie hat kann mir gerne schreiben, dann verfasse ich dazu einen separaten Artikel!

Nun nehmt euren EEPROM Brenner und schreibt die CHR und die PRG Datei auf je ein EEPROM und beschriftet diese (ihr müsst sowieso das Fenster abkleben, also einfach einmal CHR und einmal PRG draufschreiben.

Nun kommt der Haken: Leider sind die EEPROMs nicht Pinkompatibel mit den Maskroms von Nintendo. Also müssen wir das geradebieten. Biegt beim PRG EEPROM die Pins 1, 2, 24, 30 und 31 hoch, beim CHR EEPROM die Pins 1, 2, 22, 24, 30, 31.

Bevor wir die EEPROMs nun auflöten, lötet in beim PRG Sockel (auf dem oberen Bild der rechte) in die Löcher 1, 2 und 24 ausreichend lange Kabel ein. Beim CHR Sockel (links) in die Löcher 1, 2, 24 und 31.

Habt ihr das gemacht könnt ihr die EEPROMs draufstecken (CHR Links, PRG Rechts) und festlöten. Ein paar Löcher bleiben leer, das hat seine Richtigkeit! Ihr werdet merken, dass teilweise da, wo die Pins hochgebogen sind, Kabel rauskommen. Sollte ein Pin in ein Kabel gesteckt werden, ist was verkehrt!

Das ganze sieht dann so aus:
 Nun müssen die Kabel gelötet werden. Bitte führt keine Kabel über die ROMs, da die Platine dann nichtmehr in die Cartridge passt! Führt sie auch nicht am Rand vorbei, sondern wenn möglich mitten durch (am Rand maximal ein Kabel!).

Beim PRG Rom müsst ihr:
Pin 31 -> Loch 2
Pin 30 -> Loch 1
Pin 2 -> Loch 24
Pin 16 -> Pin 24 (ja, Pin auf Pin, Pin 16 ist NICHT hochgebogen! Passt auf das ihr nicht an andere Kontakte lötet!)

Beim CHR Rom müsst ihr:
Pin 2 -> Loch 24
Pin 22 -> Loch 31
Pin 24 -> Loch 2
Pin 30 -> Loch 1

Damit ist das ganze verkabelt und sollte so aussehen:


Nun das ganze wieder in die Cartridge einbauen! Das wars! Hurra! Ein Repro.

Wenn ihr das ganze aufhübschen wollt, fragt jemanden der kann, ob er euch vielleicht geile Labels erstellt. Ich habe das Label dann auf selbstklebendes Papier gedruckt und Selbstklebende Klarsichtfolie oben drauf geklebt. Dann sieht das ganze, wenns fertig ist so aus:




Ich hoffe ich konnte irgendjemandem damit was gutes tun. Das Label hat übrigens BrownJenkin aus dem Nintendofans Forum erstellt! Danke dafür! Hier der Thread:http://www.nintendofans.de/forum/viewtopic.php?f=7&t=28627

Gruß

Nidhoegger