Кіріспе
Видео ойынды өңдеу техникасы
ROM-хакинг – видео ойынның графикасын, диалогтарды, деңгейлерін, ойын процесін және/немесе басқа элементтерін өзгерту үшін ойынның ROM-бейнесін немесе ROM-файлын өзгерту процесі. Мұны әдетте техникалық білімі бар видео ойын жанкүйерлері маңызды ескі ойынды жақсарту, шығармашылық ізденіс ретінде немесе ескі ойынның қозғалтқышын пайдаланып жаңа, ресми емес ойындар жасау үшін жасайды. ROM-хакинг ойынды жаңа, қызықты ойынға айналдыруға мүмкіндік береді, мұнда көптеген элементтер сақталады, сонымен қатар ойын кодында болған, бірақ ойында қолданылмаған мүмкіндіктерді ашу/қайта іске қосу мүмкіндігі бар. ROM-хакинг әдетте гекса-редактор (текст емес деректерді өңдеуге арналған бағдарлама) және түрлі арнайы құралдарды, мысалы, тайл редакторларын, сондай-ақ ойынға арналған құралдарды пайдалану арқылы жүзеге асырылады, олар әдетте деңгейлерді, заттарды және т.б. өңдеу үшін қолданылады, бірақ кейде ассемблерлер мен дебаггерлер сияқты күрделі құралдар да қолданылады. Дайын болғаннан кейін, олар әдетте эмуляторда немесе ойын консолінде ойнау үшін интернетте таратылады. Фан-аударма (ROM-хакинг қауымдастығында «аударма хакерлігі» деп аталады) – ROM-хакингінің бір түрі; сонымен қатар, ойынды бастапқы күйіне қайтаруға арналған цензураға қарсы хакингтер де бар, бұл көбінесе импортталған ескі ойындарда кездеседі, себебі баспагерлердің видео ойындарға қатысты мазмұн саясаты (әсіресе Nintendo) АҚШ-та Жапония мен Еуропаға қарағанда әлдеқайда қатаң болды; сондай-ақ, кейбір ойындар үшін нысандардың орналасуын кездейсоқ түрде өзгертетін рандомайзерлер де бар. Бұл әдістің көп бөлігі хакингтің екі түріне де қатысты болғамен, бұл мақалада ойын деңгейлерін өңдеу сияқты «шығармашылық хакингке» назар аударылады.
Қауымдастықтар
Көптеген хакерлік топтар хакерлік шабуылдар мен скриншоттарды жариялау үшін веб-жай орны ұсынады (кейде тек топ мүшелерінің хакерлік шабуылдарын немесе кез келген хакерлік шабуылдарды жариялайды), форум және көбінесе IRC арнасы болады.
Әдістер
Көптеген түрлі бағдарламашылар немесе бағдарламалау топтарымен жасалғандықтан, ROM деректері өте алуан түрлі болуы мүмкін.
Тез өңдеу
Алтылық редактор – кез келген ROM хакерінің репертуарындағы ең негізгі құралдардың бірі. Алтылық редакторлар әдетте мәтінді өңдеуге, құрылымы белгілі басқа деректерді өңдеуге (мысалы, заттардың қасиеттері) және Ассамблеяны бұзуға қолданылады. Мәтінді өңдеу – хакерліктегі ең қарапайым түрлердің бірі. Көптеген ойындар мәтінін ASCII форматында сақтамайды, сондықтан кейбір арнайы алтылық редакторлар жасалған, оларға мәтінді өңдеуді жеңілдету үшін байттардың қандай әріптерге сәйкес келетінін көрсетуге болады; мұндай байт-әріп байланыстарын анықтайтын файл «кесте» файлы деп аталады. Басқа ойындар қарапайым мәтіндік сығымдау техникаларын қолданады (мысалы, байттық жұп кодтау, сондай-ақ қос плитка кодтау немесе DTE, онда екі немесе одан көп әріптердің белгілі бір комбинациялары бір байт ретінде кодталады), оны тиісті жабдықталған алтылық редактормен өңдеуге болады. Егер осы деректердің құрылымы мен орналасуы белгілі болса және осы ақпаратты өңдеуге арналған ойынға арналған арнайы редактор болмаса, кейіпкерлердің/заттардың қасиеттері сияқты нәрселерді өңдеу үшін алтылық редактор таңдау құралы болып табылады. Кейбір тәжірибелі хакерлер алтылық редактормен деңгейлерді өңдеуге тырысады, бірақ бұл өте қиын (деңгейді сақтау форматы алтылық редакторда көрсетілгенге ұқсас ойындардан басқа).
Графикалық өңдеу
Тағы бір негізгі хакерлік дағды – графикалық хакерлік, ол ойын ортасының, кейіпкерлерінің, шрифтерінің немесе басқа да элементтерінің сыртқы түрін өзгерту болып табылады. Графикалық деректердің форматы консольден консольге өзгереді, бірақ көптеген алғашқы консольдер (NES, Super NES, Game Boy және т.б.) графиканы 8x8 пикселдік дерек бірліктерінен тұратын тақташаларда сақтайды, олар экранда қажетті нәтиже алу үшін орналастырылады. Мұндай тақташаларды алтылық редактормен өңдеуге де болады, бірақ көбінесе тақташа редакторы (мысалы, Tile Layer немесе Tile Molester) арқылы жасалады, ол ROM деректерін графикалық түрде көрсетіп, тақташаларды табуға және өңдеуге мүмкіндік береді. Графикалық хактар қарапайым өзгертулерден (мысалы, Мариоға афро шаш немесе Луиджиге гольф таяқшасын беру) бастап, кейіпкерлерді бір ойыннан екіншісіне «көшіруге» (мысалы, I және V буын Pokémon ойындары үшін кейінгі буын Pokémon-ның пикселді «ретро стильді» суреттерін жасауға) және толыққанды тақырыптық өзгерістерге (әдетте палитраны өзгертумен бірге; төменде қараңыз) дейін жетеді. Күрделі графикалық хакерлік тек тақташалар мен түстерді ғана емес, сонымен қатар тақташалардың орналасуын немесе тақташа топтарын жасау әдісін өзгерту арқылы соңғы көрініске көбірек икемділік пен бақылау мүмкіндігін береді. Бұл алтылық редактор немесе арнайы құрал (белгілі бір ойын немесе жүйе үшін) арқылы жүзеге асырылады. Графикалық хакерлікке мысалдар: толық емес Pokémon Torzach, Pokémon FireRed ойынының хакерлігі, ол ойынға Pokémon-ның және тақташалардың жаңа буынын қосуға тырысты, сондай-ақ Super Mario Land 2 DX: 6 Golden Coins – түпнұсқа ойынның толық түсті нұсқасы, ол толық түс қолдауын (түпнұсқа ойын тек сұр түсті болған) қосты, сонымен қатар түпнұсқа ойында кездесетін экранның жыпылықтау мәселелерін де жойды.
Палитраны өңдеу
Хакерліктің тағы бір көп тараған түрі – палитралық хакерлік, онда ойыншының ойында көретін түстерін өзгерту үшін түс мәндері өзгегертіледі (бұл көбінесе графикалық хакерлікпен бірге жасалады); Палитра мәндері әдетте Хекс форматында сақталады. Бұл NES ойындары үшін өте оңай, себебі олардың графикасы алдын ала анықталған түстер жиынтығын пайдаланады, олардың ішінде ойын түстерді таңдайды (YIQ негізіндегі түстік палитраны қолданады); палитралық хакерлік жағдайында осы түстердің қайсысы таңдалғанын өзгерту қажет. Super NES және Sega Mega Drive/Genesis ойындары, сондай-ақ абсолютті RGB түс мәндерін сақтайтын басқа жүйелердегі ойындар бұл мәселені сәл күрделендіреді. Палитра редакторлары көбінесе қарапайым болады және жиі деңгей редакторларымен немесе ойынға арналған графикалық редакторлармен бірге келеді.
Деңгейді өңдеу
ROM-ды өзгертудің ең танымал түрлерінің бірі – деңгейді өңдеу, ол ойын деңгейлерін немесе карталарын өзгертуді немесе жаңадан құруды қамтиды. Мұндай өзгерістер көбінесе нақты бір ойынға арналған, соған қарай жасалған редактордың (деңгей редакторы деп аталады) көмегімен жасалады. Деңгейді өңдеу ойынды қиындату, ойын сюжетінің барысын өзгерту немесе ескі ойынға жаңа сезім сыйлау үшін қолданылады. Көрнекі графиканы кең ауқымда өзгертумен бірге, ойынның сыртқы түрі мен атмосферасы толығымен өзгеруі мүмкін.
Деректерді өңдеу
Көптеген хактардың (әсіресе рөлдік бейне ойындарының) негізгі бөлігі – кейіпкерлердің, заттардың және жаулардың қасиеттері сияқты деректерді өңдеу болып табылады. Мұндай өңдеу әдетте деректердің орналасуы мен құрылымы белгілі болған жағдайда "қолмен" (шештейтін редактор арқылы) немесе осы мүмкіндікке ие ойынға арналған редактормен жасалады. Осылайша, хакер қару-жарақтардың жұмыс істеуін, жаулардың күшін немесе олардың мінез-құлқысын өзгерте алады. Бұл ойынды жеңілдету немесе қиындату мақсатында, сондай-ақ ойыншыға жаңа жағдайлар жасау үшін жасалуы мүмкін.
Құрастыруды бұрмалау
Ең қуатты, және мүмкін ең қиын хакерлік техника – ойынның өзінің кодын өңдеу, бұл процесс ASM хакерлігі деп аталады ("ASM" – "ассемблер", CPU-дың тікелей орындайтын төменгі деңгейдегі бағдарламалау тілі).
Музыкалық хакерлік
Музыкалық хактар көптеген хактарда салыстырмалы түрде сирек кездеседі, себебі ойындар музыкалық деректерді сақтаудың алуан түрлі тәсілдерін пайдаланады (сондықтан осы деректерді табу және өзгерту қиын) және жаңа музыка шығарудың (немесе басқа ойыннан музыканы импорттаудың) өзіндік қиындықтары бар. Музыканы бұзу жиі кездеспейтіндіктен, көптеген хактарға импортталған немесе жаңадан құрастырылған музыка қосылмайды. Бұл ереженің ерекшеліктерін ең соңғы Super Mario World хактарында кездестіруге болады, онда қолданушылар жасаған музыкалар түпнұсқа ойында жоқ жаңа музыкалық аспаптарды қамтуы мүмкін. Музыканы хакерлеу зерттеу және хакерлік қауымдастықтарының бір бөлігі болып табылатын NES Mega Man ойындары, Final Fantasy VI және Mega Drive (Genesis) Sonic the Hedgehog ойындары сияқты ойындарда да кездеседі. Көптеген Game Boy Advance ойындары музыка үшін M4A Engine (сонымен қатар "Sappy Driver" деп те аталады) қолданады, ал SapTapper бағдарламасы Game Boy Advance музыкалық деректерін хактеп өзгертуге мүмкіндік береді. Sappy 2006 сияқты, осы қозғалтқышпен жұмыс істеу үшін тағы да бірнеше құралдар жасалды. Бір қозғалтқыштың бірнеше ойында қолданылуының тағы бір мысалы – Nintendo 64, онда көптеген ойындар бірдей форматты пайдаланады; алайда, олар әртүрлі дыбыс банктерін қолданады. Nintendo 64 ойындарының көпшілігі қолданатын реттіліктерді өңдеу үшін N64 Midi Tool деп аталатын құрал жасалды, бірақ ол Super Mario 64 сияқты сәл өзгеше қозғалтқышты пайдаланатын түпнұсқа Nintendo 64 ойындарын қамтымайды. Sega Mega Drive/Genesis ойындарының бірнешесінде "SMPS" деп бейресми аталатын дыбыс қозғалтқышы қолданылады, ол 68k және Z80 негізіндегі нұсқаларда ұсынылды. Бұл дыбыс қозғалтқышы жүйе үшін жасалған көптеген жапондық ойындарда кеңінен қолданылғандықтан, оны көптеген хакерлер ондаған жылдар бойы зерттеп келді. Бүгінгі күні SMPS қозғалтқышын пайдаланатын ойындардың музыкасын өзгертуге арналған әртүрлі құралдар бар (әсіресе Sonic the Hedgehog ойындары үшін), олардың көпшілігі Steam Workshop-қа көшірілді.
ROM кеңейтуі
Жалпы алғанда, ROM хакері ойынға жаңа мазмұн қоса алмайды, тек қолданыстағы мазмұнды өзгерте алады. Бұл шектеу ROM кеңейту арқылы еңсеріледі, осы арқылы ROM бейнесінің жалпы көлемі ұлғаяды, соның салдарынан көбірек мазмұнға және үлкен ойынға орын ашылады. Мұның қиындығы ойын жасалған платформаға байланысты өзгереді. Мысалы, NES ROM-ды кеңейту, ойын қолданатын карта жасаушыға байланысты қиын немесе тіпті мүмкін емес болуы мүмкін. Мысалы, егер карта жасаушы 16 ROM блогына рұқсат берсе және олардың барлығы қолданылса, ойынды басқа картаға түрлендірмей ROM-ды одан әрі кеңейту мүмкін емес, бұл оңай немесе өте қиын болуы мүмкін. Ал SNES ойынын кеңейту (салыстырмалы түрде) оңай. Қосылған кеңістікті пайдалану үшін ойын кодын өзгерту немесе қайта жазу қажет (жоғарыдағы Ассамблея хакерлігін қараңыз), осылай ойын қайда іздеу керектігін біледі. Тағы бір оңай кеңейтілетін ROM түрі – Game Boy Advance ROM-дары. ROM-дардың өзі көбінесе кішкентай болады, бірақ қол жетімді жад көлемі кейде одан 17 есеге дейін артық болуы мүмкін.
Тарату
Хак аяқталғаннан кейін (немесе толық емес нұсқа аралық шығарылымға жарамды деп танылса) ол басқалар ойнауы үшін Интернетке жарияланады. Мұны жасаудың қалыпты жолы – өзгертілмеген ROM-ға қолданылатын ресми емес жаңарту (IPS форматында немесе басқа форматтарда) жасау. IPS әлі де кішкентай жаңартулар үшін қолданылады, бірақ ROM-дар үлкен болған сайын бұл форматтың пайдасы болмай, NINJA және PPF (сонымен қатар «PlayStation Patch Format» деп те аталады) сияқты көптеген файл форматтары пайда болды. PPF әлі де қолданылады, әсіресе үлкен файлдарды, мысалы ISO CD ROM бейнелерін, сондай-ақ Nintendo 64 ойындарын жаңарту үшін. ROM хакерлерінің қауымдастығы IPS және PPF-тің ізбасары ретінде UPS жаңа жаңарту форматын жасады. Соңғы уақытта APS жаңарту жүйесі де Game Boy Advance ROM хакерімен әзірленді. APS жүйесі көбірек орынды тиімді пайдаланады, кері қайтаруға болады және бұрынғысына қарағанда жылдам. Хакты жаңарту түрінде тарату мақсаты – ROM-ның толық кескіндерін таратудың заңдық мәселелерін болдырмау; жаңарту ROM-дағы өзгерістерді ғана тіркейді, сондықтан оны тарату әдетте бастапқы ойынның бөліктерін тарату болып табылмайды. Жаңартулар әдетте толық ROM кескінінен әлдеқайда кішкентай болады (NES ROM 8 КБ-тан 2 МБ-қа дейін, Super NES ROM 256 КБ-тан 6 МБ-қа дейін, ал Mega Drive/Genesis ROM-дары 512 КБ-тан 4 МБ-қа дейін жете алады). Жоғарыда айтылғандай, жаңартулар көбінесе пайдаланушы жасаған код өзгерістерін ғана қамтиды, авторлық құқықпен қорғалған кодты емес, сондықтан оларды тарату заңсыз емес. Заңды таратудың жаңа мысалы ретінде Sega өзінің бұрынғы Mega Drive/Genesis ойындарының жинағы үшін Steam негізіндегі виртуалды орталықты – Sega Mega Drive Classics Hub-ты шығарды. Орталық ойыншыларға осы ескі ойындардың эмуляцияланған нұсқаларын ойнауға мүмкіндік беруден басқа, Steam Workshop арқылы пайдаланушы жасаған контентті қолдау арқылы ұсынылған ойындардың кез келген ROM-ын хактарды таратуға ресми түрде рұқсат береді.
Қолданылуы
Жаңартылған ROM-дар көбінесе эмуляторларда ойнатылады, бірақ жаңартылған ROM-дарды түпнұсқа аппараттық құрылғыда ойнату да мүмкін. Мақсатты картридж – бастапқы жаңартылмаған ROM-ның алынған түпнұсқа картриджі болуы мүмкін (мұнда түпнұсқа ROM чипі жаңасына ауыстырылады), немесе сол типтегі басқа да үйлесімді картридж, мысалы, флэш-картридждер. Бұл әсіресе жанкүйерлер жасаған аудармалар, үйде жасалған ойындар, прототиптер, ROM картридждері жарық көрмеген ойындар, немесе эмуляторларда қолжетімсіз нақты уақытты немесе түпнұсқа аппараттық құрылғының басқа да элементтерін қажет ететін ойындар үшін танымал.
Жүйелер мен ойындар
ROM-ды бұзудың көп бөлігі NES және SNES ойындары арқылы жасалады (соның ішінде Sega Mega Drive/Genesis ойындары да бар), себебі мұндай ойындар Nintendo 64 немесе Nintendo DS сияқты жаңартылған консольдардың ойындарымен салыстырғанда кішкентай және қарапайым. Game Boy, Game Boy Color және Game Boy Advance ойындары да, сондай-ақ PlayStation ойындары да аз дәрежеде бұзуға танымал. Дегенмен, жақындағы консольдарға арналған ойындар да бұзудан қорғалмайды, және компьютерлер уақыт өте келе жылдамдаған сайын және көбірек бағдарламалар мен құралдар жазылған сайын, PlayStation, Nintendo 64 және Nintendo DS ойындарында бұзулар көбейді. Олардың ішінде, танымал ойындар бұзуға жиі ұшырайды; Sonic the Hedgehog сериясы, Mario сериясы (оның ішінде Mario Bros., Super Mario Bros., Super Mario Bros. 2, Super Mario Bros. 3, Super Mario Land, Super Mario Land 2: 6 Golden Coins, Super Mario 64 және Super Mario World), Mario Kart сериясы (әсіресе Super Mario Kart, Mario Kart Wii, Mario Kart 7 және Mario Kart DS), Pokémon сериясы, Chip's Challenge, Castlevania, Final Fantasy, The Legend of Zelda, Mega Man сериясы, Fire Emblem сериясы, EarthBound, Super Metroid және тағы да көптеген ойындар бұзылған. Street Fighter II: Rainbow Edition ойыны ерекше аталады, ол арттырылған ойын жылдамдығымен және жаңа арнайы қимылдармен ерекшеленді. Бұл ойынның табысы Capcom компаниясын Street Fighter II: Hyper Fighting-ті ресми жауап ретінде шығаруға итермеледі. Your Sinclair журналы "Программалық тоқтау" атты ай сайынғы рубрика жариялады. Бұл негізінен ойындарға арналған алдау кодтарына бағытталған, сонымен қатар бастапқы Gauntlet үшін деңгей картасын басып шығару құралы, сондай-ақ сол ойынның толық деңгей редакторы да ұсынылды.