Aunque personalmente siga usando Kdevelop para desarrollar en GP2x, estoy empezando a usar Eclipse para programar en otros lenguajes y me va gustando, asi que previa petición del foro de gp32spain, vamos a explicar como configurar un entorno de desarrollo para GP2x bajo Linux usando un proyecto que he creado como base común.
Como características el proyecto incluye un test de ejemplo y permite crear ejecutables de SDL SDL_mixer SDL_Image para GP2x (Debug/Release) y Linux (Debug).
Puede ser Fácilmente ampliado, ver más abajo.
Pasos previos
Lo primero que necesitamos es Eclipse, para ello nada más fácil que ir al “Gestor de paquetes Synaptic” e instalarlo, una vez instalado entraremos por primera vez en Eclipse, apareciendo una ventana que nos pedirá la ubicación de la carpeta de trabajo (donde descansarán nuestros proyectos), la seleccionamos y listo
El siguiente paso previo que se requiere es la instalación del plugin que nos permitirá usar la configuración “custom” que he preparado para la GP2X. Si seguís estos pasos no tendréis problema.
Pulsad en: HELP -> Software Updates -> Find and Install… -> Search for new features -> New Remote Site.
Ahora en Name ponemos “CDT” y en URL:
“http://download.eclipse.org/tools/cdt/releases/callisto”
Pulsamos en “Finish”, para que aparezca la lista de mirrors (Rec. Uk).
Finalmente seleccionamos las actualizaciones, esperamos a que se instalen y permitimos que Eclipse se reinicie. Como último paso debemos asegurarnos que *la perspectiva C/C * está seleccionada (Window->Open perspective->Other).
Instalando el proyecto base de GP2x
Una vez descargado (ver abajo), lo descomprimimos en una carpeta que no se encuentre dentro de nuestro directorio de trabajo seleccionado en Eclipse. Por ejemplo mi directorio de trabajo en eclipse es “/home/david/desarrollo” y he descomprimido el fichero en “/home/david/descargas/gp2x”, espero que haya quedado claro, por que es importante
Bien, pues empieza el show: File -> New -> Project… Y seleccionad la opción tal y como aparece en la imagen.
Aparece el diálogo para importar nuestro proyecto de GP2x en Eclipse, seleccionad [Browse]…
Seleccionamos la carpeta descomprimida del proyecto que acabamos de bajar y pulsamos [Aceptar]…
Si todo ha ido bien debería de aparecer algo similar a esto…
Que no se os olvide marcar “Copy project…”
Y poco más, al pulsar [Finish] el proyecto nos aparecerá en la lengüeta de proyectos
Modificando el proyecto base de GP2x
Lo más normal es que cada desarrollador use las herramientas (toolchain) que más le apetezcan. Yo en esta ocasión lo he configurado para que funcione de primeras con el DevKit de Uncanny, pero para que ninguno se tenga que complicar mucho, si desea usar su entorno de desarrollo con Eclipse, dejo unas instrucciones, que seguro también valdrán para que los desarrolladores de Windows puedan adaptar el proyecto base.
Pulsando con el botón derecho encima de nuestro nuevo proyecto de GP2x, seleccionad “Properties” (propiedades) y C/C Build…
En el diálogo que aparece por defecto podemos modificar muchos aspectos como agregar librerías o cambiar las opciones de compilación.
Pero para cambiar cosas como el prefijo del compilador (prefix) o la ruta de trabajo he preferido usar variables de entorno que tenéis a vuestra disposición desde la lengüeta “Environment”…
Como se puede observar con cambiar GPPATH y/o PREFIX-TOOL, lo tendríais configurado para la mayoría de entornos de desarrollo
Por Hacer
Seguro que algún fleco se me ha quedado suelto, así que iremos mejorando este tutorial, poco a poco
La verdad que lo suyo sería hacer una especie de perspectiva para desarrollar en GP, y que pudieramos crear también ejecutables de GP32, etc…
Bueno, es un comienzo
Subido: 2010-05-15 00:48:00 Eclipse template GP2x for Linux
Version 0.1 Beta
LibReadINI es librería que lee ficheros INI, hecha completamente en C, lo que permite ser usada en proyectos de GP32 sin problemas Aunque evidentemente puede ser usada en cualquier otra plataforma que soporte C, como proyectos para programas en MSDOS u otros pequeños sistemas embebidos.
Español
See the english version of this text below
La librería no tiene dependencias externas de SDL, libxml o similares, como la librería “oficial” de lectura de INIs que por ejemplo se usa en GP2X. Y lo mejor pesa muy poquito -unos 6kb- y es bastante rápida, aunque seguro que se podría mejorar, así comparte tus mejoras
La librería lee dos tipos de ficheros INI tipo, M$ (los que todos conocemos), o tipo “conf” de linux.
Un fichero INI podría ser algo como esto:
[General]
name = Junk Config File Test
version = 2
[Mode]
StrictMode = yes
useflags = no
phase = 5
[OtherSection]
name = Hello
[AnotherSection]
name = Bye
Ejemplo Práctico
Su uso es muy simple:
- Primero abrimos el fichero, que podría ser algo como:
if(!cfgOpen("./configs/ejemplo.ini", MS_STYLE))
{
//no encontre el fichero
}else
{
//fichero leido!
}
Una vez abierto, hay que elegir una sección que la librería se encargara de buscar. Para seleccionar una sección seria:
if(cfgSelectSection(“General”))
{
//haz lo que sea…
}else
{
//pues se ve que no la encontro!!! xD
}
Una vez seleccionada se pueden pedir datos de la misma usando funciones para cadenas, números y booleanos… unos ejemplos finales:
currentVersion = (Uint8) cfgReadInt(“version”, 1);
Ex: Lee la variable versión del fichero INI y la almacena en nuestra variable, currentVersion.
(El numero del final es un valor por defecto, por si no lo encuentra, etc.)
Finalmente cuando hemos terminado de trastearla debemos hacer, simplemente:
cfgClose();
La ventaja de usar ficheros INI es que puede hacer cambios en las configuraciones de sus programas y ver los cambios sin que se requiera una nueva compilación. Y si luego lo necesita siempre podría encapsular todo el código “INI” en un fichero binario…
Para acceder a más ejemplos vea la documentación de la libreria
English
LibReadINI is a library to read INI files, developed in C code.
Now you can read your game/program INI files on your GP32 and other embeddeds platforms that can run a C code!!
Dont have any external dependencies (SDL, libxml, etc…)
Little -6kb- and quick code, but if you can make a better code, share your changes
Examples and more info on the library`s documentation
Is used by… / usada por…
If you used this lib email me, thanks!
Si usas esta librería mándeme un email, gracias!
Subido: 2010-05-15 00:43:00 Primera versión publica para GP2x/Gp32 o su tostadora.
[b]libReadINI 0.8f[/b]
First Test release for GP2x/Gp32 or your toaster.
[b]libReadINI 0.8f[/b]
(License changed to LGPL, thanks Uncanny)
ScummVM es un interprete de aventuras y esta que os disponéis a disfrutar en vuestra GP2x, es una versión basada en el port inicial de Dj Willis.
Esta es mi primera versión, que se podría considerar como beta; pero antes de dar ese paso, me gustaría recibir vuestros comentarios de como os van los nuevos cambios
Español
See the english version of this text below
Novedades – Alpha 8a
- MAS ESTABLE, basado en el código final del ScummVM 0.9.0
- MEJORADO el codigo del ratón – Ahora el ratón no se para totalmente cuando cambias de dirección
- MEJORADO el codigo de sonido – Probando una nueva configuración (enviandme vuestros comentarios).
- AÑADIDO un nuevo código para el “Aspect Ratio” – He añadido un nuevo código al gui, para que el usuario pueda regular cómodamente si quiere activar la corrección de aspecto (Aspect Ratio) o no.
(Este código no existe en el scummvm nuevo, lo he creado hace un rato para la gp2x xD)
- Pequeños cambios que ya no recuerdo (heheh)
- Nuevas Librerias soportadas:
- Raw audio.
- MP3 audio.
- OGG Vorbis audio.
- Mpeg Videos (Broken Sword 1 y 2)
English
ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. This is a test release of ScummVM for the GP2X and it is based on Dj Willis previous port.
This is my first release, please send me your coments
News – Alpha 8a
- BASED on ScummVM 0.9.0 stable code
- FIXED mouse code – Don`t more stops when you change your direction
- FIXED sound code – Trying with a new configuration (please send me your feedback).
- ADDED new Aspect Ratio code – I add a new code, now you can do change on/off the aspect ratio correction.
(This code no exist in scummvm code, is been created by me )
- Little changes that i dont remember now (heheh)
- New supported Libs:
- Raw audio.
- MP3 audio.
- OGG Vorbis audio.
- Mpeg Videos (Broken Sword 1 and 2)
ScreenShots!!!
Subido: 2010-05-15 00:26:17 Primera version publica para GP2x.
(Incluye mi parche que puede ser directamente aplicado al fuente del ScummVM 0.9.0)
First Test release for GP2x.
(My ScummVM 0.9.0 source patch is incluyed)
Desde este proyecto publicaré todas mis aportaciones para poder disfrutar de una plataforma de desarrollo útil para GPx en Linux y además se darán unos pasos básicos de como instalarlos…
SPANISH
English version bellow
GP2X Toolchain
El entorno de desarrollo para GP2X, tiene como objetivo una compilación que permita ejecutables que ocupen casi cien veces menos, un simple programa pasa de 500kb a 5kb si evitamos la compilación estática; y el arranque instantáneo, gracias a utilizar las librerías que todos tenemos instaladas dentro de nuestra GP2X.
No obstante, el entorno no obliga a nada y puedes seguir compilando estáticamente sin problemas
La versión actual incluye:
LINUX HEADERS: 2.4.25-GP2X
BINUTILS: 2.16.1
GLIBC: 2.2.5
GCC: 3.4.6
Y puedes bajarla de aquí.
El espacio ha sido cedido por el proyecto AGES en la Forja de REDIRIS.
Para instalarla abre una consola como root y entra en la carpeta donde hayas bajado el paquete y escribe:
# tar xvjf toolchain-linux*.tar.bz2
# mv gp2x /opt
También puedes bajar el toolchain completo de Uncanny que incluye además sus librerías SDL a parte de los compiladores y utilidades.
El espacio ha sido cedido por el proyecto AGES en la Forja de REDIRIS.
Para instalarla abre una consola como root y entra en la carpeta donde hayas bajado el paquete y escribe:
# tar xvjf toolchain-uncanny*.tgz
# mv gp2xdev /usr/local/
GP2X Development SDL Library
Para esta parte he preparado una librería para escena la escena que llamaremos “Community” y la compararé con la oficial de GPH.
Cada una de ellas contiene, a no ser que se indique lo contrario:
SDL: 1.2.9 (Paeryn) Community - 1.2.7 Oficial
SDL_mixer: 1.2.7 (oficial sin soporte smeg) [WAV, MOD (mikmod), MP3 (smeg), OGG (tremor)]
SDL_image: 1.2.4 [JPG, PNG]
SDL_ttf: 2.0.7
SDL_gfx: 2.0.13 (solo Community)
SDL_sound: 1.0.1 (solo Community) - [WAV, VOC, MP3 (no smeg), MID (timidity), MOD (modplug), OGG (vorbis), RAW, AU, AIFF]
libMAD: 1.15.b
libId3tag: 1.15.b (solo Community)
libUniCodeFont (solo Oficial)
Tened encuenta que si usáis librerías no incluidas en la consola deberéis compilar estáticamente.
La versión de “community” la puedes bajar de aquí.
La versión oficial la puedes encontrar en el foro de desarrolladores de GP2X.
Para instalar la versión de la escena seguid estos pasos como root:
# tar xvjf gp2x-libs-community*.tar.bz2
# cp -R gp2x-libs-community/* /opt/gp2x
GP2X / GP32 IDE
Desde aquí iré preparando platillas o entornos de trabajo para IDEs disponibles en cualquier distribución Linux.
Esta versión aun no es perfecta y aun gustaría añadirle cosas, pero es perfectamente funcional y si os animáis a ayudarme a perfeccionar el entorno para GP32, quizás en poco tiempo podamos compilar, a un click de distancia, para: GP2X, LINUX y GP32
Puedes bajar desde aquí la versión 0.5 (RC1a) de las plantillas para GP2X.
Ahora instalaremos la plantilla. Entra como root en la carpeta donde lo descomprimieras y ejecuta:
# tar xvjf gp2x-template*.tar.bz2
Ahora sería un buen momento para leer el fichero “LEEME.TXT” y así saber las novedades y/o problemas conocidos de las plantillas que te dispones a instalar… Ahora sigue las instrucciones de instalación de las plantillas
Además he preparado un pequeño tutorial para empezar a desarrollar con todo este entorno en linux.
Feliz desarrollo!!
English
GP2X Toolchain
This development enviroment for has two objetives:
- Reduce weight of your binary files (500kb to 5kb using shared linking)
- More quick load (you use the libs installed on your GP2X)
But this toolchain allow static linking if you want
This version includes:
LINUX HEADERS: 2.4.25-GP2X
BINUTILS: 2.16.1
GLIBC: 2.2.5
GCC: 3.4.6
You can download here the last toolchain.
Mirror donated by AGES Project on REDIRIS Forge.
Install instructions: Login as root and in your download directory do:
# tar xvjf toolchain-linux*.tar.bz2
# mv gp2x /opt
Also you can download the Uncanny toolchain with SDL libs included.
Mirror donated by AGES Project on REDIRIS Forge.
Install instructions: Login as root and in your download directory do:
# tar xvjf toolchain-uncanny*.tgz
# mv gp2xdev /usr/local/
GP2X Development SDL Library
SDL: 1.2.9 (Paeryn) Community - 1.2.7 Oficial
SDL_mixer: 1.2.7 (official without smeg support) [WAV, MOD (mikmod), MP3 (smeg), OGG (tremor)]
SDL_image: 1.2.4 [JPG, PNG]
SDL_ttf: 2.0.7
SDL_gfx: 2.0.13 (only Community)
SDL_sound: 1.0.1 (only Community) - [WAV, VOC, MP3 (no smeg), MID (timidity), MOD (modplug), OGG (vorbis), RAW, AU, AIFF]
libMAD: 1.15.b
libId3tag: 1.15.b (only Community)
libUniCodeFont (only Official)
Community Version Download.
You can download the Official libs from GPH development forum.
Community Install instructions: Login as root and in your download directory do:
# tar xvjf gp2x-libs-community*.tar.bz2
# cp -R gp2x-libs-community/* /opt/gp2x
GP2X / GP32 IDE
You can download the templates for KDevelop version 0.5 (RC1a) here.
Install instructions: Login as root and in your download directory do:
# tar xvjf gp2x-template*.tar.bz2
Now its the time to see README.TXT for install and use instructions
Happy Codding!!