What's new

Xbox

blueshogun96

A lowdown dirty shame
Hey guys. Alot of people have been bugging and nagging me about how my Xbox emulator is doing lately, so I thought I'd post some progress. Well, it's been over a year since I've started this project (May 27, 2006 exactly) and I haven't had alot of time to work on this either, but I've managed to get some results out of all that hard work. I'm posting the binary and source code below. The source code is released under the GNU general public license. You can do just about whatever you want with it. It uses LLE instead of HLE and uses OpenGL instead of Direct3D.

There's alot of stuff to be done in this source code. Optimizations, and corrections, etc. Also note that alot of the NV2A GPU emulation code may be innaccurate or just plain wrong (like everything else)! Be warned the CPU core isn't completed either. The x86 instruction set is very MASSIVE and will take a while to complete. And no, it does not play Halo 1/2 and the BIOS emulation isn't started yet. Anyway, give it a look and let me know what you think about all this. I have over 50 MB worth of documentation I've used, but I'll post that when I get back from work :chinese:

EDIT: Sorry guys, had to pull it back (the attachment). Unconsciously went back on an agreement I had with www.generalemu.net :( All releases will be made there, sorry about this.
 
Last edited:

ExodusC

Marisa Stole My Precious Thing
Great to see you finally made a first release. I'll try some stuff out on it and see what happens. :3
 

Danny

Programmer | Moderator
nice one mate :) Seeing any signs of games/demos running yet?

Keep up the great work mate :D
 

Exophase

Emulator Developer
Very good.. I'll be looking over it sometime :B

UPDATE: CPU interpretation looks okay, but I strongly recommend you invest in some more heavy macro usage (since you're using C). This will make your life a lot easier and make the thing a lot more maintainable (also make it easier to go to dynarec).

BTW, please feel free to contact me anytime if you'd like (although I probably can't help you with XBox specific things I can at least give you a hand with x86 if you need it).
 
Last edited:

General Plot

Britchie Crazy
I want to clarify that this project has been apparently discontinued by it's developer and inform everyone that we will not have builds available at General Emulation.
 

General Plot

Britchie Crazy
You can't see the private discussion at our site either where he has said he's not going to continue it, where I have. Also, take note of his signature:
(blueshogun has committed digital suicide. He's as good as dead...:corpse:)
 

wrayal

New member
Is there a copy of this anywhere about? I can't see a copy on generalemu, but...is the source available for someone else to take a look at? I'd very much like to at least take a stab at understanding it, see where it takes me.

wrayal
 

refraction

PCSX2 Coder
Is there a copy of this anywhere about? I can't see a copy on generalemu, but...is the source available for someone else to take a look at? I'd very much like to at least take a stab at understanding it, see where it takes me.

wrayal

there is no other copy, if you didnt grab it here, then you will have to get it from someone who managed to grab it, it never made it as far as general emu, despite that being its "exclusive" home.

So people dont think Generalplot is joking or being an idiot, this is what BlueShogun96 said
My mind is just flooded with guilt right now. I never expected forgiveness, nor will I beg for it because I know I'll never get it. I don't blame you for not trusting me anymore. Just looking at the friggin source code make me sick to my stomach. I'm not going to work on it anymore. I know I'm not going to be looked at the same anymore either. I guess it's time to take the digital cyanide pill...

shortly after he banned himself from general emu and nobody has seen him since.
 

LazerTag

Leap of Faith
I'm confused. Guilt for what? Because he posted here first?

If that's the case everyone involved should simply get over themselves.

too much drama, lol.
 

JKKDARK

New member
You can't see the private discussion at our site either where he has said he's not going to continue it, where I have. Also, take note of his signature:
Very interesting, but I don't care your opinion.

Is there a copy of this anywhere about? I can't see a copy on generalemu, but...is the source available for someone else to take a look at? I'd very much like to at least take a stab at understanding it, see where it takes me.
http://www.dcemu.co.uk/vbulletin/showthread.php?t=65498
 

General Plot

Britchie Crazy
JKKDARK said:
Very interesting, but I don't care your opinion.
Honestly, I don't care if you don't. You ran your mouth and got proven wrong, just like always. I think the fact that you leave a download available against the original developer's wishes is a rather crooked and low down thing to do if you ask me.;)
 
Last edited:

Xtreme2damax

New member
Jkkdark, please get a life and stop pi$$ing people off you nazi inbred hippy hitler wannabe.:saddam:

BSG, made the choice to discontinue it and was discussed as plot said via the private system. You should at least respect this, stop acting childish and grow up.

It would of been nice, and I was actually anticipating this new Xbox Emulator but I'm sure BSG has his reason for discontinuing it and I respect that.

Just stop beating the proverbial dead horse already and get on with life. There's not much more that can be done unless BSG decides to reinstate the project himself. It came, we saw, and now it's it's gone, deal with it;)

And no I'm not flaming him, I'm stating mere facts. He is starting to get on everyones nerves. It's not long until every forum he visits he becomes Banned:emutalk:
 

zaba_3

New member
Jkkdark, please get a life and stop pi$$ing people off you nazi inbred hippy hitler wannabe.:saddam:

BSG, made the choice to discontinue it and was discussed as plot said via the private system. You should at least respect this, stop acting childish and grow up.

It would of been nice, and I was actually anticipating this new Xbox Emulator but I'm sure BSG has his reason for discontinuing it and I respect that.

Just stop beating the proverbial dead horse already and get on with life. There's not much more that can be done unless BSG decides to reinstate the project himself. It came, we saw, and now it's it's gone, deal with it;)

And no I'm not flaming him, I'm stating mere facts. He is starting to get on everyones nerves. It's not long until every forum he visits he becomes Banned:emutalk:
I dont think that was really needed
 

Trotterwatch

New member
Seems an odd situation this, anyway it seems like the thread has outlived it's purpose now. If blueshogun96 comes back at all, then he can PM me to get the thread unlocked/cleaned up if he so desires.
 
OP
blueshogun96

blueshogun96

A lowdown dirty shame
Yup, I'm back and xenoborg is too. It lives on.

now... where was I? Oh yeah! Let's get to the documentation, shall we?

1. BIOS: The Xbox BIOS is very complex. No one fully understands how it works yet. I can't compare it's complexity with the PS2 BIOS really.

http://www.xbox-linux.org/wiki/17_Mistakes_Microsoft_Made_in_the_Xbox_Security_System
http://www.xbox-linux.org/docs/msbios.html
http://www.xbox-linux.org/wiki/The_Hidden_Boot_Code_of_the_Xbox
http://www.xbox-linux.org/wiki/Why_you_shouldn't_do_TSOP_Splitting
http://www.xbox-linux.org/wiki/Xbox_Boot_Process
http://www.xbox-linux.org/wiki/Xbox_Hard_Drive_Locking_Mechanism

2. CPU: The most familiar component of the Xbox. It's just an Coppermine Intel Pentium III with a halved L2 cache (128KB). It also has a customized CPUID instruction. The average Xbox n00b will assume this is easy to emulate and makes the Xbox the easiest console to emulate of it's time. Very wrong frame of mind. At this time, it is impossible to emulate a Pentium III [accurately] because it (like all modern x86 CPUs) can excecute more than one instruction at a time and how it does that is unknown. So it's not like emulating a Z80 or even a MIPS.

http://www.xbox-linux.org/docs/cpuid.html
http://www.sandpile.org
http://www.intel.com/design/archives/processors/pentiumiii/index.htm

3. Gamepad: It's just a standard USB compatible device.

http://euc.jp/periphs/xbox-controller.en.html

4. GPU (NV2A): The hardest thing to emulate in the Xbox. It's basically an NVIDIA GeForce 3 with some GeForce 4 capabilities (cross between an NV20 and NV25). Sounds easy to emulate just because it's NVIDIA huh? Think again! the GeForce 3 series is the most mysterious of all NVIDIA GPUs (G7x and G8x aside) and the NV2A is alot worse. "But can't you just directly execute the NV2A instructions on another NVIDIA card?". No, I get alot of questions concerning this, and it is impossible. It's MMIO addresses are different and has some exclusive registers of it's own. Plus, in windows, we don't have ring 0 access anyway, so you all can scratch that idea now.

http://forums.xbox-scene.com/index.php?showtopic=573524 <- The best NV2A documentation to date
http://www.xbox-linux.org/docs/nv2a.html

Below are links to documentation of similar GPUs
http://rivatv.sourceforge.net/stuff/riva128.txt
http://www.digit-life.com/articles/nv20/
http://www.anholt.net/vidinfo/nvidia.xml
http://nouveau.freedesktop.org/
http://www.directfb.org/
http://www.gamedev.net/community/forums/topic.asp?topic_id=220759&forum_id=21&gforum_id=0

5. HDD: the Xbox's HDD is usually 8 to 10 GB. It uses a fileformat similar to FAT called FATX.

http://www.xbox-linux.org/wiki/Differences_between_Xbox_FATX_and_MS-DOS_FAT
http://www.xbox-linux.org/docs/hdcontents.html
http://www.xbox-linux.org/wiki/Xbox_Hard_Disk_Partitioning
http://www.xbox-linux.org/wiki/Xbox_Hard_Disk_Technical_Details
http://www.xbox-linux.org/wiki/Xbox_Partitioning_and_Filesystem_Details

6. Kernel: The Xbox uses a modified Win2000 kernel. Easy to emulate? No! It's far to different to be considered the same. Many functions are Xbox exclusive and not all of their uses are known still. See the attachment below.

7. MCPX: The MCPX is similar to the NVIDIA NForce 2 chipset, but not identical. It's components include the PCI bus, USB, Audio Codec, APU, Network Adapter, etc. The majority of these components are fairly easy to emulate except the Audio Codec.

http://www.science.unitn.it/~fiorella/guidelinux/tlk/node65.html
http://www.xbdev.net <- See OpenXDK and non-xdk tutorials.
(See attachments for more docs).

8. VGA: The Xbox's GPU is a VGA compatible.

http://osdever.net/FreeVGA/home.htm
http://www.brackeen.com/vga/intro.html

9. Video Encoders: Instead of using a standard RAMDAC, the Xbox uses a VideoEncoder instead. The actual VideoEncoder varies from one Xbox version to the next.

10. Xbe: The Xbox's version of the .exe file. Documented by sir caustik.

http://www.xbox-linux.org/wiki/XBE_Security
http://www.caustik.com/xbox/download/xbe.htm

11. Misc stuff (block diagrams, etc)

http://sourceforge.net/project/showfiles.php?group_id=54192&package_id=189760&release_id=418060
http://www.xbox-linux.org/wiki/DVD-IR_Internals
http://www.xbox-linux.org/docs/filetypes.html
http://www.xbox-linux.org/docs/gdfs.html
http://ext2fsd.sourceforge.net/documents/irql.htm
http://www.xbox-linux.org/wiki/NForce.htm
http://www.xbox-linux.org/wiki/PIC.htm
http://www.xbox-linux.org/wiki/PIC_Challenge_Handshake_Sequence.htm
http://www.xbox-linux.org/wiki/SMBus_Controller.htm
http://www.xbox-linux.org/wiki/Xbox_Hardware_Overview.htm
http://www.xbox-linux.org/wiki/Xbox_Serial_EEPROM.htm
http://www.xbox-linux.org/docs/xboxpc.html
 

Top