Der KitServer 5.2 ist ein Erweiterungsprogramm für Pro Evolution Soccer 5, Winning Eleven 9 und Winning Eleven 9 Liveware Edition. Er dient als Starter und Verwalter von verschiedenen Einzelmodulen. Das Kitserver-Modul 5.2.0 bietet einen alternativen Weg, um die Trikots von Spielern und Torhütern außerhalb der AFS-Datei des Spiels zu verwalten: die Trikots werden als PNG- oder BMP-Bilder in einer externen Datenbank organisiert, die hauptsächlich eine Ansammlung von Ordnern und Dateien ist, die einigen einfachen Regeln folgen. Dabei bist du nicht auf Heim- und Auswärtstrikot beschränkt, sondern kannst so viele haben wie du möchtest. Das Ballserver-Modul 5.2.0 (siehe Abschnitt 3) funktioniert ähnlich wie der Kitserver, es ermöglicht dir, Bälle aus einer externen Datenbank auszuwählen, natürlich auch mehr als die acht Standardbälle. Darüberhinaus ermöglicht das LOD Mixer-Modul 5.2.0 detailiertere Grafiken und die Kontrolle über Spieleinstellungen in Ligen und Pokalen (siehe Abschnitt 4).
Wie immer: einfach den gesamten kitserver-Ordner in den Spielordner kopieren, sodass die Ordnerstruktur ähnlich wie hier aussieht:
Gehe in den kitserver-Ordner und starte setup.exe. In der Drop-Down-Liste sollte "PES5.exe" vorausgewählt sein, klicke also einfach auf den "Install"-Button. Der Kitserver sollte eine Meldung anzeigen, dass die Installation erfolgreich war. (Wenn du eine Fehlermeldung bekommst, stelle sicher dass das Spiel nicht läuft und die PES5.exe nicht als schreibgeschützt markiert ist)
Gehe in den kitserver-Ordner und starte setup.exe. In der Drop-Down-Liste sollte "PES5.exe" vorausgewählt sein. (Wenn nicht, wähle sie aus). Klicke auf den "Remove"-Button. Der Kitserver sollte nun eine Meldung anzeigen, dass die Deinstallation erfolgreich war. Nun kannst du den gesamten kitserver-Ordner löschen, wenn du willst. (Oder ihn dort belassen - er schadet nicht, und du kannst den Kitserver später schnell reaktivieren, indem du das Setup erneut startest und den "Install"-Button anklickst.)
Fangen wir als mit der GDB an, der wichtigsten Änderung (im Vergleich zu Version 5.0). Die GDB enthält einen Ordner namens uni, der verantwortlich für die Aufbewahrung der Team-Trikots (Uniformen) ist. Der wichtigste Einzeldatei in uni ist map.txt. Diese Datei zeigt dem Kitserver, wo er die Trikots für ein bestimmtes Team findet. Wie du weißt, hat jedes Team eine einmalige ID - eine Ganzzahl von 0 bis 201, glaube ich (+ einige All-Star-Teams). Also musst du für jedes Team in der map.txt festlegen, wo die Trikots dieses Teams sind. Hier ein Beispiel:
# This config maps team number into folder name # Format: <team-num>,"<folder name>" # Example: 21,"Russia" 8,"National\France" 9,"National\Germany" 65,"EPL\Aston_Villa" 75,"EPL\Man Utd" 77,"EPL\Newcastle" 80,"EPL\Tottenham" 170,"La Liga\Real Madrid"
Beachte bitte, dass die Beispiel-GDB (die mit dem Kitserver verbreitet wird) nur ein möglicher Weg ist, die Teams und Ordner zu organisieren. Sie benutzt einen "EPL"-Ordner, um alle englischen Teams zu gruppieren, "National" - um alle Nationalteams zu gruppieren und so weiter. Vielleicht bevorzugst du eine einfache Liste der Ordner - ohne diese Extra-Gruppen. In diesem Fall, passe einfach die map.txt-Datei an und erstelle die Ordnerstruktur so wie du es bevorzugst. Das ist der Hauptvorteil, dass es map.txt gibt - die Flexibilität der Trikot-Organisation.
Du kannst in der map.txt oben erkannen, dass der Kitserver um ein Trikot für Team #8 in den Ordner
GDB\uni\National\France gehen muss. Dieser Ordner enthält alle Trikots, die für Team #8 verfügbar sind. In ihm musst
du für jedes Trikot einen eigenen Ordner erstellen, etwa so:
Für Spieler muss das erste (Heim-)Trikot den Ordnernamen pa haben, das zweite (Auswärts) - pb. Zusätzliche Trikots
können irgendeinen Ordnernamen haben, der mit dem Buchstaben "p" beginnt. I fand es sinnvoll, dass alle zusätzlichen Trikots
mit px- anfangen, zum Beispiel px-blue. Für Torhüter muss das erste Trikot im Ordner ga sein, das zweite in
gb. Zusätzliche Trikots können irgendeinen Ordnernamen haben, der mit dem Buchstaben "g" beginnt.
Schauen wir uns nun den Inhalt eines der Trikot-Ordner an. Nehmen wir pa als Beispiel.
So sieht ein Ordner aus, wenn du ein sogenanntes "All-In-One"-Trikot hast, also nicht in mehrere Einzelteile geteilt ist: Shirt, Hose
und Socken. Kitserver kann mit beiden, geteilten und All-In-One-Trikots, erfolgreich umgehen, denn er würde ein All-In-One-Trikot
sowieso zur Laufzeit teilen.
Geteilte Trikots sind nur dann wirklich erforderlich, wenn die Teilungsregeln nicht standardmäßig sind, wie beim Juventus-Torhüter-Trikot mit zwei verschiedenfarbigen Socken. Außerdem möchtest du geteilte Trikots vielleicht benutzen, wenn du nicht alle Teile hast. Zum Beispiel, sehe dir Newcastles px-away2-Ordner an: er hat keine all.png-Datei, aber enthält stattdessen shorts.png und socks.png. Du wirst bemerken, dass es keine shirt.png-Datei gibt, aber das ist in Ordnung: der Kitserver wird die Hose und die Socken benutzen und das Shirt aus einem anderen Ordner nehmen.
So, zusammenfassend: Die all.png-Datei zu haben ist gleichwertig wie diese drei Dateien zu haben: shirt.png, shorts.png und socks.png. (Eigentlich solltest du nicht alle vier haben oder all.png und zum Beispiel shirt.png - das wird schnell verwirrend.)
Reservierter PNG-Dateiname | Reservierter BMP-Dateiname | Bedeutung |
---|---|---|
all.png | all.bmp | All-In-One-Trikot |
shirt.png | shirt.bmp | Shirt |
shorts.png | shorts.bmp | Hose |
socks.png | socks.bmp | Socken |
font.png | font.bmp | 256x64 Bild mit der Schriftart für den Spielernamen auf der Shirt-Rückseite. |
Dies ist die Attribute-Konfigurationsdatei (in vorherigen Kitservern hieß sie "attrib.cfg"). Wie vorher ist sie nur eine normale Textdatei - du kannst Notepad oder einen anderen Texteditor zum Anzeigen oder Modifizieren verwenden. In jedem Ordner, der ein Shirt oder eine Hose beinhaltet (entweder als Teil eines All-In-One-Trikots oder also einzelnes Bild), sollte eine config.txt existieren. Die meisten Attribute betreffen das Shirt, außer "shorts.number.location", das die Hose betrifft. Deshalb würdest du auch dann eine config.txt in einem Ordner benötigen, der kein Shirt, aber eine Hose enthält.
Hier ist eine Zusammenfassung aller unterstützten Attribute:
Name des Attributs | Bedeutung | Format | Beispiel |
---|---|---|---|
model | Bezeichner für das 3D-Model des Shirts | Dezimale Ganzzahl | |
collar | Vorhandensein eines Kragens | yes/no | |
numbers | Dateiname (mit Pfad, relativ zum Trikot-Ordner) des Bildes, das die Nummern-Texturen enthält: ein 256x128 Bild mit 4 Bit oder 8 Bit Palette | Zeichenkette in Anführungszeichen | |
shorts.num-pal.X | Dateiname (mit Pfad, relativ zum Trikot-Ordner) des Bildes, das die Palette des Nummern-Bildes enthält: ein Bild mit 4 Bit oder 8 Bit Palette. Das ist die Palette, die benutzt wird für die Hose aus dem Trikot-Ordner "X", wenn diese Hose mit dem aktuellen Shirt benutzt wird. | Zeichenkette in Anführungszeichen | |
shorts.number.location | Wo do Nummer auf der Hose platziert wird. ("off" bedeutet, dass die Nummer gar nicht angezeigt wird.) | left|right|both|off | |
name.location | Wo auf dem Shirt der Spielername platziert wird. Das ist nützlich für Teams wie Boca Juniors, die die Spielernamen unten auf dem Shirt stehen haben. ("off" bedeutet, dass der Name gar nicht angezeigt wird.) | top|bottom|off | |
logo.location | Wo auf dem Shirt das Sponsorenlogo plaziert wird. (Dieses Attribut wird wahrscheinlich mit dem Kitserver nicht sehr nützlich sein, da das Logo vom Kitmaker direkt auf das Trikot gezeichnet würde, falls ein Team dieses auf der Rückseite des Shirts hätte.) | top|bottom|off | |
name.shape | Bestimmt, ob der Name gebogen oder gerade ist. Die Werte bedeuten das gleiche wie im Editor-Modus: Typ 1: gerade, Typ 2: leicht gebogen, Typ 3: gebogen. | type1|type2|type3 | |
radar.color | Dieses Attribut bestimmt die Farbe, die du auf dem Radar im Spiel siehst. Es beeinflusst auch das Trikot, das standardmäßig bei der Trikot-Auswahl ausgewählt ist, denn PES5 benutzt sie als Anzeichen dafür, ob zwei Trikots sich ähnlich sehen und daher im Spiel zusammen Verwirrung auslösen würden. Achtung: Dies ist auch die Hauptfarbe der Standard-Mini-Kits (nicht 2.5D)! | Farbe, geschrieben im hexadezimalen Format RRGGBB (rot,grün,blau) |
Für Beispiele der shorts.num-pal.X Benutzung - schau dir die Beispiel-GDB an: Sie enthält viele verschiedene Beispiele. Anfangs mag das zu kompliziert aussehen, aber nach kurzer Zeit wird dir klar werden warum diese Art von Organisation nötig war: Um die Teile eines Trikots frei mischen zu können, musst du die Möglichkeit haben festzulegen, welche Art von Nummern und Paletten bei Hosen in verschiedenen Situationen benutzt werden sollen. Nehmen wir als Beispiel die config.txt aus Deutschlands "pa"-Ordner:
model = 37 collar = no numbers = "..\..\adidas_black.png" shorts.number.location = left shorts.num-pal.pa = "..\..\adidas_white.png" shorts.num-pal.pb = "..\..\adidas_black.png"
In gut Deutsch bedeutet das:
Für das Shirt benutzte Adidas-Nummern (schwarz). Wenn das Shirt mit "pa"-Hosen benutzt wird, dann
verwende die Palette "adidas_white.png" an, die effektiv weiße Nummern auf die Hosen zeichnet. Wenn
das Shirt mit "pb"-Hosen benutzt wird, dann verwende die Palette "adidas_black.png" an, die effektiv
schwarze Nummern auf die Hosen zeichnet.
Um eine visuelle Referenz der aktuell ausgewählten GDB-Trikots (inklusive Zusatztrikots), werden KONAMIs
Mini-Kits mit diesen so genannten "2.5D"-Trikots überlegt. Der Name entstand dadurch, dass dies zwar
2D-Trikots sind, aber aus den echten Texturen erzeugt werden, die im Spiel verwendet werden. Hier ist ein
Screenshot:
(Wenn ein Team keine Trikots in der GDB hat, sind die Original-KONAMI-Mini-Trikots trotzdem noch sichtbar.)
Du kannst zwischen dem ersten und zweiten Trikot wie bisher wechseln - mit der Tastatur oder dem Gamepad - was auch immer du konfiguriert hast. Um an die zusätzlichen Trikots zu kommen, drücke die "O"-Taste - um den "Konfiguration ändern"-Modus zu erreichen. Die kleinen gelben Pfeile ändern nun die einzelnen Teile des Trikots, du kannst also mit dem Mischen der einzelnen Teile beginnen. Das ist alles eine normale Spielfunktion - du brauchst keine speziellen Hotkeys drücken, um dies zu aktivieren.
Nun kommt die neue Funktion des Kitservers: indem du das Shirt (Hose, Socken) änderst, kreist durch alle verfügbaren Teile, und nicht nur durch die ersten und zweiten Trikots. (Du wirst bemerken, dass - egal ob du nach links oder nach rechts drückst - der Kitserver die Trikots immer in der gleichen Reihenfolge durchläuft. Das ist momentan eine Einschränkung des Kitservers. In Zukunft werde ich versuchen, die Navigation in beide Richtungen zu ermöglichen.) Welche Kombinationen von Trikot-Teilen genau erlaubt sind, ist dadurch bestimmt, ob deine Trikots gemeinsame Paletten benutzten oder nicht. Der Kitserver erkennt automatisch verschiedene Paletten und blockiert Kombinationen wo mehr als eine Palette benutzt wird, denn sonst bekommst du komische Trikots wenn das Spiel startet.
Es ist auch möglich, Torwarttrikots auszuwählen. Es gibt jetzt 2 Modi der Trikotauswahl: "Player-Modus" und "Torwart-Modus". Du kannst zwischen ihnen mit der [Tab]-Taste wechseln. Für Torhüter wählst du die Trikots genauso aus wie du es für die Spieler getan hast. Wie bei den Spielern kannst du die Einzelteile mischen, wenn du in den "Konfiguration ändern"-Modus gehst. (Denke daran, dass die selben Regeln mit gemeinsamen Paletten - wie bei den Spieler-Trikots - auch hier gelten.)
Das wohl Ärgerlichste am Spiel für alle, die mit neuen/geänderten Trikots in PES5 experimentiert haben, ist die Einschränkung auf eine gemeinsame Palette. Das bedeutet, dass sowohl das erste als auch das zweite Spielertrikot die gleiche 256-Farben-Palette verwenden müssen, damit das Mischen der Trikots korrekt funktioniert. Während das Konzept des Trikot-Mischens ein gern gesehener Schritt von Konami war, hat sich die Sache mit der gemeinsamen Palette als nicht unwichtiges Hindernis erwiesen.
In der Art, wie die Logik des Spiels funktioniert, ist die gemeinsame Palette unumgänglich, wenn du Teile von verschiedenen Trikots mischen möchtest. Der Kitserver gibt dir trotzdem die Möglichkeit, sowohl Trikots mit gemeinsamen als auch mit unterschiedlichen Paletten zu verwenden. Für jedes Team kannst du das Erste, das Zweite oder sogar eine Mischung aus beidem verwenden! Während der Trikotauswahl erkennt der Kitserver automatisch Konflikte zwischen Paletten und erlaubt nur das Mischen von Teilen mit gleicher Palette.
Wie eben schon erwähnt, gibt dir dies die Möglichkeit, deine Trikots in verschiedenen Arten zu organisieren. Sehen wir sie uns detailierter anhand der Beispiel-GDB an:
1 | Alle Spielertrikots eines bestimmten Teams verwenden die gleiche Palette. Du lädst die Trikots herunter - erste, zweite, zusätzliche, und dann musst du sie so konvertieren, dass sie eine einzige gemeinsame Palette benutzen. Das ist einfach wenn du das richtige Programm hast. Dummerweise scheint es kein kostenloses Programm dafür zu geben, obwohl es kommerzielle gibt. (Du kannst GIMP oder Photoshop benutzen, aber sie behandeln die Transparenz nicht korrekt für PNG-Dateien mit Paletten.). Ein anderes Problem ist, dass wenn du einmal mehr als 4 bis 5 Trikots hast, es schwer wird alle ohne Qualitätsverlust zu einer gemeinsamen Palette zu konvertieren. Besonders, wenn die Trikots viele verschiedene Paletten verwenden. Denke daran, die gemeinsame Palette hat insgesamt nur 256 Farben. In der Beispiel-GDB findest du diesen Ansatz bei Newcastle, Man Utd, Real Madrid, und Frankreich. Der Vorteil der gemeinsamen Palette ist, natürlich, dass du alle Teile aller Trikots frei mischen kannst, ohne Einschränkungen. |
2 | Jedes Trikot hat seine eigene Palette. Das ist der einfachste Weg, die Trikots zu organisieren. Du lädst sie nur herunter und tust sie in die richtigen Ordner in der GDB, und sie sind bereit zum Benutzen - keine Modifikation notwendig. Wie auch immer, wenn du versuchst die Teile während der Trikotauswahl zu mischen, wirst du sehen dass der Kitserver die Trikots komplett tauscht - der Effekt ist, dass er sich zwar durch alle Trikots bewegt, aber kein Mischen der Einzelteile erlaubt. Das ist ähnlich wie zusätzliche Trikots in PES3 und PES4 funktioniert haben. Natürlich kannst du immer noch das tun, was die Kitmaker dann gemacht haben: alle Kombinationen als einzelne Trikots erstellen - auf diese Weise bekommst du das gleiche Ergebnis als hättest du die Teile gemischt. (Kitmaker erzeugen diese zusätzlichen Kombinationen oft noch selbst, wir haben also Glück und müssen uns nicht die Arbeit machen - alle Trikots sind oftmals zum Herunterladen verfügbar! :-) Da der Kitserver zusätzliche Trikots erlaubt, wird das möglich, obwohl du viel mehr Trikots brauchst (verglichen mit dem Ansatz der gemeinsamen Palette), um alle Kombinationen zu haben die du willst. In der Beispiel-GDB findest du diesen Ansatz bei Tottenham. |
3 | Eine Kombination aus #1 und #2.
Ja, du kannst Trikots mit gemeinsamen und unterschiedlichen Paletten für das selbe Team verwenden. Auch hier erlaubt der Kitserver
"akzeptables" Mischen - wenn alle Teile in der Mischung die gleiche Palette verwenden, aber er blockiert "illegales" Mischen. Sieh dir Deutschland in der Beispiel-GDB als ein Beispiel dieses Ansatzes an. |
Ballserver uses the same GDB folder as the other modules like Kitserver. The subfolder is named balls. You'll notice that there is a file inside called map.txt (like in Kitserver) to configure the balls. The format is quite simple: one line is one ball, and there are three attributes. The first one is the name displayed in the ingame selection, followed by the name of the 3D model file and the texture file. Look at the example:
Der Ballserver verwendet den gleichen GDB-Ordner wie die anderen Module, zum Beispiel Kitserver. Der Unterordner heißt balls. Du wirst bemerken dass sich darin eine Datei namens map.txt befindet (wie beim Kitserver), um die Bälle zu konfigurieren. Das Format ist sehr einfach: eine Zeile ist ein Ball, und es gibt drei Eigenschaften. Die erste ist der Name, der in der Auswahl im Spiel angezeigt wird, gefolgt vom Namen der 3D-Model-Datei und er Textur-Datei. Hier ein Beispiel:
# This is the configuration file for Ballserver # Format: "<name displayed in game>","<model file>","<texture file>" # Example: "adidas Finale Capitano Grey","ariel_mdl.bin","adidas_finale_capitano_grey.bmp" # Texture paths are relative to GDB\balls\, model paths to GDB\balls\mdl\ # adidas "adidas Finale Capitano Grey","ariel_mdl.bin","adidas_finale_capitano_grey.bmp" "adidas Teamgeist Blue","gwidon_mdl.bin","adidas_teamgeist_blue.png" # Nike # Puma # This comment makes sure you have pressed the enter key after the last ballBitte vergesse nicht die Anführungszeichen, sie sind wichtig! Wenn deine map.txt so aussieht (und du natürlich diese Dateien hast), kannst du später im Spiel zwischen adidas Finale Capitano Grey und adidas Teamgeist Blue wählen. Die Textur-Dateien müssen iim "GDB\balls"-Ordner gespeichert werden und die Model-Dateien in "GDB\balls\mdl".
Wenn du Bälle herunterlädst, wirst du bemerken, dass viele Bälle das gleiche 3D-Model verwenden. In diesem Fall brauchst du jede Model-Datei nur einmal. Im Allgemeinen sind die Models unabhängig von der Texturgröße, also sollte ein 3D-Model, das mit einer 256x256er Textur veröffentlicht wurde auch mit 512x512er Texturen funktionieren. Wenn du unsiche bist, probiere es einfach mit verschiedenen Models.
Starte das Spiel ganz normal. Wenn du zur Trikotauswahl kommst, siehst du einen neuen Text unter den Mini-Trikots,
der standardmäßig "Ball: game choice" lautet. In diesem Fall wirst du keine Veränderung merken wenn du spielst,
da der Ball verwendet wird, den du in den Optionen ausgewählt hast. Nun kommt die neue Funktion: drücke die B-Taste
auf deiner Tastatur um den nächsten Ball auszuwählen (oder V in die andere Richtung zu navigieren). Der Text ändert
sich in "Ball: <Name aus der map.txt>" und wenn alles richtig konfiguriert ist, spielst du mit diesem
Ball. Um einen zufälligen Ball auszuwählen, drücke R und um den Ball zurückzusetzen, drücke C.
KitServer enthält nun ein neues Tool - LOD Mixer - als inegriertes Modul. Es erlaubt einige Tricks an der Grafikengine des Spiels durchzuführen, wie das Anpassen der Level-Of-Detail-Tabelle, Aktivierung der Zuschauer in allen Kameras, Auswahl von Wetter/Stadion/usw. für Liga-/Pokal-/Meisterliga-Spiele.
Starte lodcfg.exe, um die LOD Mixer Einstellungen zu konfigurieren. Hier ist ein Screenshot wie das aussieht (sehr ähnlich zur älteren Standalone-Version des LOD Mixers 1.6):
Normalerweise musst du dies nicht ändern, außer du stellst Probleme fest oder willst selbst einzelne Module ein- oder ausschalten. Zum Beispiel, wenn du den Ballserver und LOD Mixer haben willst, aber nicht wirklich den Kitserver, kannst du dies einfach tun indem du die kload.cfg-Datei modifizierst. So sieht die Standard-Konfigurationsdatei aus:
# Loader configuration file gdb.dir = ".\" DLL.num = 6 DLL.0 = "kitserver\zlib1.dll" DLL.1 = "kitserver\libpng13.dll" DLL.2 = "kitserver\kserv.dll" DLL.3 = "kitserver\bserv.dll" DLL.4 = "kitserver\fserv.dll" DLL.5 = "kitserver\lodmixer.dll" # DirectX options dx.force-SW-TnL = 0 dx.emulate-HW-TnL = 0
Die zwei oberen DLLs - zlib1.dll und libpng13.dll werden für die PNG-Bilder-Unterstützung benötigt, also entferne sie nicht. Die unteren vier sind unabhängige Module, die du nach deinem Willen aktivieren oder deaktivieren kannst. Zum Beispiel, um das Kitserver-Modul zu deaktivieren (kserv.dll), kommentiere es einfach mit einem "#"-Symbol am Anfang der Zeile aus:
DLL.num = 6 DLL.0 = "kitserver\zlib1.dll" DLL.1 = "kitserver\libpng13.dll" #DLL.2 = "kitserver\kserv.dll" DLL.3 = "kitserver\bserv.dll" DLL.4 = "kitserver\fserv.dll" DLL.5 = "kitserver\lodmixer.dll"
Die dx.force-SW-TnL und dx.emulate-HW-TnL Optionen ermöglichen Funktionalitäten ähnlich dem
was 3DAnalyzer tut mit seinen "Force SW TnL" und "Emulate HW TnL Caps" Einstellungen. Wenn dein Spiel crasht
(wegen einer alten Grafikkarte, oder anderen Kompatiblitätsproblemen), und du das Spiel nicht mit 3DAnalyzer
starten kannst, probiere diese zwei Optionen - sie könnten alles sein, um das Spiel wieder ans Laufen zu bekommen.
Zum Aktivieren ändere einfach die Werte von 0 auf 1.
Programmierung: juce (KitServer, LOD Mixer, einige BallServer-Algorithmen), Robbie (BallServer, Faceserver)
Tester: biker_jim_uk, ntalex
Trikots: Spark, kel, qiankun.
Bälle: DAMned.
Ballmodels: Ariel, Gwidon.
Gesicht: Chris79.
Trikots, Bälle und Ballmodels sind alle von hier: http://www.wevolution.org
Schriftarten, Nummern: Ursprüngliche Authoren unbekannt. Bilder entnommen von dieser Seite:
http://www.socsci.umn.edu/~jkoepp/pes5/
und aus dem Spiel selbst.
Dokumentation: TriAn (Russischer Text), juce (Englischer Text + Russischer Text Änderungen/Erweiterungen),
Robbie (Deutscher Text, Englische BallServer und Faceserver Anleitung)
Kitserver und Ballserver benutzen die folgende Open-Source-Software:
pngdib von Jason Summers
http://entropymine.com/jason/pngdib/
libpng von Guy Eric Schalnat, Andreas Dilger, Glenn Randers-Pehrson, und anderen
http://libpng.org/pub/png/libpng.html
zlib von Jean-loup Gailly und Mark Adler, und anderen
http://www.zlib.net/