Contributors: The Hall of Fame

Contributors

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.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.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.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.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.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.

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.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.

Chris Jones (cj AT jibblers.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.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.

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.

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.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.

Elias Pschernig (elias AT users.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.

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.

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.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.

Garret Thomson (g AT sirsonic DOT com).
Wrote the music used in the demo game.

George Foot (gfoot AT users.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.

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.

Grzegorz Adam Hankiewicz (gradha AT users.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.

Hans de Goede.
Fixed a problem with dynamically generated stretcher code not being
properly marked as executable on Linux, fixed a busy wait in the X11 vsync
simulation, added a fullscreen driver for X11 which does not need XVidMode
extension, fixed a problem where switching to fullscreen mode under X11,
made digmid work with absolute pathes in patches.cfg, and fixed a problem
with the Alsa driver on big endian systems.

Hein Zelle (hein AT icce.rug DOT nl).
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.

Henrik Schmidt (hbs AT ks.informatik.uni-kiel DOT de).
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.

Henrik Stokseth (hensto AT online DOT no).
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.

Hrvoje Ban (spoofer255 AT gmail DOT com).
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.

Igor Gnip (gnipi AT mindnever DOT org).
Removed the requirements for fileutils on DOS/Windows platforms and added
the detection of MSYS to the MingW32 port.

Javier Gonzalez (xaviergonz AT hotmail DOT com).
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.

Jeff Mitchell (email unknown).
Fixed the location of grabber.txt in the spec file.

Jeremiah Blanchard (squirminworm AT yahoo DOT com).
Contributed modifications in order for Allegro to build on Darwin/MacOS X
and updated the build instructions for this new port afterwards.

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

J. P. Morris (email unknown).
Fixed a bug rest_callback under unix.

Julien Cugnière (jcugniere AT free DOT fr).
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.

Laurence Withers (lwithers AT users.sf DOT net).
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.

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

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

Marcel de Kogel (m.dekogel AT student.utwente DOT 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.

Marcel Smit (marcel.athlon AT hccnet DOT nl).
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.

Márcio Fialho (maaf1980 AT yahoo.com DOT br).
Fixed several issues with the DJGPP port and the VBE/AF driver and fixed
some bugs related to author credits.

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

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

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

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

Matthew Leverton (matthew AT allegro DOT cc).
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.

Michael Bukin (M.A.Bukin AT inp.nsk DOT 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 Faerber.
Pointed out a mistake in the documentation for text_height().

Michal Molhanec (molhanec AT seznam DOT cz).
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.

Milan Mimica (milan.mimica1 AT pu.htnet DOT hr).
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.

Nathan Albury, aka Rubicant (gt4558a AT prism.gatech DOT edu).
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.

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

Omar Cornut (cornut AT noos DOT fr).
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.

Oscar Giner (O_giner AT hotmail DOT com).
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.

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

Ove Kaaven (ovek AT arcticnet DOT 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.

Paavo Ahola (email unknown).
Helped fix a problem with BCC and the C implementations of fixmul.

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

Peter Cech (7cech AT nw.fmph.uniba DOT sk).
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().

Peter Hull (peterhull90 AT users.sourceforge DOT net).
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.

Peter Johansson (email unknown).
Reported a problem with system cursors not working in Windows.

Peter Monks (pmonks AT iname DOT 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 Pavlovic (Peter.Pavlovic AT st.fmph.uniba DOT sk).
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.

Philipp Thomas (pthomas AT suse DOT de).
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.

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

Robert J. Ohannessian (voidstar AT ifrance DOT com).
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.

Roberto Alfonso (rpgrca AT labint.frba.utn.edu DOT ar).
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.

Robin Burrows (rburrows AT bigfoot DOT com).
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.

Sam Hocevar (sam AT zoy DOT org).
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.

Serge Semashko (serge AT lxnt DOT info).
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.

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

Shawn Walker (binarycrusader AT gmail DOT com).
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

StApostol (stapostol AT gmail DOT com).
Fixed a bug in the exflame example and updated the FAQ to use rest(0) instead
of yield_timeslice().

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

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

Stepan Roh (src AT srnet DOT cz).
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.

Stephan Brauss (sbrauss AT optronic DOT ch).
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.

Stephen Kittelson (stickman2000 AT juno DOT com).
Made bugfixes and tweaks to the keyboard system.

Stijn Wolters.
Clarified the documentation of init_dialog.

Sveinung Kvilhaugsvik(email unknown).
Pointed out that Allegro should respect DESTDIR under MacOS X.

Thomas Fjellstrom (tfjellstrom AT home DOT com).
Wrote the ALSA 0.5.x MIDI driver and added support for ALSA 0.9.x.

Thomas Harte (email unknown).
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.

Tobi Vollebregt (email unknown).
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.

Tore Halse (gnolam AT gmail DOT com).
Made Allegro windows always popup centred in Windows and made fixes to the
documentation.

V Karthik Kumar (karthikkumar AT gmail DOT com).
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.

Ville Skyttä (scop AT users.sourceforge DOT net).
Fixed a problem with make install libdir= and modules on Unix systems.

Vincent Penquerc'h (lyrian AT kezako DOT net).
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.

Vitaliy Chetverikov (email unknown).
Fixed a bug in the GUI where the return value of MSG_IDLE was ignored.

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...

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

Jamie O'Connell (JamieOConnell AT msn DOT 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 AT stack.urc.tue DOT 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 AT kendaco.telebyte DOT com).
His SB library for djgpp is excellent, and helped me a lot.

John Pollard (74723.1626 AT compuserve DOT 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.