[TUTORIAL]Instalar y poner a punto psl1ght en Windows

14, 5, 6, 7, 8, 9
Hola,
tengo un problema de linkeado o de port en el psl1ght.

Al usar el archivo <time.h> y intentar hacer uso de la función clock() el compilador tira un error:
undefined reference to 'getrusage', en la libreria 'lib_a-times' de powerpc64

Quizás soy yo que no incluyo el archivo correcto y haya otro "time.h" por allí, si es esto, decidme en que carpeta anda por favor.

Gracias,
Blipi
MrNatutal escribió:Estoy compilando en windows 7 desde el minGW.
Tambien tengo una maquina virtual con ubuntu.
Salu2


Edita el Makefile de los ejemplos, en LIBS añade -lstdc++
es decir, que quede así
LIBS := -lstdc++

Y en el bat que te he puesto añade en los path donde quieres coger los include.

@echo off

@set PS3DEV=d:/ps3dev
@set MINGW=%PS3DEV%/MinGW

@set CYGWIN= nodosfilewarning
@set PATH=%PS3DEV%/cygwin;%MINGW%/bin;%MINGW%/msys/1.0/bin;%PS3DEV%/ppu/bin;%PS3DEV%/spu/bin;%PS3DEV%/ppu/powerpc64-linux/include/c++/4.5.1;%PS3DEV%/ppu/lib;%PATH%;

@set PSL1GHT=%PS3DEV%/psl1ght

make clean
make
make pkg

pause



Espero que te sirva suerte y un saludo.



Y para blipi
blipi escribió:Hola,
tengo un problema de linkeado o de port en el psl1ght.

Al usar el archivo <time.h> y intentar hacer uso de la función clock() el compilador tira un error:
undefined reference to 'getrusage', en la libreria 'lib_a-times' de powerpc64

Quizás soy yo que no incluyo el archivo correcto y haya otro "time.h" por allí, si es esto, decidme en que carpeta anda por favor.

Gracias,
Blipi

¿Dónde te da el error? En el .o o en .c (o.cpp)?

¿Si es en el .o, has puesto la librería libc.a en el makefile o lo has linkado con ella?
En el makefile sería
LIBS := -lc
Era en el .o, y como no sabia cual era la librería a incluir no lo había hecho. Luego lo pruebo que no estoy en mi ordenador. Muchas gracias!

(Y por cierto, tiny3d va de maravilla! =P Gracias Hermes!)
varios escribió:Las listas me van a venir de perlas ... [+risas].

Es más, era lo que estaba intentando hacer ... pero a lo cutre comparado con Hermes, [plas] .

Estaba intentando duplicar cubos ...igual alguno tiene una idea de para que puede ser, XD.

Lo quieres para hacer las fichas supongo pero no le veo el sentido a hacer una lista para un cubo. Tendria mas sentido hacer la ficha entera y meterla en una lista. Asi la rotas como un objeto completo.
Perfecto para el desarrollo en C++ con clases.

Solucionado añadiendo en los Makefile, en LIBS: -lstdc++
LIBS    := -lgcm_sys -lreality -lsysutil -lio -lstdc++

No hace falta añadir los paths de donde se coge los include.

sois la ostia!! ufff!! q deskanso [fumando] [fumando] (se permite fumar aqui?)
Salu2
Vrsquid escribió:
varios escribió:Las listas me van a venir de perlas ... [+risas].

Es más, era lo que estaba intentando hacer ... pero a lo cutre comparado con Hermes, [plas] .

Estaba intentando duplicar cubos ...igual alguno tiene una idea de para que puede ser, XD.

Lo quieres para hacer las fichas supongo pero no le veo el sentido a hacer una lista para un cubo. Tendria mas sentido hacer la ficha entera y meterla en una lista. Asi la rotas como un objeto completo.


Según la forma en la que lo tengo hecho si. Además, una vez que las piezas están abajo, las almaceno en una matriz. Ahí las dejo de tratar como fichas de 4 cubos ... y son todo cubos, XD.

Y la ficha que muevo y en la siguiente me es más fácil tener 4 cubos que una ficha. Todas las piezas del tetris original se forman con 4 cubos dispuestos de forma diferente. Lo que he estado un tiempo pansando si cambiar a pieza en lugar de cubo, lo único para lo que me servía era para girar sobre el centro de la ficha. Con cubos es más fácil.

Además, después de años trabajando con programación orientada a objetos ... tiendo a pensar todo para reutiizar. Así que es muy fácil cambiar el código para crear piezas de más de 4 partes. Cambiando pocas líneas de código puedo crear las piezas de las formas que quiera y con 4, 5, 6 o las partes que quiera.
En cambio si es pieza a pieza es más complicado, [+risas]
Os cuento, he añadido la libreria -lc y sigue dando error, ahora en times.c
Cito:
c:/ps3dev/ppu/bin/../lib/gcc/powerpc64-linux/4.5.1/../../../../powerpc64-linux/l
ib\libc.a(lib_a-times.o): In function `times':
C:/MinGW/msys/1.0/local/ps3dev/newlib-1.18.0/newlib/libc/machine/powerpc/times.c
:23: undefined reference to `getrusage'


Por si acaso alguien no se acuerda, esto pasa al incluir "time.h" y usar la función clock()

PD: Soy incapaz de encontrar el archivo en esta ruta: "C:/MinGW/msys/1.0/local/ps3dev/newlib-1.18.0/newlib/libc/machine/powerpc/times.c"
blipi escribió:Os cuento, he añadido la libreria -lc y sigue dando error, ahora en times.c
Cito:
c:/ps3dev/ppu/bin/../lib/gcc/powerpc64-linux/4.5.1/../../../../powerpc64-linux/l
ib\libc.a(lib_a-times.o): In function `times':
C:/MinGW/msys/1.0/local/ps3dev/newlib-1.18.0/newlib/libc/machine/powerpc/times.c
:23: undefined reference to `getrusage'


Por si acaso alguien no se acuerda, esto pasa al incluir "time.h" y usar la función clock()

PD: Soy incapaz de encontrar el archivo en esta ruta: "C:/MinGW/msys/1.0/local/ps3dev/newlib-1.18.0/newlib/libc/machine/powerpc/times.c"


Si falla en los .o lo más seguro es que te falte añadir otra librería. Pero ahora no puedo mirar nada que no estoy en casa, XD
Alguna idea de que librería podría ser? Por lo que se, en linux, el "getrusage" se encuentra en un archivo llamado resource.h, en sys/resource.h
Pero, ni idea de que librería podría ser..

Gracias
blipi escribió:Alguna idea de que librería podría ser? Por lo que se, en linux, el "getrusage" se encuentra en un archivo llamado resource.h, en sys/resource.h
Pero, ni idea de que librería podría ser..

Gracias


Creo que si que es la libc, además mira la ruta del error:
"C:/MinGW/msys/1.0/local/ps3dev/newlib-1.18.0/newlib/libc/machine/powerpc/times.c"

En el git de oopo tienes esto:
https://github.com/ooPo/newlib-1.18.0-P ... pc/times.c

Y este el resource:
https://github.com/ooPo/newlib-1.18.0-P ... resource.h


Como no sea problemas de versión del toolchain o de MinGW... pero ya te digo que no estoy en casa y no puedo mirarlo .. tengo que tirar de git [+risas]
Alguien tiene idea de si hay algo probado en MAC?
mmm ya veo.. aunque me extraña, porque la tengo incluida esa libreria.
voy a echarle una ojeada al git, no sea que tenga un versión antigua yo y por eso no me funcione.

pues no se que decirte, esta claro que ese times.c tiene una referencia al getrusage, y pone que el times.c es de la initial commit, asi que, dudo que tenga una version atrasada yo.

EDIT: comparando su sys/resource.h con algunos otros, veo que le faltan algunos prototype de funciones, como "getrusage", eso podría explicar el undefined reference.
http://freebsd.active-venture.com/FreeB ... rce.h.html
Aquí hay un resource.h, ya verás que difieren bastante.

Gracias.
blipi escribió:mmm ya veo.. aunque me extraña, porque la tengo incluida esa libreria.
voy a echarle una ojeada al git, no sea que tenga un versión antigua yo y por eso no me funcione.

pues no se que decirte, esta claro que ese times.c tiene una referencia al getrusage, y pone que el times.c es de la initial commit, asi que, dudo que tenga una version atrasada yo.

EDIT: comparando su sys/resource.h con algunos otros, veo que le faltan algunos prototype de funciones, como "getrusage", eso podría explicar el undefined reference.
http://freebsd.active-venture.com/FreeB ... rce.h.html
Aquí hay un resource.h, ya verás que difieren bastante.

Gracias.


Ya me he fijado que en el .h no estaba definida getreusage, por eso digo que no sea problema de alguna versión.
Pero bueno. También puedes buscar otra solución y usar otra cosa en lugar de clock().

Se supone que clock devuelve el tiempo del procesador
clock()

Algo como
struct timeval tv_start, tv_end;
gettimeofday( &tv_start, 0 );
.... // Lo que quieras
gettimeofday( &tv_end, 0 );

Y luego con la rtesta de los datos obtienes el tiempo en entre los 2
tv_end->tv_usec-(float)tv_start->tv_usec

Es una simple idea, XD.
Si, supongo que no me quedará ningún otro remedio que hacer algún tipo de chapuza xd

Sabes, lo que quería hacer era "bloquear las flechas" ya que sino la selección de elementos del menú era demasiado rápida.
Para eso quería utilizar el clock() y desbloquear cada 0.5~0.9 segundos en caso de una pulsación continua, por eso el uso de clock(), que devuelve milisegundos.

En fin, luego me miro lo que me has pasado y a ver que saco, que ahora no puedo.
Gracias!
blipi escribió:Si, supongo que no me quedará ningún otro remedio que hacer algún tipo de chapuza xd

Sabes, lo que quería hacer era "bloquear las flechas" ya que sino la selección de elementos del menú era demasiado rápida.
Para eso quería utilizar el clock() y desbloquear cada 0.5~0.9 segundos en caso de una pulsación continua, por eso el uso de clock(), que devuelve milisegundos.

En fin, luego me miro lo que me has pasado y a ver que saco, que ahora no puedo.
Gracias!


Puedes hacer un timer que comprueba los mandoas cada cierto tiempo. Y hay otra solución, pero me tengo que ir.
¿compruebas si está el botón izquierda derecha pulsado?

Me voy que pierdo el bus, chao.
hola, ya instale todo pero a la hora de tratar de compilar me dice que make no se reconose como comando interno o externo cuanto con windows 7 y antes tenia el sdk de psp intalado
pache80 escribió:hola, ya instale todo pero a la hora de tratar de compilar me dice que make no se reconose como comando interno o externo cuanto con windows 7 y antes tenia el sdk de psp intalado


simplemente te fallan las variables de entorno (suponiendo k has instalado msys correctamente)
marioga escribió:
pache80 escribió:hola, ya instale todo pero a la hora de tratar de compilar me dice que make no se reconose como comando interno o externo cuanto con windows 7 y antes tenia el sdk de psp intalado


simplemente te fallan las variables de entorno (suponiendo k has instalado msys correctamente)


pues creo que lo hice todo bien pero deja reinstalo msys
pache80 escribió:
marioga escribió:
pache80 escribió:hola, ya instale todo pero a la hora de tratar de compilar me dice que make no se reconose como comando interno o externo cuanto con windows 7 y antes tenia el sdk de psp intalado


simplemente te fallan las variables de entorno (suponiendo k has instalado msys correctamente)


pues creo que lo hice todo bien pero deja reinstalo msys


Si te sigue sin funcionar puedes probar con esto hilo_ps3sdk-1-5-y-multiusos-0-1_1532294
varios escribió:Puedes hacer un timer que comprueba los mandoas cada cierto tiempo. Y hay otra solución, pero me tengo que ir.
¿compruebas si está el botón izquierda derecha pulsado?

Me voy que pierdo el bus, chao.


Botón izquierda derecha? No lo pillo xd

Mira, hago esto, en el principio del draw() compruebo si están pulsados los botones:
En el caso de X, O, /\ y [] simplemente, si no están pulsados permito el uso. (Se bloquean al final del draw)
En el caso de las flechas si están pulsadas compruebo cuando fue la ultima vez que se pulsó (mediante restas de clock_t) y si fue hace más de 0.9 segundos permito el uso y pongo dicha variable clock_t a 0, sino, no.

Al final del draw() si los botones X, O, /\ y [] están pulsados los bloqueo.
Con las flechas, si están pulsadas compruebo si la variable clock_t de la flecha en cuestión es 0, si lo es, significa que justo se acaba de desbloquear, así que le doy un nuevo valor con clock() y la bloqueo, y si no es 0, simplemente la bloqueo.

(Se bloquea de manera independiente por cada pad, es decir, si el pad 1 esta bloqueado, el 2 no tiene porque estarlo)

Como ves el sistema funcionaría perfectamente en el caso de que clock() funcionara. Implementar timers, sinceramente, lo veo un poco complicado. Quizás seria más fácil poner 1 solo timer al principio, y calcular los frames por segundos mediante ese timer, y a partir de los frames por segundo podría hacer lo mismo que con clock()
¿Hay alguna función que devuelva los fps o tendré calcularlos?
ya instale el que me dijiste marioga y funciona perfecto gracias
Me tenia que ir y me he explicado fatal.


Me refiero a guardar la pulsación anterior y si es 0 y pasa a 1 entocnes muevo izquieerda o derecha.

tienes que tener otra variable para guardar los datos leidos anteriormente.

PadInfo padinfo;
PadData paddata;
PadData oldpaddata;

Inicializarlas:
memset(&paddata, 0, sizeof(PadData));
memset(&oldpaddata, 0, sizeof(PadData));

El código sirve si pulsar cualquier mando conectado


void LeerMandos(void)
{
   long n;

   ioPadGetInfo(&padinfo);
   for(n = 0; n < MAX_PADS; n++) {
                  
            if(paddata.BTN_LEFT && !oldpaddata.BTN_LEFT){
            // código de mover izquierda
       }
            if(paddata.BTN_RIGHT && !oldpaddata.BTN_RIGHT){
            // código de mover derecha
       }

   }
   memcpy(&oldpaddata, &paddata, sizeof(PadData));
}
Mmm pero yo no quiero bloquear por completo las flechas hasta que se suelten, simplemente quiero emitir una pulsación cada ~1 segundo. Y si no me equivoco, tu método lo bloquea hasta dejar y pulsar de nuevo.
Alguno forma de obtener los fps sin usar código externo, es decir, sin necesidad de usar timers por ejemplo (ni clock() puesto que tampoco funciona).

Quizás la función time() (tambien encontradacen time.h) si funcione? O también usa el getrusage()?
A ver si a alguien se le ocurre algún método para obtene los fps sin usar timers.

Gracias!
blipi escribió:Mmm pero yo no quiero bloquear por completo las flechas hasta que se suelten, simplemente quiero emitir una pulsación cada ~1 segundo. Y si no me equivoco, tu método lo bloquea hasta dejar y pulsar de nuevo.
Alguno forma de obtener los fps sin usar código externo, es decir, sin necesidad de usar timers por ejemplo (ni clock() puesto que tampoco funciona).

Quizás la función time() (tambien encontradacen time.h) si funcione? O también usa el getrusage()?
A ver si a alguien se le ocurre algún método para obtene los fps sin usar timers.

Gracias!


No lo siento. En el tetris lo hago por timers. Y leen el estado de los mandos cada cierto tiempo.

Con timers sería algo así:

// Variables globales
static sys_ppu_thread_t h_timer_leermandos;
static volatile int leermandos_thread_running = 1;

void LeerMandos(void)
{
   long n;

     ioPadGetInfo(&padinfo);
     for(n = 0; n < MAX_PADS; n++) {
            if(paddata.BTN_LEFT){
                // código de mover izquierda
            }
            if(paddata.BTN_RIGHT){
                // código de mover derecha
            }
    } 
}

// Thread
void leermandos_thread(u64 value)
{
         // Mientras la variable este a 1
         while (leermandos_thread_running) {
       // 1 milisegundos = 1000
       // 1000 milisegundos = 1000000 = 1 seg
                 usleep(1000000); // esperamos un segundo
                 LeerMandos();  // Cuando pasa el segundo leemos el estado de los mandos
    }
     sys_ppu_thread_exit(0);
}

// Lamarlo para iniciar el timer
void IniciarTimers(void)
{
   // Thread para leer mandos cada cierto tiempo
        // Variable que mientras este a 1 se ejecutará el timer
   leermandos_thread_running = 1;
        // Creamos el thread
        if (sys_ppu_thread_create(&h_timer_leermandos, (void *) leermandos_thread, (u64) NULL, 100, 0x1000, THREAD_JOINABLE, "leermandos_thread") < 0)
      exit(0);  // Error al crear el timer
}

// Para acabar el timer basta con poner la variable a 0 y saldrá del while en el thread
void TerminarTimers(void)
{
   leermandos_thread_running = 0;
}




En el programa Llama primero a IniciarTimers y para acabar de usarlo simplemente TerminarTimers. Este código tendría que funcionar para lo que quieres hacer con los mandos [carcajad]

Respecto a lo de los fps, no conozco ninguna función. De forma un poco cutre bastaría con tener una variable global frames, ir haciendo el frames++ en el bucle de dibujar y en el timer de LeerMandos tener otra variable global fps y darle el valor de frames e inicializar frames a 0. E ir mostrando la variable fps en pantalla. Solución cutre salchichera pero funciona al menos para hacerte una idea de los fps, XD.

Es lo primero que se me ha ocurrido ... [+risas] y luego en un futuro si encuentras algo mejor ... cambialo.
No si la idea de los fps era simplemente por, si se cuantos frames hay por segundo, puedo simplemente comprobar cuantos frames han sido dibujados, si son iguales a los fps, "resetear los contoles" y poner los frames dibujados a cero.

Bueno, gracias por mostrarme como utilizas tu los timers, aunque intentaré ver si hay otra solución más fácil primero, ya que ponerme a hacer threads (aun que ya he hecho threads en psl1ght) y implementar timers, es complicarme un poco la vida por un simple menú.
blipi escribió:No si la idea de los fps era simplemente por, si se cuantos frames hay por segundo, puedo simplemente comprobar cuantos frames han sido dibujados, si son iguales a los fps, "resetear los contoles" y poner los frames dibujados a cero.

Bueno, gracias por mostrarme como utilizas tu los timers, aunque intentaré ver si hay otra solución más fácil primero, ya que ponerme a hacer threads (aun que ya he hecho threads en psl1ght) y implementar timers, es complicarme un poco la vida por un simple menú.


Pero si ya tienes el código, sólo es copy paste y a probar .... XD.
Hombre yo te propongo una solucion un poco chapucera pero que no usa ni timers ni clock ni nada de nada.

Como en todas las ps3 el programa va igual de rapido solo tienes que contar frames. Echas a ojo mas o menos cuantos fps tienes.

Necesitas un contador global de frames. Tambien tener en unas variables el estado en el fotograma anterior del pad.

Si en el fotograma actual la direccion esta a cero poner contador de frames a cero y no hacer nada mas
Si en el fotograma anterior estaba a cero y ahora a uno mover el cursor una vez y sumar uno al contador.
Si en el fotograma anterior estaba a uno y ahora tambien sumar uno al contador.
Si el contador es igual o mayor que x restar x al contador y mover el cursor una vez.
Sustituir los datos viejos del pad con los actuales.

Simplemente buscas un X que te parezca adecuado y ya esta. Es una putisima mierda que se usaba en la epoca del BASIC pero que funciona para las consolas.
Vrsquid escribió:Hombre yo te propongo una solucion un poco chapucera pero que no usa ni timers ni clock ni nada de nada.

Como en todas las ps3 el programa va igual de rapido solo tienes que contar frames. Echas a ojo mas o menos cuantos fps tienes.

Necesitas un contador global de frames. Tambien tener en unas variables el estado en el fotograma anterior del pad.

Si en el fotograma actual la direccion esta a cero poner contador de frames a cero y no hacer nada mas
Si en el fotograma anterior estaba a cero y ahora a uno mover el cursor una vez y sumar uno al contador.
Si en el fotograma anterior estaba a uno y ahora tambien sumar uno al contador.
Si el contador es igual o mayor que x restar x al contador y mover el cursor una vez.
Sustituir los datos viejos del pad con los actuales.

Simplemente buscas un X que te parezca adecuado y ya esta. Es una putisima mierda que se usaba en la epoca del BASIC pero que funciona para las consolas.


Mi primera forma chapucera de hacerlo en PS3 ... era parecida, simplemente el módulo de los frames y es más simple todavia.


   
     u32 frame = 0;
     while (exit==0)

         if ([b]frame%50[/b]) {
         ioPadGetInfo(&padinfo);
         for(n = 0; n < MAX_PADS; n++) {
         if(padinfo.status[n]) {
            ioPadGetData(n, &paddata);
               
               if(paddata.BTN_CROSS){
          exit=1;
          }
                   
          if(paddata.BTN_LEFT) {
         // ;               
          }
   
          if(paddata.BTN_RIGHT) {
          }
      }
             }
             frame++;
        }



Y modificas 50 el frame%50 dependiendo de lo que quieras ..... cutre pero efectivo.
Mm no acabado de entender tu propuesta. Cuando hablas de la dirección, a que debe apuntar esa dirección?
Piensa además que estoy usando tiny3d, por lo que todo el tema flip de pantalla lo gestiona el mismo tiny3d, igual que el/los buffers (pues supongo que usa doble buffer).

Gracias!

@Varios, porque mod 50? Como sabes que es cada 50 frames?
blipi escribió:Mm no acabado de entender tu propuesta. Cuando hablas de la dirección, a que debe apuntar esa dirección?
Piensa además que estoy usando tiny3d, por lo que todo el tema flip de pantalla lo gestiona el mismo tiny3d, igual que el/los buffers (pues supongo que usa doble buffer).

Gracias!

@Varios, porque mod 50? Como sabes que es cada 50 frames?


Ya explico que es un valor el que quieras. Puedes ir modificándolo incrementando o decrementando el valor hasta que veas que el tiempo entre pulsación de izquierda y derecha es el que quieres. Es más si en lugar de ponerlo antes lo pones después puedes hacer que unas pulsaciones del mando se lean más veces por segundo que otras. El problema de esta opción es que al pulsar puede tarde a veces más en moverse y parece que no responde bien ....

es decir:
Si X es botón de salir y O entrar y derecha e izquierda moverse.
Sin esperar pulsando X o O hará la acción .... izquierda o derecha no será automático sino que tardará.

ioPadGetInfo(&padinfo);
for(n = 0; n < MAX_PADS; n++) {
     if(padinfo.status[n]) {
          ioPadGetData(n, &paddata);
          if(paddata.BTN_CROSS){
                // Nada más que pulsamos salimos
                exit=1;
          }
          if(paddata.BTN_CIRCLE){
                // Nada más que pulsamos entramos
                opcion_elegida=opcion;
          }           
          if(paddata.BTN_LEFT && frame%50) {
                 // pulsado IZQUIERDA y cada 50 frames;
                 opcion--;
          }
   
          if(paddata.BTN_RIGHT  && frame%50) {
                 // pulsado DERECHA y cada 50 frames;
                opcion++;
          }
      }
      frame++;


La otra opción

// Debes inicializar variables u32 derecha= 0, izquierda= 0, opcion = 1, opcion_elegida = 0;

    ioPadGetInfo(&padinfo);
    for(n = 0; n < MAX_PADS; n++) {
         if(padinfo.status[n]) {
              ioPadGetData(n, &paddata);
              if(paddata.BTN_CROSS){
                    // Nada más que pulsamos salimos
                    exit=1;
              }
              if(paddata.BTN_CIRCLE){
                    // Nada más que pulsamos entramos
                    opcion_elegida=opcion;
              }           
              if(paddata.BTN_LEFT) {
                     // pulsado IZQUIERDA y cada 50 frames;
                    if (izquierda == 50)
                          izquierda=0;
                    if (izquierda==0)
                          opcion--;
                    izquierda++;
              }
       
              if(paddata.BTN_RIGHT) {
                     // pulsado DERECHA y cada 50 frames;
                    if (derecha == 50)
                          derecha=0;
                    if (derecha==0)
                          opcion++;
                    derecha++;
              }
          }
          if (opcion_elegida!= 0)
              // Seleccionada opcion_elegida cuando no es 0

     


PD1: Para Hermes .....
Espero tu "regalo de reyes" ... me he portado bien (no quiero carbón) [qmparto]

PD2: acaban de actualizar el git de PSL1GHT
¿Esto del move estaba? XD
https://github.com/HACKERCHANNEL/PSL1GH ... /io/move.h

PD3: Me voy a la cama ZzzZZ , espero que el cuarto rey mago de nombre Hermes se digne a traeme "algún regalito" en forma de actualización de Tiny3D, [angelito]
PD4: He dejado galletitas y leche en la entrada. [ginyo]
Killer_Instict está baneado por "clones para trollear"
buenas,estoy instalandolo,pero hay una cosa que no entiendo,acabo de instalar el phyton,y despues hay que agregar una ruta en PATH no?

desde la consola mingw32 escribo:

set PATH=%PS3DEV%/ppu/bin;%PS3DEV%/spu/bin;%MINGW%/bin;%MINGW%/msys/1.0/bin;C:\Python27;

y da 3 errores,uno en: PS3DEV no such job
en: msys no such job
y en: C:\Python27 command not found


que hago mal?
gracias
Killer_Instict escribió:buenas,estoy instalandolo,pero hay una cosa que no entiendo,acabo de instalar el phyton,y despues hay que agregar una ruta en PATH no?

desde la consola mingw32 escribo:

set PATH=%PS3DEV%/ppu/bin;%PS3DEV%/spu/bin;%MINGW%/bin;%MINGW%/msys/1.0/bin;C:\Python27;

y da 3 errores,uno en: PS3DEV no such job
en: msys no such job
y en: C:\Python27 command not found


que hago mal?
gracias


Mejor te creas un archivo bat y es más sencillo. No hay que hacer nada de eso
Killer_Instict está baneado por "clones para trollear"
vale,gracias ;) voy a crear el .bat entonces!

salu2
Killer_Instict escribió:vale,gracias ;) voy a crear el .bat entonces!

salu2


Si ya tienes los bat en este mismo hilo, XD.

Prueba a compilar los ejemplos. Poen el archivo bat en el mismo directorio del makefile y ejecutalo ...
Esté es uno mio, tengo el directorio de ps3dev en d:/ps3dev, cambialo por el tuyo.



@echo off

@set PS3DEV=d:/ps3dev
@set MINGW=%PS3DEV%/MinGW

@set CYGWIN= nodosfilewarning
@set PATH=%PS3DEV%/cygwin;%MINGW%/bin;%MINGW%/msys/1.0/bin;%PS3DEV%/ppu/bin;%PS3DEV%/spu/bin;%PATH%;

@set PSL1GHT=%PS3DEV%/psl1ght

make clean
make
make pkg

pause



POr cierto ... los reyes me han traido carbón ...me voy a pasar a Papa Nöel .... [qmparto]
Esto ya empieza a crear addición!!
Estoy usando tiny3d y va de maravilla y poco a poco crece y mejora, mi propuesta es:
seria mejor abrir un HILO en scene especifico para la tiny3d para la programación en pls1ght?
y otras librerias que se utilicen en psl1ght en otros HILOS?
Lo comento por las siguientes razones:
1.- Para especificar el hilo en un tema en concreto.
2.- Documentación, manual, instalación, futuras propuestas de la libreria, etc...
3.- Descarga de la libreria, ultima versión y algunas de las anteriores, por ejemplo como el hilo del OM.
Seguro que me dejo otro punto.
Solo es un punto de vista, que nadie se ofenda solo aporto una idea (por muchos comentarios en otros hilos, uff!! como corre la sangre al rio). Que reine la paz hermanos!! [fumando] [fumando]

Salu2
MrNatutal escribió:Esto ya empieza a crear addición!!
Estoy usando tiny3d y va de maravilla y poco a poco crece y mejora, mi propuesta es:
seria mejor abrir un HILO en scene especifico para la tiny3d para la programación en pls1ght?
y otras librerias que se utilicen en psl1ght en otros HILOS?
Lo comento por las siguientes razones:
1.- Para especificar el hilo en un tema en concreto.
2.- Documentación, manual, instalación, futuras propuestas de la libreria, etc...
3.- Descarga de la libreria, ultima versión y algunas de las anteriores, por ejemplo como el hilo del OM.
Seguro que me dejo otro punto.
Solo es un punto de vista, que nadie se ofenda solo aporto una idea (por muchos comentarios en otros hilos, uff!! como corre la sangre al rio). Que reine la paz hermanos!! [fumando] [fumando]

Salu2


¿Si sale otro hilo? El más indicado para decidirlo es Hermes, XD.
Hermes escribió:Hola.

Espero que los reyes se hayan portado bien... a mí no han regalado el move, la PS3 y los juegos que "pedí" [+risas]: solo mucha ropa (es lo que pedí, que la economía está muy mal para desperdiciar el dinero en juguetes XD) y por supuesto: esta vez, habría estado bien que otro nos hubiera regalado una aplicación hecha con estas librerías [burla2] .

Y hablando de librerías, lo de las listas trabaja bien, pero he hecho una paréntesis debido a una petición y estoy trabajando para añadir soporte YUV, creando nuevos shaders, etc (ya tengo dos formas de implementarlo: con AYUV 32 bits, y como mapas de 8 bits YUV que se aplican en un uso especial multitextura).

También se han añadido nuevas funciones para trabajar con matrices y vectores (hay que añadir más, pero de momento, solo añado lo que voy necesitando: a destacar la que permite aplicar una matriz a un vector de posición, la que aplica matriz a normal y la que calcula la normal a un plano descrito por tres vértices)

Como veis, no estoy quieto XD.

Sobre el tema de abrir un hilo sobre Tiny3D, eso mejor que me lo dejéis a mi, cuando tenga un respiro y pueda empezar a documentar cosas en ese hilo: ahora sería inútil que lo abriera yo y si lo abre otro, entonces no podría organizar las cosas de forma adecuada.

Saludos y tened paciencia :p


Si, si, no te inventes excusas, estuviste en la cabalgata de Reyes haciendo de Baltasar ... [burla2]

Que más quisiera tener algo decente que enseñar ... en 2D si que hay algo, pero lo estoy haciendo 3D. [360º]

Estoy haciendo pruebas en 3D ... ya me gustaría tener tu nivel para hacer las cosas en una tarde o dos, [qmparto]

Además estos días he estado algo vago y no he hecho nada o casi nada. [beer]
Probando el regalito ....

Mi fondo del Tetris es más chulo ... [+risas]. Es broma, un ejemplo es para lo que es. [qmparto]


Hermes ... tomate un descansito que te lo mereces. Un fin de semana al menos. Saludossss.

Con lo del inglés siento no poder ayudarte, soy un negado para eso desde que dí francés en lugar de inglés en la escuela e inglés en el instituto y la universidad, así que ni un idioma ni el otro. ¿Y si lo escribes en español y alguien del foro lo traduce?

Y de los ejemplos si quieres "intente" hacer algo lo dices.
Ya hay gente trabajando en Mediaplayers ??? halagadoras noticias Hermes xDDDD ;)
Muy interesante el proyecto del compañero con el ffmpeg, si puedes mantenernos informados de su progresos a muchos seguro que les interesaría. Parece que la libería Tiny3D puede dar mucho juego en la comunidad homebrew.

Hermes, grandioso trabajo, como siempre. Gracias por la info ;)
Esto va marchando ... poco a poco pero sin pararse, XD.

Vaya con las esferitas ... el movimiento me ha parecido ... un corte de mangas, [+risas]

PD: Se ve muy bien la iluminación.
Hermes escribió:
varios escribió:Esto va marchando ... poco a poco pero sin pararse, XD.

Vaya con las esferitas ... el movimiento me ha parecido ... un corte de mangas, [+risas]


¿Ah, pero lo parece? [+risas]

varios escribió:PD: Se ve muy bien la iluminación.


En realidad, no es así: es decir, el truco está en la alta poligonización, por que la iluminación esa se basa en vértices (por ejemplo, el cilindro no solo son 32 secciones en forma de pared, si no que la pared se subdivide en 32 tambien).

Tal vez mire el tema de pasarla al Pixel shader como algo alternativo y entonces la cosa será mas bruta (el problema es que evidentemente, tirará tela de grafica XD)

Tambien está pendiente el poder mapear texturas tirando de matrices y esas cosas, lo que pasa es que no se si sería mejor primero, hacer algo y luego en función de ese algo, meter soporte [+risas] (de poco vale que haga muchas cosas si luego al final, la gente no hace nada con ello XD)


Tu pones tu granito de arena ... luego ya verás como la gente se va animando. Poco a poco, pero ya verás como si.

Yo intento usarla todo lo que puedo, :p
Vuelvo a ser yo! xd
Mirad, resulta que me descargo una imagen de internet, y la quiero poner en la struct pngdatas, pero no se cual debe ser el contenido del png_in.
Simplemente la imagen, o incluyendo la header del png? pues parece que incluyéndola no funciona ya que el bmp_out está vacio despues del loadPng.
Gracias!
414 respuestas
14, 5, 6, 7, 8, 9