Τόμοι · bei.pm

Δημοσιεύθηκε στις 19/11/2015·Ενημερώθηκε στις 13/02/2025·Ελληνικά
Αυτό το κείμενο μεταφράστηκε αυτόματα μέσω του OpenAI GPT-4o Mini

Τα φορμά αρχείων που περιγράφονται σε αυτή τη σελίδα βασίζονται στην τεχνική ανάλυση πνευματικής ιδιοκτησίας της Dynamix, Inc. και της Sierra Entertainment.
Η πνευματική ιδιοκτησία ανήκει σήμερα στο σύνολο της Activision Publishing, Inc. / Activision Blizzard, Inc. και είναι αυτή τη στιγμή στην κατοχή της Microsoft Corp..

Οι πληροφορίες συγκεντρώθηκαν μέσω Αντίστροφης Μηχανικής και Ανάλυσης Δεδομένων για σκοπούς αρχειοθέτησης και διαλειτουργικότητας με ιστορικά δεδομένα.
Δεν χρησιμοποιήθηκαν ιδιοσκευές ή εμπιστευτικές προδιαγραφές.

Το παιχνίδι μπορεί να αγοραστεί αυτή τη στιγμή ως λήψη από το gog.com.

Τα volumes είναι ένα δοχείο δεδομένων για το παιχνίδι, παρόμοιο με ένα αρχείο αρχειοθέτησης όπως το Tarball. τουλάχιστον στο Outpost 2, η μορφή αυτή περιλαμβάνει μόνο αρχεία - όχι φακέλους. Πιθανώς θα μπορούσαν να προσομοιωθούν αυτοί μέσω κατάλληλων ονομάτων αρχείων.

Ένα volume αποτελείται από την κεφαλίδα του volume καθώς και από πολλαπλά blocks volume, που αντιστοιχούν στα συγκεκριμένα αρχεία.

"Volumes" είναι τα αρχεία με την κατάληξη 'vol' στον φάκελο του παιχνιδιού.

Διεύθυνση x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF χαρ.
0x0000 56 4f 4c 20 -- -- -- -- -- -- -- -- -- -- -- -- V O L . . . . . . . . . . . .
Απόκλιση Τύπος Δεδομένων Ονομασία Εξήγηση
0x0000 uint(32) Μαγικά Μπάιτς
0x0004 uint(24) Μήκος μπλοκ
0x0007 uint(8) Σημαίες

Επικεφαλίδα Όγκου

Διεύθυνση x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF χαρ.
0x0000 76 6f 6c 68 -- -- -- -- -- -- -- -- -- -- -- -- v o l h . . . . . . . . . . . .
Απόκλιση Τύπος Δεδομένων Ονομασία Εξήγηση
0x0000 uint(32) Μαγικά Μπάιτς
0x0004 uint(24) Μήκος μπλοκ
0x0007 uint(8) Σημαίες

Η κεφαλίδα όγκου δεν περιέχει καμία χρήσιμη δεδομένα.
Απλώς χρησιμεύει ως κοντέινερ.

Ως πρώτη ημερομηνία στην κεφαλίδα όγκου θα πρέπει να βρίσκονται οι συμβολοσειρές όγκου; ακολουθούν οι πληροφορίες όγκου.

Σχοινιά Όγκου

Διεύθυνση x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF χαρ.
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Απόκλιση Τύπος Δεδομένων Ονομασία Εξήγηση
0x0000 uint(32) Μαγικά Μπάιτς
0x0004 uint(24) Μήκος μπλοκ
0x0007 uint(8) Σημαίες
Διεύθυνση x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF χαρ.
0x0000 76 6f 6c 73 -- -- -- -- -- -- -- -- -- -- -- -- v o l s . . . . . . . . . . . .
Απόκλιση Τύπος Δεδομένων Ονομασία Εξήγηση
0x0000 uint(32) Μαγικά Μπάιτς
0x0004 uint(24) Μήκος μπλοκ
0x0007 uint(8) Σημαίες
0x0008 uint(32) Μήκος Payload

Δηλώνει πόσα Bytes από τα παρακάτω δεδομένα είναι πραγματικά χρήσιμα δεδομένα.

Τα υπόλοιπα δεδομένα της λίστας Volume-Strings φαίνεται ότι πρέπει να θεωρούνται σκουπίδια.

Σε αρχεία με μεταγενέστερη ημερομηνία, αυτά τα 'υπόλοιπα δεδομένα' είναι 0x00, κάτι που θα μπορούσε να υποδηλώνει αδυναμίες με την εργαλειακή αλυσίδα κατά την ανάπτυξη του παιχνιδιού, δηλαδή ότι ένας προγραμματιστής ασχολήθηκε με τη σωστή αρχικοποίηση των buffer πολύ αργά, αφού δεν έχει αντίκτυπο στο παιχνίδι αν τα δεδομένα είναι αρχικοποιημένα ή όχι.

0x000c uint(8)[] Λίστα ονομάτων αρχείων

Πρόκειται για μια λίστα ονομάτων αρχείων τερματισμένη με 0-byte, η οποία - τουλάχιστον στο παρόν τμήμα δεδομένων - αναμένει μόνο χαρακτήρες ASCII.

Δεν είναι απαραίτητο να αναλύσουμε αυτό το μπλοκ δεδομένων λεπτομερώς κατά την επεξεργασία των δεδομένων, καθώς στις πληροφορίες του τόμου αναφέρονται απευθείας οι offset των ονομάτων αρχείων.

Οι Volume Strings είναι μια λίστα από ονόματα αρχείων που περιέχονται μέσα στο volume.

Πληροφορίες Όγκου

Διεύθυνση x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF χαρ.
0x0000 76 6f 6c 69 -- -- -- -- -- -- -- -- -- -- -- -- v o l i . . . . . . . . . . . .
Απόκλιση Τύπος Δεδομένων Ονομασία Εξήγηση
0x0000 uint(32) Μαγικά Μπάιτς
0x0004 uint(24) Μήκος μπλοκ
0x0007 uint(8) Σημαίες

Οι πληροφορίες όγκου περιλαμβάνουν λεπτομερείς πληροφορίες για τα αρχεία. Αυτές είναι σε κάποιο βαθμό μια μορφή καταχώρισης στον κατάλογο FAT (FAT = Πίνακας Κατανομής Αρχείων).

Ο αριθμός των αρχείων προκύπτει από το μέγεθος του μπλοκ διαιρεμένο με το μήκος των καταχωρίσεων του καταλόγου - 14 byte.

Οι μεμονωμένες καταχωρίσεις του καταλόγου έχουν την εξής δομή:

Διεύθυνση x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF χαρ.
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Απόκλιση Τύπος Δεδομένων Ονομασία Εξήγηση
0x0000 uint(32) Αποστάθμιση ονόματος αρχείου

Καθορίζει σε ποια θέση (!) μέσα στη λίστα ονομάτων αρχείων (Volume-Strings) βρίσκεται το όνομα του αρχείου.

Αναφέρεται στην αρχή του μπλοκ χρήσιμων δεδομένων.

0x0004 uint(32) Απόσταση αρχείου

Δηλώνει σε ποιο offset μέσα στο συνολικό αρχείο όγκου βρίσκεται το αρχείο.

0x0008 uint(32) Μέγεθος αρχείου

Δηλώνει πόσο μεγάλη είναι η αρχή σε byte.

0x000c uint(16) Σημαίες;

Φαίνεται ότι παρέχονται πρόσθετες πληροφορίες σχετικά με την κωδικοποίηση αρχείων.

  • 0x03 είναι ενεργοποιημένο όταν το αρχείο είναι συμπιεσμένο. Εδώ φαίνεται ότι χρησιμοποιείται ένα δέντρο Huffman.
  • 0x80 φαίνεται ότι είναι πάντα ενεργοποιημένο.

Όγκος Μπλόκ

Διεύθυνση x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF χαρ.
0x0000 56 42 4c 48 -- -- -- -- -- -- -- -- -- -- -- -- V B L H . . . . . . . . . . . .
Απόκλιση Τύπος Δεδομένων Ονομασία Εξήγηση
0x0000 uint(32) Μαγικά Μπάιτς
0x0004 uint(24) Μήκος μπλοκ
0x0007 uint(8) Σημαίες

Ένας όγκος-μπλοκ είναι ένα δοχείο που περιέχει αρχεία. Περιλαμβάνει μόνο ξανά - λόγω της μορφής μπλοκ - επικαλύπτει το μέγεθος του αρχείου και αμέσως μετά ακολουθούν άμεσα τα δεδομένα χρήσης.