Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: DCelso on February 25, 2013, 08:55:46 AM

Title: Compilar BennuGD en linux
Post by: DCelso on February 25, 2013, 08:55:46 AM
Hola a todos,
Me he descargado del SVN la última versión de bennuGD, no he encontrado ningún readme que me diga como compilarlo.
He intuido que podría hacerse con el script build-linux.sh.
Al ejecutarlo me da error de que no hay ningún makefile.
Al editarlo vi que hay un case que busca por release, así que
Al ejecutar el script con la palabra release detrás me dice que no tengo permisos para ejecutar ./configure
Así que doy permisos de ejecución con chmod +x $(find . -name configure)
Ahora parece que hace algo pero empieza a dar los problemas de librerías, a ver si las resuelvo todas y consigo mi binario linux.
Pero estaría bien que hubiera un how to compile por algún lado, hace tiempo que no compilaba bennu y soy torpón y no me acuerdo de todos los pasos que hay que hacer y de todo lo que hay que descargar de una vez para otra :'(.

Title: Re:Compilar BennuGD en linux
Post by: FreeYourMind on February 25, 2013, 10:13:21 AM
ya que te aburres no me quieres echar un cable con el compilador de bennu para c# y de paso te metes en ese mundillo ? ;)
Title: Re:Compilar BennuGD en linux
Post by: DCelso on February 25, 2013, 10:24:49 AM
 :o , solo instale libcripto, (que por cierto está en libssl-dev, yo erróneamente instalé libcrypto++-dev para nada ) y listo, a compilar que da gusto.

Al final tuve que añadir al path y al ld_library_path (en $HOME/.bashrc)la ruta $HOME/src/bennugd/bin/gnu-linux, para poder ejecutar desde cualquier lado el bgdi.

SpliterGU, podrías añadir al los scripsh de compilación que en vez de ejecutar  compile con ./compile , ejecuartlo con ". ./compile" es un punto y un espacio delante, esto hace que aunque no tenga permisos de ejecución pueda ejecutar el script. Lo digo porque al bajarse los archivos de SVN se pierde ese permiso :'(, y ésto facilitaría su ejecución.

Free, umh, me prometí a mi mismo, nunca usar c#, por ser competencia directa de mi querido JAVA, :D, pero eso eran otros tiempos.
A ver, que necesitaría y que pautas debería seguir para realizar ello?. Te recuerdo que mi SO es debian y desconozco al 99% C#, solo sé que existe :D. Por cierto, existe wrapper SDL para c#?

Title: Re:Compilar BennuGD en linux
Post by: DCelso on February 25, 2013, 10:43:01 AM
SplinterGU, estoy probando el build-win32-cross.sh, lo primero que hice fue instalarm el mingw32.
Ahora al ejecutarlo me pide Zlib, ¿Como creo u obtengo la libreria zlib para este compilador cruzado?
Gracias de anemano,

Title: Re:Compilar BennuGD en linux
Post by: FreeYourMind on February 25, 2013, 10:45:45 AM
amigo, claro que existe el wrapper, seria la solucion para portar los modulos en una version muy muy avanzada, de momento tiramos de los modulos oficiales de C de windows por interop. por ahora con tener el compilador / interprete en c# seria suficiente y tendriamos la posibilidad de usar modulos de c# que es lo que realmente hace de este proyecto algo muy interesante, porque podriamos usar kinect por ejemplo :)

Recuerda que despues habria port a mono, para que no te enfades tanto con microsoft txDD

No tienes windows ? la idea es continuar el proyecto .net por ahora
Title: Re:Compilar BennuGD en linux
Post by: SplinterGU on February 25, 2013, 12:59:33 PM
no hombre, . ./lala lo que hace al correr un script y es heredar la ejecucion de este a la consola padre... eso no lo hare porque da mas problemas que solucion, ya que yo no quiero que me queden las variables seteadas en el bash que lance la ejecucion ni tampoco quiero que un exit me cierre la consola... ademas, eso no depende de mi, eso lo ejecutas tu como quieras.

si, falta un howto de como compilarlo, tampoco es tan complejo, solo instalar las libs que faltan y ya.
Title: Re:Compilar BennuGD en linux
Post by: DCelso on February 25, 2013, 06:46:53 PM
Ok, tu mandas Jefe, seguiremos así, total tampoco es que sea hacer gran cosa.
Bueno entonces como consigo las librerias para el mingw32 cruzado, ahora mismo me pide las zlib, claro yo tengo instaladas las zlib pero para linux, y el cross compiler me está pidiendo las zlibs pero para win32 y he buscado en todo el repositorio de debian y me he instalado todo lo relaccionado con mingw32 y nada aún sigue pidiéndomelas.
No se que hacer, tengo que descargarme el src del zlib y compilarlo cruzado. O me copio las de windows a pelo o como va esto, ¿Como lo haces tu? Gracias de antemano.
Title: Re:Compilar BennuGD en linux
Post by: SplinterGU on February 26, 2013, 01:00:07 AM
si mal no recuerdo, las zlib.dll estan en el directorio bin del mingw o algo asi, yo las copie a mano al directorio lib dentro de mingw.

la verdad que es todo un proceso instalar las dependencias.
Title: Re:Compilar BennuGD en linux
Post by: DCelso on March 16, 2013, 12:29:21 PM
bueno, todo esto venía a que quería dar soporte a las gamas olvidadas de DIV, porque actualmente, cuando abres un fpg,fnt,map de DIV en bennu y lo guardas, pierdes esa información, bennu las pone a 0. Así pues que hice un patch para que ésto no ocurra, bennu se comportará como siempre pero no perderemos nuestras gamas de color al usar bennu ;) .

SplinterGU, si quieres integrarlo en la rama oficial sería estupendo, échale un ojo a ver que te parece, he intentado ser fiel a toda tu programación por lo que la analogía del código nuevo será muy parecida a la que hay. Espero que te guste, si no, no pasa nada, puedes no integrarla claro.
La idea mía era que como ahora fpg-edit puede modificar las gamas, pues que no las perdiéramos al usar bennugd. No buscaba la retrocompatibilidad como primer objetivo, aunque se consiga. eh. Sé que a tí no te gustan esas cosas ;) .
Title: Re:Compilar BennuGD en linux
Post by: SplinterGU on March 16, 2013, 02:59:31 PM
no perjudica en nada lo que esta? si tengo un archivo de estos sin gamma no pasa nada? y si lo tengo, que funcionalidad le aporta a bennugd?
Title: Re:Compilar BennuGD en linux
Post by: DCelso on March 16, 2013, 06:37:02 PM
No pasa nada. Totalmente compatible. No afecta a naada. Solo añade a GRAPH un puntero a una estructura GAMUT, y luego al leer un fpg. Map o fnt la rellena en vez de ignorad los 576 bytes ,como hace ahora, y al guardar en vez de meter ceros, lee del GRAPH los 576 bytes y lod graba en el fichero.
Solo toca. Mod_map y gr_pal.c y gr_bitmap.c
miralo. Si quieres hago pruebas mas exaustivas antes. Con todo lo que me pidas.
Las gamas ya decia div que son un conjunto de colored para facilitar la edicion de maps. Por lo que el core no las usa para nada.
Title: Re:Compilar BennuGD en linux
Post by: DCelso on March 16, 2013, 11:49:10 PM
SplinterGU, perdona mi ignorancia en linux, pero como haces para que bgdi y bgdc busquen las .so en /usr/local/share/bennugd/lib.Yo no tengo  ld_library_path definida y no tengo esa ruta en ninguna variable de entorno ni siquiera en el path.  :o Nada, ya lo ví :D.
Title: Re:Compilar BennuGD en linux
Post by: SplinterGU on March 17, 2013, 12:05:48 AM
Quote from: DCelso on March 16, 2013, 06:37:02 PM
No pasa nada. Totalmente compatible. No afecta a naada. Solo añade a GRAPH un puntero a una estructura GAMUT, y luego al leer un fpg. Map o fnt la rellena en vez de ignorad los 576 bytes ,como hace ahora, y al guardar en vez de meter ceros, lee del GRAPH los 576 bytes y lod graba en el fichero.
Solo toca. Mod_map y gr_pal.c y gr_bitmap.c
miralo. Si quieres hago pruebas mas exaustivas antes. Con todo lo que me pidas.
Las gamas ya decia div que son un conjunto de colored para facilitar la edicion de maps. Por lo que el core no las usa para nada.

y si la gama no esta? o sea, cuando creo un fpg, mapa o lo que sea desde memoria?
Title: Re:Compilar BennuGD en linux
Post by: DCelso on March 17, 2013, 12:44:39 AM
Me he ido copiando de lo que haces con la paleta, (PALETTE), para lo que he necesitado (por ejemplo eso de hacer una lista con next y prev no  lo hice, ya que no lo vi necesario) por lo tanto hago todo lo que haces con ella, cuando creas un lo que sea nuevo en memoria estas llamando a gr_new, y este pone a NULL el puntero.

Luego cuando grabas a map, fpg, o fnt, si no existe la paleta pones una por defecto, y eso mismo hice yo con las gamas.

Las gamas  no dejan de ser un bytes "tontos" (576) que bennu, despreciaba o grababa a 0 que hay en fpgs,fnts y maps de 8 bits. Lo único que hice fue justo esa parta en la que hacias un fseek y te saltabas los 576, no hacer el fseek, sino leerlos y guardarlos en el grafico de memoria GRAPH, siempre copiandome de lo que haces con las paletas ( cada una de las 16 gamas DIV, son una seleccion de 32 colores ordenados de la paleta, por lo que no dejan de ser colores de paleta, o lo que es lo mismo, otra forma de ordenar colores de la paleta, además no sirven para nada en la ejecución de programas, solo sirven de apoyo para los editores de imágenes, estos editores muestran las gamas para acceder rapidamente a un color y pintar con el, vamos son como 16 paletas de usuario para un pintor ) 

luego al ecribir un fpg, o fnt o map lo que hacías era un menset a 0 de 576 bytes y los grababas y lo que hago yo es recuperar del GRAPH esos 576 bytes si existe y guardarlos y en caso de que no existan (es decir puntero gamuts a NULL) pues meter unas gamas por defecto. Las gamas por defecto que elegí son las que menos tocan los 576 bytes, o es decir, las que mas se aproximan a 576 ceros.

Por cierto, te adjunté el patch malo, es uno en el que cometí un tonto error de llamar a una j  i en un bucle, por lo que no funcionaba bien la lectura de gamas.
Te adjunto el bueno. si puedes borra el otro para no confundirnos

Title: Re:Compilar BennuGD en linux
Post by: SplinterGU on March 17, 2013, 01:12:27 AM
pasame tu fuente modificado en lugar del patch, yo luego comparo mejor asi...

con respecto al cuando no existe gama,  por favor, pon como ya estaba en bennugd originalmente... o sea, todos los bytes a 0... ah, y si puedes, si todos los bytes de la gamma son 0, pues no guardes la gama.... aunque esto ultimo no es muy importante...

ahh, y como sea, por favor, que esto de la gamma solo sea para los fpg/map/etc, formato DIV... los formato propios de fenix/bennugd, pues no los pongas, por favor... ya que en fenix/bennugd nunca estuvo esto.

y para la proxima incluire los cambios... gracias!
Title: Re:Compilar BennuGD en linux
Post by: DCelso on March 17, 2013, 01:36:29 AM
ok, splinter, las gamas se usan en 8 bits, al resto de profundidades no le afectan. Todos los cambios que inserté solo afectan a los formatos fnt,fpg y map de 8 bits, a ningún otro formato más, que siguen teniendo el comportamiento de siempre

Actualmente bennu en fpgs y maps  usa el formato 8 bits  de DIV, así que en fpgs se cumple lo que pides de que solo afecte a DIV.

En fnts, pues bennu usa dos formatos de 8 bits distintos uno el de magic 'fnt' que es el de DIV, y el formato de fenix con magic 'fnx' y version = 8. Y distinguir entre estos formatos para en uno hacer una cosa y en otro otra, acomplejaría el código fuente.

Lo de guardar todas la gamas a 0 por defecto, es mas o menos lo que hago, hago el memset a 0 que hacías hasta ahora, y luego a parte pongo 16 valores a 16 (y otros 16 al inicio de gama) que son lo mínimo para poner 16 gamas básicas. o sea que de los 576 bytes están solo 32 de ellos modificados. Y sigo comentandote que no afectan a ningún funcionamiento de bennu ni de ningún programa anterior. Además todos los fpgs,fnts,maps de 8 bits creados hasta el momento con gamas todo a 0, seguirán guardando todas sus gamas a 0, porque el codigo que metí respeta las gamas que están en los ficheros y solo pone la gama por defecto a los fnts,fpgs,maps creados desde cero desde bennu.

En serio mira el código, si algo no te gusta eres libre de cambiarlo, lo de poner las gamas todas a 0 no lo veo muy buena idea porque a bennu le da igual lo que contengan pero por ejemplo vendrían bien para editar las mas en fpg-editor o cualquier otro editor que de soporte a gamas como el del propio DIV, :'(, pero si es tu deseo el no meter gamas por defecto simplemente comenta o quita el bucle for que establece los 16 bytes a 16 de las gamas.

Te adjunto lo que me pediste.
Title: Re:Compilar BennuGD en linux
Post by: SplinterGU on March 17, 2013, 02:05:23 AM
vale, yo veo lo que haga falta... muchas gracias!
Title: Re:Compilar BennuGD en linux
Post by: DCelso on March 17, 2013, 02:45:21 AM
Nada, a mandar, desde de tiempos de fenix quise hacerlo, siento llegar tarde, en la época en la que se usaba mucho 8 bits hubiera sido de gran utilidad esto, ahora no es nada más que un vestigio. Aunque siempre habrá gente retro que siga usando 8 bits, como yo ;D.