Hakowanie ROM
On 28 grudnia, 2021 by adminZostały stworzone przez wielu różnych programistów lub zespoły programistów, dane ROM mogą być bardzo różnorodne.
Edytowanie heksówEdyt
Edytor heksów jest jednym z najbardziej podstawowych narzędzi w repertuarze każdego hakera ROM. Edytory heksowe są zwykle używane do edycji tekstu, oraz do edycji innych danych, których struktura jest znana (na przykład, właściwości przedmiotów), oraz hakowania Assembly.
Edycja tekstu jest jedną z najbardziej podstawowych form hakowania. Wiele gier nie przechowuje swojego tekstu w postaci ASCII, i z tego powodu, niektóre wyspecjalizowane edytory hex zostały opracowane, które można powiedzieć, jakie wartości bajtów odpowiadają jakiej literze (literom) alfabetu, aby ułatwić edycję tekstu; plik, który definiuje te zależności bajt=literę nazywany jest plikiem „tabeli”. Inne gry używają prostych technik kompresji tekstu (takich jak kodowanie parami bajtów, zwane także kodowaniem dwupłytkowym lub DTE, w którym pewne kombinacje dwóch lub więcej liter są kodowane jako jeden bajt), które odpowiednio wyposażony edytor heksadecymalny może ułatwić edycję.
Edytor heksadecymalny jest narzędziem z wyboru do edycji takich rzeczy jak właściwości postaci/artykułów, jeśli struktura i lokalizacja tych danych jest znana i nie ma specyficznego dla gry edytora, który może edytować te informacje. Niektórzy nieustraszeni hakerzy dokonują również edycji poziomów za pomocą edytora hex, ale jest to niezwykle trudne (z wyjątkiem gier, których format zapisu poziomów jest bardzo zbliżony do tego, jak jest on przedstawiony w edytorze hex).
Edycja grafikiEdit
Kolejną podstawową umiejętnością hakerską jest hakowanie grafiki, czyli zmiana wyglądu otoczenia gry, postaci, czcionek lub innych tego typu rzeczy. Format danych graficznych różni się w zależności od konsoli, ale większość wczesnych (NES, Super NES, Game Boy, itd.) przechowuje grafikę w kafelkach, które są 8×8-pikselowymi jednostkami danych, które są ułożone na ekranie, aby uzyskać pożądany rezultat. Edycja tych kafelków jest również możliwa za pomocą edytora heksadecymalnego, ale generalnie jest wykonywana za pomocą edytora kafelków (takiego jak Tile Layer lub Tile Molester), który może wyświetlać dane ROM w sposób graficzny, jak również znajdować i edytować kafelki.
Graphics hacks mogą obejmować od prostych edycji (takich jak danie Luigiemu kija golfowego, lub zrobienie rozpikselowanych sprite’ów dla Pokemonów późniejszej generacji) do „przenoszenia” postaci z jednej gry do drugiej, do pełnych zmian tematycznych (zazwyczaj z towarzyszącymi zmianami palet; patrz poniżej).
Bardziej zaawansowane hakowanie grafiki obejmuje nie tylko zmianę kafelków i kolorów, ale także sposobu, w jaki kafelki są ułożone, lub grup kafelków, co daje większą elastyczność i kontrolę nad ostatecznym wyglądem. Jest to osiągane poprzez edycję heksów lub specjalistyczne narzędzie (dla konkretnej gry lub konkretnego systemu). Dobrym przykładem hacka graficznego jest nieukończony Pokémon Torzach, hack, który próbował dodać do gry całą nową generację Pokémonów i kafelków. Hack został przerwany, ale nadal służy jako dobry przykład tego, co można osiągnąć za pomocą dostępnych narzędzi.
Edycja paletEdit
Inną powszechną formą hackowania jest hackowanie palet, gdzie wartości kolorów są modyfikowane, aby zmienić kolory, które gracz widzi w grze (często idzie to w parze z hackowaniem grafiki); wartości palet są powszechnie przechowywane w Hex. Jest to dość proste w przypadku gier na NES-a, których grafika wykorzystuje predefiniowany zestaw kolorów, spośród których gra wybiera; palette hacking w tym przypadku polega na zmianie, które z tych kolorów są wybierane. Sprawa jest nieco bardziej skomplikowana w przypadku gier na Super NES-a oraz gier na inne systemy, które przechowują bezwzględne wartości kolorów RGB. Edytory palet są zazwyczaj proste i często występują razem z edytorami poziomów lub specyficznymi dla danej gry edytorami grafiki.
Edycja poziomówEdit
Jedna z najpopularniejszych form ROM hackingu, edycja poziomów polega na modyfikowaniu lub przeprojektowywaniu poziomów gry lub map. Jest to prawie wyłącznie wykonywane za pomocą edytora specjalnie dostosowanego do konkretnej gry (zwanego edytorem poziomów). Edycje poziomów mogą być dokonywane w celu uczynienia gry bardziej wymagającą, zmiany przebiegu fabuły gry lub po prostu nadania czegoś nowego starej grze. W połączeniu z rozbudowanym hackowaniem grafiki, gra może nabrać zupełnie innego wyglądu i charakteru.
Edycja danychEdit
Kluczowym elementem wielu hacków (zwłaszcza gier fabularnych) jest edycja danych, takich jak właściwości postaci, przedmiotów i wrogów. Jest to zazwyczaj robione „ręcznie” (za pomocą edytora hex), jeśli lokalizacja i struktura danych jest znana, lub za pomocą specyficznego dla gry edytora, który posiada taką funkcjonalność. Dzięki temu haker może zmienić sposób działania broni, siłę przeciwników, sposób ich działania itp. Można to zrobić, aby gra była łatwiejsza lub trudniejsza, lub aby stworzyć nowe scenariusze dla gracza do konfrontacji.
Assembly hackingEdit
Najpotężniejszą, i prawdopodobnie najtrudniejszą, techniką hackingu jest edycja rzeczywistego kodu gry, proces zwany ASM hacking („ASM” oznacza „montaż”, odnosząc się do rodzaju języka programowania używanego do wczesnych gier wideo). Nie ma określonego schematu hakowania ASM, ponieważ kod różni się znacznie w zależności od gry, ale większość wykwalifikowanych hakerów ASM używa emulatora wyposażonego we wbudowany debugger lub tracer, albo przepuszcza ROM przez disassembler, a następnie analizuje kod i modyfikuje go za pomocą edytora hex lub asemblera zgodnie z własnymi potrzebami. Chociaż dość trudne w porównaniu do stosunkowo prostych metod wymienionych powyżej, wszystko jest możliwe z ASM hacking (oczywiście, w granicach sprzętu / oprogramowania platformy gry), począwszy od zmiany wroga AI do zmiany, jak grafika jest generowana. (Oczywiście, możliwości są nadal ograniczone przez zdolność hakera do zrozumienia i modyfikacji istniejącego kodu.)
Jeśli deweloperzy używali typowanego języka, haker może być w stanie skompilować swój własny kod do gry w tym samym języku, jeśli mają dostęp do odpowiedniego kompilatora. Jednym z takich przykładów byłoby użycie C do hakowania gier Nintendo 64, ponieważ MIPS-GCC może skompilować kod dla Nintendo 64.
Hakowanie muzykiEdit
Hakowanie muzyki jest stosunkowo rzadkie, ze względu na dużą różnorodność sposobów przechowywania danych muzycznych w grach (stąd trudność w zlokalizowaniu i modyfikacji tych danych) oraz trudności w komponowaniu nowej muzyki (lub przenoszeniu muzyki z innej gry). Jako że crackowanie muzyki jest bardzo rzadkie, wiele hacków nie ma dodanej żadnej przeniesionej/skomponowanej muzyki. Program SapTapper może być użyty do włamania się do danych muzycznych Game Boy Advance, jednakże wiele gier na Game Boy Advance używa silnika M4A (zwanego również „Sappy Driver”) dla muzyki. Różne inne narzędzia zostały stworzone do pracy z tym silnikiem, takie jak Sappy 2006.
Innym przypadkiem tego samego silnika używanego między grami jest Nintendo 64, w którym większość gier używa tego samego formatu; chociaż używają one różnych banków dźwięku. Narzędzie znane jako N64 Midi Tool został stworzony do edycji sekwencji, że większość gier Nintendo 64 używać, choć nie obejmuje first-party N64 tytułów, które używają nieco inny silnik, takich jak Super Mario 64.Kilka gier Mega Drive używać silnika dźwięku nieoficjalnie znany jako „SMPS”, który został zbadany przez dziesięciolecia przez wielu hakerów. Na dzień dzisiejszy istnieją różne narzędzia do zmiany muzyki w grach wykorzystujących silnik SMPS (w szczególności w grach Sonic the Hedgehog), a wiele z nich trafiło do Warsztatu Steam.
ROM expansionEdit
Ogólnie rzecz biorąc, haker ROM nie może normalnie dodawać zawartości do gry, a jedynie zmieniać istniejącą zawartość. Ograniczenie to można pokonać poprzez rozszerzenie ROM, dzięki czemu całkowity rozmiar obrazu ROM jest zwiększony, dzięki czemu jest miejsce na więcej zawartości i, w konsekwencji, większą grę. Trudności w tym zakresie zależą od systemu, dla którego gra została stworzona. Na przykład, rozszerzenie pamięci ROM NES może być trudne lub nawet niemożliwe z powodu mappera używanego przez grę. Na przykład, jeśli mapper pozwala na 16 banków ROM i wszystkie są wykorzystane, dalsze rozszerzanie ROM jest niemożliwe bez konwersji gry do innego mappera, co może być łatwe lub bardzo trudne. Z drugiej strony, rozbudowa gry SNES jest (stosunkowo) prosta. Aby wykorzystać dodatkowe miejsce, część kodu gry musi zostać zmodyfikowana lub napisana od nowa (patrz Assembly hacking powyżej), aby gra wiedziała, gdzie szukać. Innym rodzajem rozszerzenia ROM, które jest dość łatwe, są ROM-y Game Boy Advance. Same ROM-y są na ogół małe, ale ilość dostępnej pamięci czasami przekracza ją nawet o wielokrotność 17.
.
Dodaj komentarz