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. 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 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 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 (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 games. A new patch format,