OpenGL & Xbox

Ok, quick and easy… is OpenGL supported on an XBox? I mean, our title uses GL for graphics and then DirectX for music & i/o… can that be ported to Xbox, or must everything be done using Dx8 exclusively?

cheers

Hahahahahahah

HAAAAhahahahaaaaaahahahaaha

Mwuhahahahaha

no

Ehem, sorry for that.
It has always been part of MS’ business strategy to bind developers to their platform with proprietary stuff (MFC, COM, <dirty>X, JavaScript, DHTML …). Get them hooked and never let them go. I don’t see how they would stop this trend now with the XBox.

Why not?
It’s nVidia h/w and with their unified driver architecture it shouln’t be to hard.
Unless they have some contract with Microsoft?

Charles

I think The Carmack himself contemplated developing for the XBox at one time. Result of that was, that even though NVidia could have provided the driver, Microsoft didn’t want OpenGL support on their machine, so it’s not part of the XBox core software. See it this way, the more people wanting to develop XBox stuff, the more people they can force into using <dirty>3D. Which in turn dimishes OpenGL development efforts for the PC.

I know very little about the dev environment on the XBox, maybe it’s possible to piggyback an NVidia OpenGL driver on your game DVD. But then again, would the OS allow using that driver? And where would you get that driver from in the first place?

I figure you could put an (NVIDIA) opengl driver on the game cd. Technically it would work but I am sure microsoft has things to protect against that. The Xbox is really just a computer (Nvidia chipset with a PIII) so it technically could run anything. Even something like Microsoft Word or Photoshop. But I would have to guess that microsoft has a lot of very hard restrictions built in against things like that. I was really waiting to see who would first attempt to HACK the Xbox to run anything. So far haven’t heard anything about it but I am sure we will soon enough. HEhe up yours microsoft.

I wonder why we don’t hear anything about an Xbox emulator. At least for windows this should be extremely easy to do, just redirecting some dll function calls and perhaps emulating NV20 to support other graphics hardware.

At least for windows this should be extremely easy to do, just redirecting some dll function calls

afaik the XBOX OS doesn’t use ordinairy PE executables… and there are more things that should be done different on a normal pc.

perhaps emulating NV20 to support other graphics hardware.

XBOX doesn’t have a NV20 but a NV2A…

fictional statement part 1 :

an xbox is a geforce 3.

Realism says :

it has twice the capability of a Geforce 3, microsoft have written the drivers for it because it is unified into the hardware, and nvidia have not had a hand in that (other than advisory and development role). When coding on the xbox you can access registers in a way that is impossible on a PC. It is theoretically possible to run openGL on an xbox, but you’d have to code a wrapper around directx (actually, not directX, but the xBox version of it which does have differences). The question then is, why bother? Directx is the lowest level you can access the hardware on, writing an openGL wrapper is only going to slow down performance and most of the functionality provided by openGL is not needed in the realms of a console. You cannot load a nvidia driver onto the xbox because it has no drivers!!!

fictional statement part 2 :

Why isn’t there an xBox emulator, it must be easy to code one…

Realism part 2 :

it may have an nvidia chip, it may have a pentium 3, but it is not a PC. On the xBox the hardware is unified, the memory is shared and you don’t have requirements for an AGP bus and various other bits and bobs. This means that writing an xbox emulator would involve reverse engineering all registers and other stuff that you can access inside the xbox that is limited on a PC by windows. You would actually have to emulate the entire machine because the values it puts into memory simply don’t exist on a PC, or they are unavailable. The only way you could do it is to emulate the ENTIRE hardware functionality, that means, emulate ALL calls to the processor, the graphics card, hard drive, input/output systems etc. Seeing as this is the most advanced console yet, you can forget it. You’d need a massive team of coders to do it and it’d take as much time (if not more so) than emulating a PS2 or gamecube.

Also bear in mind that the unified hardware of the xbox makes in massivly faster than a PC. At my last company, we ran tests where we were displaying 1/2 millon triangles at 60fps. There is no way that a PC could handle that.

Originally posted by Devulon:
I was really waiting to see who would first attempt to HACK the Xbox to run anything

Have a look here --> http://www.xboxgw.com/

Sorry for being that far from advanced opengl programming in this off-topic thread… I just couldn’t resist. Playing xbox games through Linux servers …

More realism:

a computer is a computer. It has main memory, a cpu, a gpu, and sound processor.

Since the processor is a x86, most of the machine code is binary compatible with your PC. The hardware implementation doesnt matter. What matters is system architecture -> x86!
As for the GPU, Im pretty sure the NV2A (or whatever) is also of the same family as any other Geforce. That means, that for the most part the machine code that must be fed to the NV2A is not that different from the Geforce in a PC.

Sure, its not as simple as putting the CD in your PC and running the game. How have people made emulators for the Nintendo, SuperNES, N64, PS, PS2, gameboy, etc?

Wait 2 years and your PC will be able to run todays console games with ease.

V-man

I’m not saying it won’t be done, I’m sure it will at some point. But when people claim it will be easy to do they are completely and utterly wrong.

It may have a gpu,cpu, etc, but the hardware is used differently, organised differently, and you are not limited by the windows operating system in how you access that. Emulating that hardware WILL require a full emulation and as much reverse engineering as an emulator for any other console. You cannot just pass the cpu calls to a P3, neither can you pass the gpu calls to a geforce. IT JUST WILL NOT WORK! In a unified architecture, how do you determine what calls are sent to the gpu, which memory needs what, what the processor calls are etc? Its an increadably difficult task to undertake. All I’m saying is that emulating an xbox = emulating a PS2 = emulating a Gamecube. They are non-trivial tasks.

You cannot possibly say that the xbox gpu recieves the same calls as an NV20 gpu (or related). It is not a PC! It does not work in the same way as a PC! the calls are made specifically for that hardware with no thought about passing data or geometry across an AGP bus. There are no limits to what memory you use for what purpose, it is completely unified. How can you determine an xbox call to load a texture into graphics memory? How have each developer accessed the DVD rom? how have they accessed the hard drive? There are no calls that map 1 to 1 to a PC. It is completely unified. There are no limits as to which memory you use and what you use it for. There are no limits on what registers you use and for what purpose. Therfore it is very difficult to try to map what the xbox does to what the PC does.

Sure, if you had the sourcecode for an xbox game, it would not be too much trouble to compile that on a P3 with geforce. But getting an xbox executable to run on a PC would be extremely difficult.

The xbox is ultimately a lot more advanced than any other console that has been before. the N64, snes, playstation etc are simple compared to it. I’m sure the emulation will be done one at some point, but it wont be for some time to come yet. I reackon at least 2 years for the first emulator that works, 3-4 for a stable version that works in all situations.

Also bear in mind that the unified hardware of the xbox makes in massivly faster than a PC. At my last company, we ran tests where we were displaying 1/2 millon triangles at 60fps. There is no way that a PC could handle that.

Hmm, that’s 30 Million tris/sec, which is within GF3 capability (and below GF4), depending on the rendering state and geometry format… Did you mean in a real game environment with shaders and multitexturing and stuff?

– Zeno

Originally posted by Rob The Bloke:
it has twice the capability of a Geforce 3, microsoft have written the drivers for it because it is unified into the hardware, and nvidia have not had a hand in that (other than advisory and development role).

Originally posted by Rob The Bloke:
You cannot load a nvidia driver onto the xbox because it has no drivers!!!

I don’t see how these two statements can both be true …
Furthermore, the xbox has twice the geometry processing capabilities, other than that it’s basically the same as a GF3.
Also, why do you think M$ wrote the drivers? It doesn’t make any sense at all. That would mean that nVidia would have to send M$ lots of low-level technical documentation about how the chip works, something I can’t see nVidia doing with their extreme paranoia about information getting leaked, which is the reason you can’t get for instance BeOS drivers for nVidia cards. Furthermore, building a chip without writing a drivers for it is kinda hard to do, you’d at least want to be able to test it.

of course the x-box has drivers. everything has drivers. everything. a driver is jsut a level of abstraction; there is no freaking way that the game coders are going to hardware encode thihngs like opening a file in their program. as soon as they wrap that kind of malacky up in a nice little package, then you sir have a driver.

main program -> abstraction -> hardware

abstraction == driver.

maybe you cna’t CHANGE drivers. maybe the user can’t install their OWN driver. but that doesn’t say that the x-box doesn’t HAVE them.

cheers,
John

http://www4.tomshardware.com/consumer/02q1/020204/index.html

It has a p3 733Mhz, 128K cache
64 MB DDR RAM (2x200MHz)
screen res is 640x480 @ 32bit
Memory is shared between gpu and cpu
NV2A is between a G3 and G4
Quincunx is used

From what I read, it sounds like a PC with some modification (simplifications). The fact that it needs a p3 clocked at 733MHz with such a high clocked FSB and memory indicates that it is not that great. Compare it to the 294MHz PS2 chip (no T&L in hardware there!) with 4MB for video memory .

Dont forget that it uses a simplified Win2000 as the OS. It most likely uses a similar driver architecture, file system, etc. What could they have done different? Perhaps they integrated DX into the OS, so the addresses are absolute and precompiled into the game. Big deal! Once someones cracks xbox games, instead of having an emulator, one can have a translator for converting them to the standard windows format.

V-man

I think you’re being a bit naive.

Comparing to the PS2 is like comparing chalk and cheese. You say the PS2 has no hardware T&L, but it does have 2 hardware vector unit processors, and it’s architecture is completely different from PC’s. You just cannot compare them.

AFAIK the cpu in the Xbox is a slightly modified PIII, so saying that 8086 binary instructions will work on it straight away it wrong.

I know for a fact there is a hell of alot of security measures built in, and also into the Bootup sector of the DVD games come on.

An emulator probably will come out eventually, but just because the Xbox appears to be derived from PC products, does not instantly make it really easy to emulate. M$ knows it would lose soo much money if someone created an Xbox emulator for the PC, so they have spent a huge amount of time and effort making sure that there is physical hardware securities built into the whole chipset of the Xbox, which the games created require to run.

Nutty

Originally posted by Nutty:

M$ knows it would lose soo much money if someone created an Xbox emulator for the PC

Um… how? Microsoft loses money hand over fist on the XBox hardware; as with all consoles they make their money from the games. If you’re playing an XBox game on an emulator under Windows, they still get their cut of the game price AND they get the Windows tax you paid when you bought your PC.

I agree that there are many reasons why MS wouldn’t want an emulator, but I don’t think this is one of them.

Ha, in a few years if not sooner there will be an emulator, with the way PC speeds and gfx card speeds are increasing u could probably emulate a P3 in software in a few years, look at Gynecyst for instance, it has to emulate a Sega Mega Drive entirely, i dont c anyone opening up a pc and seeing a Z80 although thats not as big a challenge by along way

+looking at the way gfx are going with the Power MBX http://www.powervr.com/Release.asp?ID=38

we could be running emulators for the Xbox on mobile phones in a few years .

An Xbox emulator probably/will be built sooner or later, all good console have been emulated.

Microsoft may even add an Xbox emulator to future versions of Windows when the Xbox becomes obsolete to encourage u to buy another new version of windows.

And as for OpenGL if Microsoft dont sometime realise that people want an OpenGL driver and add one to encourage OpenGL games to the XBox, then someone will probably code a wrapper.

[This message has been edited by Mr_Smith (edited 03-13-2002).]

[This message has been edited by Mr_Smith (edited 03-13-2002).]

Um… how? Microsoft loses money hand over fist on the XBox hardware; as with all consoles they make their money from the games. If you’re playing an XBox game on an emulator under Windows, they still get their cut of the game price AND they get the Windows tax you paid when you bought your PC.

IF an Xbox emulator existed, then it must get around the copy protection on the DVD’s, if this is the case, then you’d see an explosive increase in pirated Xbox games that are cracked to run on the emulator, thus offical games sales would plummet and M$ would lose lots of money.

Nutty