กลับไปหน้าบทความ

อ่าน 9 นาที

ไม่มีชื่อบทความ

การแฮ็ก ROM คือกระบวนการ แก้ไข ภาพ ROM หรือไฟล์ ROM เพื่อเปลี่ยนแปลงหรือแก้ไขเนื้อหาภายใน โดยปกติแล้ว จะเป็นการแก้ไข เกมวิดีโอ เพื่อเปลี่ยนแปลง กราฟิก บทสนทนา ระดับ รูป แบบ การ...

การแฮ็ก ROM

การแฮ็กROMคือกระบวนการแก้ไขภาพ ROM หรือไฟล์ ROMเพื่อเปลี่ยนแปลงหรือแก้ไขเนื้อหาภายใน โดยปกติแล้ว จะเป็นการแก้ไข เกมวิดีโอ เพื่อเปลี่ยนแปลง กราฟิกบทสนทนาระดับ รูปแบบการเล่นหรือองค์ประกอบอื่นๆของเกม

การแฮ็ก ROM ใช้เพื่อปรับปรุงเกมเก่าที่มีความสำคัญ เป็นช่องทางสร้างสรรค์ หรือเพื่อสร้างเกมใหม่ (ไม่เป็นทางการ) โดยใช้เอนจิ้นของเกมเก่า การแฮ็ก ROM โดยทั่วไปจะทำได้โดยใช้ โปรแกรม แก้ไขเลขฐานสิบหก (โปรแกรมสำหรับแก้ไขข้อมูลที่ไม่ใช่ข้อความ) และเครื่องมือเฉพาะทางต่างๆ เช่น โปรแกรมแก้ไข ไทล์และเครื่องมือเฉพาะเกม ซึ่งโดยทั่วไปใช้สำหรับแก้ไขระดับ ไอเท็ม และอื่นๆ แม้ว่าบางครั้งจะมีการใช้เครื่องมือขั้นสูงกว่า เช่นแอสเซมเบลอร์คอมไพเลอร์และดีบักเกอร์เมื่อเสร็จแล้ว มักจะเผยแพร่บนอินเทอร์เน็ตเพื่อให้ผู้อื่นเล่นบนอีมูเลเตอร์หรือเครื่องเล่นเกม[ 1 ]

การแปลโดยแฟนๆ (หรือที่รู้จักกันในชื่อ "การแฮ็กการแปล" ภายในชุมชนการแฮ็ก ROM) เป็นประเภทหนึ่งของการแฮ็ก ROM; มีการแฮ็กต่อต้านการเซ็นเซอร์ที่คืนค่าเกมให้กลับสู่สถานะเดิม (ซึ่งมักพบเห็นได้ในเกมเก่าๆ ที่นำเข้า เนื่องจากนโยบายเนื้อหาของผู้จัดจำหน่ายสำหรับวิดีโอเกม (โดยเฉพาะอย่างยิ่ง ของ นินเทนโด) เข้มงวดกว่าในสหรัฐอเมริกามากกว่าในญี่ปุ่นหรือยุโรป); การแฮ็กแบบสุ่มถูกออกแบบมาเพื่อสุ่มตำแหน่งของเอนทิตีภายในเกม; [ 2 ]การแฮ็กบางอย่างยังนำคุณสมบัติที่มีอยู่ในโค้ดของเกมแต่ไม่ได้ใช้ในเกมกลับมาใช้ใหม่ด้วย

ชุมชน

กลุ่มแฮ็กเกอร์ส่วนใหญ่เสนอพื้นที่เว็บสำหรับโฮสต์แฮ็กและภาพหน้าจอ (บางครั้งโฮสต์เฉพาะแฮ็กของสมาชิกในกลุ่มและโฮสต์แฮ็กเกือบทุกประเภท) กระดานข้อความ และมักจะมี ช่อง IRCกลุ่มแฮ็กเกอร์และบุคคลหลายคนยังได้สร้างคู่มือสำหรับผู้ที่ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการแฮ็ก ROM เช่นRom Hacking BibleสำหรับNESที่เขียนขึ้นในช่วงกลางถึงปลายทศวรรษ 1990 [ 3 ]รวมถึงคู่มือที่ออกแบบมาสำหรับผู้เริ่มต้นและแฮ็กเกอร์ที่มีทักษะที่ต้องการเรียนรู้วิธีการเพิ่มหรือเปลี่ยนแปลงสิ่งต่างๆ ตั้งแต่ต้นจนจบ

บนอินเทอร์เน็ตมีเว็บไซต์มากมายที่อุทิศให้กับโลกของการแฮ็ก ROM โดยแต่ละเว็บไซต์จะเน้นไปที่การแฮ็กและการแปลเกมต่างๆ จากหลายซีรีส์ แฟรนไชส์ ​​และแพลตฟอร์ม หนึ่งในเว็บไซต์ที่โดดเด่นที่สุดบนอินเทอร์เน็ตที่อุทิศให้กับการแฮ็ก ROM คือROMhacking.net ซึ่งเปิดให้บริการออนไลน์ครั้งแรกในช่วงปลายปี 2548 ตั้งแต่เริ่มก่อตั้งจนถึงปี 2567 เว็บไซต์นี้ทำหน้าที่เป็นศูนย์กลางที่เกี่ยวข้องกับการแฮ็ก ROM ทุกประเภท โดยเป็นที่เก็บรวบรวมแฮ็ก การแปล ยูทิลิตี้ เอกสาร และแพตช์สำหรับวิดีโอเกมที่มีชื่อเสียงและเกมที่ไม่ค่อยมีคนรู้จักมากมายตั้งแต่ยุคที่สามจนถึงยุคที่เจ็ด ROMhacking.com เป็นเว็บไซต์รุ่นก่อนหน้าของ ROMhacking.net ซึ่งเปิดตัวเมื่อห้าปีก่อนในปี 2543 ในชื่อ "The Whirlpool" และในชื่อ ROMhacking.org ในช่วงสั้นๆ ระหว่างปี 2544 ถึง 2545 ก่อนที่จะกลับมาใช้ชื่อเดิม และปิดตัวลงในช่วงปลายปี 2547 [ 4 ] [ 5 ]

ณ วันที่ 1 สิงหาคม2567  ROMhacking.net ถูกลดระดับให้เป็นเว็บไซต์ข่าวแบบอ่านอย่างเดียวสำหรับโครงการแฮ็ก ROM หลังจากเปลี่ยนไปใช้รูปแบบใหม่ในวันเดียวกันนั้น หลังจากให้บริการบนเว็บไซต์มาเกือบ 20 ปี เนื่องจากเหตุผลต่างๆ ที่อยู่นอกเหนือการควบคุมของเว็บไซต์ ฐานข้อมูลและไฟล์เดิมถูกเก็บถาวรไว้ในInternet Archiveในวันเดียวกับการประกาศ การส่งผลงานใหม่ก็ถูกปิดอย่างถาวรในวันเดียวกันนั้นเช่นกัน และไฟล์ดาวน์โหลดทั้งหมดบนเว็บไซต์จะยังคงใช้งานได้ต่อไปในอนาคตอันใกล้[ 6 ] [ 7 ] [ 8 ] [ 9 ]ผู้สืบทอดทางจิตวิญญาณของ ROMhacking.netRomhack.ing (RHDI) เปิดตัวในเวอร์ชันอัลฟ่าเมื่อวันที่ 15 สิงหาคม 2024 สองสัปดาห์หลังจากที่ ROMhacking.net เปลี่ยนไปใช้รูปแบบอ่านอย่างเดียว และเปิดให้ลงทะเบียนสำหรับบุคคลทั่วไปในวันที่ 1 มีนาคม 2025

วิธีการ

เนื่องจากข้อมูล ROM ถูกสร้างขึ้นโดยโปรแกรมเมอร์หรือทีมโปรแกรมเมอร์หลายทีม ข้อมูลจึงมีความหลากหลายมาก ต่อไปนี้คือวิธีการหลักบางส่วนที่ใช้ในการแฮ็ก ROM

การแก้ไขเลขฐานสิบหก

ตัวอย่างโปรแกรมแก้ไขเลขฐานสิบหก ( ImHex ) เครื่องมือเหล่านี้ใช้ในการแฮ็ก ROM เพื่อระบุและแก้ไขรูปแบบข้อมูลเฉพาะภายในโค้ดไบนารีของเกม

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

การแก้ไขข้อความถือเป็นรูปแบบพื้นฐานที่สุดอย่างหนึ่งของการแฮ็ก เกมหลายเกมไม่ได้จัดเก็บข้อความใน รูปแบบ ASCIIและด้วยเหตุนี้จึงมีการพัฒนาโปรแกรมแก้ไขเลขฐานสิบหกเฉพาะทางขึ้นมาเพื่อระบุค่าไบต์ที่ตรงกับตัวอักษรในภาษาอังกฤษเพื่ออำนวยความสะดวกในการแก้ไขข้อความ ไฟล์ที่กำหนดความสัมพันธ์ระหว่างไบต์กับตัวอักษรเหล่านี้เรียกว่าไฟล์ "ตาราง" เกมอื่นๆ ใช้เทคนิคการบีบอัดข้อความแบบง่ายๆ (เช่นการเข้ารหัสคู่ไบต์หรือที่เรียกว่าการเข้ารหัสไทล์คู่หรือ DTE ซึ่งการรวมกันของตัวอักษรสองตัวขึ้นไปจะถูกเข้ารหัสเป็นไบต์เดียว) ซึ่งโปรแกรมแก้ไขเลขฐานสิบหกที่มีคุณสมบัติเหมาะสมสามารถช่วยในการแก้ไขได้

โปรแกรมแก้ไขเลขฐานสิบหก (Hex Editor) เป็นเครื่องมือที่นิยมใช้สำหรับการแก้ไขข้อมูลต่างๆ เช่น คุณสมบัติของตัวละคร/ไอเทม หากทราบโครงสร้างและตำแหน่งของข้อมูลเหล่านั้น และไม่มีโปรแกรมแก้ไขเฉพาะเกมที่สามารถแก้ไขข้อมูลนี้ได้ แฮกเกอร์บางคนก็ใช้โปรแกรม แก้ไขเลขฐานสิบหกใน การแก้ไขระดับเกมเช่นกัน แต่ทำได้ยากมาก (ยกเว้นในเกมที่มีรูปแบบการจัดเก็บระดับเกมคล้ายคลึงกับที่แสดงในโปรแกรมแก้ไขเลขฐานสิบหก)

การแก้ไขกราฟิก

ตัวอย่าง การแสดง ไทล์ กราฟิก จาก ROM ของเกมในโปรแกรมแก้ไขไทล์

ทักษะการแฮ็กพื้นฐานอีกอย่างหนึ่งคือการแฮ็กกราฟิกซึ่งก็คือการเปลี่ยนแปลงรูปลักษณ์ของสภาพแวดล้อม ตัวละคร ฟอนต์ หรือสิ่งอื่นๆ ในเกม รูปแบบข้อมูลกราฟิกจะแตกต่างกันไปในแต่ละเครื่องเล่นเกม แต่เครื่องเล่นเกมรุ่นแรกๆ ส่วนใหญ่ ( NES , Super NES , Game Boyฯลฯ) จะจัดเก็บกราฟิกในรูปแบบไทล์ซึ่งเป็นหน่วยข้อมูลขนาด 8x8 พิกเซลที่จัดเรียงอยู่บนหน้าจอเพื่อสร้างผลลัพธ์ที่ต้องการ การแก้ไขไทล์เหล่านี้ก็สามารถทำได้ด้วยโปรแกรมแก้ไขเลขฐานสิบหก แต่โดยทั่วไปแล้วจะทำได้โดยใช้โปรแกรมแก้ไขไทล์ (เช่นTile LayerหรือTile Molester ) ซึ่งสามารถแสดงข้อมูล ROM ในรูปแบบกราฟิกได้ รวมถึงการค้นหาและแก้ไขไทล์ด้วย

การปรับแต่งกราฟิกอาจมีตั้งแต่การแก้ไขง่ายๆ (เช่น การให้มาริโอมีผมทรงแอฟโรหรือให้ลุยจิ ถือ ไม้กอล์ฟ ) ไปจนถึงการ "ย้าย" ตัวละครจากเกมหนึ่งไปยังอีกเกมหนึ่ง (เช่น การสร้าง สไปรต์ แบบพิกเซล (หรือ "สไตล์ย้อนยุค") ของโปเกมอนรุ่นหลังๆเพื่อใช้กับเกมโปเกมอนรุ่นที่ 1-5 [ 10 ] ) ไปจนถึงการเปลี่ยนแปลงธีมแบบเต็มรูปแบบ (โดยปกติจะมีการเปลี่ยนแปลงจานสีประกอบด้วย ดูด้านล่าง)

การแฮ็กกราฟิกที่ซับซ้อนยิ่งขึ้นนั้นเกี่ยวข้องกับการเปลี่ยนแปลงมากกว่าแค่ไทล์และสี แต่ยังรวมถึงวิธีการจัดเรียงไทล์หรือกลุ่มไทล์ที่สร้างขึ้น ทำให้มีความยืดหยุ่นและควบคุมรูปลักษณ์สุดท้ายได้มากขึ้น วิธีนี้ทำได้โดยการแก้ไขเลขฐานสิบหกหรือเครื่องมือเฉพาะ (สำหรับเกมเฉพาะหรือระบบเฉพาะ) ตัวอย่างหนึ่งของวิธีการนี้คือPokémon Torzach ที่ยังไม่เสร็จสมบูรณ์ ซึ่ง เป็นการแฮ็ก Pokémon FireRedที่พยายามเพิ่มโปเกมอนและไทล์รุ่นใหม่ทั้งหมดลงในเกม แม้ว่าการแฮ็กนี้จะถูกยกเลิกไปนานแล้ว แต่ก็สามารถบรรลุผลลัพธ์ที่น่าพอใจได้ด้วยเครื่องมือที่มีอยู่ในขณะนั้น[ 11 ] Super Mario Land 2 DX: 6 Golden Coinsเป็นอีกตัวอย่างหนึ่ง ซึ่งเป็นเวอร์ชันที่ได้รับการปรับปรุงของเกมต้นฉบับที่เพิ่มการรองรับสีเต็มรูปแบบให้กับเกมที่เป็นสีเทาเท่านั้น รวมถึงการปรับปรุงคุณภาพชีวิตบางอย่าง เช่น การแก้ไขปัญหาการกระพริบของหน้าจอจากเวอร์ชันดั้งเดิม[ 12 ]

การแก้ไขจานสี

อีกรูปแบบหนึ่งของการแฮ็กที่พบได้บ่อยคือการแฮ็กพาเล็ตสีซึ่งเป็นการแก้ไขค่าสีเพื่อเปลี่ยนสีที่ผู้เล่นเห็นในเกม (ซึ่งมักจะควบคู่ไปกับการแฮ็กกราฟิก ) ค่าพาเล็ตสีมักถูกจัดเก็บในรูป แบบเลขฐาน สิบหกสำหรับเกม NES นั้นค่อนข้างง่าย เพราะกราฟิกของเกมเหล่านี้ใช้ชุดสีที่กำหนดไว้ล่วงหน้า ซึ่งเกมจะเลือกใช้ (โดยใช้ พาเล็ตสีแบบ YIQ ) การแฮ็กพาเล็ตสีในกรณีนี้จึงหมายถึงการเปลี่ยนสีที่ถูกเลือกใช้ เรื่องนี้จะซับซ้อนขึ้นเล็กน้อยสำหรับเกม Super NES และเกมสำหรับระบบอื่นๆ (รวมถึง เกม Sega Mega Drive (Genesis) ) ซึ่งจัดเก็บ ค่าสี RGB แบบสัมบูรณ์ โปรแกรมแก้ไขพาเล็ตสีมักจะเรียบง่ายและมักจะรวมอยู่ในโปรแกรมแก้ไขระดับหรือโปรแกรมแก้ไขกราฟิกเฉพาะเกม

การแก้ไขระดับ

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

การแก้ไขข้อมูล

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

การแฮ็กแอสเซมบลี

เทคนิคการแฮ็กที่มีประสิทธิภาพมากกว่า และอาจกล่าวได้ว่ายากที่สุด คือการแก้ไขโค้ดจริงของเกม หรือที่เรียกว่าการแฮ็กแอสเซมบลีหรือการแฮ็ก ASM ("ASM" ย่อมาจาก " assembly " ซึ่งหมายถึงภาษาโปรแกรมระดับต่ำที่ถูกประมวลผลโดย CPU) [ 1 ]ไม่มีรูปแบบตายตัวสำหรับการแฮ็กแอสเซมบลี เนื่องจากโค้ดมีความแตกต่างกันอย่างมากในแต่ละเกม แต่แฮ็กเกอร์แอสเซมบลีที่มีทักษะส่วนใหญ่จะใช้โปรแกรมจำลองที่มีดีบักเกอร์หรือเทรเซอร์ในตัว หรือรัน ROM ผ่านดิสแอสเซมเบลอร์จากนั้นวิเคราะห์โค้ดและแก้ไขโดยใช้โปรแกรมแก้ไขเลขฐานสิบหกหรือแอสเซมเบลอร์ตามความต้องการ แม้ว่าจะค่อนข้างท้าทายเมื่อเทียบกับวิธีการที่ค่อนข้างง่ายที่กล่าวมาข้างต้น แต่ "ทุกสิ่ง" เป็นไปได้ด้วยการแฮ็กแอสเซมบลี โดยปกติจะอยู่ภายใต้ข้อจำกัดของฮาร์ดแวร์และซอฟต์แวร์ของแพลตฟอร์มเกม ซึ่งอาจมีตั้งแต่การเปลี่ยนแปลงAI ของศัตรู ไปจนถึงการเปลี่ยนแปลงวิธีการสร้างกราฟิก

การถอดรหัส

หากนักพัฒนาใช้ภาษาที่มีการกำหนดประเภทแฮ็กเกอร์อาจสามารถคอมไพล์โค้ดสำหรับเกมในภาษาเดียวกันได้ หากพวกเขาสามารถเข้าถึงคอมไพเลอร์ที่เหมาะสม ตัวอย่างหนึ่งคือการใช้ภาษาCเพื่อแฮ็กเกมNintendo 64 เนื่องจาก MIPS - GCCสามารถคอมไพล์โค้ดสำหรับ Nintendo 64 ได้[ 13 ] [ 14 ]แนวทางนี้ใช้สำหรับวิธีการที่เรียกว่าการถอดรหัส (decompilation ) โดยเฉพาะ คล้ายกับการแฮ็กภาษาแอสเซมบลี วิธีนี้เกี่ยวข้องกับการถอดรหัสไฟล์ปฏิบัติการไบนารีของเกม เพื่อสร้าง ซอร์สโค้ดของเกมขึ้นใหม่ในภาษาโปรแกรมระดับสูงที่มนุษย์อ่านได้ (เช่น C) แทนที่จะถอดรหัสเกมเพื่อสร้างโค้ดภาษาแอสเซมบลีระดับต่ำที่ปรับแต่งให้เข้ากับสถาปัตยกรรม CPU เฉพาะ การสร้างเกมขึ้นใหม่จากการถอดรหัส (เช่น การคอมไพล์โค้ดที่ถอดรหัสแล้ว) เรียกอีกอย่างว่า การคอมไพล์ใหม่ ( recompilation ) หรือ การคอมไพล์ ใหม่แบบคงที่ (static recompilation ) เช่นเดียวกับการแฮ็กแอสเซมบลี ไม่มีกฎเกณฑ์ใดๆ ในการดำเนินการดีคอมไพล์ แม้ว่าโค้ดจะต้องได้รับการวิเคราะห์และระบุอย่างละเอียดถี่ถ้วนจึงจะถือว่า "สมบูรณ์" เช่นเดียวกับกรณีของ "การดีคอมไพล์ที่ตรงกัน" (เช่น การเขียนซอร์สโค้ดที่คอมไพล์ได้เหมือนกับต้นฉบับ) [ 15 ] [ 16 ] [ 17 ]

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

การถอดรหัสเหมาะสำหรับเกมที่กำหนดเป้าหมายไปที่เครื่องเล่นเกมตั้งแต่รุ่นที่ห้าเป็นต้นไป เช่น Nintendo 64, PlayStationเป็นต้น ซึ่งโดยทั่วไปมีฮาร์ดแวร์ที่ทรงพลังกว่ารุ่นก่อนหน้า นอกจากนี้ยังช่วยให้สามารถแก้ไขดัดแปลงเกมอย่างไม่เป็นทางการแพทช์ (รวมถึง การรองรับ หน้าจอกว้าง ) และพอร์ตไปยังแพลตฟอร์มอื่น ๆ เช่นPC [ 18 ]ตลอดจนช่วยใน การ อนุรักษ์วิดีโอเกม[ 17 ]

การแฮ็กเพลง

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

การแฮ็กเพลงนั้นค่อนข้างหายาก เนื่องจากเกมต่างๆ มีวิธีการจัดเก็บข้อมูลเพลงที่หลากหลาย (จึงทำให้ยากต่อการค้นหาและแก้ไขข้อมูลนี้) รวมถึงความยากลำบากในการแต่งเพลงใหม่ (หรือการนำเพลงจากเกมอื่นมาใช้) เนื่องจากการแฮ็กเพลงนั้นไม่ค่อยพบเห็น การแฮ็กหลายๆ ครั้งจึงไม่มีการเพิ่มเพลงที่นำมาจากเกมอื่นหรือแต่งขึ้นใหม่เข้าไป อย่างไรก็ตาม การแฮ็กบางอย่าง เช่น การแฮ็ก Super Mario World ล่าสุด ได้ใช้วิธีนี้ในการเพิ่มเพลงที่สร้างขึ้นเอง โดยบางครั้งใช้เครื่องดนตรีพิเศษที่ไม่พบในเกมต้นฉบับ เกมอื่นๆ ที่ใช้การแฮ็กเพลงเป็นส่วนหนึ่งของการวิจัยและชุมชนการแฮ็ก ได้แก่ เกม Mega Man บน NES , Final Fantasy VI และ เกมSonic the Hedgehogบน Sega Mega Drive (Genesis)

เนื่องจากเกม Game Boy Advance จำนวนมากใช้เอนจิ้น M4A (เรียกกันอย่างไม่เป็นทางการว่า "Sappy Driver" และชื่ออย่างเป็นทางการคือ "MusicPlayer2000" หรือ MP2k) สำหรับประมวลผลเพลง โปรแกรม SapTapper จึงสามารถใช้ในการแก้ไขข้อมูลเพลงของ Game Boy Advance ได้ นอกจากนี้ยังมีโปรแกรมยูทิลิตี้อื่นๆ ที่สร้างขึ้นเพื่อใช้งานกับเอนจิ้นนี้ เช่นSappy 2006อีกตัวอย่างหนึ่งของการใช้เอนจิ้นเดียวกันในเกมต่างๆ คือบน Nintendo 64 ซึ่งเกมส่วนใหญ่ใช้รูปแบบเดียวกัน แม้ว่าจะมีชุดเสียงที่แตกต่างกันในแต่ละเกมก็ตาม โปรแกรมยูทิลิตี้ที่เรียกว่าN64 Midi Toolถูกสร้างขึ้นเพื่อแก้ไขลำดับเสียงที่เกม Nintendo 64 ส่วนใหญ่ใช้ อย่างไรก็ตาม โปรแกรมนี้ไม่ครอบคลุมเกมของ Nintendo เองที่ใช้เอนจิ้นที่แตกต่างออกไปเล็กน้อย เช่นSuper Mario 64

Sega Mega Drive (Genesis) มีเกมจำนวนหนึ่งที่ใช้เอ็นจิ้นเสียงของบริษัทเอง ซึ่งโดยทั่วไปเรียกว่า "SMPS" (หรือที่นักพัฒนาบางรายเรียกว่า "Sound-Source") สำหรับการสร้างเพลงและเอฟเฟกต์เสียง ซึ่งมีให้เลือกทั้งเวอร์ชัน68000และZ80 [ 19 ] [ 20 ]เอ็นจิ้นนี้ใช้ประโยชน์จาก ชิปเสียง YM2612และSN76489ของคอนโซล และส่วนใหญ่ใช้ในเกมต่างๆ ที่พัฒนาโดยญี่ปุ่นสำหรับระบบนี้ (รวมถึงเกมของ Sega เองด้วย) [ 20 ]บางเกมมีเวอร์ชันที่แก้ไขของเอ็นจิ้นที่ปรับแต่งมาโดยเฉพาะสำหรับเกมเหล่านั้น แฮกเกอร์ประสบความสำเร็จในการวิศวกรรมย้อนกลับของเอนจิ้นเวอร์ชันต่างๆ เพื่อให้ได้งานวิจัยและเอกสารประกอบเป็นเวลาหลายทศวรรษ (รวมถึงการดึงข้อมูลเสียงทั้งหมด) [ 21 ]และยังอนุญาตให้สร้างยูทิลิตี้ต่างๆ[ 22 ]ที่สามารถแก้ไขและสร้างเพลง (และเอฟเฟกต์เสียง) สำหรับเกมที่ใช้เอนจิ้น SMPS (โดยเฉพาะอย่างยิ่ง เกม Sonic the Hedgehog ) ผลงานเพลงและการเรียบเรียงจำนวนมากที่สร้างขึ้นภายใต้เอนจิ้น SMPS ได้ถูกนำไปเผยแพร่ในSteam Workshop [ 23 ]

การขยาย ROM

โดยทั่วไปแล้ว แฮ็กเกอร์ ROM ไม่สามารถเพิ่มเนื้อหาลงในเกมได้ แต่สามารถเปลี่ยนแปลงเนื้อหาที่มีอยู่ได้ ซึ่งสามารถแก้ไขได้ด้วยวิธีการที่เรียกว่าการขยาย ROM (ROM expansion ) โดยการเพิ่มขนาดโดยรวมของอิมเมจ ROM ทำให้มีพื้นที่สำหรับเนื้อหาเพิ่มเติม และส่งผลให้เกมมีขนาดใหญ่ขึ้น ความยากง่ายในการทำเช่นนี้แตกต่างกันไปขึ้นอยู่กับระบบที่สร้างเกมนั้นขึ้นมา ตัวอย่างเช่น การขยาย ROM ของ NES อาจทำได้ยากหรือเป็นไปไม่ได้เลยเนื่องจากตัวจัดการหน่วยความจำ (mapper)ที่เกมใช้ ตัวอย่างเช่น หากตัวจัดการหน่วยความจำอนุญาตให้ใช้ 16 ธนาคาร ROM และใช้ไปทั้งหมดแล้ว การขยาย ROM ต่อไปจะเป็นไปไม่ได้หากไม่แปลงเกมไปใช้ตัวจัดการหน่วยความจำอื่น ซึ่งอาจทำได้ง่ายหรือยากมาก ในทางกลับกัน การขยาย ROM ของ Sega Mega Drive (Genesis) หรือ SNES นั้นค่อนข้างตรงไปตรงมา เว้นแต่ว่าเกมจะใช้การสลับธนาคาร (bank switching ) ในการใช้พื้นที่ที่เพิ่มเข้ามานั้น ส่วนหนึ่งของโค้ดเกมจะต้องได้รับการแก้ไขหรือเขียนใหม่ (ดูการแฮ็ก Assemblyด้านบน) เพื่อให้เกมรู้ว่าจะต้องค้นหาที่ไหน อีกประเภทหนึ่งของการขยาย ROM ที่ทำได้ค่อนข้างง่ายคือ ROM ของ Game Boy Advanceซึ่งโดยทั่วไปจะมีขนาดเล็ก แต่พื้นที่หน่วยความจำที่มีอยู่บางครั้งอาจเกินขนาดไปได้หลายเท่าตัว สูงสุดถึง 17 เท่า

การกระจาย

เมื่อการแฮ็กเสร็จสมบูรณ์ (หรือเวอร์ชันที่ไม่สมบูรณ์ถือว่าเหมาะสมสำหรับการเผยแพร่ชั่วคราว) ก็จะถูกเผยแพร่ลงบนอินเทอร์เน็ตเพื่อให้ผู้อื่นเล่นได้ วิธีที่ยอมรับกันโดยทั่วไปคือการสร้างแพทช์ที่ไม่เป็นทางการ (ในรูปแบบ IPS หรือรูปแบบอื่น ๆ) ที่สามารถนำไปใช้กับ ROM ที่ไม่ได้แก้ไขได้[ 1 ]สิ่งนี้และโดยปกติแล้วเอกสารบางรูปแบบจะถูกใส่ไว้ในไฟล์เก็บถาวรและอัปโหลดไปยังที่ใดที่หนึ่ง IPS เป็นรูปแบบสำหรับบันทึกความแตกต่างระหว่างไฟล์ไบนารีสองไฟล์ (ในกรณีนี้ ระหว่าง ROM ที่ไม่ได้แก้ไขและ ROM ที่ถูกแฮ็ก) และเหมาะสมสำหรับการแฮ็ก ROM [ 24 ] IPS ยังคงใช้ในปัจจุบันสำหรับแพทช์ขนาดเล็ก อย่างไรก็ตาม เนื่องจากขนาดของ ROM มีขนาดใหญ่ขึ้น รูปแบบนี้จึงเลิกใช้ ส่งผลให้มีการสร้างรูปแบบไฟล์ใหม่ ๆ ขึ้นมา เช่น NINJA และ PPF (หรือที่รู้จักกันในชื่อ " PlayStation Patch Format") PPF ยังคงใช้ในปัจจุบันเพื่อแก้ไขไฟล์ขนาดใหญ่ เช่นอิมเมจ ISO (รวมถึง อิมเมจ CD-ROM ) เช่นเดียวกับ เกม Nintendo 64รูปแบบแพทช์ใหม่ UPS ก็ได้รับการพัฒนาโดยชุมชนแฮ็ก ROM ซึ่งออกแบบมาเพื่อเป็นผู้สืบทอดต่อจาก IPS และ PPF [ 25 ] รูปแบบการแก้ไขที่ใหม่กว่าคือระบบการแก้ไข APS ซึ่งได้รับการพัฒนาโดยแฮกเกอร์ ROM Game Boy Advance ที่ทุ่มเท[ 26 ]เมื่อเปรียบเทียบกับรูปแบบการแก้ไขอื่นๆ ระบบ APS มีประสิทธิภาพด้านพื้นที่มากกว่า สามารถย้อนกลับได้ และเร็วกว่ารุ่นก่อนหน้า[ 27 ]

จุดประสงค์หลักของการแจกจ่ายแฮ็กในรูปแบบแพทช์คือการหลีกเลี่ยงแง่มุมทางกฎหมายของการแจกจ่ายอิมเมจ ROM ทั้งหมด (และยังช่วยบรรเทาปัญหาลิขสิทธิ์ที่อาจเกิดขึ้นเมื่อแจกจ่ายโค้ดที่มีลิขสิทธิ์[ 28 ] ) แพทช์จะบันทึกเฉพาะสิ่งที่เปลี่ยนแปลงใน ROM เท่านั้น ดังนั้นการแจกจ่ายแพทช์จึงมักไม่ได้แจกจ่ายส่วนใดส่วนหนึ่งของเกมต้นฉบับ แพทช์มักมีขนาดเล็กกว่าอิมเมจ ROM แบบเต็มมาก (ROM ของ NES อาจมีขนาดตั้งแต่ 8  KB ถึง 2  MB; ROM ของ Super NES อาจมีขนาดตั้งแต่ 256  KB ถึง 6  MB; และ ROM ของ Sega Mega Drive (Genesis) อาจมีขนาดตั้งแต่ 512  KB ถึง 4  MB)

ในตัวอย่างใหม่ของการจัดจำหน่ายที่ถูกกฎหมาย Sega ได้เปิด ตัวศูนย์กลางเสมือนจริงบน Steamสำหรับคอลเลกชันเกม Sega Mega Drive (Genesis) ก่อนหน้านี้ของตน ซึ่งมีชื่อว่าSega Mega Drive Classics Hubศูนย์กลางนี้นอกจากจะอนุญาตให้ผู้เล่นเล่นเกมเก่าเหล่านี้ในรูปแบบจำลองแล้ว ยังใช้ประโยชน์จากการสนับสนุนเนื้อหาที่ผู้ใช้สร้างขึ้นของ Steam ผ่าน Steam Workshop ซึ่งอนุญาตให้มีการแจกจ่าย ROM hacks ของเกมใดๆ ที่นำเสนออย่างเป็นทางการ[ 29 ] [ 23 ]

การใช้งาน

ROM ที่แก้ไขแล้วมักจะเล่นบนโปรแกรมจำลอง อย่างไรก็ตาม เป็นไปได้ที่จะเล่น ROM ที่แก้ไขแล้วบนฮาร์ดแวร์ดั้งเดิม[ 30 ]ตลับปลายทางอาจเป็นตลับดั้งเดิมที่ดึง ROM ที่ยังไม่ได้แก้ไขออกมา (ซึ่งโดยปกติจะเกี่ยวข้องกับการเปลี่ยนชิป ROM เดิมด้วยชิปใหม่) หรือตลับที่เข้ากันได้ประเภทเดียวกัน เช่น ตลับแฟลช ในกรณีของสื่อออปติคอลจะเกี่ยวข้องกับการเผาเกมที่แก้ไขแล้วลงบนแผ่นดิสก์ออปติคอลที่บันทึกได้ เช่นCD-Rวิธีนี้เป็นที่นิยมอย่างยิ่งสำหรับการแปลโดยแฟนๆเกมโฮมบรูว์ ต้นแบบ เกมที่ไม่มีการผลิตตลับ ROM หรือแผ่นดิสก์ออปติคอล หรือสำหรับเกมที่ต้องการจังหวะเวลาที่แม่นยำหรือองค์ประกอบอื่นๆ ของฮาร์ดแวร์ดั้งเดิมที่ไม่มีในโปรแกรมจำลอง

ระบบและเกม

การแฮ็ก ROM ส่วนใหญ่มักทำกับ เกม NESและSNESเนื่องจากเกมเหล่านี้มีขนาดเล็กและเรียบง่ายกว่าเกมของคอนโซลที่ทันสมัยกว่า เช่นNintendo 64หรือNintendo DSเกมสำหรับGame Boy , Game Boy ColorและGame Boy Advanceก็ได้รับความนิยมในการแฮ็กเช่นกัน รวมถึงเกมสำหรับPlayStationและSega Mega Drive (Genesis)ในระดับที่น้อยกว่า อย่างไรก็ตาม เกมที่ออกแบบมาสำหรับคอนโซลรุ่นใหม่กว่าก็ไม่ได้รอดพ้นจากการแฮ็ก และเนื่องจากคอมพิวเตอร์เร็วขึ้นเรื่อย ๆ และมีการเขียนโปรแกรมและยูทิลิตี้มากขึ้น การแฮ็ก PlayStation, Sega Mega Drive (Genesis), Nintendo 64 และ Nintendo DS จึงเกิดขึ้นมากขึ้น

ในบรรดาเกมเหล่านั้น เกมยอดนิยมที่เล่นกันก็คือเกมยอดนิยมที่ถูกแฮ็กเช่นกัน มีการปล่อยเกมที่ถูกแฮ็กออกมามากมายหลายเกม เช่น เกมSonic the Hedgehog , Mario , Mario Kart , Pokémon , Chip's Challenge , Castlevania , Final Fantasy , The Legend of Zelda , Mega Man , Fire Emblem , EarthBound , Super Metroidและอีกมากมาย

เกมอาร์เคดที่ถูกดัดแปลงอย่างโดดเด่นเกมหนึ่งคือStreet Fighter II: Rainbow Editionสำหรับเครื่องCP Systemซึ่งมีการเพิ่มความเร็วในการเล่นเกมและท่าพิเศษใหม่ๆ ความสำเร็จของเกมนี้กระตุ้นให้ Capcom ปล่อยStreet Fighter II: Hyper Fighting ออกมา เพื่อตอบโต้ในรูปแบบเกมอย่างเป็นทางการ

นิตยสารคอมพิวเตอร์หลายฉบับในช่วงทศวรรษ 1980 และ 1990 ได้ตีพิมพ์ คอลัมน์ โกง รายเดือน สำหรับแฮ็กที่ทำการเปลี่ยนแปลงเกม โดยมุ่งเน้นไปที่POKE แต่ละรายการ หรือรายการเล็กๆ เช่นYour Sinclairที่มีคอลัมน์ชื่อ "Program Pitstop" และ "Hacking Away" ซึ่งมีเครื่องพิมพ์และแก้ไขแผนที่ระดับสำหรับGauntlet ดั้งเดิม [ 31 ] [ 32 ] หรือ Zzap!64 ที่มี "เคล็ด ลับZzap" รวมถึงชีวิตไม่จำกัดสำหรับBomb Jack [ 33 ]

ดูเพิ่มเติม

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไม่มีชื่อบทความ

การแฮ็ก ROM คือกระบวนการ แก้ไข ภาพ ROM หรือไฟล์ ROM เพื่อเปลี่ยนแปลงหรือแก้ไขเนื้อหาภายใน โดยปกติแล้ว จะเป็นการแก้ไข เกมวิดีโอ เพื่อเปลี่ยนแปลง กราฟิก บทสนทนา ระดับ รูป แบบ การ...

ชุมชน

กลุ่มแฮ็กเกอร์ส่วนใหญ่เสนอพื้นที่เว็บสำหรับโฮสต์แฮ็กและภาพหน้าจอ (บางครั้งโฮสต์เฉพาะแฮ็กของสมาชิกในกลุ่มและโฮสต์แฮ็กเกือบทุกประเภท) กระดานข้อความ และมักจะมี ช่อง IRC...

วิธีการ

เนื่องจากข้อมูล ROM ถูกสร้างขึ้นโดยโปรแกรมเมอร์หรือทีมโปรแกรมเมอร์หลายทีม ข้อมูลจึงมีความหลากหลายมาก ต่อไปนี้คือวิธีการหลักบางส่วนที่ใช้ในการแฮ็ก ROM

การแก้ไขเลขฐานสิบหก

หนึ่งในทักษะพื้นฐานที่สุดของการแฮ็ก ROM คือ การแก้ไขเลขฐานสิบหก ซึ่งหมายถึงการแก้ไขข้อมูลเลข ฐานสิบหก ของวิดีโอเกมโดยตรงโดยใช้ โปรแกรมแก้ไขเลขฐานสิบหก โปรแกรมแก้ไขเลขฐานสิบหกเป็นหนึ่งในเครื่องมือพื้นฐานที่สุดในชุดเครื่องมือของแฮ็กเกอร์ ROM ทุกคน...