ROM hack
   HOME

TheInfoList



OR:

ROM hacking is the process of modifying a ROM image or ROM file of a
video game Video games, also known as computer games, are electronic games that involves interaction with a user interface or input device such as a joystick, controller, keyboard, or motion sensing device to generate visual feedback. This fee ...
to alter the game's graphics, dialogue, levels, gameplay, and/or other elements. This is usually done by technically inclined video game fans to improve an old game of importance, as a creative outlet, or to make new, unofficial games using the old game's engine. ROM hacks either re-design a game for new, fun gameplay while keeping most if not all the items the same, or unlock/reimplement features that exist in the game's code but are not utilized in-game. ROM hacking is generally accomplished through use of a
hex editor A hex editor (or ''binary file editor'' or ''byte editor'') is a computer program that allows for manipulation of the fundamental binary data that constitutes a computer file. The name 'hex' comes from 'hexadecimal', a standard numerical format f ...
(a program for editing non-textual data) and various specialized tools such as
tile Tiles are usually thin, square or rectangular coverings manufactured from hard-wearing material such as ceramic, stone, metal, baked clay, or even glass. They are generally fixed in place in an array to cover roofs, floors, walls, edges, or o ...
editors, and game-specific tools which are generally used for editing levels, items, and the like, although more advanced tools such as
assemblers Assembler may refer to: Arts and media * Nobukazu Takemura, avant-garde electronic musician, stage name Assembler * Assemblers, a fictional race in the ''Star Wars'' universe * Assemblers, an alternative name of the superhero group Champions of A ...
and
debugger A debugger or debugging tool is a computer program used to test and debug other programs (the "target" program). The main use of a debugger is to run the target program under controlled conditions that permit the programmer to track its executi ...
s are occasionally used. Once ready, they are usually
distributed Distribution may refer to: Mathematics *Distribution (mathematics), generalized functions used to formulate solutions of partial differential equations *Probability distribution, the probability of a particular value or value range of a varia ...
on the
Internet The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
for others to play on an
emulator In computing, an emulator is hardware or software that enables one computer system (called the ''host'') to behave like another computer system (called the ''guest''). An emulator typically enables the host system to run software or use pe ...
or games console.
Fan translation Fan translation (or user-generated translation) refers to the unofficial translation of various forms of written or multimedia products made by fans (fan labor), often into a language in which an official translated version is not yet available ...
(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; as well as randomizers for certain games which shuffle entity placements. Although much of the method applies to both types of hacking, this article focuses on "creative hacking" such as editing game levels.


Communities

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 Internet Relay Chat (IRC) is a text-based chat system for instant messaging. IRC is designed for group communication in discussion forums, called '' channels'', but also allows one-on-one communication via private messages as well as chat an ...
channel.


Methods

Having been created by many different programmers or programming teams, ROM data can be very diverse.


Hex editing

A
hex editor A hex editor (or ''binary file editor'' or ''byte editor'') is a computer program that allows for manipulation of the fundamental binary data that constitutes a computer file. The name 'hex' comes from 'hexadecimal', a standard numerical format f ...
is one of the most fundamental tools in any ROM hacker's repertoire. Hex editors are usually used for editing text, and for editing other data for which the structure is known (for example, item properties), and Assembly hacking. Editing text is one of the most basic forms of hacking. Many games do not store their text in
ASCII ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because ...
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
byte pair encoding Byte pair encoding or digram coding is a simple form of data compression in which the most common pair of consecutive bytes of data is replaced with a byte that does not occur within that data. A table of the replacements is required to rebuild the ...
, also called
dual tile encoding Byte pair encoding or digram coding is a simple form of data compression in which the most common pair of consecutive bytes of data is replaced with a byte that does not occur within that data. A table of the replacements is required to rebuild the ...
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. 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, but this is extremely difficult (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 environments, 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 In digital imaging, a pixel (abbreviated px), pel, or picture element is the smallest addressable element in a raster image, or the smallest point in an all points addressable display device. In most digital display devices, pixels are the ...
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 a
''Tile Layer''
o
''Tile Molester''
, which can display the ROM data in a graphical way, as well as finding and editing tiles. Graphics hacks can range from simple edits (such as giving
Mario is a character created by Japanese video game designer Shigeru Miyamoto. He is the title character of the ''Mario'' franchise and the mascot of Japanese video game company Nintendo. Mario has appeared in over 200 video games since his cre ...
an
afro The afro is a hair type created by natural growth of kinky hair, or specifically styled with chemical curling products by individuals with naturally curly or straight hair.Garland, Phyl"Is The Afro On Its Way Out?" ''Ebony'', February 1973. ...
or
Luigi is a fictional character featured in video games and related media released by Nintendo. Created by Japanese video game designer Shigeru Miyamoto, Luigi is portrayed as the younger fraternal twin brother and sidekick of Mario, Nintendo's masc ...
a
golf club A golf club is a club used to hit a golf ball in a game of golf. Each club is composed of a shaft with a grip and a club head. Woods are mainly used for long-distance fairway or tee shots; irons, the most versatile class, are used for a variety ...
) to "porting" characters from one game to another (such as creating pixelated "retro-styled" sprites of later generation Pokémon for use in Generation I-III Pokémon games), to full-blown thematic changes (usually with accompanying palette changes; see below). 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 a specific game or a specific system). A good example of a graphics hack is the incomplete ''Pokémon Torzach'', a hack of Pokémon FireRed which attempted to add a whole new generation of Pokémon and tiles to the game. The hack has since been discontinued, but it still serves as a good example on what can be achieved with the tools available.


Palette 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); Palette values are commonly stored in Hex. This is fairly easy for
NES The Nintendo Entertainment System (NES) is an 8-bit third-generation home video game console produced by Nintendo. It was first released in Japan in 1983 as the commonly known as the The NES, a redesigned version, was released in American ...
games, the graphics of which use a pre-defined set of colors among which a game selects (using a YIQ-based color palette); palette hacking in this case entails changing which of those colors are selected. The matter is slightly more complicated with
Super NES The Super Nintendo Entertainment System (SNES), commonly shortened to Super NES or Super Nintendo, is a 16-bit home video game console developed by Nintendo that was released in 1990 in Japan and South Korea, 1991 in North America, 1992 in ...
and Sega Mega Drive/Genesis games, as well as games for other systems, which store absolute
RGB The RGB color model is an additive color model in which the red, green and blue primary colors of light are added together in various ways to reproduce a broad array of colors. The name of the model comes from the initials of the three addi ...
color values. Palette editors are usually simple and often are with level editors or game-specific graphics editors.


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 In video games, a level (also referred to as a map, stage, or round in some older games) is any space available to the player during the course of completion of an objective. Video game levels generally have progressively-increasing difficulty t ...
''). 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 role-playing video games) 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.


Assembly 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 low level programming language that gets executed by the CPU). 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 In computing, an emulator is hardware or software that enables one computer system (called the ''host'') to behave like another computer system (called the ''guest''). An emulator typically enables the host system to run software or use pe ...
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.) If the developers used a
typed language In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer progra ...
, the hacker may be able to compile their own code for the game in the same language if they have access to a proper compiler. One such example would be using C to hack
Nintendo 64 The (N64) is a home video game console developed by Nintendo. The successor to the Super Nintendo Entertainment System, it was released on June 23, 1996, in Japan, on September 29, 1996, in North America, and on March 1, 1997, in Europe and ...
games, since MIPS- GCC can compile code for the Nintendo 64.


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). As music cracking is very uncommon, many hacks do not have any ported/composed music added in. An exception to this rule can be found in most ''
Super Mario World ''Super Mario World,'' known in Japan as is a platform video game developed and published by Nintendo for the Super Nintendo Entertainment System (SNES). It was released in Japan in 1990, North America in 1991 and Europe and Australia in 19 ...
'' hacks, where custom music can often have new instruments that are not found in the original game. Other games that have music hacking as part of their research and hacking communities are the NES '' Mega Man'' games, ''
Final Fantasy VI also known as ''Final Fantasy III'' from its initial North American release, is a 1994 role-playing video game developed and published by Square for the Super Nintendo Entertainment System. It is the sixth main entry in the ''Final Fantasy'' ...
'', and the Mega Drive (Genesis) '' Sonic the Hedgehog'' games. As many Game Boy Advance games use the M4A Engine (also called "Sappy Driver") for music, the program SapTapper can be used to hack Game Boy Advance music data. Various other utilities were created to work with the engine such a
Sappy 2006
Another instance of the same engine being used between games is on the Nintendo 64, in which most games use the same format; however they use different sound banks. A utility known as th
N64 Midi Tool
was created to edit the sequences that the majority of Nintendo 64 games use, though it does not cover the first-party N64 titles that use a slightly different engine, such as '' Super Mario 64''. Several Sega Mega Drive/Genesis games use a sound engine unofficially known as "SMPS", which are offered in both 68k and
Z80 The Z80 is an 8-bit microprocessor introduced by Zilog as the startup company's first product. The Z80 was conceived by Federico Faggin in late 1974 and developed by him and his 11 employees starting in early 1975. The first working samples were ...
versions. Used in a number of Japanese-developed games for the system, the sound engine has been researched for decades by many hackers. As of today, various tools exist to alter the music of games which use the SMPS engine (most notably the ''Sonic the Hedgehog'' games in particular), and many of them made their way to the
Steam Workshop Steam is a video game digital distribution service and storefront by Valve. It was launched as a software client in September 2003 as a way for Valve to provide automatic updates for their games, and expanded to distributing and offering third ...
.


ROM expansion

Generally speaking, a ROM hacker cannot normally 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, in turn, 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 MAPPER, now known as BIS, is a fourth-generation programming language from Sperry Univac. Mapper originated in the 1970s based on some work in the 1960s, but has been kept current. It was renamed and also given an extension named ICE - Internet ...
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 SNES game is (relatively) straightforward. To utilize the added space, parts of the game code have to be modified or re-written (see Assembly hacking above) so the game knows where to look. Another type of ''ROM expansion'' that is fairly easy is
Game Boy Advance The (GBA) is a 32-bit handheld game console developed, manufactured and marketed by Nintendo as the successor to the Game Boy Color. It was released in Japan on March 21, 2001, in North America on June 11, 2001, in the PAL region on June 22, ...
ROMs. The ROMs themselves are generally small, but the memory space available sometimes exceeds it by multiples of up to 17.


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 an
unofficial patch An unofficial patch is a patch for a piece of software, created by a third party such as a user community without the involvement of the original developer. Similar to an ordinary patch, it alleviates bugs or shortcomings. Unofficial patches do ...
(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 (also known as " PlayStation Patch Format"). PPF is still used today, particularly to patch large files such as ISO CD images as well as
Nintendo 64 The (N64) is a home video game console developed by Nintendo. The successor to the Super Nintendo Entertainment System, it was released on June 23, 1996, in Japan, on September 29, 1996, in North America, and on March 1, 1997, in Europe and ...
games. A new patch format, UPS, has also been developed by the ROM hacking community, designed to be the successor to IPS and PPF. A more recent patching format, the APS patching system, has also been developed by a devoted Game Boy Advance ROM hacker. The APS system is more space efficient, is reversible, and is faster than its predecessor. 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 usually distribute parts of the original game. A patch is also normally drastically smaller than the full ROM image (an NES ROM can run anywhere from 8 KB to 2 MB; a Super NES ROM can run from 256 KB to 6 MB; and Mega Drive/Genesis ROMs can run from 512 KB to 4 MB). Also, since patches usually only contained user-made code changes and not copyrighted code, it was not illegal to distribute one. In a novel example of legal distribution, Sega released a Steam-based virtual hub for its previous collection of Mega Drive/Genesis games, entitled '' Sega Mega Drive Classics Hub''. The ''Hub'', besides allowing players to play emulated versions of these older games, takes advantage of Steam's support for user-created content through the Steam Workshop, officially allowing the distribution of ROM hacks of any of the offered games.


Usage

Patched ROMs are often played on emulators, however it is possible to play patched ROMs on the original hardware. The destination cartridge could be the original cartridge from which the initial unpatched ROM was pulled (which involves replacing the original ROM chip with a new one), or another compatible cartridge of the same type, such as flash cartridges. This is particularly popular for fan translations, homebrew games, prototypes, games for which ROM cartridges were never produced, or for games which require exact timing or other elements of the original hardware which are not available in emulators.


Systems and games

The majority of ROM hacking is done on
NES The Nintendo Entertainment System (NES) is an 8-bit third-generation home video game console produced by Nintendo. It was first released in Japan in 1983 as the commonly known as the The NES, a redesigned version, was released in American ...
and
SNES The Super Nintendo Entertainment System (SNES), commonly shortened to Super NES or Super Nintendo, is a 16-bit home video game console developed by Nintendo that was released in 1990 in Japan and South Korea, 1991 in North America, 1992 in E ...
games (including Sega Mega Drive/Genesis games to an extent), since such games are small and simple compared to games of more advanced consoles such as the
Nintendo 64 The (N64) is a home video game console developed by Nintendo. The successor to the Super Nintendo Entertainment System, it was released on June 23, 1996, in Japan, on September 29, 1996, in North America, and on March 1, 1997, in Europe and ...
or Nintendo DS. Games for the
Game Boy The is an 8-bit fourth generation handheld game console developed and manufactured by Nintendo. It was first released in Japan on April 21, 1989, in North America later the same year, and in Europe in late 1990. It was designed by the same t ...
, Game Boy Color and
Game Boy Advance The (GBA) is a 32-bit handheld game console developed, manufactured and marketed by Nintendo as the successor to the Game Boy Color. It was released in Japan on March 21, 2001, in North America on June 11, 2001, in the PAL region on June 22, ...
are also popular for hacking, as well as games for the PlayStation to a lesser extent. However, games intended for more recent consoles are not exempt from hacking, and as computers have become faster over time and more programs and utilities have been written, more PlayStation, Nintendo 64 and Nintendo DS hacks have emerged. 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'' series (including ''
Mario Bros. is a 1983 arcade game developed and published for arcades by Nintendo. It was designed by Shigeru Miyamoto and Gunpei Yokoi, Nintendo's chief engineer. Italian twin brother plumbers Mario and Luigi exterminate creatures emerging from the ...
'', ''
Super Mario Bros. is a platform game developed and published by Nintendo for the Nintendo Entertainment System (NES). The successor to the 1983 arcade game '' Mario Bros.'' and the first game in the ''Super Mario'' series, it was first released in 1985 for ...
'', '' Super Mario Bros. 2'', '' Super Mario Bros. 3'', '' Super Mario Land'', '' Super Mario Land 2: 6 Golden Coins'', '' Super Mario 64'' and ''
Super Mario World ''Super Mario World,'' known in Japan as is a platform video game developed and published by Nintendo for the Super Nintendo Entertainment System (SNES). It was released in Japan in 1990, North America in 1991 and Europe and Australia in 19 ...
''), '' Mario Kart'' series (most notably '' Super Mario Kart'', ''
Mario Kart Wii is a kart racing game developed and published by Nintendo for the Wii. It is the sixth installment in the ''Mario Kart'' series, and was released in April 2008. Like its previous installments, ''Mario Kart Wii'' incorporates playable characters ...
'', '' Mario Kart 7'', and '' Mario Kart DS''), '' Pokémon'' series, '' Chip's Challenge'', '' Castlevania'', ''
Final Fantasy is a Japanese video game, Japanese science fantasy anthology media franchise created by Hironobu Sakaguchi and developed and owned by Square Enix (formerly Square (video game company), Square). The franchise centers on a series of fantasy and ...
'', ''
The Legend of Zelda ''The Legend of Zelda'' is an action-adventure game franchise created by the Japanese game designers Shigeru Miyamoto and Takashi Tezuka. It is primarily developed and published by Nintendo, although some portable installments and re-rele ...
'', games from the '' Mega Man'' series, ''
Fire Emblem is a fantasy tactical role-playing game franchise developed by Intelligent Systems and published by Nintendo. First produced and published for the Famicom in 1990, the series currently consists of sixteen core entries and five spinoffs. ...
'' series, '' EarthBound'', ''
Super Metroid is an action-adventure game developed by Nintendo and Intelligent Systems and published by Nintendo for the Super Nintendo Entertainment System in 1994. It is the third installment in the ''Metroid'' series, following the events of the Game Boy ...
'', and many others. A notable hacked arcade game was '' Street Fighter II: Rainbow Edition'', which featured increased game speed and new special moves. The success of this game prompted Capcom to release '' Street Fighter II: Hyper Fighting'' as an official response. '' Your Sinclair'' magazine published a monthly column called "Program Pitstop". This focused mainly on cheat hacks for games, but also featured both a level map printer for the original '' Gauntlet'', as well as a full level editor for the same game.


See also

*
Emergent gameplay Emergent gameplay refers to complex situations in video games, board games, or table top role-playing games that emerge from the interaction of relatively simple game mechanics. Designers have attempted to encourage emergent play by providing too ...
*
Fangame A fangame is a video game that is created by fans. They are usually based on one, or in some cases several, video game entries or franchises. Many fangames attempt to clone or remake the original game's design, gameplay, and characters, but ...
* Fan translation of video games * Forking (software development) *
Game Genie Game Genie is a line of video game cheat cartridges originally designed by Codemasters, sold by Camerica and Galoob. The first device in the series was released in 1990 for the Nintendo Entertainment System, with subsequent devices released for t ...
*
GameShark GameShark is the brand name of a line of video game cheat cartridges and other products for a variety of console video game systems and Windows-based computers. Currently, the brand name is owned by Mad Catz, which marketed GameShark products fo ...
* Homebrew (video games) *
Video game modding Video game modding (short for "modification") is the process of alteration by players or fans of one or more aspects of a video game, such as how it looks or behaves, and is a sub-discipline of general modding. Mods may range from small changes an ...
* Undubbing


References

* * * * {{Firmware and booting Video game mods Hacker culture