[PSP] Como programar para PSP (Stars)(y II)

Aquí tenemos la segunda entrega de cómo programar para nuestra PSP, después del primer post donde se explicaba como instalar el entorno de programación y compilar el “Hello World”, en esta segunda entrega vamos a programar una pequeña demo de estrellas en moviemiento.

Empezamos viendo todos los ficheros y cual es su cometido:

- font.c: Fuente para los textos
- stars.c y stars.h: Estrellas, crear y mostrar
- main.c: Fichero principal
- types.h: Definición de algunos tipos
- pad.c y pad.h: Control del Pad
- pg.c y pg.h: Primitivas
- mtrand.c y mtrand.h: Números aleatorios
- colors.h: Definición de colores
- image_psp.c: Imagen

Los ficheros font.c, types.h, pad.c, pad.h, pg.c, pg.h y colors.h estan extraidos de varios emuladores o demos open source para PSP así que no hace falta que expliquemos que hacen.

Los ficheros mtrand.c y mtrand.h no los he visto por ahí, pero son una pequeña implementación de “Mersenne Twister” que es un generador de números aleatorios programado por Makoto Matsumoto y Takuji Nishimura.

El fichero image_psp.c es un array con el contenido de la imagen que queremos mostrar, para generar este array he usado “ConvImage” que por desgracia solo funciona para Windows.

Y por fin nos quedan main.c, stars.c y stars.h que son los ficheros que nos interesan, vamos a ver por encima los tres ficheros:

stars.h: Creamos una estructura muy sencilla para cada estrella, creamos un array de la estructura estrella para todas las estrellas, definimos tres funciones, “stars_new” para crear una estrella es una posición aleatoria, “stars_init” para inicializar todas las estrellas y “stars_draw” para imprimirlas.
/*
  _____     ___ ____
   ____|   |    ____|      MrSiir / SiirLabs
  |     ___|   |           (C)2005, MrSiir (mrsiir@gmail.com)
  ------------------------------------------------------------------------
  stars.h
                                  Stars
  ------------------------------------------------------------------------
*/
#ifndef STARS_H
#define STARS_H

#define MAX_STARS       200     // Numero de estrellas
#define SCREEN_WIDTH    480     // Ancho de la pantalla
#define SCREEN_HEIGHT   272     // Alto de la pantalla

// Las estrellas se mueve hacia la:
#define STARS_LEFT      0       // Izquierda
#define STARS_RIGHT     1       // Derecha
#define STARS_UP        2       // Arriba
#define STARS_DOWN      3       // Abajo

// Estructura para las estrellas
typedef struct _star
{
   int x;                       // Posicion X
   int y;                       // Posicion Y
   int speed;                   // Velocidad de la estrella
   unsigned short color;        // Color
} star;

star stars[MAX_STARS];   // Array con las estrellas

void stars_new(int n);          // Inicializamos una estrella en la posicion n
void stars_init(void);          // Inicializamos todas las estrellas de 0 a MAX_STARS
void stars_draw(int stars_dir); // Pintamos todas las estrellas

#endif


stars.c: Evidentemente es la implementación de stars.h, es muy muy sencillo, evidentemente se puede mejorar mucho, pero para una primera toma de contacto con la PSP no esta mal.
/*
  _____     ___ ____
   ____|   |    ____|      MrSiir / SiirLabs
  |     ___|   |           (C)2005, MrSiir (mrsiir@gmail.com)
  ------------------------------------------------------------------------
  stars.c
                                  Stars
  ------------------------------------------------------------------------
*/
#include "stars.h"
#include "mtrand.h"


/*
* Inicializamos una estrella en la posicion n
*/
void stars_new(int n)
{
   stars[n].x = rand() % SCREEN_WIDTH;  // Posicion X inicial entre 0 y SCREEN_WIDTH
   stars[n].y = rand() % SCREEN_HEIGHT; // Posicion Y inicial entre 0 y SCREEN_HEIGHT
   stars[n].speed = (rand() % 4) + 1;   // Velocidad de la estrella entre 1 y 4
   stars[n].color = rgb2col(0,0,0);     // Color inicial negro

   // Cambiamos el color segun la velocidad
   if(stars[n].speed == 1) stars[n].color = rgb2col(255,255,255); // Blanco
   if(stars[n].speed == 2) stars[n].color = rgb2col(211,211,211); // Gris claro
   if(stars[n].speed == 3) stars[n].color = rgb2col(128,128,128); // Gris
   if(stars[n].speed == 4) stars[n].color = rgb2col(255,255,0);   // Amarillo
}

/*
* Inicializamos todas las estrellas de 0 a MAX_STARS
*/
void stars_init(void)
{
   int n;
   // Inicializamos el generador de numeros aleatorios
   srand(SCREEN_WIDTH);
   
   // Inicializamos todas las estrellas
   for(n=0; n<MAX_STARS; n++)
   {
      stars_new(n);
   }
}

/*
* Pintamos todas las estrellas
*/
void stars_draw(int stars_dir)
{
   int n;
   
   // Recorremos todas las estrellas para moverlas y pintarlas
   for(n=0; n<MAX_STARS; n++)
   {
      // Las estrellas pueden hacia la izquierda, derecha, arriba o abajo
      switch(stars_dir)
      {
         case STARS_LEFT:
            // Decrementamos la posicion X
            stars[n].x -= stars[n].speed;
            if(stars[n].x <= 0) stars_new(n);
            break;
         
         case STARS_RIGHT:
            // Incrementamos la posicion X
            stars[n].x += stars[n].speed;
            if(stars[n].x >= SCREEN_WIDTH) stars_new(n);
            break;
         
         case STARS_UP:
            // Decrementamos la posicion Y
            stars[n].y -= stars[n].speed;
            if(stars[n].y <= 0) stars_new(n);
            break;
         
         case STARS_DOWN:
            // Incrementamos la posicion Y
            stars[n].y += stars[n].speed;
            if(stars[n].y >= SCREEN_HEIGHT) stars_new(n);
            break;
      }
      // Pintamos la estrella en su posicion X,Y con su color
      pgDrawFrame(stars[n].x, stars[n].y, stars[n].x, stars[n].y, stars[n].color);      
   }
}


main.c: El código esta todo comentado, así que no creo que tenga que apuntar nada más.
/*
  _____     ___ ____
   ____|   |    ____|      MrSiir / SiirLabs
  |     ___|   |           (C)2005, MrSiir (mrsiir@gmail.com)
  ------------------------------------------------------------------------
  main.c
                                  Stars
  ------------------------------------------------------------------------
*/
#include "pad.h"
#include "pg.h"
#include "colors.h"
#include "mtrand.h"
#include "stars.h"
#include "image_psp.c"

/*
* Punto de entrada del programa establecido por startup.s
*/
int xmain(int argc, char *argv)
{
   
   pgInit();                    // Iniciamos el modo grafico
   pgScreenFrame(2,0);
   CtrlInit(0);                 // Iniciamos el PAD
   pgFillvram(0);               // Vaciamos
   pgScreenFlipV();             // Pintamos

   int stars_dir = STARS_LEFT;  // Inicialmente hacia la izquierda
   stars_init();                // Iniciamos las estrellas
   
   // Bucle infinito
   while(1)
   {
      // Leemos el PAD
      readpad();

      // Si presionan cambiamos la direccion
      if(new_pad & CTRL_UP)      stars_dir = STARS_UP;     // Arriba
      if(new_pad & CTRL_DOWN)      stars_dir = STARS_DOWN;   // Abajo
      if(new_pad & CTRL_LEFT)      stars_dir = STARS_LEFT;   // Izquierda
      if(new_pad & CTRL_RIGHT)   stars_dir = STARS_RIGHT;  // Derecha

      pgFillvram(0);                                  // Vaciamos
      stars_draw(stars_dir);                          // Printamos las estrellas
      pgPrint2(10, 15, white, "PSP Stars By");        // Printamos el texto 1 en blanco
      pgPrint2(23, 15, bluepsp, "MrSiir");            // Printamos el texto 2 en azul
      pgBitBlt(10, 10, 131, 42, 1, image_pspData);    // Printamos la imagen
      pgScreenFlipV();                                // Printamos
      
   }
   
   // Nunca llegaremos a este punto ;-)
   return 0;

}


Y para finalizar os dejo una imagen de las estrellitas y el código completo.

Imagen

Código fuente: http://www.siirlabs.com/psp/pspstars.tar.gz

1ª ACTUALIZACIÓN:
Tal y como comentaba por ahí, el "ConvImage" solo me funcionaba en Windows así que lo he reprogramado usando las SDL para que funcione en Linux, requiere de SDL y SDL_image.

Código fuente y binario para Linux: http://www.siirlabs.com/psp/ConvImage16SDL.tar.gz
ostia q barbaro, si no fuera tan mal en prigramacion .. ahora mismo tenvidio jajaja
Pues muchas gracias por ambos, haber si con el veranito me ponga a hacer gilipoyeces(tengo ganas de un hundir la flota por wifi, que es sencillo y entretiene bastante aunque sea una gilipoyez de juego)

Edito: Ya que estamos alguien sabe de algo de info sobre el funcionamiento del wifi de la psp por que hace un par de dias habia mirado algo y no encontre nada de nada
Una pregunta, para los programas de PSP hay que programar siempre en modo grafico, o sea C++ no? Lo digo por lo del hello world que no vale un simple printf...
Paloseco escribió:Una pregunta, para los programas de PSP hay que programar siempre en modo grafico, o sea C++ no? Lo digo por lo del hello world que no vale un simple printf...

Buenas, pues si, siempre en modo gráfico, en la PSP no existe el modo texto o modo consola, solo existe el modo gráfico, se puede programar en C++ pero todavía no se ha podido con el GCC, de momento todo es C.

El ejemplo más sencillo sería algo así:

#include "pg.h"

int xmain(int argc, char *argv)
{
   pgInit();
   pgScreenFrame(2,0);
   CtrlInit(0);
   pgFillvram(0);
   pgScreenFlipV();

   while(1)
   {
      pgFillvram(0);
      pgPrint2(0, 0, 0xffff, "Hello World!!!");
      pgScreenFlipV();
   }
   return 0;
}


El "pg.h" iría junto con el startup.s, etc, del mismo "Hello World" de Nem.
alvaro@ubuntu:~/pspstars $ make
/ee/bin/ee-gcc -march=r4000 -g -mgp32 -c -xassembler -O -o startup.o startup.s
make: /ee/bin/ee-gcc: No se encontró el programa
make: *** [startup.o] Error 127
alvaro@ubuntu:~/pspstars $


Como deberia hacerlo?
AlvaroBF escribió:alvaro@ubuntu:~/pspstars $ make
/ee/bin/ee-gcc -march=r4000 -g -mgp32 -c -xassembler -O -o startup.o startup.s
make: /ee/bin/ee-gcc: No se encontró el programa
make: *** [startup.o] Error 127
alvaro@ubuntu:~/pspstars $

Como deberia hacerlo?

Buenas AlvaroBF, ultimamente nos encontramos en muchos hilos referentes a Linux ;-), me parece que somos de los pocos que usamos Linux, bueno al tema.

Veo que directamente te pone "/ee/bin/ee-gcc" y delante te falta la ruta de $(PS2DEV), una de dos, o no tienes la variable correctamente o no tienes instalado el SDK de la PS2, te recomiendo que te leas el primer post (http://elotrolado.net/showthread.php?s=&threadid=414879) donde se explica como instalar el SDK de la PS2, cualquier problema que tengas no dudes en consultarlo en este hilo.

Mi salida de la compilación es la siguiente:
mrsiir@ubuntu:~/ps2dev/pspstars$ make
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -g -mgp32 -c -xassembler -O -o startup.o startup.s
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32 -mlong32 -c main.c -o main.o
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32 -mlong32 -c pg.c -o pg.o
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32 -mlong32 -c pad.c -o pad.o
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32 -mlong32 -c mtrand.c -o mtrand.o
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32 -mlong32 -c stars.c -o stars.o
/usr/local/ps2dev/ee/bin/ee-ld -O0 startup.o main.o pg.o pad.o mtrand.o stars.o -M -Ttext 8900000 -q -o out > out.map
./bin/outpatch
successed filesize:0000C1AE modulename:00005B64 scemoduleinfo:000090B3
./bin/elf2pbp outp "PSP Stars"
Elf2Pbp v0.3  -  loser 2005
successfully generated pbp file
Buenas ya he realizado el primer tutorial y tras algunos problemas ya me funciona.
El problema que tengo ahora es con el segundo tutorial al realizar
el make me da el siguiente error.

Alh4k@computer /usr/local/ps2dev/psp/pspstars
$ make
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -g -mgp32 -c -xassembler -O -o sta
tup.o startup.s
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32
-mlong32 -c main.c -o main.o
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32
-mlong32 -c pg.c -o pg.o
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32
-mlong32 -c pad.c -o pad.o
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32
-mlong32 -c mtrand.c -o mtrand.o
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32
-mlong32 -c stars.c -o stars.o
/usr/local/ps2dev/ee/bin/ee-ld -O0 startup.o main.o pg.o pad.o mtrand.o stars.o
-M -Ttext 8900000 -q -o out > out.map
./bin/outpatch
make: execvp: ./bin/outpatch: Permission denied
make: *** [out] Error 127


He cambiado los permisos al fichero outpatch con el comando chmod : chmod 777 outpatch y al realizar el make nuevamente
me da el siguiente error:

Alh4k@computer /usr/local/ps2dev/psp/pspstars
$ make
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -g -mgp32 -c -xassembler -O -o star
tup.o startup.s
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32
-mlong32 -c main.c -o main.o
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32
-mlong32 -c pg.c -o pg.o
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32
-mlong32 -c pad.c -o pad.o
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32
-mlong32 -c mtrand.c -o mtrand.o
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32
-mlong32 -c stars.c -o stars.o
/usr/local/ps2dev/ee/bin/ee-ld -O0 startup.o main.o pg.o pad.o mtrand.o stars.o
-M -Ttext 8900000 -q -o out > out.map
./bin/outpatch
./bin/outpatch: 1: Syntax error: "(" unexpected
make: *** [out] Error 2

Estoy algo perdido algun consejo. Gracias.
has probado con el outpatch y elf2pbp del tuto 1? me refiero a que copies los ejecutables y uses los mismos, porque yo en el tuto 3 tengo problemas con los ejecutables de MrSiir y tuve que usar los mios propios [toctoc]
Voy a probar y luego te cuento. Gracias

Efectivamente era eso muchas gracias y ¿ Porque ?
alh4k escribió:Voy a probar y luego te cuento. Gracias
Efectivamente era eso muchas gracias y ¿ Porque ?


Pues porque cuando compilaste los ejecutables los compilaste especificamente para tu sistema operativo con sus configuraciones y sus librerias, y por tanto resultan dependientes. Para que no fuese asi tendrias que compilar el programa siguiendo unos criterios para que fuera compatible con todos. Eso es muy dificil y es en lo que se basan los que hacen los paquetes precompilados .rpm o .deb

[oki]
Que buena pinta tiene este tuto, muchas gracias [ok]

Aun a riesgo de parece un tonto a las tres, prefiero preguntar ^^

¿para darle caña a todo esto hay que tener algunos conocimientos basicos de programacion?

Es que me interesa mucho, pero prefiero preguntar antes de rallarme con el tema.


Salu2!
Hombre, si quieres entender lo que hace el programita convendria tener una base solida de C y luego a partir de ahi C++, pero para compilar y eso no hace falta saber programar. Lo que si convendria es que tuvieses algunos conocimientos de Linux, asi en general aunque eso se aprende sobre la marcha asique puedes ir preguntando y te vamos diciendo. El mk.sh es un script del shell (o interprete de comandos) que hace automaticamente una serie de comandos sin que tu tengas que hacerlos uno por uno. Para que te hagas una idea seria como en .bat en windows pero mas evolucionado.

Los $PS2DEV son variables de entorno para que al ejecutar un comando te busque en ese directorio, como las que tienes en Windows si vas a Mi PC -> propiedades -> Opciones avanzadas -> Variables de entorno y asi si desde msdos pones un comando sin la ruta completa ya te busca ahi, es como si vas a Inicio->ejecutar y pones mspaint te abre el Paint porque esta en C:\Windows\system32\ que es una de las rutas que tienes en las variables de entorno.

Asique ya sabes, pregunta cualquier cosa que no sepas [bye]
Paloseco escribió:Hombre, si quieres entender lo que hace el programita convendria tener una base solida de C y luego a partir de ahi C++, pero para compilar y eso no hace falta saber programar. Lo que si convendria es que tuvieses algunos conocimientos de Linux, asi en general aunque eso se aprende sobre la marcha asique puedes ir preguntando y te vamos diciendo. El mk.sh es un script del shell (o interprete de comandos) que hace automaticamente una serie de comandos sin que tu tengas que hacerlos uno por uno. Para que te hagas una idea seria como en .bat en windows pero mas evolucionado.

Los $PS2DEV son variables de entorno para que al ejecutar un comando te busque en ese directorio, como las que tienes en Windows si vas a Mi PC -> propiedades -> Opciones avanzadas -> Variables de entorno y asi si desde msdos pones un comando sin la ruta completa ya te busca ahi, es como si vas a Inicio->ejecutar y pones mspaint te abre el Paint porque esta en C:\Windows\system32\ que es una de las rutas que tienes en las variables de entorno.

Asique ya sabes, pregunta cualquier cosa que no sepas [bye]


Muchas gracias por la aclaracion, la verda es que no tengo conocimientos de programacion en C ni siquiera bases de linux ¿lo tengo chungo no?
Gremio escribió:
Muchas gracias por la aclaracion, la verda es que no tengo conocimientos de programacion en C ni siquiera bases de linux ¿lo tengo chungo no?


No, asi empezamos todos, yo tambien estoy aprendiendo muchas cosas dia a dia [buenazo]
Okis, tanks :)

¿entonces lo suyo es empezar por el primer tuto que se a currao MrSiir[S]?

Me refiero a Como programar para PSP (mini-HOWTO)


Salu2
Gremio escribió:Okis, tanks :)
¿entonces lo suyo es empezar por el primer tuto que se a currao MrSiir[S]?

Me refiero a Como programar para PSP (mini-HOWTO)

Salu2


Si, lo primero es descargarse todo lo que hace falta de internet y luego compilar los programas elf2pbp y outpatch que serviran para parchear los ejecutables para que valgan para nuestra psp.

Una pregunta: Lo vas hacer desde linux o desde windows con el cygwin? [babas]
pues a mi ayer por la noche me dio por ponerme a trastear con esto, es entretenido xD. evidentemente, empece con chorradillas de texto. luego a pillar los cursores, luego haciendo frontones xD... no se, te entretienes

Imagen
Imagen
Imagen
Imagen

por cierto, yo lo he hecho todo en windows, por si alguien se pregunta si se puede.

la pregunta que tengo, ahora que estoy mirando algunas respuestas... se puede programar en c++ ? porque habia leido que solo c, y la verdad es que me resulta bastaante mas comodo programar en objetos,o tendre que volver a la rutinilla de los structs xD
Paloseco escribió:Una pregunta: Lo vas hacer desde linux o desde windows con el cygwin?


Voy hacerlo desde windows, o eso voy a intentar.

-{Justin}- esas capturas molan mucho.

Esta noche me pongo manos a la obra, supongo que pasare por aqui para preguntar 1000 cosas.

Hasta luego y gracias por las respuestas [oki]
En PSP hay que programar en C++ ya que todo es "grafico". En realidad C++ incluye a C por lo que se usas ambos lenguajes [oki]
bueno, ya empezaba a pensar que no se c++ xDD

MrSiir[S escribió:]Buenas, pues si, siempre en modo gráfico, en la PSP no existe el modo texto o modo consola, solo existe el modo gráfico, se puede programar en C++ pero todavía no se ha podido con el GCC, de momento todo es C.


si lo dice, por algo sera, al menos a mi tampoco me va xD. una simple chorrada de tener una clase Numero con un int a, y una funcion int Numero::multX2() que devuelva la multiplicacion con este compilador no funciona, cosa, que evidentemente, con otro compilador de windows me va.
Buenas una pregunta estúpida he incluido en el código el la instrucción sprintf, he incluido #include pero al compilar me da el siguiente error :

$ make
/usr/local/ps2dev/ee/bin/ee-gcc -march=r4000 -O3 -fomit-frame-pointer -g -mgp32
-mlong32 -c main.c -o main.o
/usr/local/ps2dev/ee/bin/ee-ld -O0 startup.o main.o pg.o pad.o -M -Ttext 8900000
-q -o out > out.map
main.o(.text+0x110):/usr/local/ps2dev/psp/pspscircle/main.c:106: undefined refer
ence to `sprintf'
make: *** [out] Error 1
creo que la cabecera stdio.h no es estandar para la PSP, solo para sistemas operativos de pc, prueba a borrar esa linea...
Lo he probado pero no funciona de todas las formas muchas gracias, investigaré por ahí y si encuentro algo lo posteo.
me llevo de cabeza eso anoche. te puedo contar, ahora en un segundillo que recopile que coño apañé xD. ahora, lo solucione en windows, pero vamos, supongo que en linux va a ser igual. ahora vuelvo a postear

--

librerias nuevas

vamos a ver, yo baje eso. de ahi, decomprimido, saque...
-> csdlibrary\lib\lib_c.a
-> csdlibrary\lib\libcsd.a

esas librerias las meti en...
-> %DirectorioInstalacion_PS2DEV%\ee\ee\lib

y cuando compilo...

ee-ld -O0 startup.o main.o pg.o -M -Ttext 8900000 -q -l_c -o out > hellopsp.map

sinceramente, no se si el poner esas librerias hace algo o no xD. lo unico que se es que ahora soy el mas feliz del mundo imprimiendo ints xDD

--

acabo de comprobar, y si, si no pones esas librerias, no funciona. no se que iluminacion divina tuve, pero en fin, el -l_c magico
Funcionando muchas gracias.
Alguien ha probado a compilar con el SDK de PSP??
neoisback escribió:Alguien ha probado a compilar con el SDK de PSP??

Y quien tiene el SDK? El que lo tenga no creo que ande por este tipo de foros...
Me refiero al SDK que se ha sido desarrollado por la gente de ps2dev, PSPSDK, no al oficial de sony.

Lleva unos dias fuera y por lo que parece está bastante bien. Están pidiendo a la gente que envie samples escritos con este SDK para que la gente aprenda a utilizarlo. Yo he instalado el toolchain de psp y este SDK en un mac y he compilado sin problemas un pequeño sample que se incluye en la descarga.

SerÃ_a bueno que todos programaramos con este SDK, de este modo el código serÃ_a mas "standard" y la gente se animarÃ_a aun mas a programar para PSP.

-- Un saludo.
Que diferencia hay entra main y xmain? en unos codigos veo uno y en otros otro
Juen escribió:Que diferencia hay entra main y xmain? en unos codigos veo uno y en otros otro
Ninguna, todo depende de lo que pongas en el startup.s, puedes poner main, kmain, xmain, etc..

P.D: Tengo listo un "tuto" para Windows (sin Cygwin) del Compilador + el SDK + el IDE Eclipse, a ver si acabo el PDF y lo subo todo.
Pero el eclipse no era solo para Java?
Paloseco escribió:Pero el eclipse no era solo para Java?
No, el Eclipse sirve para Java, C/C++, PHP, Perl, Webs con Tomcat, etc... Todo funciona con sus plugins, por ejemplo para C/C++ el plugin se llama CDT que es C/C++ Development Tools, puedes encontrar más información en la Web del Eclipse http://www.eclipse.org
33 respuestas