Skip to content

Archives

  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember

Categories

  • Nincs kategória
Trend RepositoryArticles and guides
Articles

ROM hacking

On december 28, 2021 by admin

A ROM-adatok sok különböző programozó vagy programozói csapat által készítettek, így nagyon sokfélék lehetnek.

  • Hex-szerkesztésEdit
  • Grafikai szerkesztésSzerkesztés
  • Paletta szerkesztésSzerkesztés
  • SzintszerkesztésSzerkesztés
  • AdatszerkesztésSzerkesztés
  • Assembly hackingEdit
  • Zenei hackelésSzerkesztés
  • ROM bővítésEdit

Hex-szerkesztésEdit

A hexaszerkesztő az egyik legalapvetőbb eszköz minden ROM-hacker repertoárjában. A hex-szerkesztőket általában szövegszerkesztésre és más olyan adatok szerkesztésére használják, amelyek szerkezete ismert (például az elemek tulajdonságai), valamint Assembly hacking.

A szövegszerkesztés a hackelés egyik legalapvetőbb formája. Sok játék nem ASCII formában tárolja a szövegét, és emiatt kifejlesztettek néhány speciális hexaszerkesztőt, amelyeknek meg lehet mondani, hogy az ábécé melyik betű(k)nek milyen byte-értékek felelnek meg, hogy megkönnyítsék a szövegszerkesztést; egy olyan fájlt, amely meghatározza ezeket a byte=betű kapcsolatokat, “táblázatos” fájlnak nevezzük. Más játékok egyszerű szövegtömörítési technikákat használnak (mint például a bájtpáros kódolás, más néven dual tile encoding vagy DTE, amelyben két vagy több betű bizonyos kombinációi egy bájtként vannak kódolva), amelyek szerkesztését egy megfelelően felszerelt hexaszerkesztő megkönnyítheti.

A hexaszerkesztő a megfelelő eszköz az olyan dolgok szerkesztésére, mint például a karakter/tárgy tulajdonságai, ha ezen adatok szerkezete és helye ismert, és nincs a játékhoz olyan játék-specifikus szerkesztő, amely képes szerkeszteni ezeket az információkat. Néhány bátortalan hacker a szintek szerkesztését is hexaszerkesztővel végzi, de ez rendkívül nehéz (kivéve olyan játékoknál, amelyeknek a szintek tárolási formátuma nagyon hasonlít a hexaszerkesztőben való megjelenéshez).

Grafikai szerkesztésSzerkesztés

Egy másik alapvető hacker készség a grafikai hackelés, ami a játék környezetének, karaktereinek, betűtípusainak vagy más hasonló dolgok megjelenésének megváltoztatását jelenti. A grafikai adatok formátuma konzolról konzolra változik, de a legtöbb korai konzol (NES, Super NES, Game Boy stb.) a grafikát csempékben tárolja, amelyek 8×8 pixeles adategységek, amelyeket a képernyőn a kívánt eredmény elérése érdekében rendezünk el. Ezeknek a csempéknek a szerkesztése hexaszerkesztővel is lehetséges, de általában egy csempeszerkesztővel (pl. Tile Layer vagy Tile Molester) történik, amely képes a ROM-adatok grafikus megjelenítésére, valamint a csempék megtalálására és szerkesztésére.

A grafikai hackek az egyszerű szerkesztésektől kezdve (például ha Luigi golfütőt kap, vagy ha pixeles sprite-okat készítünk a későbbi generációs Pokemonokhoz) a karakterek “átültetésén” egyik játékból a másikba, egészen a teljes körű tematikus változtatásokig (általában a paletta módosításával együtt; lásd alább).

A kifinomultabb grafikai hackelés nem csak a csempék és a színek megváltoztatását foglalja magában, hanem a csempék elrendezésének módját is, vagy a csempecsoportok generálását, ami nagyobb rugalmasságot és irányítást biztosít a végső megjelenés felett. Ez hexaszerkesztéssel vagy egy speciális eszközzel érhető el (akár az adott játékhoz, akár egy adott rendszerhez). Jó példa a grafikai hackre a befejezetlen Pokémon Torzach, egy hack, amely megpróbált egy teljesen új generációs Pokémont és csempét adni a játékhoz. A hacket azóta megszüntették, de még mindig jó példaként szolgál arra, hogy mit lehet elérni a rendelkezésre álló eszközökkel.

Paletta szerkesztésSzerkesztés

A hackelés másik gyakori formája a paletta hackelés, ahol a színértékeket módosítják, hogy megváltoztassák a játékos által a játékban látott színeket (ez gyakran kéz a kézben jár a grafikai hackeléssel); a palettaértékeket általában Hex-ben tárolják. Ez meglehetősen egyszerű a NES-játékok esetében, amelyek grafikája előre meghatározott színkészletet használ, amelyek közül a játék választ; a paletta-hackelés ebben az esetben azt jelenti, hogy megváltoztatjuk, hogy ezek közül a színek közül melyiket választjuk ki. A dolog kissé bonyolultabb a Super NES-játékok és más rendszerekhez készült játékok esetében, amelyek abszolút RGB színértékeket tárolnak. A palettaszerkesztők általában egyszerűek, és gyakran a szintszerkesztőkkel, vagy a játék specifikus grafikai szerkesztőkkel együtt vannak.

SzintszerkesztésSzerkesztés

A ROM hackelés egyik legnépszerűbb formája, a szintszerkesztés a játék szintjeinek vagy pályáinak módosítását vagy újratervezését jelenti. Ezt szinte kizárólag egy kifejezetten az adott játékra szabott szerkesztővel (úgynevezett szintszerkesztővel) végzik. A szintek szerkesztése történhet azért, hogy a játék nagyobb kihívást jelentsen, hogy megváltoztassa a játék cselekményének menetét, vagy csak azért, hogy valami újat adjon egy régi játéknak. Kiterjedt grafikai hackeléssel kombinálva a játék egészen más kinézetet és hangulatot kaphat.

AdatszerkesztésSzerkesztés

Számos hackelés (különösen a szerepjátékos videojátékok esetében) központi eleme az adatok, például a karakterek, tárgyak és ellenségek tulajdonságainak szerkesztése. Ez általában vagy “kézzel” (hexaszerkesztővel) történik, ha az adatok helye és szerkezete ismert, vagy egy olyan játék-specifikus szerkesztővel, amely rendelkezik ezzel a funkcióval. Ezen keresztül egy hacker megváltoztathatja a fegyverek működését, az ellenségek erejét vagy viselkedését stb. Ezzel könnyebbé vagy nehezebbé teheti a játékot, vagy új forgatókönyveket hozhat létre a játékos számára.

Assembly hackingEdit

A legerősebb, és vitathatatlanul a legnehezebb hackelési technika a játék tényleges kódjának szerkesztése, az úgynevezett ASM hacking (“ASM” jelentése “assembly”, ami a korai videojátékokban használt programozási nyelvre utal). Az ASM hackelésre nincs meghatározott minta, mivel a kód játékonként nagyon eltérő, de a legtöbb gyakorlott ASM hacker vagy egy beépített debuggerrel vagy nyomkövetővel felszerelt emulátort használ, vagy a ROM-ot egy disassemblerrel futtatja, majd elemzi a kódot, és egy hexaszerkesztő vagy assembler segítségével módosítja azt az igényeinek megfelelően. Bár a fent felsorolt viszonylag egyszerű módszerekhez képest elég nagy kihívás, az ASM hackeléssel bármi lehetséges (természetesen a játékplatform hardverének/szoftverének korlátain belül), az ellenséges mesterséges intelligencia megváltoztatásától kezdve a grafika generálásának megváltoztatásáig. (Természetesen a lehetőségeket még mindig korlátozza a hacker képessége, hogy megértse és módosítsa a meglévő kódot.)

Ha a fejlesztők tipizált nyelvet használtak, a hacker képes lehet a saját kódját ugyanezen a nyelven lefordítani a játékhoz, ha hozzáférése van egy megfelelő fordítóprogramhoz. Ilyen példa lehet például a C nyelv használata Nintendo 64-es játékok hackelésére, mivel a MIPS-GCC képes kódot fordítani a Nintendo 64-hez.

Zenei hackelésSzerkesztés

A zenei hackelés viszonylag ritka, mivel a játékok sokféleképpen tárolják a zenei adatokat (ezért nehéz megtalálni és módosítani ezeket az adatokat), és nehéz új zenét komponálni (vagy más játékból zenét átvinni). Mivel a zenetörés nagyon ritka, sok hack nem tartalmaz semmilyen átvitt/komponált zenét. A SapTapper program azonban használható a Game Boy Advance zenei adatok feltörésére, mivel sok Game Boy Advance játék az M4A Engine-t (más néven “Sappy Driver”) használja a zenéhez. Különböző más segédprogramok is készültek a motorral való együttműködésre, mint például a Sappy 2006.

Egy másik példa arra, hogy ugyanazt a motort használják a játékok között, a Nintendo 64, ahol a legtöbb játék ugyanazt a formátumot használja; bár különböző hangbankokat használnak. Az N64 Midi Tool nevű segédprogramot a Nintendo 64 játékok többsége által használt szekvenciák szerkesztésére hozták létre, bár ez nem terjed ki az első féltől származó N64 címekre, amelyek kissé eltérő motort használnak, mint például a Super Mario 64. Számos Mega Drive játék nem hivatalosan “SMPS” néven ismert hangmotort használ, amelyet évtizedek óta számos hacker kutat. Napjainkban különböző eszközök léteznek az SMPS motort használó játékok (különösen a Sonic the Hedgehog játékok) zenéjének módosítására, és ezek közül sokan eljutottak a Steam Workshopba.

ROM bővítésEdit

Általánosságban elmondható, hogy egy ROM hacker általában nem tud tartalmat hozzáadni egy játékhoz, hanem csak a meglévő tartalmat változtatja meg. Ezt a korlátot a ROM-bővítéssel lehet áthidalni, melynek során a ROM-kép teljes mérete megnövekszik, így több tartalomnak, és ezáltal nagyobb játéknak ad helyet. Ennek nehézsége attól függően változik, hogy milyen rendszerre készült a játék. Például egy NES ROM bővítése nehéz vagy akár lehetetlen is lehet a játék által használt leképező miatt. Például, ha egy mapper 16 ROM-bankot engedélyez, és ezek mindegyike ki van használva, a ROM további bővítése lehetetlen anélkül, hogy a játékot valahogy átállítanánk egy másik mapperre, ami lehet könnyű vagy rendkívül nehéz. Ezzel szemben egy SNES játék bővítése (viszonylag) egyszerű. A megnövekedett hely kihasználásához a játék kódjának egyes részeit módosítani kell vagy újra kell írni (lásd fentebb az Assembly hackelést), hogy a játék tudja, hol keressen. A ROM-bővítés másik típusa, amely viszonylag egyszerű, a Game Boy Advance ROM-ok. Maguk a ROM-ok általában kicsik, de a rendelkezésre álló memóriaterület néha akár 17-szeresével is meghaladja azt.

Vélemény, hozzászólás? Kilépés a válaszból

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Archívum

  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember

Meta

  • Bejelentkezés
  • Bejegyzések hírcsatorna
  • Hozzászólások hírcsatorna
  • WordPress Magyarország
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress