Compilar o como se diga para caanoo

Started by Futu-block, August 06, 2011, 10:43:03 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Futu-block

A ver que me entere yo al final, para hacer un juego para caanoo hay que crear un archivo .gpe ¿no?

-¿sale de la nada o que? ¿donde queda el .prg principal ''main''? ¿y las librerias, adonde fueron?

como veis, estoy mas liao que la pata de un romano, asi que a parte de facilitarme un enlace donde se hable de ese tema vamos ir paso por paso para que pueda comprenderlo mejor...


Comenzamos con una aplicacion que tenia por ahí parada y quiero terminar:

le digo aplicacion porque no es un juego exactamente; Se trata del mao mao counter, una calculadora para anotar puntos en la que nos vendrá muy bien si estamos jugando al mao mao o tambien llamado chinchon por otros lares (filosofia caanoo para todo)

En el archivo adjunto se encuentra un .prg principal con dos procesos mas (que luego los pondré fuera de ese archivo) y un proceso a parte, tambien encontramos que las funciones key aparecen por los teclados y hay que adaptarlas a caanoo
¿como?

tambien nos encontramos un ejecutar en windo$ .bat para los mas curiosos que quieran saber de que  vá esto ;D

info del juego: http://es.wikipedia.org/wiki/Chinch%C3%B3n_(juego_de_naipes)

Drumpi

Futu, creo que es la eneésima vez que se cuenta, pero te lo explico de nuevo:

El fichero GPE es un fichero de comandos que se ejecutan en la consola de comandos (valga la redundancia), es decir, es un ficero de texto con una serie de órdenes que se le da a la ventanita de MS-DOS o, en este caso, de SH (que es un programa de linux que ejecuta los comandos del sistema, similar al que menciono de Windows).

Puedes usar los que vienen de ejemplo con el pac-man o el galaxian, ya que son universales, y tienen el siguiente texto:

#!/bin/sh

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../wiz-runtime
PATH=$PATH:../wiz-runtime

echo 2 > /proc/cpu/alignment

for prg in *.prg; do
    name=`basename $prg .prg`
    bgdc $prg 1>log1.txt 2>err1.txt
    bgdi $name 1>log2.txt 2>err2.txt
done

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


Ojo, debes guardarlo en formato UNIX, por lo que el bloc de notas de windows no sirve, recomiendo el notepad++.

La primera línea no debes cambiarla, pero la tercera y la cuarta sí, porque indican la dirección de dónde está el runtime de bennu (ejecutables, librerías, etcétera) y lo agregan al PATH del sistema (una variable que le dice al SO dónde se encuentran los ejecutabñes y librerías, para no tener que escribir la dirección completa del mismo).

El for te buscará cualquier PRG que haya en la carpeta donde guardes este GPE, pero si no te gusta así, siempre los puedes cambiar por:

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


y añadirle los parámetros que quieras (el -g para el modo debug, compilar con mochila, añadir al dcb... etc). el 1> y 2> son para la creación de ficheros de texto que guarden los datos de SAY y los errores de compilación/ejecución, puedes quitarlos si tu juego funciona bien.

Como ves es como compilar en PC con la consola de comandos. Esto lo pones junto al PRG principal, modificas las rutas para que señalen a la carpeta con el runtime de WIZ, Caanoo o el que uses, y el resto tal como lo tienes en PC. Ahora sólo tienes que ejecutar el .gpe en tu portatil. Recuerda que debes compilar (BGDC) al menos la primera vez, por lo que es recomendable tener dos GPE: uno que compile (opcionalmente, que ejecute) y otro que sólo ejecute.

El .INI y el icono son totalmente opcionales.


Teclado: eso no existe en CAANOO, los controles son con el joystick 0, con botones para todo:
    _GP2X_JKEY_UP        =  0 ;
    _GP2X_JKEY_UPLEFT    =  1 ;
    _GP2X_JKEY_LEFT      =  2 ;
    _GP2X_JKEY_DOWNLEFT  =  3 ;
    _GP2X_JKEY_DOWN      =  4 ;
    _GP2X_JKEY_DOWNRIGHT =  5 ;
    _GP2X_JKEY_RIGHT     =  6 ;
    _GP2X_JKEY_UPRIGHT   =  7 ;
    _GP2X_JKEY_START     =  8 ;
    _GP2X_JKEY_SELECT    =  9 ;
    _GP2X_JKEY_L         = 10 ;
    _GP2X_JKEY_R         = 11 ;
    _GP2X_JKEY_A         = 12 ;
    _GP2X_JKEY_B         = 13 ;
    _GP2X_JKEY_X         = 14 ;
    _GP2X_JKEY_Y         = 15 ;
    _GP2X_JKEY_VOLUP     = 16 ;
    _GP2X_JKEY_VOLDOWN   = 17 ;
    _GP2X_JKEY_CLICK     = 18 ;


Hay algún botón más, creo, pero no sé su número.
Así que tienes que sustituir KEY(tecla) por JOY_GETBUTTON(0,número_del_boton) y ya está, pero recomiendo crear un proceso aparte que haga dicha comprobación y rellene un array global, de forma que si cambias de plataforma sólo tengas que cambiar este proceso, ya que el resto del juego sólo lee datos de un array global que no cambia.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block


FreeYourMind


Futu-block

si, es que es hacerte la pelota para que me respondieras...

FreeYourMind

Pero macho, aparte que Drumpi ya te ha respondido yo tambien ya lo he hecho no se cuantas veces.
Si tienes los 2 juegos de ejemplo que vienen con el runtime no se donde puedes tener dudas...

Futu-block

no se muy bien, voy a tener que mirar...

y trastear

Futu-block

me rindo, lo he echao a andar pero no van las teclas, mañana lo repasaré otra vez y volveré a dar porcu...

debo tener el archivo de los botones malamente de alguna manera...

Drumpi

Revisa los ejemplos que vienen con el runtime.
Y espero que digas "teclas" cuando querías decir "botones" porque ya he dicho que KEY no funciona en Caanoo (por cierto, enhorabuena por tu adquisición :D).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

#9
Pues si, no funcionan los botones de ninguna manera, seguiré haciendo pruebas, gracias

por otro lado, estoy tocando codigo sin saber, a mi me gusta mas comprender las cosas y no tocar el codigo de la gente...

<->

menos mal que lo he echo a andar, y es un coñaso enorme, porejito, tol dia echao pa na :D

bueno, alegrias a un lao deciros que todavia no me he enterao de cual es el boton de menú ni el de una y dos rayas (I y II pa que me entendais) pero ya me enteraré con el tiempo, gracias y karmas...

menos a freeyourmain que ya lo pongo en la portada del juego, a ver cuanto tarda en ponerlo en su wel o en openhandhelds, que ya vá tarde, je je

Drumpi

En GP2X y WIZ, el HOME es el boton 9 del joystick 0.
Con la Caanoo no me he puesto, pero si no es el mismo, recuerdo que Splinter comentó que la CAANOO hacía uso del joystick 1 y 2, también, uno para el joy analógico, y el otro para todos los botones, remapeados para Caanoo (al tener controles distintos, parece ser que los valores de los botones en SDL cambian, y tienen otro código). Se hizo así para mantener la compatibilidad en el código.
Supongo que si Home no va en el joy 0, tendrás que usar algunos de los botones mapeados en el 2, pero tendrías que buscar el hilo donde se comentaba.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind

Estoy de vacas, solo estare operacional en una semana

Futu-block

@drumpi: No te preocupes, ya investigo, lo important era comilar

@freeyourmind: Ok jefe, tu avisas cuando quieras, no olvides de enlazar a futu-art que ahí es donde pongo la info de los juegos

Drumpi

Que no os de cosa leer el código de los demás. Ser autodidactas no significa que no podais leer ejemplos de cómo funcionan las cosas, y los ejemplos del runtime son lo suficientemente simples como para que os hagais una idea básica del control.

Futu, no te digo que mires el código de SBTime porque es bastante complejo, es un código que me llevó varios meses perfeccionar (y se basa en un código que no empecé a usar hasta varios años después de empezar), pero el del pacman o el del space invaders sólo necesitas ver el movimiento de la nave para saber cómo van los botones en WIZ. Lo de Caanoo, deberías buscar en los mensajes de los primeros ports, no sé si en el diario de desarrollo o en la noticia.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind

I'm back...
A ver, que querias realmente ?