PDA

Ver la versión completa : Tutorial de programación para GP32 (SDL o Fenix) en Mac con Xcode 3



kounch
09/01/2008, 10:39
Hola
aunque todavía no están todas las cosas que quería poner, el anuncio de la nueva compo para GP32 (http://compo.chemicalkungfu.de/) me ha hecho decidirme a publicar ya este tutorial y las herramientas asociadas, por si esto hace que más gente se anime a presentar algo.

El resumen rápido es el siguiente; he preparado unas plantillas de XCode (http://developer.apple.com/tools/download/) (el IDE de Apple para programar en Mac OS X) y una imagen de disco, que permiten comenzar un proyecto de programación en C (con SDL) o en Fenix para GP32. Además, he preparado también una plantilla de lenguaje para que XCode reconozca la sintaxis del código de Fenix y lo coloree adecuadamente.
Los archivos se pueden bajar de aquí:

http://homepage.mac.com/kounch/.Public/GP32%20XCode%20templates.zip (4,8MB)- Plantillas de XCode. Necesario para Fenix y SDL
http://homepage.mac.com/kounch/.Public/gp32SDKbuild_Leopard.sparsebundle.7z (16,2MB)- Imagen con compilador y librerías de C y SDL. No es necesario para Fenix


Instalación
Bajar e instalar XCode 3, que viene con los discos de instalación de Leopard, o bien se puede bajar de http://developer.apple.com/tools/download/ (el registro es gratuito).
Bajar y descomprimir las plantillas (http://homepage.mac.com/kounch/.Public/GP32%20XCode%20templates.zip).
Copiar el contenido de "Project Templates" en el directorio "/Developer/Library/Xcode/Project Templates/" y el contenido de "Specifications" en el directorio "/Developer/Library/Xcode/Specifications/" (se necesita un usuario administrador).
Sólo si se va a trabajar con C (y SDL), crear un entorno de desarrollo como se indica aquí (http://wiki.gp32spain.com/index.php/Instalaci%F3n%20de%20DevkitARM%20nativo%20para%20M ac%20OS%20X%20junto%20con%20SDL%20de%20GP32) o bien bajar la imagen que he preparado (http://homepage.mac.com/kounch/.Public/gp32SDKbuild_Leopard.sparsebundle.7z).
Uso de la plantilla de Fenix

Una vez instalado todo, cerrar si estuviera abierto XCode y volver a abrirlo. Elegir la opción "New Project" del menú "File", y elegir en la ventana que aparece GP32 y luego Fenix:

http://homepage.mac.com/kounch/GP32/Images/Imagen01.png

Elegir un nombre para el proyecto y el directorio donde se va a crear.

Una vez creado, os aparecerá la ventana del mismo:

http://homepage.mac.com/kounch/GP32/Images/Imagen02.png

Para compilar el programa y probarlo, basta con pulsar en el icono "Build"
De aquí los tres ficheros que se deben ajustar a vuestro gusto (antes de cada compilación, claro) son los siguientes:

<<nombre del projecto>>.prg C&#243;digo fuente en Fenix.
<<nombre del projecto>>.bmp Icono que se mostrar&#225; en la GP32
Makefile Archivo con las reglas para compilar el proyecto poner nombre, etc. Interesante para usuarios avanzados que quieran personalizar m&#225;s su programa.

Notar, si se hace doble clic sobre el archivo .prg, que XCode reconoce el tipo de archivo y colorea adecuadamente el c&#243;digo:

http://homepage.mac.com/kounch/GP32/Images/Imagen03.png

Despu&#233;s de haber compilado, se crear&#225; todo lo necesario en el directorio build de la carpeta del proyecto:

http://homepage.mac.com/kounch/GP32/Images/Imagen04.png

Para probarlo en la GP32, basta con copiar el contenido de GPMM al directorio GPMM de una tarjeta SMC y el contenido de GPSYS al directorio GPSYS de una tarjeta. Se puede usar un lector de tarjetas o, por ejemplo, mi programa iGP32 (http://igp32.sourceforge.net) para copiarlo directamente a la consola usando el cable USB.

Observar tambi&#233;n que se crea un directorio "Mac", con un archivo test.sh:

http://homepage.mac.com/kounch/GP32/Images/Imagen05.png

Este sirve para probar (parcialmente) nuestro programa en el Mac sin necesidad de copiarlo a la GP32, hacer doble clic sobre dicho archivo test.sh para verlo.



Uso de la plantilla de SDL

Una vez instalado todo, cerrar si estuviera abierto XCode y volver a abrirlo. Elegir la opci&#243;n "New Project" del men&#250; "File", y elegir en la ventana que aparece GP32 y luego SDL.

Elegir un nombre para el proyecto y el directorio donde se va a crear.

Una vez creado, os aparecer&#225; la ventana del mismo, similar a la que hemos visto antes, pero esta vez con un programa en C, usando las SDL de Chui.

Para compilar el programa y probarlo, basta con pulsar en el icono "Build"
De aqu&#237; los tres ficheros que se deben ajustar a vuestro gusto (antes de cada compilaci&#243;n, claro) son los siguientes:

<<nombre del projecto>>.c C&#243;digo fuente en C.
<<nombre del projecto>>.bmp Icono que se mostrar&#225; en la GP32
Makefile Archivo con las reglas para compilar el proyecto poner nombre, etc. Interesante para usuarios avanzados que quieran personalizar m&#225;s su programa.

Despu&#233;s de haber compilado, se crear&#225; todo lo necesario en el directorio build de la carpeta del proyecto:

Para probarlo en la GP32, basta con copiar el contenido de GPMM al directorio GPMM de una tarjeta SMC. Como he dicho antes, se puede usar un lector de tarjetas o, por ejemplo, mi programa iGP32 (http://igp32.sourceforge.net) para copiarlo directamente a la consola usando el cable USB.

Observar tambi&#233;n que, cuando se compila para Mac OS X, se crea un directorio "Mac", con un archivo <<nombre del projecto>>. Este sirve para probar (parcialmente) nuestro programa en el Mac sin necesidad de copiarlo a la GP32, hacer doble clic sobre dicho archivo para verlo.


Notas:

El entorno s&#243;lo se ha probado en un equipo Mac con procesador Intel. No hay ninguna garant&#237;a de que funcione en PowerPC.

Cuidado al editar el .bmp del icono. No hay que alterar la paleta de color, que es la que usa la GP32. Yo he utilizado Gimp (http://gimp.org/macintosh/) para hacer modificaciones sin problemas.

El archivo Leeme.rtf adjunto a las plantillas tiene m&#225;s informaci&#243;n sobre la asignaci&#243;n de teclas en Fenix, la distribuci&#243;n exacta y significado de todos los archivos de cada plantilla, copyrights, etc.

En el directorio /bin de los proyectos de Fenix tambi&#233;n ten&#233;is disponibles las utilidades fpg y map para crear paquetes de archivos de Fenix y mapas. Los archivos que as&#237; se hayan creado, tendr&#233;is que copiarlos en build/GPMM/<<nombre del proyecto/ tanto para poder probarlos en el Mac, como para usarlos luego en la GP32.

La detecci&#243;n de sintaxis de Fenix es a&#250;n muy b&#225;sica (palabras clave, par&#233;ntesis y poco m&#225;s), pero estoy trabajando a ver si consigo m&#225;s cosas (detecci&#243;n de "funciones", plegado -folding- de c&#243;digo, etc)


Un saludo
kounch

^MiSaTo^
09/01/2008, 11:05
Madre mía Kounch!!! No sabes lo bien que me viene!! Mil gracias :brindis:

Aiken
09/01/2008, 11:31
Madre mía Kounch!!! No sabes lo bien que me viene!! Mil gracias :brindis:

Animate Misato y nos presentas algo para la compo de GP32 :)

Mil gracias Kounch! :brindis: (yo no creo que lo use, pero si gracias a eso sale algun jueguillo para gp32 :brindis:

Aiken

^MiSaTo^
09/01/2008, 11:44
Animate Misato y nos presentas algo para la compo de GP32 :)

Mil gracias Kounch! :brindis: (yo no creo que lo use, pero si gracias a eso sale algun jueguillo para gp32 :brindis:

Aiken

Qué va tío, no puedo presentarme. Estoy hasta arriba de curro en el trabajo, además tengo que entregar dos prácticas esta semana y los exámenes a la vuelta de la esquina xDDD
No tengo un minuto para respirar casi!!

cyberbask
09/01/2008, 13:28
kounch, muchas gracias. Me acabas de hacer un gran favor. Con el Xcode 2.4 me manejo, pero con el 3.0 me cambiaron las cosas de sitio y no me entero. Esto me va a venir genial.

Gracias de nuevo.

Aiken
09/01/2008, 14:24
Para los Mackeros, deciros que Mr.Spiv (uno de los gurus ya dinosaurios de gp32) programaba con un Mac, asi que si visitais su web seguramente encontreis algo interesante (no lo he mirado pero se que tenia cosas para mac y gp32) ;)

Aiken

kounch
09/01/2008, 15:09
Para los Mackeros, deciros que Mr.Spiv (uno de los gurus ya dinosaurios de gp32) programaba con un Mac, asi que si visitais su web seguramente encontreis algo interesante (no lo he mirado pero se que tenia cosas para mac y gp32) ;)
AikenEn efefecto, el icono de estas plantillas proviene de allí. Y la utilidad maclink es parte de la base del programa iGP32. La web sige operativa (http://www.cs.helsinki.fi/u/jikorhon/condev/gp32/) aunque no recomiendo usar el devkit que ofrece en un Mac Intel, ya que hace cosas raras.

jean la montard
09/01/2008, 19:26
Eres el **** amo ; te lo agradezco enormemente, lastima que entremos en los parciales de estas fechas y no le pueda dedicar tiempo ...

Kounch&#191;Siguiendo el modelo de plantilla que has hecho se podria hacer un entorno de desarrollo de fenix para Dreamcast en Xcode 3.0?seria interesante

kounch
09/01/2008, 20:06
Hola


Eres el **** amo ; te lo agradezco enormemente, lastima que entremos en los parciales de estas fechas y no le pueda dedicar tiempo ...

Kounch¿Siguiendo el modelo de plantilla que has hecho se podria hacer un entorno de desarrollo de fenix para Dreamcast en Xcode 3.0?seria interesanteMe alegro de que sea útil :D

Respecto a lo que comentas, no se cómo funciona Fenix en Dreamcast, pero, si la versión que necesita es la misma (la 0.84b), entonces el .DCB que se genera sería perfectamente aprovechable. Sería entonces cuestión de hacerte una copia, eliminar la parte de GP32 (directorio runtime y el archivo .bmp) de la plantilla, así como del Makefile y, si en Dreamcast hay que hacer algún cambio para instalar un runtime personalizado (como en GP32 que le incorporamos un icono y un nombre), añadirlos así como incluirlo en el Makefile.

Un saludo
kounch

jean la montard
09/01/2008, 20:32
Siento abusar de la confianza de los foreros pero esto ya ralla lo absurdo ...

Si lo he entendido bien los archivos a editar son el test.prg y el test.bmp &#191;No?

Bien pues al ejecutar un codigo en plan Hola mundo siguiendo un tuto para probarlo pero me manda a la mierda y me dice que no encuentra el test.dcb , concretamente dice:
Building target "test" of project "test" with configuration "Release"---(1 error)>
Running external build tool (1 error)>
mv: test.DCB: No such file or directory

Y aqui el codigo



Program miprograma;

private
Int mivar1;
end

Begin
mivar1=10;
while(mivar1<320)
delete_text(0);
mivar1=mivar1+2;
write(0,mivar1,,100,1,"hola mundo");
frame;
end
end



Lo mas curioso de todo es que si dejo el codigo que lleva originalmente el proyecto compila perfectamente y se ejecuta... :S

kounch
09/01/2008, 21:52
Siento abusar de la confianza de los foreros pero esto ya ralla lo absurdo ...

Si lo he entendido bien los archivos a editar son el test.prg y el test.bmp ¿No?

Bien pues al ejecutar un codigo en plan Hola mundo siguiendo un tuto para probarlo pero me manda a la mierda y me dice que no encuentra el test.dcb , concretamente dice:
Building target "test" of project "test" with configuration "Release"---(1 error)>
Running external build tool (1 error)>
mv: test.DCB: No such file or directory

Y aqui el codigo



Program miprograma;

private
Int mivar1;
end

Begin
mivar1=10;
while(mivar1<320)
delete_text(0);
mivar1=mivar1+2;
write(0,mivar1,,100,1,"hola mundo");
frame;
end
end



Lo mas curioso de todo es que si dejo el codigo que lleva originalmente el proyecto compila perfectamente y se ejecuta... :SCambia la línea


write(0,mivar1,,100,1,"hola mundo");
por

write(0,mivar1,100,1,"hola mundo");

Te sobra una coma.

jean la montard
09/01/2008, 21:58
Pido disculpas por molestar con un error asin :S si ya funciona perfect

reitero mi agradecimiento

kounch
09/01/2008, 22:52
Pido disculpas por molestar con un error asin :S si ya funciona perfect

reitero mi agradecimientoHola otra vez
a raíz de tu problema, he visto cómo hacer que, cuando compiles un programa, aparezcan errores más descriptivos que el que te ha salido. Ahora, en vez del que te ha aparecido, saldría algo así:

Error in file test.prg at line 18: Unknown identifier (",")
make: *** [build/gpmm/test/test.DCB] Error 2He actualizado el .zip con estos cambios, así que basta con que os volváis a bajar las plantillas para tenerlos.

Un saludo
kounch

cyberbask
11/01/2008, 13:49
kounch, un offtopic.

¿Sabes de algun tutorial para ir pillandole el truco al xcode 3.0? Manual para torpes, ya sabes.

Gracias

kounch
11/01/2008, 14:12
kounch, un offtopic.

¿Sabes de algun tutorial para ir pillandole el truco al xcode 3.0? Manual para torpes, ya sabes.

GraciasPues no se decirte, yo me las arreglo con la ayuda del programa, Google y lo que hay aquí
http://developer.apple.com/referencelibrary/GettingStarted/GS_Tools/index.html
http://developer.apple.com/documentation/DeveloperTools/Conceptual/XcodeUserGuide/Contents/Resources/en.lproj/00_00_intro/chapter_1_section_1.html

D_Skywalk
12/01/2008, 14:16
Puedo usar XCode 3 en Tiger? o definitivamente tengo que pasarme a Leopard? :D

Un Saludo y gracias por ambos curreles, kounch for president ;D

kounch
12/01/2008, 16:32
Puedo usar XCode 3 en Tiger? o definitivamente tengo que pasarme a Leopard? :D

Un Saludo y gracias por ambos curreles, kounch for president ;DXCode 3 s&#243;lo funciona en Leopard. La sintaxis de fenix seguro que no funciona con XCode 2 (porque han cambiado por completo el formato del fichero), pero las plantilas es posible que s&#237; que valgan. Puedes intentarlo instal&#225;ndolas en Library/Application Support/Apple/Developer Tools/Project Templates

Un saludo
kounch

kounch
14/01/2008, 23:43
Hola de nuevo
tras hacer lo mismo en GP2X (http://www.gp32spain.com/foros/showthread.php?t=51307), he actualizado la plantilla de SDL para poder compilar para Mac o para GP2X, incluyendo dentro de la misma las librerías estáticas, archivos de cabecera, etc. de SDL para Mac.

Así, ahora, podéis ir haciendo pruebas en el Mac antes de pasar el ejecutable final a la GP2X.

También he actualizado el primer post del tutorial con el nuevo dato.

Un saludo
kounch

dimonigirona
06/02/2008, 16:18
Hay alguna cosa para haceer un ejecutable para mac?

kounch
06/02/2008, 19:18
Hay alguna cosa para haceer un ejecutable para mac?
Hola

Si relees el primer mensaje del hilo, verás que sí.

Un saludo
kounch

Chopi
09/04/2010, 16:34
hola, siento reflotar el hilo tanto tiempo despues :$:$

es que he estado instalando la plantilla y ahora el xcode no tiene la carpeta specification yo la he creado pero a la hora de compilar me da un error

Make:cp:No such file or directory
make:*** [build/gpmm/prueba/prueba.DCB] Error 1

alguien me puede ayudar?

gracias y perdon por las molestias

kounch
09/04/2010, 18:37
hola, siento reflotar el hilo tanto tiempo despues :$:$

es que he estado instalando la plantilla y ahora el xcode no tiene la carpeta specification yo la he creado pero a la hora de compilar me da un error

Make:cp:No such file or directory
make:*** [build/gpmm/prueba/prueba.DCB] Error 1

alguien me puede ayudar?

gracias y perdon por las molestiasHola
ese mensaje indica que faltan ficheros en el proyecto. Asegúrate de que la carpeta en
/Developer/Library/Xcode/Project Templates/GP2Xes exactamente como la de la captura de pantalla que adjunto. Si no es así, añade los archivos que falten desde el archivo original, vuelve a crear el proyecto desde cero, y copia el código del proyecto que no te funcionaba al que acabas de crear.

Yo acabo de probar con XCode 3.2.2, teniendo esa estructura, y me ha funcionado perfectamente.

Un saludo
kounch

aty
20/12/2012, 14:02
GP32[GP32] Programación[Ayuda] No me funciona el usb y la smc esta formateada en fat necesito instalar por lector

-----Actualizado-----

GP32[GP32] Programación[Ayuda] No me funciona el usb y la smc esta formateada en fat necesito instalar por lector

kounch
20/12/2012, 19:06
¿Y esto qué tiene que ver con programar en el Mac para la GP32? Vaya reflote.