YETI3D PRO en Bennu (MOTOR 3D - RENDER BASADO EN SW)

Started by l1nk3rn3l, November 27, 2010, 06:59:16 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

alex

#255
Compilando la nueva version para linux, me dice esto:
-------------- Build: win32 in yeti3d ---------------

Linking dynamic library: bin/Release/yeti3d.so
/usr/bin/ld: no se puede encontrar -lmingw32
/usr/bin/ld: no se puede encontrar -lgrbase
/usr/bin/ld: no se puede encontrar -lbgdrtm
/usr/bin/ld: no se puede encontrar -lblit
/usr/bin/ld: no se puede encontrar -lvideo
/usr/bin/ld: no se puede encontrar -lSDL
collect2: error: ld devolvió el estado de salida 1
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings

No se cual es el problema, segun he visto, hay un ejecutable llamado "ld", pero no se que hace?

Edit: ld -l ¿que hace?

l1nk3rn3l

#256
No se cual es el problema, segun he visto, hay un ejecutable llamado "ld", pero no se que hace?
preguntale a splinter que tiene experiencia en LInux

ld es el ejecutable que crea librerias , hace parte de gcc las librerias que te faltan
estan incluidas en el ejecutable de bennugd version linux
http://www.bennugd.org/node/2



He cometido la tonteria de publicar los modulos antes de probarlos...

borra los define no validos que de pronto existan en el main.c de la libreria



EN LA LINEA 264 DEL MAIN.C ENCONTRE ESTO NO SE SI SEA EL PROBLEMA

#ifdef __GP32__
        end = i+1==nbspr ? size : 8+nbspr*4+((u32*)(data+8))[i+1];
        for (j=start+2;j<end;++j)
            sprtab[j] = sprtab[j]<<1;
#endif



gracias por portar la libreria ..

;D

SplinterGU

mingw32 no deberia estar, eso esta en dependencias de SDL.

yo toque los SDL.pc para que no tengan esas dependencias.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

alex

#258
siento responder tan tarde, no he podido antes, estaba estudiando.
Quote from: SplinterGU on October 29, 2012, 12:13:14 AM
mingw32 no deberia estar, eso esta en dependencias de SDL.

yo toque los SDL.pc para que no tengan esas dependencias.

si, ya lo quite, todavia no he tenido tiempo de probar la libreria, pero puedo decir que por fin la he compilado para linux 32 bits(la adjunto abajo, no me dejaba en "yeti3d.so" y la he puesto "yeti3d.pdf" cambiarla a "yeti3d.so"), muchas gracias l1nk3rn3l por tu ayuda.
Lo único que no se como configurar ld.so.cache (y todo lo que tiene que ver con él), he estado probando y casi me vuelvo loco XD, pero probe con export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/bla/bla/bla/yeti3d.so (se que es momentanio y no se deberia usar) y me compila el simple codigo:
import "yeti3d";
Process Main()
Begin
End.


Offtopic: Estoy super éuforico, Karma para ti l1nk3rn3l, ya aprendere mas mañana y a ver si consigo evitar escribir la linea LD_LIBRARY_PATH=... hoy me rindo, ademas tengo clase en menos de seis horas y tengo que dormir.

Por cierto, no veo que me debiese de dar error cuando la configuración de bennu busca las librerias dentro de la subcarpeta lib, por si acaso ejecuté despues como administrador el ld.config, pero aun asi no la coge, puede ser porque lo que busque sea libyeti3d.so, no yeti3d.so???

Edit: no me respondáis a mi pregunta ya me coge la libreria.

alex

#259
l1nk3rn3l, creo que no va la yeti_setrendergraph(), he probado el primer ejemplo, y me sale esto por consola:
BGDC 1.0.0 (Oct 12 2012 01:28:38)
Bennu Game Development Compiler

Copyright (c) 2006-2012 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 Jos� Luis Cebri�n Pag�e (Fenix)

/home/alejandro/Escritorio/compartida/YETI3D/src/bin/Release/TEST01.Prg:41: error: Undefined procedure ( token error: "YETI_SETRENDERGRAPH" ).


Edit: parece que no reconoce ninguna de las funciones de yeti, en cambio las variables u otro tipo de dato parece que si.

l1nk3rn3l

Quote from: alex on October 30, 2012, 06:13:05 PM
l1nk3rn3l, creo que no va la yeti_setrendergraph(), he probado el primer ejemplo, y me sale esto por consola:
BGDC 1.0.0 (Oct 12 2012 01:28:38)
Bennu Game Development Compiler

Copyright (c) 2006-2012 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 Jos� Luis Cebri�n Pag�e (Fenix)

/home/alejandro/Escritorio/compartida/YETI3D/src/bin/Release/TEST01.Prg:41: error: Undefined procedure ( token error: "YETI_SETRENDERGRAPH" ).


Edit: parece que no reconoce ninguna de las funciones de yeti, en cambio las variables u otro tipo de dato parece que si.

BUENO PUEDE SER LO SIGUIENTE ..

cuando comenzamos a crear librerias para bennu , teniamos ese problema asi que
si tu libreria se llama yeti3d.so entonces desde el main.c de la libreria los llamados de bennu (DLLEXPORT ) donde
encuentres esa palabra en main.c

deberian quedar asi por ejemplo

DLLEXPORT __bgdexport( yeti3d,   ...

pero si la libreria se llama libyeti.so

entonces quedaria asi

DLLEXPORT __bgdexport(libyeti3d,   ...


revisa el main.c  y mira de acuerdo a como se llame la libreria y listo creo que esa es la solucion

si manejas codeblocks entonces ve ha project---properties hay te dice como se llama la
libreria generada   si yeti3d.so   oooooo  libyeti3d.so










FreeYourMind

linkernel te sugiero que cambies el nombre a mod_yeti3dpro.dll para mantener unanimidad con los demás modulos de bennu, incluidos los que yo he portado (porque siempre le he cambiado el nombre), de esta forma tambien se podria compilar para windows y para estas portatiles con el mismo prg sin tener que cambiar nombres o definiciones.

alex

#262
Quote from: l1nk3rn3l on October 30, 2012, 08:44:33 PM
Quote from: alex on October 30, 2012, 06:13:05 PM
l1nk3rn3l, creo que no va la yeti_setrendergraph(), he probado el primer ejemplo, y me sale esto por consola:
BGDC 1.0.0 (Oct 12 2012 01:28:38)
Bennu Game Development Compiler

Copyright (c) 2006-2012 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 Jos� Luis Cebri�n Pag�e (Fenix)

/home/alejandro/Escritorio/compartida/YETI3D/src/bin/Release/TEST01.Prg:41: error: Undefined procedure ( token error: "YETI_SETRENDERGRAPH" ).


Edit: parece que no reconoce ninguna de las funciones de yeti, en cambio las variables u otro tipo de dato parece que si.

BUENO PUEDE SER LO SIGUIENTE ..

cuando comenzamos a crear librerias para bennu , teniamos ese problema asi que
si tu libreria se llama yeti3d.so entonces desde el main.c de la libreria los llamados de bennu (DLLEXPORT ) donde
encuentres esa palabra en main.c

deberian quedar asi por ejemplo

DLLEXPORT __bgdexport( yeti3d,   ...

pero si la libreria se llama libyeti.so

entonces quedaria asi

DLLEXPORT __bgdexport(libyeti3d,   ...


revisa el main.c  y mira de acuerdo a como se llame la libreria y listo creo que esa es la solucion

si manejas codeblocks entonces ve ha project---properties hay te dice como se llama la
libreria generada   si yeti3d.so   oooooo  libyeti3d.so











creo que no era eso, sino que al incluir la yeti3d.h no me va la yeti3d.so, lo he deducido, porque si comento la linea del include, me aparece error en la P de mycam.p, es muy curioso

Quote from: FreeYourMind on October 30, 2012, 09:34:12 PM
linkernel te sugiero que cambies el nombre a mod_yeti3dpro.dll para mantener unanimidad con los demás modulos de bennu, incluidos los que yo he portado (porque siempre le he cambiado el nombre), de esta forma tambien se podria compilar para windows y para estas portatiles con el mismo prg sin tener que cambiar nombres o definiciones.
yo la llamo libyeti3d.so y hacer el import "yeti3d", pero, no te entiendo, lo cierto es que creo que en linux no me la cogia por yeti3d. Y en ese caso como proponeis el nombre, como los demas?, (libmod_yeti3d.so o libmod_yeti3dpro.so).
Edit: Perdon, el otro dia se me fue la olla leyendo tu mensaje, ok quedaria "mod_yeti3dpro.dll" (en linux "libmod_yeti3dpro.so")

Edit: vuelvo a subir la libyeti3d.so con la yeti3d.h y con los ejemplos por si teneis curiosidad por comprobar que pasa.

alex

#263
Pregunta: What's the meaning of these comments?
//MD2 ANIMATIONS 
/*
    {  0, 40},    //MD2_ANIM_STAND
    { 40,  6},    //MD2_ANIM_RUN
    { 46,  8},    //MD2_ANIM_ATTACK
    { 54,  4},    //MD2_ANIM_PAIN1
    { 58,  4},    //MD2_ANIM_PAIN2
    { 62,  4},    //MD2_ANIM_PAIN3
    { 66,  6},    //MD2_ANIM_JUMP
    { 72, 12},    //MD2_ANIM_FLIPOFF
    { 84, 11},    //MD2_ANIM_SALUTE
    { 95, 17},    //MD2_ANIM_TAUNT
    {112, 11},    //MD2_ANIM_WAVE
    {123, 12},    //MD2_ANIM_POINT
    {135, 19},    //MD2_ANIM_CROUCH_STAND
    {154,  6},    //MD2_ANIM_CROUCH_WALK
    {160,  9},    //MD2_ANIM_CROUCH_ATTACK
    {169,  4},    //MD2_ANIM_CROUCH_PAIN
    {173,  5},    //MD2_ANIM_CROUCH_DEATH
    {178,  6},    //MD2_ANIM_DEATH1
    {184,  6},    //MD2_ANIM_DEATH2
    {190,  8}     //MD2_ANIM_DEATH3
*/

Qué significan? Deben descomentarse? Perdonad, pero no he utilizado nunca la yeti3d y no se muy bien qué es?
Tenía propuesto que los datos de la yeti3d.h pasaran a la yeti3d.so haber si se me soluciona el problema, aunque no entiendo el porque no me funciona he probado hasta a cambiar el nombre a la yetid.h pero nada.
Y también tengo la duda de cómo pasar los tipodefinidos a la libreria.

alex

#264
Aparte de esto he ido probando a no incluir la yeti3d.h, y poco a poco incluir lineas de ella en el codigo principal, y a cometer errores, me he dado cuenta que no es por la yeti3d.h, sino por la función en si de YETI_SETRENDERGRAPH(). Te explico en dos ocasiones de error lo que me ocurre.
1) El error de siempre. Undefined Procedure token error YETI_SETRENDERGRAPH()
2) cometo un error quitando la d del ultimo end del codigo, no me deberia dar error porque esta muchas lineas despues pero...
error: Unknown identifier (token error "EN")

Este es el trozo de código con la función YETI_SETRENDERGRAPH():
static int fx_setrendergraph(INSTANCE * my, int * params)
{
pantalla = bitmap_get (params[0], params[1]) ;
if (! pantalla ) return 0;

    YETI_FRAMEBUFFER_WIDTH  = pantalla->width ;
    YETI_FRAMEBUFFER_HEIGHT =pantalla->height ;
    YETI_VIEWPORT_X2 = pantalla->width ;
    YETI_VIEWPORT_Y2 =pantalla->height ;
/*
      switch (YETI_FRAMEBUFFER_WIDTH)
      {
        case 800:

          break;
        case 640:

          break;
        case 320:
          funcionrender3d= render3d_320;
          break;
        case 160:

          break;
      }
*/
return 1;
}


Puede ser por bitmap_get() o por el codigo comentado???

FreeYourMind

Quote from: l1nk3rn3l on October 28, 2012, 01:54:31 PM

EN LA LINEA 264 DEL MAIN.C ENCONTRE ESTO NO SE SI SEA EL PROBLEMA

#ifdef __GP32__
        end = i+1==nbspr ? size : 8+nbspr*4+((u32*)(data+8))[i+1];
        for (j=start+2;j<end;++j)
            sprtab[j] = sprtab[j]<<1;
#endif



gracias por portar la libreria ..

;D

no funciona, en realidad eses defines nunca se han incluido porque no se definen como gp32 en la compilacion, y si lo activo peta al usar la funcion. Recuerdas que cambiaste cuando corregiste el color en anteriores versiones usando texturas de un fpg ? igual eso ayudaria a encontrar porque ahora salen mal en Wiz

FreeYourMind

Hay alguna forma de restaurar los valores por defecto si usamos YETI_SETVISUAL ?

alex

Bueno, al final consegui que me funcionase la lib. Os paso la lib la llamo libyeti3d.so si os parece mal lo cambio, también adjunto el visor de yeti o eso creo que es, (el que viene en port SDL).

Lo he probado en 32 bits y funciona bien solo me falta en 64, creo que funcionara bien.

alex

Una duda, los demas editores que vienen en el rar de yeti, los exe son portables a linux, me gustaria portarlos en vez de usar wine o virtual box que me parecen un poco incomodos.
Por cierto, probado en linux 64 bits y funciona!!!!

l1nk3rn3l

Quote from: alex on November 09, 2012, 03:59:26 PM
Bueno, al final consegui que me funcionase la lib. Os paso la lib la llamo libyeti3d.so si os parece mal lo cambio, también adjunto el visor de yeti o eso creo que es, (el que viene en port SDL).

Lo he probado en 32 bits y funciona bien solo me falta en 64, creo que funcionara bien.


NOS ALEGRA QUE LO HALLAS LOGRADO

;D




no funciona, en realidad eses defines nunca se han incluido porque no se definen como gp32 en la compilacion, y si lo activo peta al usar la funcion. Recuerdas que cambiaste cuando corregiste el color en anteriores versiones usando texturas de un fpg ? igual eso ayudaria a encontrar porque ahora salen mal en Wiz

ESTAMOS MIRANDO QUE SERA...
;)

ESTAMOS PREPARANDO UN PACK DE EJEMPLOS PARA EL YETI3D ...  JEJEE SERA  UNA SORPRESA..