Acho A. Tang (acho at telus dot net).
Added a Sidewinder Precision Pro joystick driver to the DOS port.
Adrian Oboroc (doba at corefx dot com).
Wrote the LBM loader.
aj.
Reported many problems, suggested a lot of improvements to the
documentation, added AMD64/IA64/SSE3 detection code, added DirectX 8 and 9
detection to the Windows port, added MSVC7 specific options to the makefile,
cleaned up a C99-ism in makedoc, fixed a beep when alt+character was pressed
in windowed mode in Windows and made TARGET_ARCH_EXCL also work with MSVC.
Alex Demko (alex_demko at mbnet dot mb dot ca).
Suggested lots of improvements to the datafile system and provided code
for handling the 8x16 BIOS font format.
Alessandro Monopoli (almonopo at tin dot it).
Added the Italian translation of the system messages.
Andreas Kluge (bitland at aol dot com).
Wrote the Ensoniq Soundscape driver and fixed division bugs in the fix
class.
Andrei Ellman (ae-a-alleg2 at wacko dot wackonet dot net).
Contributed the polygon_z_normal() function, suggested some additions to
the docs, updated the Cygwin section in docs/build/mingw32.txt, got
Allegro for MSVC to build with Cygwin, improved the performance of the
hsv_to_rgb() function, corrected a rounding issue in hsv_to_rgb(),
improved the exrgbhsv example and the Windows screensaver, fixed problems
in the MSVC makefile when using Cygwin and did plenty of other things too.
Andrew Cottrell (andrewc at dbworld dot net dot au).
Changed the grabber to use a more robust (locale-independent) date format.
Andrew Ellem (krand at ican dot net).
Wrote the original version of the digital audio streaming code.
Andrew Geers (andy at geerswj dot clara dot net).
Added the -ppassword and -nosound options to the grabber, scrolling
support in the image viewer and the flipped rotated sprite routines.
Andy Goth (unununium at openverse dot com).
Made the gfx_card config variable more flexible, added the 256x256 tweaked
VGA mode, wrote the d_text_list_proc() dialog object and fixed the
constructor support in dat2s on Unix.
Angelo Mottola (a dot mottola at libero dot it).
Added the BeOS joystick, MIDI and windowed graphics drivers, added mouse
wheel, display switching and close button support for BeOS, wrote the
DGA2 driver and close button support for X, contributed the bfixicon
utility, added triple buffering support, a BWindow-based windowed driver
and a fullscreen overlay driver to the BeOS port and reorganized its gfx
subsystem. And, oh, contributed the QNX and MacOS X ports too.
Annie Testes (annie at kezako dot net).
Added font_height, render_char, char_length hooks to FONT_VTABLE, fixed
several glitches in the unicode support, added a pack_fdopen() function,
caught a misordering in the X system shutdown, fixed some device name
strings, lifted several hardcoded length limitations in the configuration
routines, added a mouse driver based on the event interface (EVDEV) to the
Linux port, fixed numerous bugs and did plenty of other things too.
Anthony 'Timorg' Cassidy.
Made d_menu_proc fill up its assigned area with the gui_bg_color.
Antoine Mathys (mmathys at bluewin dot ch).
Added the Swiss keyboard mapping.
Anton Ragnarsson (anton dot ragnarsson at swipnet dot se).
Contributed the Swedish keyboard mapping table.
Antti Haapala (ztane at lyseo dot edu dot ouka dot fi).
Fixed the setup program to display the right frequency list for each
type of soundcard and contributed the Finnish translation of the system
messages.
Antti Koskipaa (antti dot koskipaa at nic dot fi).
Wrote the DOS driver for WSS (Windows Sound System) cards.
Arne Steinarson (arst at ludd dot luth dot se).
The fixed point square root routine came from his fix-float library.
Arthur Huillet (email unknown).
Fixed a typo in the docs.
Attila Szilagyi (attilabox at hotmail dot com).
Fixed SVGAlib horizontal scrolling.
Ben Chauveau (bendomc at worldnet dot fr).
Added support for Tseng ET6000 cards (now available as part of the
FreeBE/AF project).
Ben Darnell (bdarnell at vnet dot net).
Put together the 2.11 release of Allegro while I was away from the net
and wrote the original version of the Allegro FAQ.
Ben Davis (entheh at users dot sf dot net).
Added set_volume_per_voice(), made silent voices continue playing,
fixed other minor bugs in the mixer, fixed a bug in create_rgb_table(),
adapted polygon functions to handle two coincident vertices, added the
set_window_close_button() and set_window_close_hook() framework, added
support for timers with parameters under Windows, corrected several
compilation warnings and documented the behaviour of pack_feof().
Benjamin Joel Stover (stovertech at intellisys dot net).
Wrote the initial version of the fullscreen X-Windows graphics driver.
Benny Colyn (email unknown).
Added a Dutch translation.
Bertrand Coconnier (bcoconni at club-internet dot fr).
Modified 3D polygones routines for subpixel and subtexel accuracy, made
speed enhancements in these routines, fixed blending in C version of
atex_lit scanline functions, added scanline subdivisions in C scanline
functions and Z-buffer polygon functions and merged in Calin Andrian's
P3D library.
Bobby Ferris (baf at bafsoft dot com).
Added the SciTE API output format to makedoc and temporarily hosted
Allegro's SVN repository while SourceForge's SVN was in beta.
Burton Radons (loth at gec dot net).
Optimised the truecolor pixel blending function, converted the blenders
to the new single-handler format, and added the range of
Photoshop-compatible blender functions.
Calin Andrian (calin at ibd dot dbio dot ro).
Wrote the truecolor, MMX, 3DNow!, masked lit mode, translucent and
Z-buffered polygon rendering routines, the clip3d_f() function and also
the scanline sorting functions for 3D scene rendering, and his P3D
addon library was merged in.
Calvin French (frenchc at home dot com).
Added the -w (always update) switch to dat.exe.
Carsten Schmidt (email unknown).
Wrote the the initial version of the Linux GGI driver.
Carsten Sorensen (csorensen at ea dot com).
Wrote the the ESS AudioDrive soundcard driver.
Catatonic Porpoise (
Added OpenBSD detection, fixed an issue with executable rights not set
on the memory for the i386 stretcher on UNIX systems, and fixed the
documentation for stretch_sprite.
Cloud Wu (cloudwu at 263 dot net).
Optimised the truecolor pixel blending functions.
Charles Bilyue (Esaelon at aol dot com).
Optimized the i386 blitters and suggested to not force yielding timeslice
with non-blocking menus.
Charles Wardlaw (kattkieru at yahoo dot com).
Fixed warnings with gcc 4 on MacOS X and helped resolve a problem with
setAppleMenu under Tiger.
Chris Graham (chris_graham at postmark dot net).
Suggested to add a new flag for Windows NTFS compressed files.
Chris Jones (cj at jibblers dot plus dot com).
Fixed a bug with 16-bit samples loading, worked around a problem with DOS
file attributes under Win2k, let the MIDI player pass controller events to
the raw player by default, made the MIDI player handle the 'All Sound Off'
controller message, added support for the bitfield compressed BMP image
format, fixed the behavior of numeric keys when NumLock is on, and fixed
loading of certain .wav files.
Chris La Mantia (celamantia at home dot com).
Wrote the d_radio_proc(), d_icon_proc(), and d_slider_proc() dialog
objects, added the D_DISABLED flag, improved the GUI handling of
different font heights, and added the right aligned text functions.
Chris Robinson (crobin_99 at yahoo dot com).
Wrote the fixed point clip3d() function, improved the performance of the
DIGMID driver, implemented the digmid_set_pan function, rewrote part of
the Allegro mixer, made the Allegro mixer the default one in Windows,
improved the threaded UNIX timer code, helped improve responsiveness under
X11, tweaked tests/play.c, added drawing primitives and video bitmap locking
to the X11 port and did plenty of other things too.
Christer Sandberg (christer dot sandberg at mdh dot se).
Made dat2c work better with ISO C90 compilers, made dat2c correctly detect
the native line ending, fixed a problem with the include guard generated
by dat2c, fixed a bug in the 24-bit graphics code of fixup_datafile(),
fixed a problem with Electric Fence.
Christian Schueler (cschueler at gmx dot de).
Changed the optimisation settings for better performance.
Daniel Nilsson (daniel7 at algonet dot se).
Enlarged the starfield in exstars, and fixed an incorrect range in
exlights.
Daniel Schlyder (daniel at bitblaze dot com).
Fixed problems with get_executable_name() under Windows, another one with
set_window_title() under BeOS, potentially unsafe constructs in the
Windows code, the installall makefile target under Windows, added
set_allegro_resource_path(), fixed make uninstall with mingw make,
added ALLEGRO_LIB_BUILD flag for gcc variants not using configure,
fixed a bunch of warnings in MinGW and did plenty of other things too.
Daniel Verkamp (i_am_drv at users dot sourceforge dot net).
Added a MIDI input driver to the Windows port anda dded support for .rmi
MIDI files to the MIDI loader.
Dark Nation (email unknown).
Restored support for old-style encrypted packfiles, which had been removed
in 4.1.18.
David A. Capello (dacap at users dot sourceforge dot net).
Made dotted_rect() avoid bank switches, fixed a problem with lost GUI
mouse clicks, made d_menu_proc() steal/return focus when activated then
deactivated, fixed a problem with submenus, fixed a bug with FLI frames
containing odd-sized chunks, made makedoc write sub-section headings
for .txt output, made override_config_file also be used for writing to
the config file and did plenty of other things too.
David Kuhling (dkuelhin at hell1og dot be dot schule dot de).
Optimised the fsqrt() routine, and added fhypot().
Dave Physics.
Some documentation fixes.
Dave Thomson (gameskitchen at geocities dot com).
Added the RGB <-> HSV conversion routines, the autocrop function to
the grabber and wrote the 3d starfield example program (exstars.exe).
David Calvin (calvid at rpi dot edu).
Wrote the original version of the sound setup utility.
David Cullen (dcullen7 at bellsouth dot net).
Added multiple bullets and extra lives to the demo game.
Deepak T (coolbool at gmx dot net).
Fixed clipping in three C sprite drawing routines.
Dennis Busch (email unknown).
Fixed a bug in d_clear_proc, fixed a Unicode bug in the mode selector,
and fixed the short description of add_clip_rect.
Dmitriy Kazimirow (mariann at mail dot ru).
Provided the Russian keyboard mapping and message translation files.
Dominique Biesmans (Dominique dot Biesmans at ping dot be).
Wrote the mode-X version of draw_sprite() and the mode-X <-> linear
blitting functions.
Doug Eleveld (D dot J dot Eleveld at anest dot azg dot nl).
Wrote the d_textbox_proc() dialog object and the new grabber help system.
Dustin Dettmer (dustin at mize dot org).
Spotted a typo in save_bitmap.
Eduard Bloch (edi at gmx dot de).
Fixed a freeze caused by the ESD detection code, fixed a bad behaviour
of the config routines and suggested better ways to find the path to
the executable on Unix.
Edward Boone (Lucien dot Boone at ping dot be).
Provided scancode mapping tables for the AZERTY keyboard layout.
Elias Pschernig (elias at users dot sf dot net).
Added a COLORCONV_KEEP_TRANS mode, contributed the wfixicon utility,
contributed several enhancements to the grabber, fixed menu dimensions in
the GUI engine, fixed the get_camera_matrix*() functions, added support
for the CHM and Devhelp documentation formats, fixed a bug in midi_seek(),
made load_datafile_object() load the object properties, made the GUI code
scare the mouse more intelligently and did plenty of other things too.
Eric Botcazou (ebotcazou at libertysurf dot fr).
Made the DGA driver work better in 8bpp and 32bpp modes, improved the
DirectX windowed driver and Windows graphics subsystem, partially
revamped the Unicode API and added uszprintf(), added file_select_ex(),
the unified al_find*() interface, an Unicode example, a new filetest,
rewrote the fixdll script, revamped the Borland C++ build process, fixed
lots of bugs and did plenty of other things too.
Erik Sandberg (eriksandberg at geocities dot com).
Optimised the 8 bit draw_sprite() and draw_trans_sprite() functions and
helped with the Swedish message translation.
Erno Schwetter.
Fixed some bugs in the Linux console port and fixed a long-standing bug in
the polygon() routine.
Etienne Vouga.
Fixed a bug with the reset_controllers MIDI command.
Ettore Perazzoli (ettore at comm2000 dot it).
Optimised the linear -> mode-X blitting function.
Evert Glebbeek (eglebbk at dds dot nl).
Put set_gfx_mode on a diet, added a config entry for specifying the card
to be used for GFX_AUTODETECT_WINDOWED, added a '-fullscreen' switch to
the grabber, cleaned up the grabber/plugins code, added various commands
to the grabber, added the detection of SunOS/Solaris, added configure
options for x86 processor optimisations on Unix systems, added the support
for relative filenames and did plenty of other things too.
EvilTypeGuy (eviltypeguy at icculus dot org).
Cleaned up and fixed the RPM spec file for RedHat 9.
Fabian Nunez (faybs at iafrica dot com).
Added support for the CH Flightstick Pro and Logitech Wingman Extreme
joysticks, 3-button mice, and the extended keys on a Microsoft keyboard.
Fabrizio Gennari (faybs at iafrica dot com).
Contributed the DB9 and TurboGraFXoystick drivers.
Francisco Pires (fmlvp at hotmail dot com).
Added an FPS counter and an option to disable vsync to the excamera
example.
Francois Charton (deef at pobox dot oleane dot com).
Wrote the Paradise graphics driver (now available as part of the
FreeBE/AF project), improved the VGA palette setting code and helped
with the TexInfo conversion of the docs.
Frodo Baggins (l41273 at alfa dot ist dot utl dot pt).
Made the Portuguese keyboard mapping.
Garret Thomson (g at sirsonic dot com).
Wrote the music used in the demo game.
George Foot (gfoot at users dot sourceforge dot net).
Did a great deal of work on the Linux console version, wrote the AWE32
driver, added the MIDI pause/seek functions, provided the basis of the
SoundFont reader used in the pat2dat utility, fixed the C fceil()
function, added the ffloor() function and added non-FM support to the
OSS MIDI driver.
Gorka Olaizola (olsago at jet dot es).
Added the Redhat RPM .spec file.
Grady Martin (shadygrady at budweiser dot com).
Fixed a bug in the handling of %n in the printf style text functions, added
a move command to the grabber and standardised some of the grabber dialog
boxes.
Greg Hackmann (hacker at ididitmyway dot com).
Contributed the Borland C++ Builder port.
Greg Lee (greg at ling dot lll dot hawaii dot edu).
Pointed out that Linux joystick driver should read all events.
Grzegorz Adam Hankiewicz (gradha at users dot sourceforge dot net).
Wrote several of the example programs, suggested the "compress" makefile
target, translated the docs and system error messages into Spanish,
suggested the idea of embedding the setup utility into other programs,
wrote some documentation and corrected the .texi generation to improve
texi2dvi output, improved the makedoc utility and contributed a new doc
format, added reload_config_texts() and did plenty of other things too.
Grzegorz Godlewski (email unknown).
Contributed a Polish localization patch, and added support for lower and
upper altgr tables.
Grzegorz Ludorowski (pajonk at ajax dot umcs dot lublin dot pl).
Wrote several of the example programs, and made the intro animation and
graphics for the demo game.
Guilherme Silveira (thedarkage at geocities dot com).
Modified the file selector to only list valid drive letters.
Gunter Ladwig (gladwig at iname dot com).
Wrote the OS/2 detection routines and added the three-button mouse
emulation.
Hans de Goede.
Harshavardhana Reddy N (nharsha at gmail dot com).
Haruhiko Okumura (email unknown).
Hein Zelle (hein at icce dot rug dot nl).
Henrik Schmidt (hbs at ks dot informatik dot uni-kiel dot de).
Henrik Stokseth (hensto at online dot no).
Hrvoje Ban (spoofer255 at gmail dot com).
Igor Gnip (gnipi at mindnever dot org).
Isaac Cruz (icruzbal at teleline dot es).
Ivan Baldo (lubaldo at adinet dot com dot uy).
Jaime Moreno (daviangel at hotmail dot com).
Jakub Wasilewski (krajzega at meditech dot pl).
James Arthur (jaa at arfa dot clara dot net).
James Hyman (frooge at mindless dot com).
James Lohr (email unknown).
James Ponder (james at squish dot net).
Jan Bruun Andersen (jba-dk at users dot sourceforge dot net).
Jan Hubicka (hubicka at horac dot ta dot jcu dot cz).
Jason Wilkins (fenix at io dot com).
Javier Gonzalez (xaviergonz at hotmail dot com).
Jeff Mitchell (email unknown).
Jeremiah Blanchard (squirminworm at yahoo dot com).
Jim Flynn (jflynn at pacbell dot net).
Jim Grainger (Grainger_Jim/world_europe_samuro_WYN-CTV at samsung dot co dot kr).
Jiri Gabriel (email unknown).
Joaquin Hierro Diaz (Joaquin dot Hierro dot Diaz at fresno dot csic dot es).
Joerg Rueppel (sharky-x at gmx dot net).
Johan Peitz (d98peitz at dtek dot chalmers dot se).
Johan Venter (leonjventer at bigpond dot com).
John Holden (johnh at psych dot usyd dot edu dot au).
John Utz (Johnut01 at noa dot nintendo dot com).
Jon Rafkind (workmin at ccs dot neu dot edu).
Jonas Petersen (joXonoX at berlin dot snafu dot de).
Jonathan Tarbox (jonattar at rocketmail dot com).
Jorrit Rouwe (j dot rouwe at cpedu dot rug dot nl).
Jose Antonio Luque (skylord at LatinMail dot com).
Joshua Heyer (joshua_heyer at yahoo dot com).
J. P. Morris (email unknown).
Julien Cugnière (jcugniere at free dot fr).
Kalle Toivonen (allegro at korpiq dot iki dot fi).
Keith Gerdes (kwg at softhome dot net).
Kerry High (khigh01 at umr dot edu).
Kester Maddock (dmaddock at xtra dot co dot nz).
Knut Pape (Knut_Pape at t-online dot de).
Kronoman X (kronoman_x at hotmail dot com).
Krzysztof Krzyzaniak (eloy at arrakis dot cs dot put dot poznan dot pl).
Laurence Withers (lwithers at users dot sf dot net).
Lee Killough (email unknown).
Lennart Rolland (chimeni at hotmail dot com).
Lennart Steinke (lst at steinke dot net).
Lisa Parratt (lisa at thecommune dot org dot uk).
Lorenzo Petrone (looris at gmail dot com).
Lucas Vignoli Reis (lucasvr at bestway dot com dot br).
Magnus Henoch (mange at freemail dot hu).
Maiolino Carmelo (cmaiolino at ctonline dot it).
Manni Heumann (manfred dot heumann at uni-bielefeld dot de).
Marcel de Kogel (m dot dekogel at student dot utwente dot nl).
Marcel Smit (marcel dot athlon at hccnet dot nl).
Márcio Fialho (maaf1980 at yahoo dot com dot br).
Marco Campinoti (marco at etruscan dot li dot it).
Marco Marmulla (Viper005 at usa dot net).
Marian Dvorsky (marian at step dot sk).
Marius Fodor (iceman at teleport dot com).
Marek Habersack (grendel at ananke dot amu dot edu dot pl).
Mark Keller.
Mark Wodrich (mwodric at eleceng dot uct dot ac dot za).
Markus F.X.J. Oberhumer (markus dot oberhumer at jk dot uni-linz dot ac dot at).
Martijn Van Lersel (amarillion at yahoo dot com).
Martijn Versteegh (m dot versteegh at hccnet dot nl).
Mathieu Lafon (mlafon at ifhamy dot insa-lyon dot fr).
Matt Witherspoon (spoon at vt dot edu).
Matthew Bowie (catcat at nmt dot edu).
Matthew Leverton (matthew at allegro dot cc).
Matthew Smith.
Maxime Carey (werfu at users dot sourceforge dot net).
Michael Bevin (michael dot bevin at stonebow dot otago dot ac dot nz).
Michael Bukin (M dot A dot Bukin at inp dot nsk dot su).
Michael Faerber.
Michael Jensen.
Michael Rickmann (mrickma at gwdg dot de).
Michael Tanczos (webmaster at logic-gate dot com).
Michal Mertl (mime at eunet dot cz).
Michal Molhanec (molhanec at seznam dot cz).
Michail Pishchagin (mblsha at users dot sourceforge dot net).
Milan Mimica (milan dot mimica1 at pu dot htnet dot hr).
Miran Amon (miran dot amon at gmail dot com).
Nathan Albury, aka Rubicant (gt4558a at prism dot gatech dot edu).
Nathan Smith (white_door at dread dot nl).
Neil Townsend (neil at robots dot ox dot ac dot uk).
Neil Roy (neilroy at cogeco dot ca).
Neil Walker.
Nicholas Davies (master_goodbytes at hotmail dot com).
Nick Kochakian (nickk at worldnet dot att dot net).
Ole Laursen (98zOLaw at aalborghus dot dk).
Olivier Blin (oblin at mandriva dot com).
Olly Betts (olly at muscat dot co dot uk).
Omar Cornut (cornut at noos dot fr).
Oscar Giner (O_giner at hotmail dot com).
Owen Embury (owen at gememail dot demon dot co dot uk).
Owen Rudge (alleg at orudge dot freeuk dot com).
Ove Kaaven (ovek at arcticnet dot no).
Paavo Ahola (email unknown).
Patrick Hogan (patter at iname dot com).
Paul Bartrum (bartrum at xtra dot co dot nz).
Paul Eipper.
Paul Furber (paul at sprintlink dot co dot za).
Paul Hampson (Paul dot Hampson at Pobox dot Com).
Paul Pinault (diskaleg at infonie dot fr).
Pavlos Touboulidis (gtoub at otenet dot gr).
Pedro Cardoso (pcardoso at viriato dot ipv dot pt).
Peter Cech (7cech at nw dot fmph dot uniba dot sk).
Peter Hull (peterhull90 at users dot sourceforge dot net).
Peter Johansson (email unknown).
Peter Monks (pmonks at iname dot com).
Peter Palotas (blizzar at hem1 dot passagen dot se).
Peter Pavlovic (Peter dot Pavlovic at st dot fmph dot uniba dot sk).
Peter Puck (zaqhaq at netscape dot net).
Peter Wang (tjaden at users dot sourceforge dot net).
Phil Frisbie, Jr. (pfrisbie at geocities dot com).
Phil Krylov.
Phil Shenk (email unknown).
Philipp Thomas (pthomas at suse dot de).
Przemek Podsiadly (ppodsiad at elka dot pw dot edu dot pl).
Revin Guillen (revin at phylo dot com).
Richard Davies (richard at debaser dot force9 dot co dot uk).
Richard Mitton (100740 dot 1271 at compuserve dot com).
Richard Reeve (r dot e dot reeve at stir dot ac dot uk).
Rikard Peterson.
Robert J. Ragno (rjr at mit dot edu).
Robert J. Ohannessian (voidstar at ifrance dot com).
Roberto Alfonso (rpgrca at labint dot frba dot utn dot edu dot ar).
Robin Burrows (rburrows at bigfoot dot com).
Romano Signorelli (romanos at bigfoot dot com).
Ron Novy
Ronaldo Hideki Yamada (r dot yamada at uol dot com dot br).
Ryan Patterson.
S.Sakamaki (emt at geocities dot co dot jp).
S.Suzuki (s-suz at sunfield dot ne dot jp).
Salvador Eduardo Tropea (salvador at inti dot edu dot ar).
Sam Hocevar (sam at zoy dot org).
Santeri Saarimaa (gridle at mbnet dot fi).
Sask Allegro (sask_allegro at iespana dot es).
Scott Harrison (scotth at calderauk dot com).
Sean Gugler (sean at epal dot com).
Seunghwan Ji (email unknown).
Serge Semashko (serge at lxnt dot info).
Seymour Shlien (seymour at dgbt dot doc dot ca).
Shawn Hargreaves (shawn at talula dot demon dot co dot uk).
Shawn Walker (binarycrusader at gmail dot com).
StApostol (stapostol at gmail dot com).
Stefan Eilert (seilert at rz dot Uni-Osnabrueck dot DE).
Stefan Schimanski (1Stein at gmx dot de).
Stefan T. Boettner (virtual dot man at t-online dot de).
Stepan Roh (src at srnet dot cz).
Stephan Brauss (sbrauss at optronic dot ch).
Stephen Kittelson (stickman2000 at juno dot com).
Stijn Wolters.
Sveinung Kvilhaugsvik(email unknown).
Sven Sandberg (svens at it dot uu dot se).
TBD/FeR (tbd at usa dot net).
Teijo Hakala (teijo dot hakala at imnetti dot fi).
Tero Parvinen (Tero dot Parvinen at hut dot fi).
Theuzifan Sumachingun (uzi at simauria dot upv dot es).
Thomas Fjellstrom (tfjellstrom at home dot com).
Thomas Harte (email unknown).
Thomas Klausner (wiz at danbala dot ifoer dot tuwien dot ac dot at).
Thomas Wolf (two at chello dot at).
Tim Bird (tbird at caldera dot com).
Tim Gunn (timgunn at eastwind dot com dot au).
Timothy Terriberry (sundance at sprintmail dot com).
Tobi Vollebregt (email unknown).
Tobias Dammers.
Tom Breton (tob at world dot std dot com).
Tom Novelli (tnovelli at cyber3 dot servtech dot com).
Tom St Denis (tomstdenis at yahoo dot com).
Tomohiko Sugiura (tmsugi at d4 dot dion dot ne dot jp).
Tore Halse (gnolam at gmail dot com).
torhu.
Trent Gamblin.
V Karthik Kumar (karthikkumar at gmail dot com).
Victor Williams Stafusa da Silva (vwss1984 at yahoo dot com dot br).
Ville Skyttä (scop at users dot sourceforge dot net).
Vincent Penquerc'h (lyrian at kezako dot net).
Vitaliy Chetverikov (email unknown).
VolkerOth (VolkerOth at aol dot com).
First, a big thank you to all the people who help me test and debug this
code. It sometimes gets frustrating to receive hundreds of messages
saying "it doesn't work!", but they are useful all the same...
Andre Baresel (baresel at informatik dot hu-berlin dot de),
and Craig Jackson (Craig dot Jackson at launchpad dot unc dot edu),
provided a tremendous amount of information about SB hardware.
Benji York (Benji at cookeville dot com).
Charles Mac Donald (cgfm2 at hooked dot net).
Charles Sandmann (sandmann at clio dot rice dot edu),
DJ Delorie (dj at delorie dot com),
Eli Zaretskii (eliz at is dot elta dot co dot il),
and everyone else who has contributed to djgpp. I love it.
C. Schwerdtfeger (schwerdt at physics dot ubc dot ca),
for his help (and enourmous patience!) in getting the SB Pro-I MIDI
driver to work.
Finn Thoegersen, Nordbanevej 3 C, DK-7800 Skive, Denmark.
Eric Jorgensen (smeagol at rt66 dot com).
Jamie O'Connell (JamieOConnell at msn dot com).
Jean-Paul Mikkers (mikmak at stack dot urc dot tue dot nl).
Joel H. Hunter (jhunter at kendaco dot telebyte dot com).
John Pollard (74723 dot 1626 at compuserve dot com).
Kendall Bennett and all the other cool people at SciTech Software.
Kris Heidenstrom (kheidens at actrix dot gen dot nz).
Mark Feldman.
Michael Abrash.
Paul Fenwick (bg914 at freenet dot carleton dot ca).
powerjaw (powerjaw at dnai dot com).
Robert Grubbs (rwgrubbs at vt dot edu).
Robert Schmidt (robert at stud dot unit dot no).
Sourceforge.net (http://sourceforge.net/).
Tom Grandgent (tgrand at canvaslink dot com).
Vladimir Arnost (xarnos00 at dcse dot fee dot vutbr dot cz).
Frank Zappa, Mike Keneally, Pink Floyd, the Doors, Tori Amos, and all the
other great musicians who provide me with things to listen to while I am
programming.
My parents, John and Nancy.
Added a Kannada greeting to exunicod.
Wrote the original version of the LZSS compression code.
12-2-404 Green Heights, 580 Nagasawa, Yokosuka 239, JP.
Revamped the cross-compilation section of docs/build/mingw32.txt,
clarified a requirement when cross-compiling from Linux, reworked the
paragraph on the location of shared libraries under Unix in the docs and
added a FAQ entry on the same subject.
Found a workaround for the switching problem under Windows, made gcc pass
'-h' instead of '-soname' to the linker and replaced '-L' by '-h' in shell
comparisons so as not to break on Solaris.
Contributed a native Mingw32 port which can also be built with a
cross-compiler and the Cygwin compiler, much improved OS detection, added
get_gfx_mode_list() and methods for querying the VGA, Mode-X, Xtended,
VESA, VBE/AF and DirectX drivers for a list of possible GFX modes,
rewrote the mode-selector to use get_gfx_mode_list(), reworked the build
system many times and did plenty of other things too.
Pointed out a bug in the mode selector, fixed several double ;'s, fixed
ASSERT() in Windows, helped write a documentation section about common
pitfalls, and added the create_datafile_index function.
Removed the requirements for fileutils on DOS/Windows platforms and added
the detection of MSYS to the MingW32 port.
Fixed a bug with accelerated drawing onto sub bitmaps of DirectDraw
surfaces, added the GFX_DIRECTX_WIN driver, fixed a Windows sub bitmap
locking bug, added Windows desktop_color_depth and yield_timeslice
routines, and made extensive modifications to other aspects of the
Windows code.
Wrote the 15/16 bit dithering code and optimised the sprite rotation
routines.
Helped track down a problem with dependency generation in MacOS X.
Fixed a bug when loading greyscale TGA images.
Documented the Photoshop-style truecolor blender routines.
Added support for quoted strings in the get_config_argv() function and
the dithering code for paletted images.
Fixed a problem with mouse acceleration in fullscreen modes under Windows.
Suggested to remove the DJGPP makefile from the Unix tar archive and
clarified a requirement when cross-compiling from Linux.
Fixed a compilation problem with Cygwin.
Vastly improved the speed of the create_rgb_table() function.
Wrote the quaternion math routines and contributed the BeOS port.
Corrected mouse movement speed, made allegro_message() use title from
set_window_title(), added close button hook support and improved
switching in Windows, fixed bad clearing of subbitmaps, made bug
reports and suggestions for improvement, contributed bidirectional
looping support, backward playing support and bugfixes for the
DirectSound driver and did plenty of other things too.
Fixed the location of grabber.txt in the spec file.
Contributed modifications in order for Allegro to build on Darwin/MacOS X
and updated the build instructions for this new port afterwards.
Removed floating point calculations from the AWE32 MIDI driver.
Spotted a broken link in the docs and updated it.
fixed loading of multiple ranges in a single bitmap with txt fonts and helped
fix an off-by-one mistake for the last glyph in extract_font_range.
Made the mapping table for Spanish keyboards.
Added more flexible wildcard matching for object names in dat.exe and
the find_datafile_object() function.
Fixed and enhanced the Win32 joystick driver, and contributed the 'Alex
the Allegator' icon.
Fixed some problems with the RSXNT and Mingw32 makefiles.
Fixed a bug in load_wav().
Corrected a wrong assumption about the VRAM layout in the Linux
framebuffer console driver.
Added more ASSERTs to the code, implemented the Cohen-Sutherland clipping
algorithm for the line() function and supplied an m4 macro for allegro.
Also fixed a problem with allegro-config.
Added the save_bmp() function and support for the OS/2 BMP format.
Wrote the mode-X setup code, the FLI/FLC player and contributed parts of
the joystick handler.
Provided a new and much cooler set of FM instrument definitions for the
Adlib MIDI driver.
Improved the Windows joystick driver, and optimised the 16-bit blit() and
masked_blit() functions.
Wrote the original version of the OSS sound driver.
Fixed a bug rest_callback under unix.
Improved the support for non-blocking menus, fixed a bug related to the
retrieval of the inital volume when no primary buffer was present under
Windows, fixed the crash on exit with the aRts sound driver, added an
X11 message box for allegro_message under X11 and fixed a crash in the GUI
when a dialog was opened while a menu was still open.
Fixed a bug in _parallelogram_map().
Fixed the DirectDraw overlay mode driver.
Contributed the SNES joypad driver.
Wrote the Wingman Warrior joystick driver.
Improved the Mingw32 readme file.
Added a FAQ entry about the conflict between Allegro headers and the C++
'using' directive.
Wrote the load_voc() function.
Added destroy hook to font structure, worked on const-correctness
throughout the library, implemented the new FONT structure, made
some modules avoid linking dependencies, contributed the dat2c
utility, added two fixed point ratios for converting to and from
radians, added a '-windowed' switch to the grabber, added a new text
API and did plenty of other things too.
Added the low-level hook routine to the keyboard handler and fixed a
couple of bugs.
Contributed the Norwegian message translation.
Added the exconfig example, contributed keyboard layout detection code
for Windows and suggested the true colour font rendering.
Contributed the SGI Audio Library sound driver, spotted a BSDism that
IRIX doesn't like at all, added IRIX detection and improved the
performances of the SGI audio driver
Contributed the gfxinfo utility, added two FAQ entries, added a
xwin_set_window_name() function to the X11 port, added support for
switch callbacks under X11 and refactored the display switching code.
Added the Portuguese (Brazil) message translation and keyboard mapping.
Made the gfx mode selector keep the current selection as much as possible
and fixed a problem when compiling without 8bpp support.
Added the Italian keyboard mapping table.
Fixed some problems with the German keyboard mapping table.
Not content with fixing my broken MPU-401 driver, Marcel went on to
provide a set of vastly improved drum sounds for the OPL driver, to help
me sort out some problems with reentrant interrupts, to supply the half
of the joystick code that didn't come from Jonathan and to locate a
stupid mistake in my VESA linear framebuffer code.
Corrected a bug that caused errors when drawing persp. correct polygons
facing the screen, corrected an error in the packfile format write-up and
made the show_video_bitmap() method of the Windows windowed driver wait
for a vsync.
Fixed several issues with the DJGPP port and the VBE/AF driver and fixed
some bugs related to author credits.
Added 15 and 24 bit support to the native Tseng ET4000 driver (now
available as part of the FreeBE/AF project).
Added 16 bit support to the load_voc() routine.
Wrote the Windows GDI interface routines.
Added support for the Sidewinder and Gravis GamePad Pro.
Did the original Linux console port (brave man: this was the first ever
work done on porting Allegro away from DOS), which is the basis of the
code we are still using today and added support for the more recent
Trident chipsets (now available as part of the FreeBE/AF project).
Reported two minor mistakes in the manual.
The brain behind sub-bitmaps, flicker-free mouse pointers, and the
ability to import GRX .FNT files into the grabber.
Fixed the Video-7 scrolling function (now available as part of the
FreeBE/AF project), optimised the color mapping routines, and made many
useful suggestions like the addition of a vid_phys_base field to the
graphics driver structure.
Fixed an overflow in create_light_table().
Added the config hook extension mechanism.
Added the French keyboard mapping, support for the Pause/PrtScr keys and
changed the key[] table to a normal/extended bitfield.
Fixed a bug in the scroll() method of the Linux SVGAlib driver.
Added support for 4-button joysticks.
Fixed a bug with mouse mickeys in windowed mode under Windows, fixed a
problem with al_find*() and NTFS partitions under Windows, added missing
header files to be installed by the Windows binary distribution, made the
DOS/Windows makefiles use 'copy /B' instead of 'copy', added the detection
of left-hand mouse configuration under Windows, fixed a bug with
pack_fgets(), made an online diff generator and did lots of other things too.
Fix a bug in C locking code in GDI.
Contributed the Canada (French) keyboard mapping file.
Optimised the create_trans_table() function.
Ported the whole thing to Unix/X, and contributed a _lot_ of patches to
improve the portability, robustness, and performance of pretty much the
entire library.
Pointed out a mistake in the documentation for text_height().
Fixed a mistake in the documentation for is_compatible_font.
Ported the Windows code to Mingw32.
Fixed some bugs in the FLIC player.
Wrote all the 24 bit graphics code, the optimised palette generation
function and a fair amount of the other truecolor stuff too (bitmap
scaling, image loading, etc).
Simplified the build instructions for Dev-C++, replaced all occurences
of MingW32 by MinGW in the docs, added an faq section about the giftware
license, fixed problems with long filenames when building for MSVC,
corrected a problem with the Watcom port, added MSVC7 options to the
makefile, fixed a linker problem with the MSVC port, fixed some const
warnings in the grabber code and did plenty of other things too.
Contributed the ustrnicmp() function.
Fixed bugs in the keyconf utility, the alsa 9 volume settings and
extract_font_range(), helped fix an off-by-one mistake for the last glyph
in extract_font_range, fixed a bug where a font would be converted to 8
bit, a bug with is_color_font, made the Linux console driver more robust,
fixed some spin loops in the test program, and added the get_volume and
get_hardware_volume functions, and did plenty of other things too.
Fixed an undocumented arbitrary limit in get_config_argv()
Improved the fire routine in examples/exflame.c (my original version
didn't really look very much like flames :-) and gave me some extremely
useful ideas about how to implement translucency.
Implemented the recursive handling of directories for the dat utility.
Improved the accuracy of the timer routines and added the callback
parameters.
Suggested many improvements to the documentation.
Implemented a hardware accelerated stretch_blit() for the Windows DX port,
and fixed a bug with draw_sprite and sub-bitmaps.
Made the fix class not trigger warnings with gcc -Weffc++.
Wrote the DirectSound input driver.
Contributed the Danish keyboard mapping table and system message
translation, and made the Unicode utolower() and utoupper() functions
understand the entire 16 bit character set.
Fixed compilation problems for the ModeX driver.
Modified the djgpp makefile to support cross-compiling on a Linux machine.
Spotted an asm locking bug under Windows, bumped the maximum number of
buttons per joystick to 32, fixed the Windows joystick driver to handle a
weird peculiarity of the DirectInput API and improved the handling of
KEY_COLON2 on Japanese keyboards.
Added the Catalan translation, corrected the Spanish translation, fixed a
bug with binary data exporting in the grabber and fixed a conflict between
the magic main and the MFC.
Wrote part of the translucency/lighting code.
Contributed a DLL version resource script and the mkdata.bat script.
Fixed a bug in the ATI mach64 driver (now available as part of the
FreeBE/AF project), added native truecolor and linear framebuffer support
to the ATI driver, contributed the Norwegian keyboard mapping, and added
MIDI and sample input features to the MPU and SB drivers respectively.
Helped fix a problem with BCC and the C implementations of fixmul.
Wrote the draw_gouraud_sprite() function, and made Windows audiostreams
work properly.
Contributed the ellipse drawing functions.
Reported a bug where libdir from autotools was not used for the modules path.
Provided the floating point apply_matrix_f() function.
Improved and fixed some problems in the SNES gamepad driver.
Translated the system error messages into French.
Made file_select() able to include or exclude files based on their
attributes.
Contributed the tweaked 80x80 VGA mode.
Added grabber support for the 8x8 BIOS font format, support for
hot-swapping between a custom keyboard layout and the standard US
mapping, optimised the alpha sprite blending routines and added non-ASCII
space recognition to uisspace().
Made the file selector work with directories that have more than 2048
files, solved some compiling issues on MacOS X, fixed a bug in rest()
that caused it to wait too long on that platform, fixed several problems
with the hardware mouse cursor, fixed a deadlock in the software mouse
updating code, fixed compilation problems under MacOS X tiger, added a
MacOS X helpfile and did plenty of other things too.
Reported a problem with system cursors not working in Windows.
Wrote the Video-7 graphics driver (now available as part of the FreeBE/AF
project) and showed me how to set up the unchained 640x400 mode.
Added the keyboard callback routine.
Added the Slovak keyboard mapping and message translation, stopped the
DOS file selector from listing virtual drives, did the same for the
Windows file selector, improved the support for accented character maps in
the keyboard driver and made aesthetic modifications to the GUI menu
system.
Helped with the Mingw32 native build.
Added the mouse_z wheel input support to the Linux code, fixed problems
with the ESD sound driver, wrote the ALSA sound driver, wrote the BeOS
sound driver, added OSS MIDI and sample input support, added banked mode
support to the SVGAlib driver, wrote the X DGA mode switching code,
improved the Linux joystick driver, X11 fullscreen, DGA2 and DGA driver,
added pthread timers under Linux/Unix and did loads of other things too.
Wrote the CPU type detection code.
Fixed a bug in load_bios_font().
Improved the MSVC build instructions.
Fixed all comparisons between signed and unsigned types, fixed compilation
on x86-64, fixed all function prototypes, converted the configure
machinery to autoconf 2.53 or later and added multi-arch support, DESTDIR
support and the German translation to the RPM spec file.
Added hicolor versions of the 3d polygon code.
Added the position_dialog() function.
Added support for PSX and N64 joypads.
Added support for 6-button joysticks, and wrote the 12-bit color example
program (ex12bit.c).
Fixed a silly mistake with gcc 3.0.x detection.
Fixed a small problem with the Mac OS X joystick driver.
Wrote the Gravis GrIP driver, made some improvements to the Wingman, PSX
and throttle input code.
Added MMX optimisation for the 8 and 16-bit clear() functions, fixed bad
clearing of subbitmaps, added SSE detection and optimised some masked
blits with SSE instructions, added some routines to the unified color
convertor and made some of them more robust, fixed the docs for
pivot_scaled_sprite_v_flip(), revamped the retrieval mechanism of CPU
capabilities, separated the CSS file and did plenty of other things too.
Fixed a couple of memory problems in the dat2c utility, added an
srand() call in the demo game, made the MSVC port call `link /lib'
rather than `lib', fixed several warnings with GCC 4 under DJGPP and
fixed a grabber crash when importing a font range in an existing font.
Provided a new page flipping code for the DirectDraw subsytem, added a
Windows sound driver using the Allegro mixer and another using waveOut,
fixed two glitches in the DirectDraw code.
Added an arc plotting routine.
Made several improvements to the test program.
Contributed the MacOS 9 port of Allegro.
Made various documentation fixes and fixed a crash in free_config_entries.
Added the VESA 3.0 refresh rate control code.
Wrote the IF-SEGA /PCI, /PCI2, and /ISA joystick interface drivers.
Improved the keyboard routines (better handling of extended scancodes,
keyboard LED support, capslock and numlock, and alt+numpad input),
contributed the 320x100 VGA graphics mode, added support for proper 16
bit sample mixing, fixed compilation on gcc 3.x and made numerous other
useful suggestions, contributions and bugfixes.
Fixed a Bashism in fix.sh that makes Solaris' sh choke, a race
condition in the mixer under Unix w/ threads, Windows, BeOS and MacOS X,
a crash in makedoc, made it possible to put functions from .s sources
in a shared library under Unix and removed deprecated use of several
functions.
Made the Finnish keyboard mapping.
Added support for more than two joysticks in the Windows port.
Added the OpenDOS detection code.
Added the set_leds() function.
Made makedoc output correct html and rtf files for Korean.
Fixed a bug with the letter P in the Russian keyboard configuration
file, added Enter as a fire key to the demo game, fixed some
problems with Allegro working on Nokia 770, and fixed a crash in
_linear_draw_trans_rgba_rle_sprite24.
Contributed the Windows BMP file reader, bezier spline drawer, and
justified text plotting function.
Progenitor. Wrote everything that wasn't written by somebody else.
Several fixes to the .spec file, made get_executable_name use getexecname()
under Solaris, fixed a bug in the keyboard driver that caused crashes on
the same system, worked around errors with some versions of GNU AS and fixed
errors in the configure script when not using GCC
Fixed a bug in the exflame example and updated the FAQ to use rest(0) instead
of yield_timeslice().
Added support for a second joystick.
Wrote the original Windows version pretty much single-handedly.
Wrote the Linux SVGAlib driver.
Added a Czech keyboard mapping and system message translation, the Latin
Extended-A characters in the default font, the codepage support in the
textconv utility, fixed some problems with the ESD sound driver, helped
make Allegro build better on some Unix platforms, fixed const related
problems in C versions of routines and added support for a automake-style
DESTDIR variable in the Unix makefile.
Made a few fixes to let the Linux port compile again on Linux 2.2.x,
corrected a few nits in the Swiss keyboard configuration file and added
new keysyms to the X11-to-BIOS conversion table in order to catch missing
keycodes for the keypad when NumLock is on.
Made bugfixes and tweaks to the keyboard system.
Clarified the documentation of init_dialog.
Pointed out that Allegro should respect DESTDIR under MacOS X.
Fixed a problem with save_bitmap() rounding the image widths, optimised
the create_light_table() function, optimised the fixed point trigonometric
routines, provided the Swedish message translations, improved the file
selector sorting algorithm, optimised the spline routines, added
ustrrchr(), improved the usprintf() handling of floats, changed the
Z-buffer API, and did plenty of other things too.
Added the 320x600 and 360x600 resolutions to the mode-X driver.
Added wheel support to the Windows mouse driver.
Designed most of the new sound API.
Improved the cpu detection for Cyrix chips and made the file selector
only list valid drive letters.
Wrote the ALSA 0.5.x MIDI driver and added support for ALSA 0.9.x.
Helped fix a bug in show_video_bitmap() on MacOS X, helped optimise
fixmul(), helped find many bugs in the MacOS X port, like better support
for user-supplied Nibs, implemented a hardware accelerated stretch_blit
under DirectX, and fixed a bug with draw_sprite and sub-bitmaps.
Added NetBSD detection and fixed a problem with the allegro.m4 macro and
automake 1.8+.
Corrected some errors in the German keyboard mapping and added the
German translation of the system messages.
Worked on the Linux console port.
Wrote the TGA reading/writing routines.
Fixed several bugs in the RGB <-> HSV conversion routines.
Spotted a bug in ustrerror(), which was not returning a pointer to
a static buffer, reported a problem with shutdown_dialog() when a
menu was open, helped port the Windows keyboard driver to Windows 98
and fixed a bug with hardware cursor detection in X11.
Fixed a problem with the DirectSound input driver.
Added the functionality selection #ifndefs to allegro.h.
Wrote the original version of the digital MIDI driver.
Fixed clipping of transparent objects.
Added the KEY_ABNT_C1, KEY_YEN, KEY_KANA, KEY_CONVERT, KEY_NOCONVERT
and other keys to the input handler, organised getting the IF-SEGA
joystick drivers by S.Suzuki merged into my codebase and added a more
aggressive Sidewinder joystick driver.
Made Allegro windows always popup centred in Windows and made fixes to the
documentation.
Fixed an out-of-bounds error in akaitest.
Implemented set_mouse_speed under X11, fixed the C version of stretch_blit
and made the fullscreen DirectX driver save and restore the palette on
switching away.
Added a Tamil language greeting to exunicode, added switches to use
the Intel compiler in Windows and added a password option to the Windows
screensaver example. Also fixed a problem with allegro-config.
Changed a few occurences of "256" to PAL_SIZE and made OS type detection
handle Windows 2003 and Windows Vista.
Fixed a problem with make install libdir= and modules on Unix systems.
Added the D_DIRTY flag and mouse button press/release events to the GUI
system, optimised the 256 to truecolor blitting code to avoid repeated
conversions of the palette table, added scare_mouse_area(), added the
yield_timeslice() function, added the update selection function to the
grabber, added the XCRP and YCRP properties to datafiles in general,
implemented the big header split and did plenty of other things too.
Fixed a bug in the GUI where the return value of MSG_IDLE was ignored.
Integrated the concepts of scrolling and edit_proc objects.
Thanks!
Provided hardware information for the Gravis GamePad Pro.
Showed me how to set some cool tweaked VGA and mode-X resolutions.
Most of my SVGA hardware information came from his VGADOC package.
Varmint's Audio Tools (VAT) gave me many useful ideas about how to play
MIDI files.
Several of the new Adlib drum patches, and the specifications for the
.IBK file format, came from his SBTimbre package.
MikMod was the source of a lot of information about programming the SB,
and also gave me the idea of dynamically reprogramming the PIT to get a
really high resolution timer.
His SB library for djgpp is excellent, and helped me a lot.
The FM instrument definitions are based on his MID-KIT library.
These guys gave the world UniVBE, the VBE/AF API, and a lot of free
information and example code. Plus they very kindly sent me a copy of the
VBE/AF spec when I wanted one.
His PC timing FAQ was a big help.
It goes without saying that the PCGPE was an invaluable resource.
You just gotta love that man...
Various bits of the mode-X code (notably the split screen stuff) came
from his XLIBDJ library.
Sent me a Sidewinder gamepad so I could fix some problems with the driver
for it. What a cool thing to do...
Provided hardware information for the Sidewinder joypad.
The register values for the 400x* mode-X resolutions came from his TWEAK
program.
The Allegro community has been using their services (web, mailing lists,
CVS, Subversion, etc) since 3.9.x WIP versions.
Organised and hosted the original Allegro mailing lists for many years.
Hurrah!
Provided hardware specs for the OPL3 chip.
I would never have made it through all those late night coding sessions
without the cafetiere they gave me last Christmas :-)
By Shawn Hargreaves, Allegro creator.