الدليل الشامل والمرجع الكامل لأداة chdman

تُعد أداة chdman (مدير ملفات Compressed Hunks of Data) الأداة الأقوى لإنشاء، تحويل، فحص سلامة، واستخراج البيانات من صور الوسائط بصيغة CHD. في هذا المقال التفصيلي، سنستعرض كل ما يخص هذه الأداة من أوامر، خيارات، خوارزميات ضغط، بالإضافة إلى شرح عملي لطريقة ومتى نستخدمها.

الاستخدام الأساسي للأداة يكون بالصيغة التالية:
chdman <command> <option>...

كيف تحصل على الأداة وتجهزها للعمل؟ (للمبتدئين)

قد يتساءل البعض من أين نحصل على أداة chdman؟ الحقيقة أنها لا تأتي كبرنامج مستقل ذو واجهة رسومية، بل هي أداة مدمجة ضمن مشروع محاكي MAME الشهير. لكي تستخدمها، اتبع الخطوات التالية:

  • قم بتحميل النسخة الرسمية من محاكي MAME من الموقع الرسمي.
  • قم بفك ضغط الملف الذي قمت بتحميله في مجلد جديد على جهازك.
  • ابحث داخل هذا المجلد عن ملف تطبيقي باسم chdman.exe. هذا هو الملف الذي سنستخدمه.
  • للسهولة، قم بنسخ هذا الملف (chdman.exe) وضعه داخل المجلد الذي يحتوي على ألعابك المراد ضغطها (ملفات bin و cue).
تلميح هام: للبدء بكتابة الأوامر، اذهب إلى المجلد الذي يحتوي على الأداة والألعاب، واكتب cmd في شريط مسار المجلد (Address Bar) بالأعلى واضغط Enter. ستفتح لك الشاشة السوداء جاهزة لتلقي الأوامر!

متى ولماذا نستخدم أداة chdman؟

استخدام هذه الأداة يوفر لك حلولاً سحرية في الحالات التالية:

  • تقليص مساحة الألعاب: ضغط ألعاب الأقراص (PS1, PS2, Saturn, Dreamcast) بنسبة تصل إلى 50% دون فقدان الجودة (Lossless).
  • دمج الملفات المتعددة: تحويل الألعاب التي تتكون من عشرات ملفات .BIN ومسارات صوتية إلى ملف واحد فقط .CHD لتسهيل ترتيبها.
  • دعم المحاكيات: معظم المحاكيات القوية (مثل DuckStation, PCSX2) تدعم تشغيل ملفات CHD مباشرة.
  • حفظ الأقراص الصلبة القديمة: أخذ نسخ احتياطية مضغوطة من الأقراص الصلبة (Hard Disks) لأجهزة الأركيد والحواسيب القديمة لحمايتها من التلف.

أمثلة عملية للاستخدام (عبر موجّه الأوامر CMD):

لتحويل لعبة CD من صيغة BIN/CUE إلى CHD:

chdman createcd -i "game.cue" -o "game.chd"

لفك ضغط لعبة CHD وإعادتها لأصلها:

chdman extractcd -i "game.chd" -o "game.cue"

حيلة للمحترفين: تحويل مكتبة ألعاب كاملة دفعة واحدة (Batch)

إذا كان لديك مجلد يحتوي على 50 أو 100 لعبة (كل لعبة تتكون من ملف Cue وعدة ملفات Bin)، فمن المرهق كتابة الأمر لكل لعبة على حدة! يمكنك استخدام "سكربت" يقوم بتحويل كل الألعاب تلقائياً.

كل ما عليك فعله هو فتح ملف نصي جديد (Notepad)، ولصق الكود التالي فيه، ثم حفظه باسم CUE_to_CHD.bat في نفس المجلد الذي يحتوي على الألعاب وأداة chdman.exe:

for /r %%i in (*.cue) do chdman createcd -i "%%i" -o "%%~ni.chd"

بمجرد النقر المزدوج على هذا الملف (السكربت)، سيقوم بالبحث عن كل ملفات CUE ويحولها تلقائياً واحداً تلو الآخر لتصبح ملفات CHD نظيفة ومضغوطة.

الخيارات الشائعة (Common Options)

تعتمد الخيارات المتاحة على الأمر المستخدم، ولكن الخيارات التالية تُستخدم في معظم الأوامر:

  • --input <file> / -i <file>: تحديد ملف الإدخال (مطلوب لمعظم الأوامر).
  • --inputparent <chdfile> / -ip <chdfile>: تحديد ملف CHD الأب لملف الإدخال (يُستخدم مع ملفات delta CHD التي تخزن الفروقات فقط).
  • --inputstartbyte <offset> / -isb <offset>: تحديد نقطة البداية (الإزاحة) للبيانات بالبايت. مفيد لتجاوز ترويسة الملف (Header). (لا يُستخدم مع -ish).
  • --inputstarthunk <offset> / -ish <offset>: تحديد نقطة البداية للبيانات بوحدة الـ hunks. (لا يُستخدم مع -isb).
  • --inputbytes <length> / -ib <length>: تحديد كمية البيانات المدخلة المراد استخدامها بالبايت. (لا يُستخدم مع -ih).
  • --inputhunks <length> / -ih <length>: تحديد كمية البيانات المدخلة المراد استخدامها بالـ hunks. (لا يُستخدم مع -ib).
  • --output <file> / -o <file>: تحديد اسم ملف الإخراج (مطلوب للأوامر التي تُنتج ملفات).
  • --outputparent <chdfile> / -op <chdfile>: تحديد ملف CHD الأب لملف الإخراج لإنتاج ملف (delta CHD).
  • --compression none|<type>[,<type>]... / -c: لتحديد خوارزميات الضغط. ضع none للإلغاء، أو حدد حتى 4 خوارزميات مفصولة بفاصلة. (يجب إلغاء الضغط لإنشاء صور وسائط قابلة للكتابة).
  • --hunksize <bytes> / -hs <bytes>: تحديد حجم الـ hunk بالبايت. يجب أن يكون بين 16 بايت و 1048576 بايت (1 MiB)، ومن مضاعفات حجم القطاع. الأحجام الأكبر تعطي ضغطاً أفضل ولكنها تقلل الأداء في القراءات العشوائية الصغيرة.
  • --force / -f: الكتابة فوق ملفات الإخراج إذا كانت موجودة مسبقاً.
  • --verbose / -v: تفعيل المخرجات التفصيلية وطباعة معلومات دقيقة.
  • --numprocessors <count> / -np <count>: لتحديد الحد الأقصى لمسارات المعالج (Threads) المستخدمة في ضغط البيانات.

الأوامر الكاملة (Commands) وتفاصيلها

1. أوامر المعلومات والفحص:

  • info: عرض معلومات عن الملف (إصدار، خوارزميات، حجم، عدد hunks، وبصمات SHA1). الخيارات المدعومة: -i (مطلوب)، -v.
  • verify: للتحقق من سلامة ملف CHD للقراءة فقط. الخيارات: -i (مطلوب)، -ip، وخيار إضافي --fix / -f لإصلاح الملف.

2. أوامر الإنشاء (Create Commands):

  • createraw: إنشاء CHD من صورة وسائط خام. يدعم كل الخيارات الشائعة للإنشاء. خيار إضافي: --unitsize / -us (مطلوب): حجم الوحدة بالبايت. الافتراضيات: إذا لم يتم تحديد -hs فسيكون الأقرب لمضاعفات حجم الوحدة تحت 4 KiB، وإذا لم يُحدد -c سيكون lzma,zlib,huff,flac.
  • createhd: إنشاء صورة قرص صلب (Hard Disk). يدعم الخيارات الشائعة. خيارات إضافية: --sectorsize / -ss، --size / -s، --chs، و --template / -tp. إذا لم يُرفق ملف إدخال، فسيصنع قرصاً فارغاً (zero-filled). الافتراضيات مشابهة لـ createraw.
  • createcd: إنشاء صورة قرص مدمج CD-ROM. الخيارات المطلوبة (-i, -o). الافتراضيات: حجم الـ hunk هو 8 قطاعات (18,816 بايت)، وخوارزميات الضغط هي cdlz,cdzl,cdfl.
  • createdvd: إنشاء صورة DVD-ROM. الخيارات المطلوبة (-i, -o). الافتراضيات: حجم الـ hunk هو قطاعين (4096 بايت)، والضغط lzma,zlib,huff,flac.
  • createld: إنشاء صورة LaserDisc. الخيارات المطلوبة (-i, -o). يدعم خيارات إضافية: --inputstartframe / -isf و --inputframes / -if. الضغط الافتراضي avhu.

3. أوامر الاستخراج (Extract Commands):

  • extractraw / extracthd / extractdvd: لاستخراج البيانات الخام، بيانات الأقراص الصلبة، وبيانات الـ DVD. تدعم تحديد المدخل والمخرج ونقاط البداية -isb, -ish وكمية البيانات -ib, -ih و -f.
  • extractcd: استخراج بيانات CD-ROM. تدعم (-i, -ip, -o, -f). خيارات إضافية: --outputbin / -ob و --splitbin / -sb.
  • extractld: استخراج بيانات LaserDisc. تدعم خيارات الاستخراج العامة بالإضافة لـ -isf و -if لتحديد الإطارات.

4. أوامر البيانات الوصفية (Metadata Commands):

  • addmeta: لإضافة عنصر بيانات وصفية لملف (يُعدل الملف). الخيارات: -i، و --tag / -t (مطلوب)، --index / -ix، --valuetext / -vt، --valuefile / -vf، --nochecksum / -nocs.
  • delmeta: لحذف عنصر بيانات وصفية. الخيارات: -i (مطلوب)، -t (مطلوب)، -ix.
  • dumpmeta: لاستخراج البيانات الوصفية وطباعتها أو حفظها في ملف. الخيارات: -i (مطلوب)، -o، -f، -t (مطلوب)، -ix.
  • listtemplates: لعرض قوالب الأقراص الصلبة المتاحة. هذا الأمر لا يأخذ أي خيارات إضافية.

خوارزميات الضغط المدعومة (Compression Algorithms)

هذه هي القائمة الكاملة لجميع خوارزميات الضغط التي تدعمها الأداة وكيف تعمل:

الرمز اسم الخوارزمية والشرح التفصيلي
zlib zlib deflate: تضغط البيانات باستخدام خوارزمية deflate القياسية.
zstd Zstandard: خوارزمية تعطي أداءً ممتازاً جداً في سرعة الضغط وفك الضغط ونسب ضغط أفضل من zlib، ولكن قد لا تدعمها البرامج والمحاكيات القديمة.
lzma Lempel-Ziv-Markov chain: تعطي نسب ضغط عالية جداً لتصغير الحجم، ولكن على حساب الأداء (بطيئة في الضغط وفك الضغط).
huff Huffman coding: تضغط البيانات باستخدام ترميز إنتروبي هوفمان 8-بت.
flac Free Lossless Audio Codec: مخصصة لضغط مسارات الصوت كقناتين (ستيريو) 16-bit 44.1 kHz PCM. تعطي نسبة ضغط ممتازة إذا كانت الوسائط تحتوي على صوتيات.
cdzl zlib deflate for CD-ROM: تقوم بضغط بيانات الصوت وبيانات القنوات الفرعية (subchannel) لأقراص الـ CD بشكل منفصل باستخدام خوارزمية zlib.
cdzs Zstandard for CD-ROM: مثل السابقة ولكن باستخدام خوارزمية Zstandard الأسرع. (نفس ملاحظة التوافقية للبرامج القديمة).
cdlz LZMA / zlib for CD-ROM: تدمج بين خوارزميتين للـ CD: تستخدم LZMA القوية للصوت، و zlib للـ subchannel. ضغط عالي جداً ببطء في الأداء.
cdfl FLAC / zlib for CD-ROM: تدمج بين FLAC لبيانات الصوت، و zlib لبيانات الـ subchannel. خيار مثالي لمسارات الأقراص المدمجة الصوتية.
avhu Huffman coding for A/V: خوارزمية متخصصة فقط للبيانات السمعية والبصرية، ويجب استخدامها حصراً مع صور أقراص الـ LaserDisc.

أخطاء شائعة وكيفية حلها (Troubleshooting)

إذا واجهتك رسائل خطأ باللون الأحمر أثناء عملية التحويل، فهذه أشهر الأسباب وحلولها:

  • الخطأ: Cannot open file...: هذا يعني أن أداة chdman لا تستطيع العثور على ملفات اللعبة. تأكد أن أداة (chdman.exe) موجودة في نفس المجلد الذي يحتوي على ملفات اللعبة، وتأكد أنك كتبت اسم الملف بصيغة صحيحة داخل موجّه الأوامر.
  • الخطأ: Error parsing CUE file: يحدث هذا عندما يكون ملف CUE تالفاً أو أن الأسماء بداخله لا تتطابق مع أسماء ملفات البن (BIN) الفعلية. الحل: افتح ملف الـ CUE ببرنامج "المفكرة" (Notepad) وتأكد أن السطر الأول FILE "اسم اللعبة.bin" يطابق تماماً اسم ملف الـ BIN الموجود في المجلد لديك.

هذا الدليل يغطي كل تفصيلة في وثائق أداة chdman الرسمية، نرجو أن يكون مرجعاً شاملاً لك في إدارة ملفات ألعابك ومحاكياتك. اترك تعليقاً إذا كان لديك أي استفسار أو واجهتك أي مشكلة!