ROM hacking

ROM-hacking er prosessen med å endre ROM-bildet til et videospill for å modifisere spillets grafikk, dialoger, nivåer, gameplay eller andre elementer av det. Dette gjøres vanligvis for å gi "nytt liv" til et gammelt dyrt spill eller for å lage nye uoffisielle spill med gamle som base.

ROM-hacking oppnås vanligvis via en hex-editor (et ikke-tekstlig dataredigeringsprogram), og forskjellige spillspesifikke verktøy som vanligvis brukes til nivå- og objektredigering, selv om mange mer avanserte verktøy som assemblers og debuggere brukes av og til. Når de er klare, distribueres de på Internett slik at andre kan spille på en emulator . [1]

Fan - oversettelse (kjent som "oversettelseshacking") er en type ROM-hacking: det finnes også anti-sensur-hack, som eksisterer for å gjenopprette et spill til sin opprinnelige tilstand. Dette gjøres ofte med eldre spill som ble importert, ettersom utgiveres retningslinjer for videospillinnhold (spesielt Nintendo ) var strengere i USA enn i Japan eller Europa. Mens mye av metodikken gjelder for begge typer hacking, fokuserer denne artikkelen på kreativ hacking som å endre spillnivåer.

Fellesskap

Mange ROM-hackere danner eller blir med i grupper av ulike grunner, for eksempel webområder, for å legge ut hacks og/eller skjermbilder , for støtte eller samarbeid med andre gruppemedlemmer, for å få privilegert status på gruppechatten (hvis den har en), for prestisje knyttet til gruppen, eller bare for kameratskap. Mange hackere velger imidlertid å handle alene.

Ikke alle medlemmer av en gruppe er ROM-hackere; noen har "pensjonert seg" fra yrket, andre tilbyr tjenester som nettstedsadministrasjon og/eller chat, og noen tilbyr seg rett og slett som en guide for håpefulle ROM-hackere.

De fleste hackergrupper tilbyr webområder for å legge ut hacks og skjermbilder, fora og har ofte en IRC -kanal .

Metodikk

Etter å ha blitt laget av mange forskjellige programmerere eller programmeringsteam, kan ROM-dataene varieres. Så det er egentlig ingen standardmåter for hacking, men noen av de mer allment aksepterte og brukte metodene er beskrevet her. [1]

Hex Editor

En hex - editor er et av de grunnleggende verktøyene i repertoarene til enhver ROM-hacker. Hex-editorer brukes vanligvis til å redigere tekst og for å redigere andre data som strukturen er kjent for (for eksempel objektegenskaper) og ASM-hacking .

Tekstredigering er en av de mest grunnleggende formene for hacking. Mange spill har ikke teksten i ASCII- form , og for dette er det utviklet noen spesialiserte hex-editorer, som kan fortelle hvilke bokstaver i alfabetet byteverdiene tilsvarer for å lette tekstredigering; en fil som definerer byte = bokstavrelasjonen kalles en "tabell"-fil. Andre spill bruker enkle tekstkomprimeringsteknikker (som Dual-Tile Encoding eller DTE, der noen kombinasjoner av to eller flere bokstaver er kodet som en byte) der en riktig utstyrt hex-editor enkelt kan redigere.

En hex-editor er det foretrukne verktøyet for å endre ting som karakter-/objektegenskaper hvis strukturen og plasseringen av dataene deres er kjent, og det er ingen spesifikk spillredigerer som kan endre denne informasjonen. Noen uredde hackere utfører også nivåredigeringer med en hex-editor, selv om det kan være vanskelig å finne noen (inkludert de som har det) som synes det er enkelt, bortsett fra de spillene hvis nivålagringsformat ligner mye på hvordan det presenteres i en hex-editor.

Grafredigering

En annen grunnleggende hackeferdighet er redigering av grafikk, som lar deg endre utseendet til spillets landskap, karakterer, fonter eller andre slike ting. Formatet på de grafiske dataene varierer fra konsoll til konsoll, men mange av de tidligere ( NES , Super NES , Game Boy , osv.) administrerer grafikken i "fliser", som er enheter på 8x8 piksler med data, som er ordnet på skjermen for å produsere ønsket resultat. Modifikasjonen av disse flisene er også mulig med en heksadesimal editor, men vanligvis er den laget med en fliseditor (som Tile Layer eller Tile Molester), som kan vise dataene i ROM-en grafisk, noe som gjør det mulig å søke og endre fliser.

Grafiske hacks kan variere fra enkle endringer til "transport" av karakterer fra ett spill til et annet eller til faktiske tematiske endringer. En mer sofistikert hacking av grafikken innebærer ikke bare å endre flere fliser og farger, men også deres arrangement, noe som gir mer fleksibilitet og kontroll til det endelige resultatet. Dette oppnås gjennom en hex-editor eller en spesialisert applikasjon. Et godt eksempel på et grafikkhack er den ufullstendige Pokemon Torzach, som forsøkte å legge til en hel generasjon med Pokemon og fliser til spillet. Hacket er avviklet, men det fungerer fortsatt som et godt eksempel på hva som kan oppnås med de tilgjengelige verktøyene.

Palettredigering

En annen vanlig form for hacking er modifikasjonen av fargepaletten (" palettredigering "), som påvirker fargekodene som en spiller ser i spillet (dette går hånd i hånd med grafisk redigering ); palettverdier blir vanligvis håndtert i Hex (heksadesimal). Dette er enkelt nok for NES -spill , hvis grafikk bruker en forhåndsdefinert fargetabell; hacking-paletten i dette tilfellet endrer verdiene til de valgte fargene. Saken er litt mer komplisert for Super NES- spill og spill for andre systemer, som lagrer absolutte RGB- fargeverdier . Fargepalettredigerere er ofte enkle og går hånd i hånd med grafikkspesifikke nivåredigerere eller spillredigerere.

Nivåredigering

En av de mest populære formene for ROM-hacking er nivåredigering , som innebærer å modifisere eller redesigne et spills nivå eller kart. Dette gjøres nesten utelukkende med en editor som er spesielt tilpasset bestemte spill. Å endre nivået kan gjøres for å gjøre spillet mer utfordrende, for å endre flyten i spillets historie eller bare for å gi noe nytt til et gammelt spill.

Kombinert med omfattende grafisk hacking kan spillet få et helt annet utseende og preg.

Dataredigering

En grunnleggende komponent i mange hacks (spesielt for rollespill ) er modifikasjon av data som: karakterer, objekter og fiendens egenskaper. Dette gjøres vanligvis enten "for hånd" (med en hex-editor ) hvis plasseringen og strukturen til dataene er kjent, eller med en spesifikk spilleditor som har denne funksjonaliteten. Takket være dette kan en hacker endre kraften til våpen, styrken til fiender eller hvordan de handler osv. Dette kan gjøres for å gjøre spillet enklere eller vanskeligere, eller for å lage nye scenarier for spilleren å takle.

ASM hacking

Den kraftigste og sannsynligvis vanskeligste hackingsteknikken er modifikasjonen av den faktiske koden til spillet, en prosess som kalles ASM-hacking ("ASM" er forkortelsen for Assembly, et språk som er veldig nært maskinspråket , der hovedkonsollen ) [1] . Det er ingen faste maler for ASM-hacking, da koden varierer fra konsoll til konsoll. ASM-hackere bruker en emulator utstyrt med en innebygd debugger som de kjører ROM med; dessuten, gjennom en disassembler , analyserer de koden og endrer den ved hjelp av en editor eller heksadesimal assembler i henhold til deres behov.

Selv om det er ganske utfordrende sammenlignet med de "relativt" enkle metodene som er oppført ovenfor, er alt mulig med ASM-hacking (selvfølgelig innenfor grensene til spillplattformens maskinvare), alt fra å modifisere fiender, til å endre hvordan grafikk genereres. . Mulighetene er selvfølgelig fortsatt begrenset av hackerens evner til å forstå og endre eksisterende kode.

Hvis utviklerne brukte et skriftspråk, kunne hackeren kanskje kompilere sin egen kode for spillet på samme språk hvis de hadde tilgang til en passende kompilator. Et eksempel på dette kan være å bruke C for ulovlig å bryte seg inn i Nintendo 64 -spill , eller MIPS - GCC kan utarbeide koder for Nintendo 64 .

Musikk hacking

Musikkhack er relativt sjeldne, på grunn av det store utvalget av musikkdata i spilllageret (derav vanskeligheten med å finne og endre disse dataene), og vanskeligheter med å komponere ny musikk (eller overføre musikk fra et annet spill). Siden musikkcracking er veldig uvanlig, har mange hacks ingen overført/komponert musikk lagt til. SapTapper-programmet kan brukes til å hacke Gameboy Advance -musikkdata , ettersom mange Gameboy Advance-spill bruker M4A-motoren (også kalt "Sappy Driver") for musikk.

Den vanligste formen for musikkhacking er overføring av musikk fra en ROM-fil til en annen, vanligvis begge laget av samme selskap. Overføring av musikk fra en fil til en annen vil nesten alltid utgjøre et slags problem, siden formatet nesten alltid er annerledes.

ROM-utvidelse

Vanligvis kan ikke en ROM-hacker legge til innhold i et spill, men ganske enkelt endre eksisterende innhold. Denne grensen kan overvinnes ved ROM-utvidelse, hvorved den totale størrelsen på ROM-bildet øker, noe som gir plass til mer innhold og et større spill. Vanskeligheten med å gjøre dette varierer avhengig av systemet som spillet ble laget for. For eksempel kan utvidelse av en NES ROM være vanskelig eller til og med umulig på grunn av kartleggeren som brukes av spillet. For eksempel, hvis en mapper tillater 16 ROM-banker og alle brukes, er ytterligere utvidelse av ROM umulig uten å konvertere spillet til en annen mapper, noe som kan være enkelt eller ekstremt vanskelig. På den annen side er det (relativt) enkelt å utvide et Super NES-spill. For å bruke den ekstra plassen, må deler av spillkoden endres eller skrives om (se " ASM-hacking " ovenfor) slik at spillet "vet" hvor det skal lete. Gameboy Advance anses generelt for å være den enkleste å utvide .

Distribusjon

Når et hack er fullført (eller en ufullstendig versjon anses som tilstrekkelig for en midlertidig utgivelse), lanseres den på Internett for å spilles. Den generelt aksepterte måten for dette er å lage en oppdatering (i IPS eller annet format) som kan brukes på den umodifiserte ROM-en. Denne, og vanligvis en eller annen form for dokumentasjon, legges i en arkivfil og lastes opp et sted. IPS er et format for registrering av forskjellene mellom to binære filer (i dette tilfellet mellom modifiserte og umodifiserte ROM-er) og er egnet for ROM-hack.

IPS brukes fortsatt i dag for små oppdateringer, men ettersom ROM-er har blitt større i størrelse, er dette formatet ubrukelig, noe som fører til at noen opprettede filformater forlates, for eksempel NINJA og PPF (" PlayStation Patch Format"). PPF brukes fortsatt i dag, spesielt for store patch-formater som ISO CD-bilder. Et nytt oppdateringsformat, UPS, ble utviklet av ROM-hacking-fellesskapet, tenkt å være etterfølgeren til IPS og PPF. Et nyere patch-format, APS-patching-systemet, ble også utviklet av en ROM-hacker viet til GameBoy Advance. APS-systemet er mer effektivt, reversibelt og raskere enn sine forgjengere.

Intensjonen med å distribuere et hack i form av en patch er å unngå de juridiske aspektene ved distribusjon av fulle ROM-bilder; oppdateringen registrerer bare det som er endret i ROM-en, så distribusjonen involverer ikke også delene av det originale spillet. En patch er også mindre enn hele ROM-bildet (en NES ROM kan kjøre fra 40KB-512KB; en Super NES ROM fra 256KB-6MB). Bruk av oppdateringer eliminerer ikke opphavsrettsproblemer fordi oppdateringer kan betraktes som avledede verk, men selskaper ignorerer dem vanligvis til de distribueres med ROM-er.

Systemer og spill

Mesteparten av ROM-hackingen gjøres på NES- eller Super NES -spill , siden disse spillene er små og enkle sammenlignet med mer avanserte konsollspill som Nintendo 64 . GameBoy- spill er også veldig populære for hacking, det samme er Sega Mega Drive- spill i mindre grad. Men det betyr ikke at nyere spill er fri for hacking, og ettersom datamaskiner kjører raskere og flere programmer skrives, kan du forvente å se flere PlayStation- og Nintendo 64 -hack .

Jo mer populært et spill er, jo mer blir det modifisert; mange hacks har blitt gjort på spill fra Sonic Hedgehog -serien , Super Mario Bros , Pokémon , Chip's Challenge , Super Mario World , Final Fantasy , The Legend of Zelda , Mega Man , Fire Emblem , EarthBound , Super Mario 64 og mange flere.

Merknader

  1. ^ a b c Dictionary of ROMhacking Terms

Relaterte elementer