1 คะแนน โดย GN⁺ 2026-03-14 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Dolphin ที่เริ่มต้นในปี 2003 ในฐานะโปรแกรมจำลอง GameCube ได้ขยายไปสู่แพลตฟอร์มใหม่ด้วยการเพิ่มการรองรับ ระบบอาร์เคด Triforce ในปี 2026
  • การปรับแต่ง MMU Fastmem ช่วยเร่งการเข้าถึงหน่วยความจำแบบอิงตารางหน้า โดยเฉพาะทำให้ Rogue Squadron III สามารถรันที่ความเร็วเต็มได้เป็นครั้งแรก
  • บั๊กการซิงก์ออนไลน์ของ Mario Strikers Charged ถูกแก้ไขหลังผ่านไป 5 ปี ทำให้การเล่นผ่านเครือข่ายกับเครื่อง Wii จริงทำงานได้อย่างถูกต้อง
  • ในส่วนของ การจำลอง Triforce กำลังมีความคืบหน้าในการกู้คืนโปรโตคอลทัชสกรีนและฟังก์ชัน IC card ของ The Key of Avalon รวมถึงมีแผนปรับปรุงฟีเจอร์ที่เกี่ยวข้องกับ F-Zero AX และ Virtua Striker 4
  • มีการเพิ่มฟีเจอร์หลายอย่างเพื่อยกระดับประสบการณ์ใช้งานและประสิทธิภาพ เช่น การแคชเกมไว้ใน RAM, การตั้งค่า SDL controller hint, และ การปรับจังหวะเวลาเมนู Wii

เพิ่มการรองรับ Triforce

  • Dolphin รองรับ Triforce ซึ่งเป็นระบบอาร์เคดที่ Sega·Namco·Nintendo พัฒนาร่วมกัน อย่างเป็นทางการ
    • รวมถึงการปรับปรุงเบื้องต้น เช่น การใส่ Magnetic Card อัตโนมัติ การตั้งค่าภูมิภาค และการแก้บั๊กการจำลองแบบหลายตู้
  • ยืนยันแล้วว่า โปรโตคอลทัชสกรีน ของ The Key of Avalon คล้ายกับ Elo SmartSet และสามารถไปถึงขั้นเริ่มเกมได้สำเร็จ แต่ยังหยุดอยู่ที่ปัญหาการเริ่มต้น IC card
  • เมื่อกู้คืนฟังก์ชัน IC card ได้แล้ว โหมด สร้างทีมและสร้างตัวละคร ใน Virtua Striker 4, Gekitou Pro Yakyuu และเกมอื่น ๆ จะกลับมาใช้งานได้อีกครั้ง

MMU Fastmem และการปรับแต่ง Rogue Squadron

  • การติดตั้งใช้งาน การแมป Fastmem ด้วยตารางหน้า ช่วยเพิ่มประสิทธิภาพของ Rogue Squadron II·III ได้สูงสุดถึงสองเท่า
    • สะท้อนการเปลี่ยนแปลงของตารางหน้าแบบเรียลไทม์ผ่านการติดตามคำสั่ง tlbie
  • การปิดใช้งาน Branch Following, การปรับแต่งการทำให้โค้ดเป็นโมฆะ, และการเปิดใช้ CPU Vertex Culling ช่วย ลดเฟรมดรอปและอาการกระตุก
  • Rogue Squadron III สามารถ รันด้วยความเร็วเต็มได้เป็นครั้งแรก บนฮาร์ดแวร์ประสิทธิภาพสูง

แก้บั๊ก Mario Strikers Charged

  • สาเหตุของ ข้อผิดพลาดการซิงก์ทางฟิสิกส์ ระหว่าง Dolphin กับเครื่อง Wii จริง ถูกระบุว่าเกิดจาก การคำนวณเลขทศนิยมลอยตัวที่ไม่แม่นยำ ของคำสั่ง fmadds
  • ปัญหานี้ถูกแก้ด้วย การชดเชยการปัดเศษอย่างแม่นยำ โดยใช้อัลกอริทึม 2Sum ทำให้การแข่งขันออนไลน์ซิงก์กันสมบูรณ์
  • การแก้ไขนี้ต่อยอดจากประสบการณ์ในการแก้ปัญหาคล้ายกันของ Inazuma Eleven GO: Strikers 2013

การปรับปรุงสำคัญอื่น ๆ

  • ปรับ จังหวะเวลาการจัดการข้อมูลเมนู Wii ให้ใกล้เคียงฮาร์ดแวร์จริงมากขึ้น เพื่อลดภาระ CPU ที่มากเกินไปขณะเข้าถึง NAND
  • เพิ่มฟีเจอร์ Load Whole Game into Memory เพื่อตัด ความหน่วงจากการรอดิสก์ เมื่อรันจากสตอเรจผ่านเครือข่าย เช่น NAS
  • เพิ่ม GUI สำหรับตั้งค่า SDL hints เพื่อปรับปรุงความเข้ากันได้ของคอนโทรลเลอร์ เช่น การแยก Joy-Con และปัญหา hot-plug ของ DualSense
  • มีการใช้ แพตช์ซิงก์ VBI กับบางเกม เช่น Need for Speed: Hot Pursuit 2 และ Rabbids Go Home เพื่อทำให้การจำกัดเฟรมกลับมาทำงานได้ถูกต้อง

ประสิทธิภาพและการมีส่วนร่วมจากชุมชน

  • รีลีสนี้รวมการเปลี่ยนแปลงจาก 465 commits พร้อมสะท้อนผลจากการทดสอบของชุมชนและการวิจัยฮาร์ดแวร์จำนวนมาก
  • มีตัวอย่างการแก้ปัญหาระยะยาวของ ซีรีส์ Rogue Squadron, Mario Strikers Charged, และ Triforce ซึ่งช่วยยกระดับทั้งความแม่นยำและประสิทธิภาพของ Dolphin อย่างมาก

1 ความคิดเห็น

 
GN⁺ 2026-03-14
ความเห็นจาก Hacker News
  • น่าทึ่งที่ Dolphin ทำให้เชื่อมต่อออนไลน์กับเครื่อง Wii จริงได้ แทนเซิร์ฟเวอร์ทางการที่ปิดไปนานแล้ว
    ดีใจจริง ๆ ที่ยังมีคนที่มี ความทุ่มเทด้วยใจรัก แบบนี้อยู่

    • ถ้ามนุษยชาติร่วมมือกันได้แบบนี้ ก็นึกภาพได้เลยว่าจะทำอะไรได้อีกมากแค่ไหน
      แต่ในระยะสั้น ความก้าวหน้าทางเทคโนโลยีแบบนี้ก็อาจทำให้ ความเหลื่อมล้ำ รุนแรงขึ้นได้เช่นกัน
    • ความพยายามแบบนี้จำเป็นมากสำหรับ การอนุรักษ์เกม
      ถ้าเกมรันไม่ได้ทั้งหมดหรือบางส่วนเพราะบั๊กของอีมูเลเตอร์ คนรุ่นหลังก็จะเสียโอกาสในการได้สัมผัสเกมเหล่านี้
      เจ๋งมากที่มีคนใส่ใจถึงขนาดนี้
  • ส่วนที่ผมรู้สึกว่าน่าสนใจที่สุดคือ การพัฒนาอีมูเลเตอร์มักทำให้ค้นพบว่าเกมต้นฉบับเองก็มี พฤติกรรมแปลก ๆ แต่ตั้งใจให้เป็นแบบนั้น

    • ผมทำงาน decompile มาเกือบ 2 ปีแล้ว และสนุกกับการได้เห็นทั้ง พฤติกรรมประหลาดของคอมไพเลอร์ ข้อจำกัดของ GCC รุ่นเก่า และโค้ดแนวความเชื่อแปลก ๆ ของโปรแกรมเมอร์ในยุคนั้น
      ผมแปลกใจมากที่รู้ว่า GCC ช่วงกลางยุค 90 จัดการสิ่งที่ผมเคยพยายาม optimize เองด้วยมือในช่วงต้นยุค 2000 ได้อัตโนมัติอยู่แล้ว
    • วันนี้ต้องขอบคุณชุมชน 9front ที่ทำให้ผมรู้ว่าเกม GB บางเกม ใช้ SRAM ของตลับเหมือนเป็น swap memory
      อีมูเลเตอร์ไม่ได้บันทึก SRAM เลยทำให้เซฟไม่ตรงกัน แต่ก็แก้ได้อย่างรวดเร็ว
      เพราะเป็นโค้ด C เรียบง่ายบนฐาน Plan9 เลยแก้ได้ไม่ยาก
  • ผมชอบอ่าน รายงานพัฒนา Dolphin มาตลอด
    เขาอธิบายเรื่องเทคนิคให้เข้าใจง่ายได้ดีมาก

    • ผมก็อ่านรายงานพวกนั้นมาตั้งแต่ก่อนจะเป็นโปรแกรมเมอร์ และมันช่วยมากในการเรียนรู้วิธี คิดอย่างมีเหตุผลถึงการทำงานภายในของโปรแกรม
    • ที่ประทับใจเป็นพิเศษคือ เขาไม่ได้อธิบายแค่ว่า “อะไรเปลี่ยนไป” แต่ยังอธิบายด้วยว่า “ทำไมมันถึงยาก
  • พูดถึงรายงานของ Dolphin หนึ่งในผู้เขียนได้โพสต์บทความน่าสนใจว่าด้วยปัญหาในชุมชนอีมูเลเตอร์โอเพนซอร์ส
    Rethinking Open Source
    สรุปคือ ถ้าเอา โปรเจกต์ที่กระแสแรงมากมาเปิดเป็นโอเพนซอร์ส ก่อนที่ฐานชุมชนและอัตลักษณ์ของโครงการจะมั่นคง ก็อาจเกิดปัญหาจากผู้ใช้ที่เรียกร้องเกินจริงได้
    อีกทั้งยังมีกรณีที่คนอื่นเอา branch ที่ยังไม่เสร็จไปแจกต่อเหมือนเป็นผลงานของตัวเอง
    ทีม Dolphin ยังเดินหน้าโครงการนี้ด้วย ความเป็นมืออาชีพระดับสูง แม้ต้องเจอกับความยากลำบากเหล่านี้

    • การรักษาแรงจูงใจไว้ท่ามกลางผู้ใช้ที่ก้าวร้าวหรือ ไม่รู้สึกขอบคุณ เป็นเรื่องยากมาก
      ต่อให้เป็นงานที่ได้เงินก็ยังยาก แต่ถ้าเป็นโปรเจกต์ฟรีก็คงยิ่งหนักกว่าเดิม
    • เมื่อก่อนต้องใช้ หลาย branch ที่เข้ากันไม่ได้ แต่ตอนนี้เหมือนว่ารองรับ Triforce ใน mainline แล้ว ดีใจมาก
      fork เก่า ๆ เมื่อก่อนยังไม่ค่อยสมบูรณ์
  • ชอบที่ผู้เขียนดู ตื่นเต้นกับสิ่งที่ตัวเองเขียนอย่างจริงใจ

    • JMC นี่สุดยอดจริง ๆ
      ตอนผมเคยรายงานบั๊ก netplay ของ Melee เขาเป็นคนที่มี ความอยากรู้อยากเห็น กับทุกอย่างและขุดลึกมาก
  • Dolphin เป็นตัวอย่างของ การพัฒนาอย่างชาญฉลาด อย่างแท้จริง
    เมื่อก่อน Metroid Prime บนเครื่องเก่าของผมต้องกินครบทั้ง 4 คอร์ถึงจะรันได้ แต่ไม่กี่ปีต่อมากลับใช้แค่ 25% ของคอร์เดียวกัน
    ประสิทธิภาพดีขึ้นแบบก้าวกระโดดเพราะ JIT และการทำให้อีมูเลชันมีประสิทธิภาพขึ้น
    การ optimize แบบนี้ถือเป็นความสำเร็จที่น่าทึ่งจริง ๆ

  • ระหว่างคุยเรื่องความเข้ากันได้ของตู้เกมอาร์เคด Triforce มีการพูดถึง “การรองรับ IC card” ว่าถ้าทำได้จะเปิดความสามารถได้อีกมาก
    มันดูคล้ายบัตรโดยสารในญี่ปุ่น แต่บนบอร์ด Triforce ใช้เก็บข้อมูลความคืบหน้าในเกม
    เป็นฟีเจอร์เจ๋ง ๆ ที่ผมไม่เคยเห็นในอาร์เคดฝั่งอเมริกาเลย

    • เกม Triforce รองรับการ์ด 2 แบบคือ magcard และ IC card
      magcard ราคาถูกกว่าแต่ทนทานน้อยกว่า และสามารถพิมพ์ลายได้
      ส่วน IC card หนากว่าและทนกว่า แต่พิมพ์ลายไม่ได้
      แหล่งข้อมูลพร้อมภาพประกอบ: Rise of the Triforce
    • จริง ๆ แล้วนี่หมายถึง เมมโมรีการ์ด
      เกม Triforce แทบทั้งหมดใช้การ์ดสำหรับเซฟข้อมูล
      น่าจะเคยเห็น Mario Kart Arcade GP เวอร์ชันในอเมริกากันบ้าง
    • ในอาร์เคดอเมริกาก็มีเหมือนกัน
      แนวคิดคล้าย AIME card ที่ใช้กับ maimai, chunithm, DDR ฯลฯ
      แต่ IC card ของ Triforce ไม่ได้มีไว้ยืนยันตัวตนอย่างเดียว ยังใช้ เก็บข้อมูล ได้ด้วย
  • กรณีที่คำสั่ง CPU fnmsubs ถูก implement ผิดใน JIT แต่ทำงานถูกใน interpreter นั้นน่าสนใจมาก
    รู้สึกว่านี่เป็นโอกาสที่เหมาะสำหรับการใช้ differential fuzzing

  • ประเด็นสำคัญของบทความนี้คือ Dolphin ได้นำการรองรับตู้เกมอาร์เคด Triforce กลับมาอีกครั้ง
    Triforce เป็นฮาร์ดแวร์ที่พัฒนาโดย Nintendo, Sega และ Namco ร่วมกัน ซึ่ง Dolphin เคยยุติการรองรับไปในปี 2016
    ตอนนี้เกมอย่าง F-Zero AX และ Mario Kart Arcade GP 1·2 กลับมารันได้อีกครั้ง
    รายละเอียดเพิ่มเติม: The Return of the Triforce

    • เมื่อไม่กี่สัปดาห์ก่อนก็มีเธรดที่เกี่ยวข้องเหมือนกัน
      ลิงก์การสนทนาก่อนหน้า
      ย่อหน้าแรกของบทความก็พูดถึงเรื่องนี้อยู่แล้ว เลยคงเรียกว่าเป็น “ประเด็นที่ถูกมองข้าม” ได้ไม่เต็มปาก
  • ผมสงสัยว่าเขา รับเงินบริจาคไหม แต่หาไม่เจอในเว็บทางการ

    • ที่จริงแล้ว ไม่รับเงินบริจาค
      โพสต์ในฟอรัมที่เกี่ยวข้อง: Dolphin Donations