ROM-hackning
On december 28, 2021 by adminROM-data kan vara mycket varierande eftersom de har skapats av många olika programmerare eller programmeringsgrupper.
Hex-redigeringEdit
En hex-redigerare är ett av de mest grundläggande verktygen i varje ROM-hackers repertoar. Hex-redigerare används vanligtvis för att redigera text och för att redigera andra data för vilka strukturen är känd (t.ex. föremålsegenskaper) och Assembly hacking.
Redigering av text är en av de mest grundläggande formerna av hacking. Många spel lagrar inte sin text i ASCII-form, och på grund av detta har vissa specialiserade hex-editorer utvecklats, som kan få veta vilka bytevärden som motsvarar vilka bokstäver i alfabetet, för att underlätta textredigering; en fil som definierar dessa byte=bokstavsrelationer kallas för en ”tabell”-fil. Andra spel använder enkla tekniker för textkomprimering (t.ex. bytepar-kodning, även kallad dual tile encoding eller DTE, där vissa kombinationer av två eller flera bokstäver kodas som en byte) som en lämpligt utrustad hex-editor kan underlätta redigeringen.
En hex-editor är det verktyg som är det bästa valet för att redigera sådant som egenskaper för karaktärer och föremål, om strukturen och placeringen av dessa data är känd och det inte finns någon spelspecifik editor för spelet som kan redigera denna information. Vissa oförskräckta hackare utför även nivåredigering med en hex-editor, men detta är extremt svårt (utom på spel vars nivålagringsformat liknar mycket hur det presenteras i en hex-editor).
GrafikredigeringRedigera
En annan grundläggande hackerförmåga är grafikhackning, vilket innebär att man ändrar utseendet på spelets miljöer, karaktärer, typsnitt eller andra sådana saker. Formatet för grafikdata varierar från konsol till konsol, men de flesta av de tidiga konsolerna (NES, Super NES, Game Boy osv.) lagrar grafik i tiles, som är 8×8 pixlar stora dataenheter som arrangeras på skärmen för att ge det önskade resultatet. Det är också möjligt att redigera dessa brickor med en hexeditor, men i allmänhet görs det med en brickredigerare (t.ex. Tile Layer eller Tile Molester), som kan visa ROM-data på ett grafiskt sätt samt hitta och redigera brickor.
Grafikhacks kan vara allt från enkla redigeringar (t.ex. att ge Luigi en golfklubba eller att göra pixelerade sprites för senare generationers Pokemon), till att ”portera” karaktärer från ett spel till ett annat, och till fullständiga tematiska ändringar (vanligen med åtföljande palettändringar; se nedan).
Mer sofistikerad grafikhackning innebär att man ändrar mer än bara brickor och färger, utan även hur brickorna arrangeras, eller hur brickgrupperna genereras, vilket ger mer flexibilitet och kontroll över det slutliga utseendet. Detta åstadkoms genom hexredigering eller ett specialiserat verktyg (antingen för det specifika spelet eller ett specifikt system). Ett bra exempel på ett grafikhack är det ofullbordade Pokémon Torzach, ett hack som försökte lägga till en helt ny generation Pokémon och brickor till spelet. Hacket har sedan dess upphört, men det fungerar fortfarande som ett bra exempel på vad som kan åstadkommas med de verktyg som finns tillgängliga.
PalettredigeringEdit
En annan vanlig form av hackning är paletthackning, där färgvärden modifieras för att ändra de färger som spelaren ser i spelet (detta går ofta hand i hand med grafikhackning); Palettvärden lagras vanligen i Hex. Detta är ganska enkelt för NES-spel, vars grafik använder en fördefinierad uppsättning färger som spelet väljer bland. Paletthackning innebär i detta fall att man ändrar vilka av dessa färger som väljs. Saken är något mer komplicerad med Super NES-spel och spel för andra system, som lagrar absoluta RGB-färgvärden. Palettredigerare är vanligtvis enkla och är ofta tillsammans med nivåredigerare eller spelspecifika grafikredigerare.
NivåredigeringEdit
En av de mest populära formerna av ROM-hackning, innebär nivåredigering att man ändrar eller omformar ett spels nivåer eller kartor. Detta görs nästan uteslutande med en editor som är speciellt anpassad för ett visst spel (kallad level editor). Nivåredigering kan göras för att göra spelet mer utmanande, för att ändra spelets handling eller bara för att ge något nytt till ett gammalt spel. I kombination med omfattande grafikhackning kan spelet få ett helt annat utseende och känsla.
DataredigeringEdit
En kärnkomponent i många hacks (särskilt av rollspelsvideospel) är redigering av data som karaktärs-, föremåls- och fiendeegenskaper. Detta görs vanligtvis antingen ”för hand” (med en hex-editor) om datans placering och struktur är känd, eller med en spelspecifik editor som har denna funktionalitet. Genom detta kan en hackare ändra hur vapen fungerar, hur starka fiender är eller hur de agerar osv. Detta kan göras för att göra spelet lättare eller svårare, eller för att skapa nya scenarier för spelaren att möta.
Assembly hackingEdit
Den mest kraftfulla, och utan tvekan svåraste, hackningstekniken är att redigera spelets egentliga kod, en process som kallas ASM-hacking (”ASM” betyder ”assembly”, vilket hänvisar till den typ av programmeringsspråk som användes för tidiga videospel). Det finns inget fast mönster för ASM-hackning, eftersom koden varierar kraftigt från spel till spel, men de flesta skickliga ASM-hackare använder antingen en emulator som är utrustad med en inbyggd felsökare eller spårare, eller kör ROM:n genom en disassembler, analyserar sedan koden och ändrar den med hjälp av en hex-editor eller en assembler enligt sina behov. Även om det är ganska utmanande jämfört med de relativt enkla metoderna ovan är allt möjligt med ASM-hackning (naturligtvis inom gränserna för spelplattformens hårdvara/mjukvara), allt från att ändra fiendens AI till att ändra hur grafiken genereras. (Naturligtvis begränsas möjligheterna fortfarande av hackarens förmåga att förstå och ändra den befintliga koden.)
Om utvecklarna använde ett typat språk kan hackaren kanske kompilera sin egen kod för spelet i samma språk om han eller hon har tillgång till en lämplig kompilator. Ett sådant exempel skulle vara att använda C för att hacka Nintendo 64-spel, eftersom MIPS-GCC kan kompilera kod för Nintendo 64.
MusikhackningRedigera
Musikhackningar är relativt sällsynta, på grund av de många olika sätten som spel lagrar musikdata på (därav svårigheten att lokalisera och ändra denna data) och svårigheterna att komponera ny musik (eller portera musik från ett annat spel). Eftersom det är mycket ovanligt att knäcka musik, har många hackningar inte någon portad/komponerad musik som läggs till. Programmet SapTapper kan dock användas för att hacka musikdata från Game Boy Advance, eftersom många Game Boy Advance-spel använder M4A-motorn (även kallad ”Sappy Driver”) för musik. Olika andra verktyg skapades för att arbeta med motorn, till exempel Sappy 2006.
Ett annat exempel på att samma motor används mellan olika spel är Nintendo 64, där de flesta spel använder samma format, även om de använder olika ljudbanker. Ett verktyg som kallas N64 Midi Tool skapades för att redigera de sekvenser som majoriteten av Nintendo 64-spelen använder, även om det inte täcker de N64-titlar från första part som använder en något annorlunda motor, till exempel Super Mario 64. Flera Mega Drive-spel använder en ljudmotor som inofficiellt är känd som ”SMPS”, som har undersökts i årtionden av många hackare. I dagsläget finns det olika verktyg för att ändra musiken i spel som använder SMPS-motorn (särskilt Sonic the Hedgehog-spel), och många av dem har tagit sig till Steam Workshop.
ROM expansionEdit
Generellt sett kan en ROM-hacker normalt sett inte lägga till innehåll till ett spel, utan bara ändra befintligt innehåll. Denna begränsning kan övervinnas genom ROM-expansion, varvid den totala storleken på ROM-avbildningen ökas, vilket ger plats för mer innehåll och i sin tur ett större spel. Svårigheten att göra detta varierar beroende på vilket system spelet gjordes för. Till exempel kan det vara svårt eller till och med omöjligt att utöka en NES ROM på grund av den mappning som spelet använder. Om en mappare till exempel tillåter 16 ROM-banker och alla dessa används, är det omöjligt att utöka ROM:n ytterligare utan att på något sätt konvertera spelet till en annan mappare, vilket kan vara lätt eller extremt svårt. Å andra sidan är det (relativt) enkelt att utöka ett SNES-spel. För att utnyttja det extra utrymmet måste delar av spelkoden ändras eller skrivas om (se Assembly hacking ovan) så att spelet vet var det ska leta. En annan typ av ROM-expansion som är ganska enkel är Game Boy Advance ROMs. ROM:erna i sig själva är i allmänhet små, men det tillgängliga minnesutrymmet överstiger det ibland med multiplar på upp till 17.
Lämna ett svar