Emuforums.com

Go Back   Emuforums.com > Miscellaneous Emulation > Misc Console Discussion
About Us Register FAQ Members List Calendar Mark Forums Read

Login to remove all ads!
Reply
 
LinkBack Thread Tools Display Modes
Old May 14th, 2008   #1 (permalink)
Registered User
 
Join Date: May 2008
Location: denver
Posts: 3
XBox Emulation Idea

I had an idea for an XBox emulator, but I have no idea on how to implement it, nor do I feel I have the skills.

But, that aside, here is my idea:
bochs: The Open Source IA-32 Emulation Project (Home Page)
with that x86 emulator, you can load custom BIOSes, etc... and I was thinking that this might be usuable as an XBox emulator, but I have no idea, heh.

Is this possible, or do I just have high hopes?

It also supports graphics card bioses, iirc.
netham45 is offline   Reply With Quote
Old May 14th, 2008   #2 (permalink)
LET'S GO!! COME ON!!
 
Hard core Rikki's Avatar
 
Join Date: May 2004
Location: Perpetual Hawaii
Posts: 4,910
Nice try. I'm not certain about the specifics, but no, it would not help much (if at all, of course). Thanks for sharing anyway ;D
__________________
< My deviantART || GENERALEMU || XTEMU || Webcomics
VBA-M || @ES <(^_^)> <(^_^)>


Hard core Rikki is offline   Reply With Quote
Old May 15th, 2008   #3 (permalink)
Shogun3D Interactive (TM)
 
blueshogun96's Avatar
 
Join Date: Jun 2004
Location: Unidentified
Posts: 2,069
I'm sorry, but that's not going to work. Xbox may have PC compatible hardware, but it exactly doesn't run like one and definitely doesn't execute like one. Sure the boot vector is the same, but the overall boot process and hardware initialization isn't. If you need some technical explanations, read below.

1. Since the Xbox uses an Intel x86 CPU, it does boot at the same address as a normal PC does (IIRC) which is 0xFFFFFFF0 (I'll explain more next). I don't exactly know how a PC bios initializes it's hardware, but an Xbox's bios is very hardware specific. If the code to properly emulate Xbox's hardware does not exist, then it won't boot. It's just like flashing your PC with an Xbox bios trying to turn it into an Xbox. Don't try this at home kids Another thing, before the Xbox even dreams of running any x86 code, it runs a secret "hidden" bios that configures certain hardware using PCI configuration statements. I'll explain more on this later (paragraph 4).

2. The Xbox's Pentium III processor is indeed identical to a PC's IA-32 CPU, but it has a few differences and oddities to it. One is the fact that when an instruction is executed at the top of the address space (0xFFFFFFFF, the BIOS occupies this area), if that last instruction is not a variation of "jump" or "call", the program counter/instruction pointer (EIP) will rollover to 0x00000000 without generating a page fault (#PF) exception. A normal PC will always do that, which is a problem. I'll explain more about this on the next paragraph why this is a problem. If that last instruction does redirect the EIP register, then it will expect the xbox's ram to be in a very exact location. More on this next.

3. I'm not sure how a PC maps it's physical memory, but an Xbox's physical memory is located at 0x00000000 - 0x03FFFFF for Xbox's with 64 MB, Debug Xboxes and moddified Xboxes that have 128 MB can expect 0x00000000 - 0x07FFFFFF. IIRC, 0x00000000 isn't even a mapped region of memory on a PC, whereas on an Xbox it's ram (which is executable memory) and the Xbox likes to insert executable code into ram during boot time.

4. The PC's and Xbox's PCI hardware works exactly the same, but the overall layout is different. Some PCI addresses that exist on PC don't exist on Xbox (or are in different locations). If Xbox's PCI isn't properly emulated, it won't boot.

5. There are other hardware specific things that would prevent this from being a reality. For instance, the Xbox's GPU (NV2A) and the Audio system (AC'97 audio codec, NVIDIA SoundStorm APU, Motorola 56000 DSP, Wolfson Micro DSP, possibly more chipsets) are similar to their PC counterparts, but not identical and have to be emulated to these exact specifications. Bochs doesn't even emulate this kind of hardware. It only emulates a standard VGA compatble card (the NV2A is too, but with exclusive registers), and a SoundBlaster sound card (IIRC). Then there is the controller. It's a USB compatible device and Xbox's USB 1.1 is exactly identical to a PC's, but code will still have to be written for it since it isn't a standard USB device. Also there is the PIC which is not identical to a PC's at all, and many more details, but I think I've stressed this enough already.

The reason I posted all of that is because some people tend to fight over ideas like this (both here once before, and other forums as well) so I just wanted to give the exact reasons why this won't work. Don't get me wrong, if you take the bochs source code and rewrite much of it to suit the needs of the Xbox, it can become an Xbox emulator (a painfully slow one at that), but just sticking your Xbox bios in the bios folder of bochs isn't going to work. Sorry.
__________________

[Sagat] Windows XP x64 Pro | AMD Athlon 3000+ (~2.0GHz) | NVIDIA GeForce 6600 PCI-E | Realtek AC97 Audio | 512MB Ram | NVIDIA NForce 4-4X chipset | Seagate HDD 160GB | LG 8614 DVD-ROM | HP DVD 1040d CD/DVD -/+ RW w/ LightScribe

GeneralEmu - December 27, 2005 and beyond!
My programming, emulation and Xbox blog! - Click or die! (Updated June 26, 2008)
Visit my YouTube page! http://www.youtube.com/blueshogun96
blueshogun96 is offline   Reply With Quote
Old May 15th, 2008   #4 (permalink)
Registered User
 
Join Date: May 2008
Location: denver
Posts: 3
Ah, thank you for an informative post. I've asked around before, and the only responses I recieved were stuff like, "No, you're stupid." and such.

Ok, well, it was an idea, I didn't really expect it to work, heh. I've been messing with BOCHS on my PSP so the idea crept into my head.
netham45 is offline   Reply With Quote
Old May 19th, 2008   #5 (permalink)
Registered User
 
NexXxus's Avatar
 
Join Date: Jan 2006
Location: Cologne, Germany
Posts: 3,085
and if its going to work the framerate would bei ultra slow because dosbox does emulate an complete CPU and doesn't even emulate Windows XP properly on any highend PC
__________________
My System: C2D E6700 @2.67GHz | Asus P5W DH Deluxe | 4GB DDR2 800 | GeForce 8800GT Extreme
My FFXII GSdx Highres Screenshot Gallery (link fixed!) | mixed pcsx2 screenshots

Get the latest GSdx here and ZeroGS here
If you search for pcsx2 betas, look here (but no support in the forums for it!)
Visit my blog (german only) PCSX2 howto included but still under construction.
NexXxus is offline   Reply With Quote
Old May 19th, 2008   #6 (permalink)
Registered User
 
Join Date: May 2008
Location: denver
Posts: 3
Well, there is a rather logical explanation to that. Dosbox is meant to emulate DOS, not the NT Kernel, which it doesn't know how to deal with 100%. Dosbox can, however emulate up to Windows ME(including 98,95,3.1,etc...) it just can't emulate the newer NT based OSes, such as Windows 2000,XP,Vista,etc...

Remember, dosbox is made to emulate games from the 1990's, so there is a rather logical reason it can't emulate an OS based off of a kernel it is unfamiliar with that's nearly a decade older than most programs it is targeted at.

Remember, BOCHS, VMWare, QEMU all emulate newer OSes fine, because they actually emulate the hardware properly.

Last edited by netham45; May 19th, 2008 at 13:08. Reason: adding stuff
netham45 is offline   Reply With Quote
Old June 2nd, 2008   #7 (permalink)
Registered User
 
Join Date: May 2008
Location: in my pc
Posts: 17
Yes. These programs emulate a hardware that works on the code of them. All operating systems for computer hardware are easily virtualized emulating on licence from windows or the Linux source, which are easy to virtualize.

Truth is that each console corresponding hardware and software specific to the construction and is not easily find programs that dont see the whole code and compilacions hardware of consoles. In praise of emulators that all deserve their console by congratulations can. But I believe that from now on be increasingly difficult to try to emulate the new consoles.
__________________
PC Stats: Processor: Pentium Dual Core 1.6 E2140 / Ram: 1GB Ram Kingston / Grafics: ASUS EAH2400 Series / Hard Disk: 160GB Sata in Windows Vista 32bits
Emulator tester: PCSX2, Dolphin, iDeias, Virtual Boy Advance, PSxeven - Working good

Last edited by xester; June 2nd, 2008 at 15:12.
xester is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT. The time now is 04:01.

© 2006 - 2008 Emu Forums | About Emu Forums | Legal | A member of the Crowdgather Forum Community


Powered by vBulletin® Version 3.7.0 Release Candidate 3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 RC5