[Xbox] programar para Xbox

Pues a ver si me podeis echar una manita, para encotnrar informaicon sobre como progamar para la Xbox con el OXDK, solo las primeras cuatro paridillas para hacer un hola mundo y que se imprima en la pantalla, a partir de ahi a ver si consigo encontrar mas cosillas, tnks.
BUAAAAAAA que exitazo, no hay ninguna pobre alma caritativa que quiera ayudar a este pobre neofito :) mirad que carita de bueno que tengo [angelito]
yo he hecho un par de paridillas pero ultimamente tengo a mi x muy abandonada...

pa buscar informacion sobre programar... pos no se, en xboxhacker.net no hay nada? seguro que hay algun link al xdk legal, o si usas la busqueda avanzanda encontraras algo, ya veras.
A mi tambien me interesaria, cualquier cosa que encontreis postearla akiiii, por cierto, que quieres hacer? porque molaria que nosotros iniciaramos algun proyecto para la X.
Pues ya tengo mi primera idea, hacer que salga un logo del EOL en la consolita, supongo que no tendra ningun tipo de dificultad para el experto, pero para los novatos como tu y yo, nos sera de gran ayuda.
De momento solo he descubierto dos cositas, que creo que son bastante interesantes a la hora de hacer un XBE, lo primero es definir el tipo de fichero que va a ser

#define XBEIMAGE_MEDIA_TYPE_HARD_DISK 0x00000001
#define XBEIMAGE_MEDIA_TYPE_DVD_X2 0x00000002
#define XBEIMAGE_MEDIA_TYPE_DVD_CD 0x00000004
#define XBEIMAGE_MEDIA_TYPE_CD 0x00000008
#define XBEIMAGE_MEDIA_TYPE_DVD_5_RO 0x00000010
#define XBEIMAGE_MEDIA_TYPE_DVD_9_RO 0x00000020
#define XBEIMAGE_MEDIA_TYPE_DVD_5_RW 0x00000040
#define XBEIMAGE_MEDIA_TYPE_DVD_9_RW 0x00000080
#define XBEIMAGE_MEDIA_TYPE_DONGLE 0x00000100
#define XBEIMAGE_MEDIA_TYPE_MEDIA_BOARD 0x00000200
#define XBEIMAGE_MEDIA_TYPE_NONSECURE_HARD_DISK 0x40000000
#define XBEIMAGE_MEDIA_TYPE_NONSECURE_MODE 0x80000000
#define XBEIMAGE_MEDIA_TYPE_MEDIA_MASK 0x00FFFFFF


esto siempre va bien para definir el tipo de fichero que vamos ha hacer, vamos supongo yo, que no tengo mucha idea.

Y lo segundo pero no menos importante, es definir la region de donde procede el archivo

#define XBEIMAGE_GAME_REGION_NA 0x00000001
#define XBEIMAGE_GAME_REGION_JAPAN 0x00000002
#define XBEIMAGE_GAME_REGION_RESTOFWORLD 0x00000004
#define XBEIMAGE_GAME_REGION_MANUFACTURING 0x80000000


Ya se que no es gran cosa, pero definiendo estas dos cosas y utilizando el cxbe, lo unico que he conseguido es que el evolutionX me reconozca mi archivo como una aplicacion, que quieras o no ya es algo.
mmmm, eso ya es algo.
#define XBEIMAGE_GAME_REGION_NA 0x00000001
#define XBEIMAGE_GAME_REGION_JAPAN 0x00000002
#define XBEIMAGE_GAME_REGION_RESTOFWORLD 0x00000004
#define XBEIMAGE_GAME_REGION_MANUFACTURING 0x80000000


Osea que 01 NTSC, 02 JAP, 04 Pal (03?) y el 0x8muchos ceros quizas sea un estilo global, es decir pa los tres formatos.
Me asombra el que simplemente con eso se cambie la region.
Vale, ahora tenemos algo que es muy basico, ¿o no?, pero a mi lo que me tiene mosca, es como imprimir algo en la pantalla, ni que sea solo un puto punto que toque los cojones. A ver si encuentro algun ejemplo un poco sencillo para poder entenderlo.
Aun no tengo el XDK, asi que no se como ira el tema, todavia.
Supongo que en el XDK vendran las librerias especificas de las consola, las que tienen el copyright de MS, si es C, deberian ser .h, no?, abrelas y mira los comandos.
yo es que me pierdo, y como no tengo mucha idea de programar, pues te cagas.

Driebes te recomiendo el kit de desarrollo libre aqui te pongo el link http://sourceforge.net/projects/openxdk/ con esto para comenzar y hacer algo sencillo seguro que ya tenemos suficiente.
ah! tambien hay un sample que es bastante interesante bajarselo y mirarselo.

Si este hilo cogiera un poco de forma, lo podriamos trasladar al foro de I + D bueno eso como sugerencia.

Ahi va mi propuesta para Deribes y para mi, eso si te animas claro.

Como tu estas igual de pez que yo, nuestro primer trabajo, podria ser crear un programa que mostrara un mensaje de texto en pantalla, de momento no parece dificil, pero como yo no tengo ni idea, pues na a comenzar de cero.

Y otra cosa, si no os sabe mal, podriamos postear el codigo, para que la gente se anime ¿ok? bueno ya me direis algo.
vives18@hotmail.com bueno este es mi mail, para ponerme en el msn
Otra cosa, ¿por cojones tengo que utilizar el Microsoft Visual C++? o con cualquier compilador de C ya me vale.
Juraria que el Open XDK esta tan verde, que todavia no rula nada en la X echo con el Open XDK, creo.
El codigo lo puedes hasta editar con el Bloc de notas, lo que necesitas es el XDK para compilar.
Escrito originalmente por avadnc
ah! tambien hay un sample que es bastante interesante bajarselo y mirarselo.

Si este hilo cogiera un poco de forma, lo podriamos trasladar al foro de [b]I + D
bueno eso como sugerencia.

Ahi va mi propuesta para Deribes y para mi, eso si te animas claro.

Como tu estas igual de pez que yo, nuestro primer trabajo, podria ser crear un programa que mostrara un mensaje de texto en pantalla, de momento no parece dificil, pero como yo no tengo ni idea, pues na a comenzar de cero.

Y otra cosa, si no os sabe mal, podriamos postear el codigo, para que la gente se anime ¿ok? bueno ya me direis algo. [/B]



ojala yo tambien lo deseo [360º]
Macho no creo que sea tan verdad, sino preguntaselo a _Seagal_, que algo hizo en su dia. Yo creo que para comenzar ya esta bastante bien, tampoco me voy a poner a programar un juego, de momento quiero hacer algo cutrillo, pero lo suficiente como para enter como va.

Horas de sueño es lo unico que voy a perder con esto, porque por lo demas creo que si hago algo ni que sea el maldito "hola mundo" ya tendre suficiente.
Creo que el Sample hace algo parecido, has probado a compilarlo y ejecutarlo?
Voy a intentar buscar el codigo fuente de algo mas serio pa la X, en emu o algo.
Lo he estado pensando y algo que molaria bastante, seria portar el SCUMM a la X.
si, lo he probado a compilar, pero me da un error

"linking...
LINK : fatal error LNK1181: cannot open input file "xlibc.lib"
Error executing link.exe.

Sample.exe - 1 error(s), 0 warning(s)"
--------------------------------------------------------------------
OpenXDK - Microsoft Visual Studio 6.0 - Installation Instructions
--------------------------------------------------------------------

This document describes the process which should be used if you
wish to develop "homebrew" software for the XBox using OpenXDK.

Information is as precise and correct as I can make it, but feel
free to submit suggestions. After all, OpenXDK is an open source
project, and our success relies on community contributions.

------------------------------------------------------------------
Table of Contents
------------------------------------------------------------------

1) Installation

a) Download
b) Unzip
c) Build

2) Development

a) Creating a New Project
b) Removing "Debug" Configuration
c) Setting Compiler and Linker Options
d) Setting Required Directories
e) Configuring CXBE for Custom Build
f) Adding WinMainCRTStartup
g) Building Your Project

------------------------------------------------------------------
Information
------------------------------------------------------------------

1) Installation

a) Download

To download the latest OpenXDK files, go to the OpenXDK web site
displayed below, and locate the appropriate download file(s).

http://openxdk.sourceforge.net/

The web site will point you in the right direction.

b) Unzip

OpenXDK is distributed in .zip format. After downloading OpenXDK,
the next step is to decompress the .zip file into a directory of
your choice. The preferred directory is C:\OpenXDK, but you may
put these files wherever you wish. The only requirment is that
you must remember where this directory is.

c) Build

Note: If you downloaded a pre-built version, you can skip this step.

Building OpenXDK is very easy. The decompressed folder (C:\OpenXDK)
contains a file called OpenXDK.dsw. To build OpenXDK, simply open
this workspace with Microsoft Visual Studio 6.0, and then build the
XBox Kernel, xhal, xlibc, and xvga.

When building, you may recieve a crapload of warnings with xlibc. These
can be safely ignored, unless there is also an *error*.

Note: To build, click Build->Batch Build, then click "Rebuild All".

2) Development

a) Creating a New Project

Note: If you just wish to build / add on to the included "Sample"
project, you *only* need to complete part d). Everything else is
already configured.

There are some specific steps that must be taken when creating a
project for use with OpenXDK. Primarily, Compiler and Linker options
must be tweaked, and 3 directories must be added to the compiler's
search path. The details on how to configure these options are
explained in detail below.

The first step is to create a new project. This can be done by
opening Microsoft Visual Studio 6.0 and creating a new Win32
project and workspace. This can be done via File->New. The type
of project you will want to create is "Win32 Application". It
does not matter where you put your project files, as we will add
the necessary directories for includes, lib, and binaries later
in this tutorial.

After you click OK, you will be asked what type of windows
application you would like to create. You want to create "An empty
project" (the first option). Other options may pull in libraries
that will not work with OpenXDK. After clicking "Finish" a dialog
window will come up telling you that the project was created. You
can just click OK on this dialog.

Now that you have a new project, you will need to modify a few of
the default options before your .exe will relink correctly. The
exact options that need to be changed are described next.

b) Removing "Debug" Configuration

Since you can not use "Debug" configuration with OpenXDK, it is
recommended that you remove this configuration completely. To do
this, use the menu Build->Configurations, and select "Win32 Debug".
After this is selected, click the "Remove" button. Then click Yes
on the confirmation dialog that comes up next. Once this is done
you can close the Configurations dialog.

c) Setting Compiler and Linker Options.

Compiler options are accessed through the menu Project->Settings.

The first set of options we are concerned about are located under
the "C/C++" tab. First, switch to the category titled "C++ Language"
and uncheck the box marked "Enable exception handling". Optionally,
you might want to go to the category marked "Code Generation" and
switch "Processor" to "Pentium Pro".

The next set of options we need to change are located under the
"Link" tab. You will need to check the box marked "Ignore all default
libraries". Then, under "Object/library modules", you should remove
everything that is listed and replace them with the following:

xboxkrnl.lib xlibc.lib xhal.lib xvga.lib

Next, you will need to add a few linker options by typing
directly into the box marked "Project Options". Add the following text
to the very end of the existing text:

/align:0x20 /driver /fixed:no

Failure to do this correctly will result in linker errors, and you
will not be able to compile your .xbe correctly. You can copy and
paste the text exactly as it is above, but you must be absolutely
certain to paste the text at the very end of the text in the box.

After you have added these settings, just click "OK".

d) Setting Required Directories

In order for your code to compile and link correctly, you will need
to add a few paths to your configuration. To add these directories,
you can use the menu Tools->Options. Then, click over to the tab named
"Directories". You will need to add the following directories:

"Include files" -> C:\OpenXDK\include\
"Library files" -> C:\OpenXDK\lib\
"Executable files" -> C:\OpenXDK\bin\

You must be sure to add these directories to the correct choice under
the drop down box titled "Show directories for:". Your paths may be
different, depending on where you chose to unzip the OpenXDK files.

After you have added these settings, just click "OK".

e) Configuring CXBE for Custom Build

Now, you must configure your project to use CXBE as a custom build step.
This is the process that is used to convert your .exe file to an .xbe
file that is compatible with the XBox. To configure this setting, you can
use the menu Project->Settings, then switch to the "Custom Build" tab.

Inside the box marked "Description", you can put whatever you like, but
I usually use the following text:

Relinking $(InputName).exe -> default.xbe

Inside the box marked "Commands" you will need to use the following text:

cxbe /TITLE:"CXBX Demo" /OUT:"$(TargetDir)default.xbe" $(TargetPath)

You will probably want to replace the phrase "CXBX Demo" with the title
you want to use for your program.

Inside the box marked "Outputs" you will need to use the following text:

$(TargetDir)\default.xbe

After you have added these settings, just click "OK".

f) Adding WinMainCRTStartup

The last requirement to complete your project configuration is to include
a valid entry point for your application. Typically, the below code is a
good place to start development from:

#include

void WinMainCRTStartup()
{
infinite:
goto infinite;
return;
}

You can use whatever code you like, the only reason for the infinite loop
is that XBox software is not intended to ever return from the entry point,
as it is the only process running.

g) Building Your Project

If everything went well, you now have a valid project, and you can
immediately start developing. Try building your project containing
only the simple entry point as shown above, and if all goes well,
your build will succeed and the file "default.xbe" will be created.

You should be able to run this executable on a modded xbox.
Has de hacer lo que he puesto en el mensaje anterior
Tranqui, el ingles no es mi fuerte, pero estoy en ello, yo de todas formas, gracias a el Sample ya estoy consiguiendo mi primer "hola mundo".

Por cierto, lo del error ya lo he arreglado, he buscado en google, que nunca va mal.
avandc meteme en tu MSN. Mi direccion es driebes@teleline.es
Bueno, ya he conseguido sacar mi primer hola mundo por pantalla, ahora solo me queda entender, el porque sale, no creo que sea muy dificil, ya que es una cosa muy sencilla, pero a estas horas y como estoy de echo polvo, pues como que ...........

Lo dicho, cuando me levante, posteo el codigo con un poco de explicacion a ver que sale.

Por cierto, este hilo lo queria dedicar a los novatos como yo, por eso quiero utilizar el Open xdk, ya que es facil de encontrar, y para cuatro chorradas que querramos hacer, pues ya nos ira bien.

Eso depende de la gente que quiera entrar. Asi que si os animais, pues DPM.
Creo haber visto el XBox Media Player en SourceForge.net si esta ahi, significa que tambien esta el codigo fuente, luego lo busco y lo hecho un vistazo.
Joder, si tuviera algo de idea de programar me apuntaria a ayudaros, pero es que toy mas verde que el fondo de eol :(

P.D: Driebes seria la CAÑA portar el scumm a la X, si esta en la gp32, no sera mu dificil de portar a la x no? y jugar a los MM, Monkey island, s&m..... seria IMPAGABLE ;-)
CuLeBrAx yo hace dos dias que me he puesto con C y ahora me pongo con la X, busca por internet programacion en C y veras que no es tan dificil.
// ******************************************************************
// *
// * proj : Sample
// *
// * desc : Sample for Open Source XBox Development Kit
// *
// * file : main.cpp
// *
// * note : Tiny OpenXDK Animation
// *
// ******************************************************************
#include
#include
#include

// ******************************************************************
// * WinMainCRTStartup (Entry Point)
// ******************************************************************
void WinMainCRTStartup()
{
char buffer[1024];
float last = (float)KeTickCount;


RtlZeroMemory(buffer, 1024);

// Currently, this is the only mode supported by xhal.lib
InitMode( MODE_320x240x32 );

// Animate up and down
int y=100, ys=50;

// XBox software does not typically ever return from its entry point
while(true)
{

WaitVBlank(); // Wait for Vertical Blank
Flip(); // Flip

// Print to screen
sprintf(buffer,"Hola Mundo");
Print(50,y, buffer);

}

return 0;
}


Para los que esteis igual de pez que yo, deciros que esto esta sacado del Open XDK, del archivo sample. Ese archivo, lo que hacia, era mostrar en pantalla un texto que se movia de arriba hacia abajo. Como para comenzar nosotros no queremos tanto, de momento lo que haremos sera que muestre el maldito "hola mundo" en nuestra consola.
avadnc creo que el codigo esta en C++ y por cierto, en http://www.sourceforge.net si esta el codigo fuente del XBMP 2.3.
Driebes seria la CAÑA portar el scumm a la X, si esta en la gp32, no sera mu dificil de portar a la x no? y jugar a los MM, Monkey island, s&m..... seria IMPAGABLE
existe un programa que emula el ms-dos en la xbox (ahora no estoy en casa y no te puedo decir como se llama), con lo cual puedes ejecutar juegos como los de Lucas.
Como se llama el emulador ese de ms-dos para la xbox??? por favor, seria la caña!!!
Como se llama el emulador ese de ms-dos para la xbox??? por favor, seria la caña!!!
el programa se llama Bochs, aqui puedes leer una pequeña explicacion de lo que hace el programa

This is an x86 emulator for the XBox. This basically emulates a PC and allows you
to install DOS, Linux, Windows, etc onto it. There is also a virtual SB16
card to output SB16 sound (except for MIDI which doesn't work yet.)
There is no network support in this version, though - so don't get your
hopes up about running a linux server. The linux-xbox project will work
much better than any emulation anyway. I ported Bochs primarily to play old
DOS games.


esta es la web oficial del programa

http://bochs.sourceforge.net/
Haber el Scumm aplica unos filtros que no tiene el juego original y son la lexe!!!!
Yo tambien me voy a animar a echarle un ojillo al Xdk a ver si para mañana ha acabado de bajarl..

Con respecto a portar el Scumm el problema mas grande va a ser el mismo que con el Bosch, el realizar un mapeado del teclado que arranque con el pad... O hacer que reconozca el usb...

De todas maneras vamos a ver si entre todos sacamos algo en claro [toctoc]
BTW, dentro de un rato me informare de algunas sources de emuladores y ya os pondre de donde sacarlas :-p
aqui te pongo unas funciones pa que hagas un putpixel, con esto no creo que tengais problemas pa poner dibujitos en la pantalla.

recuerda quitar los // de las declaraciones generales del u64 que hay por ahí, en el openxdk, os diria exactamente donde, pero no tengo ganas de buscar, que hace mucho que no toco esto y estoy liao con la gba, acordaos tambien de cambiar el 320 por la resolucion que useis y esas cosas...

//esto es la zona de memoria de la pantalla
u64* VideoBuffer = (u64*)0x8003d000;

/*os enchufo los dos putpixels que tengo, pa que pilleis el que os vaya mejor */
void Put_pixel(int x,int y, u64 c)
{
x= x + 20;
y = y + 35;
VideoBuffer[(y ) *320 + (x)] = (c);

}

u32 RRGBColor( u16 R, u16 G, u16 B )
{
return ((B)|(G<<10)|(R<<20));
}

void Put_pixel(int x,int y, u16 R, u16 G, u16 B )
{
u64 c;

c= ((B)|(G<<10)|(R<<20));
VideoBuffer[(y ) *320 + (x)] = (c);
}

pues eso, si necesitais algo mas, preguntad, pero modificando un poco estas funciones podeis hacer pa rellenar cuadraos en la pantalla, poner dibujitos, etc, etc...
Con respecto a portar el Scumm el problema mas grande va a ser el mismo que con el Bosch, el realizar un mapeado del teclado que arranque con el pad... O hacer que reconozca el usb...


Hombre, lo mejor seria portar las funciones del mando para jugarlo con el mando los mas comodamente posible.
Buenos dias,

Estoy interesado en lo que estáis haciendo. Yo he programado a nivel amateur durante gran parte de mi vida y si quizás el c++ no es mi fuerte, comprendo parte de el. Me gustaría aprender a programar aplicaciones para la XBOX y por tanto, todo lo que estais comentando me interesa.

Me bajaré el sdk gratuito y legal y miraré de empezar. A ver si encontramos más información en Internet de como hacerlo.
yo me parece que me he bajado la version del XSDK de junio ¿puede ser?
Yo me he bajado del emule el Xbox SDK de 170 Mb pero al instalarlo me dice que necesito el Microsoft Visual C++ SP4 + With processor pack... y ahora voy a ver si puedo bajarmelo....
42 respuestas