Hackování ROM
On 28 prosince, 2021 by adminProtože data ROM vytvořilo mnoho různých programátorů nebo programátorských týmů, mohou být velmi různorodá.
Úprava hexadecimálního souboruEdit
Hexadecimální editor je jedním z nejzákladnějších nástrojů v repertoáru každého hackera ROM. Hexadecimální editory se obvykle používají k úpravě textu a k úpravě dalších dat, jejichž struktura je známá (například vlastnosti prvků), a k hackování sestavy.
Úprava textu je jednou z nejzákladnějších forem hackování. Mnoho her neukládá svůj text ve formě ASCII, a proto byly vyvinuty některé specializované hexadecimální editory, kterým lze říci, jaké hodnoty bajtů odpovídají jakému písmenu (písmenům) abecedy, aby se usnadnila editace textu; soubor, který definuje tyto vztahy bajt=písmeno, se nazývá „tabulkový“ soubor. Jiné hry používají jednoduché techniky komprese textu (například kódování dvojic bajtů, nazývané také kódování dvou dlaždic nebo DTE, kdy jsou určité kombinace dvou nebo více písmen zakódovány jako jeden bajt), které může vhodně vybavený hexadecimální editor usnadnit při editaci.
Hexadecimální editor je vhodným nástrojem pro editaci takových věcí, jako jsou vlastnosti postav/předmětů, pokud je známa struktura a umístění těchto dat a neexistuje žádný editor specifický pro danou hru, který by tyto informace mohl upravovat. Někteří neohrožení hackeři také provádějí úpravy úrovní pomocí hexadecimálního editoru, ale to je velmi obtížné (s výjimkou her, jejichž formát ukládání úrovní se velmi podobá tomu, jak je prezentován v hexadecimálním editoru).
Úprava grafikyEdit
Další základní hackerskou dovedností je hackování grafiky, což je změna vzhledu herního prostředí, postav, písma nebo jiných podobných věcí. Formát grafických dat se u jednotlivých konzolí liší, ale většina těch prvních (NES, Super NES, Game Boy atd.) ukládá grafiku v dlaždicích, což jsou datové jednotky o velikosti 8×8 pixelů, které se na obrazovce uspořádají tak, aby vznikl požadovaný výsledek. Úprava těchto dlaždic je možná také pomocí hexadecimálního editoru, ale obvykle se provádí pomocí editoru dlaždic (jako je Tile Layer nebo Tile Molester), který dokáže graficky zobrazit data ROM a také vyhledávat a upravovat dlaždice.
Grafické hacky mohou být různé, od jednoduchých úprav (jako je přidání Luigiho golfové hole nebo vytvoření pixelových spritů pro Pokémony pozdější generace) přes „portování“ postav z jedné hry do druhé až po úplné tematické změny (obvykle s doprovodnou změnou palety; viz níže).
Složitější hackování grafiky zahrnuje změnu nejen dlaždic a barev, ale také způsobu uspořádání dlaždic nebo generování skupin dlaždic, což poskytuje větší flexibilitu a kontrolu nad konečným vzhledem. Toho se dosahuje pomocí hexadecimálních úprav nebo specializovaného nástroje (buď pro konkrétní hru, nebo pro konkrétní systém). Dobrým příkladem grafického hacku je nedokončený Pokémon Torzach, hack, který se snažil přidat do hry celou novou generaci Pokémonů a dlaždic. Tento hack byl mezitím zrušen, ale stále slouží jako dobrý příklad toho, čeho lze s dostupnými nástroji dosáhnout.
Úprava paletyEdit
Další běžnou formou hackování je hackování palety, kdy se upravují hodnoty barev, aby se změnily barvy, které hráč vidí ve hře (to jde často ruku v ruce s grafickým hackováním); hodnoty palety se běžně ukládají v hexadecimálním tvaru. To je poměrně snadné u her NES, jejichž grafika používá předem definovanou sadu barev, mezi kterými hra vybírá; hackování palety v tomto případě znamená změnu, které z těchto barev jsou vybrány. O něco složitější je to u her Super NES a her pro jiné systémy, které ukládají absolutní hodnoty barev RGB. Editory palet jsou obvykle jednoduché a často jsou s editory úrovní nebo grafickými editory specifickými pro hru.
Editace úrovníEdit
Jedna z nejoblíbenějších forem hackování ROM, editace úrovní, zahrnuje úpravu nebo přepracování úrovní nebo map hry. To se téměř výhradně provádí pomocí editoru speciálně upraveného pro danou hru (tzv. editoru úrovní). Úpravy úrovní mohou být prováděny za účelem zvýšení náročnosti hry, změny průběhu děje hry nebo jen proto, aby stará hra dostala něco nového. V kombinaci s rozsáhlým hackováním grafiky může hra získat zcela jiný vzhled a dojem.
Úprava datEdit
Jádrem mnoha hacků (zejména RPG her) je úprava dat, například vlastností postav, předmětů a nepřátel. To se obvykle provádí buď „ručně“ (pomocí hexadecimálního editoru), pokud je známo umístění a struktura dat, nebo pomocí editoru specifického pro hru, který tuto funkci má. Díky tomu může hacker změnit fungování zbraní, sílu nepřátel nebo jejich chování atd. Tímto způsobem lze hru usnadnit nebo ztížit, případně vytvořit nové scénáře, kterým bude hráč čelit.
Assembly hackingEdit
Nejmocnější a pravděpodobně nejobtížnější technikou hackování je úprava skutečného kódu hry, proces nazývaný ASM hacking („ASM“ znamená „assembly“, což odkazuje na typ programovacího jazyka používaného pro rané videohry). Pro hackování ASM neexistuje žádný pevný vzor, protože kód se v jednotlivých hrách značně liší, ale většina zkušených hackerů ASM používá buď emulátor vybavený vestavěným debuggerem nebo trasovačem, nebo spustí ROM přes disassembler, pak analyzuje kód a upraví jej pomocí hexadecimálního editoru nebo assembleru podle svých potřeb. Ačkoli je to v porovnání s výše uvedenými relativně jednoduchými metodami poměrně náročné, při hackování ASM je možné cokoli (samozřejmě v rámci možností hardwaru/softwaru herní platformy), od změny umělé inteligence nepřátel až po změnu způsobu generování grafiky. (Možnosti jsou samozřejmě stále omezeny schopností hackera pochopit a upravit existující kód.)
Pokud vývojáři použili typovaný jazyk, hacker může být schopen zkompilovat vlastní kód hry ve stejném jazyce, pokud má přístup k vhodnému kompilátoru. Jedním z takových příkladů může být použití jazyka C k hackování her pro Nintendo 64, protože MIPS-GCC umí kompilovat kód pro Nintendo 64.
Hackování hudbyUpravit
Hakování hudby je poměrně vzácné vzhledem k velkému množství způsobů, jakými hry ukládají hudební data (proto je obtížné tato data najít a upravit), a obtížím při skládání nové hudby (nebo při přenosu hudby z jiné hry). Vzhledem k tomu, že krakování hudby je velmi neobvyklé, mnoho hacků neobsahuje žádnou portovanou/komponovanou hudbu. K hackování hudebních dat Game Boy Advance však lze použít program SapTapper, protože mnoho her pro Game Boy Advance používá pro hudbu engine M4A (nazývaný také „Sappy Driver“). Pro práci s tímto enginem byly vytvořeny různé další utility, například Sappy 2006.
Dalším případem použití stejného enginu mezi hrami je Nintendo 64, ve kterém většina her používá stejný formát; i když používají různé zvukové banky. Pro úpravu sekvencí, které používá většina her pro Nintendo 64, byl vytvořen nástroj známý jako N64 Midi Tool, který však nepokrývá first-party tituly pro N64, které používají trochu jiný engine, jako například Super Mario 64. Několik her pro Mega Drive používá zvukový engine neoficiálně známý jako „SMPS“, který byl po desetiletí zkoumán mnoha hackery. K dnešnímu dni existují různé nástroje pro změnu hudby ve hrách, které používají engine SMPS (zejména hry Sonic the Hedgehog), a mnoho z nich se dostalo do služby Steam Workshop.
Rozšíření ROMEdit
Obecně platí, že hacker ROM nemůže do hry normálně přidávat obsah, ale pouze měnit ten stávající. Toto omezení lze překonat pomocí rozšíření ROM, kdy se zvětší celková velikost obrazu ROM, čímž se vytvoří prostor pro více obsahu a následně i větší hru. Obtížnost tohoto postupu se liší v závislosti na systému, pro který byla hra vytvořena. Například rozšíření ROM pro NES může být obtížné nebo dokonce nemožné kvůli mapovači, který hra používá. Například pokud mapovač umožňuje 16 bank ROM a všechny jsou využity, je další rozšíření ROM nemožné bez toho, aby hra byla nějakým způsobem převedena na jiný mapovač, což může být snadné nebo velmi obtížné. Naproti tomu rozšíření hry SNES je (relativně) jednoduché. Aby se přidaný prostor využil, musí se upravit nebo přepsat části herního kódu (viz hackování assembleru výše), aby hra věděla, kde má hledat. Dalším typem rozšíření ROM, které je poměrně snadné, jsou ROM pro Game Boy Advance. Samotné ROM jsou obecně malé, ale dostupný paměťový prostor jej někdy převyšuje až o násobky 17.
.
Napsat komentář