Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Prg on December 29, 2009, 07:55:46 PM

Title: características al programar para wiz
Post by: Prg on December 29, 2009, 07:55:46 PM
bien, la idea es recopilar información sobre las características para los juegos que se programan en wiz (para aquellos que no tenemos una)

primero sobre la medida de scroll, eso ya se comentó, y aquí hay una liga:
http://forum.bennugd.org/index.php?topic=962.0

detectar teclas en la wiz:
http://forum.bennugd.org/index.php?topic=737.0

pantalla táctil:
mouse.left y coordenadas de mouse.

discusiones con respecto al wiz:
http://forum.bennugd.org/index.php?topic=772.0
ahora algunas dudas:

he escuchado rumores acerca de que no es bueno modificar el size del gráfico, es verdad?
cuánto es la recaida de fps ante los escalados de gráficos?

cómo está el tema de las transparencias?
están completamente prohibidas?

colisiones, cómo van?
consumen mucho en el wiz?

sugerencias, problemas, ventajas?

saludos

pd:
una duda que tengo desde hace tiempo que no tiene mucho que ver con la wiz, al hacer exit() libero recursos? o lo tengo que hacer antes?
Title: Re: características al programar para wiz
Post by: SplinterGU on December 30, 2009, 12:34:10 AM
al morir un programa el sistema libera todo aquello que no se ha liberado...
Title: Re: características al programar para wiz
Post by: SplinterGU on December 30, 2009, 12:35:53 AM
todas las demas preguntas, creo que mientras no abuses no hay problema...
Title: Re: características al programar para wiz
Post by: Futu-block on December 30, 2009, 08:58:13 AM
transparencias?? que quieres decir con transparencias?? porque un esprite es transparente por algunas partes...
Title: Re: características al programar para wiz
Post by: Hokutoy on December 30, 2009, 01:25:06 PM
Quote from: Futublog on December 30, 2009, 08:58:13 AM
transparencias?? que quieres decir con transparencias?? porque un esprite es transparente por algunas partes...
Se refiere, imagino, a si usas un efecto de transparencia como flags=4;

La verdad es que el tema de Flags y el tema de size(sobretodo size) si que afectan bastantante al rendimiento.
Si tienes solo 4 o 5 graficos "resizeados" no pasa nada pero si usas por ejemplo enemigos resizeados, aunque sea a poco tamaño y juntes 10 o 15 sí que notaras caidas importante de framerate.

Si no teneis wiz para probar el codigo intentar encontrar a alguien con una para que os haga de betatester frecuentemente... a veces añades codigo nuevo que en el PC va de muerte y que en  la wiz, por el motivo que sea, ralentiza bastante.

Saludos!
Title: Re: características al programar para wiz
Post by: Prg on December 31, 2009, 01:43:25 AM
Quote from: Hokutoy on December 30, 2009, 01:25:06 PM
Quote from: Futublog on December 30, 2009, 08:58:13 AM
transparencias?? que quieres decir con transparencias?? porque un esprite es transparente por algunas partes...
Se refiere, imagino, a si usas un efecto de transparencia como flags=4;

La verdad es que el tema de Flags y el tema de size(sobretodo size) si que afectan bastantante al rendimiento.
Si tienes solo 4 o 5 graficos "resizeados" no pasa nada pero si usas por ejemplo enemigos resizeados, aunque sea a poco tamaño y juntes 10 o 15 sí que notaras caidas importante de framerate.

Si no teneis wiz para probar el codigo intentar encontrar a alguien con una para que os haga de betatester frecuentemente... a veces añades codigo nuevo que en el PC va de muerte y que en  la wiz, por el motivo que sea, ralentiza bastante.

Saludos!


a eso me refería, gracias por la información amigo :)
Title: Re: características al programar para wiz
Post by: Drumpi on December 31, 2009, 02:30:55 AM
Flags=4 es mucho más efectivo en rendimiento que usar la local ALPHA.

En teoría, si, usar size y alpha consumen recursos... pero en GP2X. Con 4 o 5 procesos con un alpha distinta de 255 si que se nota la bajada de rendimiento: de 60 a 50fps. En WIZ no debería haber tanto problema, pues hablamos de una máquina por defecto 2.5 veces más potente (hasta 4 veces usando overclock).
Pero eso si, no es bueno abusar, seguimos hablando de recursos limitados.

De momento, yo estoy haciendo mis pruebas en mi gp2x, y creo que estoy haciendo BURRADAS, y apenas he perdido unos 4 o 5 fps: voy a 50 fps y he metido unos 100 procesos tile con siete procesos enemigo, con una detección de durezas de considerable tamaño, y detectando colisiones. Lo que he probado, a 240MHz y activando los RAM timings (cambio de los tiempos de reacción de la RAM a unos más rápidos) va suave suave, por lo que en wiz debe ir de fábula.

Lo que si está prohibido es usar resoluciones más altas a la nativa, porque ahi si que cae el rendimiento a lo bestia (a poco que le metas alguna transparencia, adiós). En mi negrita, 800x600 va por debajo de 25fps.
Y no lo he probado en Bennu, pero los comandos PUT a toda la pantalla tampoco es muy buena idea. Si Splinter ha hecho MUY bien sus deberes, ya no debería ser tanto problema, pero en Fenix sí que lo era.

Recomendación: la misma que todos, haz pruebas, usa una WIZ, una GP2X o un PC a 500-800MHz.
Title: Re: características al programar para wiz
Post by: Hokutoy on December 31, 2009, 06:02:11 AM
Algo que si es importante... si pensais utilizar overclock en la wiz (con el polluxset) pensar que la tactil se descalibra una barbaridad... hablo de 2 a 3 cms de fallo que en la pantallita de la wiz es brutal.
Resumen... overclock en la wiz con un juego no tactil, genial, mas fluidez. Overclock en un juego que usa tactil con frecuencia, inviable.

Aunque sin overclockear la wiz, se tendría que poder hacer cualquier cosa de sobras.

Saludos!

Title: Re: características al programar para wiz
Post by: Futu-block on December 31, 2009, 11:35:59 AM
Quote from: Hokutoy on December 30, 2009, 01:25:06 PM
Quote from: Futublog on December 30, 2009, 08:58:13 AM
transparencias?? que quieres decir con transparencias?? porque un esprite es transparente por algunas partes...
Se refiere, imagino, a si usas un efecto de transparencia como flags=4;

La verdad es que el tema de Flags y el tema de size(sobretodo size) si que afectan bastantante al rendimiento.
Si tienes solo 4 o 5 graficos "resizeados" no pasa nada pero si usas por ejemplo enemigos resizeados, aunque sea a poco tamaño y juntes 10 o 15 sí que notaras caidas importante de framerate.

Si no teneis wiz para probar el codigo intentar encontrar a alguien con una para que os haga de betatester frecuentemente... a veces añades codigo nuevo que en el PC va de muerte y que en  la wiz, por el motivo que sea, ralentiza bastante.

Saludos!


A lo que comento: ¿para que usar un size de un personaje, enemigo o lo que sea si es una pantalla de 320 x 240?? prefiero reducirlo con el paint ^^U pixelará de todas formas...

un par de cuestions mor: -Un .fpg con imagenes tan pequeñas (esprites 32 x 32 por ejemplo) no relentizará el rendimiento aunque tenga muchiiiiiiisimas ¿no? lo digo para no usar flag para invertir la imagen...

-¿como va el tema del puntero? cambiando de tema...

a lo mejor es
Quotepantalla táctil:
mouse.left y coordenadas de mouse.
pero estoy muy pez en eso...
Title: Re: características al programar para wiz
Post by: BoMbErLiNk on December 31, 2009, 02:00:37 PM
Quote from: Hokutoy on December 31, 2009, 06:02:11 AM
Algo que si es importante... si pensais utilizar overclock en la wiz (con el polluxset) pensar que la tactil se descalibra una barbaridad... hablo de 2 a 3 cms de fallo que en la pantallita de la wiz es brutal.
Resumen... overclock en la wiz con un juego no tactil, genial, mas fluidez. Overclock en un juego que usa tactil con frecuencia, inviable.

Aunque sin overclockear la wiz, se tendría que poder hacer cualquier cosa de sobras.

Saludos!

Yo no he tenido ese problema y overclockeo a 800 mhz con polluxset..

--

Respecto al alpha, si es 1 proceso pero ocupa toda la pantalla va a ser siempre lento, es decir el tamaño del gráfico con transparencia es tan importante como el número de ellos.

Futulog puedes usar flags invertido sin ningún tipo de problema.
Title: Re: características al programar para wiz
Post by: Prg on December 31, 2009, 02:53:39 PM
Quotelos comandos PUT a toda la pantalla tampoco es muy buena idea. Si Splinter ha hecho MUY bien sus deberes, ya no debería ser tanto problema, pero en Fenix sí que lo era.

mi juego se basa en dibujado con draw, habrá problemas?

la variable exit_status funciona en la wiz, sirve para algo?

Quote
-¿como va el tema del puntero? cambiando de tema...

a lo mejor es

Quotepantalla táctil:
mouse.left y coordenadas de mouse.
pero estoy muy pez en eso...
pues tengo entendido que pulsar sobre la pantalla es igual a mouse.left, y por ende las coordenadas de la pulsación deben ser las del mouse :)

muchas gracias por sus comentarios, me están sirviendo muchísimo, ya que en México la wiz es algo del otro mundo (no la he visto en ningún lugar  ??? ).
Quote
Algo que si es importante... si pensais utilizar overclock en la wiz (con el polluxset) pensar que la tactil se descalibra una barbaridad... hablo de 2 a 3 cms de fallo que en la pantallita de la wiz es brutal.
eso se activa con código o de alguna otra forma, es que mi juego es completamente táctil, y si necesita presición (de cm a mm)
Title: Re: características al programar para wiz
Post by: Hokutoy on December 31, 2009, 04:49:53 PM
Quote from: BoMbErLiNk on December 31, 2009, 02:00:37 PM
Quote from: Hokutoy on December 31, 2009, 06:02:11 AM
Algo que si es importante... si pensais utilizar overclock en la wiz (con el polluxset) pensar que la tactil se descalibra una barbaridad... hablo de 2 a 3 cms de fallo que en la pantallita de la wiz es brutal.
Resumen... overclock en la wiz con un juego no tactil, genial, mas fluidez. Overclock en un juego que usa tactil con frecuencia, inviable.

Aunque sin overclockear la wiz, se tendría que poder hacer cualquier cosa de sobras.

Saludos!

Yo no he tenido ese problema y overclockeo a 800 mhz con polluxset..

--

Respecto al alpha, si es 1 proceso pero ocupa toda la pantalla va a ser siempre lento, es decir el tamaño del gráfico con transparencia es tan importante como el número de ellos.

Futulog puedes usar flags invertido sin ningún tipo de problema.
Buenas Bomber!
Eso que comentas me interesa bastante la verdad... te importa pasarme el .gpe que usas para cargar el pollusex sin que se descalibre la pantalla? Lo he probado bastntes veces con varios juegos mios que usan la tactil y el resultado siempre es el mismo cuando usas Bennu y overclock... pulsas en mitad de la pantalla y el "cursor" aparece en la derecha del todo... con un fallo de sensibilidad de 2 a 3 cms.
Si no es molestia pasame el .gpe (o escribe en el foro las lineas)  o un ejemplo si tienes algo de tiempo.

Gracias!




Title: Re: características al programar para wiz
Post by: BoMbErLiNk on December 31, 2009, 06:05:26 PM
Pues uso el siguiente código, espero que te sirva  :)

Quote
#!/bin/sh
./pollux_set 'lcd_timings=397,1,37,277,341,0,17,337;dpc_clkdiv0 =9;cpuclk=800;ram_timings=2,9,4,1,1,1,1'
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../ruta_mi_juego/bgd-runtime
PATH=$PATH:../ruta_mi_juego/bgd-runtime

echo 2 > /proc/cpu/alignment

bgdi mi_juego

sync
cd /usr/gp2x
exec /usr/gp2x/gp2xmenu

Si te sigue fallando intenta recalibrar la pantalla, quizas el problema este por ahí  ;)

--
Por cierto he visto que andabas haciendo un Streets of rage de cartas o algo así, tienes alguna captura o más info ?  ;D
Title: Re: características al programar para wiz
Post by: Drumpi on December 31, 2009, 06:32:04 PM
La lógica es la siguiente: a procesos con imágeens más grandes, más pixels que procesar. Así que un size con imágenes pequeñas no pasa nada, pero a medida que aumenta, el rendimiento baja, pero desconozco el tope.
Se pueden tener muchos procesos simultáneos (ya lo he dicho, más de 150 procesos tile de 16x16 sin problemas de rendimiento), pero ojo, la creación y la destrucción de procesos consume tiempo.
Y tambien se puede usar draw_xxx sin miedo, pero no se hasta que punto: en Fenix+GP2X el límite estaba en 320x120 pixels por frame. Bennu es más rápido, y la wiz unas 3 veces más potente.
Title: Re: características al programar para wiz
Post by: Prg on December 31, 2009, 07:28:46 PM
entiendo, creo que voy entonces bien. gracias drumpi, karma++
Title: Re: características al programar para wiz
Post by: simulatorone on January 16, 2010, 03:31:40 AM
Me a ayudado bastante este post, para mi futuro juego para Wiz (y tambien para soporte Windows/linux)
Title: Re: características al programar para wiz
Post by: gecko on January 27, 2010, 07:55:26 PM
reflotando un poco este tema...
estuve buscando bastante por el foro, y termine mas confundido que al principio, jaja.

Lo que quiero saber es:
- como recibe bennu los controles de la WIZ?
- que botones exactamente se pueden usar de la WIZ en bennu?
- existe una forma "recomendada" de manejar esos controles?
- el volumen de la consola se puede / tiene que manejar desde bennu o no?
- funciona todo de la misma forma que lo hace mi joystick en windows?

Bueno, espero me puedan ayudar un poco con este tema, saludos!
Title: Re: características al programar para wiz
Post by: Prg on January 27, 2010, 08:05:30 PM
los controles se manejan mediante el siguiente archivo (está en el link)

http://forum.bennugd.org/index.php?topic=737.0

también hay un ejemplo.

solo me queda una duda (aprovecho).

tenemos que usar
[code language="bennu"]
jkeys_state[ _JKEY_VOLUP     ]
jkeys_state[ _JKEY_VOLDOWN   ]
[/code]
internamente para el volumen?

Title: Re: características al programar para wiz
Post by: SplinterGU on January 27, 2010, 08:13:02 PM
si, con eso detectas si estan pulsandose las teclas del volumen y en consecuencia, tenes que subir el volumen en tu juego o usar esas teclas para otras cosas... la wiz no sube el volumen sola... hay que hacerlo por software.
Title: Re: características al programar para wiz
Post by: gecko on January 27, 2010, 08:22:51 PM
muchas gracias, cualquier cosa vuelvo en un rato!
Title: Re: características al programar para wiz
Post by: Prg on January 28, 2010, 01:37:55 AM
Quote from: SplinterGU on January 27, 2010, 08:13:02 PM
si, con eso detectas si estan pulsandose las teclas del volumen y en consecuencia, tenes que subir el volumen en tu juego o usar esas teclas para otras cosas... la wiz no sube el volumen sola... hay que hacerlo por software.
ahhh!!.. genial, gracias :)
Title: Re: características al programar para wiz
Post by: Drumpi on January 28, 2010, 02:23:28 AM
Creo que lo comenté hace poco:
Se debe cambiar el volumen de todos los canales WAV con set_channel_volume(-1,[0,128]) y también set_song_volume([0,128]) ya que van por separado. Con eso se controla el volumen general.
Title: Re: características al programar para wiz
Post by: simulatorone on January 28, 2010, 07:20:05 AM
set_channel_volume(-1,[0,128]) ???

con solo poner -1 es igual a todos los sonidos?? :O
Lo provare!
yo lo usaba de 1 en uno, ya que la ayuda no me dice que si pongo -1 es equivalente a todos.


Si, yo ya tengo programado el volumen, y va muy bien :)
Title: Re: características al programar para wiz
Post by: Prg on January 28, 2010, 05:59:32 PM
Quote from: simulatorone on January 28, 2010, 07:20:05 AM
set_channel_volume(-1,[0,128]) ???

con solo poner -1 es igual a todos los sonidos?? :O
Lo provare!
yo lo usaba de 1 en uno, ya que la ayuda no me dice que si pongo -1 es equivalente a todos.


Si, yo ya tengo programado el volumen, y va muy bien :)
sip. yo lo tengo como -1 en set_channel_volume y si me funciona en todos
Title: Re: características al programar para wiz
Post by: simulatorone on January 29, 2010, 10:00:34 AM
Guay!!


alguien que a provado la wiz lo suficiente para saber si es malo usar load_* y unload_* muchas veces??
es que algo raro me paso con el juego del PUSH...
http://forum.bennugd.org/index.php?topic=1127.msg16953#msg16953
Title: Re: características al programar para wiz
Post by: FreeYourMind on January 29, 2010, 01:42:12 PM
No te olvides antes de llamar un unload_wav comprobar si es nulo, sino te va petar.
Title: Re: características al programar para wiz
Post by: SplinterGU on January 29, 2010, 02:58:49 PM
y tras un unload, setear la variable a NULL
Title: Re: características al programar para wiz
Post by: SplinterGU on January 29, 2010, 02:59:49 PM
aunque esto lo podriamos cambiar o dar soporte a una funcion extra que setee ya a null la variable tras un unload...
Title: Re: características al programar para wiz
Post by: FreeYourMind on January 29, 2010, 05:23:48 PM
Eso es cuestionable, y tu siempre has defendido lo opuesto, o sea, que Bennu tenga más lógica que Div o Fenix,  si quieres hacer eso, tambien tendria lógica si haces un unload a algo que no existe que no pete como ocurria en Div, y que lo controle internamente, ya que hace tiempo comentaba por aqui estas diferencias con DIV al hacer mi port. De todos modos, lo mas importante no es implementar estas cosas o dejar de hacerlo, pero si documentarlas si se hacen, para que la gente sepa como funcionan las cosas cuando las utiliza en Bennu.
Title: Re: características al programar para wiz
Post by: SplinterGU on January 30, 2010, 02:53:06 AM
en la wiki hay mucha documentacion...
Title: Re: características al programar para wiz
Post by: Drumpi on January 30, 2010, 02:58:18 AM
Yo he tenido recientemente errores al intentar reproducir música que se ha descargado o al descargarla cuando ya la había descargado.
Por suerte, ya sabía por donde venía el fallo (es lo que tiene compilar tras cada 10 lineas nuevas), pero podría dar algún aviso de "sonido no encontrado" o algo así.

Por cierto, me sorprende que, pudiendo cargar sólo un archivo de música con load_song, funciones como is_playing_song(), pause_song() o fade_music_off(milisegundos) no necesiten el ID de la canción cargada, y el unload_song() si. ¿O acaso se puede cargar más de una canción, pero sólo reproducir una?
Title: Re: características al programar para wiz
Post by: Futu-block on February 01, 2010, 10:59:59 AM
¿como se asignan las teclas de wiz??

mexplico: solo uso unas cinco o seis teclas en el juego y me gustaria asignarlas a wiz, segun esto: http://forum.bennugd.org/index.php?topic=737.0 osea el codigo de la wiki:
Quote from: SplinterGU on August 28, 2009, 03:17:05 AM
jkeys.lib

import "mod_key";
import "mod_joy";
import "mod_proc";

/* -------------------------------------------------------------------------- */

const
    _JKEY_UP        =  0 ;
    _JKEY_UPLEFT    =  1 ;
    _JKEY_LEFT      =  2 ;
    _JKEY_DOWNLEFT  =  3 ;
    _JKEY_DOWN      =  4 ;
    _JKEY_DOWNRIGHT =  5 ;
    _JKEY_RIGHT     =  6 ;
    _JKEY_UPRIGHT   =  7 ;
    _JKEY_MENU      =  8 ;
    _JKEY_SELECT    =  9 ;
    _JKEY_L         = 10 ;
    _JKEY_R         = 11 ;
    _JKEY_A         = 12 ;
    _JKEY_B         = 13 ;
    _JKEY_X         = 14 ;
    _JKEY_Y         = 15 ;
    _JKEY_VOLUP     = 16 ;
    _JKEY_VOLDOWN   = 17 ;
    _JKEY_CLICK     = 18 ;

    _JKEY_LAST      = 19 ;

end

/* -------------------------------------------------------------------------- */

global
    int jkeys[_JKEY_LAST];
    int jkeys_state[_JKEY_LAST];
end

/* -------------------------------------------------------------------------- */

function jkeys_set_default_keys()
begin
    jkeys[ _JKEY_UP        ] = _UP ;
    jkeys[ _JKEY_UPLEFT    ] = 0 ;
    jkeys[ _JKEY_LEFT      ] = _LEFT ;
    jkeys[ _JKEY_DOWNLEFT  ] = 0 ;
    jkeys[ _JKEY_DOWN      ] = _DOWN ;
    jkeys[ _JKEY_DOWNRIGHT ] = 0 ;
    jkeys[ _JKEY_RIGHT     ] = _RIGHT ;
    jkeys[ _JKEY_UPRIGHT   ] = 0 ;
    jkeys[ _JKEY_MENU      ] = _ESC ;
    jkeys[ _JKEY_SELECT    ] = _ENTER ;
    jkeys[ _JKEY_L         ] = 0 ;
    jkeys[ _JKEY_R         ] = 0 ;
    jkeys[ _JKEY_A         ] = _A ;
    jkeys[ _JKEY_B         ] = _D ;
    jkeys[ _JKEY_X         ] = _S ;
    jkeys[ _JKEY_Y         ] = _W ;
    jkeys[ _JKEY_VOLUP     ] = 0 ;
    jkeys[ _JKEY_VOLDOWN   ] = 0 ;
    jkeys[ _JKEY_CLICK     ] = 0 ;

end

/* -------------------------------------------------------------------------- */

process jkeys_controller()
private
    i;
begin

    signal_action( s_kill, s_ign );
    signal( type jkeys_controller, s_kill );
    signal_action( s_kill, s_dfl );

    loop
        for ( i = 0; i < _JKEY_LAST; i++ )
            if ( jkeys[i] )
                jkeys_state[i] = key( jkeys[i] );
            else
                jkeys_state[i] = 0;
            end
        end

        if ( os_id == OS_GP2X_WIZ && joy_number() ) /* Wiz */
            jkeys_state[ _JKEY_UP        ] |= joy_getbutton( 0, _JKEY_UP        );
            jkeys_state[ _JKEY_UPLEFT    ] |= joy_getbutton( 0, _JKEY_UPLEFT    );
            jkeys_state[ _JKEY_LEFT      ] |= joy_getbutton( 0, _JKEY_LEFT      );
            jkeys_state[ _JKEY_DOWNLEFT  ] |= joy_getbutton( 0, _JKEY_DOWNLEFT  );
            jkeys_state[ _JKEY_DOWN      ] |= joy_getbutton( 0, _JKEY_DOWN      );
            jkeys_state[ _JKEY_DOWNRIGHT ] |= joy_getbutton( 0, _JKEY_DOWNRIGHT );
            jkeys_state[ _JKEY_RIGHT     ] |= joy_getbutton( 0, _JKEY_RIGHT     );
            jkeys_state[ _JKEY_UPRIGHT   ] |= joy_getbutton( 0, _JKEY_UPRIGHT   );
            jkeys_state[ _JKEY_MENU      ] |= joy_getbutton( 0, _JKEY_MENU      );
            jkeys_state[ _JKEY_SELECT    ] |= joy_getbutton( 0, _JKEY_SELECT    );
            jkeys_state[ _JKEY_L         ] |= joy_getbutton( 0, _JKEY_L         );
            jkeys_state[ _JKEY_R         ] |= joy_getbutton( 0, _JKEY_R         );
            jkeys_state[ _JKEY_A         ] |= joy_getbutton( 0, _JKEY_A         );
            jkeys_state[ _JKEY_B         ] |= joy_getbutton( 0, _JKEY_B         );
            jkeys_state[ _JKEY_X         ] |= joy_getbutton( 0, _JKEY_X         );
            jkeys_state[ _JKEY_Y         ] |= joy_getbutton( 0, _JKEY_Y         );
            jkeys_state[ _JKEY_VOLUP     ] |= joy_getbutton( 0, _JKEY_VOLUP     );
            jkeys_state[ _JKEY_VOLDOWN   ] |= joy_getbutton( 0, _JKEY_VOLDOWN   );
            jkeys_state[ _JKEY_CLICK     ] |= joy_getbutton( 0, _JKEY_CLICK     );

            jkeys_state[ _JKEY_UP        ] |= jkeys_state[ _JKEY_UPLEFT    ] | jkeys_state[ _JKEY_UPRIGHT   ] ;
            jkeys_state[ _JKEY_DOWN      ] |= jkeys_state[ _JKEY_DOWNRIGHT ] | jkeys_state[ _JKEY_DOWNLEFT  ] ;
            jkeys_state[ _JKEY_LEFT      ] |= jkeys_state[ _JKEY_UPLEFT    ] | jkeys_state[ _JKEY_DOWNLEFT  ] ;
            jkeys_state[ _JKEY_RIGHT     ] |= jkeys_state[ _JKEY_UPRIGHT   ] | jkeys_state[ _JKEY_DOWNRIGHT ] ;
        end

        frame;
    end
end

/* -------------------------------------------------------------------------- */
he de copiarlo todo y pegarlo en el programa + añadir la libreria pertinente...

¿es necesario o con poner las teclas que uso tengo bastante???
Title: Re: características al programar para wiz
Post by: La momia que fuma on February 01, 2010, 11:55:47 AM
Mete un #include "jkeys.lib" y en tu juego en lugar de usar key(_lateclaquesea) usa _JKEY_botonquesea en los ifs, y en pc te funcionara con teclado y en la wiz con los botoncios.

En la funcion jkeys_set_default_keys() puedes cambiar las equivalencias boton WIZ-tecla PC si no te gustan las que vienen por defecto...
Title: Re: características al programar para wiz
Post by: DCelso on February 01, 2010, 12:50:55 PM
Momia, siento contradecirte pero no funciona del todo asi.
A ver, lo primero que tienes que hacer es un mapeo entre las teclas que usas en el ordenador (teclado) y las teclas que quieres que sean en la wiz.
Esto se hace pegando todo el código que has puesto al inicio de tu .prg y cambiando el mapeo en el siguiente código:

function jkeys_set_default_keys()
begin
   jkeys[ _JKEY_UP        ] = _UP ;
   jkeys[ _JKEY_UPLEFT    ] = 0 ;
   jkeys[ _JKEY_LEFT      ] = _LEFT ;
   jkeys[ _JKEY_DOWNLEFT  ] = 0 ;
   jkeys[ _JKEY_DOWN      ] = _DOWN ;
   jkeys[ _JKEY_DOWNRIGHT ] = 0 ;
   jkeys[ _JKEY_RIGHT     ] = _RIGHT ;
   jkeys[ _JKEY_UPRIGHT   ] = 0 ;
   jkeys[ _JKEY_MENU      ] = _ESC ;
   jkeys[ _JKEY_SELECT    ] = _ENTER ;
   jkeys[ _JKEY_L         ] = 0 ;
   jkeys[ _JKEY_R         ] = 0 ;
   jkeys[ _JKEY_A         ] = _A ;
   jkeys[ _JKEY_B         ] = _D ;
   jkeys[ _JKEY_X         ] = _S ;
   jkeys[ _JKEY_Y         ] = _W ;
   jkeys[ _JKEY_VOLUP     ] = 0 ;
   jkeys[ _JKEY_VOLDOWN   ] = 0 ;
   jkeys[ _JKEY_CLICK     ] = 0 ;

end


por ejemplo aqui
   jkeys[ _JKEY_MENU      ] = _ESC ;
decimos que queremos mapear la tecla escape del PC con la tecla menu de wiz.


En tu caso, aqui deberías de poner todas a 0 y cambiar solo las que tu quieres mapear con las de tu juego.

Luego en donde hayas usado la función key(_tecla)

tienes que sustituirlo por keystate[_teclawiz], donde tecla wiz son las que podimos ver en el mapeo anterior, es decir
_JKEY_MENU para el caso de escape, etc.

para el ejemplo anterior, donde ponias if key(_esc) ... tienes que poner if (key_state[_JKEY_MENU]) ...


Haciendo esto podrás usar tu juego en windows usando las teclas del pc y en wiz usando tus teclas con el mismo código sin necesidad de tener dos versiones (una para wiz y otra para pc).
Title: Re: características al programar para wiz
Post by: Futu-block on February 01, 2010, 07:06:51 PM
buf, estoy es muy lioso y hay que estudiarlo mas detenidamente, así que para el concurso no entrará las teclas de wiz, y si me descalifican que me descalifiquen; ya habrá mas concursos...

je je je
Title: Re: características al programar para wiz
Post by: DCelso on February 01, 2010, 08:31:48 PM
¿complicado?
el que, si es facilísimo.

Puedes hacerlo de otra forma que quizá te sea más facil de entender pero más dificil de implementar

añade a tus condicionales

if (key(_teclaPC))
  "hago cosas"
end

algo como


const
    _JKEY_UP        =  0 ;
    _JKEY_UPLEFT    =  1 ;
    _JKEY_LEFT      =  2 ;
    _JKEY_DOWNLEFT  =  3 ;
    _JKEY_DOWN      =  4 ;
    _JKEY_DOWNRIGHT =  5 ;
    _JKEY_RIGHT     =  6 ;
    _JKEY_UPRIGHT   =  7 ;
    _JKEY_MENU      =  8 ;
    _JKEY_SELECT    =  9 ;
    _JKEY_L         = 10 ;
    _JKEY_R         = 11 ;
    _JKEY_A         = 12 ;
    _JKEY_B         = 13 ;
    _JKEY_X         = 14 ;
    _JKEY_Y         = 15 ;
    _JKEY_VOLUP     = 16 ;
    _JKEY_VOLDOWN   = 17 ;
    _JKEY_CLICK     = 18 ;

    _JKEY_LAST      = 19 ;

end

if (key(_teclaPC) OR ( joy_number()  AND joy_getbutton( 0, _JKEY_teclaWiz) ) )
"hago cosas"
end


como ves es tu comprobación de tecla para PC y una comprobación de si hay joystic y en caso de que haya saber si está pulsado el botón del joystic.
por ejemplo si queremos comprobar si está pulsada la tecla flecha arriba en el PC o arriba de la cruceta de wiz sería esto.


if (key(_UP) OR ( joy_number()  AND joy_getbutton( 0, _JKEY_UP) ) )
"hago cosas"
end


Como verás queda un if muy feote y que hay que ir cambiando quizás en muchos sitios, por eso splintergu nos deleitó con ese controlador más cómodo.




Title: Re: características al programar para wiz
Post by: SplinterGU on February 01, 2010, 09:12:10 PM
Quote from: Futublog on February 01, 2010, 10:59:59 AM
¿como se asignan las teclas de wiz??

mexplico: solo uso unas cinco o seis teclas en el juego y me gustaria asignarlas a wiz, segun esto: http://forum.bennugd.org/index.php?topic=737.0 osea el codigo de la wiki:
Quote from: SplinterGU on August 28, 2009, 03:17:05 AM
jkeys.lib

import "mod_key";
import "mod_joy";
import "mod_proc";

/* -------------------------------------------------------------------------- */

const
    _JKEY_UP        =  0 ;
    _JKEY_UPLEFT    =  1 ;
    _JKEY_LEFT      =  2 ;
    _JKEY_DOWNLEFT  =  3 ;
    _JKEY_DOWN      =  4 ;
    _JKEY_DOWNRIGHT =  5 ;
    _JKEY_RIGHT     =  6 ;
    _JKEY_UPRIGHT   =  7 ;
    _JKEY_MENU      =  8 ;
    _JKEY_SELECT    =  9 ;
    _JKEY_L         = 10 ;
    _JKEY_R         = 11 ;
    _JKEY_A         = 12 ;
    _JKEY_B         = 13 ;
    _JKEY_X         = 14 ;
    _JKEY_Y         = 15 ;
    _JKEY_VOLUP     = 16 ;
    _JKEY_VOLDOWN   = 17 ;
    _JKEY_CLICK     = 18 ;

    _JKEY_LAST      = 19 ;

end

/* -------------------------------------------------------------------------- */

global
    int jkeys[_JKEY_LAST];
    int jkeys_state[_JKEY_LAST];
end

/* -------------------------------------------------------------------------- */

function jkeys_set_default_keys()
begin
    jkeys[ _JKEY_UP        ] = _UP ;
    jkeys[ _JKEY_UPLEFT    ] = 0 ;
    jkeys[ _JKEY_LEFT      ] = _LEFT ;
    jkeys[ _JKEY_DOWNLEFT  ] = 0 ;
    jkeys[ _JKEY_DOWN      ] = _DOWN ;
    jkeys[ _JKEY_DOWNRIGHT ] = 0 ;
    jkeys[ _JKEY_RIGHT     ] = _RIGHT ;
    jkeys[ _JKEY_UPRIGHT   ] = 0 ;
    jkeys[ _JKEY_MENU      ] = _ESC ;
    jkeys[ _JKEY_SELECT    ] = _ENTER ;
    jkeys[ _JKEY_L         ] = 0 ;
    jkeys[ _JKEY_R         ] = 0 ;
    jkeys[ _JKEY_A         ] = _A ;
    jkeys[ _JKEY_B         ] = _D ;
    jkeys[ _JKEY_X         ] = _S ;
    jkeys[ _JKEY_Y         ] = _W ;
    jkeys[ _JKEY_VOLUP     ] = 0 ;
    jkeys[ _JKEY_VOLDOWN   ] = 0 ;
    jkeys[ _JKEY_CLICK     ] = 0 ;

end

/* -------------------------------------------------------------------------- */

process jkeys_controller()
private
    i;
begin

    signal_action( s_kill, s_ign );
    signal( type jkeys_controller, s_kill );
    signal_action( s_kill, s_dfl );

    loop
        for ( i = 0; i < _JKEY_LAST; i++ )
            if ( jkeys[i] )
                jkeys_state[i] = key( jkeys[i] );
            else
                jkeys_state[i] = 0;
            end
        end

        if ( os_id == OS_GP2X_WIZ && joy_number() ) /* Wiz */
            jkeys_state[ _JKEY_UP        ] |= joy_getbutton( 0, _JKEY_UP        );
            jkeys_state[ _JKEY_UPLEFT    ] |= joy_getbutton( 0, _JKEY_UPLEFT    );
            jkeys_state[ _JKEY_LEFT      ] |= joy_getbutton( 0, _JKEY_LEFT      );
            jkeys_state[ _JKEY_DOWNLEFT  ] |= joy_getbutton( 0, _JKEY_DOWNLEFT  );
            jkeys_state[ _JKEY_DOWN      ] |= joy_getbutton( 0, _JKEY_DOWN      );
            jkeys_state[ _JKEY_DOWNRIGHT ] |= joy_getbutton( 0, _JKEY_DOWNRIGHT );
            jkeys_state[ _JKEY_RIGHT     ] |= joy_getbutton( 0, _JKEY_RIGHT     );
            jkeys_state[ _JKEY_UPRIGHT   ] |= joy_getbutton( 0, _JKEY_UPRIGHT   );
            jkeys_state[ _JKEY_MENU      ] |= joy_getbutton( 0, _JKEY_MENU      );
            jkeys_state[ _JKEY_SELECT    ] |= joy_getbutton( 0, _JKEY_SELECT    );
            jkeys_state[ _JKEY_L         ] |= joy_getbutton( 0, _JKEY_L         );
            jkeys_state[ _JKEY_R         ] |= joy_getbutton( 0, _JKEY_R         );
            jkeys_state[ _JKEY_A         ] |= joy_getbutton( 0, _JKEY_A         );
            jkeys_state[ _JKEY_B         ] |= joy_getbutton( 0, _JKEY_B         );
            jkeys_state[ _JKEY_X         ] |= joy_getbutton( 0, _JKEY_X         );
            jkeys_state[ _JKEY_Y         ] |= joy_getbutton( 0, _JKEY_Y         );
            jkeys_state[ _JKEY_VOLUP     ] |= joy_getbutton( 0, _JKEY_VOLUP     );
            jkeys_state[ _JKEY_VOLDOWN   ] |= joy_getbutton( 0, _JKEY_VOLDOWN   );
            jkeys_state[ _JKEY_CLICK     ] |= joy_getbutton( 0, _JKEY_CLICK     );

            jkeys_state[ _JKEY_UP        ] |= jkeys_state[ _JKEY_UPLEFT    ] | jkeys_state[ _JKEY_UPRIGHT   ] ;
            jkeys_state[ _JKEY_DOWN      ] |= jkeys_state[ _JKEY_DOWNRIGHT ] | jkeys_state[ _JKEY_DOWNLEFT  ] ;
            jkeys_state[ _JKEY_LEFT      ] |= jkeys_state[ _JKEY_UPLEFT    ] | jkeys_state[ _JKEY_DOWNLEFT  ] ;
            jkeys_state[ _JKEY_RIGHT     ] |= jkeys_state[ _JKEY_UPRIGHT   ] | jkeys_state[ _JKEY_DOWNRIGHT ] ;
        end

        frame;
    end
end

/* -------------------------------------------------------------------------- */
he de copiarlo todo y pegarlo en el programa + añadir la libreria pertinente...

¿es necesario o con poner las teclas que uso tengo bastante???

una vez incluido este codigo, solo tenes que llamar a:

jkeys_set_default_keys();
jkeys_controller();

en el main y luego tras cada let_me_alone(); poner:

jkeys_controller();

y por ultimo, reemplazar todos los key(...) por jkeys_state[ tecla ] donde tecla es uno de los siguientes defines:

    _JKEY_UP        =  0 ;
    _JKEY_UPLEFT    =  1 ;
    _JKEY_LEFT      =  2 ;
    _JKEY_DOWNLEFT  =  3 ;
    _JKEY_DOWN      =  4 ;
    _JKEY_DOWNRIGHT =  5 ;
    _JKEY_RIGHT     =  6 ;
    _JKEY_UPRIGHT   =  7 ;
    _JKEY_MENU      =  8 ;
    _JKEY_SELECT    =  9 ;
    _JKEY_L         = 10 ;
    _JKEY_R         = 11 ;
    _JKEY_A         = 12 ;
    _JKEY_B         = 13 ;
    _JKEY_X         = 14 ;
    _JKEY_Y         = 15 ;
    _JKEY_VOLUP     = 16 ;
    _JKEY_VOLDOWN   = 17 ;
    _JKEY_CLICK     = 18 ;

si necesitas agregar alguna otra tecla que no esta asignada, la pones reemplazando esto:

function jkeys_set_default_keys()
begin
    jkeys[ _JKEY_UP        ] = _UP ;
    jkeys[ _JKEY_UPLEFT    ] = 0 ;
    jkeys[ _JKEY_LEFT      ] = _LEFT ;
    jkeys[ _JKEY_DOWNLEFT  ] = 0 ;
    jkeys[ _JKEY_DOWN      ] = _DOWN ;
    jkeys[ _JKEY_DOWNRIGHT ] = 0 ;
    jkeys[ _JKEY_RIGHT     ] = _RIGHT ;
    jkeys[ _JKEY_UPRIGHT   ] = 0 ;
    jkeys[ _JKEY_MENU      ] = _ESC ;
    jkeys[ _JKEY_SELECT    ] = _ENTER ;
    jkeys[ _JKEY_L         ] = 0 ;
    jkeys[ _JKEY_R         ] = 0 ;
    jkeys[ _JKEY_A         ] = _A ;
    jkeys[ _JKEY_B         ] = _D ;
    jkeys[ _JKEY_X         ] = _S ;
    jkeys[ _JKEY_Y         ] = _W ;
    jkeys[ _JKEY_VOLUP     ] = 0 ;
    jkeys[ _JKEY_VOLDOWN   ] = 0 ;
    jkeys[ _JKEY_CLICK     ] = 0 ;

end

donde tras el = va lo mismo que pones en la funcion key(...)

vamos que es "for dummy".
es una pena que por algo tan estupido tu juego quede fuera de concurso, hiciste tanto ya que esto es minimo.

saludos, espero el update.
Title: Re: características al programar para wiz
Post by: Drumpi on February 02, 2010, 12:04:31 AM
Bueno, después de tal despliegue de ideas me sabe mal escribir mi código, porque a lo mejor no es tan bueno o te termina liando más, pero si lo quieres, dilo ^^U

Lo cierto es que a mi también me costó un poco pillarle el truquillo, pero después de un poco de ensayo y error, acabó saliendo y lo adapté a mi fórmula estandar de manejo de teclas.
Title: Re: características al programar para wiz
Post by: Futu-block on February 03, 2010, 11:59:48 AM
Bueno, vale, de acuerdo, ya he copiado el codigo; le he metido las librerias pertinentes y me dá el error de:
[code language="bennu"]OS_GP2X_WIZ[/code]

¿eso que es en cuention?
por que está dentro de:
[code language="bennu"]  if ( os_id == OS_GP2X_WIZ && joy_number() ) /* Wiz */[/code]
y es ahí donde me lio, eso sin contar que he copiado el codigo sin echarle un vistazo, osea que tengo que razonarlo...

tampoco uso el ''let_me_alone()''
Title: Re: características al programar para wiz
Post by: simulatorone on February 03, 2010, 12:52:11 PM
Es facil entenderlo el codigo de teclas de la Wiz...
enseguida lo entendi :)
Title: Re: características al programar para wiz
Post by: Drumpi on February 03, 2010, 01:55:54 PM
Quote from: Futublog on February 03, 2010, 11:59:48 AM
Bueno, vale, de acuerdo, ya he copiado el codigo; le he metido las librerias pertinentes y me dá el error de:
[code language="bennu"]OS_GP2X_WIZ[/code]

¿eso que es en cuention?
por que está dentro de:
[code language="bennu"]  if ( os_id == OS_GP2X_WIZ && joy_number() ) /* Wiz */[/code]
y es ahí donde me lio, eso sin contar que he copiado el codigo sin echarle un vistazo, osea que tengo que razonarlo...

tampoco uso el ''let_me_alone()''

OS_GP2X_WIZ es una constante predefinida para usar con la variable global OS_ID. símplemente compruebas que el BGDI corresponde a la versión de la WIZ, de lo contrario, ejecuta otro código.
Si no la tienes, quizás es que estás usando una versión demasiado antigua de Bennu.
Por cierto, para las comparaciones, recomiendo usar paréntesis SIEMPRE, nunca se sabe si el compilador va a saber interpretar bien el orden de las operaciones.
Title: Re: características al programar para wiz
Post by: SplinterGU on February 03, 2010, 02:51:05 PM
drumpi, hay una tablita de precedencias de operadores en la seccion de documentacion

futublog, bajate la ultima version de bennu, segui mi firma... estas trabajando con una muy vieja.
Title: Re: características al programar para wiz
Post by: Futu-block on February 03, 2010, 03:01:45 PM
creo que no pero dounloadin...

que vá, me sigo quedando en blanco, no se sacarlo  :'(
Title: Re: características al programar para wiz
Post by: Drumpi on February 03, 2010, 06:30:40 PM
Quote from: SplinterGU on February 03, 2010, 02:51:05 PM
drumpi, hay una tablita de precedencias de operadores en la seccion de documentacion

¿Y? nunca se sabe cuando puede hacer algo raro el compilador.
El otro día se me olvidó un + en
hijos[cont]=fuego_espiritual(file,
                                                 x3+(35*cos( (60000*cont) + 30000 ))  ,
                                                 y3+(35*sin( (60000*cont) + 30000 )) );

(Justo el de después del x3) y me tiró un error de "alpha: process already declared" o algo así 2000 lineas más adelante en otro proceso ;D
De todas formas, nunca está de más recomendar el uso de paréntesis, apenas le consume tiempo al compilador y siempre te salva de un apuro :D
Title: Re: características al programar para wiz
Post by: SplinterGU on February 03, 2010, 08:05:15 PM
nunca esta demas, pero creo que ese codigo era parte del que hice yo... :D
Title: Re: características al programar para wiz
Post by: Futu-block on February 08, 2010, 03:25:54 PM
Entonces, creo que lo voy entendiendo...

hay que crear un archivo jkeys.lib al que hay que copiarle el tocho ese de las teclas y que se importe desde el .prg ¿no?

otra cosa es hacer un archivo .gpe para wiz con unas instrucciones tipo
[code language="bennu"]#!/bin/sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../bgd-runtime
PATH=$PATH:../../bgd-runtime
echo 2 > /proc/cpu/alignment
bgdc defendorx.prg
bgdi defendorx.dcb
cd /usr/gp2x
exec /usr/gp2x/gp2xmenu
[/code]

que no se por qué pero tiene que ser para que corra en wiz...

a ver si me entero gracias a la insistencia...
por cierto gracias splinterGU
Title: Re: características al programar para wiz
Post by: Drumpi on February 08, 2010, 05:09:01 PM
Por que WIZ no reconoce los archivos binarios/ejecutables por si solos.
En Linux, cualquier fichero puede ser ejecutable, da igual la extensión ¿pero cómo trasladas eso a una consola sin teclado? pues creando un fichero que se pueda reconocer por la extensión, y que ejecute comandos del sistema: lo que se conoce como un script, vamos.

Resumiendo: para ponerlo fácil.
Title: Re: características al programar para wiz
Post by: Futu-block on February 10, 2010, 10:06:53 AM
eso ya me lo temia, pero me interesa la traduccion, al hacer otro juego tengo ca cambiar algo, o no????


[code language="bennu"]#!/bin/sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../bgd-runtime
PATH=$PATH:../../bgd-runtime
echo 2 > /proc/cpu/alignment
bgdc defendorx.prg
bgdi defendorx.dcb
cd /usr/gp2x
exec /usr/gp2x/gp2xmenu
[/code]
Title: Re: características al programar para wiz
Post by: DCelso on February 10, 2010, 10:14:35 AM
clarop, al menos el nombre del prg y del dcb :D.
Title: Re: características al programar para wiz
Post by: DCelso on February 10, 2010, 10:44:29 AM
Yo me creé mi propia estructura de archivos para facilitarme la vida un poco al pasarlos a wiz.
Puedes verlo en los ejemplos que tengo en la sección de proyectos, can shooter y cohete.
Es la siguiente. Imagínate tu SD pues colgando del directorio raiz se vela siguiente jerarquia de ficheros

bgd-runtime
          + bgdc
          + ...

<b>Cohete</b>
          +recursos
                      + imagen1.png
                      + ...
          +game.dcb
          +game.prg
          +icon.png
          +runme.gpe
<b>Cohete</b>.ini

Explcacion de cada cosa:
En el directorio bgd-runtime se encuentra todo el programa bennu, sus dlls, sus binarios, etc.
Luego el directorio cohete es un directorio con el nombre de tu juego (si es muy grande el nombre es mejor poner un nombre corto descriptivo), en mi caso se llama cohete, pero si se llamase el cohete que despega y aterriza podrías ponerle cohete a secas :D.
Hay un archivo .ini con el mismo nombre que tu juego que sirve para que wiz muestre en pantalla tu juego, contiene lo siguiente:

[info]
name="<b>Cohete</b>"
path="/<b>Cohete</b>/runme.gpe"
icon="/<b>Cohete</b>/icon.png"

se ve claro que es cada cosa, la primera es el nombre a mostrar en pantalla del juego (aquí podría haberle puesto el cohete que despega y aterriza :D), la segunda la ruta del ejecutable (o script) de iniciación del juego y la tercera un icono a mostrar en pantalla.

Luego dentro del directorio cohete están todos los archivos necesarios de tu proyecto, con la salvedad que para hacerlo homogéneo para cualquier otro nuevo juego le he puesto al prg principal el nombre de game.prg obteniendo al compilarse el game.dcb que es el binario final de nuestro juego (el vendría en un juego comercial), pues quedaría comentar el fichero script de ejecución del juego que contiene lo siguiente:
runme.gpe

#!/bin/sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../bgd-runtime
PATH=$PATH:../bgd-runtime
echo 2 > /proc/cpu/alignment
bgdi game.dcb
cd /usr/gp2x
exec /usr/gp2x/gp2xmenu

Es parecido al tuyo pero sin compilar el .prg (imagínate que es un juego comercial, sería feo poner el código fuente :D)
Lo que hace es por lineas:
la primera es un comentario que indica al sistema operativo el shell a usar para ejecutar este script, en este caso han puesto "sh", pero hay otros como ksh, o bien bash.
La segunda es para que el sistema operativo cuando necesite encontrar una función de forma dinámica busque en las librerías dinámicas de bennugd.
La tercera es para que cuando alguien le diga al sistema operativo que ejecute bgdc o bgdc sepa donde buscarlo para ejecutarlo.
La cuarta es insertar un 2 en el archivo aligment, no se para que vale, si alguien quiere decirlo, lo edito y lo pongo :D.
La quinta ejecuta nuestro juego dcb compilado con bennugd, gracias a la configuración del sistema que hemos hecho en estas lineas anteriores.
La sexta y cuarta sirve para que wiz vuelva al menú típico de selección de juegos inicial después de ejecutar nuestro juego.
Title: Re: características al programar para wiz
Post by: DCelso on February 10, 2010, 10:55:05 AM
Con esta estructura, para cada juego solo tienes que cambiar una cosa de forma sistemática (el nombre de tu juego) en varios sitios.
En el caso que he presentado del cohete sería cambiar todas las referencias a la palabra "Cohete" por el nombre del nuevo proyecto :D. Si te das cuenta, en el post anterior he resaltado en negrita la palabra cohete en todos los sitios, que sería donde hay que cambiarla.
1.- El nombre de la carpeta de tu juego.
2.- El nombre del .ini asociado a la carpeta.
3.- Editar el *.ini para poner el nombre del juego y la ruta del juego.
4.- Crear o editar el archivo icon.png de tu juego.

Y ya está, si te das cuenta, el script .gpe no hace falta cambiarlo ya que si siempre llamas al dcb de tu juego game, este lo ejecutará.
Bajate alguno de mis proyectos para wiz para entender mejor la estructura.
http://forum.bennugd.org/index.php?action=dlattach;topic=796.0;attach=526
Title: Re: características al programar para wiz
Post by: Drumpi on February 10, 2010, 02:04:10 PM
En el mismo ejemplo que viene en la descarga de la versión WIZ ya se puede ver eñ uso del sistema, y viene con un GPE universal, que compila y ejecuta todos los PRG de la capeta destino.

Lo de alignment es para decirle al sistema operativo que trabaje tomando como base datos de tipo BYTE, porque de lo contrario lo haría con INT y el funcionamiento con tipos de menos bytes se resentiría más aun.
Es que la wiz es un poco especialita con el manejo de datos, parece ser (por eso no funciona el modo 32 bits).
Title: Re: características al programar para wiz
Post by: SplinterGU on February 10, 2010, 02:25:17 PM
- el gpe debe estar en formato UNIX, si esta en DOS, no funciona, deja la pantalla en negro.
- el "echo 2 > /proc/cpu/alignment" ya lo habia explicado, es para alinear los miembros de las estructuras a 1, sino el procesador levanta cualquier cosa si no esta alineado a palabras... esto hace el proceso mas lento, pero hace que las cosas funcionen correctamente.

Title: Re:características al programar para wiz
Post by: Futu-block on September 14, 2016, 12:20:06 PM
Resusito este tema despues de mucho tiempo por no abrir uno nuevo

Tras denscargarme el ejemplo de DCelso veo que no puedo echar a andarlo en la wiz, sale directamente...
http://forum.bennugd.org/index.php?action=dlattach;topic=796.0;attach=526

sin embargo una pamplina como esta si funca: http://dl.openhandhelds.org/cgi-bin/wiz.cgi?0,0,0,0,19,206

el caso es que no se si me falta el runtime o si es un caso aislado que me gustaria que se tratase
Title: Re:características al programar para wiz
Post by: Drumpi on September 15, 2016, 04:22:21 PM
Pues en este momento tampoco te puedo mirar lo que pasa directamente en la consola ^^U
¿Qué es lo que te dice el log de salida? ¿Algún error?
Si no sabes ver el log de salida, te copio/pego el script que uso con wiz en mis juegos para debug:

#!/bin/sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../bgd-runtime
PATH=$PATH:../bgd-runtime

export LD_LIBRARY_PATH
export PATH

echo 2 > /proc/cpu/alignment

bgdc juego.prg >log1.txt 2>err1.txt
bgdi juego.dcb >log2.txt 2>err2.txt

cd /usr/gp2x
exec /usr/gp2x/gp2xmenu


Esto te debería generar un fichero de log y otro de error, tanto para la compilación como para la ejecución. Ahí te dirá los errores que te suelen salir en la consola de comandos, igual que si usaras Linux o Windows (como Wiz no es un sistema multiventana, es la única forma de ver el output de compilador e intérprete sin conectar la consola al PC mediante una red USB (que es la forma más rápida de probar cosas en la negrita, la verdad, pero un peñazo montar todos los cables, hacer la conexión...)).

Lo importante son las llamdas a BGDC y BGDI. Usalas de ejemplo para modificar tus ficheros GPE.
Title: Re:características al programar para wiz
Post by: Futu-block on September 15, 2016, 08:14:44 PM
me está a mi dando que compilar en linux tiene algo que ver...

yo suelo usar en la terminal de mi pc el tipico:
bgdc juego.prg (que me genera un .dcb)
bgdi juego.dcb  (que me sirve para jugar en pc)
y luego copio-pego en mi tarjeta sd ese dcb para ejecutarlo en el explorador que tiene la wiz (dentro de una carpeta con el runtime) que teoricamente debe de funcionar porque lo hace cualquier otro dcb de esa forma descargado desde openhandhels

no se que estoy haciendo mal, peeero dime como con que nombre debo de guardar el codigo que me has puesto
(creo que con el nombre del juego .gpe)
Title: Re:características al programar para wiz
Post by: Drumpi on September 17, 2016, 11:26:14 AM
Puedes ponerle el nombre que te de la gana, da igual.
El nombre sólo es relevante si vas a crear un fichero .ini para ejecutarlo directamente desde el icono de la SD, en ese caso, tanto el ini, como el gpe y la carpeta deben tener el mismo nombre.

OJO: si has leido el código, las dos primeras lineas dicen claramente que el runtime está en una carpeta llamada "bgd-runtime", una carpeta por encima de donde se encuentra el gpe, el prg y el futuro dcb. Si el runtime lo tienes suelto en la misma carpeta que el gpe, deberías sustituir en ambas líneas "../bgd-runtime" por "." ... creo, lo suyo es que lo metas en una carpeta, fuera, como hago yo (y así usas el mismo runtime para todos los juegos de Bennu que tengas) o en una carpeta dentro, y así las líneas serían "bgd-runtime" simplemente.