โปรเจกต์แปลงโค้ด Sonic Advance 2 ฟื้นชีวิตเกมคลาสสิก GBA สำหรับแพลตฟอร์มสมัยใหม่

BigGo Editorial Team
โปรเจกต์แปลงโค้ด Sonic Advance 2 ฟื้นชีวิตเกมคลาสสิก GBA สำหรับแพลตฟอร์มสมัยใหม่

ชุมชนการอนุรักษ์เกมได้บรรลุความสำเร็จอีกขั้นด้วยการแปลงโค้ด (decompilation) ของ Sonic Advance 2 เกมยอดนิยมบน Game Boy Advance จากช่วงต้นยุค 2000 โปรเจกต์นี้ซึ่งได้บรรลุความสำเร็จ 100% ในการสร้างเกมที่ตรงกับต้นฉบับ โดยมีโค้ดที่ตรงกัน 92% ทำให้เกม Sonic คลาสสิกนี้สามารถทำงานได้โดยตรงบนแพลตฟอร์มสมัยใหม่รวมถึง Linux, macOS และ Windows

โปรเจกต์แปลงโค้ดมอบชีวิตใหม่ให้กับเกมคลาสสิก

การแปลงโค้ด Sonic Advance 2 เป็นส่วนหนึ่งของแนวโน้มที่เติบโตขึ้นในความพยายามอนุรักษ์เกม สมาชิกในชุมชนได้ทำการแยกและบันทึกองค์ประกอบทั้งหมดของเกมต้นฉบับ รวมถึงแอนิเมชันสไปรต์ ไทล์แมป และไฟล์เพลง MIDI โปรเจกต์นี้ประสบความสำเร็จในการสร้าง ROM ที่ตรงกับเวอร์ชันต้นฉบับของสหรัฐอเมริกา ยุโรป และญี่ปุ่น พร้อมทั้งมีการพอร์ตเพิ่มเติมสำหรับระบบสมัยใหม่ ที่โดดเด่นที่สุดคือ พอร์ตเหล่านี้รองรับหน้าจอกว้างที่ความละเอียด 426x240 ช่วยให้เกมหลุดพ้นจากข้อจำกัดของหน้าจอขนาดเล็กของ GBA

เกม Sonic บน GBA มักถูกมองข้ามไป แต่ผมคิดว่าพวกมันทำได้ยอดเยี่ยมในการสร้างความรู้สึกเหมือนเกมดั้งเดิมบน Mega Drive พร้อมด้วยดนตรีและงานสไปรต์ที่ยอดเยี่ยม ผมคิดมานานแล้วว่าพวกมันสมควรได้รับการพอร์ตลง PC สมัยใหม่ในสไตล์ของ Sonic 1 Forever หรือ Sonic Origins เพื่อปลดปล่อยพวกมันจากหน้าจอ GBA ที่แคบ

โปรเจกต์นี้เข้าร่วมกับรายชื่อโปรเจกต์แปลงโค้ดที่เพิ่มขึ้นเรื่อยๆ ซึ่งทำให้เกมคลาสสิกสามารถเล่นได้บนฮาร์ดแวร์สมัยใหม่ การสนทนาในชุมชนเน้นย้ำถึงโปรเจกต์ที่คล้ายกันสำหรับเกมอย่าง The Legend of Zelda: Ocarina of Time, Majora's Mask, Perfect Dark และ Sonic Unleashed โปรเจกต์เหล่านี้มักเปิดใช้งานคุณสมบัติที่เพิ่มขึ้นเช่น การรองรับจอภาพ ultrawide อัตราเฟรมที่สูงขึ้น และการควบคุมที่ดีขึ้นซึ่งไม่สามารถทำได้บนฮาร์ดแวร์ดั้งเดิม

สถานะโครงการ

  • การจับคู่การสร้าง: 100%
  • การจับคู่โค้ด: 92%
  • ผู้มีส่วนร่วม: 10
  • ROM ที่รองรับ:
    • sa2.gba (สหรัฐอเมริกา)
    • sa2_europe.gba (ยุโรป)
    • sa2_japan.gba (ญี่ปุ่น) (อยู่ระหว่างดำเนินการ)
  • พอร์ตสำหรับแพลตฟอร์มสมัยใหม่:
    • Linux/MacOS SDL 64bit
    • Windows SDL 64bit
    • Win32 native port (ยังไม่สามารถใช้งานได้)
  • ความละเอียด: พอร์ตจอกว้าง (426x240)

แนวทางที่ผ่อนปรนของ SEGA ต่อโปรเจกต์แฟนคลับ

แง่มุมที่น่าสนใจของการสนทนาเกี่ยวกับโปรเจกต์นี้คือท่าทีที่ค่อนข้างผ่อนปรนของ SEGA ต่อเนื้อหาที่สร้างโดยแฟนๆ ต่างจากผู้พัฒนาบางรายที่ปกป้องทรัพย์สินทางปัญญาของตนอย่างเข้มงวดด้วยการใช้ DMCA takedown SEGA มีประวัติที่ยอมให้โปรเจกต์ของแฟนคลับเติบโตได้ตราบใดที่ไม่แสวงหากำไรจากทรัพย์สินทางปัญญาของบริษัท แนวทางที่ผ่อนปรนนี้ได้ส่งเสริมชุมชนที่มีชีวิตชีวาของเกมแฟนเมดและโปรเจกต์อนุรักษ์ Sonic

สมาชิกในชุมชนเปรียบเทียบสิ่งนี้กับการบังคับใช้ลิขสิทธิ์ที่เข้มงวดมากกว่าของ Nintendo ตัวนักพัฒนาโปรเจกต์เองระบุว่าหากพวกเขาเผชิญกับความท้าทายทางกฎหมาย พวกเขาวางแผนที่จะปรับเปลี่ยนไปพัฒนาเครื่องมือที่สามารถแยกสินทรัพย์โดยอัตโนมัติแทนที่จะแจกจ่ายโดยตรง อย่างไรก็ตาม พวกเขาชี้ให้เห็นถึงประวัติความอดทนอันยาวนานของ SEGA โดยอ้างถึงโปรเจกต์แฟนคลับเช่น Sonic Robo Blast 2 ที่มีมาตั้งแต่ต้นยุค 2000 โดยไม่มีการแทรกแซง

ความท้าทายทางเทคนิคของการแปลงโค้ด

กระบวนการแปลงโค้ดเกี่ยวข้องกับงานที่ต้องใช้ความพยายามอย่างมากในการวิศวกรรมย้อนกลับ (reverse-engineer) โค้ดที่คอมไพล์แล้วกลับเป็นซอร์สโค้ดที่มนุษย์อ่านได้ ผู้มีส่วนร่วมในโปรเจกต์เปิดเผยว่าเครื่องมือปัญญาประดิษฐ์ในปัจจุบันให้ความช่วยเหลือได้อย่างจำกัดในกระบวนการนี้ ในขณะที่ AI สามารถให้โครงร่างคร่าวๆ ของเลย์เอาต์ฟังก์ชัน แต่มันยังคงมีปัญหาในการสร้างโครงสร้าง (structs) แบบมนุษย์ที่สมเหตุสมผลซึ่งต้องอนุมานจากแอสเซมบลีโค้ด

แทนที่จะใช้ AI นักพัฒนาได้พึ่งพาเครื่องมือเช่น Ghidra สำหรับความช่วยเหลือในการแปลงโค้ด แม้ว่าแม้แต่เครื่องมือเหล่านี้ก็ยังมีข้อจำกัด โปรเจกต์นี้แสดงถึงการทำงานหลายพันชั่วโมงด้วยมือเพื่อสร้างโค้ดของเกมขึ้นใหม่ในแบบที่สร้างเอาต์พุตไบนารีที่เหมือนกันเมื่อคอมไพล์ วิธีการแปลงโค้ดให้ตรงกันนี้ทำให้มั่นใจได้ว่าเกมจะทำงานเหมือนกับต้นฉบับทุกประการ ในขณะที่เปิดใช้งานการปรับเปลี่ยนสำหรับระบบสมัยใหม่

การสนทนายังเกี่ยวข้องกับตัวเกมเอนจินด้วย Sonic Advance 2 ถูกสร้างขึ้นบนเอนจินขั้นต่ำที่พัฒนาโดย Dimps ซึ่งถูกนำมาใช้ครั้งแรกใน Sonic Advance 1 และปรับปรุงสำหรับเกมต่อๆ มา เอนจินนี้ให้ฟังก์ชันพื้นฐานสำหรับการเรนเดอร์สไปรต์และพื้นหลัง พร้อมด้วยระบบงานเพื่อชดเชยการขาด native threading capabilities ของ GBA

การอนุรักษ์เกมและการเก็บรักษาซอร์สโค้ด

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

ในขณะที่เกมบางเกมจากช่วงต้นยุค 2000 อาจถูกพัฒนาด้วยระบบควบคุมเวอร์ชันเช่น CVS หรือ SVN สถานการณ์ความเป็นเจ้าของสำหรับ Sonic Advance 2 มีความซับซ้อน เกมนี้ถูกเผยแพร่ในตะวันตกโดย THQ ซึ่งต่อมาได้ล้มละลาย ทำให้เกิดคำถามว่าใครเป็นเจ้าของสิทธิ์ในปัจจุบัน ความไม่แน่นอนนี้ทำให้การนำกลับมาเผยแพร่อย่างเป็นทางการเป็นไปได้ยาก ซึ่งยิ่งเน้นย้ำถึงความสำคัญของความพยายามในการอนุรักษ์โดยชุมชน

โปรเจกต์แปลงโค้ด Sonic Advance 2 ไม่เพียงแต่แสดงถึงความสำเร็จทางเทคนิคเท่านั้น แต่ยังเป็นการอนุรักษ์วัฒนธรรมอีกด้วย ด้วยการทำให้เกม GBA คลาสสิกนี้สามารถเล่นได้บนระบบสมัยใหม่พร้อมคุณสมบัติที่เพิ่มขึ้น โปรเจกต์นี้ทำให้มั่นใจได้ว่าผู้เล่นรุ่นใหม่จะสามารถสัมผัสประสบการณ์บทนี้ของประวัติศาสตร์ Sonic ที่มักถูกมองข้าม ตามที่ผู้แสดงความคิดเห็นคนหนึ่งได้กล่าวไว้ ซีรีส์ Advance มักถูกลืมในการสนทนาเกี่ยวกับเกม Sonic แบบ 2D แม้ว่าจะจับแก่นของสิ่งที่ทำให้เกมดั้งเดิมพิเศษได้ก็ตาม ขอบคุณความพยายามของชุมชนนี้ เกมเหล่านี้อาจพบผู้ชมใหม่บนแพลตฟอร์มที่กลายเป็นแพลตฟอร์มที่ดีที่สุดสำหรับการเล่นเกม Sonic เก่าๆ เหล่านี้อย่างน่าประหลาดใจ - นั่นคือ PC

อ้างอิง: Sonic Advance 2