Montag, 18. März 2013

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).

Keine Kommentare:

Kommentar veröffentlichen