1 คะแนน โดย GN⁺ 2026-01-05 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • กล่าวถึงเกร็ดที่คำรองของเกมอาร์เคด Street Fighter II อย่าง ‘World Warrior’ เคย สะกดผิดเป็น ‘World Warrier’ จนเกือบถึงวันวางจำหน่าย
  • กราฟิกดีไซเนอร์ Akiman ไม่สามารถแก้ไขได้เพราะ GFX ROM ถูกเขียนลงไปแล้ว จึง ปรับให้ตัว ‘e’ ดูเหมือน ‘o’ ด้วยการประกอบสไปรต์
  • เขานำบางไทล์จาก ‘World’ มาใช้ซ้ำเพื่อแทนที่ ‘ier’ แต่ผลลัพธ์กลับก่อให้เกิดปัญหาใหม่เป็น ‘The World Warrlor’
  • หลังจากนั้นจึงใช้ ไทล์น่องของ Guile (0x96) มาช่วยตัดส่วนบนของตัว ‘l’ ในระดับพิกเซลให้ ดูเหมือน ‘i’ ในการแก้ไขชั่วคราว
  • การแก้ไขนี้ถูกแทนที่อย่างเป็นทางการในเวอร์ชันถัดมา และแสดงให้เห็นถึง การรับมือเชิงเทคนิคอย่างละเอียดกับการแก้ปัญหาอย่างสร้างสรรค์ในการพัฒนาเกม

การพบคำสะกดผิดและจุดเริ่มต้นของการแก้ไข

  • พบว่า คำรองของ Street Fighter II อย่าง ‘World Warrior’ ถูกระบุผิดเป็น ‘World Warrier’ ก่อนวางจำหน่าย 3 วัน
    • Akiman ย้อนความว่า “พบความผิดพลาดที่เลวร้ายมาก” และอธิบายว่า GFX ROM ถูกเขียนไปแล้วจึงแก้ไขไม่ได้
  • GFX ROM ใช้เก็บข้อมูลกราฟิก ส่วน 68000 ROM ใช้เก็บคำสั่ง และ กราฟิก ROM อยู่ในสถานะที่แก้ไขไม่ได้
  • Akiman จึงลองใช้วิธีซ้อนสไปรต์เพื่อทำให้ตัว ‘e’ ดูคล้าย ‘o’ และทำให้เกิดการ แก้ไขในเชิงภาพ

การแก้ปัญหาชั่วคราวด้วยการเปลี่ยนไทล์

  • โลโก้ประกอบด้วย 16 ไทล์ (0xC8~0xDF) และ Akiman ได้ ลบสามไทล์สุดท้าย (0xDD~0xDF) แล้วแทนด้วย 0xCD, 0xCE
  • ผลคือ ‘World Warrier’ กลายเป็น ‘World Warrlor’ แต่ก็ยังเหลือ ปัญหาที่ตัว ‘l’ ดูไม่เหมือน ‘i’
  • เนื่องจาก CPU 68000 ไม่สามารถแก้ไขไทล์ได้โดยตรง จึง จำเป็นต้องมีการปรับในระดับพิกเซล

การแก้ไขพิกเซลด้วยไทล์ของ Guile

  • กุญแจสำคัญของการแก้ปัญหาอยู่ที่ ไทล์น่องของตัวละคร Guile (0x96)
    • ไทล์นี้มีการแสดงผลเพียงพิกเซลเดียวที่มุมล่างซ้าย
  • CPU 68000 สามารถเลือกพาเลตได้อย่างอิสระ และจึง อาศัยความต่างของสีจากการเปรียบเทียบพาเลตของ Guile กับพาเลตของโลโก้
    • ดัชนี 14 ของพาเลต Guile เป็นสีเขียวเข้ม แต่ในพาเลตของโลโก้เป็นสีน้ำเงินเข้ม
  • เมื่อนำไทล์นี้มาใช้กับพาเลตของโลโก้ จึงทำให้ 255 พิกเซลโปร่งใส และใช้เพียง 1 พิกเซลราวกับเป็น ‘ดินสอ’
    • ด้วยคำสั่งวาด 3 ครั้ง จึงตัดส่วนบนของตัว ‘l’ ออกให้ ดูเหมือนจุดของตัว ‘i’

ผลลัพธ์และเวอร์ชันถัดมา

  • ด้วยการแก้ไขชั่วคราวนี้ ทำให้บนหน้าจอสุดท้าย มองเห็นเป็น ‘World Warrior’ ได้สำเร็จ
  • ในเวอร์ชันถัดมาได้เพิ่มชุดไทล์ ‘IOR’ ที่ถูกต้องแล้ว แต่ ไม่ได้ถูกใช้งานเพราะคำรองเปลี่ยนเป็น ‘Champion Edition’ และ ‘Hyper Fighting’

ความหมายทางเทคนิค

  • กรณีนี้แสดงให้เห็นว่า แม้อยู่ภายใต้ข้อจำกัดของฮาร์ดแวร์อาร์เคดแบบ ROM ก็ยังสามารถแก้ปัญหาอย่างสร้างสรรค์ได้
  • การแก้ไขโดยใช้พิกเซลเพียงจุดเดียวถือเป็นตัวอย่างของการผสานกันระหว่าง การควบคุมกราฟิกอย่างละเอียดกับความเข้าใจฮาร์ดแวร์
  • กระบวนการแก้คำสะกดผิดนี้จึงกลายเป็นเกร็ดที่สะท้อนถึง การดีบักอย่างละเอียดและทักษะการรับมือเชิงปฏิบัติในการพัฒนาเกม

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

 
GN⁺ 2026-01-05
ความเห็นจาก Hacker News
  • โซเชียลมีเดีย ที่แท้จริงก็คือตู้อาร์เคด
    ท่ามกลางเสียงลูกโบว์ลิ่งกลิ้งในสปอร์ตเซ็นเตอร์ ก็รู้ได้ทันทีว่าตู้เกมของฉันคือตู้ไหน
    ผู้คนจะมายืนล้อมดู พูดหยอกล้อกัน เป็นพื้นที่ที่เต็มไปด้วยสมาธิและเสียงเฮ
    มีช่วงเวลาหนึ่งที่เด็กคนหนึ่งซึ่งกำลังจับจอยสติ๊กได้รับ ความเคารพ จากทุกคน ก่อนที่บัลลังก์จะเปลี่ยนมือด้วยหมัดมังกรที่สมบูรณ์แบบเพียงครั้งเดียว และทุกคนก็ส่งเสียงเชียร์
    เป็นยุคที่เราวางเหรียญรอคิวรอบถัดไป และแชร์ โดพามีน กับคนแปลกหน้า
    ตอนนี้โลกเชื่อมต่อกันมากกว่าที่เคย แต่กลับรู้สึกห่างเหินกันมากขึ้น

    • ยังจำได้ว่าหลังเลิกเรียน ฉันไปเล่น Street Fighter กับเพื่อนหลายชั่วโมงที่ร้านเอเชียหน้าโรงเรียนมัธยม
      ฉันได้เล่นกับเพื่อนรุ่นที่สองชาวม้งซึ่งครอบครัวย้ายถิ่นมาหลังสงครามเวียดนาม ฉันเลือก Ken ส่วนพวกเขาเลือก Ryu
      เวลาที่เราแข่งกัน หัวเราะกัน และสอนท่าต่าง ๆ ให้กันและกัน คือ บทเรียนของการปฏิสัมพันธ์ทางสังคม อย่างแท้จริง
      เพื่อนที่เรียนโรงเรียนเอกชนอาจพลาดประสบการณ์แบบนี้ไป
    • ที่สเปนแทบไม่มีวัฒนธรรมแบบนี้
      แม้จะมี SF2 อยู่ตามร้านเกม แต่คนส่วนใหญ่เล่นโหมดคนเดียวมากกว่าจะเล่นสู้กัน
      เพราะราคาเล่นหนึ่งรอบแพงเกินไป ทุกคนจึงร่วมมือกันเล่นซิงเกิลเพลย์ และเกม PvE อย่าง Gauntlet หรือ Knights of the Round ก็ได้รับความนิยม
      เป็นวัฒนธรรมที่ต่างออกไปโดยสิ้นเชิง
    • แม้จะไม่ชัดเจนสด ๆ เท่าการเตะฟุตบอลในลานโล่ง แต่ก็ยังดีกว่าการจ้องแต่หน้าจอแล้วเรียกสิ่งนั้นว่า ‘การสร้างเครือข่าย’ มาก
    • ทุกวันนี้ถ้าไปเข้าร่วมอะไรอย่าง ชมรมวิ่ง ก็ยังสามารถพบปะผู้คนได้
      ที่ญี่ปุ่นวัฒนธรรมอาร์เคดยังมีชีวิตอยู่
      ความคิดถึงแบบนี้เลยให้ความรู้สึก ย้อนแย้ง นิด ๆ
    • อยากถามว่าเคยลองกีฬาทางสังคมอย่าง ปีนผา ไหม
      ด้วยรูปแบบที่ใช้กำแพงร่วมกัน มันทำให้ได้คุยกับคนแปลกหน้าอย่างเป็นธรรมชาติ และแค่ใช้เวลาไม่กี่ชั่วโมงก็สนุกได้เต็มที่
      คิดว่ายังมีกีฬา เชิงสังคม แบบอื่นอีกมากที่เหมาะกับแต่ละช่วงวัย
  • เรื่องนี้น่าสนใจมากจริง ๆ
    หนึ่งในกรณีที่ฉันชอบคือเรื่องที่ Naughty Dog ใช้ EULA เพื่อแก้ไข Ratchet and Clank
    อ่านรายละเอียดได้ในบล็อกโพสต์นี้

    • ไม่อยากเชื่อเลยว่าเขาใช้ buffer overflow ในข้อความ EULA เป็นกลไกแพตช์
    • พอเห็น Dilbert โผล่มาในบทความก็ชะงักไปแวบหนึ่ง แต่พอดูวันที่แล้วก็เข้าใจ
  • ร้านแฮมเบอร์เกอร์แถวบ้านมี ตู้ SF2 อยู่ตู้หนึ่ง และติดภาพวาดด้วยมือแทนสติกเกอร์
    ด้านบนเขียนว่า ‘HYRER FIGHTING’ และเมื่อคิดถึงการสะกดผิดของ ‘WORLD WARRIER’ ก็รู้สึกว่าเข้ากันดีเหลือเกิน

    • เป็นอะไรที่ถ้าไม่มีรูปก็คงเชื่อยาก
  • อยากรู้ว่าได้ดู วิดีโอ YouTube ที่เกี่ยวข้องเมื่อเร็ว ๆ นี้ไหม

    • ดูแล้ว
      ชื่อว่า “It sounds dumb but they really fixed a typo with a human leg” และมีลิงก์วิดีโอด้วย
      เป็นวิดีโอที่ทำออกมาได้ดีทีเดียว
  • พออ่านเรื่องนี้วันนี้ก็เลยสงสัยขึ้นมาว่าสมัยก่อนเขาทำ การเรนเดอร์ข้อความ กันอย่างไร
    มันทำให้นึกขึ้นมาอีกครั้งว่าเมื่อก่อนฟังก์ชันอย่าง drawText ไม่ใช่ของที่มีให้ใช้กันเป็นเรื่องปกติ
    เป็นยุคที่แม้แต่การแสดงตัวอักษรก็ต้อง ลงมือทำเอง

  • ทำให้นึกถึงประโยค “Thank you for playing Wing Commander!
    เป็นประโยคที่สะกิดอารมณ์ยุคนั้นได้อย่างแม่นยำ

    • ตามบทความของ WCNews ระบุว่า ประโยคดังกล่าวไม่ได้อยู่ในเวอร์ชันที่วางจำหน่ายจริง
      มันเป็นข้อความชั่วคราวเพื่อหลีกเลี่ยงการชนกันของระบบจัดการหน่วยความจำ
  • นึกถึงเกม Continental Circus ขึ้นมา
    มีส่วนเกร็ดความรู้ในลิงก์ Arcade Museum

    • แต่การบอกว่าชื่อนั้นเป็นการสะกดผิดของ ‘Circuit’ มันฟังไม่ขึ้นเลย
      ในภาษาญี่ปุ่น ‘Circuit’ คือ サーキット และออกเสียงต่างจาก ‘サーカス’ อย่างสิ้นเชิง
      แถมการเรียก F1 ว่า ‘circus’ ก็เป็นสำนวนที่ใช้กันทั่วไป ไม่ใช่แค่ในญี่ปุ่นแต่ทั่วโลก
  • เรื่องที่บอกว่าใช้ draw call 3 ครั้งกับพิกเซล 3 จุด เพื่อวาดน่องของ Guile นี่ตลกมาก

    • แต่คำว่า ‘draw call’ ในที่นี้เป็นแค่คำสมัยใหม่เท่านั้น จริง ๆ แล้วมันคือการเขียนค่าลงใน หน่วยความจำตารางสไปรต์
      เป็นยุคที่ยังไม่มีระบบปฏิบัติการหรือกราฟิก API และต้องเข้าถึงหน่วยความจำฮาร์ดแวร์โดยตรง
    • โชคดีที่บนหน้าจอไตเติลไม่ได้ต้องทำงานเยอะขนาดนั้น
  • มีคนแซวว่าอยากให้ใครสักคนไปแก้คำสะกดผิด “Bimmy and Jimmy” ใน Double Dragon เสียที