Si la respuesta no esta aquí, pregunte y será añadida...
Lea readme.txt
De cualquier mirror de SimTel, en el directorio gnu/djgpp/v2tk/, o desde la página web de Allegro, http://www.talula.demon.co.uk/allegro/.
Lea allegro.txt.
Una versión DOS del compilador GNU C/C++, por DJ Delorie y compañía. Gran producto...
De cualquier mirror SimTel, en el directorio gnu/djgpp/, o desde la página web de DJ, http://www.delorie.com/djgpp/.
Lea el fichero readme.1st que viene con djgpp. La mayoría de los problemas que la gente tiene con Allegro son a causa de una instalación incorrecta de djgpp, ¡por favor, asegúrese de leer el fichero!
Make es parte de la distribución estándar de djgpp, en v2gnu/mak*b.zip (el numero de la ultima versión). Debería poder conseguirlo desde donde consiguió djgpp.
¿Está seguro de que tiene djgpp instalado correctamente? Chequee las instrucciones del fichero de djgpp readme.1st, y en particular cuide haber fijado la variable de entorno de DJGPP y añada el directorio djgpp\bin a su path.
¿Está seguro de estar usando el programa make de GNU, en vez de algún otro como el de Borland? Si no lo sabe, ejecute "make -v" y chequee el mensaje de copyright de GNU que debería aparecer.
¡No debería ejecutar make desde el explorador de Win95! Abra una sesión de DOS, vaya al directorio de Allegro, y ejecute "make" desde la línea de comandos.
¿Seguro que tiene la fecha del sistema ajustada correctamente?
Tal y como el mensaje de error sugiere, necesita liberar más memoria para el compilador. El programa go32-v2 le dirá cuanta tiene disponible. Si está en DOS, intente liberar espacio de disco duro para los ficheros temporales. Bajo win95, incremente el límite de memoria DPMI en las propiedades de su sesión DOS: mire el FAQ de djgpp en la sección 15.6.
Esto parece un problema con el enlazador sustituto del paquete RSXNTDJ. O vuelve a usar el enlazador estándar djgpp, o tendrá que quitar la bandera "-s" del makefile de Allegro. ¡Si alguien sabe por que sucede esto, y como puedo solucionarlo, me gustaría saberlo!
No ha leído los manuales, ¿lo hizo? :-) Necesita enlazar su programa con la biblioteca de funciones, liballeg.a. Primero, asegúrese de que ha instalado todo correctamente (ejecutar make debería hacer esto por usted). Segundo, si esta compilando desde la línea de comandos o desde un makefile, añada "-lalleg" al final de su línea de comando de gcc, o si esta usando Rhide, vaya al menú Options/Libraries, entonces teclee 'alleg' en la primera línea vacía, y asegúrese de que la caja al lado esta marcada.
El grabber debe ser enlazado con el código en datedit.c. Pero no se debería preocupar por hacer esto a mano: simplemente ejecute "make" y eso recompilará todo para usted.
No, lo siento. Para empezar, liballeg.a ocupa unos 450k, pero probablemente querrá varias utilidades como el grabber, la configuración de sonido, etc. ¿Y que hay de los programas de ejemplo? Si incluyese la versión compilada de todo, la distribución binaria sobrepasaría las 7 megas: ¡demasiado grande para ser práctico! Pero seriamente, no hay ninguna razón por la que no pueda compilar la librería usted mismo. El compilado de un programa es un proceso determinado: dado un fichero de entrada particular y una línea de comando, siempre producirá la misma salida. Si esto no funciona, o tiene ficheros de entrada incorrectos (su copia de Allegro esta estropeada en algún sentido), o la línea de comandos es incorrecta (es difícil que eso suceda, ya que solo tiene que teclear "make"...) o su compilador está estropeado, por ejemplo, si no instala djgpp correctamente. Necesita solucionar el problema en vez de ocultarlo bajo la alfombra consiguiendo que otro compile Allegro por usted...
De ningún modo.
Si. Hay versiones que se ejecutan bajo win32 usando DirectX, y bajo el sustema X-Window de Linux. Busque en la página de Allegro enlaces a estas versiones, y la última información sobre otras versiones que están siendo creadas.
Las respuestas pueden variar. Algunas personas dicen que hay problemas, mientras que otras dicen que todo funciona bien. Personalmente no tengo acceso a NT, por lo que no hay nada que pueda hacer por esto, y para ser sincero, no me importa mucho :-) Si quiere ejecutar programas DOS, ¡use el DOS!
Si, pero con problemas. Si está usando la versión OpenDOS de EMM386, debe desactivar su implementación DPMI (especifica DPMI=OFF en la línea del driver EMM386.EXE de tu config.sys). También debería acordarse de activar la bandera PIC=OFF, pero ese es el estado por defecto, por lo que no habría problemas con ello a no ser que lo haya cambiado antes.
WIP significa "en construcción", y se refiere a los cambios más recientes desde la última versión oficial. Las versiones WIP pueden ser obtenidas como parches de la web de Allegro, y son normalmente bastante estables, pero obviamente no tan bien probados como una versión final.
¿Tiene una copia de patch.exe? Si no, vaya a conseguirla del mismo lugar que consiguió el resto de djgpp: es una herramienta estándar de la distribución del compilador. Si tiene el programa patch pero no funciona correctamente, asegurese de que está instalando el parche encima de la versión no modificada de Allegro que esté intentando actualizar. (esta normalmente es la versión oficial más reciente antes de la WIP, pero compruebe el fichero de texto que viene con la WIP para estar seguro).
No puede. El limite esta impuesto por el hardware de la VGA, no por Allegro. Para acceder a mas de 256k de memoria de vídeo necesita usar un modo SVGA, lo que quiere decir que debe cambiar de resolución o conseguir una copia de UniVBA, que proporciona acceso a varias resoluciones bajas en modo SVGA.
Por supuesto: ¡así es como funciona el hardware de video! Sólo puede haber una paleta de colores usada en un mismo momento. O convierte sus imágenes para que usen la misma paleta o cambia a un modo gráfico truecolor.
Busque en la página web de Allegro algunas utilidades, como por ejemplo FixPal y Smacker.
El hardware de la VGA solo usa 6 bits para cada componente del color, lo que significa que los valores de los colores rojo, verde y azul van desde 0 a 63 en la paleta de colores, sin llegar a 255. Esto le da un potencial de 2^18 = 262144 colores diferentes o 64 tonos de gris. Si necesitas más, puede usar la función de la VESA 0x4F08 para seleccionar un ancho de DAC de 8 bits, pero Allegro no soporta esto directamente, y no se si esto se podría hacer en diferentes ordenadores con hardware diferente.
Cuando está en un modo de 256 colores, la tarjeta VGA muestra el color #0 alrededor del área de visualización (en modos truecolor usa el color negro). El color desaparecerá en cuanto cambie la entrada #0 de su paleta de colores para que sea negra.
Buque en la página web de Allegro algunas utilidades, como por ejemplo DTA y Smacker.
En su programa de dibujo favorito, busque las barras de desplazamiento RGB y arrastre las barras roja y azul tan alto como pueda (normalmente hasta 255, pero depende de las unidades que use el software), y la barra verde a cero. Esto creará una sombra de rosa fucsia, o como otras personas prefieren llamarlo, magenta.
Alguno de los objetos GUI ha cambiado el valor de text_mode mientras se estaba dibujando a sí mismo. Llame text_mode() otra vez para seleccionar el color de fondo que desee usar.
Recuerde que las posiciones de los vértices son almacenadas en formato de punto fijo, debe usar la macro itofix() para desplazar sus coordenadas 16 bits a la izquierda.
Recuerde que el ángulo de rotación es almacenado en formato de punto fijo, por lo que debe usar la macro itofix() o desplazar sus coordenadas 16 bits a la izquierda. Por ejemplo, rotate_sprite(bmp, spr, x, y, itofix(32)) rotará el gráfico 45 grados.
Depende de lo que esté haciendo. Si sus imágenes son totalmente opacas, no habrá ventaja al usar un sprite RLE, y probablemente será más rápido si usa la función blit(). Si su gráfico tiene áreas transparentes, un sprite RLE será casi siempre más rápido y pequeño que la función draw_sprite(). Los sprites compilados son por regla general un poco más rápidos que las otras funciones para imágenes transparentes y bastante más rápidas para gráficos opacos, pero esto puede variar. Se usan mejor con sprites pequeños en máquinas antiguas en modo-x, y podrían ser más lentos que blit() si los usas en modos de vídeo SVGA en un pentium (el gran tamaño de los sprites compilados afecta severamente la efectividad del cache).
Debe asegurarse que la lógica de su juego se actualiza a una velocidad constante, pero se salta el refresco de la pantalla de vez en cuando si el ordenador es muy lento. Esto puede hacerse instalando un temporizador que incrementará una variable global a la velocidad de la lógica de su juego, eg:
volatile int speed_counter = 0;void increment_speed_counter() { speed_counter++; }
END_OF_FUNCTION(increment_speed_counter);
void play_the_game() { LOCK_VARIABLE(speed_counter); LOCK_FUNCTION(increment_speed_counter);
install_int_ex(increment_speed_counter, BPS_TO_TIMER(60));
while (!game_over) { while (speed_counter > 0) { update_game_logic(); speed_counter--; }
update_display(); } }
Añada una llamada a save_bitmap() en alguna parte del código. Lea en la documentación de save_bitmap() una explicación de uno de los fallos más comunes al usar la función, y un poco de código fuente.
Llame srandom(time(NULL)) al principio de su programa, y entonces use random()%límite para obtener un número pseudo-aleatorio entre 0 y límite-1.
La interfaz VBE/AF ya lo hace para los controladores gráficos: mire el proyecto FreeBE/AF en http://www.talula.demon.co.uk/freebe/. Para cosas más generales como el sonido, VESA, y rutinas en modo-X, esto sería muy difícil de hacer porque los controladores dependen de bastantes funciones del código de la biblioteca. El formato djgpp DXE no es lo suficientemente flexible como para soportar esto, y no quiero hacer Allegro dependiente de otros paquetes de enlazado dinámico.
No hay necesidad de hacerlo. El enlazador sólo incluye partes de la biblioteca que realmente usa, por lo que si no llama ninguna de las rutinas de mapeado de texturas o reproducción de FLICs, éstas no se añadirán a su ejecutable. Esto no funciona perfectamente porque hay mucho código de Allegro que usa tabla de punteros a funciones que hacen que rutinas innecesarias se enlacen con tu código, por lo que la mayoría de las funciones de gráficos serán incluidas en cada ejecutable, pero he intentado reducir esto al mínimo. Mire allegro.txt para más información sobre métodos precisos para quitar algunos controladores de gráficos y sonido.
No. Creo que este tipo de soporte hardware sería mucho más util como parte de un API 3D, cosa que Allegro no es (y nunca será). Si quiere trabajar en esto, la biblioteca MESA (una implementación libre de OpenGL) es en mi opinión el lugar a mirar.
Ya existen varias muy buenas actualmente, por ejemplo el paquete JGMOD. Siga los enlaces de la página web de Allegro. No se le permite que sugiera que alguna de las bibliotecas existentes sea incluída en Allegro, porque este tópico ha sido discutido hasta la muerte en la lista de correo y estoy cansado de él.
Eso sería un montón de trabajo, y no tengo tiempo para hacerlo. Hay varios paquetes de soporte de red actualmente en desarrollo o flotando por la red, y en mi opinión este tipo de código es más útil como biblioteca externa que como parte de Allegro.
Unisys tiene la patente en el algoritmo de compresión LZW que es usado en el formato GIF. Quiero que Allegro sea totalmente libre y sin restricciones, lo que significa que no puedo incluir ningún código que haya que licenciar o pagar por derechos de autor.
Funciona para algunas personas, y no para otras. El problema es que Creative Labs se niega a proveer información técnica sobre la tarjeta, por lo que no sabemos como escribir un controlador para esa tarjeta. Quéjese a ellos, o compre una tarjeta diferente de un fabricante más razonable.
Esto puede deberse a que no tiene el volumen de sonido ajustado correctamente: intente cambiar esto desde el programa setup. Además, Allegro mezcla varios sonidos en un solo buffer de salida, a diferencia de los reproductores de Windows que sólo reproducen un sonido a la vez, por lo que cada sonido individual recibe sólo un porcentaje del volumen total de salida. Esto es el precio que hay que pagar por múltiples canales de salida. Si no le gusta, use el programa setup para modificar el número de canales de su tarjeta de sonido: esto puede ser un número potencia de dos, menor o igual a 64, y cuanto más pequeño sea, más alto será el volumen de salida.
Pruebe usando un controlador FreeBE/AF (http://www.talula.democ.co.uk/freebe/), o el programa comercial SciTech Display Doctor (http://www.scitechsoft.com). Si sigue sin funcionar, mande una descripción del problema a la lista de correo de Allegro, junto con una copia de los datos que muestran los programas afinfo y vesainfo.
Quizás. Intente aislar el fragmento de código mas pequeño que es capaz de reproducir el problema, y lo mirare. Si puede mandarme un programa de 10 líneas, lo solucionaré. Probablemente podría solucionar uno de 100 líneas. 1000, y no tengo ninguna oportunidad :-)
Claro. Mire las condiciones giftware de readme.txt. No me importa lo que haga con él, y no hay problemas con el uso comercial. El mandarme una copia de su programa cumplirá satisfactoriamente el requerimiento swapware...
¡Cuando este acabado! Los ánimos son bienvenidos, pero no tengo fechas fijas de lanzamiento y no voy a hacer una para usted. Tan pronto como este hecho, será puesto al público.
Grabber puede importarlas directamente de ficheros .fnt con formato GRX o BIOS, o puede dibujarlas usted en una imagen .pcx con cualquier programa. Busque en la página de Allegro una utilidad (ttf2pcx) que convierte fuentes Windows TrueType a formato .pcx.
En la página web de Allegro hay algunos links. Puede usar los patches de la Gravis (formato .pat), o ficheros SoundFont 2.0 (.sf2), pero éstos últimos deberán ser convertidos a un fichero patches.dat con la utilidad pat2dat.
Necesita la utilidad de conversión makertf (ftp://ftp.coast.net/Coast/win3/winhelp/mkrtf104.zip), y el compilador de Ayuda Windows (ftp://ftp.microsoft.com/Softlib/MSLFILES/HC505.EXE). Cree un directorio temporal, copie ahí el fichero allegro.txi del directorio allegro/docs, y ejecute los comandos "makertf --no-warn allegro.txi -o allegro.rtf -J allegro.hpj" seguido de "hcp allegro.hpj". El segundo comando dará muchos errores, pero pueden ser ignorados con tranquilidad.
El fichero allegro.rtf puede ser leído directamente por Microsoft Word e impreso desde ahí, pero debería pinchar con el botón derecho y actualizar los cambos de la tabla de contenido e índice para que primero sean rellenados con datos correctos. Alternativamente puede instalar el pack TeX y usar los programas tex y dvips para contertir allegro.txi en formato Postscript.
Mire la página web de Allegro, http://www.talula.demon.co.uk/allegro/. Si tiene algo que añadir a esto, ¡por favor, mándeme la URL!
Es la forma mas simple de actualizar su programa, en caso de que haya que cambiar el valor de PI. Esto también hará su programa más portable a otros compiladores que usen otros valores de PI.
Mire http://www.talula.demon.co.uk/allegro/maillist.html.