Programmer Sur Xbox360


erwan2004
 Share

Messages recommandés

Salut,

Y a t' il gens qui savent comment programmer sans utiliser le SDK de MS ?

Il existe bien Linux mais il est tres peu evoluer (pas d'audio, ni de support de clef usb et du HDD encore moin de la partie graphique).

Depuis quand linux n'a pas d'audio, pas de support de clé usb, ni du HDD et pas d'interface graphique ?

Même la version pour xbox gère ça.

Si tu veut dev pour la xbox sans le SDK de MS, tu doit passer par libxenon.

Tu peut même compiler tes programmes avec Windows si tu veut.

http://www.free60.org/Libxenon

Lien vers le commentaire
Partager sur d'autres sites

Bon, j'ai réussi a compiler ce pu*ain de toolchain (script de merde) .

Mais j'a un problème avec la compilation du cube, ld ne trouve pas le crt1.o .

J'ai bricolé des liens, des include (-I) dans le makefile mais rien n'y fait.

Si quelqu'un a des infos, je suis preneur .

Modifié par erwan2004
Lien vers le commentaire
Partager sur d'autres sites

J'ai pas trouvé la solution pour le problème avec LD.

Si ca intéresse quelqu'un voila le toolchain revu a ma sauce :

#!/bin/bash      # originally written by Uwe Hermann <uwe@hermann-uwe.de>, released as public domain.   # changed for xenon by Felix Domke <tmbinc@elitedvb.net>, still public domain   # Modifie: probleme avec la detection des commandes, rajout d'un patch, rajout de securitres      TARGET=xenon   #PREFIX="/$HOME/Programmation/Xbox360/xenon" version cygwin   PREFIX="$HOME/Programmation/Xbox360/xenon" # Install location of your final toolchain   PARALLEL="-j 2"		# Or: PARALLEL=""      BINUTILS=binutils-2.19.1   GCC=gcc-4.4.0   NEWLIB=newlib-1.17.0   GDB=gdb-6.8      BUILD_BINUTILS=true   BUILD_GCC=true   BUILD_NEWLIB=true   BUILD_GCC_SECOND=true      # path to the logfile   LOGFILE="`pwd`/build.log"               # temp variables export   export PATH="$PATH":"$PREFIX/bin"   export DEVKITXENON="$HOME/Programmation/Xbox360/xenon"   export PATH="$PATH":"$DEVKITXENON/bin":"$DEVKITXENON/usr/bin"   #echo $PATH      # verifie les commandes sont installees   # 0=ok 1= pas commande 2= mauvaise argumentation      deteccom ()    {			   echo "*****************Check Command**********************"	   which $1    	   case $? in		   0) 			   echo "$1: Command found/Commande trouvee"	  ;;   		   1) 			   echo "*****************ATTENTION**********************"			   echo "$1:  Command no found/Commande non trouvee"			   echo "*****************ATTENTION**********************"   	  ;;   	 		   *) 			   echo "Error/Erreur"	  ;;		   esac	   echo ""   }         checkcommand ()   {	   deteccom make	   deteccom git	   deteccom gcc	   deteccom patch	   deteccom makein	   fodeteccom flex	   deteccom bison      }            libxenon_install ()   {      # controle de la presence de GCC+	   if [ ! -e "$PREFIX/bin/xenon-g++" ]; then		   echo "complateur GCC absent, installez le"		   exit 1	   fi		   rm -rf free60 &>/dev/null   		   #check if git is present to download and install libxenon		   echo "***** Downloading libxenon *****"		   git clone git://free60.git.sourceforge.net/gitroot/free60/free60 >> $LOGFILE 2>&1   		   #patch pour le probleme avec inc <dirent.h> 		   cp  free60/libxenon/drivers/newlib/dirent.h $PREFIX/xenon/include/sys/dirent.h    		   echo "****** Building libxenon *****"		   make -C free60/libxenon/ports/xenon libxenon.a >> $LOGFILE 2>&1   		   make -C free60/libxenon/ports/xenon install >> $LOGFILE 2>&1   		   		   cp  free60/devkitxenon/app.lds free60/devkitxenon/rules $PREFIX/	 		   echo "***** startup crt fix *****"		   cp free60/libxenon/startup/xenon/crt1.o $PREFIX/lib/		   cp free60/libxenon/ports/xenon/crti.o $PREFIX/lib/		   cp free60/libxenon/ports/xenon/crtn.o $PREFIX/lib/      			# controle de l'installation de libxenon	   if [ ! -e "$PREFIX/usr/lib/libxenon.a" ]; then			   echo "libxenon absent, regardez le log"			   exit 1	 	   fi   }      toolchain_install ()   {	   # Make working directory	   echo "Creating final xenon toolchain directory: $PREFIX"   	   if [ ! -d $PREFIX ]; then		   mkdir $PREFIX   	   fi   	   # Check if binutils sources are available, download it if needed	   if [ ! -f "$BINUTILS.tar.bz2" ]; then		   echo "Downloading $BINUTILS.tar.bz2"		   wget -c http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2 || exit 0   	   fi   	   # Check if gcc sources are available, download it if needed	   if [ ! -f "$GCC.tar.bz2" ]; then		   echo "Downloading $GCC.tar.bz2"		   wget -c ftp://ftp.gnu.org/gnu/gcc/$GCC/$GCC.tar.bz2 || exit 0   	   fi   	   # Check if newlib sources are available, download it if needed	   if [ ! -f "$NEWLIB.tar.gz" ]; then		   echo "Downloading $NEWLIB.tar.gz"		   wget -c ftp://sources.redhat.com/pub/newlib/$NEWLIB.tar.gz || exit 0   	   fi   	   rm -rf build	   mkdir build   	   if $BUILD_BINUTILS; then		   echo "Extracting binutils..."		   tar xfj $BINUTILS.tar.bz2 >> $LOGFILE 2>&1 && cat binutils.diff | patch -p0 >> $LOGFILE 2>&1 || exit 0		   cd build		   echo "Configuring binutils..."		   ../$BINUTILS/configure --target=$TARGET --prefix=$PREFIX  --enable-multilib   --disable-nls --disable-werror >> $LOGFILE 2>&1 || exit 0   		   echo "Building binutils, this could take a while..."		   make $PARALLEL >> $LOGFILE 2>&1 || exit 0		   make install >> $LOGFILE 2>&1 || exit 0      		   cd ..		   rm -rf build/*;		   echo "Done"	   fi    	   if $BUILD_GCC; then		   echo "Extracting gcc..."   		   tar xfj $GCC.tar.bz2 >> $LOGFILE 2>&1 && cat gcc.diff | patch -p0 >> $LOGFILE 2>&1 || exit 0		   cd build   		   echo "Configuring gcc..."		   ../$GCC/configure --target=$TARGET --prefix=$PREFIX --with-libiconv-prefix=/opt/local -enable-interwork --enable-multilib \			   --enable-languages="c" --without-headers --disable-shared \			   --with-newlib --disable-libgomp --disable-libmudflap --disable-libssp --disable-nls --disable-shared --disable-threads --without-headers \			   --disable-decimal-float \				 --with-gmp=/opt/local --with-mpfr=/opt/local --with-cpu=cell >> $LOGFILE 2>&1 || exit 0       		   echo "Building gcc, this could take a while..."		   make $PARALLEL all-gcc >> $LOGFILE 2>&1 || exit 0		   make install-gcc >> $LOGFILE 2>&1 || exit 0	      		   cd ..		   rm -rf build/*		   echo "Done"	   fi;   	   if $BUILD_NEWLIB; then		   echo "Extracting newlib..."		   tar xfz $NEWLIB.tar.gz >> $LOGFILE 2>&1 && cat newlib.diff | patch -p0 >> $LOGFILE 2>&1 || exit 0		   cd build   		   echo "Configuring newlib..."		   ../$NEWLIB/configure --target=$TARGET --prefix=$PREFIX  --enable-multilib   --disable-nls >> $LOGFILE 2>&1 || exit 0		   echo "Building newlib, this could take a while..."   		   make $PARALLEL >> $LOGFILE 2>&1 || exit 0		   make install >> $LOGFILE 2>&1 || exit 0   		   cd ..		   rm -rf build/*		   echo "Done"	   fi    	   if $BUILD_GCC_SECOND; then		   # Yes, you need to build gcc again!		   cd build		   echo "Configuring gcc - 2nd pass..."		   ../$GCC/configure --target=$TARGET --prefix=$PREFIX --with-libiconv-prefix=/opt/local \				 --enable-multilib  --with-cpu=cell \				  --with-gmp=/opt/local --with-mpfr=/opt/local --disable-decimal-float \				--enable-languages=c,c++ --disable-libssp --with-newlib --enable-cxx-flags="-G0" --disable-libgomp \				--disable-libmudflap --disable-nls --disable-shared --disable-threads  --disable-linux-futex  \					>> $LOGFILE 2>&1 || exit 0   		   echo "Building gcc - 2nd pass, this could take a while..."		   make $PARALLEL >> $LOGFILE 2>&1 || exit 0		   make install >> $LOGFILE 2>&1 || exit 0   		   cd ..		   rm -rf build/*	   fi   		   	   rm -rf build   	   if [ ! -e "$PREFIX/bin/xenon-g++" ]; then		   echo "complateur GCC absent, regardez le log"		   exit 1	   fi   	   echo "***** Fin  du script -toochain-  *****"   }      cube ()   {   	   if [ ! -e "free60" ]; then		   echo "Downloading Cube Sample"		   git clone git://free60.git.sourceforge.net/gitroot/free60/free60 >> $LOGFILE 2>&1	   fi               		   echo "Downloading Cube Sample"		   git clone git://free60.git.sourceforge.net/gitroot/free60/free60 >> $LOGFILE 2>&1   		   echo "Building Cube Sample..."		   make -C free60/devkitxenon/examples/xenon/graphics/cube >> $LOGFILE 2>&1   		   #cp free60/devkitxenon/examples/xenon/graphics/cube/cube.elf32 .   	   if [ ! -e "free60/devkitxenon/examples/xenon/graphics/cube/cube.elf32" ]; then		   echo "Executable elf absent, regardez le log"		   exit 1	   fi   		   echo		   echo "cube.elf32 compiled, run it via xell"		   echo				         }      # clean	   if [ -e "$LOGFILE" ]; then		   rm $LOGFILE &>/dev/null	   fi      #menus	   case "$1" in		   "toolchain")				   checkcommand				   toolchain_install				   libxenon_install      	  ;;		   		   "libxenon")   				   libxenon_install   	  ;;		   		   "cube")			   cube   	  ;;   		   *)				   echo "Usage:"				   echo "\"$0 toolchain\" (install toolchain + libxenon)"				   echo "\"$0 libxenon\" (install or update libxenon)"				   echo "\"$0 cube\" (compile the cube sample)"				   echo "Package: libgmp3(-dev) build-essential and libmpfr(-dev)"   	  ;;	   esac

Edit: pensez a vérifier que libgmp3-dev et libmpfr-dev sont installé .

Modifié par erwan2004
Lien vers le commentaire
Partager sur d'autres sites

Moi c'est :

/home/test/Programmation/Xbox360/xenon/lib/gcc/xenon/4.4.0/../../../../xenon/bin/ld: crt1.o: No such file: No such file or directorycollect2: ld returned 1 exit status

Toi c'est un preoblème de path, fait :

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/test/Programmation/Xbox360/xenon/usr/lib

Cherche "libxenon.a" (regard dans "xenon/usr/lib") est adapte le chemin du "/home/test/Programmation/Xbox360/xenon/usr/lib"

Lien vers le commentaire
Partager sur d'autres sites

Bonjour,

afin de préserver une organisation la plus lisible possible sur le forum, nous allons déplacer votre sujet dans une section plus appropriée.

Merci de votre compréhension.

Lien vers le commentaire
Partager sur d'autres sites

La lib n'est pas installé .

Compile la lib et regarde le log .

Ma boule de cristal me dit que tu a un problème avec "dirent.h"

Edit: un lien vers mon script (fichier pour linux, )

http://rwan.fr/ftp/Xbox360/Developpement/Libxenon/

Pour windows avec Notepad++= Edition => Comvertion de fin de ligne => convertir pour Windows .

Utilisation:

sh build-xenon-toolchain.sh toolchainsh build-xenon-toolchain.sh libxenonsh build-xenon-toolchain.sh cube

Modifié par erwan2004
Lien vers le commentaire
Partager sur d'autres sites

Salut,

petite intrusion d'un noob en dev qui a une question peut-être conne, je m'en excuse d'avance, la voici : j'ai cru comprendre qu'on pouvait aussi coder en c# sur XNA, serait-il de même sur SDK ?

Merci.

Oui pour coder en C#, il faut utilisé le SDK officiel.

Tu devrai trouver plus de détail ici : http://www.xbox.com/en-US/dev/regdev.htm

Effectivement erwan2004, en compilant la libxenon j'ai bien une erreur avec dirent.h, il me sembler que lors de l'install du toolchain il y avait écrit que ça incluer la libxenon et je n'avait pas eu d'erreur.

Je test dessuite, merci.

Modifié par BestPig
Lien vers le commentaire
Partager sur d'autres sites

Voici ce qui a corriger mon erreur, ce n'était pas un problème de retour ligne unix/windows.

sudo cp libxenon/drivers/newlib/dirent.h /usr/local/xenon/lib/gcc/xenon/4.4.0/../../../../xenon/include/sys/dirent.h

http://www.xboxhacker.net/index.php?topic=12439.0

EDIT : Wahouuu, j'ai mon cube.elf32 xD.

Et le cube se lance :D

Modifié par BestPig
Lien vers le commentaire
Partager sur d'autres sites

Si tu parle de crt1.o, oui c'est normal .

		   echo "***** startup crt fix *****" 		  cp free60/libxenon/startup/xenon/crt1.o $PREFIX/lib/		   cp free60/libxenon/ports/xenon/crti.o $PREFIX/lib/		   cp free60/libxenon/ports/xenon/crtn.o $PREFIX/lib/

Mais des scripts fait pour Cygwin peuvent posé problème sous Linux, sans doute que ce dernier est plus rigoureux .

Ca doit être une connerie au niveau du makefile -o $PREFIX/lib/crt1.o a foutre quelques part dans le makefile ou le fichier rules .

Edit: mm problème sous Cygwin.

Modifié par erwan2004
Lien vers le commentaire
Partager sur d'autres sites

Salut,

petite intrusion d'un noob en dev qui a une question peut-être conne, je m'en excuse d'avance, la voici : j'ai cru comprendre qu'on pouvait aussi coder en c# sur XNA, serait-il de même sur SDK ?

Merci.

Oui pour coder en C#, il faut utilisé le SDK officiel.

Tu devrai trouver plus de détail ici : http://www.xbox.com/en-US/dev/regdev.htm

Ok, merci.

C'est bien ça, tout le monde peut donc s'y mettre rapidement.

Lien vers le commentaire
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share