Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: FreeYourMind on July 14, 2014, 06:57:23 PM

Title: [GCW Zero] BennuGD
Post by: FreeYourMind on July 14, 2014, 06:57:23 PM
Hola.

1 - Antes de todo pedia una sección GCW Zero para Bennu, para runtime y juegos.

2 - El runtime bennuGD en esta consola viene incluido en el firmware, y es la ultima version. Aparte de esto estoy casi seguro que es una compilación Monolitica, la cual viene sin compilador y no admite modulos creados por nosotros (he hecho la prueba con un modulo compilado por mi, incluido a nivel del .dcb).

3 - Estoy compilando una versión para la consola, normal con modulos, incluido el compilador, ya que algunos compilados pueden tener problemas, y necesitamos compilar en la consola.


4 - El nuevo OS_ID que identifica la consola es el siguiente OS_ID = OS_GCWZERO o OS_ID = 1020.


5 - Ya casi lo tengo compilado, tengo el siguiente error, Splinter a ver si me puedes hechar un cable, parece ser problemas con la version de ZLIB:


-L/home/geca/Geca/MyProject/gcw0-toolchain/usr/lib -lz

/home/geca/Geca/MyProject/gcw0-toolchain/usr/bin/../lib/gcc/mipsel-gcw0-linux-uclibc/4.8.2/../../../../mipsel-gcw0-linux-uclibc/bin/ld: skipping incompatible /home/geca/Geca/MyProject/gcw0-toolchain/usr/lib/libz.so when searching for -lz

/home/geca/Geca/MyProject/gcw0-toolchain/usr/bin/../lib/gcc/mipsel-gcw0-linux-uclibc/4.8.2/../../../../mipsel-gcw0-linux-uclibc/bin/ld: skipping incompatible /home/geca/Geca/MyProject/gcw0-toolchain/usr/lib/libz.a when searching for -lz

c_main.o: In function `_dlibaddr':
c_main.c:(.text+0xf8): undefined reference to `dlsym'
c_main.c:(.text+0xfc): undefined reference to `dlsym'
c_main.c:(.text+0x110): undefined reference to `dladdr'
c_main.c:(.text+0x118): undefined reference to `dladdr'
c_main.c:(.text+0x1e4): undefined reference to `dlerror'
c_main.c:(.text+0x1e8): undefined reference to `dlerror'
c_main.o: In function `import_module':
c_main.c:(.text+0x1650): undefined reference to `dlopen'
c_main.c:(.text+0x1ad8): undefined reference to `dlclose'
c_main.c:(.text+0x1b34): undefined reference to `dlopen'
c_main.c:(.text+0x1bdc): undefined reference to `dlclose'
c_main.c:(.text+0x1c14): undefined reference to `dlerror'
c_main.c:(.text+0x1c40): undefined reference to `dlclose'
c_main.c:(.text+0x1c54): undefined reference to `dlerror'
c_main.c:(.text+0x1c98): undefined reference to `dlclose'
c_main.c:(.text+0x163c): undefined reference to `dlopen'
c_main.c:(.text+0x1ac0): undefined reference to `dlclose'
c_main.c:(.text+0x1b30): undefined reference to `dlopen'
c_main.c:(.text+0x1bd8): undefined reference to `dlclose'
c_main.c:(.text+0x1c10): undefined reference to `dlerror'
c_main.c:(.text+0x1c30): undefined reference to `dlclose'
c_main.c:(.text+0x1c50): undefined reference to `dlerror'
c_main.c:(.text+0x1c94): undefined reference to `dlclose'
b_crypt.o: In function `crypt_create':
b_crypt.c:(.text+0x5c): undefined reference to `DES_key_sched'
b_crypt.c:(.text+0x64): undefined reference to `DES_key_sched'
b_crypt.c:(.text+0x74): undefined reference to `DES_key_sched'
b_crypt.c:(.text+0x7c): undefined reference to `DES_key_sched'
b_crypt.c:(.text+0x8c): undefined reference to `DES_key_sched'
b_crypt.o:b_crypt.c:(.text+0x94): more undefined references to `DES_key_sched' follow
b_crypt.o: In function `crypt_data':
b_crypt.c:(.text+0x190): undefined reference to `DES_ecb_encrypt'
b_crypt.c:(.text+0x19c): undefined reference to `DES_ecb_encrypt'
b_crypt.c:(.text+0x1b0): undefined reference to `DES_ecb_encrypt'
b_crypt.c:(.text+0x1c4): undefined reference to `DES_ecb_encrypt'
b_crypt.c:(.text+0x1d0): undefined reference to `DES_ecb_encrypt'
b_crypt.o:b_crypt.c:(.text+0x1e4): more undefined references to `DES_ecb_encrypt' follow
collect2: error: ld returned 1 exit status


Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 14, 2014, 07:46:43 PM
las libs ya estan localizadas, estaba mal la ruta de las libs, ahora tengo sólo los errores del main (undefined reference)
Title: Re:[GCW Zero] BennuGD
Post by: SplinterGU on July 14, 2014, 08:02:56 PM
te faltan la libcrypto y la libdl...

agrega detras de -lz esto

-lcrypto -ldl

si no tenes la crypto proba con

-ldes -ldl

la verdad que no me acuerdo si es des o crypto

por otro lado, que buena noticia que venga bennugd en el firmware...

como sabes que es la monolitica, no tiene por ejemplo libmod_video.so ?

has un

find / -name 'libmod_video.so'

a ver que sale... si es un busybox, agrega delante del find la palabra busybox

asi

busybox find / -name 'libmod_video.so'
Title: Re:[GCW Zero] BennuGD
Post by: SplinterGU on July 14, 2014, 08:03:53 PM
un modulo incluido a nivel dcb? no entiendo eso.
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 14, 2014, 08:25:52 PM
le pase la lista de modulos a un responsable del firmware y me dijo que sólo llebaba el bgdi, estoy pendiente de sacarlo usando telnet y comprobar su tamaño para salir de dudas.

me refiero a poner el modulo compilado junto al dcb, porque por defecto bennu busca los modulos tambien en la raiz cierto ? la version monolitica no busca modulos externos cierto ?
Title: Re:[GCW Zero] BennuGD
Post by: SplinterGU on July 14, 2014, 09:00:14 PM
creo que si, creo que inclui esa feature...
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 14, 2014, 09:09:41 PM
en que makefile o fichero de config (carpeta) tengo que poner la llamada a las nuevas libs ?
Title: Re:[GCW Zero] BennuGD
Post by: SplinterGU on July 14, 2014, 09:18:11 PM
donde dice -lz
Title: Re:[GCW Zero] BennuGD
Post by: Kloppix on July 15, 2014, 12:17:26 AM
Quote from: FreeYourMind on July 14, 2014, 06:57:23 PM
1 - Antes de todo pedia una sección GCW Zero para Bennu, para runtime y juegos.

+1

Muchisimas gracias por portar el compilador, Free.  :)
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 15, 2014, 04:03:54 AM
Quote from: SplinterGU on July 14, 2014, 09:18:11 PM
donde dice -lz


jajajajaj, hasta ahi habia llegado pero era para no buscar entre carpetas, imagina que tengo que ponerlo, eso va afectar las demas compilaciones, deberia poder ponerse en el .sh principal de esta plataforma y asi no afectar a los demás
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 15, 2014, 04:25:15 AM
el -lz sale en los makefiles generados, necesito saber que fichero debo modificar de todos los ficheros de configuracion que hay
Title: Re:[GCW Zero] BennuGD
Post by: SplinterGU on July 15, 2014, 01:42:07 PM
no se que fichero tenes que modificar, no se que version/trunk/rama tenes... tampoco importa mucho... solo lo tenes que meter en los lugares donde tiene -lz en los fuentes de bennugd...

que importa si afecta a otras plataformas, copia la rama entera a otro directorio, modifica ahi y listo.
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 15, 2014, 08:56:49 PM
El que falla es el compilador, c_main.o requiere las libs esas.

Cual la forma mas facil de quitar el bgdc del makefile, para que no lo llame ?

Podias ayudarme un poco a entender los ficheros de configuracion, los makefiles y config.status son modificados en tiempo de compilacion y es donde encuentro las llamadas a la libs y tambien a la carpeta del bgdc.

Podias ayudarme y decirme que ficheros debo modificar y donde buscar el bgdc y las libs y que esas modificaciones son las que en tiempo real van a generar los makefiles y config.status, estoy perdiendo el tiempo, y no te estoy pidiendo la luna, me dices para buscar todos los -lz y sabes perfectamente que muchos ficheros se modifican en tiempo de compilacion y son ficheros en los que no debo perder el tiempo...
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 15, 2014, 09:05:47 PM
ya lo he descubierto... son los ficheros configure.

El bgdrtm.so tambien necesita las libs estas, tendre que seguir mirando el tema de las libs...
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 15, 2014, 09:28:33 PM
Resuelto:

Modificar archivo bennugd/core/configure:

substituir linea

ZLIBS="-lz" 

por

ZLIBS="-lz -lcrypto -ldl"


Ahora tengo lo siguiente:

checking for SDL - version >= 1.2.0... no
*** The sdl-config script installed by SDL could not be found
*** If SDL was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the SDL_CONFIG environment variable to the
*** full path to sdl-config.
configure: error: *** SDL version 1.2.0 not found!
*** ABORT ***
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 15, 2014, 10:34:18 PM
Arreglado path al sdl-config....


Ahora el siguiente error, es un no acabar  ;D


file_png.c:287:37: error: 'png_info' no tiene un miembro llamado 'trans_values'
                ( ptr8[0] == info_ptr->trans_values.red   ) &&
                                     ^
file_png.c:288:34: error: 'png_info' no tiene un miembro llamado 'trans_values'
             ( ptr8[1] == info_ptr->trans_values.green ) &&
                                  ^
file_png.c:289:34: error: 'png_info' no tiene un miembro llamado 'trans_values'
             ( ptr8[2] == info_ptr->trans_values.blue  )
Title: Re:[GCW Zero] BennuGD
Post by: SplinterGU on July 16, 2014, 12:40:16 AM
esos fuentes no son los ultimos... eso ya esta fixeado...
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 16, 2014, 02:46:57 AM
No lo son pero es una version estable y que compila, ya  que fué la primera que porte a Pandora...
Title: Re:[GCW Zero] BennuGD
Post by: SplinterGU on July 16, 2014, 03:15:55 AM
nop, no compila... no es compatible con la nueva libpng... por eso no compila.

toma el file_png del oficial o modificalo en base al oficial.
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 16, 2014, 03:17:59 AM
gracias, eso haré
Title: Re:[GCW Zero] BennuGD
Post by: SplinterGU on July 16, 2014, 03:30:16 AM
de nada... avisa cualquier cosa
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 16, 2014, 04:01:11 AM
currando a las 5 de la mañana antes de salir al curro xDDD

He cambiado la mod_map por la ultima, tengo el mismo error, creo que el error esta en la version de la pnglib del toolchain, en este codigo de DC Elso:


/* DCelso */
#if (PNG_LIBPNG_VER>=10500)
                 if (( color == PNG_COLOR_TYPE_RGB ) && ( png_get_bit_depth(png_ptr, info_ptr) == 24 ) && ( png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ))
#else
                 if (( color == PNG_COLOR_TYPE_RGB ) && ( info_ptr->pixel_depth == 24 ) && ( info_ptr->valid & PNG_INFO_tRNS ))
#endif
                 {
                     uint8_t * ptr8 = (uint8_t *)orig;
                     if (
#if (PNG_LIBPNG_VER>=10500)
                         ( ptr8[0] == trans_color->red   ) &&
                         ( ptr8[1] == trans_color->green ) &&
                         ( ptr8[2] == trans_color->blue  )
#else
                         ( ptr8[0] == info_ptr->trans_values.red   ) &&
                         ( ptr8[1] == info_ptr->trans_values.green ) &&
                         ( ptr8[2] == info_ptr->trans_values.blue  )
#endif
                        )
                         *ptr32 = 0;
                 }
                 ptr32++, orig++ ;
             }
         }
     }
     else
     {
#if (PNG_LIBPNG_VER>=10500)
         png_color_16p trans_color = 0;
         png_get_tRNS( png_ptr, info_ptr, 0, 0, &trans_color);
#endif
Title: Re:[GCW Zero] BennuGD
Post by: SplinterGU on July 16, 2014, 12:48:48 PM
desconozco la version de png que tenes, posiblemente haya que corregir el #if...
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 16, 2014, 01:13:36 PM
Luego lo miro, pero ya he preguntado a los responsables por la version del toolchain
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 16, 2014, 01:16:24 PM
me han respondido 2:

a)  Version 16, IIRC.   


b)  /usr/lib/libpng14.so.14


entonces a modo lamer, que modificaciones hay que hacer sabiendo ya la version ?
Title: Re:[GCW Zero] BennuGD
Post by: SplinterGU on July 16, 2014, 01:51:39 PM
a) no entiendo a que te referis.

b) es version 1.4

fijate si en el png.h esta definida la funcion png_get_bit_depth

si esta, entonces cambia los

#if (PNG_LIBPNG_VER>=10500)

por

#if (PNG_LIBPNG_VER>=10400)

y decime a ver que onda
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 16, 2014, 04:34:24 PM
funciona gracias! ya queda poco, ya ha compilado mas modulos, ahora se detiene aqui:


mod_mem.c: En la función 'modmem_memory_free':
mod_mem.c:138:20: error: no se conoce el tamaño de almacenamiento de 'meminf'
     struct sysinfo meminf;
                    ^
mod_mem.c: En la función 'modmem_memory_total':
mod_mem.c:176:20: error: no se conoce el tamaño de almacenamiento de 'meminf'
     struct sysinfo meminf;
                    ^
make[1]: *** [mod_mem_la-mod_mem.lo] Error 1
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 16, 2014, 04:55:17 PM
Bueno he comentado estas dos secciones del codigo y he finalizado la compilación  ;D ;D ;D

A ver si me puedes ayudar a tratar este codigo, y ver que funciones se pierden al estar comentadas devolviendo ambas -1
Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 16, 2014, 06:12:50 PM
Pruebas:


1 - TODO OK! Ya se puede usar este runtime en lugar del instalado en la consola, que es monolitico y este es modular igual a las versiones
de Pandora, Wiz y Caanoo.

2 - Permite usar tus modulos para bennugd, he probado la yeti que he compilado para mi juego Hamster's Escape 3D y todo va perfecto.

3 - Incluye el compilador, si teneis problemas con vuestro DCB ahora lo podeis compilar en la consola, compila y ejecuta perfecto.

Os dejo una fotaca del Hamster's Escape 3D, va super fluido mucho mejor que en las demás consolas.

(http://oi61.tinypic.com/2m6piit.jpg)



Title: Re:[GCW Zero] BennuGD
Post by: FreeYourMind on July 16, 2014, 06:13:52 PM
Enlace de descarga de BennuGS r270 para GCW Zero:

https://dl.dropboxusercontent.com/u/33372657/bgd-runtime%20%28r270%29%20%28GCWZero%29.rar (https://dl.dropboxusercontent.com/u/33372657/bgd-runtime%20%28r270%29%20%28GCWZero%29.rar)
Title: Re:[GCW Zero] BennuGD
Post by: Kloppix on July 16, 2014, 07:16:05 PM
 Que emoción, que emoción! Sabía que ibas a hacer el port, pero no me lo esperaba tan rápido. Toma karmazo!

Lamentablemente no lo podré probar hasta el viernes a mediodía.
Quote from: FreeYourMind on July 16, 2014, 06:12:50 PM
Os dejo una fotaca del Hamster's Escape 3D, va super fluido mucho mejor que en las demás consolas.
Es que la Zero es potencia bruta! No entiendo como la batería puede durar tanto.