An unofficial patch is a patch for a piece of software, created by a third party such as a user community without the involvement of the original developer. Similar to an ordinary patch, it alleviates bugs or shortcomings. Unofficial patches do not usually change the intended usage of the software, in contrast to other third-party software adaptions such as mods or cracks. Motivation A common motivation for the creation of unofficial patches is missing technical support by the original software developer or provider. Reasons may include: the software product reached its defined end-of-life and/or was superseded by a successor product (planned obsolescence) the software was originally designed to operate in a substantially different environment and may require improvement/optimization (porting) the developer has gone out of business and is not available anymore (abandonware) support is not economically viable (e.g. localization for small markets) a fast solution for a time critical problem (e.g. security holes) when an official one takes too long the official developer is unable to cope with the problems Types Unofficial patches are also sometimes called fan patches or community patches, and are typically intended to repair unresolved bugs and provide technical compatibility fixes, e.g. for newer operating systems, increased display resolutions or new display formats. While unofficial patches are most common for the PC platform, they can also be found for console games e.g. in context of the emulation community. Translations Unofficial patches are not limited to technical fixes; fan translations of software, especially games, are often created if the software has not been released locally. Fan translations are most common for Japanese role-playing games which are often not localized for Western markets. Another variant of unofficial patches are slipstream like patches which combine official patches together, when individual patches are only available online or as small incremental updates. Methods The most common case is that the source code and the original development tools are not available for the software. Therefore, the faulty software's binary must be analyzed at run time by reverse engineering and debugging. If the problem is found, a fix to the program must be applied. Sometimes only small changes in configuration files or the registry are required, sometimes binary hacks on the executable itself are required to fix bugs. If a software development kit (e.g. for modding) is available, fixes to the content can be easily produced, otherwise the community would need to create