Posts tagged with 'Programación'
La verdad que cuando empiezas a programar para el linux de Dingoo, ves que usando SDL todo funciona a la primera, pero el problema empieza a surgir cuando pasas de SDL e intentas optimizar las cosas por ti mismo, accediendo a los dispositivos directamente y para eso hay que currarselo mucho y lo peor es que la información es escasa y desperdigada.
Pues aprovechando el puente he creado unos tutoriales a partir de todas las consultas que me han llegado de como inicializar, o diferentes modos de usar el pad, etc… espero ayuden a cualquier desarrollador que quiera comenzar a crear o portar su software preferido a dingux.
Aviso que no son un paso a paso son más bien consejos y código hecho, pero espero que ayuden igualmente.
http://www.dingoowiki.com/index.php/Development:Tutorials
Un Saludo y cuando pueda los pasaré a un tutorial en el blog, por si se pierde algún día el wiki
Estoy reventao, la dingoo anoche pudo conmigo, hasta las 6am me tiré trasteando y todavía le queda batería a la condená xD
Pero hago una pequeña introducción para el que no conozca esta pequeña joya china.
La dingoo, es una consola pequeña, poco más o menos como una gameboy micro; muy potente, overclockeable hasta 400 Meganapios, no usa pilas (BIBA!) sino una batería Li-Ion con 7 horas de autonomía según wikipedia, pero que anoche me fundió a mi y estuve toda la tarde/noche/madrugada con ella y aun tiene 2/3 lineas 

Lo que más me ha atraído de la consola, no son los números sino el precio (unos 50 euros – envío gratis y llegó en un par de semanas), su tamaño, que tenga una radio FM y como no la gran comunidad que se ha creado alrededor de ella con la salida del Hack (thx Booboo), que permite instalar en ella un Dual Boot Fw-Original/Dingoo-Linux. El cual se realiza en un minutillo y te abre infinitas posibilidades 
La verdad que todo lo que he probado me ha ido bien, los emuladores más pesados como el de SNES (Use un Hack de Mario World que posteó Dj_syto) que en el FW original da tirones, en dingux me iba muy bien. El emulador de spectrum (port directo de GP2x), todo lo que probé también me fue bien, el FBA va perfecto que increíblemente suave va el Street Fighter II, el Cadillacs, los juegos de Neogeo (pobré el WindJammers, PowerSpikes).
Luego otros ports como el Hexen o el Heretic, ya si que petardeaban pero al ver lo bien que va Doom, tengo claro que es un problema más debido a ser un port rápido que a la propia consola, seguro que con más tiempo la cosa se arregla 
Total, que aun estoy trasteando esta pequeña bestia que sólo le faltaría tener Wifi para ser perfecta (juego online/local tipo NDS sería una pasada), seguro que en los próximos días estaré enseñandoos algo nuevo para ella 
Un Saludo dingeroos!
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)