ROM hacking (short for Read-only memory hacking) is the process of modifying a ROM image or ROM file to alter the contents contained within them, usually 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 typically redesign a game for an all-new, fun gameplay while keeping most if not all of the items the same, as well as unlocking and/or 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 a 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.
Most hacking groups offer web space for hosting hacks and screenshots (sometimes only hosting hacks by the group's members and hosting almost any hack), a message board, and often have an IRC channel. There are also many guides created by several hacking groups that aims to help others get into grips with ROM hacking for the first time, such as the legendary "Rom Hacking Bible" for the NES written in the mid-to-late 1990s. [3]
One of the most popular sites devoted to the ROM hacking of games was ROMhacking.net, which first went online in late 2005. From 2005 to 2024, it served as a hub related to all things ROM hacking, hosting a repository of hacks, translations, utilities, documents, and patches for many well-known and obscure video games from the third generation up to the seventh generation. An immediate predecessor to ROMhacking.net was ROMhacking.com, a similar ROM hacking-oriented site that launched in 2000 and went offline in late 2004. [4]
As of August 1, 2024, ROMhacking.net has transitioned over into being a read-only news site for ROM hacking projects after nearly 20 years of hosting due to various reasons beyond the site's control, with its former database and files being archived on the Internet Archive. New submissions on the site were also permanently closed on the same day of the announcement, and all downloads will remain available on the site for as long as the site maintainers can handle. [5] [6] [7] [8]
Having been created by many different programmers or programming teams, ROM data can be very diverse.
A hex editor 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 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, also called 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.
A hex editor is the tool of choice for editing things such as character/item properties if the structure and location of this data are 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).
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 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 graphically display the ROM data, as well as finding and editing tiles.
Graphics hacks can range from simple edits (such as giving Mario an afro or Luigi a golf club) 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-V Pokémon games [9] ), 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 on how 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).
Examples of graphics hacks include the incomplete Pokémon Torzach, a hack of Pokémon FireRed which attempts to add a whole new generation of Pokémon and tiles to the game, [10] and Super Mario Land 2 DX: 6 Golden Coins, an enhanced version of the original game which added, among others, full-color support (the original game only supported greyscale) as well as some quality-of-life improvements, such as fixes with screen flickering issues from the original game. [11]
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 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 games as well as games for other systems (which included Sega Mega Drive (Genesis) games), which store absolute RGB color values. Palette editors are usually simple and often are with level editors or game-specific graphics editors.
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.
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.
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). [1] 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, usually within the limits of the hardware and software of the gaming platform. This can range from altering enemy AI to changing how graphics are generated. If the developers used a typed language, the hacker may be able to compile their 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 games, since MIPS-GCC can compile code for the Nintendo 64. [12] [13]
Music hacks are relatively rare in most hacks, due to the wide variety of ways games store music data (hence the difficulty in locating and modifying this data) as well as 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. Exceptions exist, however, such as the most recent Super Mario World hacks where new music can have new instruments 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 , and the Mega Drive (Genesis) Sonic the Hedgehog games.
As many Game Boy Advance games use the M4A Engine (informally called "Sappy Driver" and officially known as "MusicPlayer2000" or MP2k) 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 as Sappy 2006. Another instance of the same engine being used between games is on the Nintendo 64 where most games use the same format; albeit with different sound banks for each game. A utility known as the N64 Midi Tool was created to edit the sequences that the majority of Nintendo 64 games use, however it does not cover first-party N64 titles that use a slightly different engine such as Super Mario 64 .
Several games for the Sega Mega Drive (Genesis) [14] used a sound engine commonly known as "SMPS", which has been offered in both 68k and Z80-based versions. [15] It was predominantly used in a wide variety of Japanese-developed games for the system (including Sega's first-party games) with some games providing modified versions of the sound engine tailored for a specific game. It has been researched for decades by many hackers. [16] Today, many tools are available [17] to alter the music of games that use the SMPS engine (most notably the Sonic the Hedgehog games in particular); many of the compositions and arrangements made under the SMPS engine had eventually made their way into the Steam Workshop. [18]
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 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 an SNES game (and even a Mega Drive (Genesis) game for that matter) is (relatively) straightforward. To utilize the added space, parts of the game code have to be modified or rewritten (see Assembly hacking above) so the game knows where to look. Another type of ROM expansion that is fairly easy is Game Boy Advance ROMs. The ROMs themselves are generally small, but the memory space available sometimes exceeds it by multiples of up to 17.
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. [19] 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. [20] A more recent patching format, the APS patching system, has also been developed by a devoted Game Boy Advance ROM hacker. [21] Compared to other patching formats, the APS system is more space efficient, is reversible, and is faster than its predecessor. [22]
The main 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. In this context, patches usually contained user-made code changes to the game and not the original game’s copyrighted code, which would have eliminated any copyright issues that may occur with distributing unofficial patches for games.[ citation needed ] 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).
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. [23]
Patched ROMs are often played on emulators, however, it is possible to play patched ROMs on the original hardware. [24] The destination cartridge could be the original cartridge from which the initial unpatched ROM was pulled (which usually 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.
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 (including 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 , 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 [25] for the original Gauntlet , as well as a full level editor [26] for the same game.
The Super Nintendo Entertainment System, commonly shortened to Super Nintendo, Super NES or SNES, 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 Europe and Oceania and 1993 in South America. In Japan, it is called the Super Famicom (SFC). In South Korea, it is called the Super Comboy and was distributed by Hyundai Electronics. The system was released in Brazil on August 30, 1993, by Playtronic. In Russia and CIS, the system was distributed by Steepler from 1994 until 1996. Although each version is essentially the same, several forms of regional lockout prevent cartridges for one version from being used in other versions.
Parallax scrolling is a technique in computer graphics where background images move past the camera more slowly than foreground images, creating an illusion of depth in a 2D scene of distance. The technique grew out of the multiplane camera technique used in traditional animation since the 1930s.
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 the Super NES, Game Boy, Genesis, and Game Gear. All Game Genie devices temporarily modify game data, allowing the player to do things unintended by developers such as, depending on the game, cheating, manipulating various aspects of games, and accessing unused assets and functions. Five million units of the original Game Genie products were sold worldwide, and most video game console emulators for the platforms it was on feature Game Genie code support. Emulators that have Game Genie support also allow a near-unlimited number of codes to be entered whereas the actual products have an upper and lower limit, between three and six codes.
A regional lockout is a class of digital rights management preventing the use of a certain product or service, such as multimedia or a hardware device, outside a certain region or territory. A regional lockout may be enforced through physical means, through technological means such as detecting the user's IP address or using an identifying code, or through unintentional means introduced by devices only supporting certain regional technologies.
In the history of video games, the fourth generation of video game consoles, more commonly referred to as the 16-bit era, began on October 30, 1987, with the Japanese release of NEC Home Electronics' PC Engine. Though NEC released the first console of this era, sales were mostly dominated by the rivalry between Sega and Nintendo across most markets: the Sega Mega Drive and the Super Nintendo. Cartridge-based handheld game consoles became prominent during this time, such as the Nintendo Game Boy, Atari Lynx, Sega Game Gear and TurboExpress.
The fifth generation era refers to computer and video games, video game consoles, and handheld gaming consoles dating from approximately October 4, 1993, to March 23, 2006. The best-selling home console was the Sony PlayStation, followed by the Nintendo 64 and Sega Saturn. The PlayStation also had a redesigned version, the PSone, which was launched on July 7, 2000.
In video game parlance, a multicart is a cartridge that contains more than one game. Typically, the separate games are available individually for purchase or were previously available individually. For this reason, collections, anthologies, and compilations are considered multicarts. The desirability of the multicart to consumers is that it provides better value, greater convenience, and more portability than the separate games would provide. The advantage to developers is that it allows two or more smaller games to be sold together for the price of one larger game, and provides an opportunity to repackage and sell older games one more time, often with little or no changes.
The Super FX is a coprocessor on the Graphics Support Unit (GSU) added to select Super Nintendo Entertainment System (SNES) video game cartridges, primarily to facilitate advanced 2D and 3D graphics. The Super FX chip was designed by Argonaut Games, who also co-developed the 3D space rail shooter video game Star Fox with Nintendo to demonstrate the additional polygon rendering capabilities that the chip had introduced to the SNES.
Multi-memory controllers or memory management controllers (MMC) are different kinds of special chips designed by various video game developers for use in Nintendo Entertainment System (NES) cartridges. These chips extend the capabilities of the original console and make it possible to create NES games with features the original console cannot offer alone. The basic NES hardware supports only 40KB of ROM total, up to 32KB PRG and 8KB CHR, thus only a single tile and sprite table are possible. This limit was rapidly reached within the Famicom's first two years on the market and game developers began requesting a way to expand the console's capabilities.
Homebrew, when applied to video games, refers to software produced by hobbyists for proprietary video game consoles which are not intended to be user-programmable. The official documentation is often only available to licensed developers, and these systems may use storage formats that make distribution difficult, such as ROM cartridges or encrypted CD-ROMs. Many consoles have hardware restrictions to prevent unauthorized development.
The Virtual Console is a defunct line of downloadable retro video games for Nintendo's Wii and Wii U home video game consoles and the Nintendo 3DS family of systems. The Virtual Console lineup consisted of titles originally released on past home and handheld consoles and were run in their original forms through software emulation, therefore remaining mostly unaltered, and could be purchased from the Wii Shop Channel or Nintendo eShop for between 500 and 1200 Wii Points, or using real currency, with prices depending on the system, rarity, and/or demand.
The Sega Genesis, known as the Mega Drive outside North America, is a 16-bit fourth generation home video game console developed and sold by Sega. It was Sega's third console and the successor to the Master System. Sega released it in 1988 in Japan as the Mega Drive, and in 1989 in North America as the Genesis. In 1990, it was distributed as the Mega Drive by Virgin Mastertronic in Europe, Ozisoft in Australasia, and Tectoy in Brazil. In South Korea, it was distributed by Samsung Electronics as the Super Gam*Boy and later the Super Aladdin Boy.
Joe & Mac, also known as Caveman Ninja and Caveman Ninja: Joe & Mac, is a run and gun platform game released as an arcade video game by Data East in 1991. It was adapted for the Super NES, Mega Drive/Genesis, Nintendo Entertainment System, Game Boy, Amiga, Zeebo, Nintendo Switch, and IBM PC compatibles.
Somari the Adventurer is a side-scrolling platform video game for the Family Computer. An unlicensed remake of Sega's 1991 Sega Genesis/Mega Drive game Sonic the Hedgehog, the game was sold primarily around Asia, Russia, Eastern Europe, and other regions where bootleg NES and Famicom cartridges were distributed. Like the original, players venture to defeat the mad scientist Dr. Robotnik, who plots to turn the animal population of the fictional South Island into evil robots. Unlike the original, the game features Nintendo's mascot Mario as the main character rather than Sonic. The title is a portmanteau of "Sonic" and "Mario".
A ROM cartridge, usually referred to in context simply as a cartridge, cart, or card, is a replaceable part designed to be connected to a consumer electronics device such as a home computer, video game console or, to a lesser extent, electronic musical instruments.
The 1990s was the third decade in the industry's history. It was a decade of marked innovation in video gaming. It was a decade of transition from sprite-based graphics to full-fledged 3D graphics and it gave rise to several genres of video games including, but not limited to, the first-person shooter, real-time strategy, survival horror, and MMO. Arcade games, although still very popular in the early 1990s, began to decline as home consoles became more common. The fourth and fifth generation of video game consoles went on sale, including the Sega Genesis, Super Nintendo, Sega Saturn, PlayStation, Nintendo 64, Game Boy Color and the Sega Dreamcast. Notable games released in the 1990s included Super Mario World, Sonic the Hedgehog, Street Fighter II, Mortal Kombat, Tekken 3,Doom, Wolfenstein 3D, Quake, Duke Nukem 3D, Final Fantasy VII, Unreal Tournament, Star Fox, Half-Life, Grand Theft Auto, Super Mario 64, Pokémon Red and Blue, NBA Jam,Daytona USA, GoldenEye 007, System Shock 2, Civilization,Ridge Racer, Sonic Adventure, Gran Turismo, Super Mario Kart, Pokémon Gold and Silver,Castlevania: Symphony of the Night, Super Metroid, Silent Hill, Dead or Alive 2, The Legend of Zelda: Ocarina of Time, Crash Bandicoot, Spyro The Dragon, Fallout, Metal Gear Solid, Diablo, Virtua Fighter, Tomb Raider,Sega Rally Championship, Wing Commander,Super Smash Bros, Secret of Mana,Thief: The Dark Project, Age of Empires, Nights into Dreams, Panzer Dragoon, Gunstar Heroes, EverQuest, Chrono Trigger, Battletoads, Worms, Myst, Micro Machines, Streets of Rage 2,Baldur's Gate,Donkey Kong Country, Wipeout, The Legend of Zelda: A Link to the Past, Super Mario Land 2: 6 Golden Coins,Lemmings, EarthBound, StarCraft, Banjo-Kazooie, PaRappa the Rapper, Resident Evil, Tony Hawk's Pro Skater, Soulcalibur, Command & Conquer, and Dance Dance Revolution.
A video game console emulator is a type of emulator that allows a computing device to emulate a video game console's hardware and play its games on the emulating platform. More often than not, emulators carry additional features that surpass limitations of the original hardware, such as broader controller compatibility, timescale control, easier access to memory modifications, and unlocking of gameplay features. Emulators are also a useful tool in the development process of homebrew demos and the creation of new games for older, discontinued, or rare consoles.
A fan game is a video game that is created by fans of a certain topic or IP. They are usually based on one, or in some cases several, video game entries or franchises. Many fan games attempt to clone or remake the original game's design, gameplay, and characters, but it is equally common for fans to develop a unique game using another as a template. Though the quality of fan games has always varied, recent advances in computer technology and in available tools, e.g. through open source software, have made creating high-quality games easier. Fan games can be seen as user-generated content, as part of the retrogaming phenomena, and as expression of the remix culture.
The Nintendo data leak, also known as the Nintendo Gigaleak, is a series of leaks of data from the Japanese video game company Nintendo on the anonymous imageboard website 4chan. The leak started in March 2018, but became most prominent in 2020. Ten main sets of data leaked on 4chan, ranging from game and console source code to internal documentation and development tools. The name "Gigaleak" mainly refers to the second leak on July 24, 2020, which was 3 gigabytes in size. The leaks are believed to have come from companies contracted by Nintendo in the design of these consoles, and/or from individuals previously convicted of intrusion into Nintendo systems. An earlier, much smaller leak had also occurred in 2018 which contained the Nintendo Space World 1997 demos for Pokémon Gold and Silver.
In the video game industry, a console war describes the competition between two or more video game console manufacturers in trying to achieve better consumer sales through more advanced console technology, an improved selection of video games, and general marketing around their consoles. While console manufacturers are generally always trying to out-perform other manufacturers in sales, these console wars engage in more direct tactics to compare their offerings directly against their competitors or to disparage the competition in contrast to their own, and thus the marketing efforts have tended to escalate in back-and-forth pushes.