MoKoLoKo
17/10/2010, 19:58
Estoy intentando aprender a programar en Bennu y bueno, alguna cosita muy simplona va funcionando en el ordenador, pero no soy capaz de hacer que funcione en la Wiz.
El .prg compila y funciona en PC, tengo por ahi el jkeys.lib, y metidos en la carpeta del juego en la Wiz el dcb, el jkeys, un fpg y el prg (que no se si hace falta pero ahi esta).
El problema? El mismo que en el topic que tengo por ahi abierto del Frikimusic, según el .gpe que ponga se queda colgado cargando o me echa. Creo que ya tengo el bgd-runtime de las pelotas en todas las carpetas que se me ha ocurrido (en la raiz de la NAND, carpeta game de la NAND, raiz de la SD, carpeta game de la SD, dentro de la carpeta del propio juego...) pero creo que aun asi no lo está encontrando...
Me estoy desesperando bastante con el Bennu/Fenix, porque si voy a tener que romperme la cabeza de esta forma cada vez que quiera meter algo en esos lenguajes para la Wiz a lo mejor me merecía la pena mandar a tomar por culo la portabilidad del Bennu y escribir en ensamblador [wei]
Uno de los .gpe que he estado probando, proveniente del eek
#!/bin/sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../bgd-runtime
PATH=$PATH:../bgd-runtime
echo 2 > /proc/cpu/alignment
for prg in *.prg; do
name=`basename $prg .prg`
bgdc $prg
bgdi $name
done
cd /usr/gp2x
exec /usr/gp2x/gp2xmenu
El código del programa que estoy intentando probar en la Wiz, por si el problema no fuera del gpe (aunque ya os digo que en el ordenador va)
import "mod_video";
import "mod_map";
import "mod_key";
#include "jkeys.lib"
GLOBAL
int id1;
END
PROCESS main()
PRIVATE
int id1;
END
BEGIN
jkeys_set_default_keys();
jkeys_controller();
set_mode(320,240,32);
id1=load_fpg("nuevo.fpg");
personaje();
personajeb();
END
PROCESS personaje()
PRIVATE
int vx, vy, ax, ay;
END
BEGIN
x=160;y=120;file=id1;graph=1;
LOOP
IF (jkeys_state[_JKEY_UP ])
IF (y>=15)
y=y-5;
end
END
IF (jkeys_state[_JKEY_DOWN ])
if (y<=225)
y=y+5;
end
END
IF (jkeys_state[_JKEY_LEFT ])
if (x>=15)
x=x-5;
end
END
IF (jkeys_state[_JKEY_RIGHT ])
if (x<=305)
x=x+5;
end
END
IF (jkeys_state[_JKEY_L ]&&jkeys_state[_JKEY_R ])
break;
END
IF (jkeys_state[_JKEY_SELECT ])
vy=0; ay=1.5; ax=0;
while(!jkeys_state[_JKEY_MENU ])
if (jkeys_state[_JKEY_LEFT ]) ax=-1.5; end
if (jkeys_state[_JKEY_RIGHT ]) ax=1.5; end
if (jkeys_state[_JKEY_DOWN ]) ay=2.25; end
if (jkeys_state[_JKEY_UP ]) ay=1.15; end
vx+=ax;
vy+=ay;
x+=vx;
y+=vy;
if (x>=305) vx=-vx; x=304.999; end
if (x<=15) vx=-vx; x=15.001; end
if (y>=225) vy=-vy; y=224.999; end
if (y<=15) vy=-vy; y=15.001; end
ax=0; ay=1.5;
if (jkeys_state[_JKEY_MENU ])
vy=0; ay=1.5; ax=0;
end
FRAME;
end
END
FRAME;
END
END
PROCESS personajeb()
PRIVATE
int vx, vy, ax, ay;
END
BEGIN
x=160;y=120;file=id1;graph=1;
LOOP
IF (jkeys_state[_JKEY_Y ])
IF (y>=15)
y=y-5;
end
END
IF (jkeys_state[_JKEY_X ])
if (y<=225)
y=y+5;
end
END
IF (jkeys_state[_JKEY_A ])
if (x>=15)
x=x-5;
end
END
IF (jkeys_state[_JKEY_B ])
if (x<=305)
x=x+5;
end
END
IF (jkeys_state[_JKEY_L ]&&jkeys_state[_JKEY_R ])
break;
END
IF (jkeys_state[_JKEY_SELECT ])
vy=0; ay=1.5; ax=0;
while(!jkeys_state[_JKEY_MENU ])
if (jkeys_state[_JKEY_A ]) ax=-1.5; end
if (jkeys_state[_JKEY_B ]) ax=1.5; end
if (jkeys_state[_JKEY_X ]) ay=2.25; end
if (jkeys_state[_JKEY_Y ]) ay=1.15; end
vx+=ax;
vy+=ay;
x+=vx;
y+=vy;
if (x>=305) vx=-vx; x=304.999; end
if (x<=15) vx=-vx; x=15.001; end
if (y>=225) vy=-vy; y=224.999; end
if (y<=15) vy=-vy; y=15.001; end
ax=0; ay=1.5;
if (jkeys_state[_JKEY_MENU ])
vy=0; ay=1.5; ax=0;
end
FRAME;
end
END
FRAME;
END
END
Supongo que todo será una bobada y realmente será muy simple configurar los .gpe para juegos Bennu pero, ostia me está empezando a calentar :mad:
El .prg compila y funciona en PC, tengo por ahi el jkeys.lib, y metidos en la carpeta del juego en la Wiz el dcb, el jkeys, un fpg y el prg (que no se si hace falta pero ahi esta).
El problema? El mismo que en el topic que tengo por ahi abierto del Frikimusic, según el .gpe que ponga se queda colgado cargando o me echa. Creo que ya tengo el bgd-runtime de las pelotas en todas las carpetas que se me ha ocurrido (en la raiz de la NAND, carpeta game de la NAND, raiz de la SD, carpeta game de la SD, dentro de la carpeta del propio juego...) pero creo que aun asi no lo está encontrando...
Me estoy desesperando bastante con el Bennu/Fenix, porque si voy a tener que romperme la cabeza de esta forma cada vez que quiera meter algo en esos lenguajes para la Wiz a lo mejor me merecía la pena mandar a tomar por culo la portabilidad del Bennu y escribir en ensamblador [wei]
Uno de los .gpe que he estado probando, proveniente del eek
#!/bin/sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../bgd-runtime
PATH=$PATH:../bgd-runtime
echo 2 > /proc/cpu/alignment
for prg in *.prg; do
name=`basename $prg .prg`
bgdc $prg
bgdi $name
done
cd /usr/gp2x
exec /usr/gp2x/gp2xmenu
El código del programa que estoy intentando probar en la Wiz, por si el problema no fuera del gpe (aunque ya os digo que en el ordenador va)
import "mod_video";
import "mod_map";
import "mod_key";
#include "jkeys.lib"
GLOBAL
int id1;
END
PROCESS main()
PRIVATE
int id1;
END
BEGIN
jkeys_set_default_keys();
jkeys_controller();
set_mode(320,240,32);
id1=load_fpg("nuevo.fpg");
personaje();
personajeb();
END
PROCESS personaje()
PRIVATE
int vx, vy, ax, ay;
END
BEGIN
x=160;y=120;file=id1;graph=1;
LOOP
IF (jkeys_state[_JKEY_UP ])
IF (y>=15)
y=y-5;
end
END
IF (jkeys_state[_JKEY_DOWN ])
if (y<=225)
y=y+5;
end
END
IF (jkeys_state[_JKEY_LEFT ])
if (x>=15)
x=x-5;
end
END
IF (jkeys_state[_JKEY_RIGHT ])
if (x<=305)
x=x+5;
end
END
IF (jkeys_state[_JKEY_L ]&&jkeys_state[_JKEY_R ])
break;
END
IF (jkeys_state[_JKEY_SELECT ])
vy=0; ay=1.5; ax=0;
while(!jkeys_state[_JKEY_MENU ])
if (jkeys_state[_JKEY_LEFT ]) ax=-1.5; end
if (jkeys_state[_JKEY_RIGHT ]) ax=1.5; end
if (jkeys_state[_JKEY_DOWN ]) ay=2.25; end
if (jkeys_state[_JKEY_UP ]) ay=1.15; end
vx+=ax;
vy+=ay;
x+=vx;
y+=vy;
if (x>=305) vx=-vx; x=304.999; end
if (x<=15) vx=-vx; x=15.001; end
if (y>=225) vy=-vy; y=224.999; end
if (y<=15) vy=-vy; y=15.001; end
ax=0; ay=1.5;
if (jkeys_state[_JKEY_MENU ])
vy=0; ay=1.5; ax=0;
end
FRAME;
end
END
FRAME;
END
END
PROCESS personajeb()
PRIVATE
int vx, vy, ax, ay;
END
BEGIN
x=160;y=120;file=id1;graph=1;
LOOP
IF (jkeys_state[_JKEY_Y ])
IF (y>=15)
y=y-5;
end
END
IF (jkeys_state[_JKEY_X ])
if (y<=225)
y=y+5;
end
END
IF (jkeys_state[_JKEY_A ])
if (x>=15)
x=x-5;
end
END
IF (jkeys_state[_JKEY_B ])
if (x<=305)
x=x+5;
end
END
IF (jkeys_state[_JKEY_L ]&&jkeys_state[_JKEY_R ])
break;
END
IF (jkeys_state[_JKEY_SELECT ])
vy=0; ay=1.5; ax=0;
while(!jkeys_state[_JKEY_MENU ])
if (jkeys_state[_JKEY_A ]) ax=-1.5; end
if (jkeys_state[_JKEY_B ]) ax=1.5; end
if (jkeys_state[_JKEY_X ]) ay=2.25; end
if (jkeys_state[_JKEY_Y ]) ay=1.15; end
vx+=ax;
vy+=ay;
x+=vx;
y+=vy;
if (x>=305) vx=-vx; x=304.999; end
if (x<=15) vx=-vx; x=15.001; end
if (y>=225) vy=-vy; y=224.999; end
if (y<=15) vy=-vy; y=15.001; end
ax=0; ay=1.5;
if (jkeys_state[_JKEY_MENU ])
vy=0; ay=1.5; ax=0;
end
FRAME;
end
END
FRAME;
END
END
Supongo que todo será una bobada y realmente será muy simple configurar los .gpe para juegos Bennu pero, ostia me está empezando a calentar :mad: