______ ___ ___ /\ _ \ /\_ \ /\_ \ \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___ \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\ \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \ \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/ \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/ /\____/ \_/__/ Información específica para DJGPP. Véase readme.txt para un punto de vista más general. ===================================== ============ Notas DJGPP ============ ===================================== Estado: completo. Esta es la versión original de Allegro, y ha tenido tiempo suficiente para llegar a ser buena y estable. ============================================ ============ Software requerido ============ ============================================ - DJGPP 2.01 o posterior (djdev*.zip). - GCC compiler 2.91.x o posterior (gcc*b.zip). Nota: gcc 3.0.x (0 <= x <= 1) no compila Allegro correctamente. - Binutils 2.9.x o posterior (bnu*b.zip). - GNU make (mak*b.zip). - Texinfo (txi*b.zip). - Opcional: rm (fil*b.zip). Usado por los comandos clean y uninstall del make. - Opcional: sed (sed*b.zip). Usado por "make depend". Lo mencionado arriba puede descargarse desde su servidor réplica Simtel más cercano, en el directorio /pub/simtelnet/gnu/djgpp/, o puede usar el zip picker de http://www.delorie.com/djgpp/. Por favor asegúrese de haber instalado correctamente djgpp según las instrucciones de readme.1st, y de que no está mezclándolo con ficheros de otros compiladores (ej: el make de Borland). =========================================== ============ Notas Allegro CVS ============ =========================================== Si está usando una versión CVS de Allegro, entonces necesitará hacer un par de cosillas adicionales para asegurar que su copia de Allegro compilará correctamente. Esto se cubre en detalle más abajo, pero en pocas palabras: 1. Debe ejecutar el script `fix' (ya sea el fichero bat, mediante el command.com, o el fichero .sh con bash). Debe usar el argumento `djgpp'. 2. Debe regenerar los ficheros de dependencias: un simple `make depend' hará lo necesario. No obstante, tenga en cuenta que necesita tener instalado el programa sed para realizar este paso. ============================================ ============ Instalando Allegro ============ ============================================ Esto es una distribución de código fuente, por lo que deberá compilar Allegro antes de poder usarlo. Para hacer esto deberá: Ir al sitio donde desea poner su copia de Allegro (el directorio principal del djgpp es válido, pero puede ponerlo en otro lugar si así lo desea), y descomprimir ahí todo. Allegro contiene varios subdirectorios, por lo que necesitará usar el parámetro -d si usa pkunzip. Si está en Linux, y desea realizar una compilazión cruzada para obtener la versión djgpp de Allegro, ajuste la variable de entorno "CROSSCOMPILE=1", haga que DJDIR apunte al directorio donde tiene instalado el compilador cruzado, modifique PATH para que pueda acceder al compilador cruzado, y apunte con NATIVEPATH a la ruta de su versión nativa del gcc (¡_no_ al compilador cruzado djgpp!) para que éste pueda ser invocado en la conversión de la documentación. Quizás quiera editar y usar `xmake.sh'; hay más intrucciones en los comentarios de ese mismo fichero. Teclee "cd allegro" seguido de "make". Entonces vaya a hacer algo interesante mientras todo se compila. Cuando acabe la compilación, teclee "make install" para que pueda usar la librería. Si ha tenido algún problema con la compilación, mire en docs/txt/faq.txt para obtener las soluciones a algunos de los problemas más comunes. Si además desea instalar la versión de depuración de la librería (altamente recomendado), teclee ahora "make install DEBUGMODE=1". ¡Las mayúsculas son importantes, por lo que debe ser DEBUGMODE, no debugmode! Si además desea instalar la versión para medir rendimiento de la librería, teclee ahora "make install PROFILEMODE=1". Si desea leer la documentación de Allegro desde el sistema de ayuda online de Rhide, vaya al menú "Help / Syntax help / Files to search", y añada "allegro" tras la entrada "libc" existente (separando con un espacio). Si desea crear la documentación HTML como un gran fichero allegro.html en lugar de separarlo en secciones, modifique docs/allegro._tx, y borre la línea 8 que contiene el comando @multiplefiles, y ejecute make de nuevo. Una vez el proceso de compilación haya terminado puede recuperar algo de espacio del disco duro ejecutando "make compress" (que usa los programas DJP o UPX para comprimir los ficheros ejecutables), y/o "make clean" (para deshacerse de todos los ficheros temporales y documentación en formato HTML). Si su copia de Allegro está configurada para ser usada por otro compilador (si descargó un archivo tar.gz o una versión CVS), deberá ejecutar 'fix.bat djgpp' antes de compilar. Si está usando bash puede ejecutar en su lugar 'fix.sh djgpp'. Si su copia de Allegro no incluye los ficheros de dependencia makefile.dep (si por ejemplo ha ejecutado "make veryclean" o tiene la versión CVS), puede regenerarlos ejecutando "make depend". Si `make' le dice que necesita descargar un nuevo paquete, o si necesita el paquete `sed' para generar las dependencias, puede encontrar éstos en: ftp://ftp.demon.co.uk/pub/mirrors/simtelnet/gnu/djgpp/ Una lista de todas las opciones disponibles: CROSSCOMPILE Active esto si está realizando compilación cruzada; implica UNIX_TOOLS. WARNMODE Active esto si desea que Allegro muestre casi todos los mensajes de aviso del compilador. Allegro debería poder compilar correctamente con esta opción activada. TARGET_ARCH_COMPAT o TARGET_ARCH_EXCL Estos afectan al nivel de optimización dependiente del procesador que puede usar Allegro. Puede ajustar cualquiera de estas opciones al tipo de procesador para el cual desea optimizar. La diferencia entre los dos es que TARGET_ARCH_COMPAT optimizará el código para el procesador indicado permitiendo que el código funcione también en procesadores más antiguos, mientras que TARGET_ARCH_EXCL generará código que funcionará exclusivamente en el procesador indicado y versiones posteriores. Ejemplo: set TARGET_ARCH_COMPAT=i686 TARGET_OPTS Afecta las optimizaciones generales que usa Allegro. UNIX_TOOLS Si su sistema no tiene las herramientas DOS habituales disponibles `md', `rd', `copy', etc., y comandos que entienden el carácter \), entonces active esto a 1 para usar las equivalentes de unix. Esto se activa implícitamente si ha activado CROSSCOMPILE, y también es activado automáticamente si está ejecutando bash. Para activar cualquiera de estas, teclee (por ejemplo) "make WARNMODE=1". ======================================== ============ Usando Allegro ============ ======================================== Todas las funciones, variables y estructuras de datos están definidas en allegro.h. Debe incluír esto en sus programas, y enlazar con una de las librerías Allegro, la optimizada liballeg.a, la de depuración liballd.a, o la de medir rendimientos liballp.a. Para esto debería: Poner la siguiente línea al comienzo de sus ficheros C o C++ que usen Allegro: #include Si compila desde la línea de comando o con un makefile, añada al final de la línea de comando '-lalleg' (para la versión optimizada), '-lalld' (para la versión de depuración), o '-lallp' (para medir rendimientos): gcc foo.c -o foo.exe -lalleg Si está usando Rhide, vaya al menú Options/Libraries, y teclee en el primer espacio libre 'alleg' (para la versión optimizada), 'alld' (versión para depurar), o 'allp' (para medir rendimientos), y asegúrese de que el recuadro que está al lado está marcado. ============================================ ============ Hardware soportado ============ ============================================ Lo mínimo que necesita para usar Allegro es un 386 con una tarjeta de vídeo VGA, pero un 486 es muy recomendado. Para alcanzar los modos SVGA necesitará una tarjeta compatible SVGA, es decir, una tarjeta que funcione con un controlador VESA o VBE/AF. Idealmente debería usar VBE/AF, ya que permite a Allegro usar las funciones de aceleración por hardware para dibuajar. El proyecto FreeBE/AF (http://www.talula.demon.co.uk/freebe/) da un número de controladores VBE/AF gratis (¡los voluntarios siempre pueden hacer más controladores!), y un número grande de controladores acelerados por hardware están disponibles comercialmente como parte del pack SciTech Display Doctor (http://www.scitechsoft.com/). Si tiene un controlador VBE 2.0 o VBE 3.0 quizás no necesite más, pero no tendrá aceleración por hardware como la que permite el controlador VBE/AF. Si tiene una implementeción VESA antigua (ej: VESA 1.2), tenga cuidado. Por un lado, todo será mucho más lento que cuando Allegro puede usar las características sexys del controlador VBE 2.0. Por otro lado, podría hablarle todo el día de historias horribles sobre las implementaciones con fallos y generalmente patéticas que me he encontrado. Si tiene problemas con los modos SVGA, pruebe conseguir una copia del SciTech Display Doctor y mire si soluciona sus problemas (seguramente lo hará: SciTech suele hacer estas cosas bien). Tenga en cuenta que los controladores de chipsets SVGA nativos se han borrado de la biblioteca Allegro. Todavía están disponibles como un paquete adicional que puede conseguir del mismo sitio que Allegro, pero ya no son necesarios porque puede obtener el mismo código en un formato más flexible como parte del proyecto FreeBE/AF. En la parte de sonido, Allegro soporta la reproducción de samples en la SB (mono), SB Pro (estéreo), SB16, ESS Audiodrive y Ensoniq Soundscape. Tiene controladores MIDI para el sintetizador FM OPL2 (tarjetas Adlib y SB), OPL3 (Adlib Gold, SB Pro-II y superiores), el par de chips OPL2 de la SB Pro-I, el chip EMU8000 de la AWE32, la salida MIDI SB pura, y el interfaz MPU-401, y además puede emular un sintetizador MIDI wavetable por software, corriendo sobre cualquiera de las tarjetas digitales soportadas. Las tarjetas SB PCI-64 y PCI-128 de Creative Labs están basadas en el chip de Ensoniq, por lo que pueden ser usadas con el controlador de Soundscape y MPU-401. Sin embargo, tendrá que seleccionar el MPU manualmente, ya que no será autodetectado. Actualmente, muchas tarjetas de tabla de ondas emulan el MPU, por lo que intente esto y mire si funciona en su tarjeta. Si tiene ganas de aportar más controladores para otro hardware, serán bienvenidos. La grabación de audio está soportada por todas las SB, pero sólo en modo unidireccional, es decir, no puede grabar y reproducir samples a la vez. La entrada MIDI se consique con los controladores MPU-401 y SB MIDI, pero hay ciertas restricciones con esto. La interfaz SB MIDI no puede ser usada al mismo tiempo que un sistema de sonido digital, y MPU sólo funcionará si hay un IRQ libre (esto será el caso si tienes una SB16 o superior, o si no instala ningún controlador de sonido digital tipo SB, o si su interfaz MIDI usa un IRQ diferente al de la SB). ============================================== ============ Notas pare el músico ============ ============================================== El chip sintético OPL2 puede manejar nueve voces en polifonía o seis voces más cinco canales de tambores. El cómo hacer que la música suene bien en un OPL2 se deja a ejercicio del lector :-) En una SB Pro o superior, tendrá dieciocho voces, o quince más tambores. Allegro decide si usar el modo con tambores individualmente para cada fichero MIDI, basándose en si éste contiene tambores o no. Si tienes una pieza orquestral con el típico platillo, sería buena idea quitarlo para que Allegro use el modo sin tambores para darle tres notas extra de polifonía. Cuando Allegro está reproduciendo un fichero MIDI en modo loop, salta al comienzo del fichero cuando llega al final. Para controlar exactamente el punto de loop, necesitará insertar una marca de evento como un mensaje de control en un canal que no usa. Todos los chips OPL tienen una capacidad estéreo muy limitada. En un OPL2, todo es reproducido en mono. En la SB Pro-I, los sonidos sólo pueden panoramizarse totalmente a la izquierda o a la derecha. Con el chip OPL3 de la SB Pro-II y superiores, el sonido puede panoramizarse a la izquierda, derecha o centro. Podría usar dos voces por nota para proveer una panoramización más flexible, pero eso reduciría la polifonía y no deseo hacer eso. Por lo que no intente mover el sonido en estéreo con mensajes de control de panoramización, porque darán unos saltos horribles. También merece la pena considerar la panoramización sw cada canal para que la música suene bien en tarjetas SB Pro-I y OPL3. Si quiere un sonido panoramizado a la izquierda o derecha, usa un valor de pan menor de 48 o mayor de 80. Si lo quiere centrado, use un valor de pan entre 48 y 80, pero póngalo ligeramente en un lado del centro 64, para controlar qué altavoz será usado si la panoramización central no es posible.