Another good example of graphics hack was Super Mario Land 2 DX: 6 Golden Coins, which added full color support (the game was originally grayscale) and removed the game's issues with screen flickering. 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 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 and Sega Mega Drive/Genesis games, as well as games for other systems, which store absolute RGB 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). 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 equipped with a built-in