No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
= Was ist ein ROM? = | = Was ist ein ROM? = | ||
''Fakten zum read only memory''[[File:romhacking_rom.jpg|200px|thumb|right]] | ''Fakten zum read only memory''[[File:romhacking_rom.jpg|200px|thumb|right|SNES-Rom (Starwing)]] | ||
*Speicherabbilder von Speicherchips (EPROM) | *Speicherabbilder von Speicherchips (EPROM) | ||
Line 13: | Line 13: | ||
= Wie ist ein ROM aufgebaut? = | = Wie ist ein ROM aufgebaut? = | ||
''Wissenswertes zur Hardware''[[File:romhacking_romaufbau.jpg|200px|thumb|right]] | ''Wissenswertes zur Hardware''[[File:romhacking_romaufbau.jpg|200px|thumb|right|geöffnetes Rom]] | ||
*können grundsätzlich relativ frei aufgebaut sein | *können grundsätzlich relativ frei aufgebaut sein | ||
Line 49: | Line 49: | ||
= Texthacking= | = Texthacking= | ||
''das Verändern von Texten eines ROMs''[[File:romhacking_text.jpg|200px|thumb|right]] | ''das Verändern von Texten eines ROMs''[[File:romhacking_text.jpg|200px|thumb|right|Tablefile in Hexeditor]] | ||
* Beim Texthacken ist zu beachten, dass man in den meisten Fällen ein Tablefile erstellen muss, um die Texte richtig sehen und editieren zu können | * Beim Texthacken ist zu beachten, dass man in den meisten Fällen ein Tablefile erstellen muss, um die Texte richtig sehen und editieren zu können | ||
Line 56: | Line 56: | ||
=Grafikhacking= | =Grafikhacking= | ||
''das Verändern von Bildern in einem ROM''[[File:romhacking_grafik.jpg|200px|thumb|right]] | ''das Verändern von Bildern in einem ROM''[[File:romhacking_grafik.jpg|200px|thumb|right|Grafikeditor für Roms]] | ||
* Eine Grafik besteht aus einer Palette und der Grafik selbst | * Eine Grafik besteht aus einer Palette und der Grafik selbst | ||
Line 67: | Line 67: | ||
=Maphacking= | =Maphacking= | ||
''das Verändern von Maps (=Landschaften/Level) eines ROMs''[[File:romhacking_map.jpg|200px|thumb|right]] | ''das Verändern von Maps (=Landschaften/Level) eines ROMs''[[File:romhacking_map.jpg|200px|thumb|right|LunarMagic Editor]] | ||
* Maphacking besteht aus dem Ändern von Maps, Kollisionsdaten, Events, Mapanbindungen und evtl. anderen spielspezifischen Daten | * Maphacking besteht aus dem Ändern von Maps, Kollisionsdaten, Events, Mapanbindungen und evtl. anderen spielspezifischen Daten | ||
Line 91: | Line 91: | ||
* Falls dies nicht dokumentiert ist, muss man sie mithilfe Debugging oder Textpointern suchen | * Falls dies nicht dokumentiert ist, muss man sie mithilfe Debugging oder Textpointern suchen | ||
* man kann entweder neue Befehle hinzufügen, Befehle löschen oder Parameter eines bereits vorhandenen Befehls modifizieren | * man kann entweder neue Befehle hinzufügen, Befehle löschen oder Parameter eines bereits vorhandenen Befehls modifizieren | ||
=Bekannte Hacks= | |||
<videoflash type=youtube>WAgOIKdW810</videoflash> | <videoflash type=youtube>WAgOIKdW810</videoflash> | ||
==Cory Arcangel== | |||
<videoflash type=youtube>HdAJKRpP5uU</videoflash> | |||
<videoflash type=youtube>mAsb6LMjIrM</videoflash> | |||
<videoflash type=youtube>ZkkJaqBbXV8</videoflash> |
Latest revision as of 13:49, 30 June 2011
Was ist ein ROM?
Fakten zum read only memory
- Speicherabbilder von Speicherchips (EPROM)
- in Spiele-Speichersteckmodulen (Cartridges) verbaut
- enthalten die Dateninformationen des eigentlichen Spiels
- können mittels Emulatoren auf dem PC verwendet werden
- mit beschreibbaren Steckmodulen auch wieder auf der Originalkonsole spielbar
Wie ist ein ROM aufgebaut?
Wissenswertes zur Hardware
- können grundsätzlich relativ frei aufgebaut sein
- wenige Restriktionen die eingehalten werden sollten
- die meisten ROMs haben einen ROM-Header, der Informationen über das Rom enthält, damit es vom System korrekt geladen und verarbeitet werden kann
- vordefinierte Offsets, an denen bestimmter Code liegen muss, der ausgeführt wird, falls ein bestimmtes Ereignis, z.B. ein Interrupt ausgelöst wird
- manche Roms sind aus Platzgründen in Rombänke eingeteilt, z.B. die des SNES
Was ist ROM-Hacking?
Ziel und Faszination - das Modifizieren von ROMs
<videoflash type=youtube>yAzxnJKCEdU#t=60s</videoflash>
- ein vorhandenes Spiel nach eigenen Vorstellungen ändern
- umzugestalten
- teilweise neu zu kreieren
- übersetzen (sollte das Spiel nicht in der eigenen Landessprache veröffentlicht worden sein)
Welche Spiele eignen sich?
- beliebt sind Game Boy Color- und Game Boy Advance- sowie NES- und SNES-Spiele
- Spiele, die leicht zu modifizierende 2D-Grafik und eine relativ einfache Programmierung besitzen
- für einige Spiele existieren Editoren, die z. B. den Aufbau eines neuen Levels oder das Ändern verschiedener physikalischer Eigenschaften wesentlich vereinfachen
- das meistgehackte ROM-Spiel ist Super Mario Bros. für das NES
Was braucht man zum ROM-Hacking?
- das zu hackende ROM
- einen Emulator
- ein Texthacking-Programm
- ein Grafikhacking-Programm (bspw. ein Tile-Editor)
- ein Hexeditor
- verschiedene Gebiete im Rom-Hacking:
Texthacking, Grafikhacking, Maphacking, ASM-Hacking, Scripthacking, Soundhacking
Texthacking
das Verändern von Texten eines ROMs
- Beim Texthacken ist zu beachten, dass man in den meisten Fällen ein Tablefile erstellen muss, um die Texte richtig sehen und editieren zu können
- Tablefile können mit Programmen wie SnesEdit, Thingy32, Translhexion etc. genutzt werden
- Eine typische Tablefile enthält Zuweisungen, wie:
Byte=Buchstabe/n
00=A
Grafikhacking
das Verändern von Bildern in einem ROM
- Eine Grafik besteht aus einer Palette und der Grafik selbst
- Grafik kann in verschiedenen Formaten gespeichert sein:
- 1 BPP (2 Farben = Monochrom) - Schriften - GB Spiele
- 2 BPP (4 Farben) - GB & GBC Spiele - Layer-3-Grafiken in SNES-Spielen
- 3 BPP (8 Farben) - SNES-Spiele zur Grafikkompression
- 4 BPP (16 Farben) - GBA & SNES Spiele
- 8 BPP (256 Farben) - GBA Spiele - im Mode 7 des SNES
Maphacking
das Verändern von Maps (=Landschaften/Level) eines ROMs
- Maphacking besteht aus dem Ändern von Maps, Kollisionsdaten, Events, Mapanbindungen und evtl. anderen spielspezifischen Daten
- Jeder einzelne Bereich ist ein Kapitel für sich und birgt Möglichkeiten sowie Schwierigkeiten
- Um Maphacking zu betreiben kann man entweder den Hexeditor oder einen für jedes Spiel seperat programmierten Mapeditor verwenden
ASM-Hacking
das Verändern von Code eines Spiels
- schwierigste Aufgabe des Romhackings
- Hacker, die ASM-Hacking beherrschen, zählen zur "Elite"
Soundhacking
das Verändern von Musik in einem ROM
- eine Anreihung von Samples, die in einer festgelegten Reihenfolge und Geschwindigkeit in unterschiedlichen Tonlagen abgespielt werden
- in Form von Scripten gespeichert, die einfach sagen 'Spiele Ton x in Tonlage y für z Sekunden ab. Danach mache Pause für z Sekunden'
Scripthacking
das Modifizieren von Scripten
- um Scripte zu ändern, muss man zunächst wissen, wo sich diese befinden
- Falls dies nicht dokumentiert ist, muss man sie mithilfe Debugging oder Textpointern suchen
- man kann entweder neue Befehle hinzufügen, Befehle löschen oder Parameter eines bereits vorhandenen Befehls modifizieren
Bekannte Hacks
<videoflash type=youtube>WAgOIKdW810</videoflash>
Cory Arcangel
<videoflash type=youtube>HdAJKRpP5uU</videoflash>
<videoflash type=youtube>mAsb6LMjIrM</videoflash>
<videoflash type=youtube>ZkkJaqBbXV8</videoflash>