Seite 1 von 1

Kopierschutz Mother 2 / Earthbound

Verfasst: 7. Juli 2013, 18:38
von Farbauti
Ich bin endlich mal dazu gekommen die 2. Ausgabe der retro Gamer zu lesen.
Da war ein interessanter Artikel über Maßnahmen gegen Raubkopierer drin die damals so im Trend lagen.
Das ging über Wörter, die aus dem Handbuch abgetippt werden mussten, über irgendwelche komischen Farbtabellen bis hin zu Drehscheiben die in bestimmten Positionen einen Code ergeben haben.
Interessanter war die Idee die den Leuten von Mother 2 / Earthbound eingefallen ist.
Sobald das Spiel bemerkte das es eine Raubkopie war wurde am Anfang ein Hinweis gezeigt, dass es ein schweres Verbrechen ist Videospiele zu kopieren.Außerdem wurde die Anzahl an Zufallskämpfen extrem erhöht. Hat man es trotzdem bis zu Gygas (Endgegner) geschafft ist das Spiel "eingefroren". Nach dem Reset waren dann alle Speicherstände gelöscht - ohne Hinweis weshalb.

Was mich jetzt brennend interessiert ist wie das Spiel merken kann das es eine Raubkopie ist? Vielleicht hat jemand von euch ja eine Idee dazu? Um das Thema noch etwas auszubauen hat einer von euch ja vielleicht eine vollkommen andere Idee für einen Kopierschutz auf dem SNES?

Ich könnte mir z.b. eine Art Dongle vorstellen die man in den Port des 2. Controller steckt und der dann einfach ununterbrochen eine Tastenkombination abfeuert die vom Spiel an bestimmten Punkten gelesen wird.

Re: Kopierschutz Mother 2 / Earthbound

Verfasst: 7. Juli 2013, 19:05
von ChronoMoogle
Das ist jetzt zwar nur eine Vermutung, aber sehr viele SNES Spiele mit Kopierschutz ueberpruefen, ob SRAM vorhanden ist (mal als Beispiel auch Donkey Kong Country 3) und deshalb halte ich das bei Earthbound auch fuer wahrscheinlich. Dies war anno dazumal auch effektiv, als es noch keine Flashcards und Emulatoren, sondern nur Kopierstationen gab.

Ich bin auch an weiteren Moeglichkeiten interessiert, durch den das Spiel ueberpruefen kann, ob es ein Bootleg ist... also belehrt mich gerne, wenn Earthbound diesen Weg nicht genutzt hat^^

Re: Kopierschutz Mother 2 / Earthbound

Verfasst: 7. Juli 2013, 21:46
von d4s
Das ist eine spannende Frage.
Die häufigste Art der Prüfung war tatsächlich auf SRAM, allerdings nicht nur auf vorhandensein, sondern auch auf Größe (die meisten Backup Units hatten 256kbit, Spiele typischerweise 8 bis 64. War zuviel vorhanden, wusste das Spiel, dass es nicht auf dem Originalmodul lief).

Insbesondere die Spiele von Rare hatten dann gegen Ende der SNES-Zeit immer besseren Kopierschutz.
Das ging soweit, dass sie teilweise auf vorhandensein von Registern einzelner Backup Units geprüft haben, oder den Arbeitsspeicher des SNES nach Assembler-Sprungbefehlen zur Startadresse des eingelegten Moduls durchsucht haben (auf diese Weise haben scheinbar ein paar Backup Units Spiele gestartet).
Ich erinnere mich noch daran, dass mir das beim Entwicklen des Ultra16 ein bisschen Kopfschmerzen bereite, vor allen Dingen in Verbindung mit Donkey Kong Country 2 & Killer Instinct.

Im Grunde war das aber auch vergebliche Mühe. Die Spiele wurden wie immer relativ schnell gecrackt & releast.
Sowas hat maximal gegen die Backup Unit-Besitzer geholfen, die keinen online-Zugriff auf ein BBS mit den neusten Releases hatten und sich stattdessen Spiele aus der Videothek ausgeliehen haben, um sie zu kopieren.

Einen effektiven Kopierschutz stellte eigentlich nur die Verwendung von Spezialchips dar (abgesehen von DSP-1, den hatten auch viele Kopierstationen an Bord).
Spät kamen dann auch noch ein paar Spiele mit Spezialchips heraus, bei denen man sich wundert, warum und ob überhaupt diese tatsächlich dessen Funktionen verwenden.
Bestes Beispiel ist Marvelous mit SA-1 Chip, von dem es auch eine abgespeckte, aber funktional identische Satellaview-Version (natürlich ohne diesen Chip) gibt.

Ob der SA-1 ausschliesslich aus Kopierschutzgründen in einigen Spielen verbaut wurde, ist fraglich.
Er war wohl Teil des Versuchs von Nintendo, die alternde Hardware noch halbwegs konkurrenzfähig zu halten.
Hat featuremässig auf dem Papier auch einen guten Eindruck gemacht, also einige Schwachstellen der Hardware ausgebügelt (mangelnde CPU-Power sowie abgesehen von Mode7 keine packed pixel Grafikmodi, die zum Beispiel für das Darstellen von 3D-Grafik von Nutzen sind).
In der Praxis hat es wie wir wissen aber keinen spürbaren Unterschied gemacht.
3D-Performance ist ja auch eher schwach, wie ich vor ein paar Jahren mal mit ner 3D-Demo auf dem Teil gezeigt habe.
Könnte mir gut vorstellen, dass die Verwendung des Chips in Spielen von Nintendo subventioniert wurde und er dadurch mehr oder weniger für lau kam.

Interessanterweise gibt es einige unlizensierte SNES-Spiele aus dem asiatischen Raum, die über einen eigenen Kopierschutz verfügen. Dieser besteht i.d.R. aus einem kleinen Stück Zusatzhardware, in das man Werte hineinschreiben kann, die dann nach einem bestimmte Muster transformiert wieder ausgelesen werden können.
Die Spiele selbst sind grottig, aber beim Kopierschutz haben sie sich zumindest etwas Mühe gegeben - verkehrte Welt.
Habe die meisten dieser Spiele gecrackt, aber anspielen lohnt sich i.d.R. nicht.

Was neue Kopierschutzmöglichkeiten angeht:
Du kannst im Grunde alles an Hardware in ein Modul packen, was du möchtest.
Dongle ist daher unnötig - das benötigt man ja i.d.R. nur bei Systemen, bei denen man eben nicht die Möglichkeit hat, Zusatzhardware direkt mit auf das Medium zu packen, auf dem die Software ausgeliefert wird.

Re: Kopierschutz Mother 2 / Earthbound

Verfasst: 8. Juli 2013, 07:34
von lytron
Ich hab Probleme, mir einen funktionierenden Kopierschutz auszudenken. Ein Kopierschutz, der auf diese untenstehende Art und Weise kann nicht funktionieren:
  • Lade Anfangswert
  • Speichere Anfangswert in Eingabe-Register für einen super-fancy Chip, der irre Sachen damit macht
  • Warte, bis Vergleichswert in bestimmtem Register steht
Sowas ließe sich einfach austricksen, in dem man der Flashcart oder dem Emulator beibringt, den Vergleichswert in das Register zu schreiben, egal, was da für Berechnungen angestellt werden.

Alternative Idee:
Ein Chip, der in den WRAM schreiben kann. Das könnte klappen.
  • Lade Anfangswert
  • Speichere Anfangswert in Eingabe-Register für den super-fancy Chip
  • Springe in den Arbeitsspeicher
Der Chip muss nur in einer Liste von Adressen einen Wert nehmen und ihn in den Arbeitsspeicher zu schieben (und davor setzt er einen Jump-Befehl).
Dieses Verfahren wird sicherlich das Herstellen von Cartridges verteuern, und außerdem muss man sicherstellen, dass man den Inhalt dieses Chips nicht sofort auslesbar ist. ;)