Compilar BennuGD en linux

Started by DCelso, February 25, 2013, 08:55:46 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

DCelso

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 :'(.

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

FreeYourMind

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 ? ;)

DCelso

 :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#?

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

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,

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

FreeYourMind

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

SplinterGU

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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

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.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

#8
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 ;) .
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

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?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

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.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

#11
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.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

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?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

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

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

#14
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!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2