Untuk sebuah proyek, saya perlu bekerja dengan berbagai jenis file dari beberapa game lama dan perangkat lunak terkait - file konfigurasi, penyimpanan, arsip sumber daya, dan sebagainya. Sebagian besar dari ini belum didokumentasikan, juga tidak ada alat untuk bekerja dengannya, jadi saya harus merekayasa balik format dan membangun perpustakaan saya sendiri untuk menanganinya.
Meskipun saya tidak mengira ada permintaan besar untuk sebagian besar, saya bermaksud untuk mempublikasikan hasil dari upaya saya. Apakah ada standar yang diterima untuk mendokumentasikan format file? Melihat sekeliling, ada beberapa gaya yang digunakan: beberapa, seperti Spesifikasi Format File ZIP , sangat bertele-tele; yang lain, seperti yang ada di XentaxWiki, jauh lebih singkat - saya menemukan beberapa di antaranya sulit dibaca; yang paling saya sukai adalah deskripsi Sistem File Kartu Memori PlayStation 2 ini , yang mencakup teks deskriptif terperinci dan beberapa 'peta memori' dengan offset dan semacamnya - ini juga sangat cocok dengan kasus penggunaan saya. Ini akan sedikit berbeda untuk format yang berbeda, tetapi tampaknya harus ada beberapa prinsip umum yang harus saya coba ikuti.
Sunting: Saya sepertinya tidak menjelaskan dengan baik apa yang ingin saya lakukan. Biarkan saya membuat contoh.
Saya mungkin memiliki beberapa perangkat lunak lama yang menyimpan konfigurasinya dalam file 'biner' - serangkaian bitfield, integer, string, dan yang lainnya semuanya direkatkan dan dipahami oleh program, tetapi tidak dapat dibaca oleh manusia. Saya menguraikan ini. Saya ingin mendokumentasikan dengan tepat apa format file ini, dengan cara yang dapat dibaca manusia, sebagai spesifikasi untuk mengimplementasikan pustaka untuk mengurai dan memodifikasi file ini. Selain itu, saya ingin ini mudah dimengerti oleh orang lain.
Ada beberapa cara dokumen semacam itu dapat ditulis. Contoh PKZIP di atas sangat bertele-tele dan sebagian besar menggambarkan format file dalam teks bebas. Contoh PS2 memberikan tabel tipe nilai, offset, dan ukuran, dengan komentar luas tentang apa arti semua itu. Banyak yang lain, seperti yang ada di XentaxWiki, hanya mencantumkan jenis dan ukuran variabel, dengan sedikit atau tanpa komentar.
Saya bertanya apakah ada standar, seperti panduan gaya pengkodean, yang memberikan panduan tentang cara menulis dokumentasi semacam ini. Jika tidak, adakah contoh bagus dan terkenal yang harus saya tiru? Jika tidak, adakah yang bisa merangkum beberapa saran bermanfaat?
sumber
struct
. Itu bekerja dengan cukup baik.Jawaban:
File biner hanyalah urutan bit yang disusun menjadi unit logis sesuai dengan aturan tertentu . Aturan-aturan ini biasanya disebut tata bahasa . Tata bahasa dapat diklasifikasikan ke dalam empat jenis ( hierarki Chomsky ), dan untuk tata bahasa bebas konteks Anda harus menggunakan Formulir Extended Backus-Naur sebagaimana ditunjukkan oleh Matt Fenwick dalam komentarnya. Interpretasi (atau semantik) dari urutan yang disimpan dalam file dapat dijelaskan secara verbal atau dengan program sampel yang dianotasi dengan baik serialisasi dan deserialisasi informasi.
Untuk mengetahui lebih banyak tentang mendokumentasikan format file biner, sarankan membaca misalnya standar ASN.1 .
sumber
Itu aneh karena pencarian cepat format file memunculkan artikel Wikipedia (Daftar format file) . Ini juga mencakup beberapa format Data Video Game .
Ini juga termasuk banyak pilihan format Media Penyimpanan Game Video .
Tidak ada standar "resmi" di mana pun. Karena format file dibuat oleh perusahaan, perusahaan memutuskan format untuk dokumentasi.
sumber