ROM hacking


ROM hacking

ROM hacking is the process of modifying a video game ROM image to alter the game's graphics, dialogue, levels, gameplay, or other gameplay elements. This is usually done by technically-inclined video game fans to breathe new life into a cherished old game, as a creative outlet, or to make essentially "new" unofficial games using an old game as a foundation.

ROM hacking is generally accomplished through use of a hex editor (a program for editing non-textual data) and various specialized tools such as tile editors, and game-specific tools which are generally used for editing levels, items, and the like, although more advanced tools such as assemblers and debuggers are occasionally used. Once ready, they are usually distributed on the Internet for others to play on an emulator. [http://www.romhacking.net/dictionary/?page=dictionary Dictionary of ROMhacking Terms] ]

Fan translation (known as "translation hacking" within the ROM hacking community) is a type of ROM hacking; there are also anti-censorship hacks that exist to restore a game to its original state, which is often seen with older games that were imported, as publishers' content policies for video games (most notably, Nintendo's) were much stricter in the United States than Japan or Europe. Although much of the methodology applies to both types of hacking, this article focuses on "creative hacking" such as editing game levels.

Communities

Many ROM hackers form or join groups for various reasons, such as for web space to host hacks and/or screenshots, for the support of or collaboration with other members of the group, for privileged status on the group's message board (if it has one), for the prestige associated with the group, or just for the comradeship. Many hackers, however, choose to go solo. Not all group members are necessarily ROM hackers themselves; some have "retired" from the craft, others offer services such as website and/or message board administration, and some simply offer guidance to aspiring ROM hackers.

Most hacking groups offer web space for hosting hacks and screenshots (sometimes only hosting hacks by the group's members, sometimes hosting almost any hack), a message board, and often have an IRC channel. [ [http://www.romhacking.net/ ROMHacking.net] ]

Methodology

Having been created by many different programmers or programming teams, ROM data can be very diverse. Thus there aren't really any standardized ways of hacking, but some of the more generally-accepted methods and utilities are described here.

Hex editing

A hex editor is one of the most fundamental tools in any ROM hacker's repertoire. Hex editors are usually used for editing text, for editing other data for which the structure is known (for example, item properties), and ASM hacking.

Editing text is one of the most basic forms of hacking. Many games do not store their text in ASCII form, and because of this, some specialized hex editors have been developed, which can be told what byte values correspond to what letter(s) of the alphabet, to facilitate text editing; a file that defines these byte=letter relationships is called a "table" file. Other games use simple text compression techniques (such as "Dual-Tile Encoding" or DTE, in which certain combinations of two or more letters are encoded as one byte) which a suitably-equipped hex editor can facilitate editing.

Another common form of hacking is "palette hacking", where color values are modified to change the colors a player sees in the game (this often goes hand-in-hand with graphics hacking). This is fairly easy for NES games, the graphics of which use a pre-defined set of colors among which a game selects; palette hacking in this case entails changing which of those colors are selected. The matter is slightly more complicated with Super NES games and games for other systems, which store absolute RGB color values.

A hex editor is the tool of choice for editing things such as character/item properties, if the structure and location of this data is known and there is no game-specific editor for the game that can edit this information. Some intrepid hackers also perform level editing with a hex editor, although one would be hard-pressed to find someone (including those who have done it) who consider it easy, except on games whose level storage format closely resembles how it is presented in a hex editor.

Graphics editing

Another basic hacking skill is graphics hacking, which is changing the appearance of the game's environs, characters, fonts, or other such things. The format of graphics data varies from console to console, but most of the early ones (NES, Super NES, Game Boy, etc) store graphics in tiles, which are 8x8-pixel units of data, which are arranged on-screen to produce the desired result. Editing these tiles is also possible with a hex editor, but is generally accomplished with a tile editor (such as "Tile Layer" or "Tile Molester"), which can display the ROM data in a graphical way and let you find and edit tiles.

Graphics hacks can range from simple edits (such as giving Mario an afro) to "porting" characters from one game to another, to full-blown thematic changes (usually with accompanying palette changes; see above).

More sophisticated graphics hacking involves changing more than just tiles and colors, but also the way in which the tiles are arranged, or tile groups generated, giving more flexibility and control over the final appearance. This is accomplished through hex editing or a specialized tool (either for the specific game or a specific system).

Level editing

One of the most popular forms of ROM hacking, level editing entails modifying or redesigning a game's levels or maps. This is almost exclusively done with an editor specially-tailored for a particular game (called a "level editor"). Level edits can be done to make the game more challenging, to alter the flow of the game's plot, or just to give something new to an old game. Combined with extensive graphics hacking, the game can take on a very different look and feel.

Data editing

A core component of many hacks (especially of RPGs) is editing data such as character, item, and enemy properties. This is usually done either "by hand" (with a hex editor) if the location and structure of the data is known, or with a game-specific editor that has this functionality. Through this, a hacker can alter how weapons work, how strong enemies are or how they act, etc. This can be done to make the game easier or harder, or to create new scenarios for the player to face.

ASM hacking

The most powerful, and arguably the most difficult, hacking technique is editing the game's actual code, a process called "ASM hacking" ("ASM" means "assembly", referring to the type of programming language used for early console games). There is no set pattern for ASM hacking, as the code varies widely from game to game, but most skilled ASM hackers either use an emulator equipped with a built-in debugger or tracer, or run the ROM through a disassembler, then analyze the code and modify it using a hex editor or assembler according to their needs. While quite challenging compared to the relatively-simple methods listed above, "anything" is possible with ASM hacking (of course, within the limits of the hardware/software of the gaming platform), ranging from altering enemy AI to changing how graphics are generated. (Of course, the possibilities are still limited by the hacker's ability to comprehend and modify the existing code.)

Music hacking

Music hacks are relatively rare, due to the wide variety of ways games store music data (hence the difficulty in locating and modifying this data) and the difficulties in composing new music (or porting music from another game).

ROM expansion

Generally speaking, a ROM hacker cannot add content to a game, but merely change existing content. This limit can be overcome through "ROM expansion", whereby the total size of the ROM image is increased, making room for more content and a larger game. The difficulty in doing this varies depending on the system for which the game was made. For example, expanding an NES ROM may be difficult or even impossible due to the mapper used by the game. For example, if a mapper allows 16 ROM banks and all of them are used, expanding the ROM further is impossible without somehow converting the game to another mapper, which could be easy or extremely difficult. On the other hand, expanding a Super NES game is (relatively) straightforward. To utilize the added space, parts of the game code have to be modified or re-written (see ASM hacking above) so the game knows where to look. The Game Boy Advance is generally considered the easiest to expand.

Distribution

Once a hack is completed (or an incomplete version is deemed suitable for an interim release) it is released onto the Internet for others to play. The generally-accepted way to do this is by making a patch (in IPS format or others) that can be applied to the unmodified ROM. This, and usually some form of documentation, is put in an archive file and uploaded somewhere. IPS is a format for recording the differences between two binary files (in this case, between the unmodified and hacked ROMs) and is suitable for ROM hacks. IPS is still used today for small patches — however, as ROMs became larger in size, this format became useless, leading to quite a few file formats being created — such as NINJA and PPF ("PlayStation Patch Format"). PPF is still used today, particularly to patch large files such as ISO CD images. A new patch format, UPS, has also been developed by the ROM hacking community, designed to be the successor to IPS and PPF. [ [http://www.romhacking.net/forum/index.php/topic,6059.0.html New patching format, UPS, debuts today] ]

The purpose of distributing a hack in patch form is to avoid the legal aspects of distributing entire ROM images; the patch records only what has "changed" in the ROM, hence distributing it does not distribute parts of the original game. A patch is also smaller than the full ROM image (an NES ROM can run anywhere from 40KB-512KB; a Super NES ROM can run from 256k-6MB). The use of patches does not eliminate copyright issues because the patches may be considered derivative works; however, corporations generally ignore them as long as they are not distributed with the ROMsFact|date=May 2007.

ystems and games

The majority of ROM hacking is done on NES and Super NES games, since such games are smaller and relatively simple compared to games of more advanced consoles such as the Nintendo 64Fact|date=May 2007. Also, many ROM hackers grew up with the NES and Super NES games, so they hold fonder memories for hackers than more contemporary games. Games for the Game Boy are also popular for hacking, as well as games for the Sega Mega Drive to a lesser extent. But by no means are games for more recent consoles exempt from hacking, and indeed as computers get faster and more programs and utilities are written, one might expect to see more PlayStation and Nintendo 64 hacks.

Of these, popular games to play are popular games to hack; many hacks have been released of games of the "Sonic the Hedgehog" series, "Super Mario Bros." series, "Super Mario World", "Final Fantasy", "The Legend of Zelda", games from the "Mega Man" series, "Pokémon", "EarthBound", and many others.

Related articles

Fan translation of video games
Undubbing

Notes

External links

* [http://www.romhacking.net ROMhacking.net] A good repository of hacks, utilities, documents, and patches.
* [http://desnet.fobby.net/ Dragon Eye Studios]
* [http://www.zophar.net Zophar's Domain] (the site focuses on emulation, but has a good repository of hacking utilities and documentation, as well as a collection of ROM hacks. Some information on this page may be outdated.)
* [http://www.hacking-cult.org/ Hacking CulT]
* [http://www.themushroomkingdom.net/sub-space/mi.shtml The Mushroom Kingdom] has a hacking section for Mario games.
*
* [http://www.datacrystal.org/wiki/Main_Page Data Crystal Wiki] , another Wiki dedicated to ROM hacking.
* [http://www.badhacks.net/ BadHacks.net] -- A site dedicated to hosting strange and grotesque ROM hacks.
* [http://www.gbx-emu.org/nes-roms.php GBX Emu.org] has lots of hacks for the NES, including Mario, Zelda, and Final Fantasy.


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Rom hacking — Se entiende por ROM hacking o ROM hack, al proceso de alteración de la imagen o volcado del soporte original de un videojuego o programa (por ejemplo, la memoria ROM de un cartucho o circuito integrado, o la superficie de un disco óptico CD ROM,… …   Wikipedia Español

  • ROM (Spielmodul) — ROM (Read Only Memory, dt. Festwertspeicher oder auch Nur Lese Speicher) ist eine verbreitete Bezeichnung für Speicherabbilder von Speicherchips (EPROM), die in Spiele Speichersteckmodulen – auch Cartridges genannt – verbaut wurden; sie enthalten …   Deutsch Wikipedia

  • Rom hacker — Saltar a navegación, búsqueda Un Rom Hacker es una persona que se dedica a la modificación de archivos ROM de videojuegos, con el objetivo de traducirlo o simplemente introducir algún cambio. Este proceso es conocido como Rom hacking. Existen… …   Wikipedia Español

  • Rom base — Saltar a navegación, búsqueda En general una imagen ROM, es un archivo informático que contiene una copia de unos datos originales (Memory) de solo lectura (Read Only). Usualmente un cartucho de videojuegos. Este término suele usarse en el… …   Wikipedia Español

  • ROM (Spiel) — ROMs (Read Only Memory, dt. Festwertspeicher oder auch Nur Lese Speicher) sind Speicherabbilder von Speicherchips (EPROM), welche in Spiele Speichersteckmodulen – auch genannt Cartridges – verbaut wurden, und die Informationen in Form des… …   Deutsch Wikipedia

  • ROM image — A ROM image, or ROM file, is a computer file which contains a copy of the data from a read only memory chip, often from a video game cartridge, a computer s firmware, or from an arcade game s main board. The term is frequently used in the context …   Wikipedia

  • Hack rom — Le ROM hacking est le processus de modification d’une image ROM d’un jeu vidéo dans le but de modifier ses graphismes, ses dialogues, ses niveaux, son gameplay ou d’autres éléments. Ceci se fait habituellement par des fans de jeux vidéo qui en… …   Wikipédia en Français

  • Poke hacking — Saltar a navegación, búsqueda El Pokémon Hacking, dentro del Rom hacking, es la alteración de un ROM de Pokémon, llevada a cabo por personas que deciden modificar alguno de los juegos para introducirle cosas nuevas o modificar las existentes. La… …   Wikipedia Español

  • Fan translation (video gaming) — For other uses, see Fan translation. A fan translation, in video gaming, refers to an unofficial translation of a computer game or video game. The fan translation practice grew with the rise of video game console emulation in the late 1990s.[1] A …   Wikipedia

  • Fan translation of video games — refers to an unofficial translation of a computer game or video game, sometimes into a language that it was never marketed in. The fan translation practice grew with the rise of video game console emulation in the late 1990s. A community of… …   Wikipedia


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.