Unofficial patch

From Infogalactic: the planetary knowledge core
(Redirected from Community-made patch)
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found. An unofficial patch is a non-commercial patch for a commercial software created by a user community instead 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.

Unofficial patches as user-created content which is typically distributed over the web can be seen as part of the Web 2.0 and the remix culture.

Motivation

A common motivation for the creation of unofficial patches is missing technical support by the original software developer or provider. There are several potential reasons:

  • the software product reached its defined end-of-life[1] and/or was superseded by a successor product (planned obsolescence)[2]
  • the software was originally designed operate in a substantially different environment and can bear additional improvement/optimization (porting)
  • the developer has gone out of business and is not available anymore (abandonware)[3]
  • support is economically not feasible (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[4][5][6]
  • the official developer is unable to cope with the problems[7]

Types

In the computer game domain, where unofficial patches are most common, unofficial patches are also sometimes called Fan patches, especially if produced by an individual person. Combined patches, including the work of several developers and authors from the community, are also called Community Patch. They are aiming typical for critical bugs in the program flow which could lead to program crashes and technical compatibility fixes, e.g. for newer operating systems, increased display resolutions[8][9] or new display formats.

While unofficial patches are most common for the PC platform, they are also existing for console games e.g. in context of the emulation community.[10]

Translations

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

As another kind of unofficial patches are fan translations of software, especially games, to local languages.[11] Fan translations are most common for Japanese role-playing games which are often not localized for Western markets.[12][13]

Another variant of unofficial patches are slipstream like patches which combine official patches together, which are only available online or as small incremental patches.

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 their own tools. These found fixes are typically packed to user deployable patches (e.g. with NSIS, Innosetup).

If the source code is available, support can by provided most effectively. Sometimes the source code becomes available by intendation,[14][15] sometimes by leaking[16] or mistake,[17] such as what happened with the game engine of the Thief series.[18][19] With the source code available even the support of completely different but actual platforms by source ports becomes possible.

Law

While court cases directly involving unofficial patches are not existing, there were similar cases in court. The case of Galoob v. Nintendo found that it was not copyright infringement by a user to apply an unauthorized patch to a system (while the scope was very specific to the Game Genie). On the other hand, the case Micro Star v. FormGen Inc. found that user generated maps were derivative works of the original game. In Sega v. Accolade, the 9th Circuit held that making copies in the course of reverse engineering is a fair use, when it is the only way to get access to the "ideas and functional elements" in the copyrighted code, and when "there is a legitimate reason for seeking such access". According to Copyright law of the United States 17 U.S. Code § 117, the owner a copy of a program can modify it as necessary for "Maintenance or Repair",[20] without permission from the copyright holder; an argumentation also raised by Daniel J. Bernstein professor at the University of Illinois at Chicago.[21] Similar user rights are given also according to European copyright laws. The question if and which copyright holder unauthorized changes of lawfully obtained software are fair and beneficial, is a long-standing debate among academic scholars.[22]

Reception

Reception of unofficial patches is mixed, but by large, copyright holders are ambivalent. When the software is not considered commercially viable unofficial patches are ignored by the copyright holder as it is not seen as a source of lost revenue.[11][23] There have been seldom cases of cease & desist letters to unofficial patch and fan translation projects.[24][25]

Sometimes the copyright holder actively support the patching and fixing efforts of a software community,[26] sometimes even by releasing the source code under a software license which allows the software community the continued software support by themself.[14][15][27][28] Examples for such software are in the List of commercial video games with later released source code.

The free and open source software movement was founded in the 1980s to solve the underlying problem of unofficial patches, the limited possibility for user self-support in binary only distributed software due to missing source code. Free and open source software demands from distributed software the availability of source code, which prevents the technical problems and legal uncertainties of binary only user patching of proprietary software.

Examples in video games

Computer game Type
Anachronox Bug fix patch[29]
Arcanum: Of Steamworks and Magick Obscura Bug fix patch,[30] fan translation
Chrono Trigger Fan translation, Bug fix patch[31]
Command & Conquer Bug fix patch[8][32]
The Elder Scrolls Daggerfall Bug fix patch,[33] Fan translation
Dark Souls II bug fixes[34]
Deadly Premonition: The Director's Cut resolution fix[9]
E.T. the Extra-Terrestrial bug fixes[35][36]
Fallout 2 Bug fix patch,[37] resolution fixes
Freelancer (video game) Bug fix patch[38]
Galactic Civilizations II Script corrections, corrections of database mistakes, engine fixes[26]
Gothic 3 Bug fix patch[7][28][39]
Infinity Engine (Baldur's gate series, Icewind Dale etc.) Bug fix patch, resolution fixes[40]
Star Wars: Knights of the Old Republic II – The Sith Lords Bug fixes,[41][42] restored content,[43] widescreen support[44]
Legacy of Kain series Bug fix patch[45][46][47]
LucasArts adventures (Monkey Island, Indiana Jones, etc.) fan translation[48]
Master of Orion 3 fan translation,[49] bug fix
Minecraft fan fixes implemented to latest patches[50][51][52]
MVP Baseball 2005 fixes, support continuation[53][54][55]
Skyrim Bug fix patch,[56][57] translation fixes[58]
Star Ocean Fan translation[12]
Supreme Commander bug fixes, multiplayer client and server replacement (after shutdown of the official server)[59][60][61]
Dark Engine (Thief 1, Thief 2, System Shock 2) Bug fix patch[18][19]
Titan Quest Bug fix patch[62][63]
Ultima series Bug fix patch,[64] fan translation
Ultima 4 Bug fix patch, remaster[65][66]
Vampire: The Masquerade – Bloodlines Bug fix patch[67][68][69]
Xenonauts Bug fix patch and support continuation[70][71]

Examples in general software

Software Type
3dfx drivers driver fixes, continued support[72][73]
Adobe Acrobat fast security fix[74]
Socket 7 boards' Award BIOS 32GB+ HDD support, AMD K6-2/3+ support[75][76][77]
Java fast security fix[78]
Windows 98 Slipstream patch, Bug fix patch,[1][79] support for harddrives > 137GB,[80] support for XP API[81][82][83]
Windows XP Update pack[84][85]
Internet Explorer fast security fix[86]
Nvidia nForce Chipset Device driver Support for older Chipsets on newer Windows OSs'[87][88][89]
Windows Metafile format fast security fix[4][5][6]
Windows URI problem fast security fix[90]
Mac OS 3.5 Daylight saving time patch[91]

See also

References

  1. 1.0 1.1 Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. 4.0 4.1 Lua error in package.lua at line 80: module 'strict' not found.
  5. 5.0 5.1 Lua error in package.lua at line 80: module 'strict' not found.
  6. 6.0 6.1 Lua error in package.lua at line 80: module 'strict' not found.
  7. 7.0 7.1 Lua error in package.lua at line 80: module 'strict' not found.
  8. 8.0 8.1 Lua error in package.lua at line 80: module 'strict' not found.
  9. 9.0 9.1 Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. 11.0 11.1 Lua error in package.lua at line 80: module 'strict' not found.
  12. 12.0 12.1 Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found. [1][2][3][4]
  14. 14.0 14.1 Lua error in package.lua at line 80: module 'strict' not found.
  15. 15.0 15.1 Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. 18.0 18.1 Lua error in package.lua at line 80: module 'strict' not found.
  19. 19.0 19.1 Lua error in package.lua at line 80: module 'strict' not found.
  20. https://www.law.cornell.edu/uscode/text/17/117
  21. softwarelaw on cr.yp.to
  22. MODIFYING COPYRIGHTED SOFTWARE: ADJUSTING COPYRIGHT DOCTRINE TO ACCOMMODATE A TECHNOLOGY by Pamela Samuelson, Professor of Law, University of Pittsburgh School of Law (1988)
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. 26.0 26.1 Community-based update to GalCiv 2 Ultimate Edition by MarvinKosh on September 25, 2014
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. 28.0 28.1 Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. Lua error in package.lua at line 80: module 'strict' not found.
  34. Lua error in package.lua at line 80: module 'strict' not found.
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. Lua error in package.lua at line 80: module 'strict' not found.
  37. Lua error in package.lua at line 80: module 'strict' not found.
  38. Lua error in package.lua at line 80: module 'strict' not found.
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. Lua error in package.lua at line 80: module 'strict' not found.
  42. Lua error in package.lua at line 80: module 'strict' not found.
  43. Lua error in package.lua at line 80: module 'strict' not found.
  44. Lua error in package.lua at line 80: module 'strict' not found.
  45. Lua error in package.lua at line 80: module 'strict' not found.
  46. Lua error in package.lua at line 80: module 'strict' not found.
  47. Lua error in package.lua at line 80: module 'strict' not found.
  48. Lua error in package.lua at line 80: module 'strict' not found.
  49. Lua error in package.lua at line 80: module 'strict' not found.
  50. Lua error in package.lua at line 80: module 'strict' not found.
  51. Lua error in package.lua at line 80: module 'strict' not found.
  52. Lua error in package.lua at line 80: module 'strict' not found.
  53. Nine Years Later, Latin America's Leagues Keep MVP Baseball Alive on Kotaku by Owen Good (12/22/13)
  54. Lua error in package.lua at line 80: module 'strict' not found.
  55. Open-Source-Breathes-New-Life-Into-MVP-Baseball-2005-Video-Game on protecode.com by Sara Purdon (on Sep 15, 2015)
  56. Lua error in package.lua at line 80: module 'strict' not found.
  57. Lua error in package.lua at line 80: module 'strict' not found.
  58. Lua error in package.lua at line 80: module 'strict' not found.
  59. GPGNet Services Update 2 (GPGnet has been shutdown) on gaspowered.com
  60. Lua error in package.lua at line 80: module 'strict' not found.
  61. Lua error in package.lua at line 80: module 'strict' not found.
  62. Lua error in package.lua at line 80: module 'strict' not found.
  63. Lua error in package.lua at line 80: module 'strict' not found.
  64. Lua error in package.lua at line 80: module 'strict' not found.
  65. Ultima IV Remastered v2.2.1 by Per Olofsson (29 May 2015)
  66. u4remastered on github.com
  67. Lua error in package.lua at line 80: module 'strict' not found.
  68. Lua error in package.lua at line 80: module 'strict' not found.
  69. Lua error in package.lua at line 80: module 'strict' not found.
  70. Lua error in package.lua at line 80: module 'strict' not found.
  71. Lua error in package.lua at line 80: module 'strict' not found.
  72. Treiber-Quellcode von 3dfx im Netz aufgetaucht - Von Nvidia offenbar geduldet by Christian Klaß on Golem.de (7 May 2003, in German)
  73. NuAngel.net Drivers on nuangel.net
  74. Lua error in package.lua at line 80: module 'strict' not found.
  75. These BIOSes are fixed to support HDDs over 32GB (up to 64GB) or over 64GB (up to 128GB) and are tested to work. by Ondrej Zary on rainbow-software.org
  76. Award BIOS Modifications by Petr Soucek on ryston.cz
  77. K6plus by Jan Steunebrink on inter.nl.net
  78. Lua error in package.lua at line 80: module 'strict' not found.
  79. Lua error in package.lua at line 80: module 'strict' not found.
  80. Lua error in package.lua at line 80: module 'strict' not found.
  81. Lua error in package.lua at line 80: module 'strict' not found.
  82. KernelEx by xeno86 Sourceforge.net
  83. Lua error in package.lua at line 80: module 'strict' not found.
  84. Lua error in package.lua at line 80: module 'strict' not found.
  85. Lua error in package.lua at line 80: module 'strict' not found.
  86. Lua error in package.lua at line 80: module 'strict' not found.
  87. Lua error in package.lua at line 80: module 'strict' not found.
  88. Lua error in package.lua at line 80: module 'strict' not found.
  89. Lua error in package.lua at line 80: module 'strict' not found.
  90. Lua error in package.lua at line 80: module 'strict' not found.
  91. Lua error in package.lua at line 80: module 'strict' not found.