ROM hacking
ROM hacking is the process of modifying a ROM image or ROM file of a video game 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 of the items the same, as well as unlocking/reimplementing features that existed in the game's code but are not utilized in-game.
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 or games console.[1]
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; as well as randomizers for certain games which shuffle entity placements.[2] Although much of the method applies to both types of hacking, this article focuses on "creative hacking" such as editing game levels.
Distribution[edit]
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 (in IPS format or others) that can be applied to the unmodified ROM.[1] 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.[13] IPS is still used today for small patches—however, as ROMs became larger, 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-ROM images as well as Nintendo 64 games. A new patch format, UPS, has also been developed by the ROM hacking community, designed to be the successor to IPS and PPF.[14]
A more recent patching format, the APS patching system, has also been developed by a devoted Game Boy Advance ROM hacker.[15] The APS system is more space efficient, is reversible, and is faster than its predecessor.[16]
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). As mentioned above, patches usually only contained user-made code changes and not copyrighted code, so they were not illegal to be distributed.
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.[17]
Usage[edit]
Patched ROMs are often played on emulators, however, it is possible to play patched ROMs on the original hardware.[18] 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 that require exact timing or other elements of the original hardware that are not available in emulators.
Systems and games[edit]
The majority of ROM hacking is done on NES and SNES 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 or Nintendo DS. Games for the Game Boy, Game Boy Color and Game Boy Advance 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, Mario series (including Mario Bros., Super Mario Bros., 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), Mario Kart series (most notably Super Mario Kart, Mario Kart Wii, Mario Kart 7, and Mario Kart DS), Pokémon series, Chip's Challenge, Castlevania, Final Fantasy, The Legend of Zelda, games from the Mega Man series, Fire Emblem series, EarthBound, Super Metroid, 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[19] for the original Gauntlet, as well as a full level editor[20] for the same game.