Ich erstelle Sicherungskopien von alten Videospielen mit CloneCD 5.3.3.0 auf meinem Windows 10 x 64-Computer mit einem Samsung SH-S223L-Laufwerk.
Eines davon ist Hellfire für PC (Erweiterung Diablo 1):
- Die CD hat ein
COMPACT disc DATA STORAGE
Logo - Ordnungsnummer:
S0011770
- Fabrik SID-Code:
IFPI 1218
- CD-Master SID-Code:
IFPI L032
- Erstellungsdatum der ISO 9660 PVD:
1997-11-18 16:30:00.00
Ich verwende die CloneCD- Profilempfehlung von redump.org :
[CloneCD ReadPrefs]
ReadSubData=1
RegenerateData=0
ReadSubAudio=1
AbortOnReadError=0
FastErrorSkip=0
ReadSpeedData=8
ReadSpeedAudio=8
IntelligentBadSectorScan=1
SectorSkip=1
NoErrorReport=0
FirstSessionOnly=0
AudioQuality=3
Soweit ich weiß, hat das Spiel keinen Schutz, aber wenn ich die CD zweimal abspeichere, erhalte ich unterschiedliche Unterkanaldateien ( .sub
). Die .ccd
und .img
-Dateien sind identisch, nur die .sub
Unterschiede. Ich habe SHA1-Prüfsummen und einen Hex-Editor verwendet, um dies zu überprüfen.
Ich hochgeladen zwei .sub
Datei - Dumps hier .
Ich muss erwähnen, dass ich zwei Kopien dieser CD besitze und das Verhalten mit beiden CDs identisch ist.
Ich habe auch mehrere andere CD-ROM-Medien ausgegeben, manchmal tritt dieses Verhalten auf, manchmal ist der Unterkanal über die Dumps hinweg konsistent.
Was ist die Erklärung für dieses Verhalten?
Bearbeiten:
Ich habe dieselbe CD-ROM erneut mit einem Lite-On iH124-14-Laufwerk ausgegeben und sehe dasselbe Verhalten (verschiedene .sub
Dateien).
Ich habe das Medium auch mit KProbe 2 auf Fehler überprüft und erhalte das folgende Ergebnis:
Bearbeiten:
Es scheint, dass der Zustand der Disc und / oder die mangelnde Genauigkeit des Laufwerks zu der Tatsache beigetragen haben, dass der Unterkanal keinen Fehlerkontrollmechanismus aufweist (mit Ausnahme von Q-Channel) .sub
.
Ich muss erwähnen, dass ich auch ein Plextor PX-712A-Laufwerk besitze und es .sub
mithilfe von Disc Image Creator geschafft habe, konsistente Dateien über Dumps hinweg zu erhalten . Diese Software verwendet 0xD8
Anweisungen anstelle von 0xBE
Anweisungen zum Lesen der Disc, was zu genaueren Bildern führt. Nur wenige Laufwerke (meist Plextor) unterstützen diese Anweisung.
Außerdem besitze ich tatsächlich zwei physische Kopien dieser CD-ROM, die ich kopiere (dieselbe Seriennummer, dieselben IFPI-Codes und dieselben lasergravierten Informationen). Wenn ich dieselbe CD mehrmals mit Disc Image Creator auslagere, erhalte ich konsistente .sub
Dateien, aber nicht, wenn ich die erste CD und dann die zweite CD auslagere.
Ich denke, es hängt mit den Medienbedingungen zusammen, da einer von ihnen ein paar Kratzer und mehr C1 / C2-Fehler aufweist.
Antworten:
Die verschiedenen CD-Formate sind etwas umständlich, und die offiziellen Spezifikationen ("rotes Buch" für Audio-CD, "gelbes Buch" für Daten-CD) sind nicht frei verfügbar. Einige Details finden Sie in verfügbaren Standards wie Ecma-130.
Die ursprüngliche Audio-CD (auch als CD-DA bezeichnet) wurde der Schallplatte nachempfunden, dh es wird auch eine spiralförmige Spur mit kontinuierlichen Audiodaten verwendet (auf der DVD wurden später kreisförmige Spuren verwendet). In diesen Audiodaten sind auf sehr komplexe Weise 8 Unterkanäle (P bis W) verschachtelt, von denen der Q-Unterkanal Zeitinformationen (buchstäblich in Minuten / Sekunden / Sekundenbruchteilen) und die aktuelle Spurnummer enthält. Für den ursprünglichen Zweck war dies ausreichend: Für kontinuierliches Spielen wurde das Objektiv nur leicht angepasst, um der Spur zu folgen. Zum Suchen bewegte sich das Objektiv, während der Q-Unterkanal decodiert wurde, bis die richtige Spur gefunden wurde. Diese Positionierung ist etwas grob, aber völlig ausreichend, um Musik zu hören.
Noch heute können viele Computer-CD-Laufwerke die Linse nicht vollständig genau positionieren und die Decodierschaltung synchronisieren, so dass das Lesen von Audio-Samples an einer genauen Position beginnt. Aus diesem Grund haben viele CD-Ripping-Programme einen "Paranoia" -Modus, in dem sie überlappende Lesevorgänge durchführen und die Ergebnisse vergleichen, um diesen "Jitter" auszugleichen. Als Teil des Audiostreams unterliegt der Unterkanal auch Jitter, und aus diesem Grund erhalten Sie unterschiedliche Unterkanaldateien, wenn Sie auf ein CD-Laufwerk rippen, das nicht genau positioniert werden kann.
Als die Daten-CD-Spezifikation (CD-ROM) entwickelt wurde, um die CD-DA-Spezifikation zu erweitern, wurde die Wichtigkeit erkannt, Daten genau zu adressieren und zu lesen, so dass der Audiorahmen von 2352 Byte in 12 Sync-Bytes und 4 Header-Bytes (z die Sektoradresse), wobei die verbleibenden 2336 Bytes für Daten und eine zusätzliche Fehlerkorrekturstufe verbleiben. Mit diesem Schema können Sektoren exakt adressiert werden, ohne sich nur auf die Q-Kanal-Informationen verlassen zu müssen. Daher tritt der Jitter-Effekt nicht auf, Sie erhalten immer die gleichen Daten, wenn Sie eine CD-ROM sichern, und es ist keine zusätzliche Cleverness beim Sichern erforderlich.
Bearbeiten Sie mit mehr Details:
Laut Ecma-130 werden die Daten stufenweise verschlüsselt: 24 Bytes bilden einen F1-Frame , die Bytes von 106 dieser Frames werden auf 106 F2-Frames verteilt , die 8 zusätzliche Bytes an Fehlerkorrektur erhalten. Diese Rahmen wiederum erhalten jeweils ein zusätzliches Byte ("Steuerbyte"), um sie zu F3-Rahmen zu machen . Das zusätzliche Byte enthält die Unterkanalinformationen (ein Unterkanal für jede Bitposition). Eine Gruppe von 98 F3-Frames wird als Abschnitt bezeichnet , und die 98 zugeordneten Steuerbytes enthalten zwei Synchronisationsbytes und 96 Bytes echte Unterkanaldaten. Der Q-Unterkanal hat zusätzlich 16 Bits CRC-Fehlerkorrektur in diesen 96 Bits.
Die Idee dahinter ist, Daten auf der Oberfläche der Festplatte so zu verteilen, dass Kratzer, Schmutz usw. nicht viele fortlaufende Bits beeinträchtigen. Die Fehlerkorrektur kann also die verlorenen Daten wiederherstellen, solange die Kratzer dies nicht tun zu groß.
Infolgedessen muss die Hardware des CD-Laufwerks nach dem Neupositionieren des Objektivs einen vollständigen Abschnitt lesen, um festzustellen, wo sich das Objektiv im Datenstrom befindet. Die Entwürfelung der verschiedenen Stufen erfolgt durch Hardware, die sich selbst mit den 2 Synchronisationsbytes im Steuerbyte-Datenstrom synchronisieren muss. Alle CD-Laufwerksmodelle benötigen eine andere Synchronisierungszeit als andere Modelle (Sie können dies testen, indem Sie von zwei verschiedenen Laufwerken lesen, sofern vorhanden), je nachdem, wie die Hardware implementiert ist. Außerdem benötigen viele Modelle nicht immer genau dieselbe Zeit für die Synchronisierung, sodass sie etwas früher oder später starten und die entschlüsselten Daten nicht immer auf demselben Byte ausgeben können.
Wenn das Ripping-Programm einen
READ CD
(0xBE) -Befehl ausgibt, liefert es eine Übertragungslänge und eine Startadresse (oder besser gesagt eine Q-Kanal-Zeit). Das Laufwerk positioniert das Objektiv, entwürfelt die Bilder, extrahiert den Q-Kanal, vergleicht die Zeit und beginnt mit der Übertragung, wenn es die richtige Zeit findet. Diese Übertragung beginnt nicht immer mit demselben Byte wie oben beschrieben, sodass das Ergebnis mehrererREAD CD
Befehle gegeneinander verschoben werden kann. Aus diesem Grund sehen Sie unterschiedliche Unterkanaldateien von Ihrem Ripper.Abhängig von der Hardware und den Umständen, unter denen das Objektiv eingestellt wird, ist es mehr oder weniger zufällig, wenn die Übertragung einige Proben zu früh oder einige Proben zu spät beginnt. Das einzige Muster, das Sie in den Ergebnissen sehen werden, ist, dass die Verschiebungen ein Vielfaches der Übertragungslänge sind.
Einige Laufwerksmodelle verfügen tatsächlich über genaue Hardware, die die Übertragung immer zur gleichen Zeit startet. Der Standard definiert ein Bit in der Modus-Seite 0x2a ("CD / DVD-Funktionen und mechanische Status-Seite"), das angibt, ob dies der Fall ist, aber die Praxis zeigt, dass einige Laufwerke, die behaupten, genau zu sein, dies tatsächlich nicht sind. (Unter Linux können Sie
sg_modes
aus demsg3-utiles
Paket die Modusseiten lesen, ich weiß nicht, welches Tool unter Windows verwendet werden soll).quelle
.sub
in meiner Frage einen Download-Link zu Dateien hinzugefügt . Ich habe es mit einem Hex-Editor verglichen und Sie haben Recht, die Daten sind verschoben. Ich kann jedoch kein offensichtliches Muster finden.sg_modes
. Ich habe0x2a
im Abschnitt "MM-Funktionen und mechanischer Status (veraltet)". Ich werde morgen ein neues Liteon-Laufwerk erhalten und erneut testen, ob ich über mehrere Dumps hinweg einen konsistenten Unterkanal erhalte.Laut diesem Wikipedia-Artikel
Dies deutet darauf hin, dass es keine Fehlerkorrektur für den Unterkanal gibt.
Ich habe auch woanders eine andere Frage gefunden . Es geht um Audio-CDs, aber ich denke, es geht um das richtige Problem:
Die Antwort dort:
Während dirkt möglicherweise in einer anderen Antwort auf Ihre Frage richtig ist , dass Sie möglicherweise keine
.sub
Dateien benötigen , geht die Antwort nicht explizit auf Ihre Frage ein:Meine Antwort: Sie erhalten verschiedene
.sub
Dateien, weil Unterkanäle keine Fehlerkorrektur haben. Lesefehler werden beim Lesen von Audio- oder Benutzerdaten korrigiert (oder zumindest erkannt), ein Lesefehler kann jedoch unverändert bleiben, wenn er beim Unterkanalbit auftritt. Bestimmte Fehler aufgrund von Kratzern oder Staub können während einer Lesesitzung auftreten, nicht während einer anderen usw. - daher.sub
Dateien, die unterschiedlich sind.Antwort erweitert, um den Kommentar anzusprechen:
Ich vermute (leider ohne Beweise), dass verschiedene CDs mit unterschiedlicher Qualität hergestellt wurden. In einem Fall, in dem Unterkanäle keine Rolle spielen, besteht die Festplatte mit geringerer Qualität möglicherweise weiterhin Qualitätstests, die nur darauf ausgelegt sind, Dateninkonsistenzen zu erkennen. Oder es kann einfach eine Wahrscheinlichkeitsfrage sein: Eine Platte hat ihre Schwachstelle (n) (ein Bit, das inkonsistente Messwerte liefert), an der die Fehlerkorrektur Abhilfe schaffen kann. ein anderer hat es zufällig im Unterkanalbereich.
Ein solches Unterkanalbit reicht aus, um Ihnen verschiedene Prüfsummen zu liefern, während sogar Tausende "unentschlossene" Bits im Benutzerdatenbereich stillschweigend korrigiert werden können, wenn sie benötigt werden, wenn sie nur ausreichend verteilt sind, sodass der Fehlerkorrekturalgorithmus nicht zu viele Fehler behandelt. viele von ihnen gleichzeitig.
Antwort erweitert als Reaktion auf KProbe 2-Ergebnisse.
Soweit ich weiß, sind C1-Fehler zulässig (bis zu einem gewissen Grad), da sie stillschweigend korrigiert werden ( mehr hier ). Diese Korrektur funktioniert aufgrund von Fehlerkorrekturbits. Wie ich schon sagte, Subkanäle hat keine solche Redundanz im Allgemeinen ( dirkt erwähnt Korrektur Q-Subkanal CRC - Fehler aber , dass in meinem Abschluss nicht viel ändern). Wenn der Fehler dort auftritt, kann er nicht erkannt werden, es sei denn, Sie wissen im Voraus, wie die korrekten Unterkanaldaten lauten.
Sie hatten also insgesamt 1855 bekannte Fehler. Wiederholen Sie den Test (ernsthaft, machen Sie es!) Und Sie könnten zB 1790 Fehler haben; oder 1892. Die korrigierte Ausgabe ist jedoch bei jedem Lesen dieselbe.
Wenn es ein Unterkanalbit für jeweils 32 Datenbits gibt, dann haben Sie wahrscheinlich etwa 1855/32 Unterkanalbits, die mit einem nicht erkannten Fehler gelesen wurden. Das sind ungefähr 58 Bits. Fast, denn dank Q-Subchannel-CRC können zumindest einige dieser Fehler entdeckt werden. Da Q einer von acht Unterkanälen ist, verbleiben meiner Schätzung nach in anderen Unterkanälen ca. 50 fehlerhafte Bits. Wenn Sie das nächste Mal lesen, erhalten Sie möglicherweise nur wenige dieser Bits ohne Fehler und an anderer Stelle nur wenige neue Unterkanalfehler. Sie erhalten also eine andere
.sub
Datei. Und trotzdem wissen Sie nicht genau, welche dieser Bits beim ersten oder zweiten Mal richtig gelesen wurden.quelle
.sub
über mehrere Dumps hinweg konsistente Dateien haben . Mir ist bewusst, dass ich den Unterkanal nicht brauche, da das Spiel nicht geschützt ist. Ich stelle diese Frage aus technischer Neugier :).