Τόμοι · bei.pm
Τα φορμά αρχείων που περιγράφονται σε αυτή τη σελίδα βασίζονται στην τεχνική ανάλυση πνευματικής ιδιοκτησίας της 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) | Σημαίες; | Φαίνεται ότι παρέχονται πρόσθετες πληροφορίες σχετικά με την κωδικοποίηση αρχείων.
|
Όγκος Μπλόκ
Διεύθυνση | 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) | Σημαίες |
Ένας όγκος-μπλοκ είναι ένα δοχείο που περιέχει αρχεία. Περιλαμβάνει μόνο ξανά - λόγω της μορφής μπλοκ - επικαλύπτει το μέγεθος του αρχείου και αμέσως μετά ακολουθούν άμεσα τα δεδομένα χρήσης.