#37 – Doctor V64 – III – region locking madness

Nachdem wir beim letzten Mal endlich den Doctor V64 zum Laufen bekommen haben und bereits Spiele sichern konnten, ist es nun an der Zeit die eigentlichen Kernfunktionen des Geräts zu testen. Als erstes sollten wir mal versuchen ein Spiel auf dem N64 abzuspielen. Hierfür müssen wir wieder die kleine Zwischenplatine einstecken und den N64 auf den Doctor V64 aufsetzen.

a

Jetzt können wir versuchen, das zuvor gesicherte Spiel über ucon64 via Parallelport zu übertragen (N64 è Send). Es scheint so, als würde die Übertragung beginnen, zumindest meldet der Doctor V64 uns den Fortschritt der übertragenen Mbit:

b

Auch in ucon64 scheint etwas zu passieren. Fragt mich bitte nicht, wieso ucon64 diesmal nur permanent einen Ladebalken mit 0% anzeigt. Oh well, keine Software ist perfekt… 😉

Fun Fact: Ich habe mich beim Übertragen für „Super Mario 64“ entschieden, weil das mit 8MB etwas kleiner ist und somit schneller übertragen wird. Zeit ist Geld. 😀

c

Die vollständige Übertragung der Datei in den RAM des Geräts bestätigt uns der Doctor V64 mit folgender Meldung:

Fun Fact: Letztendlich hat es ca. 90 Sekunden gedauert und „Super Mario 64“ ist dabei noch eines der kleineren Spiele für das System. Bei „größeren“ Spielen kann die Übertragung schon bis zu sechs Minuten dauern – Der Parallelport ist einfach keine Rennsemmel… 😉

d

Die nette Aufforderung „<You Can Play Game Now“.> soll uns darauf hinweisen, den N64 einzuschalten. Gesagt, getan! Der Doctor V64 schaltet das Videosignal automatisch um, doch leider bleibt das Bild schwarz. Was machen wir falsch?

q

Guess what – wir haben mal wieder einen entscheidenden Schritt vergessen! Es liegt mal wieder alles an meinem besten Freund (nicht) – dem „Region-Locking“…

Fun Fact: Ich schwör’s euch – das Thema bringt mich noch irgendwann um! 😀

Selbstverständlich gibt es auch beim N64 (analog dem Supernintendo) in jedem Modul einen CIC-Chip, welcher die Identität des Moduls bestätigt. Das Ziel Nintendos war es die Erstellung und Verbreitung von inoffiziellen (nicht von Nintendo lizenzierten) Spielen zu verhindern. Und um die Sache noch weiter zu verkomplizieren, gibt es natürlich verschiedene Arten von CIC-Chips!

Fun Fact: Gut, dass es im Internet eine riesige Community gibt. So haben fleißige Bienchen eine Liste mit allen Spielen erstellt, bei der ersichtlich ist, welches Spiel welchen CIC-Chip-Typ beinhaltet.

f

Ok, soviel zur Theorie – doch wie geht nun der Doctor V64 mit dem Problem um?

Um Spiele beim Doctor V64 zu starten, muss man in den Nintendo 64 immer oben ein Spiel einstecken, welches den selben CIC-Chip-Typ nutzt wie die Sicherheitskopie. Na das probieren wir doch gleich mal. Um z.B. „Super Mario 64“ (das haben wir ja bereits vom PC in den RAM des Geräts übertragen) zu starten, brauchen wir also ein Spiel, welches den gleichen CIC-Typ (7101) verwendet. So ein Zufall, dass das bei „Mario Kart 64“ der Fall ist! Also fix das Modul in den N64 stecken.

g

Doch was ist das? Sobald wir das N64 einschalten, wird „Mario Kart 64“ gestartet und nicht das zuvor in den Speicher geladene „Super Mario 64“. Was ist denn nun noch falsch?!

h

Ich trau‘ es mich fast gar nicht zu sagen, aber wir haben tatsächlich noch ein entscheidendes Detail vergessen. Damit diese „Überbrückung“ so funktioniert wird ein sog. Emulationsadapter benötigt. Dieser verhindert, dass das Spiel, welches oben eingesteckt wird, gestartet wird (es wird lediglich der CIC des eingesteckten Moduls verwendet) – clever! So sieht das Teil aus:

i

Unglaublich, mit eingestecktem Emulationsadapter sieht das ganze Konstrukt noch merkwürdiger aus… Und ihr dachtet, es könnte nicht schlimmer werden! 😛

j

Doch siehe da, mit dem dazwischen geschalteten Adapter startet „Super Mario 64“ einwandfrei – Erfolg! 🙂

k

Nun wollen wir doch mal sehen, ob auch das Laden von Spielen über das CD-Laufwerk funktioniert. Hierfür habe ich eine CD mit zuvor gesicherten ROM-Dateien gebrannt.

Fun Fact: Die etwas „abgeschnittenen“ Namen stammen aus den für den Doctor V64 benötigten Brennparameter (ISO9660) – mehr als 8 Stellen (plus 3 für die Dateiendung) ist nicht drin! 😉

l

Nach dem Start des Doctor V64 sowie einem beherzten Druck auf „Play“ zeigt sich das CD-Auswahlmenü:

m

Das „Super Mario 64“ prinzipiell funktioniert, wissen wir ja bereits, also probieren wir es diesmal mit „Banjo-Kazooie“:

n

Der Ladevorgang scheint einwandfrei zu klappen, doch anschließend wird eine merkwürdige Meldung angezeigt – was hat das nun wieder zu bedeuten?

Fun Fact: Im Vergleich zu der lahmen Übertragung via Parallelport hat der Ladevorgang nur ca. dreizehn Sekunden gedauert – sehr schön! 🙂

o

Das liegt daran, dass jede ROM-Datei anders ist, je nach dem mit welchem Backup-Gerät sie erstellt wurde! Die „Banjo-Kazooie“-ROM-Datei hat mir ein Kollege aus einem Gamerforum vor vielen Jahren mit einem anderen Backup-Gerät erstellt. Selbstverständlich sind die Spieldaten die gleichen, nur das Format, in welchem die Daten gespeichert sind, kann sich unterscheiden.

Das Gerät ist so schlau und konvertiert eine ROM-Datei in das für sich benötigte Format. Das „Byte-Swapping“ nimmt nochmal ein paar Sekunden in Anspruch, aber anschließend kann das Spiel gestartet werden:

p

Doch beim Anschalten des N64 passiert leider wieder nichts. Wo liegt der Fehler? Wer den Artikel aufmerksam gelesen hat, kennt bereits die Antwort! 😉

q

Es liegt mal wieder am „Region-Locking“. „Banjo-Kazooie“ verwendet einen CIC-7103 und das eingesteckte „Mario Kart 64“ besitzt (wie wir ja mittlerweile wissen) CIC-7101. Logischerweise müssten man nun als Überbrückungsmodul ein Spiel mit CIC-7103 verwenden. Doch was macht man, wenn man jetzt kein Spiel mit CIC-7103 zum Überbrücken besitzt?

Auch hierfür haben findige Enthusiasten sogenannte „Bootemulatoren“ entwickelt. Diese Tools gaukeln dem Gerät z.B. einen CIC-7103 vor, obwohl das (zur Überbrückung des CICs) eingesteckte Modul einen CIC-7101 besitzt. Also eigentlich genau das was wir brauchen! 🙂

Der populärste Vertreter dieser Gattung ist wohl der „LaC’s Universal Bootemu“. Mit diesem wollen wir es mal probieren. Das Prozedere ist allerdings zugegeben etwas aufwändig, ihr werdet gleich sehen was ich meine. 😉

Fun Fact: Gut, dass ein INFO-File dabei war. Das beinhaltet zwar nicht alle, aber zumindest ein paar essentielle Informationen. Ohne diese wäre man wohl wirklich aufgeschmissen! xD

r

Das Tool muss – bevor ein Spiel gestartet wird – temporär in den RAM der Backup-Unit geladen werden. Hierfür verwenden wir wieder ucon64 und den Parallelport:

Fun Fact: Da wir eine Übertragung via Parallelport gewählt haben, ist hierbei zu beachten, dass selbst der Bootloader erst über ucon64 (N64 è Convert) „byteswapped“ (also in das korrekte Format gebracht) werden muss, da ihn sonst der Doctor V64 nicht lesen kann. Würde man den Bootloader auf eine CD brennen, würde der Doctor V64 die Konvertierung automatisch vornehmen (dieses Prozedere kennen wir ja bereits von der Super Wild Card) – einfach ist anders! 😀

s

Anschließend muss das N64 angeschaltet werden. Der Bootloader begrüßt uns mit folgender Meldung:

Fun Fact: Damit das funktioniert muss ein Controller in Port 1 des N64 angesteckt sein! 😀

t

Sobald der Bootloader in den RAM geladen wurde, muss mit der STOP-Taste zurück ins Menü des Doctor V64 gesprungen werden. Anschließend kann ein Spiel von CD (oder alternativ erneut über den Parallelport) geladen werden. Also, zweiter Versuch für „Banjo-Kazooie“. Sobald das Spiel in den Speicher geladen wurde, schaltet der Bootloader das Bild automatisch wieder auf den N64 um, da dieses ja bereits angeschaltet ist. Jetzt kann das Spiel direkt mit der START-Taste auf dem Controller gestartet werden – und tatsächlich – es funktioniert! 😉

Fun Fact: Der Vorteil, wenn man ein Spiel von CD lädt ist neben der erheblich schnelleren Geschwindigkeit die Tatsache, dass man die originale ROM-Datei verwenden kann und nicht „byteswappen“ muss! 🙂

u

Alles in allem funktioniert das schon ganz gut. Das bedeutet im Endeffekt, dass wir mit Hilfe des Bootemulators alle Spiele aus der europäischen PAL-Region zum Laufen bekommen sollten, ohne passende Überbrückungsmodule zu besitzen – sehr nice! 🙂

Doch wie sieht es nun z.B. mit amerikanischen NTSC-Spielen aus? Diese haben ja wiederrum eigene CIC-Chip-Typen. Kann der Bootemulator diese auch austricksen? Eine gute, und leider nicht einfach zu beantwortende Frage, denn das Thema ist leider noch weitaus komplexer. Ich versuche im Folgenden nicht zu sehr ins Detail zu gehen, weil ich denke das würde den Rahmen dann doch endgültig sprengen! 😉

Grundsätzlich haben europäische N64-PAL-Module (ähnlich wie beim SNES) im Gegensatz zu NTSC-U-Modulen auch physikalisch eine unterschiedliche Bauform. So wird sichergestellt, dass z.B. ein amerikanisches Modul nicht in eine Konsole eingesteckt wird.

v

Ein Vorteil des Doctor V64: Die unterschiedlichen Bauformen sind uns egal, weil wir die Spiele ja nicht über Modul, sondern via CD oder Parallelport laden können. Der Bootemulator ist sogar so schlau, dass er auch die amerikanischen CIC-Chip-Typen emulieren kann!

So können wir z.B. die amerikanische NTSC-Version von „Super Mario 64“ mit Hilfe des Bootemulators laden und starten, doch leider wird das Bild nur schwarz/weiß angezeigt:

w

Woran liegt das? Hier kommen die unterschiedlichen Funktionsweisen der Fernsehnormen (PAL / NTSC) ins Spiel. Leider sind beide Standards aufgrund ihrer unterschiedlichen Parameter (z.B. Bildrate PAL 50Hz / NTSC 60Hz, Auflösung, Farbcodierung, …) nicht bzw. nur bedingt miteinander kompatibel. Es hängt immer davon ab, welcher Norm das Quellsignal entspricht und auf welchem Endgerät es ausgegeben wird. Würden wir das Signal nun an einem Fernseher mit NTSC-Support („PAL60-Kompatibilitäts-Modus“) abspielen, würden die Farben korrekt dargestellt werden.

Fun Fact: In unserem Fall würde der DScaler sogar NTSC unterstützen (sonst würden wir gar kein Bild sehen), allerdings kommt der USB Video Grabber wohl nicht mit der Farbcodierung des NTSC-Standards klar.

x

Doch leider ist selbst das nur die halbe Miete, denn erschwerend kommt hinzu, dass die meisten Spiele („Super Mario 64“ ist da eine Ausnahme) neben den unterschiedlichen CIC-Chip-Typen teilweise noch „echte“ Region-Lock-Checks besitzen. Hierbei kommuniziert das Modul mit einem Chip in der Konsole um zu überprüfen, ob es z.B. ein amerikanisches Spiel für eine amerikanische Konsole ist. Ist dies nicht der Fall, wird das Spiel einfach nicht gestartet oder eine Fehlermeldung dargestellt.

y

Das können wir z.B. mit der – nur in Amerika erschienenen – „Tony Hawk’s Pro Skater 3“-Rom-Datei ausprobieren. Nach erfolgreicher Konvertierung (Byteswap) und Übertragung an den Doctor V64 mit vorgeschaltetem Bootemulator (um den CIC-Chip zu überlisten) schreit uns folgende Fehlermeldung ins Gesicht:

z

Doch selbst hierfür gibt es eine Lösung! Mit Hilfe einer sehr alten Software namens PALadin lassen sich die Eigenschaften von ROM-Dateien modifizieren. So kann z.B. ein „Country-Check-Fix“ angewandt werden (paladin /f “Tony Hawk’s Pro Skater 3 (U).v64”), welcher die Regions-Überprüfung überlisten soll.

z2

Das Ergebnis kann sich sehen lassen, zumindest lässt sich das Spiel jetzt starten. Wie bereits angenommen werden die Farben falsch dargestellt, da das Modul an sich ja immer noch mit NTSC-Norm arbeitet:

z3

Aber die Software setzt noch einen drauf: Es können sogar die Videotables der ROM-Datei angepasst werden, sodass das Spiel quasi „vollständig“ an die PAL-Norm angepasst wird (paladin /p /f “Tony Hawk’s Pro Skater 3 (U).v64”).

Fun Fact: Für Leute, die nichts mit der Commandline anfangen können gibt es auch hier eine grafische Oberfläche namens „S-Paladin“. 😉

z4

Und siehe da, so bekommen wir das Bild auch in Farbe – nice! 🙂

z5

Richtig krass: Durch die „PAL-Konvertierung“ der ROM-Datei wird sogar der CIC-6102 in einen CIC-7101 konvertiert. Das bedeutet, dass wir ein konvertiertes NTSC-Spiel sogar ohne Bootemulator (mit z.B. „Super Mario 64“ als Überbrückungsmodul) starten können. Hier habe ich das z.B. mit dem USA-exklusiven „Mega Man 64“ gemacht:

Fun Fact: Da der CIC-7101 in ca. 88% aller europäischen Spiele verwendet wurde, können wir eine Vielzahl der Spiele ohne Bootemulator starten – yay! 🙂

z6

So, aber jetzt entschuldigt mich bitte, Ich bin dann mal weg „Banjo-Kazooie“ zocken. Vogel und Bär brauchen meine Hilfe um Gruntilda zu besiegen! 🙂

Write a comment