ROM hacking
ROM hacking is the process of modifying a ROM image or ROM file to change or alter the contents contained within, usually of a video game to alter the game's graphics, dialogue, levels, gameplay, or other elements.
ROM hacking is usually done by technically inclined video game fans, often created as a fun way of playing the original games by redesigning the old game with new graphics, levels, items, mechanics and other features while keeping the core gameplay the same, in effect creating either an improved or an entirely different version of the original game. In general, they are typically done to improve an old game of importance, as a creative outlet, or to essentially make new (unofficial) games using the old game's engine.
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 a games console.
Fan translation (known as "translation hacking" within the ROM hacking community) is another 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 in Japan or Europe; randomizers are also available for certain games, which are designed to shuffle entity placements from within the games; some hacks are also created to unlock or reimplement features that exist in the game's code but are not used in-game, especially when rediscovering and restoring old beta content that was hidden away from the game's final release. Although much of the method applies to both types of hacking, this article focuses on "creative hacking" such as editing game levels.