
Zitat von
Linulo
Im Gegenzug schreibe ich gerne ein Tutorial, das das endlich mal gescheit erklärt.
So, ich halte nun mein Wort. Hier die vorläufige Version des FAQs zur geschätzten Begutachtung:
-----------------------------------------------------------
Was sind DAT-Files?
DAT-Files sind Textdateien, die Informationen über ROM-Sets enthalten.
Was sind ROM-Sets?
ROM-Sets sind ZIP-Archive von ROMs, die die Daten enthalten, die für ein Spiel benötigt werden.
Was sind ROMs?
ROMs sind Dateien, die aus einem Chip auf einem Original-PCB ausgelesenen Daten enthalten.
Was sind PCBs?
PCB ist eine Abkürzung für „Printed Circuit Board“, was auf deutsch „Platine“ bedeutet. In Spielautomaten befand sich früher keine universelle Hardware (wie z.B. ein PC), sondern eine Platine, mit der genau ein Spiel umgesetzt wurde.
Was genau steht in DAT-Files?
Es gibt verschiedene Arten von DAT-Files, die unterschiedliche Daten beinhalten. Meistens versteht man unter DAT-File aber eine Datei mit Informationen zu genau der Menge von ROM-Sets, die ein bestimmter Emulator emulieren kann. So gibt es beispielsweise ein DAT-File für MAME 0.122. Darin sind die Namen der von MAME 0.122 emulierten ROM-Sets enthalten, die Größen und Checksummen aller darin enthaltenen ROMs sowie Zusatzinformationen zu den ROM-Sets. Hier ein Beispiel:
game (
name drmario
description "Vs. Dr. Mario"
year 1990
manufacturer "Nintendo"
sourcefile vsnes.c
rom ( name dm-uiprg size 65536 crc d5d7eac4 sha1 cd74c3a7a2fc7c25420037ae5f4a25307aff6587 )
rom ( name dm-u3chr size 32768 crc 91871aa5 sha1 32a4299ead7b37f49877dc9597653b07a73ddbf3 )
)
Was ist eine Checksumme?
Eine Checksumme ist eine Zahl, die aus einer Datei berechnet wird. Dieselbe Datei hat immer dieselbe Checksumme, verschiedene Dateien können dieselbe Checksumme haben, aber das ist extrem selten. Wenn zwei Dateien dieselbe Checksumme haben, kann man mit einiger Sicherheit davon ausgehen, dass ihr Inhalt identisch ist. Das ist praktisch, wenn man beispielsweise von einer Datei wissen will, ob sie mit einer anderen Datei übereinstimmt. Anstatt den gesamten Inhalt mit jeder in Frage kommenden Datei zu vergleichen genügt es, Checksummen zu vergleichen. So kann man beispielsweise herausfinden, ob eine Datei richtige Daten enthält, aber einen falschen Namen trägt. Daher kommt das „Check“ in dem Wort „Checksumme“.
In DAT-Files werden drei verschiedene Arten von Checksummen verwendet: CRC32, SHA1 und MD5. Für ROMs werden CRC32-Checksummen verwendet oder CRC32 und SHA1 zusammen, um die Chance für Verwechslungen weiter zu verringern. MD5-Checksummen werden nur für Festplatten-Images (CHD) verwendet. CRC32-Checksummen nennt man oft auch einfach „crc“.
Wozu sind DAT-Files gut?
DAT-Files können bei der Verwaltung von Set-Sammlungen helfen, allerdings nur in Verbindung mit entsprechender Software, wie z.B. ClrMamePro.
Was genau kann ich mit ClrMamePro machen?
ClrMamePro kann eine ganze Reihe von Aktionen ausführen, die dafür sorgen, eine möglichst vollständige Sammlung von ROM-Sets zu bekommen, die mit dem Emulator funktionieren.
Es kann (unter anderem):
- Sets genau so erzeugen wie im DAT-File vorgegeben, indem es vorhandene Sets untersucht, gegebenenfalls ROMs umbenennt und neu zusammenstellt.
- Aus unterschiedlichen Versionen desselben ROMs diejenigen herausfinden, die mit dem jeweiligen Emulator funktionieren.
- Die merge-/split-Anordnung von Sets verändern.
Was bedeutet „parent“, „clone“, „merge“ und „split“?
Diese Begriffe haben alle mit demselben Umstand zu tun: Einige Sets haben Überschneidungen von ROMs. Es wäre Platzverschwendung diese mehrfach verwendeten ROMs alle in jedem Set zu speichern, das das entsprechende ROM benötigt. Eine Lösung besteht darin, ein Set zum „parent“ und die Sets mit Überschneidungen zu „clones“ dieses parents zu erklären. Das parent enthält wie jedes normale Set alle benötigten ROMs, die clones aber haben statt der schon im parent vorhandenen ROMs nur einen Verweis auf das parent. Das spart Platz, da die Datei nicht zweimal gespeichert werden muss. Diese Einstellung nennt sich „split“ (engl. „aufteilen“) und ist die verbreitetste und empfohlene Methode.
Es gibt noch eine weitere Methode: Dabei werden alle ROMs aller Sets, die untereinander ROM-Überschneidungen haben, in ein Set gepackt. Auch hier müssen in verschiedenen Sets benötigte ROMs nicht mehrmals gespeichert werden, es ist aber schwerer, Set-Sammlungen umzubauen oder clones zu löschen, weil dazu das entsprechende Set ausgepackt werden muss. Diese Einstellung nennt sich „merge“ (engl. „vereinigen“).
Ich habe eine vollständige Sammlung von ROM-Sets für meinen Emulator. Wozu brauche ich ClrMamePro?
Höchstwahrscheinlich gar nicht.
Warum muss ich bei ClrMamePro den Speicherort von meinem MAME angeben? Was hat MAME mit DAT-Files zu tun?
MAME emuliert nicht alle Spiele, die es gibt, und von denen, die MAME emuliert, emuliert MAME nicht alle Versionen. Eine Liste mit den Spielen und Spielversionen, die eine bestimmte MAME-Version emulieren kann, ist fest einprogrammiert. Würde MAME einfach unbekannte ROMs ausführen, würde MAME höchstwahrscheinlich sofort abstürzen, deshalb muss eine solche Überprüfung eingebaut sein.
MAME kann dazu gebracht werden, diese Informationen auszugeben, und zwar in einer Form, die ClrMamePro verwenden kann (Für Experten: Kommandozeilenparameter „-listxml“). ClrMamePro kann also auch ohne DAT-File von der jeweiligen MAME-Version erfahren, welche ROMs unterstützt werden.