The Hall of Fame


I hope I've remembered everyone who ought to be mentioned here. If your name should be included, my apologies, and please tell me so I can correct the oversight!



Contributors

A.Cottrell (andrewc@dbworld.net.au).
Changed the grabber to use a more robust (locale-independent) date format.

Adrian Oboroc (doba@corefx.com).
Wrote the LBM loader.

Alex Demko (alex_demko@mbnet.mb.ca).
Suggested lots of improvements to the datafile system, and provided code for handling the 8x16 BIOS font format.

Alessandro Monopoli (almonopo@tin.it).
Added the Italian translation of the system messages.

Andreas Kluge (bitland@aol.com).
Wrote the Ensoniq Soundscape driver.

Andrei 'old-boy' Ellman (ellman@xs4all.nl).
Contributed the polygon_z_normal() function.

Andrew Ellem (krand@ican.net).
Wrote the original version of the digital audio streaming code.

Andrew Geers (andy@geerswj.clara.net).
Added the -ppassword and -nosound options to the grabber, and scrolling support in the image viewer.

Andy Goth (andygoth@vetec.com).
Made the gfx_card config variable more flexible, added the 256x256 tweaked VGA mode, and wrote the d_text_list_proc() dialog object.

Antoine Mathys (mmathys@bluewin.ch).
Added the Swiss keyboard mapping.

Anton Ragnarsson (anton.ragnarsson@swipnet.se).
Contributed the Swedish keyboard mapping table.

Antti Haapala (ztane@lyseo.edu.ouka.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.koskipaa@nic.fi).
Wrote the DOS driver for WSS (Windows Sound System) cards.

Arne Steinarson (arst@ludd.luth.se).
The fixed point square root routine came from his fix-float library.

Ben Chauveau (bendomc@worldnet.fr).
Added support for Tseng ET6000 cards (now available as part of the FreeBE/AF project).

Ben Darnell (bdarnell@vnet.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.

Burton Radons (loth@gec.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@ibd.dbio.ro).
Wrote the truecolor, MMX, 3DNow!, and masked lit mode polygon rendering routines, and the clip3d_f() function.

Calvin French (frenchc@home.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@ea.com).
Wrote the the ESS AudioDrive soundcard driver.

Cloud Wu (cloudwu@263.net).
Optimised the truecolor pixel blending functions.

Chris La Mantia (chrislm@earthlink.net).
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@yahoo.com).
Wrote the fixed point clip3d() function.

David Kuhling (dkuelhin@hell1og.be.schule.de).
Optimised the fsqrt() routine, and added fhypot().

Dave Thomson (gameskitchen@geocities.com).
Added the RGB <-> HSV conversion routines, the autocrop function to the grabber, and wrote the 3d starfield example program (ex26.exe).

David Calvin (calvid@rpi.edu).
Wrote the original version of the sound setup utility.

Dmitriy Kazimirow (mariann@mail.ru).
Provided the Russian keyboard mapping and message translation files.

Dominique Biesmans (Dominique.Biesmans@ping.be).
Wrote the mode-X version of draw_sprite() and the mode-X <-> linear blitting functions.

Doug Eleveld (D.J.Eleveld@anest.azg.nl).
Wrote the d_textbox_proc() dialog object and the new grabber help system.

Edward Boone (Lucien.Boone@ping.be).
Provided scancode mapping tables for the AZERTY keyboard layout.

Erik Sandberg (eriksandberg@geocities.com).
Optimised the 8 bit draw_sprite() and draw_trans_sprite() functions, and helped with the Swedish message translation.

Ettore Perazzoli (ettore@comm2000.it).
Optimised the linear -> mode-X blitting function.

Fabian Nunez (faybs@iafrica.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@iafrica.com).
Contributed the DB9 and TurboGraFXoystick drivers.

Francois Charton (deef@pobox.oleane.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@alfa.ist.utl.pt).
Made the Portuguese keyboard mapping.

Garret Thomson (gart@terraport.net).
Wrote the music used in the demo game.

George Foot (george.foot@merton.ox.ac.uk).
Did a great deal of work on the Linux console version. Also wrote the AWE32 driver, added the MIDI pause/seek functions, and provided the basis of the SoundFont reader used in the pat2dat utility.

Gorka Olaizola (olsago@jet.es).
Added the Redhat RPM .spec file.

Greg Hackmann (hacker@ididitmyway.com).
Contributed the Borland C++ Builder port.

Grzegorz Adam Hankiewicz (gradha@iname.com).
Wrote several of the example programs, suggested the "compress" makefile target, translated the docs and system error messages into Spanish, and suggested the idea of embedding the setup utility into other programs.

Grzegorz Ludorowski (pajonk@ajax.umcs.lublin.pl).
Wrote several of the example programs, and made the intro animation and graphics for the demo game.

Guilherme Silveira (thedarkage@geocities.com).
Modified the file selector to only list valid drive letters.

Gunter Ladwig (gladwig@iname.com).
Wrote the OS/2 detection routines and added the three-button mouse emulation.

Haruhiko Okumura, 12-2-404 Green Heights, 580 Nagasawa, Yokosuka 239, JP.
Wrote the original version of the LZSS compression code.

Henrik Stokseth (hstokset@hotmail.com).
Added code to distinguish between win95 and win98, and worked on the Mingw32 native build version.

Isaac Cruz (icruzbal@teleline.es).
Fixed a bug with accelerated drawing onto sub bitmaps of DirectDraw surfaces, and added the GFX_DIRECTX_WIN driver.

Ivan Baldo (lubaldo@adinet.com.uy).
Wrote the 15/16 bit dithering code and optimised the sprite rotation routines.

James Arthur (jaa@arfa.clara.net).
Documented the Photoshop-style truecolor blender routines.

James Hyman (frooge@mindless.com).
Added support for quoted strings in the get_config_argv() function, and the dithering code for paletted images.

Jan Hubicka (hubicka@horac.ta.jcu.cz).
Vastly improved the speed of the create_rgb_table() function.

Jason Wilkins (fenix@io.com).
Wrote the quaternion math routines, and contributed the BeOS port.

Jim Flynn (jflynn@pacbell.net).
Removed floating point calculations from the AWE32 MIDI driver.

Joaquin Hierro Diaz (Joaquin.Hierro.Diaz@fresno.csic.es).
Made the mapping table for Spanish keyboards.

Joerg Rueppel (sharky-x@gmx.net).
Added more flexible wildcard matching for object names in dat.exe, and the find_datafile_object() function.

Johan Venter (leonjventer@bigpond.com).
Fixed some problems with the RSXNT and Mingw32 makefiles.

Jonas Petersen (joXonoX@berlin.snafu.de).
Added the save_bmp() function, and support for the OS/2 BMP format.

Jonathan Tarbox (jonattar@rocketmail.com).
Wrote the mode-X setup code, the FLI/FLC player, and contributed parts of the joystick handler.

Jorrit Rouwe (j.rouwe@cpedu.rug.nl).
Provided a new and much cooler set of FM instrument definitions for the Adlib MIDI driver.

Jose Antonio Luque (skylord@LatinMail.com).
Improved the Windows joystick driver, and optimised the 16 bit blit() and masked_blit() functions.

Joshua Heyer (joshua_heyer@yahoo.com).
Wrote the original version of the OSS sound driver.

Keith Gerdes (kwg@softhome.net).
Fixed the DirectDraw overlay mode driver.

Kerry High (khigh01@umr.edu).
Contributed the SNES joypad driver.

Kester Maddock (dmaddock@xtra.co.nz).
Wrote the Wingman Warrior joystick driver.

Knut Pape (Knut_Pape@t-online.de).
Improved the Mingw32 readme file.

Krzysztof Krzyzaniak (eloy@arrakis.cs.put.poznan.pl).
Wrote the load_voc() function.

Lee Killough (email unknown).
Added the low-level hook routine to the keyboard handler, and fixed a couple of bugs.

Lennart Rolland (chimeni@hotmail.com).
Contributed the Norwegian message translation.

Lucas Vignoli Reis (lucasvr@bestway.com.br).
Added the Portuguese (Brazil) message translation and keyboard mapping.

Maiolino Carmelo (cmaiolino@ctonline.it).
Added the Italian keyboard mapping table.

Manni Heumann (manfred.heumann@uni-bielefeld.de).
Fixed some problems with the German keyboard mapping table.

Marcel de Kogel (m.dekogel@student.utwente.nl).
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.

Marco Campinoti (marco@etruscan.li.it).
Added 15 and 24 bit support to the native Tseng ET4000 driver (now available as part of the FreeBE/AF project).

Marco Marmulla (Viper005@usa.net).
Added 16 bit support to the load_voc() routine.

Marian Dvorsky (mdvorsky@dodo.sk).
Wrote the Windows GDI interface routines.

Marius Fodor (iceman@teleport.com).
Added support for the Sidewinder and Gravis GamePad Pro.

Marek Habersack (grendel@ananke.amu.edu.pl).
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. Added support for the more recent Trident chipsets (now available as part of the FreeBE/AF project).

Mark Wodrich (mwodric@eleceng.uct.ac.za).
The brain behind sub-bitmaps, flicker-free mouse pointers, and the ability to import GRX .FNT files into the grabber.

Markus F.X.J. Oberhumer (markus.oberhumer@jk.uni-linz.ac.at).
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.

Martijn Versteegh (VERSTEEGH@KVI.nl).
Added the config hook extension mechanism.

Mathieu Lafon (mlafon@ifhamy.insa-lyon.fr).
Added the French keyboard mapping, support for the Pause/PrtScr keys, and changed the key[] table to a normal/extended bitfield.

Matthew Bowie (catcat@nmt.edu).
Added support for 4-button joysticks.

Michael Bevin (michael.bevin@stonebow.otago.ac.nz).
Optimised the create_trans_table() function.

Michael Bukin (M.A.Bukin@inp.nsk.su).
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.

Michael Rickmann (mrickma@gwdg.de).
Ported the Windows code to Mingw32.

Michael Tanczos (webmaster@logic-gate.com).
Fixed some bugs in the FLIC player.

Michal Mertl (mime@eunet.cz).
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).

Nathan Albury, aka Rubicant (gt4558a@prism.gatech.edu).
Improved the fire routine in examples/ex11.c (my original version didn't really look very much like flames :-) and gave me some extremely useful ideas about how to implement translucency.

Neil Townsend (neil@robots.ox.ac.uk).
Improved the accuracy of the timer routines, and added the callback parameters.

Ole Laursen (98zOLaw@aalborghus.dk).
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.

Olly Betts (olly@muscat.co.uk).
Modified the djgpp makefile to support cross-compiling on a Linux machine.

Owen Embury (owen@gememail.demon.co.uk).
Wrote part of the translucency/lighting code.

Ove Kaaven (ovek@arcticnet.no).
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.

Patrick Hogan (patter@iname.com).
Wrote the draw_gouraud_sprite() function, and made Windows audiostreams work properly.

Paul Bartrum (bartrum@xtra.co.nz).
Contributed the ellipse drawing functions.

Paul Furber (paul@sprintlink.co.za).
Provided the floating point apply_matrix_f() function.

Paul Hampson (Paul.Hampson@Pobox.Com).
Fixed some problems with the SNES gamepad driver.

Paul Pinault (diskaleg@infonie.fr).
Translated the system error messages into French.

Pavlos Touboulidis (gtoub@otenet.gr).
Made file_select() able to include or exclude files based on their attributes.

Pedro Cardoso (pcardoso@viriato.ipv.pt).
Contributed the tweaked 80x80 VGA mode.

Peter Cech (7cech@nw.fmph.uniba.sk).
Added grabber support for the 8x8 BIOS font format, and support for hot-swapping between a custom keyboard layout and the standard US mapping. Optimised the alpha sprite blending routines.

Peter Monks (pmonks@iname.com).
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.

Peter Palotas (blizzar@hem1.passagen.se).
Added the keyboard callback routine.

Peter Pavlovic (pavlovic@redbull.dcs.fmph.uniba.sk).
Added the Slovak keyboard mapping and message translation, stopped the DOS file selector from listing virtual drives, and improved the support for accented character maps in the keyboard driver.

Peter Wang (tjaden@alphalink.com.au).
Contributed to the Linux GGI driver, added the mouse_z wheel input support to the Linux code, fixed problems with the ESD sound driver, wrote the ALSA sound driver, added OSS MIDI and sample input support, added banked mode support to the SVGAlib driver, wrote the X DGA mode switching code, and improved the Linux joystick driver.

Phil Frisbie, Jr. (pfrisbie@geocities.com).
Wrote the CPU type detection code.

Przemek Podsiadly (ppodsiad@elka.pw.edu.pl).
Added hicolor versions of the 3d polygon code.

Revin Guillen (revin@phylo.com).
Added the position_dialog() function.

Richard Davies (richard@debaser.force9.co.uk).
Added support for PSX and N64 joypads.

Richard Mitton (100740.1271@compuserve.com).
Added support for 6-button joysticks, and wrote the 12-bit color example program (ex35).

Robert J. Ragno (rjr@mit.edu).
Wrote the Gravis GrIP driver, and made some improvements to the Wingman, PSX, and throttle input code.

Robert Ohannessian (varobert@colba.net).
Added MMX optimisation for the 8 and 16 bit clear() functions.

Romano Signorelli (romanos@bigfoot.com).
Added an arc plotting routine.

S.Sakamaki (emt@geocities.co.jp).
Added the VESA 3.0 refresh rate control code.

S.Suzuki (s-suz@sunfield.ne.jp).
Wrote the IF-SEGA /PCI, /PCI2, and /ISA joystick interface drivers.

Salvador Eduardo Tropea (salvador@inti.edu.ar).
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, and made numerous other useful suggestions, contributions and bugfixes.

Santeri Saarimaa (gridle@mbnet.fi).
Made the Finnish keyboard mapping.

Scott Harrison (scotth@calderauk.com).
Added the OpenDOS detection code.

Sean Gugler (sean@epal.com).
Added the set_leds() function.

Seymour Shlien (seymour@dgbt.doc.ca).
Contributed the Windows BMP file reader, bezier spline drawer, and justified text plotting function.

Shawn Hargreaves (shawn@talula.demon.co.uk).
Progenitor. Wrote everything that wasn't written by somebody else.

Stefan Eilert (seilert@rz.Uni-Osnabrueck.DE).
Added support for a second joystick.

Stefan Schimanski (1Stein@gmx.de).
Wrote the Windows version pretty much single-handedly.

Stefan T. Boettner (virtual.man@t-online.de).
Wrote the Linux SVGAlib driver.

Stepan Roh (sroh7497@ss1000.ms.mff.cuni.cz).
Added a Czech keyboard mapping and system message translation, the Latin Extended-A characters in the default font, and the codepage support in the textconv utility, and fixed some problems with the ESD sound driver.

Sven Sandberg (ssven@geocities.com).
Fixed a problem with save_bitmap() rounding the image widths, optimised the create_light_table() function, optimised the fixed point trig routines, provided the Swedish message translations, improved the file selector sorting algorithm, optimised the spline routines, added the ustrrchr() function, and improved the usprintf() handling of floats.

TBD/FeR (tbd@usa.net).
Added the 320x600 and 360x600 resolutions to the mode-X driver.

Teijo Hakala (teijo.hakala@imnetti.fi).
Added wheel support to the Windows mouse driver.

Tero Parvinen (Tero.Parvinen@hut.fi).
Designed most of the new sound API.

Theuzifan Sumachingun (uzi@simauria.upv.es).
Improved the cpu detection for Cyrix chips and made the file selector only list valid drive letters.

Thomas Wolf (two@chello.at).
Corrected some errors in the German keyboard mapping, and added the German translation of the system messages.

Tim Bird (tbird@caldera.com).
Worked on the Linux console port.

Tim Gunn (timgunn@eastwind.com.au).
Wrote the TGA reading/writing routines.

Timothy Terriberry (sundance@sprintmail.com).
Fixed several bugs in the RGB <-> HSV conversion routines.

Tom Breton (tob@world.std.com).
Added the functionality selection #ifndefs to allegro.h.

Tom Novelli (tnovelli@cyber3.servtech.com).
Wrote the original version of the digital MIDI driver.

Tomohiko Sugiura (tmsugi@d4.dion.ne.jp).
Added the KEY_YEN and KEY_YEN2 keys to the input handler, and organised getting the IF-SEGA joystick drivers by S.Suzuki merged into my codebase.

Vincent Penquerc'h (vpenquerch@cr2a-di.fr).
Added the D_DIRTY flag 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, and made various other bugfixes and improvements.

VolkerOth (VolkerOth@aol.com).
Integrated the concepts of scrolling and edit_proc objects.



Thanks!

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@informatik.hu-berlin.de), and Craig Jackson (Craig.Jackson@launchpad.unc.edu), provided a tremendous amount of information about SB hardware.

Benji York (Benji@cookeville.com).
Provided hardware information for the Gravis GamePad Pro.

Charles Mac Donald (cgfm2@hooked.net).
Showed me how to set some cool tweaked VGA and mode-X resolutions.

Charles Sandmann (sandmann@clio.rice.edu), DJ Delorie (dj@delorie.com), Eli Zaretskii (eliz@is.elta.co.il), and everyone else who has contributed to djgpp. I love it.

C. Schwerdtfeger (schwerdt@physics.ubc.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.
Most of my SVGA hardware information came from his VGADOC package.

Eric Jorgensen (smeagol@rt66.com).
Varmint's Audio Tools (VAT) gave me many useful ideas about how to play MIDI files.

Jamie O'Connell (JamieOConnell@msn.com).
Several of the new Adlib drum patches, and the specifications for the .IBK file format, came from his SBTimbre package.

Jean-Paul Mikkers (mikmak@stack.urc.tue.nl).
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.

Joel H. Hunter (jhunter@kendaco.telebyte.com).
His SB library for djgpp is excellent, and helped me a lot.

John Pollard (74723.1626@compuserve.com).
The FM instrument definitions are based on his MID-KIT library.

Kendall Bennett and all the other cool people at SciTech Software.
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.

Kris Heidenstrom (kheidens@actrix.gen.nz).
His PC timing FAQ was a big help.

Mark Feldman.
It goes without saying that the PCGPE was an invaluable resource.

Michael Abrash.
You just gotta love that man...

Paul Fenwick (bg914@freenet.carleton.ca).
Various bits of the mode-X code (notably the split screen stuff) came from his XLIBDJ library.

powerjaw (powerjaw@dnai.com).
Sent me a Sidewinder gamepad so I could fix some problems with the driver for it. What a cool thing to do...

Robert Grubbs (rwgrubbs@vt.edu).
Provided hardware information for the Sidewinder joypad.

Robert Schmidt (robert@stud.unit.no).
The register values for the 400x* mode-X resolutions came from his TWEAK program.

Tom Grandgent (tgrand@canvaslink.com).
Organised and hosted the Allegro mailing list. Hurrah!

Vladimir Arnost (xarnos00@dcse.fee.vutbr.cz).
Provided hardware specs for the OPL3 chip.

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.
I would never have made it through all those late night coding sessions without the cafetiere they gave me last Christmas :-)