Como programar para PSP en Windows (Cygwin)

Despues de los tutoriales para Linux, le llega el turno a Windows, hay un metodo para poder compilar programas usando el compilador de PS2, pero no es la mejor opción, ya hay un compilador especifico para PSP, pero esta diseñado para Linux, así que en Windows necesitaremos usar el entorno Cygwin.

Lo primero que tenemos que hacer es descargar e instalar el Cygwin, para ello seguimos los siguientes pasos:


Cygwin

1.- Descargar el instalador de http://www.cygwin.com/setup.exe ocupa solo 300KB por que el resto se descarga durante la instalación

2.- Ejecutamos el setup.exe, vamos dandole a siguiente y poniendo las opciones que nos soliciten, cuando nos pregunte el sitio donde descargar, seleccionar el "ftp://ftp.rediris.es" que funciona muy bien, ahora tenemos que seleccionar los paquetes, los paquetes son los programas que queremos instalar, por defecto ya bienen seleccionados los paquetes básicos pero nosotros necesitamos los programas de desarrollo, en la sección "Devel" hay que seleccionar los paquetes:

autoconf, autoconf2.1, autoconf2.5, automake1.9, binutils, bison, cvs, cvsutils, expat, gcc, gcc-core, gcc-g++, gcc-mingw-core, gcc-mingw-g++, gettext, gettext-devel, libiconv, libtool1.5, make, mingw-runtime, mktemp, nasm, patchutils

También teneis que seleccionar el paquet WGET para instalar ya que el script del toolchain lo usa.

Y siguiente, ahora se bajará todos los paquetes y los instalará, son unos 50MB para bajar.



Toolchain

Ya podemos instalar el toolchain, abrimos el cygwin, por defecto inicia en nuestro directorio home, que será "/home/usuario" que en Windows equivale a "c:\cygwin\home\usuario", empezamos:

1.- Nos bajamos el toolchain http://www.oopo.net/consoledev/files/psptoolchain-20050619.tgz
2.- Lo descomprimimos: tar -zxf psptoolchain-20050619.tgz esto nos creará la carpeta psptoolchain
3.- Dentro de la carpeta tenemos "toolchain.sh" junto con algunos ficheros ".patch", ejecutamos "./toolchain" y a esperar un rato, se tiene que bajar unos 55MB y la compilación tarda mas o menos una hora.



Configuración

Ya tenemos instalado el cygwin y el compilador para PSP, tenemos que configurar el PATH para que podamos ejecutar los comandos de compilación desde cualquier directorio.

Editamos el fichero ".bashrc" que encontraremos en nuestro directorio "home", si no sabemos cual es nuestro home hacemos lo siguiente, ponemos "cd" y intro, cuando ejecutamos "cd" sin parametros nos lleba a nuestro "home", una vez en nuestro "home" ejecutamos "pwd" y nos dará el directorio.

En el fichero ".bashrc" añadimos al final:

## PSPDEV
export PSPDEV="/usr/local/pspdev"
export PATH="$PATH:$PSPDEV/bin:$PSPDEV/psp/bin:$PSPSDK/bin"

Y reiniciamos el Cygwin para que estas variables funcionen, es decir, cerramos la ventana y la volvemos a abrir.



Compilar (test)

Y para terminar vamos a compilar un ejemplo de estrellitas.

Vamos a nuestro "home", nos bajamos el ejemplo y lo compilamos:

cd $HOME
wget http://www.siirlabs.com/pspdev/pspstars2.tar.gz
tar -zxf pspstars2.tar.gz
cd pspstars2
make

Y con esto tendremos nuestro EBOOT.PBP listo para ejecutar en la PSP, adjunto el EBOOT.PBP listo para ejecutar en la PSP con el metodo Swaploit.

Adjuntos

Muchas gracias por el tutorial, pero siguiendo el tutorial, me genera el pbp pero al compilar muestra los siguientes warnings
¿ Es normal ? o tengo mal montado el entorno.

psp-gcc -c -xassembler -O -o startup.o startup.s
startup.s: Assembler messages:
startup.s:90: Warning: setting incorrect section attributes for .rodata.entrytab
le
psp-gcc -c main.c -o main.o
psp-gcc -c pg.c -o pg.o
pg.c: In function 'pgDrawFrame':
pg.c:124: warning: pointer targets in assignment differ in signedness
pg.c: In function 'pgFillBox':
pg.c:140: warning: pointer targets in assignment differ in signedness
pg.c: In function 'pgFillvram':
pg.c:153: warning: pointer targets in assignment differ in signedness
pg.c: In function 'pgBitBlt':
pg.c:180: warning: pointer targets in assignment differ in signedness
pg.c: In function 'pgBitBltSt':
pg.c:206: warning: pointer targets in assignment differ in signedness
pg.c: In function 'pgPutChar':
pg.c:236: warning: comparison is always false due to limited range of data type
pg.c:238: warning: pointer targets in assignment differ in signedness
pg.c: In function 'pgPutPixel':
pg.c:299: warning: initialization from incompatible pointer type
psp-gcc -c pad.c -o pad.o
psp-gcc -c stars2.c -o stars2.o
psp-gcc startup.o main.o pg.o pad.o stars2.o -nostartfiles -o out -Wl,-Ttext -Wl
,8900000
./bin/outpatch
successed filesize:0000781D modulename:00006104 scemoduleinfo:000065AF
./bin/elf2pbp outp "PSP Stars 2"
Elf2Pbp v0.3 - loser 2005
successfully generated pbp file

Un saludo
pues a mi no me descomprime .el tar donde hay a q meterlo? me dice q no lo encuentra

gracias
Una pregunta, ¿el compilador ese para PSP de dónde ha salido? Es ilegal, o una versión del gcc para la PSP o qué?
Estoy igual que pfer1984, aparte tuve unos problemitas instalando ya que elegia el servidor "ftp://ftp.rediris.es" no conectaba y tuve que elegir otros. Despues ya esta todo instalado en "C:\cygwin", ok ahora abro el cygwin pongo el comando "tar -zxf psptoolchain-20050619.tgz" con el archivo puesto en la misma carpeta y me dice que no encuentra el directorio.
yo tengo una duda, como leches ejecuto el toolchain.sh ???. puedes explicar mejor ese punto?, gracias :)
Pada puedes explicar como descomprimiste el archivo?
Pada escribió:yo tengo una duda, como leches ejecuto el toolchain.sh ???. puedes explicar mejor ese punto?, gracias :)


chmod +x toolchain.sh tb debes tener instalao wget... si no lo tienes vuelve a lanzar el setup del cgywin e instalalo
Dios que imbecil soy si se puede hasta con el winrar
ya me ayudo rapiz a hacer la cosa.

mrsiir te falta poner que hace falta bajar el wget tambien, se te ha colado ;)
hola gente, necesito ayuda.
creo que todo esta bien instalado peor al ejecutar el toolchain.sh
se conecta al ftp , pero no descarga, mirad lo que me sale:

--02:09:26-- ftp://ftp.gnu.org/pub/gnu/binutils/binutils-2.16.tar.gz
=> `binutils-2.16.tar.gz'
Resolving ftp.gnu.org... 199.232.41.7
Connecting to ftp.gnu.org[199.232.41.7]:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD /pub/gnu/binutils ... done.
==> SIZE binutils-2.16.tar.gz ... done.
==> PORT ... done. ==> REST 16377304 ... done.
==> RETR binutils-2.16.tar.gz ...
Error in server response, closing control connection.
Retrying.

y asi sigue intentando como 20 veces,pero no lo consigue.y luego sigue con los otros archivos y lo mismo.

que puedo hacer?????

gracias
saludos
Dios que perdido estoy XDDDDDDDDDDDDD como ejecutais toolchain.sh? donde poneis chmod +x toolchain.sh?.
Muchas gracias por el tutorial muy bien explicado.
EDITO: solo falta decir que hay que elegir también el wget a la hora de instalar el cygwin.
UNAME_MACHINE = amd64
UNAME_RELEASE = 1.5.17(0.129/4/2)
UNAME_SYSTEM = CYGWIN_NT-5.2
UNAME_VERSION = 2005-05-25 19:38
configure: error: can not guess host type; you must specify one
ERROR CONFIGURING BINUTILS (binutils-2.16 psp)

Administrator@yeppe ~/psphome/psptoolchain

Alguien sabe que tengo que configurar??

Salu2
Pada escribió:mrsiir te falta poner que hace falta bajar el wget tambien, se te ha colado
Si, es cierto, hace falta el Wget. Thks.

alh4k escribió:Muchas gracias por el tutorial, pero siguiendo el tutorial, me genera el pbp pero al compilar muestra los siguientes warnings ¿Es normal? o tengo mal montado el entorno.
Es normal, son Warnings, a mi también me los da y funciona bien.

zheo escribió:Una pregunta, ¿el compilador ese para PSP de dónde ha salido? Es ilegal, o una versión del gcc para la PSP o qué?
Es 100% legal, es una versión del GCC compilada para la PSP.
MrSiir[S escribió:] Es 100% legal, es una versión del GCC compilada para la PSP.


¡Me das la vida tío! Sólo faltaría que hubiera algo documentación acerca de cómo trabaja la PSP (chip gráfico y tal) para hacer un biblioteca, pero es una gran noticia :)
Hola, me parece genial que pienses en los que estamos intentando aprender y nos muestres desde "0" como poder hacer funcionar un "soft" programado x alguien o x ti mismo.
MUCHAS GRACIAS!!

He seguido creo que al pie de la letra el tutorial y casi perfecto, al compilar con "make" me da el error 127.
pone:
psp-gcc -c -xassembler -O -o startup.o startup.s
make: psp-gcc: Command not found
make: ***[startup.o] Error 127

Los archivos .o se crean solos? yo no tengo ninguno...

Espero que no sea porque al instalar el Cygwin me he dejado el psp-gcc ... creo que lo puse con toda seguridad.

Bueno decirme algo, graciaassssss... ;)

Saludos,

Edito: Por cierto MrSiir[S] no te quemes compañero, yo ya había visto los tutos de stars I, II y III y estaba teniendo problemas con el CVS ... Te digo que no te quemes por gente que te diga sandeces. Yo espero leer más tutos tuyos o de alguien que me pueda aportar algo. GRACIAS DE VERDAD.
Yep escribió:UNAME_MACHINE = amd64
UNAME_RELEASE = 1.5.17(0.129/4/2)
UNAME_SYSTEM = CYGWIN_NT-5.2
UNAME_VERSION = 2005-05-25 19:38
configure: error: can not guess host type; you must specify one
ERROR CONFIGURING BINUTILS (binutils-2.16 psp)

Administrator@yeppe ~/psphome/psptoolchain

Alguien sabe que tengo que configurar??

Salu2

Si a alguien mas le pasa esto la solución es editar el toolchain.sh para añadir el host en todos los configures.

## Configure the source.
../configure --prefix=$PSPDEV/$TARGET --target=$TARGET --host=x86_64|| { echo "ERROR CONFIGURING BINUTILS ($BINUTILS $TARGET)"; exit; }
Ya hice todo lo del turorial pero no he descargado el WGET, no lo encuetro en el CYGWIN, alguie podria ayduarmre
GRACIAS!
carloscane escribió:Ya hice todo lo del turorial pero no he descargado el WGET, no lo encuetro en el CYGWIN, alguie podria ayduarmre


Hola socio, al instalar los paquetes ... casi todos están en "devel" pero el wget está en Web. Solo tienes que seleccionarlo e instalarlo.

Por cierto, sigo teniendo esta duda:
kAsTe escribió:He seguido creo que al pie de la letra el tutorial y casi perfecto, al compilar con "make" me da el error 127, pone:
psp-gcc -c -xassembler -O -o startup.o startup.s
make: psp-gcc: Command not found
make: ***[startup.o] Error 127

Los archivos .o se crean solos? yo no tengo ninguno...

Espero que no sea porque al instalar el Cygwin me he dejado el psp-gcc ... creo que lo puse con toda seguridad.

Bueno decirme algo, graciaassssss... ;)


Saludos,
Ok gracias, ahora mi duda es:
Un paso dice esto: Dentro de la carpeta tenemos "toolchain.sh" junto con algunos ficheros ".patch", ejecutamos "./toolchain" y a esperar un rato, se tiene que bajar unos 55MB y la compilación tarda mas o menos una hora.

Ahi el archivo que tengo q ejecutar el el toolchain.sh?? o cual?? si es ese como loejecuto?
Dios me pego 3 dias dia y noche intentando ejecutar y ejecutar y ejecutar y me doy cuenta que lo q ai q poner es ./toolchain.sh <--------------- .SH!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

bueno pues otro paso dado XD seguiremos.
pues yo la verdad sigo sin entender.. donde tengo que poner ./toolchain.sh?
Carloscane tienes q ejecutar el "cygwin" de la carpeta donde instalaste el cygwin (seguramente C:\cygwin), es un archivo por lotes MSdos (usease como la ventana de MSdos), y cuando se abra pones ./toolchain.sh y se descargaran del FTP que elegiste los nuevos lotes.
mañana en el curro a probar todo :D
lo mismo meterlo en las solaris del curro esta bien xDDDDD
A alguien le ha pasado de compilar, que te de los warnings normales y luego probarlo y que no fone?. Tengo la version 0.9 del emulador de psp y nada de nada que no va. Me sale para elegir y tal le doy y pantalla en negro. Por cierto lo compile unas cuantas veces :), y siempre lo mismo.


HexDump.
Ok ya puse lo de ./toolchain.sh pero me sale un mensaje q dice "no such file or directory" el toolchain.sh debe de estar en la misma carpeta??
Tengo una duda:

Todo me sale bien pero cuando intento compilar el pspstars2 me da el siguiente error despues de los warnings.


./bin/outpatch
make: execvp: ./bin/outpatch: Permission denied
make: *** [out] Error 127

El problema es que si intento acceder al outpatch.exe desde windows que hay en la carpeta bin de pspstars2 tambien me salta un error que dice lo mismo, que no se puede acceder por que no tengo los permisos adecuados para tener acceso al elemento.


A ver si alguien me pudiera ayudar....
Alguien me puede decir por que al poner la linea:

# cd /etc/profile.d/
# vi ps2dev.sh

me dice:

# vi ps2dev.sh
bash: vi: command not found

[uzi] [uzi] [mamaaaaa]
Porq no tienes instalado el "vi"
Hay que bajar también flex y libncurses-dev.
¿Por qué reflotas un hilo que tiene DOS AÑOS? [tomaaa]
31 respuestas