Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

[แก้ไข] ข้อผิดพลาด DirectDraw เมื่อเล่นเกมเก่า (Legacy Games) บน Windows 10

ผู้ใช้ Windows 10 บางส่วนเจอ ข้อผิดพลาด DirectDraw 16385 (หรือรหัสข้อผิดพลาดอื่น) เมื่อพยายามเล่นเกมเก่า (Legacy Games) เช่น Diablo, Diablo II, หรือ Age of Empires บนคอมพิวเตอร์ Windows 10

[แก้ไข] ข้อผิดพลาด DirectDraw เมื่อเล่นเกมเก่า (Legacy Games) บน Windows 10

หลังสืบสวนอย่างละเอียด พบว่ามีสถานการณ์หลายอย่างที่ข้อผิดพลาดนี้จะเกิด นี่คือรายการสาเหตุที่เป็นไปได้ที่อาจกระทบรหัสข้อผิดพลาดนี้:

  • เกมรันในโหมดเต็มหน้าจอ — โปรดทราบว่าสำหรับเกมเก่าหลายตัว ปัญหานี้เกิดในสถานการณ์ที่เกมตั้งค่ารันในโหมดเต็มหน้าจอ อย่างไรก็ตาม ผู้ใช้หลายคนยืนยันว่าปัญหาไม่เกิดหากบังคับให้เกมรันในโหมดหน้าต่าง (windowed mode)
  • เกมไม่เข้ากันกับ Windows 10 — หากเกมไม่ได้พัฒนาเดิมเพื่อรันบน Windows 10 จะมีปัญหาเข้ากันได้หลายอย่างที่อาจก่อให้เกิดรหัสข้อผิดพลาดนี้ โชคดีที่คุณสามารถใช้ Compatibility Mode เพื่อหลีกเลี่ยงปัญหาส่วนใหญ่โดยบังคับให้ executable รันใน Compatibility Mode กับ OS Windows เก่า
  • Direct Play และ .NET Framework 3.5 ถูกปิดใช้งาน — เกมเก่าส่วนใหญ่ที่วางจำหน่ายเมื่อ Windows XP เป็น OS ล่าสุดจาก Microsoft จะต้องการ Direct Play และ .NET 3.5 Framework เพื่อทำงาน แต่เนื่องจากเทคโนโลยีเหล่านี้เลิกสนับสนุนและปิดใช้งานโดยค่าเริ่มต้นบน Windows 10 วิธีเดียวที่จะแก้คือเปิดใช้งานมันใหม่จากหน้าจอ Windows Apps & Features
  • ปัญหาการเรนเดอร์กราฟิก — ปัญหาการเรนเดอร์กราฟิกอาจมีส่วนทำให้เกิดปัญหานี้ หากเกมเก่าไม่รู้จักวิธีใช้เทคโนโลยีใหม่เช่น Direct3D 11 และ Direct3D 12 ในกรณีนี้ คุณสามารถใช้ wrapper เช่น dgVoodoo เพื่อทำให้เกมเข้ากันได้และเรนเดอร์บน Windows 10

ตอนนี้ทราบสาเหตุที่เป็นไปได้ทั้งหมดที่อาจรับผิดชอบต่อการปรากฏของข้อผิดพลาด DirectDraw บน Windows 10 เมื่อพยายามเล่นเกมเก่า นี่คือรายการวิธีการที่ยืนยันแล้วว่าผู้ใช้คนอื่นใช้แก้ไขปัญหานี้สำเร็จ:

วิธีที่ 1: บังคับให้เกมรันในโหมดหน้าต่าง (Window Mode)

ตามผู้ใช้หลายคนที่เจอปัญหา คุณอาจแก้ไขปัญหา DirectDraw นี้ได้โดยแก้ไขหน้าจอ Properties ของ executable ของเกมเก่า เพื่อบังคับให้รันในโหมดหน้าต่าง

แปลกที่ว่าสิ่งนี้ทำให้ข้อกำหนด DirectDraw หายไปสำหรับเกมเก่าหลายตัวรวมถึง Diablo I และ Diablo II คุณสามารถบังคับได้โดยเข้าแท็บ Shortcuts และเพิ่ม '-w' ท้าย Target

หากยังไม่ลองวิธีนี้ ให้ทำตามขั้นตอนด้านล่างเพื่อตั้งค่า Properties ของเกมเก่า ให้รันในโหมดหน้าต่างบังคับ:

  1. ไปที่ตำแหน่งที่ติดตั้งเกมเก่า (หรือคลิกขวาที่ Shortcut ของเกม) และคลิก Properties จากเมนูบริบทที่ปรากฏ[แก้ไข] ข้อผิดพลาด DirectDraw เมื่อเล่นเกมเก่า (Legacy Games) บน Windows 10
  2. ในหน้าจอ Properties ให้คลิกแท็บ Shortcut แล้วเพิ่ม '-w' ท้ายกล่องข้อความ Target และกด Apply เพื่อบังคับให้เกมรันในโหมดหน้าต่าง[แก้ไข] ข้อผิดพลาด DirectDraw เมื่อเล่นเกมเก่า (Legacy Games) บน Windows 10
  3. หลังบันทึกการเปลี่ยนแปลงแล้ว ให้ดับเบิลคลิกเกมตามปกติ และดูว่าคุณเล่นเกมในโหมดหน้าต่างได้โดยไม่เจอข้อผิดพลาดเดิมหรือไม่

หากยังเจอข้อผิดพลาด DirectDraw แม้หลังแก้ไขหน้าจอ Properties ของ executable หลักของเกมเก่าแล้ว ให้ลองวิธีถัดไปด้านล่าง

วิธีที่ 2: รันเกมใน Compatibility Mode

หากวิธีแรกไม่ได้ผลในกรณีของคุณ สิ่งต่อไปที่ควรลองคือ บังคับให้ executable หลักรันใน Compatibility Mode กับ OS เวอร์ชันที่เกมเก่าพัฒนาเดิมเพื่อทำงาน วิธีนี้ยืนยันแล้วว่ามีประสิทธิภาพโดยผู้ใช้ Windows 10 หลายคนที่ไม่สามารถรัน Age of Empire ได้ก่อนหน้านี้

คุณสามารถบังคับให้ executable รันใน Compatibility Mode ได้โดยการรัน Compatibility Troubleshooter และใช้การแก้ไขที่แนะนำ อย่างไรก็ตาม หลังทดสอบฟังก์ชัน Windows 10 นี้ คำแนะนำของเราคือ บังคับการเปลี่ยนแปลงนี้ด้วยตนเองจากหน้าจอ Properties เพื่อให้แน่ใจว่าคุณเลือก Legacy OS ที่ถูกต้อง

หากยังไม่ลองวิธีนี้ ให้ทำตามขั้นตอนด้านล่างเพื่อบังคับให้เกมเก่ารันใน Compatibility Mode:

  1. คลิกขวาที่ executable หลักของเกมเก่า (หรือ Shortcut ของเกมที่คุณใช้เปิดเกม) และเลือก Properties จากเมนูบริบทที่ปรากฏ[แก้ไข] ข้อผิดพลาด DirectDraw เมื่อเล่นเกมเก่า (Legacy Games) บน Windows 10

    หมายเหตุ: หากต้องการลอง Compatibility troubleshooter ก่อน ให้คลิก Troubleshoot Compatibility จากเมนูเดียวกันนี้

  2. ในหน้าจอ Properties ของ Shortcut / Executable ของเกมเก่า ให้คลิกแท็บ Compatibility จากเมนูด้านบน
  3. เมื่ออยู่ในแท็บ Compatibility แล้ว ให้ติ๊กถูกกล่อง Run this program in compatibility mode for แล้วเลือก Windows XP (Service Pack 3) จากตัวเลือกที่มี[แก้ไข] ข้อผิดพลาด DirectDraw เมื่อเล่นเกมเก่า (Legacy Games) บน Windows 10
  4. คลิก Apply เพื่อบันทึกการเปลี่ยนแปลง แล้วเปิดเกม และดูว่าปัญหาแก้ไขแล้วหรือยัง

หากยังเจอ ข้อผิดพลาด DirectDraw 16385 แม้หลังบังคับให้เกมเก่ารันใน Compatibility Mode แล้ว ให้ลองวิธีถัดไปด้านล่าง

วิธีที่ 3: เปิดใช้งาน Direct Play และ .NET 3.5

สาเหตุที่พบบ่อยอีกอย่างที่อาจก่อให้เกิดข้อผิดพลาดนี้คือกรณีที่เกมเก่าที่คุณพยายามรันบนคอมพิวเตอร์ Windows 10 ต้องการ Direct Play และ .NET Framework 3.5 ให้เปิดใช้งาน — เทคโนโลยีเหล่านี้เลิกสนับสนุนแล้วและปิดใช้งานโดยค่าเริ่มต้นบน Windows 10

หากนักพัฒนาเกมต้นทางไม่ได้อัปเดตเกมเพื่อใช้เทคโนโลยีใหม่ที่เทียบเท่า Direct Play และ .NET Framework 3.5 วิธีเดียวที่จะแก้ ข้อผิดพลาด DirectDraw 16385 คือ เปิดใช้งาน 2 คอมโพเนนต์ Legacy นี้ใหม่จากเมนู Windows Features บน Windows 10

วิธีนี้ยืนยันแล้วว่ามีประสิทธิภาพโดยผู้ใช้หลายคนที่เคยเจอปัญหานี้บน Windows 10 นี่คือสิ่งที่คุณต้องทำเพื่อเปิดใช้งาน Direct Play และ .NET Framework 3.5:

  1. กด Windows key + R เพื่อเปิดกล่องโต้ตอบ Run พิมพ์ 'appwiz.cpl' ในกล่องข้อความ และกด Enter เพื่อเปิดเมนู Programs and Features เมื่อถูกพรอมต์โดย UAC (User Account Control) ให้คลิก Yes เพื่อให้สิทธิ์แอดมิน[แก้ไข] ข้อผิดพลาด DirectDraw เมื่อเล่นเกมเก่า (Legacy Games) บน Windows 10
  2. ในหน้าจอ Programs and Features ให้คลิก Turn Windows features on or off จากเมนูแนวตั้งด้านซ้าย[แก้ไข] ข้อผิดพลาด DirectDraw เมื่อเล่นเกมเก่า (Legacy Games) บน Windows 10

    หมายเหตุ: เมื่อถูกพรอมต์โดย UAC (User Account Control) ให้คลิก Yes เพื่อให้สิทธิ์แอดมิน

  3. ในเมนู Windows Features ให้เริ่มด้วยการติ๊กถูกกล่อง .NET Framework 3.5 (includes .NET 2.0 and 3.0) และคลิก Yes ที่หน้าต่างยืนยัน[แก้ไข] ข้อผิดพลาด DirectDraw เมื่อเล่นเกมเก่า (Legacy Games) บน Windows 10
  4. ต่อไป ให้ติ๊กถูกกล่องที่เกี่ยวกับ Legacy Components แล้วขยายเมนูและเปิดใช้งาน Direct Play ด้วย ก่อนคลิก Ok เพื่อบันทึกการเปลี่ยนแปลง[แก้ไข] ข้อผิดพลาด DirectDraw เมื่อเล่นเกมเก่า (Legacy Games) บน Windows 10
  5. ยืนยันการดำเนินการ แล้วรีบูตคอมพิวเตอร์ และเปิดเกมเก่าอีกครั้ง เพื่อดูว่าคุณแก้ ข้อผิดพลาด DirectDraw 16385 ได้สำเร็จหรือไม่

หากปัญหายังไม่หาย ให้ลองวิธีถัดไปด้านล่าง

วิธีที่ 4: ใช้ dgVoodoo Wrapper

หากวิธีข้างต้นทั้งหมดไม่ได้ผลในกรณีของคุณ คุณควรพิจารณาใช้ wrapper (เช่น dgVoodoo) ที่สามารถแปลง Old Graphics APIs เป็น Direct3D 11 หรือ Direct3D 12 ได้ เพื่อให้คุณสามารถเรนเดอร์เกมบน OS ใหม่ๆ เช่น Windows 8.1 และ Windows 10

การใช้ wrapper เช่น dgVoodoo จะแก้ปัญหาเข้ากันได้และเรนเดอร์ส่วนใหญ่ที่อาจอยู่เบื้องหลังการปรากฏของ ข้อผิดพลาด DirectDraw ที่คุณเห็นเมื่อพยายามเล่นเกมเก่า นอกจากนี้ คุณยังสามารถใช้ wrapper เพื่อเปิดใช้งานการแทนที่ (overrides) ต่างๆ การปรับปรุง และใช้ร่วมกับเครื่องมือบุคคลที่สามอื่นๆ เพื่อปรับปรุงหรือเพิ่มประสบการณ์เล่นเกม

หากวิธีอื่นๆ ที่กล่าวมาข้างต้นไม่ได้ช่วยให้คุณแก้ปัญหานี้ ให้ทำตามขั้นตอนด้านล่างเพื่อดาวน์โหลดและใช้ dgVoodoo 2 เพื่อข้ามข้อผิดพลาด DirectDraw และเล่นเกมเก่าบนคอมพิวเตอร์ Windows 10 ของคุณ:

  1. ไปที่หน้าดาวน์โหลดอย่างเป็นทางการของ dgVoodoo2 และคลิกไฮเปอร์ลิงก์ที่เกี่ยวกับ stable version of dgVoodoo.

    [แก้ไข] ข้อผิดพลาด DirectDraw เมื่อเล่นเกมเก่า (Legacy Games) บน Windows 10
  2. เมื่อดาวน์โหลดเสร็จ ให้ใช้ยูทิลิตี้อย่าง WinRar, WinZip, หรือ 7Zip แยกเนื้อหาของโฟลเดอร์ dgVoodoo ไปในโฟลเดอร์ที่สะดวก
  3. เมื่อแยกยูทิลิตี้เสร็จ ให้ดับเบิลคลิกที่ executable หลัก และทำตามเอกสารอย่างเป็นทางการเพื่อตั้งค่าคอนฟิกสำหรับเกมเก่าที่คุณพยายามเรนเดอร์บน Windows 10